-
Notifications
You must be signed in to change notification settings - Fork 13
Workshop 8 ‐ Localization
-
Install the visualization marker for the localization particles:
sudo apt install ros-humble-nav2-rviz-plugins
-
Run our simulation environment:
ros2 launch limo_gazebosim limo_gazebo_diff.launch.py
. -
After that, run the navigation capabilities for our LIMO robot:
ros2 launch limo_navigation limo_navigation.launch.py
-
In
rviz
add the following visualisation:ParticeCloud
. Don't forget to change:- the
Topic
to\particle_cloud
, - the
Min Arrow Length
to0.1
so to be able to see the particles - Expanding Topic, change the
History Policy
toKeep all
andReliability Policy
toBest Effort
- the
-
Now, teleoperate the robot (e.g. by using 2D Nav Goal in rviz as described in Workshop 7 or by using keyboard
ros2 run teleop_twist_keyboard teleop_twist_keyboard
) and note the behaviour of the amcl particles together with localisation quality. If your robot gets lost, you can callros2 service call /reinitialize_global_localization std_srvs/srv/Empty
to re-initialise all particles uniformly over the map.
The quality of AMCL estimation heavily depends on the initial pose estimate - try out different "guesses" which should be close, medium and far from the actual location and see how these affect the quality of estimation and its convergence.
- This can be done by modifying the parameters set in
limo_navigation/params/nav2_params.yaml
Try out other critical parameters of the amcl node (number of particles (min, max), resample interval) and observe the difference in the results.
-
Launch the simulation environment which is going to be used for the final assessment. You can use the instruction at the following link
-
Modify the
limo_localization.launch.py
file so to load the correct map for localizing the robot in this environment. In particular:- Modify line
48
from pointing at the filemap.yaml
toassessment_map.yaml
- Modify line
-
In a new terminal, launch the navigation stack
ros2 launch limo_navigation limo_navigation.launch.py
. -
Now, similarly to last week's workshop's Task 3, use
rqt
to modify theinflation_radius
of theglobal_
andlocal_
costmap so to find a working solution that allows your robot to have enough free space where to plan its path.