Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在ROS中,如何将姿势从kinect帧转换为PR2';s的基本链接框架?_Python_Ros_Coordinate Transformation - Fatal编程技术网

Python 在ROS中,如何将姿势从kinect帧转换为PR2';s的基本链接框架?

Python 在ROS中,如何将姿势从kinect帧转换为PR2';s的基本链接框架?,python,ros,coordinate-transformation,Python,Ros,Coordinate Transformation,我对tf感到困惑。我正在做一个项目。我的视觉搭档正在给我一个物体在摄像机框架中的姿势,或者在运行机器人时,机器人的Kinect框架(PR2机器人)。现在,为了抓住那个物体,我需要在机器人的基本链接框架中获得姿势,因为这个框架被moveit接口使用 起初,我的想法是,我可以使用tf的查找变换方法来实现这一点,但现在我知道,这只会在不同帧之间进行变换。为了得到我所需要的,即对象在基本链接帧中的位置,我应该使用transformListener方法。我仍然对两者之间的区别感到困惑。我正在使用pytho

我对tf感到困惑。我正在做一个项目。我的视觉搭档正在给我一个物体在摄像机框架中的姿势,或者在运行机器人时,机器人的Kinect框架(PR2机器人)。现在,为了抓住那个物体,我需要在机器人的基本链接框架中获得姿势,因为这个框架被moveit接口使用


起初,我的想法是,我可以使用tf的查找变换方法来实现这一点,但现在我知道,这只会在不同帧之间进行变换。为了得到我所需要的,即对象在基本链接帧中的位置,我应该使用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)

我得到了答案,就是这样:

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)