我对 ROS/Gazebo 世界完全陌生;这可能是一个简单的问题,但我找不到一个好的答案。
我在 Gazebo 场景中有一个模拟深度相机(Kinect)。经过一些阐述,我在像素坐标中的 RGB 图像中得到了一个兴趣点,我想在世界框架中检索它的 3D 坐标。我不明白该怎么做。
我已经尝试补偿 CameraInfo 消息给出的失真。我尝试将 PointCloud 与 pcl 库一起使用,将点检索为cloud.at(x,y)
.
在这两种情况下,坐标都不正确(我在程序给出的坐标中放了一个小球体,以便检查它是否正确)。
每一个帮助将不胜感激。非常感谢。
编辑:从 PointCloud 开始,我尝试找到点的坐标,如下所示:
point = cloud.at(xInPixel, yInPixel);
point.x = point.x + cameraPos.x;
point.y = point.y + cameraPos.y;
point.z = point.z - cameraPos.z;
但我得到的 x,y,z 坐标point.x
似乎不正确。相机的俯仰角为 pi/2,因此对于地面上的点。我显然错过了一些东西。