Ros cartographer 搭载 landmark 保姆级操作上手教程

前言:

       之前跑的bag中偶然发现在msg的bag包中,有Landmark数据的发布和订阅。Landmark在cartographer中作为定位为避免定位丢失,从而使之增加定位精度,和重定位,看完所有网页上能找到的文章,看后就一个字懵。

       防止cartographer在长廊中因为激光雷达的射程范围不够导致后期回环中定位失效,以至自己设备的定位乱跳,如果不幸跳入墙体中,则会整个设备则会陷入假死

       整体上landmark的引用方式,分为两种一种是反光标识工地上的反光柱,另一种则是使用固定的二维码AprilTag

       在cartographer中,landmark必须是tracking frame,一般是imu、laser、camera或者base_footprint如果提供landmark observations不低于10 Hz,那么可以设置TRAJECTORY_BUILDER.collate_landmarks = on. Cartographer将deterministically运行(对于给定的bag, 使用offline node每次获得的结果是一样的). 如果collate_landmarks = off, landmark observations将跳过sensor q

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
以下是一个简单的cartographer landmark生成代码示例: ```python #!/usr/bin/env python import rospy import tf from cartographer_ros_msgs.msg import LandmarkList, LandmarkEntry if __name__ == '__main__': rospy.init_node('cartographer_landmark_publisher') landmark_list_pub = rospy.Publisher('/landmark_list', LandmarkList, queue_size=10) listener = tf.TransformListener() while not rospy.is_shutdown(): try: (trans, rot) = listener.lookupTransform('/map', '/landmark', rospy.Time(0)) except (tf.LookupException, tf.ConnectivityException, tf.ExtrapolationException): continue landmark_list = LandmarkList() landmark_entry = LandmarkEntry() landmark_entry.id = 'my_landmark' landmark_entry.tracking_from_landmark_transform.translation.x = trans[0] landmark_entry.tracking_from_landmark_transform.translation.y = trans[1] landmark_entry.tracking_from_landmark_transform.translation.z = trans[2] landmark_entry.tracking_from_landmark_transform.rotation.x = rot[0] landmark_entry.tracking_from_landmark_transform.rotation.y = rot[1] landmark_entry.tracking_from_landmark_transform.rotation.z = rot[2] landmark_entry.tracking_from_landmark_transform.rotation.w = rot[3] landmark_list.landmarks.append(landmark_entry) landmark_list_pub.publish(landmark_list) rospy.sleep(0.5) ``` 这个例子假设你已经在地图上放置了一个landmark,并且已经将其命名为“landmark”。它将在每秒钟发布一个包含一个名为“my_landmark”的地标的消息。在Cartographer中,你可以使用这个地标来定位机器人的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忒懂先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值