ROS机器人里程计模型

2023-11-13

在这里插入图片描述

1常用坐标系系统模型

在移动机器人技术研究中,最为常用的坐标系统是笛卡尔坐标系统。而在SLAM算法研究中,有如下几个比较常见的笛卡尔坐标系统,它们分别为机器人坐标系XR YR OR 、传感器坐标系XS YS OS 、世界坐标系XW YW OW 。顾名思义,世界坐标系是描述机器人全局信息的坐标系;机器人坐标系是描述机器人自身信息的坐标系;传感器坐标系是描述传感器信息的坐标系。他们之间的关系如下图所示:
在这里插入图片描述
从图中我们可以知道,首先世界坐标系是固定不变的,机器人坐标系和传感器坐标系是在世界坐标系下描述的。这里我们看到的是俯视图,机器人坐标系和传感器坐标系原点重合但是存在一定的角度,不同的机器人坐标系关系是不同的。当我们使用传感器数据时,这些坐标系间的关系就是我们变换矩阵的参数,因为传感器的数据必定是要变换到机器人坐标系或者世界坐标系中使用的。

2移动机器人位姿模型

移动机器人的位姿模型就是机器人在世界坐标系下的状态。常用随机变量Xt =(xt ,yt ,θt )来描述t时刻的机器人在世界坐标系下的状态,简称位姿。其中(xt ,yt )表示的在t时刻机器人在世界坐标系下的位置,θt 表示机器人的方向。默认世界坐标系的X正半轴为正方向,逆时针旋转为旋转正方向,初始时刻机器人坐标系和世界坐标系重合。某时刻t机器人的位姿描述如下图所示:

在这里插入图片描述

3移动机器人里程计模型

简单的说,移动机器人的里程计就是机器人每时每刻在世界坐标系下位姿状态。常用的激光SLAM和导航算法通常都需要移动机器人的里程计作为控制输入。这也是我们对本章理论内容讲解的必要性。

不同底盘的里程计模型有所不同,本文以两轮差分轮式机器人为例介绍里程计模型以及如何计算里程计。在介绍里程计模型之前,要先介绍差分轮式机器人的运动学模型,这样可以先了解一下机器人的物理特性。首先明确差分模型的机器人始终做的是以R为半径的圆弧运动。如下图所示,机器人的线速度V、角速度ω,左右轮速用VL和VR表示,用D表示轮间距,D=2d,右轮到旋转中心的距离为L。
在这里插入图片描述
ROS端给机器人底盘(STM32端)发送的是机器人要达到的线速度V和角速度ω,而我们底盘控制板需要的是左右轮速VL和VR来进行速度控制。所以,我们通过高中知识可以得到他们之间的关系:
在这里插入图片描述
上面的公式是由角速度和线速度的关系得来,如果不知道这个关系,那就自行百度吧,我相信你一定知道。从这些公式我们是不是发现了什么,机器人的轮间距影响着我们向左右轮分发速度以及合成角速度,所以这是个我们需要注意的参数,不同的机器人结构,该参数就不同。

有了上面坐标系系统模型、位姿模型的基础,里程计就非常简单了。里程计的计算是指以机器人上电时刻为世界坐标系的起点(机器人的航向角是世界坐标系X正方向)开始累积计算任意时刻机器人在世界坐标系下的位姿。通常计算里程计方法是速度积分推算:通过左右电机的编码器测得机器人的左右轮的速度VL和VR,在一个短的时刻△t内,认为机器人是匀速运动,并且根据上一时刻机器人的航向角计算得出机器人在该时刻内世界坐标系上X和Y轴的增量,然后将增量进行累加处理,关于航向角θ采用的IMU的yaw值。然后根据以上描述即可得到机器人的里程计==。具体计算如下图所示:
在这里插入图片描述
至此,里程计模型原理及计算就结束了。

2D激光雷观测模型

