双轮速度恒定沿直边做直线运动。(小车主要依靠前后两个测距传感器实时测量车身距离边的距离)
求解决思路和公式~
如何通过改变小车左右轮速度让小车逼近直边呢?求各位指点
这其实还是有点复杂了,先说一下纯数学方面的思路:
1、根据两个超声波传感器数据可以确定车辆与边的距离,两个传感器测距结果相同,则车与边平行
2、楼主的意图是在平行的情况下去接近边,加入边在左侧,那么就是车头左偏向前行,车就会逐渐接近边
3、下一个问题就是车头左偏的幅度的控制,以及什么时候开始回调,这里应该会涉及到一个车辆与边的距离的计算,如图所示:
有这4个数据,前后超声波传感器测量结果df,db,超声波传感器安装距离l(可测,固定),车头距边的距离d,根据df、db、l可以计算出车辆倾角θ,再结合df就可以计算出d,可以通过d的大小来控制车辆倾角的大小,比如d比较大的时候,θ可以通过右轮加速(或左轮减速)增大一些,当d越来越接近需要的值的时候,就要开始减小θ,这个地方可以通过pid来控制,如果不通过pid控制可以参照下一条
4、假设两个车轮速度是稳定可调可测量,且地面不打滑,那么就可以精确的计算出车辆在转弯时当前倾角θ,当前车头与边的距离d与右转θ度以后的车头与边的距离,以这个为基础,我们就可以倒推出车辆位姿与转向后的距离关系,举例来说就是假设我以30度倾角靠近边,那么当车头距边多远的距离时进行原地转向,转到平行然后直线向前,这个距离是可计算的
5、以上是纯理想状态下的情况真实状态下需要考虑的是车轮电机的差异性,需要对车轮进行校准,需要达到给定走直线的命令就真的能基本走直线,另外还有地面因素,如果车轮打滑严重,也会影响控制效果
定时获取传感器传入的距离,这个时间间隔最好短一点,然后根据距离来修正方向
采用增量式pid对两轮分别闭环控制。用编码器采集速度,两个测距传感器的值用于确定小车位置,找出理想位置,通过理想位置的传感器值与实际位置,对两轮进行pid控制。既需要一个驱动输出pwm给两个电机,pwm.占空比既为pid得的值。
在回答你这个问题之前我先举个例子,如果你会开车你就会知道,当我们倒车的时候如果遇到车身不直或者车身离左右库线一边大一边小,不居中,这个时候我们会在车前进或者后退的过程中通过对方向盘进行左右微调达到摆正车身的目的。一般是三个步骤,左转-直行-右转,或者是右转-直行-左转。
再回到你这个问题,首先两个测距传感器要不停的采集数据,而且实时性要求比较高,有了两个距离之后我们就可以通过这个距离对前轮不断的进行微调。
比如左前轮窄了,左后轮宽了,那就先右转,等前后宽度一致之后回正,然后再看这个距离是否满足,如果是宽了,那就先左转一点点,然后回正(此时车身前窄后宽),等车前进一小会(目的是继续缩小前后轮和直边的距离),然后再右转,等车身前后摆直了再回正。这个“左转-直行-右转” 的步骤可以重复进行多次,每次转动的角度可以小一点,防止速度太快一下子调整过度。
其他情况同理。在这个过程中可以重点关注一下后轮的距离,前轮的距离很好调整,但是后轮是不能变向的,不管是左转还是右转,都是以其中一个后轮作为转动轴,如果要调整这个后轮到直边的距离,只通过左转或者右转是不行的,要在左转或者右转之后直行一小会才能调整这个距离。
整体的流程大概是这样,望采纳!!
双轮差速
和
麦克纳姆轮
能一样控制吗?