Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content

Step 3: Robot Base Node ROS 2 Node

Introduction to Robotic Base Node

The Edge Insights for Autonomous Mobile Robots pipeline assumes that the robot base ROS 2 node:
  • Publishes
    • odom
      is used by the Navigation 2 package and others to get information from sensors, especially the wheel encoders. See this Navigation 2 tutorial on odometry for more information.
    • base_link
      represents the center of the robot to which all other links are connected.
  • Creates the transform between
  • Is subscribed to
    which is used by the Navigation 2 package to give instructions to the robot like spin in place or move forward
In Edge Insights for Autonomous Mobile Robots, there are two examples:
cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers ls 01_docker_sdk_env/artifacts/01_amr/amr_generic/param/pengo_nav.param.yaml ls 01_docker_sdk_env/artifacts/01_amr/amr_generic/param/aaeon_node_params.yaml # These are configuration files that the robot base nodes of Pengo and UP Xtreme i11 robotic kits. ls 01_docker_sdk_env/docker_compose/05_tutorials/aaeon_wandering__aaeon_realsense_collab_slam_fm_nav2.tutorial.yml ls 01_docker_sdk_env/docker_compose/05_tutorials/pengo_wandering__kobuki_realsense_collab_slam_fm_nav2.tutorial.yml # These are yaml files that start the full pipeline that makes these robots wander and area and map it. # In them you can find how each nodes are started.

Robotic Base Node Deep Dive

The following commands only work only if they are run on Cogniteam’s Pengo robot or AAEON’s UP Xtreme i11 Robotic Kit.
Using the Cogniteam’s Pengo robot and AAEON’s UP Xtreme i11 Robotic Kit as references and starting their node like this:
cd <edge_insights_for_amr_path>/Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers source ./01_docker_sdk_env/docker_compose/common/docker_compose.source export CONTAINER_BASE_PATH=`pwd` export ROS_DOMAIN_ID=27 # for Cogniteam's Pengo robot docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/pengo_wandering__kobuki_realsense_collab_slam_fm_nav2.tutorial.yml up kobuki # or for UP Xtreme i11 Robotic Kit docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/aaeon_wandering__aaeon_realsense_collab_slam_fm_nav2.tutorial.yml up aaeon-amr-interface
In a different terminal, attach to the opened Docker* image:
docker exec -it amr-aaeon-amr-interface bash # or docker exec -it amr-kobuki bash source export ROS_DOMAIN_ID=27
You can check the following:
  • ROS 2 topics
    ros2 topic list # The result for UP Xtreme i11 Robotic Kit is similar to: # /amr/cmd_vel # /amr/imu/raw # /amr/initial_pose # /amr/odometry # /parameter_events # /rosout # /sensors/battery_state # /tf # The result for the Pengo robot contains multiple topics but the crucial to this pipeline are: # /cmd_vel # /joint_states # /rosout # /odom # /parameter_events # /tf
  • odom
    ros2 run tf2_tools cp frames.pdf /home/<user> # Open the pdf through file explorer, it should look similar to:

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at