【激光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.hqwc.cn/news/455140.html

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

相关文章

宝塔+php+ssh+vscode+虚拟机 远程调试

远程(虚拟机)宝塔 安装扩展 配置文件添加,zend_extension看你虚拟机的具体位置 [Xdebug] zend_extension/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so xdebug.modedebug xdebug.start_with_requesttrigger xdebug.client_host&quo…

zabbix配置主动监控

1.准备一台新的主机,安装相关软件包。 [rootsishi ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [rootsishi ~]# yum -y install zabbix-agent2.修改zabbix-agent端的配置文件 [rootsishi ~]# vim /etc/z…

深入理解Netty及核心组件使用—中

目录 EventLoop和EventLoopGroup 线程的分配 线程管理 Channel、EventLoop(Group)和ChannelFuture Channel接口 Channel 的生命周期状态 重要 Channel 的方法 ChannelPipeline和ChannelHandlerContext ChannelPipeline接口 ChannelHandler 的生命周期 ChannelPipeli…

C# OpenVINO 图片旋转角度检测

目录 效果 项目 代码 下载 效果 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using System; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Te…

[软件工具]文档页数统计工具软件pdf统计页数word统计页数ppt统计页数图文打印店快速报价工具

文档页数统计工具软件——打印方面好帮手 在信息化时代,文档已成为我们工作、学习、生活中不可或缺的一部分。无论是学术论文、商业报告,还是个人日记,都需要我们对其进行有效的管理。而在这个过程中,文档页数统计工具软件就显得…

tee漏洞学习-翻译-2:探索 Qualcomm TrustZone的实现

原文:http://bits-please.blogspot.com/2015/08/exploring-qualcomms-trustzone.html 获取 TrustZone image 从两个不同的位置提取image 从手机设备本身从google factory image 已经root的Nexus 5设备,image存储在eMMC芯片上,并且eMMC芯片…

【网站项目】039菜匣子优选生鲜电商系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

LeetCode、790. 多米诺和托米诺平铺【中等,二维DP,可转一维】

文章目录 前言LeetCode、790. 多米诺和托米诺平铺【中等,二维DP,可转一维】题目与分类思路二维解法二维转一维 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质…

数据库学习笔记2024/2/5

2. SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 2.1 SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的通用语法。 1). SQL语句可以单行或多行书写&…

MySQL学习一、库和表的基础操作

目录 一、常用数据类型 1.数值类型 2.字符串类型 3.日期类型 ​二、数据库的基础操作 三、表的基础操作 一、常用数据类型 1.数值类型 数值类型可以指定为无符号(unsigned ),但不建议取 2.字符串类型 3.日期类型 二、数据库的基础操作…

CentOS7搭建k8s-v1.28.6集群详情

文章目录 1.灌装集群节点操作系统1.1 设置hosts1.2 设置nameserver1.3 关闭防火墙1.4 关闭Selinux1.5 关闭Swap分区1.6 时间同步1.7 调整内核参数1.8 系统内核升级 2.安装Docker2.1 卸载旧Docker2.2 配置Docker软件源2.3 安装Docker 3.部署Kubernets集群3.1 设置 K8s 软件源3.2…

Node.js JSON Schema Ajv依赖库逐步介绍验证类型和中文错误提示

在构建应用程序时,数据的有效性是至关重要的。为了确保传入的数据符合预期的格式和规范,我们可以使用 Ajv(Another JSON Schema Validator)进行验证。在这篇博文中,我们将从头开始学习 Ajv,逐步介绍验证类型…