我们做移动机器人平台少不了使用2D激光雷达,所以了解激光雷达的观测模型也是有必要的。
激光雷达通常由精准控制的旋转电机、红外激光发射器、红外接收视觉系统和主控组成。

激光雷达的测距原理分为两种,一种是基于三角测距,另一个是基于TOF(飞行时间)。基于三角测距的激光雷达表现出的特点,价格便宜、中近距离测距较准确、远距离精度差。基于TOF的激光雷达表现出来的特点,价格昂贵、测距精度高、测距范围广、扫描频率高。

本文采用市面上比较便宜的基于三角测距的低成本激光雷达RPLIDAR A1。该激光雷达在每次测距过程中,发射器发射红外激光信号,视觉采集系统接收激光反射信号。在经过主控实时解算后,将激光雷达几何中心到被测物体的距离值以及当时的角度值,通过主控的通信接口发出。RPLIDAR A1 工作原理如图所示。
在这里插入图片描述
激光雷达在整个SLAM和导航中起着不可替代的作用。第一,通过激光雷达观测数据与地图进行匹配,估计出机器人的位姿;第二,当机器人估计出较准确的位姿时,通过激光雷达的观测数据建立环境地图;第三,在机器人导航过程中,检测地图中的未知障碍物。本文主要使用的观测传感器是2D激光雷达RPLIDAR A1如下图所示:
在这里插入图片描述
RPLIDAR A1是一款360度激光雷达,角度分辨率≤1,输出的每一个激光点的数据都是使用极坐标的方式描述,一个距离值以及一个对应的角度值。

其实关于差分轮式机器人搭建的数学知识就这些。当然这里只是说的搭建,而不是以后的算法。

好好理解这些内容吧,下一节,我们就开始ROS小车的启动文件编写了,我们要通过C++代码,完成一个机器人启动功能包。在ROS中启动该功能包,我们就可以通过ROS的键盘功能包或者ROS app控制我们的机器人了。

同时,我们也会启动传感器获取导航和建图需要的深度信息,发布里程计odom,发布tf维护base_link到odom的tf变换。
在这里插入图片描述

