Tensor reconstruction system supports only Float64 extrinsics
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
### Checklist
- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).
### My Question
Hi, I'm using the tensor reconstruction system and I've noticed the transformation from the poses are not passed in correctly.
After some digging, I've noticed the reconstruction system accepts only Float64 extrinsic values:
```C++
// Open3D/cpp/open3d/t/geometry/Utility.h
if (extrinsic.GetDtype() != core::Dtype::Float64) {
utility::LogError("Unsupported extrinsic matrix dtype {}",
extrinsic.GetDtype().ToString());
}
```
My transformations are in Float64, but with this dtype, all of the values "collapse" into a single point and the camera just rotates in one place (since only the rotation values in the extrinsic are correct).
If I create a PointCloud with the transformation values passed in as the positions casted into Float32, I can see the pose graph just fine, with Float64 I only see one point. As mentioned, I cannot pass Float32 into the reconstruction pipeline, namely
when calling:
``
frustum_block_coords = vbg.compute_unique_block_coordinates(depth, intrinsic, extrinsic)``
(even with the dtype Float64 specified)
Any solution/workaround for this?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.