python - 在 ROS 中,如何将姿势从 kinect 帧转换为 PR2 的 base_link 帧?
问题描述
我对 tf. 我正在做一个抓取项目。我的视觉伙伴给我一个物体在相机框架中的姿势,或者在运行机器人时,机器人的 Kinect 框架(PR2 机器人)。现在,为了抓住那个物体,我需要在机器人的 base_link 框架中获取姿势,因为 moveit 接口使用了这个框架。
最初,我的想法是我可以使用 tf 的查找转换方法来做到这一点,但现在我知道这只会在不同帧之间进行转换。为了得到我需要的东西,也就是对象在 base_link 框架中的位置,我应该使用一个 transformListener 方法。我仍然对两者之间的区别感到困惑。我正在使用 python。如果有人能给我一个示例工作 transformListener 代码,那也会很有帮助。
解决方案
我得到了答案,所以它是这样的:
import tf2_ros
import tf2_geometry_msgs #import the packages first
tf_buffer = tf2_ros.Buffer(rospy.Duration(1200.0)) #tf buffer length
tf_listener = tf2_ros.TransformListener(tf_buffer)
transform = tf_buffer.lookup_transform("base_link",
poseStampedToTransform.header.frame_id, #source frame
rospy.Time(0), #get the tf at first available time
rospy.Duration(1.0))
pose_transformed = tf2_geometry_msgs.do_transform_pose(poseStampedToTransform, transform)
print("pose_transformed",pose_transformed.pose)
推荐阅读
- android - AuthorizationException: {"type":0,"code":3,"errorDescription":"Network error"} : Appauth
- regex - 提取多行正则表达式并在需要时解析换行符
- php - Yii2 迁移异常,没有驱动,但是模块已经安装
- python - 如何将科学计数值转换为浮点数
- c++ - 使用远程主机时 CLion 未正确突出显示语法
- r - 如何将动画图(使用 ggplot2 制作)转换为 HTML 文件?
- python - 使用 python eval() 读取 LaTeX
- django - 如何在 Django 中创建动态页面?
- tuya - 如何从具有凭据的 tuya api 访问用户设备列表?
- pandas - 使用 pandas 的累积运行回报