外观
踩坑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
解决办法
- 弃用针对固定关节的tf2_ros.Buffer.lookup_transform查询方式,该场景下直接订阅/tf话题亦非标准做法。
- 识别T265相机实际发布的是Odometry话题而非直接的静态TF,改为订阅该Odometry话题获取位姿数据。
- 基于订阅到的Odometry数据计算并发布到/joint_states话题,以动态更新云台关节状态。
- 避免套用ROS1版TF教程逻辑,对于移动关节应优先使用传感器原生数据流驱动关节状态发布,而非反向查询TF树。
原问题作者:dognaught47;采纳答案作者:dognaught47。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。