RoboMaster

Introduction of RoboMaster

The RoboMaster University Championship focuses on the comprehensive application and engineering practice abilities of the participants in science and engineering disciplines, fully integrating many robot-related technical disciplines such as “machine vision”, “embedded system design”, “mechanical control”, “inertial navigation”, “human-computer interaction”. At the same time, the innovative combination of e-sports presentation and robotic competition makes the robot confrontation more intuitive and intense, attracting the attention of many technology enthusiasts and the public.


My Team Position

  • 2022 ROBOMASTER : Leader , Embedded Engineer
  • 2021 ROBOMASTER : Vice Leader, Embedded Engineer, Algorithm Engineer

Leadership Experience

Personal Assignment During the Competition:

  • Managed the research and development cycle of robots
  • Determined the technical indicators and designed scheme of robots
  • Managed and assigned tasks to team members
  • Led team members to carry out promotional activities and get sponsorship
  • Held intramural competitions to select freshmen members

Some pictures of me in the contest:

Some pictures of the robots in our team:

Figure 1.Standard Robot
Figure 2.Hero Robot
Figure 3.Sentry Robot

A group photo of my team and our robots:


Embedded Project

1. Software Architecture of the Robots in RoboMaster (Based on RT-Thread)

The code framework based on RT-Thread (A kind of RTOS) is designed for all robots in Robomaster, including peripheral drivers based on RT-Thread; communication protocol; general code library; robot master control, PTZ control, automatic aiming, launch logic and other upper layers module.

Software Architecture Diagram:

Logic block diagram of PTZ control and launch mechanism:

Main features:

  • Compatible with gimbal and chassis projects of all robots.
  • Decouple the code as much as possible to realize the reuse of the underlying files.
  • Use CMake & GCC to achieve cross-platform development, Cmakelist files can be automatically generated according to the scons script.
  • Compatible with IAR and KEIL compilation and debugging.
  • No dependencies on specific operating systems and IDEs.

2. Contributions to RT-Thread (A kind of RTOS)

Fixed some bugs about STM32 MCU peripheral drivers in RT-Thread.

GitHub link:

3. Software of Motor Intelligent Control Board (Based on RT-Thread)

Developed a control relay station that automatically controls the motor. The host MCU only needs to call the corresponding API to send a specific command to the slave MCU to make the slave automatically control different types of motors attached to the slave. It supports different data sources of the motors, different reduction ratios, and different control modes ( Closed-loop speed, closed-loop angle, etc.), automatic alignment, automatic error handling and disconnection detection, etc.. The slave machine mounts the device through the linked list, which shares the calculation amount of the host computer, expands the number of motors that the host computer can control which makes development more flexible and convenient.


Visual Algorithm Project

Adaptive Exposure Algorithm

On the RoboMaster arena, teams can install industrial cameras on the robots to automatically identify enemy robots. Whether it is the traditional opencv method or the convolutional neural network, it is necessary to ensure that the brightness of the robot armor plate (attacking) in the picture remains basic regardless of the lighting conditions. In order to keep the brightness of the target object constant during the shooting of the dataset and during the competition, I designed a camera adaptive exposure algorithm.

Based on the characteristics of these two scenes, I found that there are no very discrete sources of distracting light sources in the field of view (i.e. there are distractions that glow everywhere, such as several computer screens). However, there may be large blocks of external light sources such as windows, doors, etc. If only the grayscale data after image binarization is used as the data source of the adaptive algorithm, these large light sources will seriously affect the accuracy of the adaptive algorithm. So I designed an adaptive exposure algorithm that can automatically cut out large spots.

The effect diagram of removing large light spots: