Skip to content

About

全国大学生机器人大赛 2024年 R1机器人完整开源

Resources

Stars

22 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

RoboChassis_F427: Robocon 2024 R1

🚀 Project Overview

RoboChassis_F427 is a universal electronic control software architecture built on the hardware framework of the Robocon 2020 competition chassis (equipped with the STM32F427 series microcontroller). Based on this self-developed framework, we optimized Robot No. 1 (referred to as R1 for short) used by the MTI Robot Team in the 2024 season.R1-1

The core objective of this project is to construct a blank, stable, and easily extensible underlying platform. It eliminates redundant functions, focuses on chassis motion control, sensor integration, and communication modules, and undergoes version iterations following programming standards that prioritize high readability and easy maintainability.

✨ Features and Modules

  • Core MCU: STM32F427
  • Basic Functions: Mecanum wheel chassis motion control, CAN communication driver
  • Communication Interfaces:
    • UART 2: Communication with self-developed 2.4G wireless remote controller
    • UART 6: Laser radar (Lidar) data reception
    • UART 7: RS485 absolute encoder-based axis positioning system
    • UART 8: Positioning system zero-reset signal transmission
  • Control Inputs: RoboMaster Remote Control / Keyboard Control

📜 Version Iteration Record

V0.0 - Establishment of Basic Blank Architecture and Warning Rectification

Description Modifications Remarks
Basic Architecture Based on the Robocon 2020 chassis project files. All functional codes are removed, with only underlying drivers retained.
Platform F427 underlying architecture. Ensure the correct basic configuration of F427.
Rectification Rectify all compiler warnings. Improve code quality and stability.
Core Establish a blank project architecture. Provide a clean environment for subsequent function integration.

V0.1 - Code Standardization and Improvement

Description Modifications Remarks
Function Names Modify most function names. Adopt more semantic and user-friendly naming conventions (e.g., Module_Function_Action()).
Function Bodies Improve function implementations. Ensure the robustness of basic drivers.
Comments Improve comments. Enhance code readability and provide clear guidance for subsequent developers.

V0.2 - Integration of Remote Control and Keyboard Control

Description Modifications Remarks
Remote Controller Modify the remote file. Integrate data parsing for the RoboMaster remote controller.
Control Add keyboard control option. Compatible with keyboard input from the RoboMaster client for convenient debugging and control.
Notes The logic for modifying and deleting keys of the remote controller and keyboard is centralized in the remote module.

V0.3 - Laser Radar Integration

Description Modifications Remarks
Module Add laser radar module. Implement Lidar data frame reception and parsing.
Hardware Lidar is connected to UART 6. Configure communication parameters (baud rate, interrupt, etc.) of UART 6.

V0.4 - Preliminary Integration of Positioning System (WiFi Version)

Description Modifications Remarks
Positioning System Add positioning system functions. Used to receive external positioning data.
Data Structure Introduce the Rabbit structure and the PointRabbit function library. Standardize the storage and processing of positioning data.
Hardware Original UART 7 is configured as a WiFi controller (ESP8266) for receiving positioning data. Data received via WiFi is verified with identifiers.
Zero-Reset Add the zero-reset function of the positioning system. Zero-reset transmission port is modified to UART 8.
Zero-Reset Implement automatic zero-reset upon power-on. Ensure the consistent state of the positioning system at each startup.

V0.5 - Chassis Rotation Optimization and Self-developed Remote Control Integration

Description Modifications Remarks
Chassis Control Modify and improve chassis rotation issues. Optimize the kinematic resolution and control of the Mecanum wheel chassis to enhance rotation accuracy and stability.
Remote Controller Add self-developed remote control. Implement data reception and parsing for the self-developed 2.4G wireless transmission remote controller.
Hardware The self-developed remote controller is connected to UART 2. Independent of the RoboMaster remote controller, providing an alternative or customized control method.

V0.6 - Hardware Upgrade of Positioning System (RS485 Encoder)

Description Modifications Remarks
Positioning System Remove the WiFi controller (ESP8266) from UART 7. Discontinue the WiFi solution from V0.4.
Hardware Add RS485 absolute encoder-based axis positioning system based on C8T6. Adopt a more reliable and high-precision encoder positioning scheme.
Hardware The RS485 encoder is connected to UART 7. Used to receive absolute position information from the encoder.
Application Data is stored in the Positioning_system[20] array. Uniformly manage encoder data.

💡 Maintenance and Contribution

This project was initially developed by kizuna (2023 ROBOCON Electronic Control Team) and subsequently organized and iterated by Liangchen Jason (2024 ROBOCON Electronic Control Team).

Future versions will continue to focus on architecture improvement, function enhancement, and performance optimization.

Message from kizuna (2023 ROBOCON Electronic Control Team):

No matter how difficult it is, we will never give up. Pursuing dreams is precisely the challenge we face ―― LoveLive!

