【cartographer ros】十: 延时和误差分析

人工智能88

上一节介绍了在cartographer进行建图和定位(在线和离线)。
本节将分析cartographer运行时的误差与延迟,主要是在线定位时的,并尝试优化解决。

基本可以通过地图构建过程中出现的漂移、鬼影等现象:

[En]

Drift, ghosting and other phenomena during the construction of the map can be basically passed:

确保雷达足够的频率和角度;

建图时移动速度均匀且不要过快;

调整建图参数;足够多的迭代优化;

融合里程计+陀螺仪等方式解决。

这里的误差主要是指实时定位中的定位误差。

[En]

The error here mainly refers to the positioning error in real-time positioning.

a,硬件精度

显然,定位的准确性与原始数据的准确性密切相关。

[En]

It is obvious that the accuracy of positioning is closely related to the accuracy of the original data.

有条件的可以提高雷达、里程表、陀螺仪等硬件的精度,也可以优化初始数据处理,得到更准确的数据。

[En]

Conditional can improve the accuracy of radar, odometer, gyroscope and other hardware, but also can optimize the initial data processing to get more accurate data.

b,初值敏感

cartographer的定位过程,十分依赖初始定位坐标,如果初始位置定位就出错,后续很难修正。
可以通过在容易识别的地方重新定位或初始定位来解决,并确保初始定位在正确位置后再继续。

[En]

It can be solved by repositioning or initial positioning in a place that is easy to identify, and ensure that the initial positioning is in the correct position before continuing.

c,计算量大

全局优化的大量约束计算和迭代计算会造成明显的延迟误差。

[En]

A large number of constraint calculations and iterative calculations of global optimization cause obvious delay errors.

由于时延基本上是由计算量大引起的,所以时延优化的核心是减少计算量。

[En]

Because the delay is basically caused by the large amount of computation, the core of delay optimization is to reduce the calculation.

当然,也有硬件传感器数据延迟或网络延迟造成的,但不涉及算法,这里不做讨论。

[En]

Of course, it is also caused by hardware sensor data delay or network delay, but it does not involve the algorithm and will not be discussed here.

在实际应用中,可以通过调整以下参数来减少计算量。

[En]

In practical use, the amount of calculation can be reduced by adjusting the following parameters.

本地:

--当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,
   }

到这里为止,已经介绍了,cartographer在ros系统下的安装,发布数据,参数调整,建图定位以及延时误差分析等,cartographer_ros篇章就告一段落了。

通过这一系列的文章,希望可以帮助大家快速的上手,并在实际应用中使用cartographer。有什么错误或者不足之处,也希望大家不吝赐教。

后续还将进行深入的代码解读和算法优化,欢迎有兴趣、想继续学习的朋友一起交流探讨。

[En]

In the follow-up, there will be in-depth code interpretation and algorithm optimization, and friends who are interested and want to continue to study are welcome to communicate and discuss together.

Original: https://www.cnblogs.com/CloudFlame/p/16531300.html
Author: CloudFlame
Title: 【cartographer ros】十: 延时和误差分析