ManipulationStation 示例中的 RGBD 图像到点云

RGBD image to Pointcloud in ManipulationStation example

在当前的commit, ManipulationStation used DepthImageToPointCloud to project the point cloud from color image and depth image input. However, in the documentation中表示

Note that if a color image is provided, it must be in the same frame as the depth image.

据我了解,颜色和深度图像输入都来自 RgbdSensor,它是根据 MakeD415CameraModel 的信息创建的。 C和D都是两个差分帧。

我认为生成的点云着色有误。我在类似的设置上测试了它,但不完全是 MakeD415CameraModel。我目前通过在 MakeD415CameraModel 中强制 C 和 D 为相同帧来解决这个问题。

我的问题:drake有没有像kinect library一样在不同帧的深度图像和彩色图像之间进行映射的方法?这毕竟是模拟,也许这有点过分了?

P.S。我正在尝试模拟来自 Azure Kinect 的图像;因此问题。

问题 https://github.com/RobotLocomotion/drake/issues/12125 讨论了这个问题,并且有一个解决方法(以防您的模拟可能出现错误,并且深度和相机帧相同,即使这与真实传感器略有不同)或指向不同类型解决方案的指针(cv2.registerDepth 算法)。最终,在 drake 中内置类似 registerDepth 的功能会很好,但截至今天,还没有。