Autonomous Mobile Robot Navigation With ROS (Jetson Nano + Arduino + Lidar + Extended Kalman Filter)

I built and programmed an autonomous, two-wheeled differential drive robot from scratch. The robot uses the ROS Navigation Stack and the Jetson Nano. The ROS Navigation Stack is a collection of software packages that you can use to help your robot move from a starting location to a goal location safely.

Video Demo

Code and Step-by-Step Instructions: How to Set Up the ROS Navigation Stack on a Robot – Automatic Addison

The technologies and tools used by this robot include the following:

  • ROS 1 (Melodic)
  • NVIDIA Jetson Nano
  • Arduino Uno
  • Extended Kalman Filter (robot_pose_ekf package for sensor fusion)
  • Differential drive kinematics (base controller)
  • RPLIDAR (obstacle detection)
  • BNO055 IMU sensor (orientation)
  • 12V 333 RPM JGB37-520B motors with wheel encoders (motion and odometry)
  • RViz (visualization)
  • move_base node (path planning)
  • Adaptive Monte Carlo Localization (AMCL)
  • C++
  • Python
1 Like

Cool, thanks for sharing! Great to see projects using ROS.

Also, love your website (assuming you are the Automatic Addison). I have referenced it myself when working on ROS/ROS2 stuff…keep up the great work!