How can visualizationmarkers in isaaclab achieve the same effect as debug_draw in isaacsim, where existing markers are not changed with each drawing?

Isaac Sim Version

[ ✔] 4.2.0
4.1.0
4.0.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Isaac Lab Version (if applicable)

[✔] 1.2
1.1
1.0
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
[✔] Windows 10
Other (please specify):

GPU Information

  • Model: 2080ti
  • Driver Version: 565.90

Topic Description

Detailed Description

I want to achieve the effect in isaaclab where the markers move with a translating artifact, and the markers can be captured by the camera and used for reinforcement learning training. In each simulation frame, I would move the existing marker coordinates and then add new marker coordinates. visualizationmarkers directly inputs all coordinates, while debug_draw clears the existing markers before displaying new ones. When the number of markers exceeds 10,000, both methods become very laggy. The current solution is to keep the artifact stationary, move the robot and the scene, and then use debug_draw to input only the new marker coordinates each time. The problem now is that the display effect of debug_draw is not satisfactory, while visualizationmarkers is too laggy. In the source code, the method self._instancer_manager.GetPositionsAttr().Set(Vt.Vec3fArray.FromNumpy(translations)) is not clear to me after checking the USD documentation. I want to ask if it can achieve this effect.

Steps to Reproduce

  1. visualizationmarkers:
            all_sampled_data = torch.cat((all_sampled_data, sampled_data), dim=0)
            if all_sampled_data.numel() > 0:    
                 paint_marker.visualize(translations=all_sampled_data)
  1. debug_draw:
            data_list = sampled_data.tolist()
            tuple_list = [tuple(item) for item in data_list]
            N=len(tuple_list)
            if N > 0:    
                draw.draw_points(tuple_list, colors*N, sizes*N)

You should consider point instances with a cone, that should give you the middle ground you need. I cant remember if you can send a quat to an instance? also have you read the below?

https://isaac-sim.github.io/IsaacLab/main/source/how-to/draw_markers.html