差速小车刚体运动学-学习笔记

差速小车-刚体运动学

1.基本模型

差速轮式小车的基本模型如图所示:

image-20220208221456380 image-20220208221606317

​ 这个是最理想状态(重心在圆心,驱动力矩直接施加到轮上等)状态下的最简单的模型,第一二项分别为速度的x和y方向上的分解,最后一项角速度由于直接圆心直接在重心位置,直接就是车辆自旋的角速度。

2.正/逆运动学

​ 对于差速两轮小车而言,由于我们能给小车的物理量实际上只有小车的两个轮子的角速度,通过MCU/SOC输出PWM控制电机驱动板输出相应的电流信号,进而控制轮子转速,因此,需要建立机器人轮速和小车移动的关系!

  • 首先分析一个轮子的单轮模型:
image-20220208222918056 image-20220208222938900 image-20220208222956339

​ 这个模型很简单,r为小车轮子半径,(x,y)为地面接触点,u1为前进方向速度,u2为其扰地面接触点的自转速度。

​ 这里的正解输入为 u = [轮子转速,轮子自转速度] ,正解输出为 q = [ 角度,X速度,Y速度]。

​ 逆解就是反过来,由当前轮子坐标推测应该给轮子输入的转速和自转速度。

  • 接下来分析双轮差速运动模型,这个和四轮是一样的:

    我目前所找到的主要有下面这两种分析方式:

    【1】

    image-20220208224120439 image-20220208224144082 image-20220208224225368

    该模型中,车轮半径为r,B为小车的坐标系,ICR为小车的旋转中心,角度为小车绕ICR中心的角速度,通过以下方程推导可以建立其绕ICR的角速度与小车车轮的速度的关系:

    image-20220208225647859 image-20220208225727697

    这里的物理量均为一阶物理量:

为什么模型建立要用一阶物理量? 我觉得是因为实际运动小车的控制上,输出PWM给驱动控制电机是这么个流程:PWM->电流->电机转速,所以说建模这里都采用一阶的物理量,但是这个只能确定小车的当前的速度,不能确定其准确的坐标位置

​ 这里的正解输入为为左右轮的转速 [uR,uL],输出量为整体小车的 [角速度,X速度,Y速度] ,这个正解我们在实际的这个小车控制中用处不是很大,因为我们不需要知道我们电机给了一个随机的左右轮电流给小车后,它会怎么跑,我们需要知道的是我们想让小车运动到一个指定的坐标位置和指定的角度,应当怎么给小车的左右轮施加PWM,这个才是控制的最终目的:

【2】

​ 这个模型分析方式是始终以小车的自身重心为旋转重心进行分析:

image-20220208230426752 image-20220208231018351 image-20220208231309387

​ 这个模型就比较接近开头说的两轮小车的模型,将其轮子的转速VL,VR用轮子的角速度进行分解,进而得到其速度,这个时候进行逆变换,就可以在前端跟踪目标在视觉/激光传感器采集到坐标信息计算后,与当前的机器人坐标采样离散处理,得到小车期望的前进速度和期望的自转速度,通过动力学逆解得到小车电机期望的轮速,进而对应到PWM的控制上来。

参考:

https://zhuanlan.zhihu.com/p/107149357
https://www.guyuehome.com/18424
https://zhuanlan.zhihu.com/p/89110692
https://www.bilibili.com/video/bv1LA411h75z
https://blog.csdn.net/qq_44339029/article/details/105373621
posted @   伦敦烟云  阅读(1537)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示