isl-org / isl-org/Open3D

Tensor reconstruction system supports only Float64 extrinsics

Open
#4,832 10 comments 0 reactions 0 assignees View on GitHub
question reconstruction
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.