目录

0. 写在前面

1. 舵轮是什么?

1.1 为什么取名叫舵轮?

1.2 AGV舵轮长啥样?

1.3. AGV舵轮如何交互?

2. 双舵轮的运动分解

2.1 问题描述

2.2 运动分解的公式推导

3. 双舵轮的运动合成

3.1 问题描述

3.2 运动合成的公式推导

4. 最后的话


0. 写在前面

无人车,要做到无人化,但本质上,它是个车。既然是车,就离不开各种轮子。

这次,我想和你聊一聊舵轮,进一步,聊一聊双舵轮的运动解算(也叫运动分解)与运动合成。

1. 舵轮是什么?

在正式讨论前,先简单介绍一下舵轮。

舵轮,其实是一种非常常见形式的运动轮。比如,我们耳熟能详的杂技车,本质上就是一个舵轮。我在网上搜索了“杂技车”(或者“单轮车”),找到了下面的图片(侵删)。

我相信,不管你骑没骑过,都不妨碍参照它来理解什么是舵轮。

我们用一些通俗易懂的话来总结,它的特点是结构简单,行走与转向功能在同一滚动轮上实现。你看,踏板围绕在滚动轮的轴心上下翻动,转动踏板可使轮子前后移动;骑车的人通过扭动身体改变滚动轮的朝向。

1.1 为什么取名叫舵轮?

至于为什么取名叫舵轮,刚接触这个专业名称的时候,我也有这个疑问,还特意去查了查。

一般来说,“舵”的解释是,船、飞机等控制方向的装置;而“舵轮”是轮船、汽车等的方向盘。另有一种说法,位于船舶驾驶室中,用于控制船舵运动、改变船舶航向的手轮,称为舵轮。

我兜兜转转查了一圈,大概意思总结一下,舵轮是用来改变方向的。有一句话叫做,掌握了舵轮就掌握了前进的方向。

对于今天讨论的舵轮,我推测,取这个名字,可能就是因为轮子的方向可以改变。也就是滚动轮的方向(又称舵向角)相对于车体是可变的。

其实,还有个特点,如果你仔细观察,会发现,改变舵轮的中心轴朝向时,舵轮和地面的接触点可以保持不变,就好像轮子上方有个转盘可以扭动车轮的朝向一样。

其实,在AGV行业里,舵轮就是这么设计的。

1.2  AGV舵轮长啥样?

简单说,AGV舵轮代表性形式有下面两种。左图是卧式,便于做低整车高度,右图是立式,能做小车子的长宽尺寸。值得注意的是,图中红色箭头所指的位置,就是所谓的“舵”——起到改变滚动轮方向的齿轮。


如果你仔细观察一下,两种形式只是改变了行走和转向电机的摆放位置而已。

我们用稍微专业点的话来总结一下,舵轮是集成了行走电机、转向电机、减速机等组件的机械结构,集行走、牵引和转向功能为一体,可以荷载和牵引较重货物。

其中,行走电机和转向电机是舵轮的执行机构,分别由行走电机驱动器和转向电机驱动器直接控制。有时,两个电机驱动器会封装在一个外壳里,或做到一张嵌入式控制板上。这种外形的改变不影响我们对舵轮控制形式的理解。

1.3. AGV舵轮如何交互?

在工业AGV上,通常来说,舵轮电机驱动器使用伺服电机,以低压永磁无刷伺服电机为主,因此,可交互的信息很多,比如电机转速、电机扭矩、电机的绝对位置、电机加速度、电机电压电流等。

但在一些大功率场合,也会使用变频电机和外装轮速计或角度编码器来组合使用。

为了便于后续对舵轮车进行运动分解,我们将这些信息进行提炼,并对模型进行抽象:

1) 舵轮转向电机的转角可控,状态为舵轮的舵向角大小,简称舵向角,记作θ;

2) 舵轮行走电机的转速可控,状态为舵轮接地点的线速度大小,简称线速度,记作vt;

3) 舵轮的线速度方向恒等于舵向角;

