![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster lidarbot lidarbot_aruco lidarbot_base lidarbot_bringup lidarbot_description lidarbot_gazebo lidarbot_gz lidarbot_navigation lidarbot_slam lidarbot_teleop |
Repository Summary
Description | A differential drive robot is controlled using ROS2 Humble running on a Raspberry Pi 4 (running Ubuntu server 22.04). The vehicle is equipped with a raspberry pi camera for visual feedback and an RPlidar A1 sensor used for Simultaneous Localization and Mapping (SLAM), autonomous navigation and obstacle avoidance. |
Checkout URI | https://github.com/thenoobinventor/lidarbot.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | raspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
lidarbot | 0.0.0 |
lidarbot_aruco | 0.0.0 |
lidarbot_base | 0.0.0 |
lidarbot_bringup | 0.0.0 |
lidarbot_description | 0.0.0 |
lidarbot_gazebo | 0.0.0 |
lidarbot_gz | 0.0.0 |
lidarbot_navigation | 0.0.0 |
lidarbot_slam | 0.0.0 |
lidarbot_teleop | 0.0.0 |
README
Lidarbot
A differential drive robot is controlled using ROS2 Humble running on a Raspberry Pi 4 (running Ubuntu server 22.04). The vehicle is equipped with a Raspberry Pi camera for visual feedback and an RPlidar A1 sensor used for Simultaneous Localization and Mapping (SLAM), autonomous navigation using the Nav2 stack. Additionally, an MPU6050 inertial measurement unit (IMU) is employed by the robot_localization
package on the robot, to fuse IMU sensor data and the wheel encoders data, using an Extended Kalman Filter (EKF) node, to provide more accurate robot odometry estimates.
Hardware components are written for the Waveshare Motor Driver HAT and MPU6050 sensor to be accessed by the ros2_control
differential drive controller and IMU sensor broadcaster respectively, via the ros2_control
resource manager.
<img src=docs/images/real_mapping.gif width="600">
A preprint of this work is available here.
- Lidarbot
🗃️ Package Overview
-
lidarbot_aruco
: Contains configuration, launch and node files to use ArUco markers with lidarbot. -
lidarbot_base
: Contains the ROS2 control hardware component for the lidarbot with low-level code for the Waveshare Motor Driver HAT. -
lidarbot_bringup
: Contains hardware component for the MPU6050 module, launch files to bring up the camera, lidar and the real lidarbot. -
lidarbot_description
: Contains the URDF description files for lidarbot, sensors andros2 control
. -
lidarbot_gazebo
: Contains configuration, launch and world files needed to simulate lidarbot in Gazebo Classic. -
lidarbot_gz
: Contains urdf, launch and world files needed to simulate lidarbot in Gazebo Fortress. -
lidarbot_navigation
: Contains launch, configuration and map files used for lidarbot navigation. -
lidarbot_slam
: Contains configuration files for the slam toolbox and RViz, launch file to generate maps using SLAM. -
lidarbot_teleop
: Contains configuration and launch files used to enable joystick control of the lidarbot in simulation and physically.
🧰 Hardware
Part list
The following components were used in this project:
Part | |
---|---|
1 | Raspberry Pi 4 (4 GB) |
2 | SanDisk 32 GB SD Card (minimum) |
3 | Two wheel drive robot chassis kit |
4 | Waveshare Motor Driver HAT |
5 | 2 x Motors with encoders and wire harness |
6 | MPU6050 board |
7 | RPlidar A1 |
8 | Raspberry Pi camera v1.3 |
9 | 3D printed stands for RPlidar A1 and RPi 4 |
10 | Mount for Raspberry Pi camera |
11 | Powerbank for RPi 4 (minimum output: 5V 3A) |
12 | Gamepad |
13 | Mini Travel Router (optional) |
14 | 3 Slot 18650 battery holder |
15 | 3 x 18650 batteries to power Motor Driver HAT |
16 | Female to Female Dupont jumper cables |
17 | Spare wires |
18 | Logitech C270 webcam (optional) |
Some other tools or parts used in the project are as follows:
Tool/Part |
File truncated at 100 lines see the full file
CONTRIBUTING
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |
![]() |
lidarbot repositoryraspberry-pi navigation imu lidar slam sensor-fusion pca9685 raspberry-pi-camera ros2 motor-driver mpu6050 rplidar hardware-interface differential-drive-robot diy-robot rviz2 gazebosim ros2-control ros2-humble imu-sensor-broadcaster |