RoboMaster开源软件栈项目(RoboMaster OSS

2020-11-25  本文已影响0人  某科学的兄弟

1.写在前面

本人18年参赛者,视觉组一员,那时候RM圈还不是很成熟,因此也走了很多弯路,说起一年来到底学到多少技术,很惭愧的说很少,当然RM比赛不只是技术,技术之外更教会自己如何去考虑团队,以及备赛过程中的苦中作乐,都是不可多得的体验。

废话不多说,由于本人目前在搞机械臂视觉控制相关工作,用到了ROS和Gazebo仿真,对于ROS,搞机器人软件开发的应该都不陌生,机器人软件开发中的大哥。想着用ROS开发RoboMaster视觉算法是不是可以提高开发效率,同时也降低入门门槛,于是打算搞一个基于ROS2的RoboMaster开源软件栈:

2.RoboMaster开源软件栈项目简介

RoboMaster OSS(RoboMaster Open Software Stack,RMOSS)是为RoboMaster高性能计算平台软件开发提供快速开发工具的一个通用统一的开源软件栈。

rmoss_bg.png

RoboMaster OSS目前包含三个核心项目:rmoss_core, rmoss_contrib, rmoss_ign。

其中的各个模块均基于ROS2开发,入手难度低,且可以与ROS2社区中其他项目结合,开发出更好玩的应用。

rmoss_core

模块 功能说明
rm_common 公共工具包,包括调试,图像处理等公共基础工具。
rm_interfaces RM相关的ROS interface包,包含相关msg,srv,action定义文件。
rm_base 基本通信工具包,包含PC与嵌入式系统(stm32)通信相关工具。
rm_cam 相机工具包,实现usb相机驱动,以及图片视频虚拟相机。
rm_task 任务相关工具,提供了一个图像相关任务基类。
rm_projectile_motion 通用弹道模型工具包,可以修正子弹飞行过程中重力因素的影响。

rmoss_contrib

模块 功能说明
rm_auto_aim RoboMaster基础自瞄任务的简单算法实现
rm_power_rune2019 RoboMaster2019能量机关任务的简单算法实现

rmoss_ign

模块 功能说明
rmoss_ign_resources 提供Ignition models worlds等资源,如RoboMaster机器人常用的传感器模型,机器人组件模型,场地模型等。
rmoss_ign_plugins 为RoboMaster Ignition仿真提供插件支持。

除此之外,还有一些应用项目,如RoboMaster University AI Challenge 2019仿真环境项目rmua19_ignition_simulator 等。

3.RoboMaster开源栈项目展示

3.1 自动瞄准功能包

RoboMaster自瞄功能的一个简单实现,根据颜色识别灯条,然后灯条两两匹配,得到识别结果。

演示效果如下:

自瞄识别结果

3.2 能量机关功能包

RoboMaster2019赛季的能量机关任务实现了一个简单的算法实现(仅支持大能量机关) 其中相机固定在底盘上, 只识别装甲板,依据时间状态机选择打击目标。

演示效果如下:

能量机关可视化结果

3.3 RoboMaster University AI Challenge 2019仿真

rmua19_ignition_simulator是基于Ignition Gazebo的仿真环境,为RoboMaster University AI Challenge 2019中的机器人算法开发提供仿真环境,加快开发效率。目前rmua19_ignition_simulator还不完善,仅提供以下功能:

注:不支持发射子弹。

效果图如下:

仿真环境

4. 写在最后

RoboMaster OSS项目在算法实现层面,并没有做到最好,甚至只是最简单的实现,比如自动瞄准算法的实现和能量机关算法实现,相比目前网上各个高校的开源项目,可谓是小巫见大巫。但是RoboMaster OSS依然有其令人振奋的地方:

RoboMaster OSS是一个开源项目,也是一个开源社区,如果有志同道合的同学也想要参与RoboMaster OSS的开发,欢迎联系一起交流讨论。

(本文遵循开源协议:CC-BY-SA 4.0。首发于RoboMaster论坛

写BUG不易,希望各位看官可以在Github上给个star支持一下(●'◡'●)

https://github.com/robomaster-oss

上一篇 下一篇

猜你喜欢

热点阅读