Skip to content
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Workshop 7 Navigation

gcielniak edited this page Nov 17, 2022 · 16 revisions

First, make sure that you have a working copy of the course's repository in your workspace. Pull all the recent updates by issuing git pull. The tutorial code is included in the uol_cmp9767m_tutorial folder.

Task 1 - Fun with move_base

Run our simulation environment but this time without the default move_base component: roslaunch bacchus_gazebo vineyard_demo.launch launch_move_base:=false. We will want to modify move_base parameters and hence we will run it from a separate launch file. Then start the basic move_base node by issuing roslaunch uol_cmp9767m_tutorial move_base.launch. In rviz add visualisations for local and global paths: rviz option "Add/By topic/" and then thorvald_001/TrajectoryPlannerROS/global_plan and .../local_plan. Change colours so you can differentiate between the paths. Finally, change the navigation goal topic by selecting from rviz menu "Panels/Tool Properties" and prepending '/thorvald_001' to the 2D Nav Goal topic. You should be able now to send the robot from the rviz interface to any place by specifying 2D Nav Goal from the top menu. You can select the target position of the robot in the map and its orientation using the arrow.

Task 2 - Obstacle avoidance

Navigate close to the map borders and investigate if the robot can operate safely in the presence of borders. Inspect the config/costmap_common_parameter.yaml file and change the values for global_inflation layer such that the robot does not get stuck near the walls.

In the simulator, place an obstacle in front of the robot and issue a navigation goal in a straight line behind the obstacle. Note the behaviour of the robot. Change values of the local_inflation_layer and obstacle_layer to assure safe operation of the robot in the presence of local obstacles.

Task 3 - Global planner

In rviz, issue 2D navigation goal commands and inspect the global trajectory. Place an obstacle in front of the robot and check if that affects the global path. Introduce global re-planning every 10 s (planner_frequency parameter) and note the differences in the planning behaviour. Inspect the optimisation potential in rviz.

Compare carrot planner and global_planner by specifying a goal that lays in an obstacle. What is the difference in the robot's behaviour?

Compare the trajectories resulting from Dijkstra and A* search strategies.

Task 4 - Local planner

In rviz, issue 2D navigation goal commands and inspect the local trajectory. Change the sim_time parameter to 10 s and note the differences in robot behaviour and local/global trajectory alignment. Compare the default Trajectory Rollout strategy to Dynamic Window Approach (DWA).

Adjust the trajectory scoring mechanism. What are the optimal parameters for navigating with an obstacle in front of the robot?

Clone this wiki locally