51 lines
1.6 KiB
Markdown
51 lines
1.6 KiB
Markdown
# robot_cmd
|
||
|
||
<p align='right'>neozng1@hnu.edu.cn</p>
|
||
|
||
## 运行流程
|
||
|
||
运行流程可以很直观的从`RobotCMDTask()`中看出。
|
||
|
||
1. 首先通过消息订阅机制,获取其他应用的反馈信息
|
||
2. 使用`CalcOffsetAngle()`计算底盘和云台的offset angle(使得底盘始终获知当前的正方向)
|
||
3. 接着根据当前是通过键鼠or遥控器控制,调用对应的函数,将控制指令量化为具体的控制信息
|
||
4. 得到控制信息之后,先不急着发布,而是检测重要的模块和应用是否掉线或出现异常,以及遥控器是否进入紧急停止模式,如果以上情况发生,那么将所有的控制信息都置零,即让电机和其他执行单元保持静止。
|
||
5. 最后通过pubsub机制,把具体的控制信息发布到对应话题,让其他应用获取。若为双板,则将原本要推送给底盘的信息通过CANComm进行发送。
|
||
|
||
|
||
|
||
### 遥控器控制模式:
|
||
|
||
拨轮向下打到底进入紧急停止模式(后续改为关闭遥控器停止,利用daemon);拨轮向上打开启摩擦轮,超过一半开始发射(速度环,连发)
|
||
|
||
左侧开关:
|
||
- 上:键鼠控制
|
||
- 中:视觉控制(没有识别到目标的时候仍然可以使用遥控器控制云台)
|
||
- 下:遥控器控制
|
||
|
||
右侧开关:
|
||
- 上:弹舱开
|
||
- 中:底盘云台分离(底盘不旋转,全向移动)
|
||
- 下:底盘跟随云台
|
||
|
||
### 键鼠控制模式:
|
||
|
||
遥控器左侧开关拨到最上方,进入键鼠控制模式,此时不会响应遥控器遥感和拨轮的输入.
|
||
|
||
前后左右:WSAD
|
||
|
||
开关弹舱盖:R
|
||
|
||
小陀螺:Q
|
||
|
||
发射:鼠标左键
|
||
|
||
自瞄:鼠标右键
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|