轮速计相关模型最常用,最易入门的便是后轮速差模型。因此本文将针对后轮速差模型进行详细的原理解释以及代码模型。

后轮差速轮速计定位的关键求解目标有两组,一个是位置pos,一个是姿态altitude
由于轮速计只能反映车辆在平面上的运动状态,所以三维的pos,减少为pos.x和pos.y,同理,姿态altitude也只能反应yaw的状态。
也就是求解值只有3个:x,y,yaw
如上图所示,车辆被简化为只有后轮的模型,车辆宽度(轮距)为l(BASE_length),左轮车速为vl,右轮车速vr,车辆转弯半径为r,车辆转弯半径对应的转弯角度theta1,车辆左轮(转向轮)的转弯角度theta2,车辆自身的转弯角度theta3,由于车辆每次轮速计计算之间的转弯角度比较小,可以近似为theta1=theta2=theta3。
此时通过几何计算可以得到:

车辆前进距离:forward_dis=(vl+vr)t/2
车辆左右轮前进距离差:delta_dis=(-vl+vr)t
车辆转弯角度:delta_theta=delta_dis/BASE_length

经过坐标系分解可得(x超前,y朝左,右手系)

delta_x=forward_dis* cos(delta_theta)
delta_y=forward_dis* sin(delta_theta)

至此,单帧的Δ变化量就计算完毕了。但是我们是要计算车辆的定位。所以还需要计算车辆相对原点的绝对位置。
累积的x,y,yaw计算方法如下:

  accumulate_x_ = accumulate_x_ - delta_y * sin(accumulate_th_ + delta_theta / 2.0f) +delta_x * cos(accumulate_th_ + delta_theta / 2.0f);accumulate_y_ = accumulate_y_ + delta_y * cos(accumulate_th_ + delta_theta / 2.0f) +delta_x * sin(accumulate_th_ + delta_theta / 2.0f);accumulate_th_ = accumulate_th_ + delta_theta;

想来计算到此,便可结束了。但根据实车经验和轮速计精度限制,在车辆低速的情况下,轮速是非常不稳定且不准确的。因此,需要用轮速的计数来估计车轮移动距离。
首先可以记录下每帧的车轮的计数和前一帧的车轮的计数。然后用帧间差作为轮速的替代。左轮计数Δ为cl,右轮计数Δ为cr;左车轮长度为wl,右车轮长度为wr;车轮走一周的计数增量为resolution;

车辆前进距离:forward_dis=(cl*wl+cr*wr)*pi/resolution/2
车辆左右轮前进距离差:delta_dis=(-cl*wl+cr*wr)*pi/resolution
车辆转弯角度:delta_theta=delta_dis/BASE_length

这种计算方法在低速时相对轮速来说是靠谱的,但是对于车辆拐弯时左右轮速计数差受轮速计线数影响,会有一定程度出现车辆恰好同时计数加一,导致漏掉了宝贵的车辆拐弯增量。会导致yaw角变化不稳定不准确。从而对车辆的定位产生影响。

此外,此种计算方式还需要额外标定数据来保证定位精度:
标定数据有上文提到的:
左车轮长度为wl;
右车轮长度为wr;
车轮走一周的计数增量为resolution;

如何确定轮速计精度呢?上文提到了轮速计线数很关键;轮速线数表示的是编码器计数的最大值。这个值对精度起到关键性作用,数值越大精度越高。需要注意的是这个值只是关系到轮速向上计数何时归零的情况。不代表一周的轮速计数变化,与上述的resolution无关。

参考文章:

移动机器人差速轮运动学模型
两轮差速运动模型推导过程
运动模型分析:运动控制与里程计解算

