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.
- 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
1.git clone
the following repository into your catkin workspace
2.catkin_make
the package
- odometry topic -
/base_pose_ground_truth
- goal topic -
/hybrid_astar_goal
- costmap topic -
/costmap_node/costmap/costmap
- path topic -
/astroid path
- 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.
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
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)
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
Practical Search Techniques in Path Planning for Autonomous Driving