For JAZZY Version, change the branch to ROS2_JAZZY.
This repository contains a complete SLAM pipeline for a differential drive robot using ROS 2, simulated in Gazebo or deployed on hardware. It uses SLAM Toolbox, Nav2 stack, and custom control nodes.
slamurai_ws/
├── src/
│ ├── slamurai_description
│ ├── slamurai_controller
│ ├── slamurai_mapping
│ ├── slamurai_firmware
│ ├── slamurai_localization
│ └── ... (other packages)
cd ~/slamurai_ws/src
git clone https://github.com/RobosocNITH-ROS/SLAM_CAR.gitcd ~/slamurai_ws
rosdep install --from-paths src --ignore-src -r -yMake sure you have required system packages too:
sudo apt update
sudo apt install python3-colcon-common-extensions ros-humble-navigation2 ros-humble-slam-toolboxReplace
humblewith your ROS 2 distro if different.
cd ~/slamurai_ws
colcon build --symlink-install
source install/setup.bashFor Gazebo Simulation:
ros2 launch slamurai_description gazebo.launch.pyFor Hardware Interface:
ros2 launch slamurai_firmware hardware_interface.launch.pyFor LIDAR Hardware Only:
ros2 launch slamurai_localization lidar.launch.pyros2 launch slamurai_controller controller.launch.pyros2 launch slamurai_mapping slam.launch.pyros2 run slamurai_controller teleop_custom.pyrviz2Add the following plugins manually:
- RobotModel
- TF
- LaserScan (select
/scantopic) - Map
- Pose
- Odometry
- Global/Local Costmaps (if using Nav2 later)
- SLAM Toolbox GUI (optional)
- Ensure all sensors (e.g., LIDAR, IMU) are publishing to correct topics.
- Check TF tree using
ros2 run tf2_tools view_framesif transforms are missing. - Use
ros2 topic echo <topic_name>for debugging topic data.
- Add Nav2 Navigation stack for autonomous navigation.
- Integrate camera and ArUco marker detection.
- Use MoveIt for robotic arm control (if available).