ICRA代码架构

整体架构

架构与模块介绍

整体系统以 机器人传感器->感知->决策->规划->控制->执行器 的环路进行架构,不同模块具体以ROS Package的形式维护,模块和其数据流如下图所示

传感器、控制器与执行器

  • 中心模块集成传感器模块(雷达、相机、IMU等)、嵌入式控制平台(执行实时任务,如闭环控制和数据采集与预处理)与执行器(电机等),负责sensing和control两大任务,具体ROS Package为包含嵌入式SDK的roborts_base,相机的roborts_camera以及相关传感器驱动包

感知部分

感知部分包括机器人定位、地图的维护和抽象、目标识别与追踪等

  • localization模块负责机器人定位,详见roborts_localization

  • map模块负责机器人地图维护,目前采用ROS开源Package map_server

  • costmap模块负责代价地图维护,集成了静态地图层,障碍物层和膨胀层,主要用于运动规划部分,详见roborts_costmap,后续将会计划更新为feature_map模块,不单纯针对规划使用。

  • detection模块负责目标识别和追踪,详见roborts_detection,当前主要集成了敌人装甲板的识别和发射弹丸的控制器,由于帧率需求比较高,当前识别和控制是耦合的,后续将会解耦,将控制跟随部分放到gimbal_executor中

任务调度与决策部分

任务调度与决策部分包括调度感知输入模块和调度规划执行输出模块的接口,以及决策的核心框架。

  • decision模块为机器人决策框架,官方提供行为树(BehaviorTree)的决策框架。blackboard模块调度各种模块的感知任务获取信息和裁判系统的比赛信息,behavior模块集成了离散动作空间的各种动作或行为,详见roborts_decision

  • executor模块是behavior模块的依赖,其包含底盘和云台内不同模块内不同抽象程度的机器人任务委托接口(例如调度底盘运动规划执行),详见roborts_decision/executor

运动规划部分

运动规划部分是运动规划功能模块,由决策部分中chassis_executor模块来调度完成导航,详见roborts_planning

ROS Package介绍

Package功能内部依赖
robortsMeta-package-
roborts_base嵌入式通信接口roborts_msgs
roborts_camera相机驱动包roborts_common
roborts_common通用依赖包-
roborts_decision机器人决策包roborts_common
roborts_msgs
roborts_costmap
roborts_detection视觉识别算法包roborts_msgs
roborts_common
roborts_camera
roborts_localization机器人定位算法包-
roborts_costmap代价地图相关支持包roborts_common
roborts_msgs自定义消息类型包-
roborts_planning运动规划算法包roborts_common
roborts_msgs
roborts_costmap
roborts_bringup启动包roborts_base
roborts_common
roborts_localization
roborts_costmap
roborts_msgs
roborts_planning
roborts_tracking视觉追踪算法包roborts_msgs
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值