Important
- 本项目状态:这是 Fast-Planner 的早期开发版本,目前已停止主要维护。
- 最新推荐:针对地面机器人和 ROS 2 环境,我们推出了全新的重构版本。请务必访问以下仓库获取最新代码:
如果您正在开发地面移动机器人,强烈建议使用新版本,它包含以下重大改进:
- 专为 2D 地面机器人适配
- 在 B 样条代价函数与 ESDF 梯度计算中,强制加入了 Z 轴方向的优化约束,完美适配 2D 平面运动规划。
- 纯粹的 C++ 核心接口
- 完全剥离了原版复杂的 ROS 1 依赖,提供解耦的、纯粹的 C++ 优化接口,方便移植。
- ESDF 性能深度优化
- 底层代码升级,大幅优化了构建效率和索引逻辑,更适合高频实时规划。
- 原生 ROS 2 支持
- 全面拥抱 ROS 2 (Humble/Foxy),提供完善的 Rviz2 可视化接口与交互媒介。
FastPlanner: 2D Trajectory Optimization (Pure C++)
本项目将 FastPlanner 后端基于 B 样条(B-Spline)的轨迹优化核心算法进行了剥离与封装,移除了复杂的 ROS 依赖,提供了一个纯净可用的 C++ 版本。
针对地面移动机器人应用场景,我们将原有的三维轨迹规划算法降维适配为二维平面,适用于实时的局部路径规划任务。
本项目依赖 NLopt 非线性优化库。
files 目录下已附带 nlopt 源码包,请先按照以下步骤编译并安装:
cd files/nlopt-2.7.1 # 假设解压后的目录名
mkdir build && cd build
cmake ..
make
sudo make install# 1. 创建构建目录
mkdir build
cd build
# 2. 编译项目
cmake ..
make
# 3. 运行示例
./main本项目核心算法源自以下优秀的开源项目:
- Teach-Repeat-Replan: HKUST-Aerial-Robotics/Teach-Repeat-Replan
关于算法原理、代码使用方法及视频教程,请参考我们的详细文档:
- 微信公众号:
机器人规划与控制研究所 - 深度解析文章:点击阅读详细教程
Maintained by JackJu-HIT
