Streaming and visualizing large point clouds with rosbridge
Hey, so we've got a lidar sensor which produces a pretty large number of points. We're using that sensor for a SLAM algorithm and we want a way to visualize the whole map being generated by the SLAM in real-time ( with decay time like in rviz where I can keep the old points from the previous scans and increment and add to them ), but obviously filtered and downsampled a bit to make it more manageable to render. We're still debating whether to use a web app or a mobile app, for the mobile app the three best solutions I think I've come across so far would be Unity, Qt or Kivy. So I'm asking for a little bit of general advice, I guess, as to how to approach this, since we need to be able to handle a decent chunk of data being thrown into the app itself from ROS. I've tried the rosbridge_suite and with the very basic examples I was able to find I managed to get a cloud to visualize with a websocket and a tiny web app, but the performance wasn't great and it was eating a lot of CPU power on the client-side, I assume to process the incoming messages and render them? I did a little bit of research and found a few possible solutions to improve the performance like throttling the publisher to just publish the map less frequently, I saw some people trying to use different methods for message compression and serialization like BSON, and I also was debating if it's possible to visualize my map on the server-side in rviz and then send that to the client as a sort of 'screen-sharing' or stream so the client doesn't have to process all those points, but I just don't have all the knowledge necessary in this case to come up with the best solution, so that's why I'm here asking for your support! Thanks in advance