【RoboMaster OSS】RoboMaster开源软件栈项目
![debug](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000040213_avatar_big.jpg)
本帖最后由 debug 于 2020-12-6 16:39 编辑
1.写在最后
一天过去了,然而只有1个star (T_T),于是我把写在最后搬到了最前面,老铁们,给点力啊。
顺便一说,如果有志同道合的童鞋也想参与RoboMaster开源栈的开发,欢迎一起讨论交流。
码Bug不易,希望各位看官可以在Github上给个star支持一下(●'◡'●)
https://github.com/robomaster-oss/
2.RoboMaster开源软件栈项目简介
RoboMaster OSS(RoboMaster Open Software Stack,RMOSS)是为RoboMaster高性能计算平台软件开发提供快速开发工具的一个通用统一的开源软件栈。RoboMaster OSS目前包含三个子项目:rmoss_core, rmoss_contrib, rmoss_ign。
- 其中的各个模块均基于ROS2开发。
rmoss_core:为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。
模块 | 功能说明 |
rm_common | 公共工具包,包括调试,图像处理等公共基础工具。 |
rm_interfaces | RM相关的ROS interface包,包含相关msg,srv,action定义文件。 |
rm_base | 基本通信工具包,包含PC与嵌入式系统(stm32)通信相关工具。 |
rm_cam | 相机工具包,实现usb相机驱动,以及图片视频虚拟相机。 |
rm_task | 任务相关工具,提供了一个图像相关任务基类。 |
rm_projectile_motion | 通用弹道模型工具包,可以修正子弹飞行过程中重力因素的影响。 |
rmoss_contrib为RoboMaster提供任务级功能模块包,如自动瞄准模块,能量机关模块等
模块 | 功能说明 |
rm_auto_aim | RoboMaster基础自瞄任务的简单算法实现 |
rm_power_rune2019 | RoboMaster2019能量机关任务的简单算法实现 |
rmoss_ign为RoboMaster提供Ignition Gazebo仿真环境支持
模块 | 功能说明 |
rmoss_ign_resources | 提供Ignition models worlds等资源,如RoboMaster机器人常用的传感器模型,机器人组件模型,场地模型等。 |
rmoss_ign_plugins | 为RoboMaster Ignition仿真提供插件支持。 |
3.RoboMaster开源软件栈项目展示
3.1 自动瞄准功能包 (rm_auto_aim)
RoboMaster自瞄功能的一个简单实现,演示效果如下:
3.2 能量机关功能包 (rm_power_rune2019)
RoboMaster2019赛季的能量机关任务实现了一个简单的算法实现(仅支持大能量机关)
- 相机固定在底盘上。
- 只识别装甲板,依据时间状态机选择打击目标。
演示效果如下:
3.3 rmua19仿真功能包 (rmua19_ignition_simulator)
rmua19_ignition_simulator是基于Ignition Gazebo的仿真环境,为RoboMasterUniversity AI Challenge 2019中的机器人算法开发提供仿真环境,加快开发效率。目前rmua19_ignition_simulator还不完善,仅提供以下功能:
RoboMaster University AI Challenge 2019简易场地:只有围墙
RoboMaster University AI Challenge 2019 标准机器人模型
- 使用xacro4sdf进行SDF建模,模型图纸来自RoboRTS 中的 RoboMaster AI机器人机械图纸
- 支持麦克拉姆轮地盘,使用rmoss_ign中的麦克拉姆轮插件,支持里程计(模拟里程计,无noise)
- 支持云台(pitch,yaw)角度控制,使用Ignition官方插件JointPositionController
- 搭载云台相机,激光雷达等传感器,可进行开发slam等应用开发。
- 具有装甲板灯条发光效果,可测试自瞄等识别算法。
注:不支持发射子弹。
效果图如下:
4.写在前面
本人18年参赛者,视觉组一员,那时候RM圈还不是很成熟,因此也走了很多弯路,说起一年来到底学到多少技术,很惭愧的说很少,当然RM比赛不只是技术,技术之外更教会自己如何去考虑团队,以及备赛过程中的苦中作乐,都是不可多得的体验。
废话不多说,由于本人目前在搞机械臂视觉控制相关工作,用到了ROS和Gazebo仿真,对于ROS,搞机器人软件开发的应该都不陌生,机器人软件开发中的大哥。想着用ROS开发RoboMaster视觉算法是不是可以提高开发效率,同时也降低入门门槛,于是打算搞一个基于ROS2的RoboMaster开源栈:
- 为RM开发提供技术积累,避免重复造轮子,提高开发效率
- 同时也为RM新入门的小伙伴提供入门教程,让RM的小伙伴可以学到更多的技术。
- 当然另一个希望就是通过Ignition Gazebo仿真项目,让没有机会参与RoboMaster比赛项目的同学,也有机会通过RoboMaster开源栈学习技术。
请问这篇文章对你有用吗?
【RoboMaster OSS】RoboMaster开源软件栈项目