感谢知乎作者小白学移动机器人,原文连接
https://zhuanlan.zhihu.com/p/218319127

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS机器人里程计模型 的相关文章

  • Windows下修改VSCode工作区存储目录workspaceStorage

    VSCode会将每个工作区的一些配置 扩展 缓存等保存在一个默认的目录 在Windows下 此默认目录为 AppData Code User workspaceStorage 当存在多个工作空间或扩展时 需要使用大量的磁盘空间 而VSCod
  • 课程设计总结

    1 政府职能部门 望细分 具体 课程压缩所致 2 企业家 结构好 利于规划 参考 强烈希望协调与管理融合进来 3 工程师 技术人员 指导行强 望精化 深化 细化 4 学生 利于未来规划 创业 就业 发展 学习方向等等 老师总结课程缺陷 1
  • 数据集下载OTB,VOT,UAV,鸢尾花

    OTB数据集下载百度网盘链接 链接 https pan baidu com s 1snsJF 7Sw EbKtzdvLO1nw 提取码 ls23 VOT数据集下载百度网盘链接 链接 https pan baidu com s 1UiTG1z
  • MQTT客户端应用编程及接口分析

    MQTT客户端应用编程及接口分析 MQTT协议简介 MQTT是一个基于客户端 服务器的消息发布 订阅传输协议 MQTT协议是轻量 简单 开放和易于实现的 这些特点使它适用范围非常广泛 客户端服务端安装 1 安装 sudo apt add r
  • VTK环境安装教程

    安装前依赖环境 CMake VS2019 VTK压缩包 8 2 0即可 build过程 第一次分析完 找到下图中选中项 勾选Configure 解释勾选项 BUILD EXAMPLES 生成一些vtk官方的examples 帮助理解学习 当
  • 危化安全生产信息化平台在煤化领域的应用

    一 背景介绍 煤化工行业是一个集煤炭 石油 化工等多种产业于一体的综合性行业 其特点是工艺流程复杂 设备繁多 安全隐患大 近年来 随着煤化工行业的快速发展 安全生产问题日益凸显 为了有效提高危化安全生产水平 某煤化工企业引入了信息化技术 搭
  • Flutter踩坑笔记一——环境搭建的坑

    Flutter的环境搭建其实还是很简单的 当你把AndroidStudio升级安装3 5版本的时候 他已经默认为你安装了Dart和Flutter插件 可见Google对flutter的重视 所以也省了我们不少事儿 首先 打开 官方文档 获取
  • 为什么计算机中的整数要用补码表示?补码表示有什么好处?

    为什么计算机中的整数要用补码表示 补码表示有什么好处 在计算机中 补码可谓是十分神奇而又重要的存在 我们知道整数在计算机内部的机器数一般都是补码表示的 这里给出几个这样表示的好处 符号位可以和数值为一起参加运算 比如俩个负数相加 只要结果在
  • 第一篇博--初入CSDN

    选择开博并计划按月定期发布一些敲码路上的收获和心得 目的是在梳理知识 复盘总结的同时 能够和志同道合的朋友们一起学习 共同进步 在互联网上留下一份自己的痕迹 与诸君共勉 联系方式 631435743 qq com 欢迎大家找我讨论计算机专业
  • 合肥工业大学 汇编语言程序设计 高分实验代码

    感觉最困难的就是写汇编代码了 当时成功完美运行的时候兴奋的像当年第一次 Hello World 一样 且几乎所有关键之处都有注释 需要的朋友自取 链接 https pan baidu com s 1q4nVJ7aK4JEPQ F6PH45R
  • 【软件测试】用例篇

    一 什么是测试用例 测试用例 向被测试系统发起的一组集合 这组集合包含测试数据 测试步骤 测试平台 预期结果 二 为什么在测试前要设计测试用例 三 基于需求设计测试用例 3 1测试是我们测试人员进行测试的依据 3 2测试人员首先要分析需求
  • js 调用 new ActiveXObject('WScript.Shell')报错

    当在网页中点击打印时 会报错 无法打印 解决方法如下 在浏览器中找到 Internet选项 在弹出的对话框中进行设置 Internet选项 gt 安全 gt 本地Intranet gt 自定义级别 gt ActiveX控件和插件 gt 对未
  • 杂七杂八的小知识

    杂七杂八的小知识 前端知识 Node js安装注意事项 Vue学习文档 Mysql数据库小知识 安装数据库后使用数据库所需步骤 MySQL远程连接 常用数据库命令 mysql数据库导入查询 StarUML使用教程 docker小知识 cma
  • PTP/IP协议

    PTP IP PTP over IP 是一个通过IP连接 建立在 Picture Transfer Protocol PTP 上的传输层 我之所以在了解这个东西是因为有一台 Nikon 相机支持 WLAN 和手机传输相片 但是APP设计得极
  • 亲密关系沟通-【正向情绪】创造一场愉快的沟通体验

    为什么有的时候聊天越聊越开心 有时候却让你意兴阑珊 正向情绪体验 积极议题 充分发挥 谁都喜欢被看见 让他不断得到关注 得到你持续的关注 你知道吗 我这个月业绩第一 哇 你超棒的 哪里哪里 话题聊不下去 你给他夸奖 他只能谦虚 天哪你怎么做
  • 什么是离岸公司?有什么作用?

    离岸公司是泛指在离岸法区内依据其离岸公司法规范成立的有限责任公司或股份有限公司 这些公司不能在注册地经营 而主要是在离岸法区以外的地方开展业务活动 离岸公司的主要特点包括高度保密性 无外汇管制和减免税务负担 离岸公司的作用主要有以下几个方面
  • 销售人员一定要知道的6种获取电话号码的方法

    对于销售来说 电话销售是必须要知道的销售方法 也是销售生涯中的必经之路 最开始我们并不清楚这么电话是从哪里来的 也不清楚是通过哪些方法渠道获取 那么今天就来分享给各位销售人员获取客户电话号码的方法 1 打印自己的名片 在工作当中少不了接触其
  • fl studio2024水果21.3免费汉化版

    fl studio2024全称Fruity Loops Studio2024 这款软件也被人们亲切的称之为水果 它是一款功能强大的音乐创作编辑软件 拥有全功能的录音室 大混音盘以及先进的音乐制作工具 用户通过使用该软件 就可以轻松制作出自己
  • CSDN找到“仅我可见”内容

    有时候自己做一些笔记参考了他人的内容 所以想将文章转为 仅自己可见 仅作自用 记录一下CSDN找私密文章的方式 今天摸了好一会儿才找到哈哈哈 1 点击导航栏处的创作中心进入 2 查看更多 3 点击浏览就可以查看啦 来源 CSDN找到 仅我可
  • 看完这篇 教你玩转镜像转换神器qumu实现虚拟机做题自由!

    前言 最近有小伙伴说比赛没设备 问有没有不需要设备也能实现做题自由的方法 今天这里分享一期 看完这篇你将学会 使用 qumu 转换镜像格式 一般我们做题都是 img 格式的环境 需要导入设备 有些小伙伴没有设备 就可以使用这种方法 把 im

