VSLAM, Navigation and sensor fusion using ADI ToF and IMU with NVIDIA AGX Orin

Autonomous mobile robots (AMRs) continue to grow in popularity and capability, especially as manufacturers like Analog Devices develop increasingly intelligent sensors and control systems to help them navigate. In this article, learn more about using the ROS2 package, ADI ToF sensor, ADI inertial measurement unit and NVIDIA Jetson AGX Orin developer kit to perform AMR navigation on ROS2-equipped robots.

About

Table of Contents

  • AMR Overview system contains brief details about the system block diagram, which shows how the various parts are interconnected.
  • One must set up prerequisites for the AGX Orin kit, EVAL-ADTF3175D-NXZ module, and ADIS16470 IMU before running the entire navigation pipeline. Information on ROS2 setup and necessary dependent software packages can be found in Software requirements.
  • To avoid any software dependency errors in the future, we advise carefully following this step. Setup for ToF provides the standard method of flashing an image for the EVAL-ADTF3175D-NXZ.
  • To connect the inertial measurement unit ADIS16470 via USB on AGX Orin, an additional connection is needed. In Setup for IMU, the specific setup instructions for ADIS16470 are provided.
  • One must be able to access IR and Depth data coming from EVAL-ADTF3175D-NXZ in AGX Orin to follow the instructions in Interfacing Tof With AGX Orin. To make it simple to integrate with ROS2 software stacks, this data will be presented as ROS2 topics.
  • Similarly, by following the instructions in Interfacing Imu with AGX Orin, ADIS16470 IMU data can be accessed in ROS2 topics.
  • Creating a map of its surroundings is critical for AMR to perform autonomous navigation. In our case, we used the well-known RTAB-Map algorithm to create a map from Time-of-Flight sensor data. The RTAB-Map library is available as ROS2 packages. Follow the instructions in Interfacing TOF With RTABMAP to determine whether RTAB-Map only works with the EVAL-ADTF3175D-NXZ sensor.
  • Navigation with TOF Tutorial on AMR and Sensor Fusion and Navigation with TOF Tutorial on AMR both provide a comprehensive tutorial on autonomous navigation performed on EIC developed AMR. This AMR is controlled by AGX Orin, and external sensors EVAL-ADTF3175D-NXZ and ADIS16470 were connected.
  • Customers who have their own custom AMR will find a special guide in Working with NON-EIC AMR on how to integrate their AMR with the system mentioned in this guide. This section also discusses software changes so that this system can be customized to their needs.

Overview System

  • Figure 1 shows a high-level system block diagram of an AMR navigation system based on ToF. The entire software stack is designed with the Robot Operating System (ROS). In our AMR, the AGX Orin kit served as the core processor, on which all the ROS2 Humble nodes through docker ran, and the AMR's motion was controlled. As external sensors, EVAL-ADTF3175D-NXZ and ADIS16470 were connected to AGX Orin. The EVAL-ADTF3175D-NXZ is equipped with an I.MX8 embedded board that includes sensor driver and ROS node packages. It is USB-connected to the AGX Orin and publishes all topics in ROS1 format.
Figure 1 Block Diagram of ToF-based AMR navigation system
Figure 1: Block diagram of ToF-based AMR navigation system

AMR Navigation System Block Diagram

  • Because the system was developed in ROS2, we used the ros1 bridge package inside AGX Orin to port ToF's ROS1 topics to ROS2. Other ROS2 Humble nodes that are used for navigation include the RTAB-Map node, the ROBOT LOCALIZATION node, the NAV2 node, and the IMU Driver node are running inside ROS2 humble docker container as shown in above Figure.
  • In EIC developed AMR, the lower-level motor control and wheel odometry was handled using micro-ROS agent. On Jetson AGX Orin, there was a micro-ROS agent running which communicates with a microcontroller over the serial interface. Furthermore, microcontroller sends the control signal coming from Jetson to the motor driver and gives wheel encoder feedback to Jetson. This setup is applicable to only EIC developed AMR. For any custom AMR the setup for handling lower-level motor control and wheel encoder feedback mechanism might differ. For the detail one can refer blog: click here

    Note: RTAB-Map takes external odometry as input to utilize its SLAM (Simultaneous Localization and Mapping) algorithm. In EIC developed AMR, we used wheel odometry as an external odometry source. We used sensor fusion to improve the odometry by combining IMU data with wheel odometry using ROBOT_LOCALIZATION (EKF) package.

Latest News

Sorry, your filter selection returned no results.

We've updated our privacy policy. Please take a moment to review these changes. By clicking I Agree to Arrow Electronics Terms Of Use  and have read and understand the Privacy Policy and Cookie Policy.

Our website places cookies on your device to improve your experience and to improve our site. Read more about the cookies we use and how to disable them here. Cookies and tracking technologies may be used for marketing purposes.
By clicking “Accept”, you are consenting to placement of cookies on your device and to our use of tracking technologies. Click “Read More” below for more information and instructions on how to disable cookies and tracking technologies. While acceptance of cookies and tracking technologies is voluntary, disabling them may result in the website not working properly, and certain advertisements may be less relevant to you.
We respect your privacy. Read our privacy policy here