Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content
Contents

ITS Path Planner ROS 2 Navigation Plugin

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:
  1. The ITS planner converts the 2D costmap to either a Probabilistic Road Map (PRM) or a Deterministic Road Map (DRM).
  2. The generated roadmap is saved as a txt file which can be reused for multiple inquiries.
  3. 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

  1. Check if your installation has the eiforamr-full-flavour-sdk Docker* image.
    docker images |grep eiforamr-full-flavour-sdk #if you have it installed, the result is: eiforamr-full-flavour-sdk
    If the image is not installed, continuing with these steps
    triggers a build that takes longer than an hour
    (sometimes, a lot longer depending on the system resources and internet connection).
  2. If the image is not installed, Intel recommends installing the Robot Complete Kit with the Get Started Guide for Robots.
  3. Go to the
    AMR_containers
    folder:
    cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers
  4. Prepare the environment setup:
    source ./01_docker_sdk_env/docker_compose/common/docker_compose.source export CONTAINER_BASE_PATH=`pwd`
  5. Start the ROS 2 navigation sample application using the TurtleBot* 3 Gazebo* simulation:
    CHOOSE_USER=eiforamr docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/its_path_planner.tutorial.yml up
    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.
    1. Set the robot
      2D Pose Estimate
      in rviz2:
      1. Set the initial robot pose by pressing
        2D Pose Estimate
        in rviz2.
      2. At the robot estimated location, down-click inside the 2D map. For reference, use the robot pose as it appears in Gazebo*.
      3. Set the orientation by dragging forward from the down-click. This also enables ROS 2 navigation.
    2. 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.
    3. Set new destinations for the robot, one at a time.
    4. 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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.