0%

RoboMaster电控入门:不完全指南

本文基于RoboMaster比赛的需求编写的电控入门,其中难免存在错漏之处,后续会持续补充完善

电控简介

电控在RoboMaster里面主要的工作是完成机器人的硬件设计与接线,以及底层软件(或者我们一般指的是单片机上运行的软件)设计。硬件部分主要设计单片机主控电路板、用于接线接口的电路板、功率部分的超级电容相关的电路板,以及各个各种硬件模块间的接线。软件方面下至处理机器人中各种传感器数据的读取、各种执行器的输出、模块间的通信,上至信号处理算法,控制算法等设计。电控组在RoboMaster里面起到承接软硬件之间的作用,负责的工作也比较广,所需能力需要较为全面。

本文旨在给出一篇尽可能完整全面的指南,但对于具体全部技能和知识的掌握不要求全面,多数人在某些技能上能够做到一定深度已经可以是合格的电控成员

基础理论

以下学科或知识可以说是电控组工作的入门门槛,掌握的程度直接决定电控工作水平的上限。这部分课程如果学校的专业学习里面有的,请抓住机会认真学,没有的可能需要自己找书或者看视频学。列举的这些学科或知识按照顺序是从低级到高级,靠前的是电控工作最低要求的知识,越往后的要求越高,当然越低级的理论知识重要性越高:

  • 英语
    这一点需要单独拿出来讲。由于目前的现状是大部分优秀的技术它们的解释以及相关文档都是用英语表达的,包括下面列举的一些参考文档。若想要学习这些技术,英语的阅读理解能力就极为重要。当然对于电控来讲能够无障碍地阅读英文文档(也就是能够很轻松完成考试里面的阅读理解)就已经足够了,并不要求实际其他的英语能力需要非常高。
  • C/C++与Python/Matlab
    最基础的软件技能,C/C++主要是对于STM32等单片机或嵌入式系统的编程,而Python/Matlab则用于对算法仿真方面
  • 电路分析基础
    这个应该不用多解释,主要了解常见的电路分析方法,可以说是硬件设计中最通用的能力之一
  • 模拟电路/数字电路
    模拟电路主要了解常见的信号处理电路与功率电路与其实际应用,例如运放放大与滤波电路,电源电路等,这些在实际硬件设计中会相当频繁地出现,硬件方向的成员应该要十分重视。数字电路的作用在这里看来主要为后续的嵌入式软件逻辑设计打下基础,毕竟其本质也是数字逻辑。
  • 信号与系统/数字信号处理
    这个主要是偏理论分析方面的内容,在硬件里主要涉及滤波器的设计等信号处理电路的分析,当然针对数字信号方面的主要是在编写软件算法方面的应用,例如各种数字滤波器算法。
  • 自动控制原理
    只要带“控制”两个字的基本上绕不开自动控制原理,包括机器人的控制算法(云台、底盘等控制),电源输出的控制等,可以说机器人大部分的执行机构的理论分析和实际应用算法都离不自动控制原理。
  • 数学
    如果数学基础优秀是再好不过了,因为实际上能够理解算法的原理并独立开发算法的所有基础就在于数学,在于本科学的高等数学,概率论,线性代数等,当然很多时候给出一个算法至少知道如何实现并调参也能应付研发,但是像这样要求创新能力的竞赛还是建议好好学数学

技能

安全

这个需要单独列出来,因为这部分培训的内容往往很多时候都被我们忽略。即使后面提到的工作几乎不存在什么危险性,但还是有几点安全守则需要注意的:

  • 电机运行安全
    对于机器人调试来讲,最容易出现意外伤害的就是调试过程中对电机的失控。从设计上来讲需要有一定的急停措施,例如遥控器某个挡位是用于中值机器人所有的运动,以便及时制止运动。另外一般调试中存在较大危险的是底盘运动调试,在落地之前除了保证功能完善还要做好失控时的保护措施

  • 工具使用/用电安全
    用电安全的培训应该较为普遍,但是工具的使用例如焊接中的高温也存在造成伤害的危险,这个是硬件制作过程需要注意的

硬件

底层软件

运营管理

  • 代码版本管理(Git)
    Git代码管理使用

  • 器件库存管理(有源/无源电子器件,接线,接口等)
    常见采购商(国内)立创商城,云汉芯城,TB门店
    常见采购商(国际)得捷电子DigiKey,E络盟Element,贸泽电子Mouser,艾睿电子Arrow

  • 培训体系建设
    如上所见,本文也是培训体系建设中的一环。只不过培训的方式是通过提供比较松散的文档给自学者帮助,实际上本文的每一小节均可以严格编排为一堂堂课(当然除了现场教学我见到的有以视频的形式的)。

  • 技术文档编写
    目前从格式上看大概就这两种
    解决问题的的技术文档
    简单描述一个解决问题的过程,至少包括:

    调试操作的技术文档
    这个一般是与文档配套的代码,基本内容是单个功能的原理以及如何调试

设计思想

  • 层次导图
    导图适用于2022年RoboMaster的技术,仅供参考,实际根据比赛规则以及创新性的技术出现有可能会有巨大差异

    这张图的作用是用于分解电控整个系统为多个子模块,在初入门的时候学习都是以这些模块展开。除了硬件方向的成员之外,一般正常的学习过程都是在硬件之上的模块一步步往上走,从最基本的STM32如何编写,再到各个执行器和传感器的输入输出,然后再学习调试这些模块组成的一个小的子系统例如云台,底盘等。最终学习的目标是能够开发调试整台机器人,并且机器人上出现任何问题都能马上反应出是哪个模块可能出现异常