Skip to content

Installation and Documentation

Luca Bartolomei edited this page Jul 1, 2022 · 11 revisions

Installation instructions

Install the following packages first:

$ sudo apt install libeigen3-dev python3wstool
$ sudo apt install ros-noetic-cmake-modules ros-noetic-velodyne-gazebo-plugins ros-noetic-ompl ros-noetic-move-base ros-noetic-navfn ros-noetic-dwa-local-planner ros-noetic-costmap-2d ros-noetic-teb-local-planner ros-noetic-robot-self-filter ros-noetic-pointcloud-to-laserscan ros-noetic-ros-numpy 
$ sudo apt install ros-noetic-octomap-ros ros-noetic-octomap-server ros-noetic-pcl-ros ros-noetic-pcl-conversions ros-noetic-grid-map-costmap-2d ros-noetic-grid-map-ros ros-noetic-map-server ros-noetic-global-planner ros-noetic-grid-map-filters ros-noetic-grid-map-visualization

Then follow the instructions here to set up the simulation. Then, to build the planner:

$ catkin build smb_path_planner

Troubleshooting

If there are problems due to linking against pthread or boost, build with following command:

$ catkin build smb_path_planner --cmake-args -DBUILD_SHARED_LIBS=ON

Documentation

Path Planning Tutorial

The slides of the path planning tutorial for the 2022 summer school can found here (PDF version).

Additional documentation

Additional documentation can be found in the ROS Wiki:

  • Documentation about move_base can be found here;
  • Documentation about global_planner can be found here;
  • Documentation about the local planner: refer to the TEB Local Planner instructions here;
  • Documentation about costmap_2d can be found here.

Structure of the code

The smb_path_planner package is composed by these packages:

  • smb_navigation: package containing utilities, configurations and launch files for the planning with move_base;
  • smb_navigation_scripts: package containing utility scripts (e.g. point cloud processing; waypoint follower);
  • smb_ompl_planner: global planner for move_base based on the OMPL library for motion planning;
  • smb_navigation_rviz: package containing the RViz plugin to put a goal for the planner easily;
  • traversability_layer: custom costmap_2d implementation to incorporate traversability maps.

Planning Panel in RViz

This tool can be used to set the goals for the path planner.

Make sure all the packages have built successfully. As a sanity check, re-source your workspace ($ source ~/catkin_ws/devel/setup.bash) and start up RViz ($ rviz). In RViz, select Panels -> Add New Panel and select Planning Panel under smb_navigation_rviz.

Next, under Displays, add an InteractiveMarkers display with the topic /planning_markers/update. You should be able to see the interactive markers and the planning panel.