-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Faster Point Cloud Visualizers #534
base: develop
Are you sure you want to change the base?
Conversation
colorToDepthTransform.setAndInvert(colorImage.getPose()); | ||
colorToDepthTransform.multiply(depthPose); | ||
LibGDXTools.toLibGDX(colorToDepthTransform, tempColorTransform, libGDXColorTransform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes a transform issue. Seems to me that we're using a color to depth transform, not depth to color.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This guy replaces the RDXROS2ColoredPointCloudVisualizer
. I'm not 100% certain about the name. What do we think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about removing the RawImage part of the name?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's what I was thinking too. It uses the RDXRawImagePointCloudVisualizer
, but the API doesn't expose any RawImages
so I think it makes sense to remove that part of the name. I'll do that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahhh but RDXROS2PointCloudVisualizer
already exists. Should I just steal the RDXROS2ColoredPointCloudVisualizer
name instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lol sure
@@ -31,6 +39,30 @@ public ImageMessageDecoder() | |||
} | |||
} | |||
|
|||
public RawImage decodeMessage(ImageMessage messageToDecode) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure why I didn't make a method that returns a RawImage
in the first place. Only dilemma I have is whether to use a CPU or GPU mat. I went with CPU since this class is used on the UI side. Should I add a method that uses GPU mat too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think GPU is needed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess in the method name you should put CPU
@@ -101,7 +101,7 @@ void main() | |||
#ifdef INPUT_COLOR_IMAGE | |||
else if (u_coloringMethod == COLOR_FROM_IMAGE) | |||
{ | |||
vec3 colorFramePoint = transformPoint3D(depthFramePoint, u_depthToColorTransform); | |||
vec3 colorFramePoint = transformPoint3D(depthFramePoint, u_colorToDepthTransform); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you've got it backwards. You're converting the point from depth frame to color frame. The transform that does that should be called depthToColorTransform.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm that's true. I'm bad at this stuff so I really don't understand what I'm doing here hahaha. I'll change the names back
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can explain on the whiteboard whenever
This PR introduces an
RDXRawImagePointCloudVisualizer
which uses theRDXRawImagePointCloudRenderer
. This visualizer also matches up color and depth images based on acquisition time to eliminate de-sync between the two.This PR also replaces the old
RDXROS2ColoredPointCloudVisualizer
with a newRDXROS2RawImagePointCloudVisualizer
.Some other helpful methods are added to
TimeTools
andImageMessageDecoder
.Video of the new visualizer:
2024-12-13.15-36-00.mp4