KavitShah1998 / Autonomous_Mobile_Robot_Navigation_In_ROS

A project for Motion Planning: Combined application of A* with RRT* where A* acts as a global planner and RRT* acts as a local planner

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Combined A* with RRT* in ROS

Overview

This is a package for a generalized motion planning stack developed for ROS Melodic & Ubuntu 18.04. The package is an implementation of hierarchical motion planning where-in giving complete flexibility to the user to choose & work with motion planning algorithms of your choice. The package currently uses A* as a global planner for optimal planning & RRT* as a local planner for quick replanning on encountering static unforseen obstacles & thus helps to plan in static environments under uncertainty

The package allows user to choose any of discrete motion planning algorithm as (A*, Dijkstra, D* ,etc) and even any of sampling based motion planning algorithm such as (RRTs, PRMs, etc) as local / global planner as per choice.

Keywords: hierarchical motion planning, planning under uncertainty, A*, RRT*

License

The source code is released under a BSD 3-Clause license.

Author: Kavit Shah, Soumya Srilekha Balijepally, Akshata Pore
Affiliation: Worcester Polytechnic Institute
Maintainer: Kavit Shah, kshah@wpi.edu

The package has been tested under ROS Melodic on respectively 18.04

This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Installation

Building from Source

Dependencies

  • Robot Operating System (ROS) (Melodic Preferred),

    • You will need turtlebot3 packages, to download them, use :

      sudo apt-get install ros-melodic-turtlebot3*

    • You will also need the dwa-local-planner :

      sudo apt-get install ros-melodic-dwa-local-planner

  • Eigen3 (linear algebra library)

  • OpenCV (Image Processing Library) OpenCV2 and above

  • [CMake] Version : 3.10.2 & above

Building

To build from source, clone the latest version from this repository into your catkin workspace and compile the package using

cd catkin_workspace/src
git clone https://github.com/KavitShah1998/Combined_Astar_with_RRTstar_in_ROS
cd ../
catkin_make

Usage

Source your catkin_workspace with

source ./devel/setup.bash

Launch the world file with

roslaunch hierarchical_motion_planner turtlebot3_world_hmp-w-RVIZ.launch

Launch the planner with

roslaunch hierarchical_motion_planner turtlebot3_custom_planner.launch

Config files

Config file config/hmp_planner_params.yaml

  • hmp_planner_params Defines global & local planners and their parameters

Launch files

  • turtlebot3_world_hmp.launch: Launches ROS with Gazebo simulation on world_hmp

  • turtlebot3_world_hmp-w-RVIZ.launch: Launches ROS with Gazebo simulation on world_hmp along with RVIZ, move_base & amcl

    Arguments

    • map_file.yaml - The map file of world obtained as a result of GMapping
  • turtlebot3_custom_planner.launch: Launches the hierarchical motion planner

  • turtlebot3_custom_planner.launch: Loads the ros-params defined in config/hmp_planner_params.yaml

Bugs & Feature Requests

Please report bugs and request features using the Issue Tracker.

About

A project for Motion Planning: Combined application of A* with RRT* where A* acts as a global planner and RRT* acts as a local planner


Languages

Language:C++ 87.0%Language:CMake 13.0%