当前位置: 首页 > news >正文

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,非常感谢!

如果您有任何问题,欢迎一起交流~

我的仓库和原仓库有什么不同?

  1. 修复了在 ROS Noetic 下构建可能报错的问题,您可以直接在ROS Noetic构建并运行本项目。
  2. 修复了原项目中无法使用几何 A* 算法进行路径规划的问题,现在您可以使用几何 A* 进行路径规划了!效果展示见文末:修改使用的路径规划算法
  3. 部分代码给出了中文注释
  4. 注释掉了代码中部分未使用的变量,减少编译过程中出现的警告。

Quick Start

NLopt 安装

  1. https://nlopt.readthedocs.io/en/latest/#download-and-installation
  2. 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: 使用下方的全局路径点。

修改使用的路径规划算法

  1. 使用 Kinodynamic Path Searching & B-spline Optimization 动力学路径搜索和 B 样条优化

直接使用指令启动:

source devel/setup.bash && roslaunch plan_manage kino_replan.launch

  1. 使用 Topological Path Searching & Path-guided Optimization 拓扑路径搜索和路径导向优化

直接使用指令启动:

source devel/setup.bash && roslaunch plan_manage topo_replan.launch

  1. 使用 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

效果:


http://www.mrgr.cn/news/80866.html

相关文章:

  • JavaScript系列(69)--安全编程技术详解
  • ZooKeeper 和 Dubbo 的关系:技术体系与实际应用
  • Android Studio集成讯飞SDK过程中在配置Project的时候有感
  • 嵌入页面不能正常获取 reponse header : content-disposition
  • 0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型
  • 苹果公司宣布正式开源 Xcode 引擎 Swift Build145
  • ENSP实验
  • 红队规范:减少工具上传,善用系统自带程序
  • Linux基础及命令复习
  • Makefile文件编写的学习记录(以IMX6ULL开发板的Makefile文件和Makefile.build文件来进行学习)
  • Express (nodejs) 相关
  • [LeetCode-Python版] 定长滑动窗口1(1456 / 643 / 1343 / 2090 / 2379)
  • 【NLP 16、实践 ③ 找出特定字符在字符串中的位置】
  • jmeter中的prev对象
  • Qt学习笔记第71到80讲
  • 字符串类算法
  • Linux-Profile工具
  • QT实战经验总结 连载中
  • EE308FZ_Sixth Assignment_Beta Sprint_Sprint Essay 3
  • clickhouse-副本和分片
  • 【Java】4、虚拟机 JVM
  • 华为数通最新题库 H12-821 HCIP稳定过人中
  • Cocos Creator 试玩广告开发
  • Ubuntu24版 最新安装Nvidia显卡驱动方式
  • GIT命令使用手册(详细实用版)
  • Hive其一,简介、体系结构和内嵌模式、本地模式的安装