Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A comprehensive repository for a SLAM-enabled autonomous robot, integrating hardware control, simulation, and navigation within ROS 2.

License

Notifications You must be signed in to change notification settings

f0rgotteng0d/autoport

Repository files navigation

Autoport - A SLAM Bot

SLAM-enabled autonomous robot that builds real-time maps and localizes itself for navigation in unknown environments.

Table of Contents

About the Project

Autoport is a ROS 2-powered mobile robot designed for autonomous exploration, mapping, and navigation using Simultaneous Localization and Mapping (SLAM). Built on affordable hardware like the Raspberry Pi and common sensors, Autoport serves as a platform for robotics research, education, and prototyping.

Tech Stack

Getting Started

Prerequisites

  • Hardware

    • Raspberry Pi 4/5 (recommended) or Jetson Nano
    • LIDAR (e.g., RPLidar A1/A2, LDS08 Lidar, Hokuyo)
    • IMU (ISM330DHCX / MPU6050 / BNO055 / etc.)
    • Motor driver (L298N / TB6612FNG / ODrive)
    • Differential drive base
  • Software

    • Ubuntu 22.04 or 24.04 (or supported ROS 2 distro)

    • ROS 2 Humble / Jazzy You can visit the official ROS Site to install ROS.

    • slam_toolbox or cartographer

    • #Update apt and install slam_toolbox
        sudo apt update
        sudo apt install ros-<ROS_DISTRO>-slam-toolbox
      
      #Source the ROS environment
        source /opt/ros/<ROS_DISTRO>/setup.bash
      
      #(Optional) Verify package executables
        ros2 pkg executables slam_toolbox
      
    • ros2_control + nav2

      #Install ros2_control
        sudo apt update
        sudo apt install -y \
        ros-$ROS_DISTRO-ros2-control \
        ros-$ROS_DISTRO-ros2-controllers \
        ros-$ROS_DISTRO-controller-manager \
        ros-$ROS_DISTRO-hardware-interface \
        ros-$ROS_DISTRO-transmission-interface
      
      #Install Nav2
        sudo apt update
        sudo apt install -y \
        ros-$ROS_DISTRO-nav2-bringup \
        ros-$ROS_DISTRO-navigation2 \
        ros-$ROS_DISTRO-nav2-map-server \
        ros-$ROS_DISTRO-nav2-amcl \
        ros-$ROS_DISTRO-nav2-lifecycle-manager
      
      
      
      

Installation

git clone https://github.com/f0rgotteng0d/autoport.git

Usage

In different terminals, run the following commands -

ros2 launch autoport_bot launch_robot.launch.py
ros2 launch rplidar_ros rplidar_a2m8_launch.py
ros2 launch slam_toolbox online_async_launch.py params_file:=./src/autoport_bot/config/mapper_params_online_async.yaml use_sim_time:=false
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/diff_cont/cmd_vel_unstamped

Results and Demos

Using real-time 2D SLAM and laser scanner data, an accurate occupancy grid map of an indoor environment was generated. The map below demonstrates the quality and detail achievable in typical room settings.

SLAM Map Example

Screenshot from 2025-09-06 16-27-46

Watch this simulation showcasing the Nav2 navigation stack in action for autonomous robot path planning and obstacle avoidance.
Watch the video

Project Report

Read the full project report here.

Future Work

  • Add support for a camera onboard to increase accuracy
  • Expand environment types to adapt to outdoors or tricky terrain
  • Improve power efficiency
  • Make another custom bot and enable collaborative SLAM

Troubleshooting

  • Cannot connect to serial port

    • Ensure the serial device path is correct (/dev/ttyUSB0 or equivalent).
    • Verify you have permission to access the device (try sudo or add your user to the dialout group).
    • Confirm the cable and hardware connections are secure.
  • Motors stop working

    • Check your motor driver is functional and outputs proper voltage.
    • Verify your connections and try changing cables.
    • Make sure battery is properly charged.
  • No data received from Lidar or motors

    • Check that the device is powered and turned on.
    • Verify baud rate and serial parameters match device specs.
    • Inspect wiring and connectors for faults.
  • ROS node fails to start or crashes

    • Confirm all ROS dependencies are installed.
    • Verify environment is sourced (source install/setup.bash).
    • Check logs for errors and missing configurations.
  • Communication timeouts or errors

    • Increase serial timeout settings in parameters.
    • Close other applications that might be using the serial port.

Contributors

Acknowledgements and Resources

About

A comprehensive repository for a SLAM-enabled autonomous robot, integrating hardware control, simulation, and navigation within ROS 2.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published