69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
## 25/R1底盘
|
||
|
||
4.11修改了navi循迹函数,增加了20,100双重码盘距离判断
|
||
|
||
4.12码盘低速正常高速串口丢失原因:码盘主板和编码器的接线外皮裸露互相短路
|
||
|
||
4.13测试了与nuc的通信,能发送能接收
|
||
|
||
4.15更改了舵轮运动学逆解算,现在能一边小陀螺一边走直线
|
||
|
||
4.16加上了sick接收
|
||
|
||
4.17更改了导航代码,能在目标点附近调整角度
|
||
|
||
4.24优化了代码,把所有的extern换成了消息队列,使代码更加规范,更改了代码栏,使得页面更加清晰
|
||
|
||
发现了一个很有意思的现象,我的calc_task和chassis_task里都从消息队列接收cmd的数据,但是两个如果同时接的话chassis会把calc里的接收给卡死掉。恶补了一下消息队列,发现发送的一个消息只能被一个接收者接收,
|
||
|
||
**单次消费**:默认情况下,当一个任务从消息队列获取(`osMessageQueueGet`)一条消息后,这条消息会从队列中移除,其他任务无法再获取同一条消息。
|
||
|
||
**先进先出(FIFO)**:消息按照发送顺序排队,最先发送的消息会被最先接收。
|
||
|
||
这也解释了为什么can_task中会发这么多条同样的can的消息队列,而不合并成一个can消息队列发送出去
|
||
|
||
4.28增加了sick的微分代码,但还出现sick数据跳变时微分数据更新不及时以及噪声问题
|
||
|
||
4.30改进了sick的微分代码,通过降低采样频率得以实现
|
||
|
||
5.1测试sick纠正底盘成功
|
||
|
||
5.5遥控器一键切换成功,更改了remote_control和cmd的代码使之更加规范
|
||
|
||
5.28历时5天把相机纠正yaw给搞出来了
|
||
|
||
6.14雷达sick校准代码改完了,发现了同一个数据不能创建两个消息队列发送给两个任务
|
||
|
||
6.16发现每次遥控器回正时6020会小幅度抖动是因为底盘保持模式的keepangle我一直给的是反馈值,改成jiesuan1后就好了
|
||
|
||
6.18发现
|
||
|
||
这个问题在接收频率为500hz时的处理方法,对雷达的数据进行滤波,效果非常显著
|
||
|
||
目前存在的问题:
|
||
|
||
1,sick辅助雷达校准点位,sick校准的好就很快
|
||
|
||
2,三号舵轮6020总是发热
|
||
|
||
3,雷达纠正角度那块视觉的pid得改
|
||
|
||
4,雷达跑点xy需要加个pid
|
||
|
||
5,6020双环pid发送out给can的那块有问题,会导致手动转1号轮2号轮会跟着转,手动转2号轮3号轮会跟着转以此类推,手动转6020会导致两个电机的反馈变化,目前还没有解决
|
||
|
||
6,舵轮前后校准和左右校准不一样,会导致前后校准后前后走的还可以,但是左右会歪,就像是转不够90度
|
||
|
||
|
||
|
||
目标效果:
|
||
|
||
1,雷达精准定位篮筐,sick辅助雷达校准
|
||
|
||
2,相机动态调试时由于帧率太低导致车体震荡,但是静态调试时又比较呆,而且相机可能会在今年赛题比较受限
|
||
|
||
3,码盘+sick,我觉得码盘负责调整yaw为0,sick至少两个呈直角把模拟量与实际距离相拟合来得到自身距离进而实现全场定位有戏,但奈何没多少时间来验证这一想法。
|
||
|
||
第二种是码盘和sick配合跑点,也是比较受限
|
||
|