Skip to content

musabkas/MR_Proj_SLAM-Navigation

 
 

Repository files navigation

Project Overview

This project focuses on the development of an autonomous differential-drive robotic system designed to navigate complex disaster-stricken environments. Leveraging SLAM (Simultaneous Localization and Mapping) and the Nav2 toolset in ROS2, the robot operates within simulated environments using Gazebo. It autonomously detects obstacles, updates its environmental map in real time, and navigates to specified goal points with precision. The primary goal of this system is to facilitate effective navigation and victim assistance in unpredictable and hazardous scenarios. By utilizing lidar data and advanced path planning algorithms, the robot achieves accurate and efficient navigation, as demonstrated in simulation tests conducted in unfamiliar environments.

Demo Photos

How to use

Build: colcon build --symlink-install
Source: source install/setup.bash
Run: ros2 launch differential_drive_robot robot.launch.py

Load RViz2 with the command rviz2. Then go into File -> Open Config -> select default_nav.rviz from the config folder of this repo

Setup worlds

You can change worlds by changing world index in robot.launch.py worlds list. Worlds are: Office, [REDACTED] Construction, Maze [/REDACTED]
For setup, first download the maps and unzip it, this should give you a worlds folder containing 3 subfolders For setup, add the following line into ~/.bashrc just before sourcing ros: export GAZEBO_MODEL_PATH=/usr/share/gazebo-11/models:/home/musab/MR_Proj_SLAM-Navigation/worlds/slam_maps/gazebo_models_worlds_collection-master/models:/home/musab/MR_Proj_SLAM-Navigation/worlds/common_models:/home/musab/MR_Proj_SLAM-Navigation/worlds/small_maze
Some of the paths above will be modified for your machine, (up till the part where it says /home/musab/ from thereon it should stay same)

Here's a photo of the end of my bashrc file for reference: World Setup

Setup navigation

Install slam toolbox, navigation2 and nav2_bringup for ros-humble

About

ROS2 implementation of a differential drive robot in an unknown environment with a target position.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 95.2%
  • CMake 4.8%