旅游机器人赛后总结
旅游机器人赛后总结
1.硬件介绍
1.主控:STM32F103ZET6
2.用到的传感器:
a.8路灰度传感器
b.光电传感器
c.MPU6050
d.色标传感器
3.小车结构:
a.结构上采用合页式结构,如果轮子太小而车整体高度较低,可能会导致过梯形山不好过,可以将合页与舵机相连,在过这些不好过的景点是用舵机将车头抬起来。
b.在车头的合页处可以加上一个挡板,当车头抬起的时候该挡板可以挡住光电传感器,以此来判断车是否上坡/上台/过梯形山。(感觉比用6050读roll角来判断更稳一些)
2.一些细节问题
1.平台处由于黄线的存在,直接靠灰度寻迹可以会导致车寻到黄线而歪掉,因此下台时可以先用定时器让小车开环跑一小段距离,灰度大致到了白线上时再开始寻迹。可以将上平台和下平台单独写一个函数,这样提高代码的复用性。
1 | /****************************************************** |
1 | /****************************************************** |
2.在平地上转弯时,完全可以通过灰度来转而不是用6050的YAW角,如果用YAW角,必须事先确定所要转的角度,可能需要花费更多的调试时间。建议用灰度结合定时器来转,设定一个最小时间,当时间大于此阈值且灰度中间的2个检测到白线时,转角结束。
1 | /* 左/右转直到车中线到白线 */ |
3.传感器读取数据时,尽量加一些滤波,在某些景点可能一次数据读的有问题就直接结束了。。。并且要选择合适的采样周期,并注意算法的时间复杂度,有时候可能车跑的太快了,你的传感器采样次数过多再加上滤波可能来不及。
4.在做旅游机器人的时候,第一个该调试的就是它的寻迹功能,而寻迹一般都是通过灰度来寻的。对于寻迹,可以通过灰度在不同位置时,电机差速转动来寻,也可通过PID来寻。由于所使用的灰度一般都是数字量灰度,所以除了PID的KP、KI、KD 3个参数,在调试寻迹的时候,我们还需要根据灰度的位置自定其返回的ERROR值,以此来计算输出。在走不同的地形时(直线或S弯)可以适当的改变一下PID的参数。为了防止车头在寻迹时来回抖动,积分项建议在车头摆正时清0,或者直接就把KI设为0。想要寻迹效果更好的话,除了通过灰度对小车的位置闭环,还可以使用编码器电机对速度也闭环并作为位置环的内环。