Skip to content

yashphalle/MapNGo-Simultaneous-Localization-Mapping-and-Optimized-Path-Planning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 MapNGo-Simultaneous-Localization-Mapping-and-Optimized-Path-Planning

MapNGo - ROS-based project on path planning for mobile robots. This project implements A*, Dijkstra and RRT algorithms for finding optimal paths through occupancy grid maps generated by SLAM (Simultaneous Localization and Mapping).

🧠 Features

  • Multiple Path Planning Algorithms: Includes A* and Dijkstra, RRT implementations (PRM support will be added soon).
  • Docker Support: Run the entire system in containers with no ROS installation required - No more "waiting for a lucky day" to get this project running!
  • TurtleBot3 Support: Currently configured and tested for the popular TurtleBot3 robot platform.🐢

📂 Project Structure

src/path_planning/ - Path planning algorithms

  • utils.hpp - Common utilities 
  • a_star_planner.cpp - A* algorithm implementation
  • dijkstra_planner.cpp - Dijkstra's algorithm implementation
  • rrt_planner.cpp - RRT algorithm implementation
  • path_planner_node.cpp - ROS node for path planning
  • path_follower.cpp - Path following controller

launch/ - Launch files

  • simulation.launch - Launches the simulation environment
  • slam.launch - Starts the SLAM mapping process
  • navigation.launch - Initiates path planning navigation

Other Files

  • Dockerfile - Building the Docker image
  • docker-compose.yml - Container orchestration configuration

MapNGo in Action!

Demo


🐳 Docker Installation - Run this project in a minute!

The easiest way to use MapNGo is with Docker:

# Pull the Docker image
docker pull yashphalle/mapngo:latest2

# Allow GUI applications
xhost +local:

# Run each component in separate terminals
# Terminal 1: ROS Master
sudo docker run -it --rm --network=host yashphalle/mapngo:latest2 roscore

# Terminal 2: Simulation
sudo docker run -it --rm --network=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" yashphalle/mapngo:latest2 roslaunch turtlebot_slam_navigation simulation.launch

# Terminal 3: SLAM
sudo docker run -it --rm --network=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" yashphalle/mapngo:latest2 roslaunch turtlebot_slam_navigation slam.launch

# Terminal 4: Navigation
sudo docker run -it --rm --network=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" yashphalle/mapngo:latest2 roslaunch turtlebot_slam_navigation navigation.launch algorithm:=astar

# Terminal 5: Keyboard Control
sudo docker run -it --rm --network=host --privileged --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --name mapngo-teleop yashphalle/mapngo:latest2 rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Selecting the Path Planning Algorithm:

To select the path planning algorithm (astar, dijkstra, rrt), set the algorithm argument when launching navigation(Command No. 4):

roslaunch turtlebot_slam_navigation navigation.launch algorithm:=astar

Replace astar with desired algorithm)

🛠️ Manual Installation

If you prefer to install and run without Docker:

Prerequisites:

ROS Noetic on Ubuntu 20.04 TurtleBot3 packages SLAM packages

# Clone this repository into your catkin workspace
cd ~/catkin_ws/src
git clone https://github.com/yashphalle/MapNGo-Simultaneous-Localization-Mapping-and-Optimized-Path-Planning.git

# Build
cd ~/catkin_ws
catkin_make

# Source the workspace
source ~/catkin_ws/devel/setup.bash

🔮 Future Scope

  1. More Robot Friends! 🤖 Extend beyond TurtleBot3 to support various robot platforms including custom robots, other commercial platforms, and simulated robots in different environments.

  2. Multi-Goal Point Navigation 🎯 Implement waypoint navigation capability allowing robots to navigate through a sequence of goal points, enabling complex missions and tasks.

  3. Multi-Agent Coordination System 👥 Develop coordination mechanisms for multiple robots to navigate simultaneously while avoiding collisions and optimizing overall fleet efficiency.

🤝 Team up?  Wondering if it’s your code or your robot’s mood swings? Let’s team up and sort this out.

LinkedIn: https://www.linkedin.com/in/yash-phalle-3b596b192/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors