An implementation of A* path planning algorithm that takes into account non-holonomic constraints of the robot. Ideas behind it are described in the Stanford paper. This repositroy also contains a plugin that allows to use the planner with ROS navigation stack
To build this repository you need ROS, the code has been tested with kinetic version. Also, you need to install ROS Navigation Stack, to install on a system level, run sudo apt-get install ros-kinetic-navigation
`
- Copy this repository into your catkin workspace.
- Build your workspace and
source devel/setup.bash
- Check that the plugin exists:
rospack plugins --attrib=plugin nav_core | grep "astar_ackermann_planner"
- Create a config file for the planner, an example:
AStarAckermannPlanner:
default_tolerance: 0.5
turning_radius: 8.0
step_size: 0.2
max_allowed_time: 20
- In your launch file
<launch>
...
<node pkg="move_base" type="move_base" name="move_base">
...
<rosparam file="path-to-planner-config-file.yaml" command="load"/>
<param name="base_global_planner" value="astar_ackermann_planner::AStarAckermannPlanner"/>
</node>
</launch>
Note: make sure that roscore is running, otherwise testing will run forever.
Run catkin build astar_ackermann_planner --no-deps --catkin-make-args run_tests
To check results run catkin_test_results build