导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    ROS 中 TF的方向性

    技术交流
    tf变换
    1
    1
    939
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 weijiz 编辑

      在发布tf的时候下面的消息是等效的吗, 假设T是一个变换, inv(T)是T的逆变换

      frame_id: map
      child_frame_id: odom
      transform: T
      
      frame_id: odom
      child_frame_id: map
      transform: inv(T)
      

      实际上并不是,下面的这种写法是无效的。因为TF是具有方向性的,而且一个frame可以有多个child_frame,但是一个child_frame只能有一个frame。而下面的写法违背了这个原则。对于odom,它的下一级frame正常应该是base_footprint,如果发布第二种TF变换,那么base_footprint和map的上一级frame就都是odom了,这是不允许的。

      但是如果发布了第二种TF变换,通过tf2_tool view_frame 是看不出任何异常的。虽然没有异常,但是在具体使用的时候有些情况下能正常获取到TF变换,有些时候就获取不到,非常难定位到这个问题。希望各位遇到TF异常的时候可以检查一下上下层级是否正确。

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community