lardemua / atlascar2

Core packages for the LAR DEMUA Atlas Project
6 stars 1 forks source link

Table of Contents

(Part in need of a revision)

Atlas Core

Core packages for the LAR DEMUA Atlas Project:

Description of the Atlascar2

The Atlascar2 is an instrumented vehicle used for scientific research in the areas of Autonomous Driving and Driving Assistance Systems. It contains significant computing power onboard which is used to process the data streaming from several sensors.

atlascar2.png

The set of sensors mounted onboard varies according to the needs of the researchers. Nonetheless, there are a few core sensors which are always available:

Name Type Range (m) Resolution (px) Frequency (Hz) Description IP address
left laser LIDAR, Sick LMS151 80 --- 50 Mounted on the front bumper, near the left turn signal. 192.168.0.5
right laser LIDAR, Sick LMS151 80 --- 50 Mounted on the front bumper, near the right turn signal. 192.168.0.4
front laser LIDAR, Sick LD MRS 200 --- 50 Mounted on the front bumper, at the center. Four scanning planes. 192.168.0.6
top left camera Camera, Point Grey Flea2 --- 964x724 30 Mounted on the rooftop, to the left. 169.254.0.5
top right camera Camera, Point Grey Flea2 --- 964x724 30 Mounted on the rooftop, to the right. 169.254.0.4
gps Novatel GPS + IMU --- --- --- Mounted on the rooftop, to the back and right. ---

SETUP Montage

1: Turning ON everything you need

Now, atlascar2, atlas machine and all sensors are turned on and working!

2: Cofiguring the IP addresses

Note: This part is only necessary if the atlascar is not configured or to check the ethernet IP addresses of the ethernet ports for the sensors.

In the car there are two switches to connect to the server.

In the table above, it can be seen that both of these sensors need different IP addresses to work.

Front bumper switch

The ethernet port on the pc (ens6f1) must have the following ip address and mask: IP: 192.168.0.3 Mask: 255.255.255.0

Roof switch

The ethernet port on the pc (ens6f0) must have the following ip address and mask: IP: 169.254.0.3 Mask: 255.255.255.0

With this, launching the drivers of the sensors should work!

3: Working in the Atlascar2

Using teamviewer for remote work

The teamviewer app is configured to open automatically in atlascar2 after turning on the PC. So in order to connect to the atlascar, the user only needs to add the user number and password in his teamviewer app and it should be working.

With this the user will see the atlascar desktop!

Testing the sensors

1: Sick LMS151 LIDAR

To launch one of the 2D Lidars:

roslaunch atlascar2_bringup laser2d_bringup.launch name:=left

Where left can be replaced for right. Then, open rviz.

2: Point Grey Flea2 camera

To launch one camera:

roslaunch atlascar2_bringup top_cameras_bringup.launch name:=left

Where left can be replaced for right depending which camera the user wants to see.

Then, open rviz or in the terminal write rosrun image_view image_view image:=/camera/image_raw

3: Sick LD MRS LIDAR

Launch the 3D Lidar:

roslaunch atlascar2_bringup sick_ldmrs_node.launch

Then, open rviz.

Launch the system

Launch the file:

roslaunch atlascar2_bringup bringup.launch

Which has the following arguments:

Note: The front and RGBD camera aren't in the car right now, so these arguments should be false

Before launching the odometry node, it is necessary to initialize the can bus. Use this command:

roslaunch atlascar2_bringup can_bringup.launch

Known problems

Monitors of the car not showing image

Just press the POWER button of the atlas machine quickly and only once

----Not need for particular user-----

Need to connect 2 cables: for ua ethernet and router set the router ipv4 automatic

3 connections: (FRONT SWITCH, BACK SWITCH, UA ETHERNET)

Router SMC (enp5s0f1)

Ethernet UA (enp5s0f0)

AtlasNetwork (ens6f0)

