【激光SLAM】里程计运动模型及标定

目录

  • 里程计模型
    • 两轮差分底盘的运动学模型
      • 优点
      • 差分模型
    • 三轮全向底盘的运动学模型
      • 优点
      • 全向模型
    • 航迹推算(Dead Reckoning)
  • 里程计标定
    • 线性最小二乘的基本原理
    • 最小二乘的直线拟合
    • 最小二乘在里程计标定中的应用
      • 方法

里程计模型

里程计相关介绍

两轮差分底盘的运动学模型

优点

  1. 结构简单,越障性能好
  2. 便宜,应该是所有底盘构型中最便宜的类型,只需要两个电机
  3. 模型简单

差分模型

左顶点为圆弧运动的圆心,r表示圆心到底盘中心的距离,d表示底盘到两轮的距离
差分运动底盘实际上是一个欠驱动系统。自由度为3(即X,Y,θ),但是驱动数只有2个(即VL,VR,左轮速度和右轮速度)。欠驱动系统造成差分模型的平移运动和旋转运动是耦合的,无法单独分解运动。

差分底盘只能做一种运动——圆弧运动。对于直线运动而言,r趋于∞;对于纯旋转而言,r趋于0,实际上还是两个圆弧运动。其运动学模型如下:

  • v,ω为底盘中心线速度和角速度
  • v_L,v_R为左右两轮的速度
  • d为轮子距离底盘中心的距离
    在这里插入图片描述
    推导过程:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三轮全向底盘的运动学模型

优点

  • 任何方向平移
  • 结构简单
  • 全驱动系统,可以完全解耦
  • 可以进行运动学分解

全向模型

在这里插入图片描述
运动分解——平移X:
在这里插入图片描述
运动分解——平移Y:
在这里插入图片描述
运动分解——旋转:
在这里插入图片描述
合成:
此处平移Y的V3有误,应该加上负号

航迹推算(Dead Reckoning)

在这里插入图片描述

递推公式:

下式为加入噪声后的情况

里程计标定

里程计标定的目的是减小里程计的误差,提高机器人导航的精度和可靠性。 通过标定,可以确定里程计的误差模型和参数,从而对机器人的位移和姿态进行更准确的计算。

线性最小二乘的基本原理

Ax=b的每一行代表一个约束,列代表未知数的维数。由于几乎不可能把所有方程同时满足,所以绝大多数情况为超定方程组。

在这里插入图片描述
在这里插入图片描述

最小二乘的直线拟合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最小二乘在里程计标定中的应用

方法

  1. 直接线性方法:通用性强、实现简单、精度不高
  2. 基于模型的方法:精度高、实现复杂、特异性高

在这里插入图片描述
u_i*表示激光雷达测得的第i帧与第j帧的相对位置关系,即u_i*=p_i-1 p_j。同理,u_i则为由里程计测量得到的同一关系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无向图-树的重心-DFS求解

思路: 本题的本质是树的dfs, 每次dfs可以确定以u为重心的最大连通块的节点数,并且更新一下ans。 也就是说,dfs并不直接返回答案,而是在每次更新中迭代一次答案。 这样的套路会经常用到,在 树的dfs 题目中…

2024年MacBook上实用软件

Mac软件-mac软件下载-mac软件大全-MacZMacz下载是一个专业的Mac苹果电脑软件下载网站,提供专业的Mac软件、Mac游戏、精品插件以及各类海量素材下载,mac下载网站有Mac平台上常用好用的软件,有时下热门好玩的Mac游戏,还有各类PS、AE…

js去掉数组中的undefined及空字符串、null

方法一、filter函数 var arr [原数组]var newArr arr.filter(item > item && item.trim())console.log(newArr)例子: 可以使用JavaScript的filter()函数来过滤掉数组中的undefined元素。 const arr [1, undefined, hello, null, true];const filter…

CentOS 7中搭建NFS文件共享服务器的完整步骤

CentOS 7中搭建NFS文件共享服务器的完整步骤 要求:实现镜像文件共享,并基于挂载的共享目录配置yum源。 系统环境: 服务器:172.20.26.167-CentOS7.6 客户端:172.20.26.198-CentOS7.6 1、在服务器和客户端上&#x…

从奥迪Quattro到碧然德:揭秘技术品牌成功打造与推广的秘诀

在当前全球化和信息化快速发展的背景下,技术品牌的打造不仅是企业竞争力提升的重要途径,也是企业实现长远发展的基石。通过深入剖析,我们认识到,技术品牌的建设并非一蹴而就的过程,而是需要企业准确把握市场趋势&#…

Spring Boot + flowable 快速实现工作流

背景 使用flowable自带的flowable-ui制作流程图 使用springboot开发流程使用的接口完成流程的业务功能 文章来源:https://blog.csdn.net/zhan107876/article/details/120815560 一、flowable-ui部署运行 flowable-6.6.0 运行 官方demo 参考文档: htt…

