Notes · 2024.11.23
智能机器人 92
实践训练里偏低的一门。
智能机器人实践训练 92,在成绩单里偏低。实验室灯管有一根闪。车在地上走,红外碰到桌腿就转,转完不一定按你在报告里画的那种弧。现场 vis、超时、传感器漂移,跟后来演示崩是同类事:机器不听 PPT。
我没有把 92 解释成「我更擅长软件」。就是这门课我没到 95。车在场地上的那几分钟,比仓库里的代码诚实。
场地上的车不认仿真
仿真里走直线很稳。铺到实验室地胶上,轮速差一点点就偏。偏了还按仿真参数调,会越调越怪。我有一次把 PID 写进报告,现场却把参数改回拍脑袋的一组,因为拍脑袋的那组能到终点。报告和现场两套参数,答辩被问到,只能说「现场以能到为准」。这句话听着垮,但垮比装更接近这门课。
树莓派智能车那份练习还在仓库里。摄像头、电机、控制循环,每一段都能单独讲。单独讲和串起来跑,中间有缝。串起来之后,某一环超时,整车停在原地。停在原地的时候,报告里的架构图帮不上忙。帮忙的是:哪一个进程还活着、日志最后一行写了什么。
电池电压低的时候,同一套参数会变慢、变飘。报告里若写「稳定行驶」,现场电压不够,稳定两个字会打脸。我后来在盒盖那张纸上加了一行:出发前看电。看电比看架构图快。快的检查才适合实验室那种十分钟窗口。窗口里老师已经站在终点线附近。终点线不看你的类图。
vis 现场看的是车,不是你的笔记本。笔记本亮着也能扣分,如果车没动。我后来演示软件项目,会先把「当场能跑」放在「当场能讲」前面。这个顺序是 92 分那门课教的。
超时和漂移
传感器读数会漂。漂的时候你若把阈值写死,上午能走,下午走不了。实验室光线变了,摄像头那一路更明显。我试过在报告里写「自适应阈值」,代码里其实是两个 if。老师若追问实现,两个 if 经不起追。与其写自适应,不如写清阈值怎么来、在哪种光线下会失效。失效写出来,92 也可能,但至少站得住。
超时是另一刀。循环里某次读串口卡住,后面的控制全停。软件里我后来把超时当功能写进接口。机器人课上我还只会重跑。重跑有用,解释不了为什么卡。卡的原因当时没查干净。没查干净,就是 92 的一部分。
课上的机器人不听你的 PPT。PPT 可以画多层。车只认这一次循环有没有输出。输出没有,多层等于零。
场地线和自己在宿舍走廊试的线不一样。走廊窄,车靠墙。场地空,车会晃。晃了还按走廊参数,会提前转弯或转晚。转晚冲出边界,比转早扣得更明显。我记过一次:宿舍试通了,实验室第一次就出界。出界之后把速度降一档,先求完赛,再谈漂亮弧线。漂亮弧线在 92 分里我没拿到。完赛有过。完赛比弧线先。
组里怎么分工
实践课通常组队。我负责过一段控制代码和一份现场演示脚本。脚本写明:上电、等灯、放车、不要在中途改参数。有人会在老师走过来时还在改。改过的车,成功率掉得很快。冻结版本这件事,课设里学过,车这里更狠:你改一行,车的行为不像编译错误那样立刻红,它只是走歪。走歪看起来像「还行」,其实已经偏出评分线。
我把最后能走完的参数抄进一张纸,贴在盒盖内侧。纸比云文档快。实验室网络不一定给你打开仓库。
组里若有人同时改电机和摄像头,现场很难回滚。回滚需要知道哪一版能走。能走的版本我用日期打标签,标签写在纸上和仓库里同一句。句不一样,现场会装错。装错一次,十分钟窗口就没了。没了只能口头讲「刚才还行」。刚才还行等于这门课的事故报告。事故报告进不了 95。
92 分怎么用
成绩单上它偏低。偏低我留着,不补叙事。补叙事会写成「硬件不是方向」。方向以后再选。这门课的事实是:现场我没把车和报告对齐到更高一档。
下次再碰带传感器的东西,先写失效条件,再写成功路径。成功路径人人会写。失效条件才决定你在场地上还剩几分。92 提醒我:软件仓库绿了,不等于地上那辆车绿了。两套绿要分开写,不要互相借。