ifconfig to see all the IP gates that you have on your machine

Now you have the cable connection to atlascar (make sure that, on IPv4, is 'Utilize esta ligacao apenas para recurso na sua rede' is on and the IPv4 method is 'Automatic')

Usage

This launch file, launch the 2 sensors and the camera at once

roslaunch atlascar2_bringup bringup.launch

Frontal Camera: IP: 192.168.0.2

Top Right Camera: IP: 169.254.0.102

Top Left Camera: IP: 169.254.0.101

Serial: 14233704 (THIS SERIAL BELONGS TO WICH SENSOR??)

to see the image received by the camera, run rosrun image_view image_view image:=

Compilation

Inside catkin_ws, run:

catkin_make --pkg driver_base
catkin_make --pkg novatel_gps_msgs

This is necessary to generate the required files for a final compilation, with:

catkin_make

Collecting sensor data

you can record a bag file using

roslaunch atlascar2_bringup record_sensor_data.launch 

This saves a bag file called atlascar2.bag in the Desktop. You must edit the name after recording so that it is not deleted on the next recording.

If you want to view the checkerboard detection while the bagfile is recorded you may run

rosrun tuw_checkerboard tuw_checkerboard_node image:=/frontal_camera/image_color camera_info:=/frontal_camera/camera_info tf:=tf_dev_null

Playing back sensor data

To playback recorded sensor data you must use a special launch file which decompresses the images. As follows:

roslaunch atlascar2_bringup playback_sensor_data.launch bag:=atlascar2

Bag name is referred from the Desktop and without the .bag extension

New way to read and display the bag files

Using ssh connection (to work on your own machine)

If you want to work on your own machine, use the router SMC to create a ssh connection to the atlas computer.

Step 1: Turn on the SMC router.

Step 2: Plug the ethernet cable from the SMC router to your own computer (white cable on the figure).

SMC_router.jpg

Step 3: On a terminal, run (on your computer):

sudo gedit /etc/hosts

this will open the hosts file. You should save the AtlasCar2 network ip (add this to your hosts file):

192.168.2.102 ATLASCAR2

Save and close.

Step 3: Make sure if the connection to atlascar is on, by running

ping ATLASCAR2

Step 4: Get into the atlas environment by running, on a new terminal (the '-X' is for you visualize the image that sensors are capturing):

 ssh atlas@ATLASCAR2 -X 

Now you are inside the atlascar machine in your own computer!

You can work with Visual Studio or CLion, as they are already installed.

Simulating the Atlascar2

Installing

In order to ease the remote work with this vehicle, a simulated environment was developed. This environment uses an ackermann controller that needs to be installed with the following command:

sudo apt-get install ros-noetic-ros-controllers ros-noetic-ackermann-msgs ros-noetic-navigation ros-noetic-pointgrey-camera-description ros-noetic-sick-scan ros-noetic-velodyne-description 

simulation.png

The user also needs to download and configure the repository gazebo_models_worlds_collection in order to run AtlasCar2 in Gazebo.

The ATOM repository is also needed.

Lastly, the steer_drive_ros (on the melodic-devel branch) needs to be downloaded in the user's ROS workspace.

Running

Now, to start Gazebo the user writes:

roslaunch atlascar2_gazebo gazebo.launch

And to spawn the car and start the controller the user writes:

roslaunch atlascar2_bringup ackermann_bringup.launch

To control the car, publish a twist message to the /ackermann_steering_controller/cmd_vel topic.

A video example of the simulation can be seen here.

Calibration

In order to calibrate atlascar2 in the simulated environment, the user needs to run a separate gazebo world:

roslaunch atlascar2_gazebo gazebo_calibration.launch

And a separate bringup:

roslaunch atlascar2_bringup ackermann_bringup.launch yaw:=-1.57 x_pos:=0 y_pos:=2 z_pos:=0 calibration:=true

After that, follow the instructions on the ATOM package.