Our project is to integrate Lidar system into virtual reality (unity). I could achieve that integration with ROS-bridge. Next step is to process the point cloud data before we send it to unity system.
- Lidar sensor velodyne VLP-16
- Ubuntu 18.4
- IDE: Pycharm (python)
- Point cloud processing: python point cloud library with ROS
- ros-bridge with unity system
Problem Without processing, there is only 1 second latency from sensor to unity visualization. But processing point-cloud data in ROS(pycharm) causes significant latency (around 5 seconds).
- I am using velodyne drives to convert raw data into pointcloud2 format. In the code for the processing, I subscribe this pointcloud2 message and convert it into PointXYZRGB format to apply pcl libraries.
- I first tested this sequence of data-type conversion without applying PCL.
raw data -> publish pointcloud2 message ->subscribe pointcloud2- > pointXYZRGB -> (processing) -> pointcloud2 message -> publish it.
- Without processing, I get over 5 seconds latency.
I understand that it would be better to receive raw data from sensor without converting into pointcloud2 messages. But it is very challenging for me to do it in python. I found one grabber example in c++. https://medium.com/@yohei.kajiwara/vlp16-c-quick-example-35b9ceea2059
But I am not sure what is the most reliable way. Please give me an advice on this issue.
Best regards
Seongsu Byeon