Visible to Intel only — GUID: GUID-D1EED611-A711-4630-8751-87C7764255CB
Visible to Intel only — GUID: GUID-D1EED611-A711-4630-8751-87C7764255CB
Run ROS 2 Navigation Sample Applications Using the ITS Path Planner Plugin in a Docker* Container
The ITS Plugin for the ROS 2 Navigation 2 application plugin is a global path planner module that is based on Intelligent sampling and Two-way Search (ITS). It does not support continuous replanning.
Prerequisites: Use a simple behavior tree with a compute path to pose and a follow path.
ITS planner inputs:
global 2D costmap (nav2_costmap_2d::Costmap2D)
start and goal pose (geometry_msgs::msg::PoseStamped)
ITS planner outputs: 2D waypoints of the path
Path planning steps summary:
The ITS planner converts the 2D costmap to either a Probabilistic Road Map (PRM) or a Deterministic Road Map (DRM).
The generated roadmap is saved as a txt file which can be reused for multiple inquiries.
The ITS planner conducts a two-way search to find a path from the source to the destination. Either the smoothing filter or a catmull spline interpolation can be used to create a smooth and continuous path. The generated smooth path is in the form of a ROS 2 navigation message type (nav_msgs::msg).
For customization options, see ITS Path Planner Plugin Customization.
Run the ROS 2 Navigation Sample Application Using ITS Path Planner
Go to the AMR_containers folder:
cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_<version>/AMR_containers
Prepare the environment setup:
source 01_docker_sdk_env/docker_compose/05_tutorials/config/docker_compose.source export CONTAINER_BASE_PATH=<edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers
Start the ROS 2 navigation sample application using the turtlebot3 Gazebo* simulation:
CHOOSE_USER=eiforamr docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/its_path_planner.tutorial.yml up
NOTE:The above command opens Gazebo* and rviz2 applications. Gazebo* takes a longer time to open (up to a minute) depending on the host’s capabilities. Both applications contain the simulated waffle map, and a simulated robot. Initially, the applications are opened in the background, but you can bring them into the foreground, side-by-side, for a better visual.Set the robot 2D Pose Estimate in rviz2:
Set the initial robot pose by pressing 2D Pose Estimate in rviz2.
At the robot estimated location, down-click inside the 2D map. For reference, use the robot pose as it appears in Gazebo*.
Set the orientation by dragging forward from the down-click. This also enables ROS 2 navigation.
In rviz2, press Navigation2 Goal, and choose a destination for the robot. This calls the behavioral tree navigator to go to that goal through an action server.
Expected result: The robot moves along the path generated to its new destination.
Set new destinations for the robot, one at a time.
To close this, do one of the following:
Type Ctrl-c in the terminal where you did the up command.
Run this command in another terminal:
CHOOSE_USER=eiforamr 01_docker_sdk_env/docker_compose/05_tutorials/its_path_planner.tutorial.yml down
Troubleshooting
For general robot issues, go to Troubleshooting for Robot Tutorials.