【cartographer ros】十: 延时和误差分析
上一节介绍了在cartographer进行建图和定位(在线和离线)。
本节将分析cartographer运行时的误差与延迟,主要是在线定位时的,并尝试优化解决。
目录
1,误差分析
建图时的漂移,重影等现象基本可以通过:
确保雷达足够的频率和角度;
建图时移动速度均匀且不要过快;
调整建图参数;足够多的迭代优化;
融合里程计+陀螺仪等方式解决。
这里的误差主要指在实时定位的定位错差。
a,硬件精度
这个很明显,定位的精度和原始数据的精度息息相关。
有条件的可以提高雷达,里程计,陀螺仪等硬件精度,也可以对初始数据优化处理,得到更精准的数据。
b,初值敏感
cartographer的定位过程,十分依赖初始定位坐标,如果初始位置定位就出错,后续很难修正。
可以通过重定位或者在易于识别的地方初始定位解决,且确保初始定位到正确位置之后再继续。
c,计算量大
大量的约束计算,以及全局优化的迭代计算,造成明显的延迟误差。
2,延时优化
因为延时基本上都是因为计算量大引起,所以延时优化得核心就是降低计算。
当然也有是因为硬件传感数据延时或者网络延时引起的,但不涉及算法,在此不予讨论。
在实际使用中可以通过调整下列参数来减低计算量。
本地:
--当IMU和Odom足够信赖时,可以关闭CSM,只使用位姿预估.
TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = false
TRAJECTORY_BUILDER_2D.motion_filter.max_angle_radians 增大
TRAJECTORY_BUILDER_2D.motion_filter.max_distance_meters 增大
全局:
MAP_BUILDER.pose_graph.constraint_builder.min_score 降低
MAP_BUILDER.pose_graph.constraint_builder.max_constraint_distance 降低
MAP_BUILDER.pose_graph.constraint_builder.sampling_ratio 降低
减少重复子图:
MAP_BUILDER.pose_graph.overlapping_submaps_trimmer_2d = {
fresh_submaps_count = 1,
min_covered_area = 2,
min_added_submaps_count = 5,
}
3,简单小结
到这里为止,已经介绍了,cartographer在ros系统下的安装,发布数据,参数调整,建图定位以及延时误差分析等,cartographer_ros篇章就告一段落了。
通过这一系列的文章,希望可以帮助大家快速的上手,并在实际应用中使用cartographer。有什么错误或者不足之处,也希望大家不吝赐教。
后续会有深入的代码解读和算法优化,也欢迎有兴趣的,想要继续研究的小伙伴们一起交流讨论。
【cartographer ros】十: 延时和误差分析的更多相关文章
- implement Cartographer ROS for TurtleBots
github source: https://github.com/googlecartographer/cartographer_turtlebot 1. Building & Instal ...
- 3.在自己的bag上运行Cartographer ROS
1.验证自己的bag cartographer ROS提供了一个工具cartographer_rosbag_validate来自动分析包中的数据.在尝试调试cartographer之前运行这个工具. ...
- 1.编译cartographer ROS
1.系统要求 cartographer ROS与Cartographer要求一样,即 64-bit, modern CPU (e.g. 3rd generation i7) 16 GB RAM Ubu ...
- 2.在demo bag上运行cartographer ROS
注意在运行bag包,之前需要去执行source install_isolated/setup.bash 1.Deutsches Museum 下载并启动2D的backpack demo: wget - ...
- implement Google's Open Source Slam "Cartographer" demos in ROS/rviz
Cartographer is a backpack equipped with Simultaneous Localization and Mapping (SLAM) technology. 1. ...
- Google's Open Source SLAM Library ---- Cartographer
What is Cartographer? Google announce the open source release of Cartographer, a real-time simultane ...
- Cartographer资料分享
中文资料稍后补充 Introducing Cartographer By Tully Foote on October 5, 2016 10:11 AM From Damon Kohler, Wolf ...
- 我用MATLAB撸了一个2D LiDAR SLAM
0 引言 刚刚入门学了近一个月的SLAM,但对理论推导一知半解,因此在matlab上捣鼓了个简单的2D LiDAR SLAM的demo来体会体会SLAM的完整流程. (1)数据来源:德意志博物馆Deu ...
- 第十五章节 BJROBOT cartographer 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】
建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...
随机推荐
- mysql5.7介绍和安装
环境准备: 1.关闭防火墙和selinux systemctl stop firewalldsystemctl stop SElinux 2. 如果安装过mariadb需要停止且卸载服务 system ...
- unity---动画基础
旧动画系统 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Mo ...
- WPF|快速添加新手引导功能(支持MVVM)
阅读导航 前言 案例一 案例二 案例三(本文介绍的方式) 如何使用? 控件如何开发的? 总结 1. 前言 案例一 站长分享过 眾尋 大佬的一篇 WPF 简易新手引导 一文,新手引导的效果挺不错的,如下 ...
- PostgreSQL Array 数组类型与 FreeSql 打出一套【组合拳】
前言 PostgreSQL 是世界公认的功能最强大的开源数据库,除了基础数据类型 int4/int8/varchar/numeric/timestamp 等数据类型,还支持 int4[]/int8[] ...
- Tarjan算法模板(USACO03FALL受欢迎的牛)
好文章 #include<bits/stdc++.h> using namespace std; const int N = 10010, M = 50010; int n, m; int ...
- JavaScript易错知识点
JavaScript易错知识点整理1.变量作用域上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. 上方的函数作用域中虽然声明并赋值了a,但位于console之下 ...
- WPF开发随笔收录-仿安卓Toast
一.前言 在项目中,经常需要用到消息提醒功能,在以前接触安卓开发那会使用过Toast,于是打算在WPF上也来模仿一个,话不多说,撸起袖子干起来! 二.正文 1.首先新建一个工程,工程的目录如下 2.编 ...
- 搭建uipath
我对windows也不太熟,也是第一次安装Uipath Orchestrator,希望有问题指出一起交流,可以留言,Uipath中文qq交流群:4656303241. 下载镜像 windows ser ...
- C#/VB.NET 将PDF转为Excel
PDF文档可以避免可防⽌他⼈⽆意中触到键盘修改⽂件内容.但是在避免他人⽆意修改的同时也妨碍了正常的修改.如果你想处理或修改PDF文档中的数据,不妨试试用Excel来实现.Excel拥有强大的数据处理功 ...
- 从零打造一个Web地图引擎
说到地图,大家一定很熟悉,平时应该都使用过百度地图.高德地图.腾讯地图等,如果涉及到地图相关的开发需求,也有很多选择,比如前面的几个地图都会提供一套js API,此外也有一些开源地图框架可以使用,比如 ...