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
I'm in the process of moving the xyzi_image from the ROS code into libo3d3xx and in the process I am converting the data types as discussed here with @graugans@semsitivity Now that I am in the code, I realize that we can't implement as discussed. The reason being that the X Y Z data are 16-bit signed ints while the amplitude is 16-bit unsigned. I'm going to propose that we drop the amplitude from that data structure since it is already available as a cv::Mat via the AmplitudeImage() accessor. The new structure will simply be a cv::Mat encoding the spatial components of the point cloud stored as 16-bit signed ints.
This will have the biggest effect on any ROS users that currently use the xyzi_image (i.e., me) but I think this is the correct change to make for the long-term. Any objections? Another option would be to keep the amplitude data bundled with this data structure but store all of the data as 32-bit ints. Is there a preference?
The text was updated successfully, but these errors were encountered:
That was just a suggestion. Actually, expressing cartesian coordinates with an unsigned type is pretty impossible since the sign depends on the used axis convention. I realised the same thing after trying to rotate and translate those point to align them with my "detected floor". (my axis system choice being different than IFM and yours, x going to right, z for depth and y for up direction, setting then all my point positive according the origin position)
I think I have no more "global" suggestion concerning the xyzi_image, one will choose and convert to its own type depending the use case and constraints.
I'm in the process of moving the
xyzi_image
from the ROS code into libo3d3xx and in the process I am converting the data types as discussed here with @graugans @semsitivity Now that I am in the code, I realize that we can't implement as discussed. The reason being that the X Y Z data are 16-bit signed ints while the amplitude is 16-bit unsigned. I'm going to propose that we drop the amplitude from that data structure since it is already available as acv::Mat
via theAmplitudeImage()
accessor. The new structure will simply be acv::Mat
encoding the spatial components of the point cloud stored as 16-bit signed ints.This will have the biggest effect on any ROS users that currently use the
xyzi_image
(i.e., me) but I think this is the correct change to make for the long-term. Any objections? Another option would be to keep the amplitude data bundled with this data structure but store all of the data as 32-bit ints. Is there a preference?The text was updated successfully, but these errors were encountered: