# RM2024_Reborn_LegWheel_Chassis ## 写在前面 为促进比赛生态发展,降低轮腿机器人的开发难度,特此对底盘部分代码进行开源,其中包括MATLAB建模、下位机代码 ![比赛图片](asset/photo.jpg) ## 硬件平台 单片机平台:STM32F446 (达妙MC01控制板,自带485接口,宇树的绝佳搭档(有条件建议上达妙H7)) 陀螺仪:BMI088 髋关节电机:宇树A1 * 4 轮毂电机:翎控MF9025-16T * 2 ## 工具链 本工程主要参考湖南大学跃鹿战队嵌入式工程开源,使用 CubeMX+CMake+GCC+OpenOCD工具链,使用 vscode作为IDE开发 文件目录说明 该工程主要使用C++语言,基于面向对象思想进行设计,实现了集成化和模块化,便于后续Debug和开发。代码主要构建在user文件夹当中,代码层次如下: ``` └─ user ├─ algorithm # 轮腿需要用到的算法,包含CRC校验、LQR及VMC等 ├─ application # 顶层任务设计,包含相关任务函数 ├─ bsp # 对HAL库函数进行封装 └─ modules # 相关外设驱动,包括宇树A1电机,BMI088,裁判系统 ``` ## 特点介绍 控制系统方面,该系统在实现了平衡控制器和纵向运动控制器的基础上,加入了线性卡尔曼滤波进行速度融合以提高机器人在复杂路况运动下的鲁棒性,并加入跳跃功能,进一步提高了地形通过能力。 单片机使用方面,该系统通过对任务函数及任务优先级的优化,实现了核心任务(电机通信任务,控制任务,双板通讯,裁判系统通讯)能够以1khz的频率进行运行,提高系统鲁棒性。除此之外,该系统针对宇树电机通信速率高的情况进行优化,利用HAL库自带的回调函数实现了半双工通信(达妙MC01及宇树控制板可用),实现了串口双DMA通信,宇树A1通讯任务时长能够达到0.32ms,进而为其他任务腾出了单片机资源进行运算。 ## 需改进地方及思路 可参考RM Award获得者柳幸之的部分技术成果说明中的轮腿机器人部分:https://bbs.robomaster.com/article/22843 ## 参考文献 [1] 陈阳,王洪玺,张兰勇.轮腿式平衡机器人控制[J].信息与控制,2023,52(05):648-659.DOI:10.13976/j.cnki.xk.2023.2533. [2] V. Klemm et al., "Ascento: A Two-Wheeled Jumping Robot," 2019 International Conference on Robotics and Automation (ICRA), 2019, pp. 7515-7521, doi: 10.1109/ICRA.2019.8793792. [3] 湖南大学跃鹿战队开源 [4] 轮腿倒立摆机器人运动速度估计 (哈尔滨工程大学创梦之翼战队 2024) [5] [上海交通大学-云汉交龙 RM2023-平衡步兵控制系统开源] [https://bbs.robomaster.com/wiki/4574/9430] ## 鸣谢 在此感谢以下战队提供的帮助与交流(排名不分先后): 武汉工程大学 Nautilus,电子科技大学中山学院 RoboBraver,哈尔滨工程大学 创梦之翼,中南大学 FYT,华南理工大学 华南虎,上海交通大学 交龙,湖南大学 跃鹿,东北大学 T-DT,辽宁科技大学 COD,太原理工大学 TRoMaC,首都师范大学 WPIE,上海科技大学 Magician,重庆大学 千里,北京理工大学 追梦,广东工业大学 DynamicX,南京航空航天大学 长空御风,浙江大学 Hello World。 特别感谢中南大学FYT战队及首都师范大学WPIE战队在2024赛季南部区域赛期间所提供的帮助,以及感谢湖南大学Neo Zng在23赛季国赛备赛期间的鼎力相助,还有武汉工程大学刘嘉诚同学和电子科技大学中山学院柳幸之同学在23及24赛季期间长时间的技术交流。 如有问题可以与我多多交流,谢谢!