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

相关推荐
PNP Robotics4 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
明志数科5 小时前
手持式机器人数据采集方案的生态化演进:从开源工具到数据交易
机器人·开源
我送炭你添花10 小时前
工业现场疑难软故障实录:09 老旧产线,稳定裕量已经被吃光了
机器人·自动化·智能工厂
智信中科张炜12 小时前
中国洗地机器人行业竞争现状与发展前景分析报告
机器人
猿的天空14 小时前
机器人双手迎来全栈训练系统:灵初智能EgoSteer让灵巧手无所不能
网络·人工智能·计算机·ai·程序员·机器人·编程
guanchabao16 小时前
大模型智能电话机器人比传统规则机器人强在哪?2026按规则/LLM混合架构拆解
机器人
某林21217 小时前
ROS2 + WebRTC + MQTT 异构系统架构
架构·系统架构·机器人·硬件架构·webrtc·ros2
G***技18 小时前
破解康养机器人稳定性难题:IB3-281嵌入式主板打造“零中断”智慧护理体验
机器人
renhongxia118 小时前
AI安全保卫战:我们如何防止“失控”的智能体?
人工智能·深度学习·安全·机器学习·架构·机器人
威联通安全存储19 小时前
TS-h1677AXU-RP在工程机械机器人弧焊中的部署
大数据·人工智能·python·机器人