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

相关推荐
ZPC82104 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82104 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
2501_946205524 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
xybDIY4 天前
Kiro Workshop - 使用 AI 代理聊天机器人构建电子商务网站
人工智能·机器人
宝贝儿好4 天前
【强化学习】第十章:连续动作空间强化学习:随机高斯策略、DPG算法
人工智能·python·深度学习·算法·机器人
winfreedoms4 天前
ROS2知识大白话
笔记·学习·ros2
大江东去浪淘尽千古风流人物4 天前
【SLAM】GenRobot / IO-AI / Scale / Appen 能力对比表(机器人数据与闭环视角)
人工智能·机器学习·机器人·大模型·概率论·端侧部署·巨身智能
梦想的旅途24 天前
企业微信API:外部群自动化推送实战指南
大数据·机器人·自动化·企业微信·rpa
鲁邦通物联网4 天前
架构设计:基于边缘网关构建异构电梯协议的统一机器人梯控中间件
机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
RobotNow4 天前
优秀的机器人厂商集中平台哪家创新力强
机器人