25_R1_chassis/readme.md

61 lines
3.0 KiB
Markdown
Raw Permalink 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的代码使之更加规范
目前存在的问题:
1配合相机纠正yaw
2改进遥控器控制时6020会小幅度动的问题
3锁死时5065能动改进一下让5065锁死
4加快跑点速度如果要跑点的话
5加一个防翻虚拟云台目前车的重心较低这点可忽略
经证实后轮压力不平衡导致后轮6020锁死时转不到目标角度导致电流过大引起6020发烫因为双环pid的out在动的瞬间已经达到最大值25000但6020转不动电控已经无能为力了。也不能通过检测6020电流是否过大来让6020停止转动这种方法丧失了其功能性目前发射要锁死时还是先抬一下后轮防止6020憋死后期只能看重量分配能不能改善这一点。
目标效果:
1最理想的情况视觉相机测量距离以及偏角距离发送给上层进行速度拟合偏角发给底盘进行码盘纠正yaw使得发射朝向篮筐这样底盘只需要nuc和码盘不需要sick并且可以不拘泥于跑点
2,更理想的情况相机不发送偏角而发送像素点像素点作为vw进行对准这样码盘和sick都不需要
3跑点码盘跑到目标点后sick微调位置并且纠正码盘数据码盘的yaw还是准的xy随时间会有误差码盘的pos_x,pos_y加个offest初始为0矫正之后给个offest随时校准位置最好有一个按键能随时切换码盘校准和sick校准目标位置为当前位置角度为0这样