关于舵轮的舵向角θ的测量,比较简单,一般直接使用伺服电机内置的绝对值编码器的实时数据。

关于舵轮的线速度vt,需要由电机实时转速(rpm)换算而来。一般而言,为了增大滚动轮的输入扭矩,行走电机不直接输出扭矩,而是先经过减速机,再传递给滚动轮。在不考虑轮子在地面上可能存在的滑动时,舵轮车线速度vt的公式为:

其中,

n为电机转速,单位为rpm(每分钟的转动圈数);

i为减速机的减速比,无量纲;

d为滚动轮的外径,单位为米;

vt为舵轮转动轴的线速度,单位为m/s(米/秒);

我们都知道,对于物体的运动状态,通常会抽象成线速度和角速度。其中,线速度是矢量,带有方向,因此,可由上一节获得的线速度值vt和舵向角θ共同来表达。而角速度w是一个标量,可通过公式

进行计算。其中,r为舵轮接地点到转向中心点(整车的转向中心点,也叫瞬心)的距离。这样一来,舵轮的参数也可由线速度大小、角速度大小、舵向值(vt,w,θ)三个参数来表达。

需要注意的时,到目前为止,我们讨论的对象依旧是单个舵轮。

2. 双舵轮的运动分解

2.1 问题描述

为了讨论方便,在不失一般性的前提下,我们选择前后对称排布的双舵轮车进行讨论。

理由有两点:

1.  双舵轮的结构形式,可实现车辆的全向移动,是一种形式简洁的全向车。

2. 对于双舵轮的研究结果,只需要增加有限的约束,便可快速应用到单舵轮的场合。比如,假定后轮的舵向角恒定不变,速度与整车质心运动速度动态匹配,也就是说把后轮变成定角度的随动轮,那么,模型便可对应到单舵轮。

因此,我们讨论的问题就变成了双舵轮的运动控制了。

当我们控制双舵轮AGV去跟随路径时,导航算法会给AGV下发目标线速度大小vt、目标线速度方向θ和目标角速度w。这里需要区分两个概念,舵轮自身的航向角和AGV车体运动中心(一般为车体几何中心,但也可以自由设定。本文假定AGV运动中心为车体的几何中心)的航向角,两者不一定相等,准确的说,在导航的动态过程中,大部分时间是不相等的。

基于以上概念,我们建立车体坐标系,采用东北天(ENU)形式,车体逆时针旋转时为正,顺时针旋转时为负。我们在后续讨论中,舵轮的航向角的零位定义在车体的正北向,也就是当车体向前时,前后舵轮的舵向角为0。结合正负角度的定义有,舵轮逆时针旋转时角度增加,顺时针旋转时角度变小,取值范围为[-180°,180°]。

现在,来一句话描述问题。

假设AGV的运动中心在两个舵轮连线的中点,当导航算法给AGV下发控制指令,含有目标线速度大小、目标线速度方向和目标角速度,记作(vt,w,θ),我们通过运动分解,得到两个舵轮各自的线速度和舵向角,记作(v1,θ1)和(v2,θ2)。

2.2 运动分解的公式推导

为简化讨论的过程,我们可以将双舵轮AGV的模型进一步简化,认为两个舵轮旋转中心支点刚性连接,然后,以两个舵轮旋转中心连线的中点,来讨论AGV的线速度和角速度。

已知下发给双舵轮AGV运动中心的参数为(v,w,θ),两舵轮之间的距离为d,其中,两个舵轮的运动状态分别表示为(v1,w1,θ1)和(v2,w2,θ2)。

由于整个AGV车体假设为刚性连接,因此两个舵轮、车体运动中心以及车体任意一点的旋转角速度w是相同的。我们的目标是,通过运动分解,获得两个舵轮的目标控制值,且只需要包含线速度和舵向角,即(v1,θ1)和(v2,θ2)。

下面,我们一步步进行推导。

1)计算AGV转向中心的转动半径O1O2;

