/Obstacle-Avoidance-Using-Ros-Gazebo

This project is done under SRA assignments, Obstacle Avoidance Using Ros and Gazebo.

Primary LanguageCMakeMIT LicenseMIT

Obstacle-Avoidance-Using-Ros-Gazebo

Obstacle avoiding Differential drive bot using ROS and Gazebo. The robot design and other requirements can be found in this PDF.

Table of Contents

About The Project

Tech Stack

Technologies used for this project:

File Structure

.
├── my_robot_urdf                                # package containing urdf and launch files.            
|    ├── urdf                                    
|    |   ├── dd_robot.gazebo                     # contains all gazebo plugins.
|    |   ├── dd_urdf.xacro                       # contains the main urdf model of dd robot.
|    |   ├── material.xacro                      # contains colors for dd robot.
|    |   └── wheels.xacro                        # contains wheels
|    └── launch
|        ├── rviz.launch                         # For launching bot in Rviz(ROS debugging tool).
|        ├── gmapping.launch
|        └── robot.launch                        # For spawning bot in Gazebo(Simulation).
|
├── motion_plan                                  
|   ├── OA.py                                    # Obstacle Avoidance algorithm.
|   ├── reading_laser.py                         # Getting laser sensor readings.
|   └── go-to-point.py                           # Motion Planning Algorithm
|
└── my_worlds                                    # Environment for Simulation of dd bot in Gazebo 
    ├── worlds                  
    |    ├── world01.world                       # Environment 1
    |    └── world02.world                       # Environment 2
    ├── launch 
        └── world.launch                         # For launching Gazebo world 

Getting Started

  1. Clone this repository in cd catkin_ws/src folder and run catkin_make.
  2. Launch your terminal and run the command roslaunch my_worlds <world_name>.launch. This will launch the gazebo environment.
  3. In another terminal, run the command roslaunch my_robot_urdf robot.launch. This will load the dd robot in the gazebo environment at the origin.
  4. In another terminal run rosrun motion_plan OA.py. This will start the robot and obstacle avoidance algorithm.
  5. In another terminal rosrun motion_plan go-to-point.py. This will start the robot and motion planning algorithm.

Prerequisites

Installation

Clone the repo

git clone https://github.com/Git-Saurabh5/Obstacle-Avoidance-Using-Ros-Gazebo.git

Results and Demo

GIF

Obstacle Avoidance:

Moving to Desired co-ordinates:

Gmapping:

Video

Future Work

  • Motion Planning Algorithm
  • G-Mapping Algorithm
  • Path Planning Algorithm

Troubleshooting

  • Common errors while configuring the project

Contributors

Acknowledgements and Resources

License

This project is licensed under the MIT License - see the LICENSE file for details