Message from Liangchen Jason (2024 ROBOCON Electronic Control Team):

The harder you work, the luckier you get.

RoboChassis_F427: Robocon 2024 R1

🚀 项目简介

RoboChassis_F427 是一个基于 Robocon 2020 比赛底盘硬件框架(搭载 STM32F427 系列微控制器)建立的通用电控软件架构。我们基于此自研框架完善了MTI机器人战队在2024赛季使用的机器人1号(简称R1)R1-1

本项目的核心目标是构建一个空白、稳定、易于扩展的底层平台,去除多余功能,专注于底盘运动控制、传感器集成和通信模块,并遵循高可读性、易于维护的编程规范进行版本迭代。

✨ 特性与模块

  • 核心MCU: STM32F427
  • 基础功能: 麦克纳姆轮底盘运动控制、CAN通信驱动
  • 通信接口:
    • 串口 2: 自制 2.4G 无线遥控器通信
    • 串口 6: 激光雷达 (Lidar) 数据接收
    • 串口 7: RS485 绝对值编码器基轴定位系统
    • 串口 8: 定位系统归零信号发送
  • 控制输入: RoboMaster 遥控器 (Remote Control) / 键盘控制

📜 版本迭代记录

V0.0 - 基础空白架构建立与警告修缮

描述 变动点 备注
基础架构 基于 Robocon 2020 底盘项目文件。 移除了所有功能性代码,仅保留底层驱动。
平台 F427 底层架构。 确保 F427 的基础配置正确。
修缮 修缮所有编译器警告 (Warnings)。 提高代码质量和稳定性。
核心 建立空白工程架构。 为后续功能添加提供干净的环境。

V0.1 - 代码规范化与完善

描述 变动点 备注
函数名 修改大部分函数名。 采用更具语义化、方便使用的命名规范 (如 Module_Function_Action())。
函数体 完善函数实现。 确保基础驱动的健壮性。
注释 完善注释。 提高代码可读性,为后续开发者提供清晰指导。

V0.2 - 遥控与键盘控制集成

描述 变动点 备注
遥控器 修改 remote 文件。 集成 RoboMaster 遥控器数据解析。
控制 加入键盘控制选项。 兼容 RoboMaster 客户端的键盘输入,方便调试和控制。
注意 遥控器和键盘的按键修改和删除逻辑集中在 remote 模块。

V0.3 - 激光雷达集成

描述 变动点 备注
模块 加入激光雷达模块。 实现 Lidar 数据帧接收和解析。
硬件 Lidar 连接至 串口 6。 配置串口 6 的通信参数 (波特率、中断等)。

V0.4 - 定位系统初步集成 (WiFi版)

描述 变动点 备注
定位系统 加入定位系统功能。 用于接收外部定位数据。
数据结构 引入 Rabbit 结构体,PointRabbit 函数库。 规范定位数据的存储和处理。
硬件 原串口 7 配置为 WiFi 控制器 (ESP8266) 接收定位数据。 WiFi 接收数据加入标识符进行数据校验。
归零 增加定位系统归零功能。 归零发送端口修改为 串口 8。
归零 实现上电自动归零。 确保每次启动定位系统状态一致。

V0.5 - 底盘旋转优化与自制遥控集成

描述 变动点 备注
底盘控制 修改完善底盘旋转问题。 优化麦克纳姆轮底盘的旋转运动解算和控制,提高旋转精度和稳定性。
遥控器 加入自制遥控。 实现对自制 2.4G 无线传输遥控器数据的接收和解析。
硬件 自制遥控器连接至 串口 2。 独立于 RoboMaster 遥控器,提供备用或定制控制方式。

V0.6 - 定位系统硬件升级 (RS485 编码器)

描述 变动点 备注
定位系统 删除串口 7 的 WiFi 控制器 (ESP8266)。 移除 V0.4 的 WiFi 方案。
硬件 加入基于 C8T6 的 RS485 绝对值编码器基轴定位系统。 采用更可靠、精度更高的编码器定位方案。
硬件 RS485 编码器连接至 串口 7。 用于接收编码器的绝对位置信息。
应用 数据存储于 Positioning_system[20] 数组。 统一管理编码器数据。

💡 维护与贡献

本项目由 kizuna (2023 ROBOCON 电控) 奠定基础,并由 良辰Jason (2024 ROBOCON 电控) 进行整理和版本迭代。

未来的版本将持续进行架构完善、功能增强和性能优化。

kizuna (2023 ROBOCON 电控) 赠语:

无论多么艰难也不愿放弃,追梦正是对我们的挑战 ――《lovelive》

良辰Jason (2024 ROBOCON 电控) 赠语:

越努力,越幸运。

About

全国大学生机器人大赛 2024年 R1机器人完整开源

Resources

Stars

22 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages