Bubble模块
- Authors
Ligcox
- Maintainers
Ligcox, HarryWen
- Contact
- Last edit date
2022/08/25
- Copyright
This document has been placed in the public domain.
在Bubble中不同的任务和功能在不同仓库和功能包中维护,通过RMW实现机器人在RMU赛场中的不同功能。
通过改变特定模块中的内容,能够最大程度不改变其他模块和系统框架的前提下,添加或实现新的功能。
在该文档中,列出了不同任务模块所维护的内容,并简要介绍功能包实现的任务,对于功能包详细实现可以参阅 API doc。
Note
随着功能包的维护,模块可能会发生小规模的变动。
Bringup模块
Bringup模块提供了Bubble系统最顶级的launch文件,通过该模块中的launch文件启动机器人需要的全部功能。
该模块在 bubble_bringup 仓库中维护。
接口模块
包含了Bubble中通过RMW实现Node间的数据交互接口。在 bubble_interface 仓库中维护。
接口模块包含了以下三个功能包:
- 比赛裁判系统数据
由
bubble_interface/game_msgs
功能包实现定义上位机需要使用裁判系统的ROS数据类型
原则上变量命名与 RoboMaster裁判系统串口协议 相同
- 控制数据
由
bubble_interface/rmctrl_msgs
功能包实现定义了下位机执行控制指令的ROS数据类型
- 目标识别数据
由
bubble_interface/bboxes_ex_msgs
功能包实现定义了目标识别器识别对象的ROS数据类型
关于
bboxes_ex_msgs
功能包的更多信息,您可以参阅相关项目
和bboxes_ex_msgs的REAMDE文件
图像流输入模块
包含了Bubble中使用的图像传感器数据。在 bubble_camera 仓库中维护。
- 视频流
由
main
分支维护通过预先录制的视频,在测试环境中实现功能开发
- 海康工业相机
由
hikrobot_camera
分支维护提供了海康机器人工业相机的ROS功能包
通过ROS的参数对相机参数进行调整
- 大恒图像工业相机
由
gxusb_camera
分支维护提供了海康机器人工业相机的ROS功能包
MUC接口模块
包含了BCP相关功能实现。在 bubble_core 仓库中维护。该模块信息请参阅 木鸢通讯协议。
- BCP的ROS封装
由
bubble_protocol
功能包维护BCP的ROS封装
- BCP的python封装
由
bubble_protocol_py
维护提供了BCP的绝大部分功能,不在依赖ROS环境,可嵌入至其他程序中使用
识别器模块
对图像数据进行目标检测任务,该任务单独分维护。在 bubble_detector 仓库中维护。
- BTP_DM项目装甲板识别器
由
bubble_visual
功能包维护通过传统视觉方式对装甲板识别
对BTP_DM的cpp实现,并进行了ROS封装
- CVRM装甲板识别器
由
bubble_visual_SJTU
功能包维护通过神经网络的方式对装甲板识别
对2021年上海交通大学哨兵机器人开源项目 CVRM 进行的ROS封装
需要TensorRT环境依赖
- RMUC2019-2022能量机关识别器
由
bubble_rune
功能包维护通过传统视觉的方式对RMUC2019-2022能量机关进行识别
功能模块
功能模块实现了RMU赛场上的主要任务,在 bubble_contrib 仓库中维护。
- 攻击模块
由
bubble_aiming
功能包维护对RoboMaster机器人的发射机构自动控制
机器人装甲板自动瞄准及预测
机器人反小陀螺
英雄机器人击打旋转装甲板
- 调试模块
由
bubble_debuger
功能包维护通过rqt和rviz对调试信息进行可视化展示
- 决策模块
由
bubble_decision
功能包维护通过简单的FSM对机器人数据进行决策
该模块暂时放置在
bubble_contrib
模块中,后续单独分仓库维护
导航模块
导航模块实现了机器人SLAM的主要功能,在 bubble_navigation 仓库中维护。
Note
由于该模块大量功能未实际测试,该版本Bubble中删除了绝大部分该模块的内容,仅保留客机器人模型定义相关的部分。模块主体部分在后续版本中更新。
- 机器人状态发布
由
bubble_state_publisher
功能包维护提供机器人模型urdf定义
提供由BCP到TF Tree的转换