单舵轮(叉车)AGV里程计数据解算

2016-07

单舵轮AGV,一般包含一个驱动轮和两个从动轮,驱动轮是同时具备行走和转向两个功能的舵轮,因此,单舵轮AGV的运动学自由度为2个。舵轮线速度V1,舵轮转角θ。

AGV机器人里程计一般包含2 个方面的信息:

一、是位姿(位置和转角),即(x,y,θ)。

二、是速度(前进速度AGV的线速度V和转向速度AGV的角速度W)。

为了建立理想运动学模型,我们需要假设以下情况:

一、舵轮与地面之间行走无滑动摩擦;

二、AGV运行的平面为水平面,没有坡度;

建立单舵轮AGV理想运动学模型,如下图所示。设舵轮的线速度为Vf ,前后轮轴向距离为L ,舵轮横向偏距为 D ,舵轮转角(逆时针为正,顺时针为负)为θ,两定向轮轴心点o(x,y,yaw,V,W)为AGV几何中心计算里程计数据。

其中舵轮Vf及θ需要通过增量编码器和角度编码器实时检测。

经过几何运算o点里程计数据的:

  • o点其他里程计数据的(x,y,yaw),是通过V和W数据根据各数据的几何关系不断的积分求得。这里对于单舵轮AGV的里程计数据的介绍只开个头,后不再详细解释,开发人员需要养成深入的去探索的习惯。关于AGV控制的其他问题相互探讨,可以评论咨询联系方式。

实际测试时,机器人的移动距离和转动角度都要进行测试(要确保机器人的实际运动方向与发送的速度指令方向一致,并且偏差在正常范围内),如果测试与预期情况不一样则需要查找原因。另外由于轮子打滑、以及各种误差的影响,对速度积分进行航迹推算得到的里程计累积误差会越来越大,角度yaw也是同样的道理,可以加入轮径参数、滑动摩擦参数对其进行调节补偿。测试的方式是,单舵轮AGV机器人从一个固定参考位置开始运动,主要是前进后退以及旋转,最终回到起始位置,比较计算与实际的差距,来调节轮径参数、滑动摩擦参数。

当前机器人导航方式中地图导航,比如激光slam、二维码惯导等方式,均需要精确地里程计数据支持。

单舵轮(叉车)AGV里程计数据解算的更多相关文章

  1. 双舵轮AGV里程计、运动控制核心算法

    舵轮AGV可以通过调整两个舵轮的角度及速度,可以使小车在不转动车头的情况下实现变道,转向等动作,甚至可以实现沿任意点为半径的转弯运动,有很强的灵活性. 因此在AGV行业,这种驱动方式应用很广,但是目前 ...

  2. 四轴飞行器1.4 姿态解算和Matlab实时姿态显示

    原创文章,欢迎转载,转载请注明出处 MPU6050数据读取出来后,经过一个星期的努力,姿态解算和在matlab上的实时显示姿态终于完成了. 1:完成matlab的串口,并且实时通过波形显示数据 2:添 ...

  3. Gamit解算脚本

    这是一个解算单天的shell脚本,对于初学者很有帮助. 首先就是需要在项目(四个字符)建立rinex brdc igs 还有以年纪日命名的目录,然后提前准备好station.info和lfile.文件 ...

  4. libviso中的姿态解算【转载】

    这篇关于libviso的文章,本人已投稿在泡泡机器人微信公众号中,放到这里,作学习笔记用. libviso一直以来被称为在视觉里程计(VO)中的老牌开源算法.它通过corner,chessboard两 ...

  5. 【转】GPS基线解算模式

    GPS基线向量是利用2台或2台以上GPS接 收机所采集的同步观测数据形成的差分观测值,通过参数估计得方法所计算出的两两接收机间的三维坐标差.与常规地面测量中所测定的基线边长不同,基线向量是 既具有长度 ...

  6. Pixhawk之姿态解算篇(1)_入门篇(DCM Nomalize)

    一.开篇 慢慢的.慢慢的.慢慢的就快要到飞控的主要部分了,飞控飞控就是所谓的飞行控制呗,一个是姿态解算一个是姿态控制,解算是解算,控制是控制,各自负责各自的任务.我也不懂.还在学习中~~~~ 近期看姿 ...

  7. 布料解算插件 Qualoth 重点参数分享

    前言 Qualoth是韩国FXGear公司推出的一款布料模拟插件,可以计算出很自然的衣褶以及动态效果,并且能应对大幅度动作的碰撞解算,可以和Houdini的Cloth Solver相媲美: 目前这款插 ...

  8. 空间谱专题13:联合解算DOA(ML/AP)

    其中作者:桂. 时间:2017-10-16  07:51:40 链接:http://www.cnblogs.com/xingshansi/p/7675380.html 前言 主要记录二维测向中,分别利 ...

  9. V-rep学习笔记:机器人逆运动学解算

    IK groups and IK elements VREP中使用IK groups和IK elements来进行正/逆运动学计算,一个IK group可以包含一个或者多个IK elements: I ...

随机推荐

  1. eclipse 灵活使用makefile来编译C/C++

    需求: 近期在看<C++ Primer Plus>, 作者在不断优化自己的类.有很多不同的版本号,有非常多的測试函数(main函数),我使用的是eclipse+CDT来编写C++,不可能为 ...

  2. git init 与 git init --bare 区别

    git init 与 git init --bare 区别 发现问题 最早是在公司的wiki上发现了这个命令,google后发现值得记录下来 实践中发现的区别 网上找了很多资料,但说的很乱,干脆在自己 ...

  3. [插件] 如何在一个页面中使用多个SWFUpload对象上传文件

    首先需要引入相应的样式和JS文件,还需要借助jQuery的js 提供下载路径:http://pan.baidu.com/s/1EUzca ① 引入js <script type="te ...

  4. 把本地仓库导入到Github

    1, create a new rep 2, 进入到本地仓库: $ git remote set-url origin URL 3,上传 git push -v ref: https://www.do ...

  5. Python零碎(一)

    Python中的__name__和__main__含义详解 在写Python代码和看Python代码时,我们常常可以看到这样的代码: def main(): ...... if __name == & ...

  6. Hive将txt、csv等文本文件导入hive表

    1.将txt文本文件放置hdfs目录下 2.登录hive并进入到指定数据库 3.创建表 create external table if not exists fun_user_external ( ...

  7. JQuery------实现鼠标摁下抬起时div背景色改变

    作用:使用自定义一个按钮 代码: <div class = 'btn'>按钮</div> $(".btn").mousedown(function () { ...

  8. 现代3D图形编程学习-关于本书

    关于这本书 三维图像处理硬件很快成为了必不可少的组件.很多操作系统能够直接使用三维图像硬件,有些甚至要求需要有3D渲染能力的硬件.同时对于日益增加的手机系统,3D图像硬件,也成为了它们的必备特征. 对 ...

  9. eslint常规语法检

    "no-alert": 0,//禁止使用alert confirm prompt "no-array-constructor": 2,//禁止使用数组构造器 & ...

  10. Spring Cloud Feign 使用OAuth2

    Spring Cloud 微服务架构下,服务间的调用采用的是Feign组件,为了增加服务安全性,server之间互相调用采用OAuth2的client模式.Feign使用http进行服务间的通信,同时 ...