与master分支同步更改

This commit is contained in:
panrui
2022-12-29 16:53:10 +08:00
parent 3e312b0041
commit 390e168b46
25 changed files with 674 additions and 161 deletions

View File

@@ -176,11 +176,11 @@ static void EmergencyHandler()
}
}
void GimbalCMDTask()
void RobotCMDTask()
{
// 从其他应用获取回传数据
#ifdef ONE_BOARD
SubGetMessage(chassis_feed_sub, (void*)&chassis_fetch_data);
SubGetMessage(chassis_feed_sub, (void *)&chassis_fetch_data);
#endif // ONE_BOARD
#ifdef GIMBAL_BOARD
chassis_fetch_data = *(Chassis_Upload_Data_s *)CANCommGet(cmd_can_comm);

View File

@@ -3,6 +3,6 @@
void GimbalCMDInit();
void GimbalCMDTask();
void RobotCMDTask();
#endif // !GIMBAL_CMD_H

View File

@@ -0,0 +1,28 @@
# robot_cmd
<p align='right'>neozng1@hnu.edu.cn</p>
## 运行流程
运行流程可以很直观的从`RobotCMDTask()`中看出。首先通过消息订阅机制,获取其他应用的反馈信息,然后使用`CalcOffsetAngle()`计算底盘和云台的offset angle使得底盘始终获知当前的正方向接着根据当前是通过键鼠or遥控器控制调用对应的函数将控制指令量化为具体的控制信息得到控制信息之后先不急着发布而是检测重要的模块和应用是否掉线或出现异常以及遥控器是否进入紧急停止模式如果以上情况发生那么将所有的控制信息都置零即让电机和其他执行单元保持静止。最后还是通过pubsub机制把具体的控制信息发布到对应话题让其他应用获取。
## 外部接口
## 私有函数和变量