ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
So it looks like that the problem has been solved (at least for now) Many thanks to Martin Günther I have been working with pcd files extracted from kinect. Either if pcds are recorded from the rgb or depth frame, this understanding apply (rgb and depth keywords are interchangable)
Points are represented under the frame /openni_rgb_optical_frame, which is a child of openni_rgb_frame The axis for /openni_rgb_optical_frame are: x-right, y-downwards, z-forward The axis for /openni_rgb_frame are: x-forward, y-left, z-upward ("standard understanding of coordinates in ros") This can be seen clearly in /tf topic under rviz
now considering the transformation between the two frames through "rostopic echo /tf", one can see that there's a rotation between the two frames with the following values: x: -0.499999841466 y: 0.499601836645 z: -0.499999841466 w: 0.500398163355
so we need to rotate the point cloud in the opoosite direction of these values. something like that
Quaternion<float> q;
q = Quaternion<float> (-0.500398163355, 0.499999841466, -0.499601836645, 0.499999841466);
pcl::transformPointCloud (tmpCloud, source, Eigen::Vector3f (0, 0, 0), q);
That's it, now it looks like the coordinates are again in the standard ros coordinate system
Regards and thanks again
2 | formatting |
So it looks like that the problem has been solved (at least for now) Many thanks to Martin Günther I have been working with pcd files extracted from kinect. Either if pcds are recorded from the rgb or depth frame, this understanding apply (rgb and depth keywords are interchangable)
Points are represented under the frame /openni_rgb_optical_frame, which is a child of openni_rgb_frame
openni_rgb_frame
This can be seen clearly in /tf topic under rviz
now considering the transformation between the two frames through "rostopic echo /tf", one can see that there's a rotation between the two frames with the following values: x: -0.499999841466 y: 0.499601836645 z: -0.499999841466 w: 0.500398163355
so we need to rotate the point cloud in the opoosite direction of these values. something like that
Quaternion<float> q;
q = Quaternion<float> (-0.500398163355, 0.499999841466, -0.499601836645, 0.499999841466);
pcl::transformPointCloud (tmpCloud, source, Eigen::Vector3f (0, 0, 0), q);
That's it, now it looks like the coordinates are again in the standard ros coordinate system
Regards and thanks again