运动学模型(二)----轮速计 后轮速差模型相关推荐

  1. 差速轮轮速计建模和优化量求导

    author: by yuhongsong(hongsong.yu2010@gmail.com 18311028576) 2020-06-05 转载和基于此文档编辑,请注明原作者和链接 标签 < ...

  2. 基于激光雷达+惯导+轮速计的自动驾驶融合定位方案

    高精度定位是当前自动驾驶的基础.随着自动驾驶的日益发展,依靠单一传感器进行定位常常会受到各种限制,比如GPS信号不稳定或者消失.长直走廊或隧道等场景下激光点云发生漂移.轮胎打滑等造成瞬时轮速计异常等. ...

  3. 【SLAM】视觉轮速计融合se2lam安装运行

    首先需要安装ROS,我在melodic版本下安装运行的,安装中主要问题是eigen库和g2o库的版本问题,已在eigen3.3.7,g2o-2016安装成功,对应版本安装包:两个库的安装包也可以去官网 ...

  4. MSCKF-Based Visual-Wheel Odometry 轮速视觉融合里程计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Sliding Windows Filter(SWF)在VIO.SLAM这个领域应用非常广,比如MSC ...

  5. 机动目标跟踪——匀加速运动CA模型(二维)

    机动目标跟踪--匀加速运动CA模型(二维) 原创不易,路过的各位大佬请点个赞 WX: ZB823618313 机动目标跟踪--目标模型概述 机动目标跟踪--匀加速运动CA模型(二维) 1. 对机动目标 ...

  6. 【论文速览】深度模型-降维与聚类

    [论文速览]深度模型-降维与聚类 [文章一]InfoGAN: Interpretable Representation Learning by Information Maximizing Gener ...

  7. 关于NXP 汽车ABS ASIC芯片BA13系列轮速部分驱动

    关于NXP 汽车ABS ASIC芯片BA13系列轮速部分驱动 文章目录 关于NXP 汽车ABS ASIC芯片BA13系列轮速部分驱动 一.BA13芯片介绍 二.轮速部分介绍 三.spi通信 一.BA1 ...

  8. 尽人事,听天命,十二轮面试最终圆梦字节,记一次最难面试记录

    从21年八月份开始,经历了一次一面挂,一次二面挂,两次三面挂,这次终于成功上岸字节跳动飞书人力套件,面经如下: 字节教育(一面以后第二天字节宣布解散教育,但是还是撑到了三面) TreeMap讲一下 时 ...

  9. 一台小型发电机与计算机相连,2020春青岛市高考物理二轮45分钟练习:交变电流的产生及描述含答案...

    第 1 页 共 10 页 2020春青岛市高考物理二轮45分钟练习:交变电流的产生及描述含答案 建议用时:45分钟 1.(2019·广西桂林市.贺州市期末联考)一台小型发电机与计算机相连接,计算机能将 ...

最新文章

  1. 挑战“IT我最大 Win7由你秀”
  2. Android App截包工具
  3. 实现SSH密钥登陆Linux系统的方法(Linux公私钥生成)
  4. mysql二维数组vb_VBA链接MYSQL的帮助类
  5. Kubernetes 集群 DNS 服务发现原理
  6. 徐涛八套卷pdf_徐涛八套卷pdf,11月9日资料更新!
  7. 云漫圈 | 写给对 ”游戏开发” 感兴趣的朋友们
  8. 数据资产标准研究进展与建议
  9. vscode 不展示文档注释内容_文本框这样用,实现文档不同板块内容高效联动,你还不知道吧...
  10. Helm 3 完整教程(二):Helm 3 安装教程
  11. solidity event是什么
  12. 小学计算机集体备课,信息技术集体备课总结
  13. JAVA mysql 常用面试题
  14. lsd 特征点匹配代码_直线匹配-LSD算法
  15. Python关键字查询
  16. 你必须会的微服务之Hystrix熔断器
  17. [视频访谈翻译]David Kaneda访谈:移动HTML5设计和开发
  18. 开发一个商城小程序要多少钱
  19. 『扩展欧几里得算法 Extended Euclid』
  20. nnUNet 训练 AMOS22数据集 Task216(抽丝剥茧指令+原理篇)

热门文章

  1. 数学中的伟大定理:海伦公式的推导过程
  2. 【图像处理】简单的车牌识别
  3. 数据库三大范式的理解
  4. 教程一级计算机基础及应用,全国计算机等级考试教程·一级计算机基础及Photoshop应用...
  5. 2018东北四省赛 Store The Matrix (矩阵)
  6. 根据湖底DEM计算湖泊蓄水量
  7. 自定义Seebar进度条、进度条背景颜色,更换进度滑动icon。
  8. 茶云导航网站源码v1.2 PHP带后台管理
  9. 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080i+CUDA8.0+CUDDN6
  10. 你认为元宇宙是不是割韭菜?