Extrinsics in RGBD integration
Willyzw opened this issue · 3 comments
Hallo, while trying out the example for RGB-D image based integration, I notice that the extrinsic/global poses are inverted. Since normally the global poses are given as camera to world
, shall I interpret the inverted pose as world to camera
transformation?
Lets take an example, the global pose is inverted here for scannet dataset.
Then the RGBD point cloud is transformed using the inverted pose here
vdbfusion/examples/python/datasets/scannet.py
Lines 61 to 63 in 40ad302
So far is fine, as I vaguely remember open3d
indeed assumes an extrinsic from world to camera. However, this inverted pose is further fed to the integration pipeline then apparently regarded as the frame origin. I am wondering whether this is really the purpose?
Hello @Willyzw,
Honestly, I can't recall at this exact moment why we inverted the pose there. I guess because the scannet poses might be given on the world to the camera frame. In any case, this is a totally valid question, the good news is that if this is not working for your application you only need to change the "application code", which in this example is a data loader.
The VDBFusion
pipeline only expects globally aligned point clouds:
How you get those point clouds, is not of the concern of the pipeline ;)
Please let me know if this answers your question.
Thanks for the reply. Yes it solve my confusion. The interface expects the point clouds as well as the origins in global frame. Thus by contrast to open3d
, which assumes an extrinsic pose from global to local frame, the dataloader needs to return normal uninverted
pose.
Hey @Willyzw , I'm also trying to use an RGBD sensor instead of Lidar. Could you give a rough outline of steps you used. Thanks!