Bubble模块

Authors

Ligcox

Maintainers

Ligcox, HarryWen

Contact

ligcox@birdiebot.top, 858601365@qq.com

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的转换