【激光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…

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…

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

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…

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 镜像要采用这种分层结构呢?4.2. doc…

JavaScript ATM取款机

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

Servlet服务器端的小程序

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

挑战杯 python+opencv+机器学习车牌识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程

说明: 安装与卸载中,用户全部切换成为 root,一旦安装,普通用户就能使用。 一、卸载内置环境 1、卸载不要的环境 [rootVM-8-5-centos ~]$ ps ajx | grep mariadb # 先检查是否有mariadb存在 13134 14844 14843 13134 pts/0 14843…

NLP_Bag-Of-Words(词袋模型)

文章目录 词袋模型用词袋模型计算文本相似度1.构建实验语料库2.给句子分词3.创建词汇表4.生成词袋表示5.计算余弦相似度6.可视化余弦相似度 词袋模型小结 词袋模型 词袋模型是一种简单的文本表示方法,也是自然语言处理的一个经典模型。它将文本中的词看作一个个独立…

Java Collection 集合体系的使用

Java Collection 集合体系的使用 package com.zhong.collection;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet;public class CollectionDemo {public static void main(String[] args) {// ArrayList 有序 可…

C语言贪吃蛇详解

个人简介:双非大二学生 个人博客:Monodye 今日鸡汤:人生就像一盒巧克力,你永远不知道下一块是什么味的 C语言基础刷题:牛客网在线编程_语法篇_基础语法 (nowcoder.com) 一.贪吃蛇游戏背景 贪吃蛇是久负盛名的游戏&…

###C语言程序设计-----C语言学习(9)#函数基础

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 基础知识的学习 1.函数的定义 函数是一个完成特定工作的独立程序模块&…

GPT-1, GPT-2, GPT-3, GPT-3.5, GPT-4论文内容解读

目录 1 ChatGPT概述1.1 what is chatGPT1.2 How does ChatGPT work1.3 The applications of ChatGPT1.3 The limitations of ChatGPT 2 算法原理2.1 GPT-12.1.1 Unsupervised pre-training2.1.2 Supervised fine-tuning2.1.3 语料2.1.4 分析 2.2 GPT-22.3 GPT-32.4 InstructGPT…

如何使用MCSM搭建我的世界Java版服务器并实现远程联机游戏

文章目录 1. 安装JAVA2. MCSManager安装3.局域网访问MCSM4.创建我的世界服务器5.局域网联机测试6.安装cpolar内网穿透7. 配置公网访问地址8.远程联机测试9. 配置固定远程联机端口地址9.1 保留一个固定tcp地址9.2 配置固定公网TCP地址9.3 使用固定公网地址远程联机 本教程主要介…

面试题:SpringBoot 在打包部署的时候打包成 jar 和 war 有什么不同?

文章目录 前言jar包和war包的区别一、打包成jar二、打包成war包形式 前言 首先给大家来讲一个我们遇到的一个奇怪的问题: 我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没…