Skip to content
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

How to Project Ouster_signal image into Ouster_Point_cloud. #318

Closed
imdsafi09 opened this issue Mar 28, 2024 · 6 comments
Closed

How to Project Ouster_signal image into Ouster_Point_cloud. #318

imdsafi09 opened this issue Mar 28, 2024 · 6 comments
Assignees
Labels
question Further information is requested

Comments

@imdsafi09
Copy link

Hi!

I want to create a Python ROS node that takes as input the /ouster/Signal_image and /Ouster_Point cloud published by the Ouster ROS driver and projects the signal image on the point cloud. In the Ouster Python SDK, they explain how to use it with a pre-computed XYZ look-up table but I want to integrate with ROS. Could you please let me know how it could be possible?
Ouster_lidar-128
Best regards

@imdsafi09 imdsafi09 added the question Further information is requested label Mar 28, 2024
@Samahu
Copy link
Contributor

Samahu commented Apr 29, 2024

Hi @imdsafi09, are you looking for a C++ or python implementation?

@Samahu Samahu self-assigned this Apr 29, 2024
@imdsafi09
Copy link
Author

imdsafi09 commented Apr 29, 2024

Hi @Samahu,
Thank you for your response. I would prefer Python but C++ will work equally, and if you can provide integration with ROS2 it will make my job much easier.
regards,

@Samahu
Copy link
Contributor

Samahu commented Apr 30, 2024

Hi @imdsafi09, please refer to this example that I compiled to you and other users on how to consume the range image and convert into a point cloud using ros+python. For C++ you can refer to the driver code and see how the point cloud is being composed.

@Samahu Samahu closed this as completed Apr 30, 2024
@imdsafi09
Copy link
Author

Hi, @Samahu,
Thank you for your quick response. However, I want to perform a specific vision task on a signal image, such as object detection, and then project the results into a point cloud coordinate to be visible on top of the point cloud. Please guide me through how I can use your developed scripts to solve this problem.

Regards,

@Samahu
Copy link
Contributor

Samahu commented May 1, 2024

@imdsafi09 you are asking for very specific interactions with the software which is a little beyond the scope of this GitHub issues portal.

In any case, if you are interested in processing the signal image then all you need to change from the example I shared with you is to create another subscription to the /signal_image topic and do your computer vision tasks against it. However, in order to merge the results with the point cloud you will also need the need the values from the range image at the same time. This adds a bit of complexity to the problem, still you can achieve by utilizing ROS's message filters mechanism which allows you to combine multiple topics into one callback. Then you can process both images in the same callback and then rely on the example I provided to generate the altered point cloud.

I am not sure if you are aware of ouster-yolov5-demo which provides starter materials on how to process the sensor generate output as 2D images and also update the output.

Hope this helps.

@imdsafi09
Copy link
Author

imdsafi09 commented May 1, 2024

Thank you for all the insightful suggestions. I am already following ouster-yolov5-demo
and trying to do precisely the same thing but with a "/signal_image" topic rather than a range image. However, I will look into it further, as you suggested.

Regards,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants