Fast-Planner 改进与优化:支持ROS Noetic构建与几何A*路径规划
目录
- 介绍
- 我的仓库和原仓库有什么不同?
- Quick Start
- NLopt 安装
- Clone & Make
- 运行模拟
- 可视化修改
- 修改地图大小
- 修改障碍物数量
- 修改无人机初始位置
- 修改路径点发布的模式
- 修改使用的路径规划算法
介绍
本项目是 HKUST-Aerial-Robotics/Fast-Planner 的复现项目。
Source Code: HKUST-Aerial-Robotics/Fast-Planner
Paper Link: Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight (2019 RA-L)
我的复现代码开源在:https://github.com/bhu619/Fast-Planner-Noetic
复现环境:
Ubuntu 20.04(ROS Noetic)
GPU: RTX 2080
如果你使用了这个项目的代码,请引用原作者的文章:
@ARTICLE{8758904,author={Zhou, Boyu and Gao, Fei and Wang, Luqi and Liu, Chuhao and Shen, Shaojie},journal={IEEE Robotics and Automation Letters}, title={Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight}, year={2019},volume={4},number={4},pages={3529-3536},keywords={Trajectory;Splines (mathematics);Optimization;Safety;Resource management;Dynamics;Aerospace electronics;Motion and path planning;aerial systems: perception and autonomy;collision avoidance},doi={10.1109/LRA.2019.2927938}}
如果我的文章 / Github 仓库对您有用,请也帮我点个赞 / Star,非常感谢!
如果您有任何问题,欢迎一起交流~
我的仓库和原仓库有什么不同?
- 修复了在 ROS
Noetic
下构建可能报错的问题,您可以直接在ROSNoetic
构建并运行本项目。 - 修复了原项目中无法使用几何 A* 算法进行路径规划的问题,现在您可以使用几何 A* 进行路径规划了!效果展示见文末:修改使用的路径规划算法
- 部分代码给出了中文注释。
- 注释掉了代码中部分未使用的变量,减少编译过程中出现的警告。
Quick Start
NLopt 安装
- https://nlopt.readthedocs.io/en/latest/#download-and-installation
- https://github.com/stevengj/nlopt?tab=readme-ov-file
NLopt(Nonlinear Optimization) 是一个开源的优化库,旨在解决各种非线性优化问题。它支持多种优化算法,并提供了一套简单而灵活的接口。NLopt 适用于求解无约束和有约束的非线性优化问题,可以在一些复杂的应用场景中进行优化求解。
压缩包下载:
解压缩:
cd NLopt
tar -xvzf nlopt-2.7.1.tar.gz
安装(直接使用以下指令可能会出现问题),可以参考NLopt Installation进行安装:
cmake . && make && sudo make install
# 建议使用以下指令进行安装cd NLopt/nlopt-2.7.1
mkdir build
cd build
cmake ..
make
cmake ..
成功显示:
make
成功显示:
Clone & Make
mkdir Fast-Planner
cd Fast-Planner
mkdir src
cd src# 这是原仓库,如果您使用原仓库,记得按照后续步骤 修改构建文件
git clone https://github.com/HKUST-Aerial-Robotics/Fast-Planner.git# 这是我的仓库,任选一个仓库clone即可,如果您使用我的仓库,直接catkin_make即可
git clone https://github.com/bhu619/Fast-Planner-Noetic.gitcd ../
catkin_make
运行模拟
编译后,通过以下方式启动可视化:
source devel/setup.bash && roslaunch plan_manage rviz.launch
开始模拟(在新终端中运行):
- Kinodynamic Path Searching & B-spline Optimization 动力学路径搜索和 B 样条优化
source devel/setup.bash && roslaunch plan_manage kino_replan.launch
- Topological Path Searching & Path-guided Optimization 拓扑路径搜索和路径导向优化
source devel/setup.bash && roslaunch plan_manage topo_replan.launch
可视化修改
修改地图大小
src/Fast-Planner/fast_planner/plan_manage/launch/kino_replan.launch
修改障碍物数量
src/Fast-Planner/fast_planner/plan_manage/launch/kino_replan.launch
,其中 c_num
是圆形障碍物数量,p_num
是方形障碍物数量。
修改无人机初始位置
src/Fast-Planner/fast_planner/plan_manage/launch/simulator.xml
修改路径点发布的模式
src/Fast-Planner/fast_planner/plan_manage/launch/kino_replan.launch
value == 1
: 使用 2D Nav Goal 选点;
value == 2
: 使用下方的全局路径点。
修改使用的路径规划算法
- 使用 Kinodynamic Path Searching & B-spline Optimization 动力学路径搜索和 B 样条优化
直接使用指令启动:
source devel/setup.bash && roslaunch plan_manage kino_replan.launch
- 使用 Topological Path Searching & Path-guided Optimization 拓扑路径搜索和路径导向优化
直接使用指令启动:
source devel/setup.bash && roslaunch plan_manage topo_replan.launch
- 使用 Geometric Path Searching & B-spline Optimization 几何 A Star路径搜索和 B 样条优化
修改src/Fast-Planner/fast_planner/plan_manage/launch/kino_algorithm.xml
中的内容:
然后指令启动:
source devel/setup.bash && roslaunch plan_manage kino_replan.launch
效果:
![]() | ![]() | ![]() |