Robotics-Documents/工程代码笔记及达妙电机使用规范.md

42 lines
1.2 KiB
Markdown
Raw Normal View History

# 24赛季工程机器人代码笔记
24赛季工程机器人代码为`basic_framework`框架下C/C++混编,主要目的为使用上海交通大学开源的嵌入式机器人学运算库 [SJTU-RoboMaster-Team/Matrix_and_Robotics_on_STM32](https://github.com/SJTU-RoboMaster-Team/Matrix_and_Robotics_on_STM32)
## 混合编译注意事项
机械臂解算相关代码放在了`gimbal.cpp`中代码中使用了C++特性的源文件都需要以`.cpp`结尾
如果希望`.c`文件能够调用`.cpp`文件提供的函数,则需要在`.cpp`文件对应的头文件中加入`extern "C" {}`关键字
如`gimbal.h`
``` C
#ifndef GIMBAL_H
#define GIMBAL_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief 初始化云台,会被RobotInit()调用
*
*/
void GimbalInit();
/**
* @brief 云台任务
*
*/
void GimbalTask();
#ifdef __cplusplus
}
#endif
#endif // GIMBAL_H
```
## 达妙电机相关
湖大开源`basic_framework`框架的达妙驱动为每个达妙电机单独创建了一个任务但赛场测试发现这会经常导致某些电机离线因此新版代码中将所有达妙电机像DJI电机一样在一个任务中控制
### ID设置规范
![alt text](figure/CANid.jpg)
![alt text](figure/CANid设置.jpg)