silence_sky 发表于 2015-1-12 17:37:33

小车怎么做到平稳的、车头笔直的缓起缓停?

是个扫地机器人那么大的设备底盘。2个主动轮和一个自由轮,2个电机分别控制2个大轮子。和你们玩的小车差不多。
单纯用PID控制轮速恒定,就可以做到走直线了(走的比较慢,高速也只有15cm/s)。从0到最大恒速需要0.35秒(6、7次PID计算)。2个轮子的间距是17cm。

但底盘上面要带高度较高的物体,重心高直接启停的话物体就会前后晃,这是需要避免的。所以我先给电机一个占空比非常小的PWM,再用增量PID做恒速,多少有点缓起的效果。
然后用改变目标速度的方式来缓停,问题是改变目标速度后,调整期间会导致轮子的速度波动,车头就开始晃了,速度一边降低,一边晃几下。
然后我只好又加了对2个轮子转过的距离的平衡PID(也是增量式),车头晃得小了,但是还在晃。
怎么办?
现在的要求是,小车底盘要平稳的启动,然后再缓慢的停下来。期间车头方向要稳定,不能乱晃,精度不要去太高,只要不能肉眼可见的晃就行。

silence_sky 发表于 2015-1-12 19:23:28

结贴,不知道为什么行驶距离算错了,导致程序内部设置的目标速度其实一直在跳。现在还是单独一个转速PID就可以。

bjxp 发表于 2015-1-13 21:35:06

虽然楼主自己结贴了,还是多两句嘴。没做过小车,但是见过SPMT车辆编程(近似于图形化),一是必须有缓起、缓停模块加在行驶控制的两端;二是最好有加速度计,采用恒定加速度方式控制平稳行驶,依据载物的重心高度、固定方式、抗倾覆力矩确定适合的加速度。
页: [1]
查看完整版本: 小车怎么做到平稳的、车头笔直的缓起缓停?