编程笔记 html5cssjs 071 JavaScript Symbol 数据类型

编程笔记 html5&css&js 071 JavaScript Symbol 数据类型 一、Symbol 数据类型二、 示例小结 在JavaScript中,Symbol 是一种基本数据类型,它于 ECMAScript 6(ES6)中引入,用来创建唯一的、不可变的值。这些值可以…

【QT+QGIS跨平台编译】之二十九:【HDF5+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、HDF5介绍二、文件下载三、文件分析四、pro文件一、HDF5介绍 HDF5(层次数据格式第5版)是一种用于存储和组织大量数据的文件格式和技术集合。它由美国国家超级计算应用中心(NCSA)开发,旨在解决复杂数据的存储和分布问题。HDF5支持各种数据类型,能够有效地存储…

24种设计模式之行为型模式(下)-Java版

软件设计模式是前辈们代码设计经验的总结,可以反复使用。设计模式共分为3大类,创建者模式(6种)、结构型模式(7种)、行为型模式(11种),一共24种设计模式,软件设计一般需要满足7大基本原则。下面通过5章的学习一起来看看设计模式的魅…

大端和小端模式介绍

介绍 “大端”和“小端”通常指的是字节序(Byte Order)的两种类型,也被称为端序(Endianness)。在多字节的数据类型(如整数)中,字节可以以不同的顺序存储,这影响了计算机…

风行智能电视G32Y 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin

升级步骤: 1、下载刷机数据,如是压缩包,需要先解压,然后将刷机bin格式的文件重命名为MstarUpgrade.bin 2、将此文件放到U盘根目录 (U盘格式FAT32,单分区,建议4G的优盘刷机成功率高)…

JD京东商品详情数据获取API测试示例

item_get 获得JD商品详情item_search 按关键字搜索商品item_search_img 按图搜索京东商品(拍立淘)item_search_shop 获得店铺的所有商品item_history_price 获取商品历史价格信息item_recommend 获取推荐商品列表buyer_order_list 获取购买到的商品订单列…

彻底学会系列:一、机器学习之线性回归(一)

1.基本概念(basic concept) 线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。 因变量: 影响目标变量的因素: X 1 , X 2 . . . X_1, X_2... X1​,X2​... ,连续值或离散值。 目标变量: …

JAVA毕业设计126—基于Java+Springboot+Vue的二手交易商城管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的二手交易商城管理系统(源代码数据库)126 一、系统介绍 本项目前后端分离,本系统分为管理员、用户两种角色 1、用户: 注册、登录、…

docker更换镜像源

添加的镜像源 {"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com", "https://reg-mirror.qiniu.com/", "https://docker.mirrors.ustc.edu.cn"] }docker更换镜像源之后一定要重启守卫 systemctl daemon-reloaddock…

【Ubuntu】安装hbase

前提 需要安装java 安装 HBase 下载并解压 HBase 安装包: wget https://dlcdn.apache.org/hbase/2.5.7/hbase-2.5.7-bin.tar.gz tar -zxvf hbase-2.5.7-bin.tar.gz配置 HBase 环境变量: export HBASE_HOME/path/to/hbase-2.5.7 export PATH$PATH:$H…

ESP32QRCodeReader库使用,ESP32-CAM识别二维码并向自写接口发出请求确认身份。

#include <Arduino.h> #include <WiFi.h> #include <HTTPClient.h> #include <ESP32QRCodeReader.h>#define WIFI_SSID "username" #define WIFI_PASSWORD "password" // 连接电脑主机的IP地址的8088端口 #define WEBHOOK_URL &qu…

docker-学习-5

docker-学习第五天 docker-学习第五天1. 昨天的练习回顾1.1. 练习11.2. 练习2 2. 命令2.1. 看镜像的详细信息 3. Dockerfile指令3.1. 常见的指令3.2. ENTRYPOINT和CMD的区别3.3. RUN中的set指令 4. 镜像的原理4.1. 为什么 Docker 镜像要采用这种分层结构呢&#xff1f;4.2. doc…

JavaScript ATM取款机

①&#xff1a;循环的时候&#xff0c;需要反复提示输入框&#xff0c;所以提示框写到循环里面 ②&#xff1a;退出的条件是用户输入了 4&#xff0c;如果是4&#xff0c;则结束循环&#xff0c;不在弹窗 ③&#xff1a;提前准备一个金额预先存储一个数额 ④&#xff1a;取钱…

Servlet服务器端的小程序

文章目录 Servlet概述快速入门Servlet 中方法的生命周期Servlet 的体系结构GenericServletHttpServlet Servlet 3.0以后Servlet 相关配置 案例Servlet xml配置web.xmlMyServlet Servlet 注解配置 Servlet 概述 Servlet applet 运行在服务器端的小程序&#xff0c;Servlet 就是…