2)计算前后舵轮各自的转动半径:(从O2点向线段P1P2做辅助垂线O2T1)

3) 计算前后舵轮的舵向角:

4)计算前后舵轮的线速度:

总得来说,整个推导过程还是相对比较简单的。

特别地,当θ1或θ2强制为0时,即为单舵轮结构。此时,一般而言,整车的移动中心将移动到对应的舵轮旋转中心。调整之后,依旧可以用上述四步的方法,进行类似地推导。

3. 双舵轮的运动合成

3.1 问题描述

在有些情况,AGV控制系统需要获得整体的运动状态,供其他系统进行数据融合。比如,SLAM系统可使用车辆的里程计信息,增加定位数据的稳定性,提高定位的精度等。又比如,在导航系统中,轨迹规划控制器需要实时获取车辆的线速度和角速度,以便形成控制闭环。

这时,就需要用到双舵轮的运动合成。

在正式合成之前,我们先定义一下待解决的具体问题。

假设AGV的运动中心在两个舵轮连线的中点,当我们已知两个舵轮各自的线速度和舵向角,记作(v1,θ1)和(v2,θ2),计算整个AGV中心点的状态信息,含有线速度大小、角速度和线速度方向,记作(v,w,θ)。

3.2 运动合成的公式推导

已知:两个舵轮各自的线速度和舵向角,分别为(v1,θ1)和(v2,θ2);

求:AGV中心点的目标线速度大小、目标角速度和目标线速度方向,记作(v,w,θ)。

因此,运动合成的推导过程如下:

1)计算前后舵轮的转向半径r1和r2:

如右图所示,为了便于计算舵轮运动半径r1(即O2P1),增加了辅助垂线P1T2;

r2(即O2P2)的求法类似,不赘述,直接展示公式。

2)计算前后舵轮的角速度;

或有

3)通过前舵轮或后舵轮,计算AGV中心点的航向角。(使用左图推导)

或有

4)通过前舵轮或后舵轮,计算AGV中心点的转向半径。

或有

5)计算AGV中心点的线速度大小;

4. 最后的话

双舵轮的结构形式简单,运动分解和合成的过程也很直观。

公式无需记忆,使用的时候,临时推导即可快速获得。

当假定其中一个舵轮的舵向角恒定不变,速度与整车运动中心运动速度动态匹配,也就是说把该轮变成定角度的随动轮,那么,本文的方法就可以应用到单舵轮的场合。

对于两个以上舵轮构成的AGV车辆,套用本文的思路和步骤,也能顺利地解决问题。

好了,今天就到这里,希望对你有帮助。

