I'm developing an application for which I need to load and display dozens of 3D meshes (.obj files or similar) in RViz. Things are alright with a small number of objects. But, when there are lots of them, RViz struggles to maintain FPS. It actually starts off with a pretty medium FPS (20-30) but gradually it drops (to near 0).
Currently, I'm regularly publishing markers and marker arrays on some topics with attributes like type = 10 (MESH_RESOURCE)
, action = 0 (ADD)
and mesh_resource = "path/to/3d.obj"
and each object has fixed namespace
and id
in the marker message to use to probably later update its pose.
I thought maybe passing the 3D file address is slowing RViz to get, load and render the content of the object file. So, maybe preloading the content of the file and reusing it every time might save RViz some time and increase render speed. But, I couldn't find any way for that. So, are there any ways or techniques to improve the FPS and make it easier for RViz to render stuff?
I'm on Ubuntu 22.04 with ROS2 humble. Thanks!