Skip to content

Latest commit

 

History

History
153 lines (80 loc) · 7.4 KB

RM-CV-2021.md

File metadata and controls

153 lines (80 loc) · 7.4 KB

RM2021赛季规划 - 视觉/算法

Last modified: 2021/6/29 22:48

项目分析

新赛季规则解读

需求分析和设计思路

步兵机器人

规则中新增的全自动步兵对于战队来说是个很好的考验,如要利用好这个机会需要优秀视觉/算法的加持、以及车间通信的顺利实施。

能力机关击打的顺利与否,很大程度上取决于视觉算法的稳定性。目前现有的能力机关识别程序仍有很大不足,需要优化和改进。

击打能力机关涉及到远距离射击,弹道补偿成为不可避免要解决或优化的问题。考虑在硬件或者算法层面实现对距离的计算,进而加速击打能量机关的自动化程度。同时,实现好的测距方案还能应用于哨兵机器人。

另外,对于装甲板的运动预测的优化,以及对机器人的“陀螺”模式的识别和应对策略也在计划当中。

英雄机器人

工程机器人

规则中新增的“矿石”项目,处于战术考虑,需要新增对矿石的视觉识别。由于矿石不具有像灯条一样的显著特征,因此可能需要机器学习来实现对矿石的识别。

空中机器人

哨兵机器人

不同于步兵机器人,哨兵机器人的自动瞄准系统需要更智能的决策以及有别于传统装甲板识别的算法。考虑开发整车识别算法。

飞镖系统

雷达站

雷达站具有较高的地理位置,意味着开阔的视野,并且可以搭载高性能计算平台和图像设备,可以在在提供全场视角、目标定位、基地预警、导弹拦截等方面发挥作用,利用得当可以为战场局势分析和预警提供帮助。

要实现上述功能,需要涉及到目标识别与跟踪、车间通信等技术。

为了提供清晰的视野,雷达站计划装配更高性能的摄像头。

自瞄系统

现有的自瞄算法在稳定性和易用性上仍有很大改进空间,本赛季计划除了完成上述目标外,还计划完善自瞄系统的

整体时间规划

计划在次年1月份前完成对新队员的培训,能使新队员着手实现工程相关的设计。

组织架构

团队协作

资料管理

视觉/算法组所涉及的资料主要包括几个部分:

  • 工程代码及配套设计文档

  • 培训资料、入门教程

  • 问题解决方案的积累

对于现有的代码,已经初步完成了重新编写整理,变得更加清晰易懂,便于后续维护。

https://github.com/MUC-RM-CV/project-clementine

文档计划采用 Markdown 语法书写,便于预览和修改;因为其文本文档的属性,可以更方便的记录版本迭代。

为此,需要对内成员熟悉 Markdown 语法以及 git 的使用。

之前赛季遗留下来的资料和知识由于文档管理的缺乏,不易查阅和阅读,需要进行整理以使其能为战队所用。

根据实际情况,之前资料采用分模块、分任务的方式进行留存,这种方式形成的知识点零散、不利于知识的检索,而单个模块中的内容需要读者有背景知识,不易于系统学习。现采用入门级教程的方式进行书写和整理,这样容易形成知识体系、便于寻找知识点相互的依赖,有利于系统性的掌握知识。

https://github.com/tsagaanbar/Newly-Programmer-ABC

培训与培养

现有队员情况

能力 原成员 新成员
C++编程基础
Linux基础
计算机视觉基础
工程管理

赛季初,视觉组招募的新队员普遍对相关内容没有了解。经过较详细的基础入门培训,已经基本达到赛季初制定的目标。也按照计划形成了相应的资料,可以留供以后使用。

培训目标

对于缺少基础的新队员,我们计划先培训计算机使用的基础知识以及 Linux 操作系统的基础使用等,这样可以很大程度上加速队员们学习新知识的过程,同时减少后期配置环境中可能出现的问题与困惑。

对于已有一定基础的老队员,需要进行不断的学习和新事物的了解和尝试,参考和学习优秀队伍的解决方案,为战队发展提供顶层指导。

同时,队员们也需要进行对代码规范、文档规范等能力的培训,希望借此帮助队员之间实现更高效的沟通。

在以上培训的基础上,再进行编程语言等的培训,主要包括下面几个板块:

  • 基础能力:这部分能力是最为基础的,包括:
    • 计算机的使用:如Windows、Linux等操作在使用上的区别,Linux下的一些基础概念,如何进行跨平台开发等;
    • 文档记录:需要队员们培养写笔记、日志的习惯,一是可以加深对所学事物的理解,二是可以给资料的留存与传承提供便利。需要队员们掌握格式规范和Markdown语法。
    • 资料查找和自学能力。
  • 编程能力:掌握目标语言的基础语法、代码规范,不仅要会写,还要写的好看、写的科学。
  • 工程管理能力:因为视觉工程代码不算是小工程,所以需要队员了解工程构建与维护的相关知识。
  • 算法能力:队员们需要掌握如何为实际问题建模,并能运用编程的思想解决问题;需要能够选择相对最合适的模型来解决问题。

培养计划

视觉/算法的培训内容基本如上所述,大致分为几讲,根据实际教学情况灵活进行安排。培训主要由视觉组负责人主持安排。

课次 标题 内容
01 计算机使用入门 计算机基础概念,如目录和文件、命令行入门等、Linux 基础使用
02 C++ 编程 C++ 编译环境配置、C++ 语法、特性和编程思想
03 计算机视觉入门 图像的存储和表示、色彩空间、数字图像处理、OpenCV 介绍和安装
04 工程设计管理 自瞄工程介绍、工程的构建与维护
05 人工智能与机器学习介绍 人工智能与机器学习的入门介绍,不作为重点培训内容,仅供了解
06 …… ……

截至目前,计划培训内容已全部完成,但仍需巩固和练习加以掌握。

基础建设

协作工具使用计划

赛季初,计划采用 GitHub 或 Gitee 等在线平台进行代码托管,可以很好满足代码修改迭代等非即时性团队协作的要求。需要队员们熟悉 git 的使用,以及掌握 issue、pull request 等功能。同时,要求队员们养成良好的代码习惯,可以方便工程的管理。

同时,要求队员掌握 Markdown、reStructuredText 等至少一种标记语言,方便文档、日志等的记录和沟通。

目前,项目成员关于项目管理的掌握程度仍有待提高。

研发管理工具使用计划

战队使用 ONES 项目进度管理工具,帮助团队快速同步信息、沟通进度。通过故事点或工时来预估迭代时间,调整迭代计划。

审核制度

评审体系