(七)cartographer-远一点的说

Cartographer不仅仅是用来建图,它还有其它功能没有列出来,列举如下:

更多的输入
  • 齿轮编码器
    如果你有齿轮编码器的数据,就是我们说的odom,数据类型为nav_msgs/Odometry,你可以在配置文件中打开并使用它来提高定位时的精度
use_odometry = true
  • GPS
    如果你能接收到GPS信号,可以发布数据类型为sensor_msgs/NavSatFix的话题,话题名可以叫做fix,用来提高全局SLAM,配置文件打开如下:
use_nav_sat = true
  • Landmark(路标)
    如果你希望发布一个路标数据,其数据类型为cartographer_ros_msgs/LandmarkList,话题可以叫landmarks,很多种路标可以选择,相机看到的物体、二维码可以是路标、激光检测到的物体也可以看成是路标,只要你能确定每次看到这个路标的id是唯一的,就是不会把两个不同路标看成是同一个,那样就可以建图时记录路标信息,导航时使用路标快速定位了。配置文件打开如下:
use_landmarks = true
纯定位

前面好像有说这个功能,不再复述,夹在已知地图,然后配置文件打开

TRAJECTORY_BUILDER.pure_localization_trimmer = {
    max_submaps_to_keep = 3,
}
IMU矫正

前面好像也有说,当执行全局优化时,IMU和激光雷达的外参可以作为优化参数进行优化。小编还没用过,好像使用时多让激光数据发现回环,有利于外参的计算。

多路径SLAM

据说可以实现多机器同时建图,小编还没试过,说可以通过ROS服务start_trajectory 和 finish_trajectory来实现,不过小编咋不明白呢?

使用gRPC与云端结合

cartographer使用Protobuf数据传输协议,所以可以使用gRPC(也是谷歌的),可以通过云端运行cartographer算法,最典型的例子就是多机器人在一张地图上进行导航。而SLAM算法运行在强大的远程中心定位服务器上。

发布了51 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/windxf/article/details/104405853
今日推荐