2023赛季是一个坎坷的赛季,比以往经历了更多的风风雨雨,虽然打不了正赛,但是也总算是在邀请赛中展现出属于我们东莞理工学院ACE的风采。
工程篇
7月份,暑假打底,巩固基础
暑假开始,迎来的是来自廷廷的考核。
因为我比较摆,也不想看蒋汶伸的恐怖代码
尽管我觉得他的代码可读性差,但是整体架构和代码量是很少的,也是值得去学习的。
幸好被蒋汶伸救了一救,不然我可能考核都过不了(我只在22赛季上场前陪他调过小云台、抬升、翻转夹爪而已,全在吃老本
之后过了考核,我就正式在暑假留校了。
蒋汶伸给我的任务是,学习家华的FSM有限状态机。
不可否认,FSM有限状态机是一个很厉害的东西,但是,如果在场上想要遥控器键鼠两者混用(或者说是一个全局状态机
那还是要优化的,可能需要杰框的那种模式比较合适
可能自定义遥控器+键鼠才是以后的未来的正确道路,就可以延续这套大框架了。
但是建议还是学一点控制框架,康康能不能优化。
学完之后就开始把底层的驱动,比如Dr16的双缓冲、单缓冲、环形队列,CAN等等,写完了。
蒋汶伸的第二个任务是写一个CAN的FIFO,他们当时翻转夹爪控制不好可能是因为任务频率控制不好还是CAN堵了。
我看了很多开源,终于在官方的步兵代码找到了CAN+FIFO的发送代码,包括我现在用的DetectTask也是官方的,靠他实现了DR16插哪个地方都可以的操作
去年的工程到手的时候,底盘被蒋汶伸弄坏了,所以电控只能调抬升和云台。
但是我只调了抬升哈哈哈
到这里,我的工程代码框架已经大概写好了。
此时的机械组在干嘛?
我们让李文灿画新的工程,因为老人说想把他做的轻量化
画新工程,是我们做的最后悔的决定。
已经让机械组的看了很多开源了
其实对比起其他大学的工程,他们的整体框架确实是往简的方向的,整体框架轻量且流畅
但是没有积累,也没有机会出去交流,也没有试错的时间
(而且李文灿去当什么委员还是什么东西,暑假都没有陪我们看图和画图!!
预期要求太高,也是我第二后悔做的决定。
当初立Flag,要搞空接,想要搞二级抬升、二级前伸(没有一个人反驳我是最骚的,我当时不知道机器人制作规范的限高限制的这么死
10月份,规则出台,盲目堆料
上海交通大学的机器人的高稳定性的背后,是设计者对机器人功能需求的正确分析,对设计细节的考量,对项目进度的推进与对压力测试的严格要求。 设计者需要对各项功能的需求有极其深刻的理解和把握,一些基础而关键的需求万万不可偏废。首先,工程机器人最重要的一点是不翻倒,这一点通过前文的规则研究与需求分析也能轻易得出。在总决赛中,交大的工程机器人灵巧下坡,8秒即取到首箱弹丸,肆无忌惮上桥头,跳公路,卡位等,背后都蕴藏着为了降低重心而付出的心血。由此可见,交给操作手一台怎么开都开不翻的机器人是多么重要。反观有些出现过工程翻倒的队伍,就算其他功能做得再好,这种低级失误而导致的战败也会成为全体队员长久的伤痛。这些基础却关键的能力需要设计者去细细思考和拿捏,把简单细节做到极致,不要因为低级错误造成一年的遗憾。 注重人机工程,打造人机友好型产品。RoboMaster的参赛机器人不是简单的机器人,而是一款人机交互性极高的综合产品。工程机器人功能复杂,从机械结构设计到键位设计,都需要考虑操作手的操作体验,听取操作手的反馈并不断改进。
这是我翻聊天记录找到的
上海交通大学的机器人的高稳定性的背后,是设计者对机器人功能需求的正确分析,对设计细节的考量,对项目进度的推进与对压力测试的严格要求。
这句话,字字都要好好思考,每一句话,都是我们工程组要为之加班考量的东西。
比如功能需求的正确分析
,我们在设计之初,没有对功能需求进行正确分析,比如盲目堆料想空接、想高自由度、什么二级抬升二级前伸都来了,其实要满足赛场上的经济需求,首先要能够兑换好银矿。
但是银矿怎么能够稳定、高效地去吸取,也是有考究的。
就如同我们当初让少辉画的机械臂,太过于像广工的大臂了。
我们一开始确实是定的传统抬升+前伸+机械臂的方案,但是我忘记大臂和小臂的区别了。
大臂就会把我们传统的框架给限死,因为机器人制作规范,同时效率低。
小臂,你看开源,很多都是小臂的。
比如对设计细节的考量
,细看小资源岛,其实和 死于话多 做出来的资源岛有区别的,正赛是有墙的,会顶住矿,而且实际做出来的高度好像也不一样。
比如对项目进度的推进与对压力测试的严格要求
,我们当时项目推进地异常艰难,因为疫情和李文灿喜欢摸鱼的原因,没有push太多,push了也是画的一般。等到车出来了都快要比赛了,还何谈压力测试。
所以步兵和英雄够稳定的原因,有部分可以归功到联盟赛的失败。
所以,这赛季一定要对工程的需求有正确的分析,好好对细节有所考量,定好赛季目标(比如说就稳定高效吸取兑换银矿,金矿听天由命地空接),项目很狠推进(参考华工一个月两代车)在半年内一点要出车
1月份,寒假摸鱼,进度冻结
寒假留校的时候,最后悔的事情也还是让李文灿跑了。
留下少辉佳平,给我很狠地压榨了他们。
我他妈要再信他们的一点逼话我就他妈的杀了他们
当时他跟我说,我都做出来了,让少辉维护一下,补一点小细节就可以了,我在哪里都能画图
你说你妈呢,小细节恶心少辉多久了,少辉还是步兵组的,真以为自己画的一代车能没有任何问题撒手就跑?
麻烦对你的沙笔儿子上点心,不要你以为,我要我认为
全部统统给我留校,不留校你就退队,滚犊子
只要你一天身为技术组的成员,活就能源源不断的来,不然就是你队友给你分担压力
哪怕你在实验室学习也行,起码你人还在
每次李文灿都会给我搞红温,还有那30质量的打印件
然后寒假我把车带回去就不了了之了,调不了一点
抬升抬不了、臂装不上、前伸是气动的也不用想
一个人在家很憋屈的把Detect_Task写了,学C++和Arm架构去了
其实这个时候我有想学自动控制原理和ROS来优化机械臂的性能的,但是我一直找借口说没有臂就不搞了
所以
下一个任务就是学自动控制原理优化控制性能和ROS
此时的硬件组也是处于假死状态
线是我用官方那套东西组起来的,和邀请赛的一些队伍没有区别,一样脆弱
也不知道以前那套电调盒子的好处在哪,为什么老人喜欢用
3月份,否定新车,回归老车
自从寒假没有一点进度之后,我就push,赶紧全员回校备赛。
但是事与愿违,这台烂车中期评审都很难拍
抬升因为链条烂、沙笔联轴器、臂因为双2006虚位太大不好调,电控需要改算法,所以没搞,让一个2006强顶,结果就是电调滴滴滴的想,堵转,然后他掉力了。
对比起其他大学,设计的很傻逼。
请武老师过来,最后的决定是回归老车,老车拥有着比新车好的底盘性能、抬升性能,摒弃傻呗链条,不好调,还垃圾
多半链条选型和设计的方案有大问题,很多学校用的小链条加3508倒置直连,完美利用。
但是,为什么不用同步带?同步带只是容易老化,需要换而已,在老车上的性能可是能指指点点的。
最后,把臂移植到老车上,算是能基本实现他的功能了。
5月份,硬件上号,拜托老人
5月份基本上机械组已经出好车了,然后均壕把yuxiang和静仪分配到工程来做。
幸好当时苒升问要不要帮忙,刚好很闲。
抓住机会就是让老人来做,19的老人硬件硬实力是我的梦中情人,马上把底盘的活都交给苒升了。
具体操作就是我把硬件拓扑图列出来,然后分配工作给这三位。
但是还是出现了我害怕的问题,三个人的工作分配与交流有点问题,比如说绿色端子的线序,是乱的
电控需要尽早出台控制各个器件的方案,还要和机械组确定分电板主控板的位置和保护器件
然后尽早确定好板子,让老人检查
无可避免地会出现打好几个版本的板子、做线走线搞一两个星期的问题
所以我们硬件卡了很久很久
而且这个沙笔舵机,我们也不知道他这么容易炸,就算上了保护板我也感觉容易炸
上场炸了两个舵机...
而且那个布瑞特编码器,最后也没用上。。。
最终上场
可能我是对机械组的异常自信吧,没有自己动手一个个列出来检查清单
硬件只要检查每个功能能不能正常运作,比如底盘四个电机能不能动、抬升前伸能不能用、机械臂正不正常
机械只要检查有没有地方松动(轮组的涨紧套),一些傻呗螺丝有没有松、伸展尺寸的限位有没有正常限住就可以了
可能我喜欢逃避,因为检查的越多感觉越紧张、压力越大,但是这样是不行的。
电控篇
ESP32
目前esp32s3已经支持homekit sdk
目前有个很骚的方案,ESP32挂个前端来控制G7人/homekit
然后USB tinyusb虚拟串口报文控制
ACEECF
看linux内核设计与实现后
比如初始化,可以用一个struct+linklist实现驱动初始化?函数指针
然后IPC进程间通讯也可以写
P12
大文件夹架构也可以优化成类linux
- doc
- driver
- init
- ipc
- lib
- doc
等等
然后通过ncurse库图形化控制make menuconfigP13
https://zhuanlan.zhihu.com/p/33640653
用Kconfig,但是要先学make
http://sunyongfeng.com/201811/programmer/tools/kconfig-frontends
管理篇
带他们去打福建联赛