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.
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