上一节介绍了在cartographer进行建图和定位(在线和离线)。

本节将分析cartographer运行时的误差与延迟,主要是在线定位时的,并尝试优化解决。

目录

1,误差分析

a,硬件精度

b,初值敏感

c,计算量大

2,延时优化

本地

全局

减少重复子图

3,简单小结


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】十: 延时和误差分析的更多相关文章

  1. implement Cartographer ROS for TurtleBots

    github source: https://github.com/googlecartographer/cartographer_turtlebot 1. Building & Instal ...

  2. 3.在自己的bag上运行Cartographer ROS

    1.验证自己的bag cartographer ROS提供了一个工具cartographer_rosbag_validate来自动分析包中的数据.在尝试调试cartographer之前运行这个工具. ...

  3. 1.编译cartographer ROS

    1.系统要求 cartographer ROS与Cartographer要求一样,即 64-bit, modern CPU (e.g. 3rd generation i7) 16 GB RAM Ubu ...

  4. 2.在demo bag上运行cartographer ROS

    注意在运行bag包,之前需要去执行source install_isolated/setup.bash 1.Deutsches Museum 下载并启动2D的backpack demo: wget - ...

  5. implement Google's Open Source Slam "Cartographer" demos in ROS/rviz

    Cartographer is a backpack equipped with Simultaneous Localization and Mapping (SLAM) technology. 1. ...

  6. Google's Open Source SLAM Library ---- Cartographer

    What is Cartographer? Google announce the open source release of Cartographer, a real-time simultane ...

  7. Cartographer资料分享

    中文资料稍后补充 Introducing Cartographer By Tully Foote on October 5, 2016 10:11 AM From Damon Kohler, Wolf ...

  8. 我用MATLAB撸了一个2D LiDAR SLAM

    0 引言 刚刚入门学了近一个月的SLAM,但对理论推导一知半解,因此在matlab上捣鼓了个简单的2D LiDAR SLAM的demo来体会体会SLAM的完整流程. (1)数据来源:德意志博物馆Deu ...

  9. 第十五章节 BJROBOT cartographer 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】

    建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...

随机推荐

  1. MySQL中的全表扫描和索引树扫描

    引言 在学习mysql时,我们经常会使用explain来查看sql查询的索引等优化手段的使用情况.在使用explain时,我们可以观察到,explain的输出有一个很关键的列,它就是type属性,ty ...

  2. zabbix-agent python脚本侦听服务器异常登录,并告警

    py脚本 import re,subprocess,time,datetime #gpasswd -a zabbix adm def ftime(a): a = a.replace('Jan','01 ...

  3. arts-week13

    Algorithm 992. Sort Array By Parity II - LeetCode Review https://tls.ulfheim.net/ HTTP协议图解 Tip linux ...

  4. SpringBoot从Eclipse添加的Tomcat容器中启动

    SpringBoot的Web项目,想要在Eclipse中的Tomcat容器中启动运行需要做下面这两处改动 pom.xml <packaging>war</packaging> ...

  5. Java测试报告

    测试题目:ATM机 程序说明:本程序中共包含了两个类,分别为Account类和AccountManager类 Account类代码: public class Account { private St ...

  6. 【单片机】NB-IoT移远BC28调试笔记

    一.入网总体思路 入网思路是参考 <Quectel_BC95&BC35-G&BC28_应用设计指导_V1.1.pdf>来做的.流程如图所示: 二.具体调试细节3.1 AT+ ...

  7. ML第7周学习小结

    本周收获 总结一下本周学习内容: 1.学习了<深入浅出Pandas>的第六章:Pandas分组聚合 6.4 聚合统计 6.5 数据分箱 6.6 分组可视化 博客: pandas:聚合统计. ...

  8. static关键字——JavaSE基础

    static关键字 由于static跟随类被加载,因此静态代码块.构造方法.匿名代码块的执行顺序为静态代码块→匿名代码块→构造方法 public class Demo01 { public stati ...

  9. SAP APO-PP / DS

    在SAP APO中,使用生产计划/详细计划(Production Planning/Detailed Scheduling)生成满足生产要求的采购建议. 此组件还用于定义资源计划和订单明细. 您还可以 ...

  10. bat实现删除BCUnrar.dll实现无限使用

    删除项目:计算机\HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4下的CacheId 项可以实现Beyond Compare 4 ...