航迹推演(Odometry)
做机器人底层程序的时候,经常用到航迹推演(Odometry),无论是定位导航还是普通的方向控制。航迹推演中除了对机器人位姿进行估计,另一个很重要的关系是移动机器人前进速度、转向角速度与左轮速度、右轮速度之间的转换。
在机器人局部路径规划算法DWA解析一文中,是在假设已知机器人前进线速度和角速度的情况下,对机器人航迹推演的位姿进行推导了,然而缺少如何通过左右轮速度得到、,因此本文将补上这个空缺。
下图是移动机器人在两个相邻时刻的位姿,其中是两相邻时刻移动机器人绕圆弧运动的角度,是两相邻时刻移动机器航向角(朝向角head)的变化量。是左右轮之间的间距,是右轮比左轮多走的距离。是移动机器人圆弧运动的半径。
移动机器人前进速度等于左右轮速度的平均,这个好理解。
(1)
现在来推导机器人航向角如何计算,以及如何计算角速度。如图所示,把两个时刻的机器人位置叠加在一起,可以清楚的看到移动机器人航向角变化量是。从图中的几何关系可以得到:
也就是说移动机器人航向角变化了多少角度,它就绕其运动轨迹的圆心旋转了多少角度。这句话很好验证,我们让机器人做圆周运动,从起点出发绕圆心一圈回到起点处,在这过程中机器人累计的航向角为360度,同时它也确实绕轨迹圆心运动了360度,说明机器人航向角变化多少度,就绕圆心旋转了多少度。而这三个角度中,很容易计算出来,由于相邻时刻时间很短,角度变化量很小,有下面的近似公式:
所以可以得到机器人绕圆心运动的角速度,它也是机器人航向角变化的速度:
(2)
线速度、角速度都有了,因此可以推出移动机器人圆弧运动的半径:
(3)
从公式(3)可以发现当左轮速度等于右轮速度时,半径无穷大,即直线运动。最后将三个公式综合起来,可以得到左右轮速度和线速度角速度之间的关系如下,:
(转载请注明作者和出处:http://blog.csdn.net/heyijia0327 未经允许请勿用于商业用途)
航迹推演(Odometry)相关推荐
- ROS Navigation-----轮式机器人航迹推演理论介绍
做机器人底层程序的时候,经常用到航迹推演(Odometry),无论是定位导航还是普通的方向控制.航迹推演中除了对机器人位姿进行估计,另一个很重要的关系是移动机器人前进速度.转向角速度与左轮速度.右轮速 ...
- 航迹推演通过左右轮速度得到机器人前进线速度和角速度
不同底盘的里程计模型有所不同,两轮差分轮式机器人始终做的是以R为半径的圆弧运动.如下图所示,机器人的线速度V.角速度ω,左右轮速用VL和VR表示,用D表示轮间距,D=2d,右轮到旋转中心的距离为L. ...
- 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转
无人驾驶运动学模型--线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制
- 兵棋推演有助于我们了解哪些战争知识?
来源:兵推天下 菲利普·塞班博士是英国伦敦国王学院战争研究系的战略研究教授,他也是兵棋专家和兵棋设计师.在30多年的教学生涯中,他将兵棋融合到了课堂教学中,向学生展示兵棋推演对军事规划工作的实际作用. ...
- 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)
来源:轨道机动算法的C++实现_shirro123的专栏-CSDN博客 卫星轨道推演计算相关基础知识点总结 一.卫星的运动特性 二.卫星的空间坐标系 ...
- java模拟一个军队作战_战区级联合作战仿真推演系统
联合作战模拟推演系统是国内第一套真正具有实战意义的对抗模拟推演系统.相较于传统兵棋推演,该系统在核心引擎.推演功能柔性重组.模型架构体系设计.推演机制符合实战.规则数据开放透明.战场环境辨识精细等方面 ...
- 深度长文 | 从FM推演各深度CTR预估模型(附开源代码)
作者丨龙心尘 & 寒小阳 研究方向丨机器学习,数据挖掘 题记:多年以后,当资深算法专家们看着无缝对接用户需求的广告收入节节攀升时,他们可能会想起自己之前痛苦推导 FM 与深度学习公式的某个夜晚 ...
- C语言多维数组本质技术推演
C语言多维数组本质技术推演 多维数组本质技术推演 多维数组本质技术推演 int a[10];char myarray[3][5] PK int (*p)[5] myarray名称到底是什么? 多维数组 ...
- 从FM推演各深度学习CTR预估模型
本文的PDF版本.代码实现和数据可以在我的github取到. 1.引言 点击率(click-through rate, CTR)是互联网公司进行流量分配的核心依据之一.比如互联网广告平台,为了精细化权 ...
- javascript基础修炼(4)——UMD规范的代码推演
javascript基础修炼(4)--UMD规范的代码推演 1. UMD规范 地址:https://github.com/umdjs/umd UMD规范,就是所有规范里长得最丑的那个,没有之一!!!它 ...
最新文章
- 【Python学习系列十九】基于scikit-learn库进行特征选择
- 让逻辑关系破缺的最小空间尺寸
- 浅谈线程池(中):独立线程池的作用及IO线程池
- The type org.springframework...DaoSupport cannot be resolved. It is indirectly..
- 想捧金饭碗? 修炼这25项技能就够了!
- 面向小姐姐的编程——JAVA面向对象之继承(二)
- 转(A potentially dangerous Request.Form value was detected from the client)
- 留给字节跳动的时间可能不多了!
- 最简单的视音频播放示例5:OpenGL播放RGB/YUV
- 金融评分卡项目—1.数据分析基础知识
- c语言作业模块化设计具体,C语言程序模块化设计.doc
- bootchart.jar 编译过程
- DM 关键字、屏蔽关键字
- admin5-用户管理
- 如何辨别物理机和云主机?
- 502 bad gateway原因、解决方法
- 零代码爬虫神器 — Web Scraper 的使用
- XML里的<![CDATA[<=]]>是什么意思?
- 洛谷 P1491 集合位置
- c++cmath函数库