This repository contains the ROS2 software stack for a custom-built mobile robot. The project integrates a Raspberry Pi for high-level processing and an Arduino for low-level motor control and odometry data.
The system is designed as a small-scale mobile platform using a differential drive configuration. It currently supports manual movement and real-time data acquisition from a LiDAR sensor. The software architecture is modular, allowing for future implementation of autonomous navigation and SLAM.
- ROS2 Middleware: Built and organized using ROS2 packages.
- Hardware Bridge: A custom Python-based serial bridge (arduino_bridge) translates ROS wheel_velocities into hardware-level commands.
- Sensor Integration: Real-time data streaming from a LiDAR sensor via the urg_node2 driver.
- Digital Twin: Comprehensive URDF/Xacro models for robot visualization and transform (TF) broadcasting.
- arduino_bridge_new: Manages serial communication, wheel velocity commands, and odometry calculations.
- bot_bringup: Contains central launch files for hardware configuration and localization.
- bot_controller: Implements a simple controller node to handle movement logic.
- bot_description: Holds the URDF models, 3D meshes (STL/DAE), and visualization configs.
- bot_localization: Configured for sensor fusion, including IMU republishing and Kalman filtering.
- imu_mpu6050: Driver node for the MPU6050 Inertial Measurement Unit.
- urg_node2: Driver for Hokuyo URG LiDAR sensors.
- turtlebot_navigation: Package reserved for future SLAM and Nav2 configurations.
- Compute: Raspberry Pi.
- Microcontroller: Arduino (Motor control and encoder feedback).
- Lidar: Hokuyo URG Series (connected via USB/Serial).
- Chassis: Differential drive mobile base.
| Robot Hardware | Side View |
|---|---|
![]() |
![]() |
- Manual Robot Movement
movement.mp4
- LiDAR Data Visualization
lidar.mp4
- Clone the workspace:
git clone https://github.com/yenode/Autonomous-Mobile-Bot.git- Install dependencies:
rosdep install --from-paths src --ignore-src -r -y- Build the workspace:
colcon build --symlink-install
source install/setup.bash- Launch the hardware bridge:
ros2 launch arduino_bridge_new arduino_bridge_persistent.launch.py- Bring up the LiDAR sensor:
ros2 launch urg_node2 urg_node2_persistent.launch.py- Launch the central hardware configuration:
ros2 launch bot_bringup hardware_configure.launch.xml- Software & ROS2 Integration: yenode
- Hardware Design & Management: hexqolff
This project is licensed under the MIT License.

