cartographer近期调试总结
1 当底盘发布odom的时候,carto的配置中
published_frame = "odom", 说明carto发布的tf是: map -> footprint
provide_odom_frame = false, 此时Carto不需要发布odom
如果为true,则tf树为map->odom->footprint
当使用纯定位的时候,实际使用的就是carto到odom或者到footprint的tf
Tf树如同
2当底盘不发布odom的时候,
published_frame = " base_footprint", 说明carto发布的tf是 map -> footprint
3 carto建图的时候,地图是由浅色渐渐地变得深色的,但是】用gmapping也没问题
地图里有透明度值,激光没打到障碍物,穿过去了,激光穿过去的一条线上的栅格透明度值就会变大,看起来就变亮了
4 use_odometry = false, -- 是否使用里程计,如果使用要求一定要有odom的tf
TRAJECTORY_BUILDER_2D.use_imu_data = false
在里程计与imu不准的情况下,使用imu和odom反而建图效果会更差
5 实现纯定位的时候,创建一个新的lua文件
include "backpack_2d.lua"
TRAJECTORY_BUILDER.pure_localization_trimmer = {undefined
max_submaps_to_keep = 3,
}
POSE_GRAPH.optimize_every_n_nodes = 80
return options
其实只是包含了建图的lua配置数据,加纯定位的配置即可;
6 cartographer的lua文件被改后,需要重新编译才能生效。
7 cartographer建图及定位时候,可以多使用几个lua配置适配不同的场合。
8 高仙iros论文总结:位姿预测:imu预积分和里程计的efk融合
后端优化:添加了submap和submap的约束
地图更新这有点新工作,将删的子图保存下来,删除这个子图的时候,通过边缘化把这个子图的信息留下了,子图删掉了
9 一些错误的总结
(1)播放bag的时候错误 Check failed: sensor_to_tracking->translation().norm() < 1e-5 The IMU frame must be colocated with the tracking frame. Transforming linear acceleration into the tracking frame will otherwise be imprecise tracking frame不是imu的link 修改lua文件中的tracking frame设置
(2) WARN] [1522398152.672156241]: Timed out waiting for transform from base_footprint to map to become available before running costmap, tf error: Could not find a connection between ‘map’ and ‘base_footprint’ because they are not part of the same tree.Tf has two or more unconnected trees… canTransform returned after 0.105784 timeout was 0.1.
这时我们需要在acml_demo.launch文件中加上
(3)carto建图后保存的时候命令rosservice call /finish_trajectory 0报错
ERROR: unable to connect to service: remote error reported: client wants service /finish_trajectory to have md5sum 6e190c4be941828bcd09ea05053f4bb5, but it has 0feba73841cb434875547ca2a563a021. Dropping connection. 原因竟是因为没有把carto源码的工作空间source
- 点赞
- 收藏
- 关注作者
评论(0)