You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/// \return odometry result, with (4, 4) optimized transformation matrix from
/// source to target, inlier ratio, and fitness.
, RGBDOdometryMultiScale and hence rgbd_odometry_multi_scale estimate the transformation from source to target, or in other words, it gives the pose of the target data in the source frame.
The estimated transformation sets the target (rgbd2) 1cm into the rgbd1 frame.
Expected behavior
The fake data has the RGBD image 1 at 1 meter distance (1000 units) of a plane and RGBD image 2 at 1 meter and 1cm distance (1010 units). I.e. pointing at a plane, the camera would move 1cm backward from image 1 to image 2. Using the OpenCV camera frame convention (which seems to be used by Open3D too www.open3d.org/docs/0.7.0/python_api/open3d.geometry.create_point_cloud_from_depth_image.html), where z is pointing forward, this would mean a motion in negative z direction by 1cm.
With source = rgbd1 and target = rgbd2, the transformation from source to target should be -1cm in z direction, but the estimated transformation is the opposite.
Open3D, Python and System information
- Operating system: Ubuntu 24.04
- Python version: Python 3.12
- Open3D version: output from python: 0.19.0
- System architecture: x86
- How did you install Open3D?: pip
Additional information
The ComputeOdometryResultPointToPlane mentions that the delta transformation is "target_to_source":
Checklist
main
branch).Describe the issue
According to the RGBD odometry documentation at
Open3D/cpp/open3d/t/pipelines/odometry/RGBDOdometry.h
Lines 143 to 144 in 203ac47
RGBDOdometryMultiScale
and hencergbd_odometry_multi_scale
estimate the transformation from source to target, or in other words, it gives the pose of the target data in the source frame.But it seems to estimate the inverse of this.
Steps to reproduce the bug
Error message
The estimated transformation sets the target (rgbd2) 1cm into the rgbd1 frame.
Expected behavior
The fake data has the RGBD image 1 at 1 meter distance (1000 units) of a plane and RGBD image 2 at 1 meter and 1cm distance (1010 units). I.e. pointing at a plane, the camera would move 1cm backward from image 1 to image 2. Using the OpenCV camera frame convention (which seems to be used by Open3D too www.open3d.org/docs/0.7.0/python_api/open3d.geometry.create_point_cloud_from_depth_image.html), where z is pointing forward, this would mean a motion in negative z direction by 1cm.
With
source = rgbd1
andtarget = rgbd2
, the transformation from source to target should be -1cm in z direction, but the estimated transformation is the opposite.Open3D, Python and System information
Additional information
The
ComputeOdometryResultPointToPlane
mentions that the delta transformation is "target_to_source":Open3D/cpp/open3d/t/pipelines/odometry/RGBDOdometry.cpp
Line 400 in 203ac47
The text was updated successfully, but these errors were encountered: