作者:xnjust、ycznjust

前言:本人在十六届智能车竞赛现场失误果断白给,后来校赛的时候补上遗憾,“不小心”搞出“漂移算法”,大家在我B站那边看的还挺乐呵,有两个小伙伴后台问阿克曼车型该怎么写这个运动解算的东西,毕竟C车模还是屁股上面俩电机,不是机械式的差速器,不搞差速的话基本上是没法搞。现在毕业之后的社畜去处也定好了,就抽点时间填坑,各位不要再说我是鸽子了,鸽子也是要脸的。

综述:智能车竞赛的C车模还是一款不错的车模,两个后轮通过两个电机直接驱动,前桥通过舵机进行驱动,前桥的转向效果比较真实,内侧轮和外侧轮角度是由一定的差值的,因此不可以把C车模照着众多的CSDN帖子简化成“单车模型”,毕竟大家估计都是冲着通过舵机打角计算后轮差速来的,估计困惑大家的都是这个问题。CSDN上面很多帖子都是“单车模型”或者是“曲率控制”,要么就是不管差速,要么就是默认大家都是摄像头的车子,觉得大家都可以想办法拿到曲率,这不直接耍流氓,咱们这个帖子就是从电磁车出发,想办法通过舵机打角计算出后轮差速,个人水平有限,欢迎各位大佬指出问题,方便我改正问题:B站UID:26149458 B站艺名:找寻着你呐

问题一:如何获得阿克曼车型的后轮差速?

大家在做智能车的过程中,肯定会先做电机闭环,然后闭环做好之后,肯定会用全局变量什么的指定车轮的固定速度,走直线的时候可以直接用这个速度指定左右两轮的速度,但问题是转弯的时候怎么办,大家肯定做过两轮车,转弯肯定要差速,阿克曼的肯定也是要用差速,但是这个差速该怎么差速?这个差速和舵机打角有什么关系?

那么我们先来解决差速该怎么差速这个问题:

首先放个图:

图中的标识相信大家很容易就能看明白,通过以上符号,再运动初中数学,大家肯定可以很容易列出以下基本公式:

通过图片大家可以看到,阿克曼车型在转弯的时候,其实是在做圆周运动,这个圆心呢就和别人帖子里写的这个曲率有关,那么我们现在思考一下,这个圆心和后轮在一个轴上面,要做圆周运动,那是不是就代表了,两个轮子的角速度其实应该是一致的,那么既然角速度一致,是否就可以根据初中物理的圆周运动知识知道一下公式:

假设我们设置的速度是两轮中心的速度,那么有:

那么很容易就可以得到两轮的速度:

现在看这个式子,我们的差速是不是自然而然就可以拿到了,但是还有一个问题,就是这个R,这个R也就是关乎其他博主说的曲率,关于这个我们继续讨论。

问题二:R或者曲率怎么拿到?

大部分博主都在说,用摄像头,多点法或者两点法拿到曲率,但是还有广大的同志是电磁车啊喂,电磁车就是通过电磁信号获得当前的偏差,然后用PID或者别的方法,算出一个舵机的打角,那么我们怎么通过打角来计算出后轮的差速呢?

照旧,还是先贴一张图:

此处需要注意一个问题,图中的L4标注错误,L4应该是红色的臂长

该图是简单模拟C车上由舵机驱动的前桥,图中的M还有T还有L4,都是前桥中机械结构中的已知参数,大家可以自己测量一下,通过上下的对比图不难得出以下公式和结果:

该公式是错误版本,对应的是图中L4的错误标注

根据L4的正确标注,正确公式应该参照如下公式

同理可得左边的α角,那么如何得到R呢,我们回头看第一张图的公式:

此时α和β都知道了,就可以带入上式,算出R,然后就可以算出后轮的实际速度了!

小结:不知道各位看官都看明白没有,如果看明白了,请给俺的B站点点关注走一走,因为我老是和实验室的大伙儿攀比粉丝数量

B站跳转链接:找寻着你呐的个人空间_哔哩哔哩_bilibili