ego-planner-ros2核心算法解析

我们可以先看项目的组成

一、核心文件位置框架

复制代码
src/planner/
│
├── plan_manage/src/
│   ├── planner_manager.cpp    ← 【总调度】调用前端和后端
│   └── ego_replan_fsm.cpp     ← 状态机,决定什么时候重规划
│
├── path_searching/src/
│   └── dyn_a_star.cpp         ← 【前端】A* 搜索算法
│
└── bspline_opt/src/
    ├── bspline_optimizer.cpp  ← 【后端】轨迹优化
    └── uniform_bspline.cpp    ← B-spline 曲线表示

接着我们从启动脚本single_run_in_sim.launch开是往各个核心算法代码开始发散学习:

二、single_run_in_sim脚本调用

主要调用部分:

1.map_generator_node

2.mockamap_node

3.advanced_param_include

4.traj_server_node

5.simulator_include

解析以上:
1. 地图部分:

map_generator_node 和 mockamap_node 都是地图部分 single_run_in_sim脚本中二选一开启 如果你要测试无人机穿越森林场景 用 map_generator_node;如果要测试复杂室内/迷宫环境 用 mockamap_node

2.advanced_param_include(轨迹规划的核心):

include启动了advanced_param.launch.py

3.traj_server_node:

我们看看调用源代码:

cpp 复制代码
traj_server_node = Node(
    package='ego_planner',           # 所属功能包
    executable='traj_server',        # 可执行文件名
    name=['drone_', drone_id, '_traj_server'],  # 节点名,如 drone_0_traj_server
    output='screen',                 # 日志输出到终端
    
    remappings=[                     # 话题重映射
        ('position_cmd', ['drone_', drone_id, '_planning/pos_cmd']),
        # 原话题 position_cmd → drone_0_planning/pos_cmd
        
        ('planning/bspline', ['drone_', drone_id, '_planning/bspline'])
        # 原话题 planning/bspline → drone_0_planning/bspline
    ],
    
    parameters=[                     # 参数设置
        {'traj_server/time_forward': 1.0}  # 轨迹前向预测时间 1秒
    ]
)

包名: ego_planner**(但是文件夹名为plan_manage,具体名称由package.xml决定)**

可执行文件名称: traj_server (作为 轨迹服务 并非轨迹规划)

**节点名称:**drone_0_traj_server

相关推荐
朗宇芯工控1 小时前
注塑机械手自动化上下料原理、流程与应用优势
机器人·自动化·制造·工业·运动控制系统
GrepowTattu2 小时前
从2026世界机器人大会看机器人补能:为什么智能充电正在成为重要一环
人工智能·机器人
微小冷2 小时前
ROS2 Xacro机器人建模初步教程
机器人·ros·rviz·urdf·xacro
ms365copilot3 小时前
Excel Copilot分析机器人客户反馈,生成改进方案
机器人·copilot
tianxuanjg4 小时前
工业/协作机器人连接法兰采购指南|高精度安装定位零件怎么选
经验分享·机器人·无人机·制造·材质
QYR-分析6 小时前
机器人扭矩传感器行业深度研究:技术迭代、市场格局与增量前景
机器人
沫儿笙7 小时前
弧机器人混合气节气设备
机器人
YH行业报告分析8 小时前
2026具身智能产业爆发:具身智能训练平台如何破解机器人策略迭代效率痛点?
机器人
天空属于哈夫克39 小时前
企业微信API:企业微信机器人如何开发?
python·机器人·企业微信
海阔天空任鸟飞~9 小时前
rclpy
ros2