25_R1_chassis/readme.md

88 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 25/R1底盘
4.11修改了navi循迹函数增加了20100双重码盘距离判断
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发现![image-20250619005127648](C:/Users/Yodel/AppData/Roaming/Typora/typora-user-images/image-20250619005127648.png)
这个问题在接收频率为500hz时的处理方法对雷达的数据进行滤波效果非常显著
6.21bsp.pwm里加了个功能强大的蜂鸣器
6.23sick校准大致调好了pid还得调配合视觉那块也做好了
6.24后轮发烫已经烧坏3个6020了很费解的一件事6020明明有过热保护而且之前40kg的时候后两个轮天天发烫都没有一个坏的第一次减重到29kg后左后轮已经烧坏了两个6020了其中第二个6020才用了3天。全车换完碳之后右后轮也在今天凌晨2点寄掉了。我们分析了一波原因一个是重量分布不均匀重量全压在一个轮子上另一个就是本身场地是胶皮轮子还是包胶轮摩擦力太大了而且debug里显示6020一瞬间的输出就达到了25000电控这边已经无能为力了。我们最后想出的办法是给后两个轮贴透明胶带以减小摩擦力效果非常显著今天跑了一天轮子最高温才40多。
6.25简单加了一个乐迪的上电保护,蜂鸣器完成
6.26两车通信r1锁r2成功
6.27加了个防翻保护
目前存在的问题:
1,sick辅助雷达校准点位pid得调差不多了但调的很抽象d贼大没办法
2雷达纠正角度那块pid得调
3,试一下雷达发自身角度,用世界坐标系实现边跑边锁框
5用码盘实现运球赛自动
1舵轮前后校准和左右校准不一样会导致前后校准后前后走的还可以但是左右会歪就像是转不够90度
目标效果:
1雷达精准定位篮筐sick辅助雷达校准
2相机动态调试时由于帧率太低导致车体震荡但是静态调试时又比较呆而且相机可能会在今年赛题比较受限
3码盘sick我觉得码盘负责调整yaw为0sick至少两个呈直角把模拟量与实际距离相拟合来得到自身距离进而实现全场定位有戏但奈何没多少时间来验证这一想法。
第二种是码盘和sick配合跑点也是比较受限
赛场上运球赛r1打码盘自动跑点投篮赛r2打正赛大部分都是r1持球先用sick跑点校准并且运完球之后进入进攻区在进攻区内找准时机锁框发射实在不行传球。