Launching SLAM

1. Overview

This application note describes steps required to launch LIDAR-based navigation and SLAM on iRobot Create3 with NavQPlus used as a compute board.

The application note assumes that the necessary hardware and software setup is done. See Related Topics for AN on how to perform the setup.

2. Preparation

Put your robot on the floor, make sure there are no dangling wires that could damage the robot or the NavQPlus board during the movements.

3. Launching SLAM/Navigation Stack

Use the following sequence to launch the ROS2 navigation stack on NavQPlus.

  1. Start the Teminal application to open a terminal window.

  2. Log in to the NavQPlus console:

    ssh user@<navqplus-ip>
  3. Make sure USB port #1 is in the host mode:

    sudo sh -c 'echo host > /sys/kernel/debug/usb/38100000.usb/mode' && lsusb

    Output:

    Bus 002 Device 002: ID 0451:8140 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 2109:0101 VIA Labs, Inc. USB 2.0 BILLBOARD Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub Bus 001 Device 003: ID 10c4:ea60 Silicon Labs CP210x UART Bridge Bus 001 Device 002: ID 0451:8142 Texas Instruments, Inc. TUSB8041 4-Port Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  4. Place the robot on the initial place outside the charging base.

  5. Start the ROS2 navigation stack:

  6. Keep the terminal window open for the period of navigation.

3.1. Launching SLAM/Navigation Stack with PMD Flexx2 Camera

By default navigation stack does not start the ToF camera node, thus resorting to LIDAR-only navigation and SLAM. However, enabling of the ToF Camera nodes allows for enhanced object avoidance during navigation because the camera input “sees” small objects in front of the robot which lie below the LIDAR scan plane.

To start the ROS2 navigation stack with the enabled ToF camera node, perform steps from Launching SLAM/Navigation Stack with replacing of the start navigation stack command with the following one:

NOTE: The default configuration expects that the PMD Flexx2 is mounted as described in the https://voxelbotics.atlassian.net/wiki/spaces/DOC/pages/62914571 application note.

4. Launching Rviz

  1. Start the Teminal application to open a new terminal window.

  2. Start Rviz by typing the following command:

  3. Keep the terminal window opened for the period of navigation.

4.1. Rviz Flat Mode

The flat mode allows seeing top view of the robot on the map as compared to the isometric projection in the default configuration. Moreover, the flat mode configuration allows showing the navigation paths as they being computed by the navigation stack which may help debugging navigation issues.

For activating the flat mode proceed with steps from Launching Rviz with replacing the start command with the following one:

The result of flat mode launch would look similar to the screen shot below:

4.2. Setting Movement Goals in Rviz

In the Rviz window use the 2D Goal Pose toolbar button and then click to the location you want the robot to move to.

The robot moves to the assigned point.

4.3. Navigation Through Waypoints

In the Rviz window perform the following steps:

  1. Open the Panels->Add new panel menu and select Navigation 2. The Navigation 2 panel is displayed in Rviz window.

  2. In the Displays view press Add, in the By Topic tab select /waypoints (Marker Array) to add Marker Array to the Displays view.

  3. On the Rviz menu toolbar press the + sign and select nav2_rviz-plugins. A new button, Nav2 Goal, appears on the toolbar.

  4. In the Navigation 2 panel press Startup Waypoint/Nav through Poses Mode.

  5. Press Nav2 Goal on the toolbar and click on the map in Rviz window to specify a way point. wp_1 appears on the map.

  6. Repeat step 5 to specify more way points.

  7. To make the robot follow way points starting from wp_1 press Start Waypoint Following in Navigation2.

  8. To remove the current way points in the Displays view clear the Marker Array checkbox.

  9. To set up a new root for the robot using waypoints feature, check the Marker Array checkbox and start from Step 4.

5. Related Topics