真正的地面移动机器人 2D 轨迹优化方案
基于浙大高飞团队优秀的开源工作 Ego-Planner 进行深度二次开发,从底层算法层面进行了真正的降维重构,使其完全适配 2D 导航场景。
🔗 项目地址:https://github.com/JackJu-HIT/Ego-Planner-2D-ROS2
- ✨ 新增功能:添加 GridMap 膨胀后的障碍物可视化渲染。
- Rviz2 监听话题:
/visual_local_obstacles
- Rviz2 监听话题:
- 🐛 Bug 修复:修复了 GridMap 在特定边界条件下存在的 Bug。
本项目针对地面移动机器人(AGV/AMR)的特性,对原有的 Ego-Planner 算法进行了核心重构。不同于简单的“压扁”三维轨迹,我们从优化器底层数学模型到环境地图表达进行了全面的二维化改造,实现了更高效、更轻量的平面轨迹规划。
重构了轨迹优化器的核心数学模型,将优化变量从 3 维降至 2 维(仅优化
将原有的 3D 环境表达重构为 2D GridMap(栅格地图)。这一改进大幅降低了内存占用,并显著提高了环境查询与碰撞检测的计算速度。
对 Path Searching 模块中的 A* 算法进行了降维适配,专注于平面路径搜索,生成的初始路径更贴合地面移动需求。
剥离了原算法对 ROS1 的依赖,核心算法逻辑采用纯 C++ 实现,模块化程度高,具有极高的可移植性,易于集成到其他系统。
项目采用 ROS 2 作为外壳封装,完全适配 ROS 2 通信框架。支持 Rviz2 交互式仿真,提供流畅的可视化交互体验,开箱即用。
请确保您的环境已安装 ROS 2 及相关依赖。
colcon build
source install/setup.bash- 启动规划节点:
ros2 run ego_planner motion_plan
- 启动可视化界面:
rviz2 # 建议加载项目提供的 rviz 配置文件(如有) - 交互测试:
- 在 Rviz2 中使用
2D Pose Estimate设置起点(或使用默认起点)。 - 使用
2D Nav Goal设置全局目标点。 - 使用
Publish Point工具添加模拟障碍物。 - 观察话题
visual_local_obstacles查看膨胀后的障碍物信息。
- 在 Rviz2 中使用
本项目核心算法源自 ZJU-FAST-Lab 团队的优秀开源工作,特此感谢。
- Original Project: ZJU-FAST-Lab/ego-planner
如果您对轨迹优化与运动控制感兴趣,欢迎关注我的媒体渠道获取更多技术分享:
- 微信公众号:
机器人规划与控制研究所- 点击阅读相关技术文章
- 如需加入交流群,请通过公众号后台联系我。
- Bilibili:
机器人算法研究所
- 本项目属于本人 (JackJu) 在业余时间进行的个人学习与技术研究成果。
- 项目代码未应用于任何公司、机构或商业团队的实际项目中。
- 项目仅供学术交流与学习使用,不涉及任何商业利益冲突或侵权行为。
- 如果您使用此 2D ego-planner 进行二次开发或发表学术论文,请引用本 Git 仓库链接:
Last updated: 2025-12-30