Skip to content

踩坑Robotics Stack Exchange7 个月前

ROS2 Python lookupTransform报错target_frame不存在及等待机制失。 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Waiting for TransformListener with ROS2 and Python?(Robotics Stack Exchange #98182)

状态:已解决

问题 ​

在Ubuntu 20.04与ROS2 Foxy环境下,使用Python编写tf2_ros.TransformListener监听两帧变换时,约50%概率抛出tf2.LookupException: "front_bumper" passed to lookupTransform argument target_frame does not exist。

环境 ​

Ubuntu 20.04.1 LTS, ROS2 Foxy, Python, tf2_ros, RealSense T265/T455, ydlidar g2

解决办法 ​

  1. 弃用针对固定关节的tf2_ros.Buffer.lookup_transform查询方式,该场景下直接订阅/tf话题亦非标准做法。
  2. 识别T265相机实际发布的是Odometry话题而非直接的静态TF,改为订阅该Odometry话题获取位姿数据。
  3. 基于订阅到的Odometry数据计算并发布到/joint_states话题,以动态更新云台关节状态。
  4. 避免套用ROS1版TF教程逻辑,对于移动关节应优先使用传感器原生数据流驱动关节状态发布,而非反向查询TF树。

原问题作者:dognaught47;采纳答案作者:dognaught47。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #98182:Waiting for TransformListener with ROS2 and Python?访问 2026-10-27