Skip to content

AGV-IIT-KGP/HybridAstar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hybrid A* Path Planner ROS Package

This is ros-integrated package for Hybrid A* Path Planner.The underlying method is similar to A* search algorithm, applied to the 3D kinematic state space of the vehicle, but with a modified state-update rule that captures the continuous state of the vehicle in the discrete nodes of A* thus guaranteeing kinematic feasibility of the path.

Prerequisites

  • This is not the official installation process but a medium article thats well formed
    gazebo-8
  • This is car_demo package used for simulation during the development of this package
    car_demo
    The official package:
    car_demo
  • This is the official ros package for costmap_2d. The associated launch file that work with this gazebo simulation is part of the Hybrid A* package.
    costmap_2d
  • Install ompl for ros from the below mentioned link
    ompl

Building

1.git clone the following repository into your catkin workspace
2.catkin_make the package

ROS topics

  • odometry topic - /base_pose_ground_truth
  • goal topic - /hybrid_astar_goal
  • costmap topic - /costmap_node/costmap/costmap
  • path topic - /astroid path

Planner parameters

  • DISPLAY_SEARCH_TREE parameter in planner.cpp can be used to visualize the search tree of the planner.
  • DISPLAY_PATH paramter in planner.cpp can be used to visualize the path produced by planner.
  • distThreshold parameter in velocity_publisher.cpp can be used to decide the distance threshold for stopping the vehicle.
  • planner_grid_resolution paramter in ros_interface.cpp can be used to decide the resolution of Hybrid A* grid search.
  • map_grid_resolution parameter is directly assigned from parameters set in yaml file for costmap_2d package.

Running

Launching OSRF world
roslaunch car_demo demo.launch

Launching costmap_2d package
roslaunch hybrid_astar gazebo.launch

Launching hybrid astar planner
rosrun hybrid_astar hybridAstar_node

Launching velocity publisher
rosrun hybrid_astar velocity_publisher

The previous three steps can done using hybrid_astar.launch
Next publish the goal on /hybrid_astar_goal using 2D Nav Goal in rviz
The path is published on /astroid_path. Select it on rviz to visualize the path published.

Launching tracking method
python catkin_ws/src/tracking_control/src/scripts/tracking_Methods/pure_pursuit.py

Launching controllers
python catkin_ws/src/tracking_control/src/scripts/controllers/PID_velocity_controller.py

Some other parameters

Path replan only when path is disturbed
Put the flag in ros_interface false to replan path everytime, otherwise path is planned only when an obstacle comes too near in the path

Max_dist(parameter for voronoi field)
This restricts the region where voronoi field has its effect(max dist from an obstacle).

**Use_voronoi toggle to stop using voronoi field

alpha
parameter of voronoi field (usually set high)

Images

Gazebo Simulation
image

Path Planned by Hybrid A*
image

Rviz Simulation
image

Video for Gazebo simulation

Video

Gazebo simulation with waypoints

To run our simulation as in the video given below, download the gazebo world file from https://drive.google.com/open?id=1uOzbxsuGYz6_36hEiQ5Fh5yBMukjkw87.
Then configure car_demo to set your downloaded world file directory and spawn the prius model at (-19,14).
Waypoints are present in waypoints.txt file for a sample path, change them according to your path.
To automatically publish waypoints from waypoints.txt file, run :-
rosrun hybrid_astar waypoint_node

Resources

Practical Search Techniques in Path Planning for Autonomous Driving

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.2%
  • Makefile 0.8%