teddyluo / hybrid-a-star-annotation

Hybrid A*路径规划器的代码注释
BSD 3-Clause "New" or "Revised" License
771 stars 242 forks source link
hybrid-a-star motion-planning

Hybrid A* ROS源码中文注释

本仓库是Hybrid A* 的ROS版代码注释,原始代码地址为: https://github.com/karlkurzer/path_planner

整体注释依据的主要参考文献有:

Dubins路径生成参考文献(源码来源):

Reeds-Shepp曲线参考文献:

附加代码


:关于运动规划与控制,翻译了一篇综述文献,由于刚入门,错误在所难免,请各位扔个砖头。

翻译的文献为: Paden B, Čáp M, Yong S Z, et al. A survey of motion planning and control techniques for self-driving urban vehicles[J]. IEEE Transactions on intelligent vehicles, 2016, 1(1): 33-55.

翻译项目主页

https://github.com/teddyluo/motion-planning-chs


以下为原始Hybrid A Star算法的README内容

Hybrid A* Path Planner for the KTH Research Concept Vehicle Build Status

The code in this repository is the result of my master's thesis which I have written at the Integrated Research Lab (ITRL) at KTH Royal Institute of Technology (2016). The code is documented here and the associated thesis can be found here.

The goal of the thesis and hence this code is to create a real-time path planning algorithm for the nonholonomic Research Concept Vehicle (RCV). The algorithm uses a binary obstacle map as an input, generated using LIDAR mounted on top of the vehicle. The algorithm is being developed using C++ due to real-time requirements in combination with ROS to ensure modularity and portability as well as using RViz as a visualization/simulation environment.

Key Characteristics

Large parts of the implementation are closely related to the hybrid A* algorithm developed by Dmitri Dolgov and Sebastian Thrun (Path Planning for Autonomous Vehicles in Unknown Semi-structured Environments DOI: 10.1177/0278364909359210)

Videos
Images
Reversing in a Maze Parking Mitigating a U-shape Obstacle

Dependencies

Setup

Run the following command to clone, build, and launch the package (requires a sources ROS environment):

sudo apt install libompl-dev \
&& mkdir -p ~/catkin_ws/src \
&& cd ~/catkin_ws/src \
&& git clone https://github.com/karlkurzer/path_planner.git  \
&& cd .. \
&& catkin_make \
&& source devel/setup.bash \
&& rospack profile \
&& roslaunch hybrid_astar manual.launch

Visualization (Rviz)

  1. Add -> By Topic -> /map, /path, /pathVehicle, (/visualizeNode2DPoses)
  2. Click 2D Pose Estimate to set a start point on the map (p)
  3. Click 2D Nav Goal to set a goal point on the map (g)
  4. Wait for the path being searched! (this process can be visualized [optional])

Citation

In case you are using my code for your project, I would appreciate if you include a respective citation.

@mastersthesis{kurzer2016,
  author       = {Karl Kurzer}, 
  title        = {Path Planning in Unstructured Environments : A Real-time Hybrid A* Implementation for Fast and Deterministic Path Generation for the KTH Research Concept Vehicle},
  school       = {KTH Royal Institute of Technology},
  year         = 2016,
  month        = 12,
}