无人车之美——双舵轮运动分解与合成相关推荐

  1. 无人车之美——软件架构篇

    --刻意练习,不停地刻意练习! 接上一篇. 无人车之美--技术要点速览本文以自身经历回顾进入无人车领域的心路历程和心流变化,并在无人车软件架构的基础上,罗列各个板块所必须掌握的基础知识或技能,希望对无 ...

  2. 不连续曲线 highcharts_无人车运动规划中常用的方法:多项式曲线

    在无人车的运动规划(Motion Planning)过程中,比如在速度规划和路径规划时经常会遇到这样的问题: 速度规划:已知当前的速度信息,以及目标的速度信息,需要生成一条平滑的速度曲线,从当前速度到 ...

  3. 密歇根大学最新成果:教会无人车预测行人运动趋势

    近日,密歇根大学的研究人员通过研究人类的步态.身体对称性和脚的位置,试图教会自动驾驶汽车识别和预测行人的移动,其精确度要高于目前已有的技术. 车辆通过摄像头.激光雷达和全球定位系统收集的数据使研究人员 ...

  4. 第6章 - 多无人车系统的协同控制 --> 无人车运动原理

    第5章 - 二阶多智能体系统的协同控制 --> 连续时间系统编队控制[程序代码] 回到目录 第6章 - 多无人车系统的协同控制 --> 无人车模型分析 文章目录 6.1 无人车运动原理 6 ...

  5. 商汤自曝近况:明年或IPO、无人车大单、不寻常的美研、C轮将完

    夏乙 李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 商汤创始人汤晓鸥跟香港记者透露了一大堆新消息. 例如,正在进行C轮融资的商汤科技,最快有可能在明年IPO(上市).作为国内估值最高的 ...

  6. “平行驾驶”是无人车上路的安全高效智能途径!

    对无人驾驶技术的向往,已经让人类付出了半个多世纪的努力与尝试.尽管今天我们借助更先进的传感器.运算速度更快的芯片.以及更准确的深度学习算法,在一点一点接近完全无人驾驶的状态,但动态时变的交通场景.复杂 ...

  7. 科技巨头竞速无人车落地:Waymo One 向左,百度Robotaxi向右

    自动驾驶距离走入普通民众的生活又近了一步. 9月26日,百度旗下的自动驾驶服务Robotaxi在长沙正式开启载人试运营.Robotaxi跟此前一些自动驾驶公司面向市民的"体验式"开 ...

  8. MATLAB Simulink开发ROS无人车与机器人应用 详细教程

    引言:MATLAB在机器人中的应用 现在大多数机器人开发者都会选择ROS,在ROS整个框架下"调包"极其容易.很多ROS开发者热衷于"调包"来实现功能,却难以在 ...

  9. 硬核拆解自动驾驶工具链丨如何应对无人车部署落地的挑战?

    自动驾驶如同一场竞速比赛,每一个环节都需要争分夺秒,在无人车落地部署环节我们如何缩短时间,让社会更快地享受到无人车所带来的便捷? 在第六期博闻驭识线上课堂,由驭势科技软件产品总监Wei为大家拆解驭势科 ...

  10. 深度解析Apollo无人车感知和定位技术

    原文地址:http://www.realli.net/archives/26639 有关无人车的定位有两种,一种称之为绝对定位,不依赖任何参照物,直接给出无人车相对地球坐标或者说WGS84坐标系,也就 ...

最新文章

  1. 反编译华为U8825D“framework-res.apk”出现的错误提示(1)
  2. Spring3.x与jdk8兼容问题
  3. 用原生JavaScript实现图片瀑布流的浏览效果
  4. iOS 多线程基础之 NSThread
  5. 完整的POM文档内容
  6. Bug反思:全面细致 不起眼的地方最可疑
  7. Maven原型创建技巧
  8. Gartner 容器报告:阿里云与 AWS 并列第一,领先微软、谷歌
  9. 函数指针史上最全的介绍
  10. css框架和js框架_优雅设计的顶级CSS框架
  11. 大数据学习笔记46:初识日志收集系统Flume
  12. java修改.class重新打包jar
  13. dva开发一个cnode网站(2)
  14. python爬虫之------每天给她(他)一个小故事啦啦啦啦
  15. 【Matlab】滤波函数
  16. Android第三方支付--微信支付
  17. 洛谷:P1424 小鱼的航程(改进版) JAVA
  18. 什么真无线蓝牙耳机值得入手?蓝牙耳机全方位挑选攻略
  19. wpf 的 Window或UserControl绑定自己后台属性
  20. 会声会影2023最新版功能介绍及使用教程

热门文章

  1. vue前端实现批量导出
  2. 云计算开发一般负责什么工作呢?云计算是做什么的?
  3. 小哥哥教你100%安装Win10专业版永久激活版(全网独一无二)
  4. RNA 3. SCI 文章中基于TCGA 差异表达基因之 DESeq2
  5. 计算机cad比例尺1 150,CAD图纸里面 1:50 和:1:100和1:150三个比例分别怎么换算...
  6. macOS中显示按键操作
  7. Mac OS 源码 截屏工具
  8. iTRAQ(稳定同位素标记蛋白质组学技术)
  9. 手机号归属地区编码_不懂就问丨手机号码为什么是11位呢?
  10. endnote修改正文中参考文献标注_如何在Endnote中修改参考文献格式