随机推荐

  • flutter 图表插件之fl_chart

    前言 之前很少接触图表功能 以为图表这种功能只能在H5上才能发挥得淋漓尽致 可谁曾料想 早有大神先把强大的chart图表功能给移植到flutter端上了 而且两端都可适用 下面给出网址 pub上 https pub dev packages
  • VirtualKD + VMWare实现单机内核调试

    VirtualKD VMWare实现单机内核调试 By 张佩 若干年以前 我的前同事酒若v霖 JIURL 写的 借助VMware实现单机使用WinDbg 一文 帮助了很多人 至今流传甚广 它介绍了如何借助于VMWare虚拟机 在同一台电脑上
  • matlab数字图像处理-消除条纹干扰

    一 背景 下图含有干扰条纹 并且低灰度区域的细节难以分辨 对图像进行灰度变换 再分别应用空域和频域的处理方法消除条纹干扰 并比较这两类方法去除条纹干扰的效果 二 算法原理 因为低灰度区的细节难以分辨 所以先将图像整体均衡化 见图1 2 使整
  • 【STM32标准库】【自制库】0.96寸OLED显示屏(SSD1306)(1)满屏图像显示

    文章目录 链接 需求分析 取模 1 处理图片 2 打开软件 3 设置图形模式 4 打开BMP图像 3 设置参数 4 生成 显示图片 成品 文章基于适用于STM32F4系列 作者使用STM32F401CCU6开发板 本文章基于此系列和开发板展
  • python+pytest单元测试框架之生成各种格式测试报告

    前面讲到使用pytest执行单个 多个或指定的测试用例 接下来讲解下通过运行测试用例 怎么来生成不同格式的测试报告 首先 创建test calss py 测试用例文件 这里以测试该文件为例 coding utf 8 class TestCl
  • Mybatis(一) 主配置文件

    SqlMapConfig xml是mybatis的全局配置文件 配置文件示例
  • 机器视觉(十一):一维条码识别

    目录 机器视觉 一 概述 机器视觉 二 机器视觉硬件技术 机器视觉 三 摄像机标定技术 机器视觉 四 空域图像增强 机器视觉 五 机器视觉与世界杯 机器视觉 六 频域图像增强 机器视觉 七 图像分割 机器视觉 八 图像特征提取 机器视觉 九
  • 呼叫系统及智能语音交互平台简介及与ChatGPT融合的展望

    chatgpt是目前最火热的赛道 随着人工智能的日益发展 如何构建智能语音系统并融合chatGPT的能力成为一个全新挑战 智能语音交互平台是在呼叫中心基础上 集成 ASR TTS的呼叫服务平台 那么如何我们自己去搭建智能语音系统呢 我们先列
  • LongLLaMA:LLaMA的升级版,处理超长上下文的利器!

    原文来源 芝士AI吃鱼 有效整合新知识 大模型面临的挑战 大家使用过大型模型产品的时候可能会遇到一个共同的问题 在进行多轮对话时 模型可能会忘记之前的对话内容 导致回答不连贯 这实际上是由于大型模型在处理大量新内容时有时会力不从心 给人一种
  • 10 网络丢包模拟工具_抓包工具charles弱网场景模拟

    charles 使用场景 在app和pc的测试过程中 case中总会有关于弱网的异常场景 弱网场景可能会出现请求超时报错等问题 那么charles是一个非常实用的工具 解决了弱网的模拟需求 下面讲解一下具体使用方法 1 点击下方图片的选项
  • 图像分割套件PaddleSeg全面解析(七)评估代码解读

    当保存完模型后 我们可以通过PaddleSeg提供的脚本对模型进行评估 python val py config configs quick start bisenet optic disc 512x512 1k yml model pat
  • centos 安装trace_Centos7--traceroute

    通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径 当然每次数据包由某一同样的出发点 source 到达某一同样的目的地 destination 走的路径可能会不一样 但基本上来说大部分时候所走的路由是相
  • PAT乙级1087 有多少不同的值 (20 分)

    1087 有多少不同的值 20 分 问题描述 当自然数 n 依次取 1 2 3 N 时 算式 n 2 n 3 n 5 有多少个不同的值 注 x 为取整函数 表示不超过 x 的最大自然数 即 x 的整数部分 输入格式 输入给出一个正整数 N
  • HTTP-Tinyhttpd解析

    大家好 我是阿桃 一个想成为被点赞关注的程序员 工控行业 物联网行业 机器人行业软件开发可联系我 Tinyhttpd是一个微型的web服务器 浏览器与Web服务器之间的通信采用的是Http 所以一开始的切入点是HTTP协议 这里说一点如果有
  • 平滑处理

    平滑处理 smoothing 也称模糊处理 bluring 作用就是减少图像上的噪声或者失真 图像滤波 即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制 是图像预处理中不可缺少的操作 其处理效果的好坏将直接影响到后续图像处理和分析的
  • Metasploit(一)

    Metasploit木马 MSF模块介绍 auxiliary exploits payloads encoders nops post 木马管理 开启监听 连接多个木马 木马持久化 木马进程迁移 生成木马 生成木马 木马捆绑 木马混淆 劫持
  • C# 使用解构元组方式不用第三个变量交换值

    C 使用解构元组方式不用第三个变量交换值 C 7 0 新增了泛型ValueTuple 值元组类型 支持对元组的解构 通过解构可以将元组的字段依次赋值给每个变量 因此我们可以通过这种方式来实现不用第三个变量 交换两个变量的值 如下 strin
  • 解析MOS管的作用是什么-细说MOS管特性、性能参数、作用等

    MOS管概述 mos管是金属 metal 氧化物 oxide 半导体 semiconductor 场效应晶体管 或者称是金属 绝缘体 insulator 半导体 MOS管的source和drain是可以对调的 他们都是在P型backgate
  • 100天精通Python(数据分析篇)——第62天:pandas常用统计方法大全(含案例)

    文章目录 一 常用统计方法与案例 1 求和 sum 2 求平均值 mean 3 求最小值 min 4 求最大值 max 5 求中位数 median 6 求众数 mode 7 求方差 var 8 求标准差 std 9 求分布情况 descri
  • ROS机器人里程计模型

    1常用坐标系系统模型 在移动机器人技术研究中 最为常用的坐标系统是笛卡尔坐标系统 而在SLAM算法研究中 有如下几个比较常见的笛卡尔坐标系统 它们分别为机器人坐标系XR YR OR 传感器坐标系XS YS OS 世界坐标系XW YW OW