Skip to content

dsh-ros2 v0.9.0

Choose a tag to compare

@StvLi StvLi released this 20 Aug 12:13
· 33 commits to main since this release

Performance: offscreen motion rendering 5.4x faster

As an embodied-agent base plugin dsh-ros2 must be invoked very quickly. The offscreen render of robot motion was the bottleneck (1.9 Hz steady frame rate for the 2.76M-triangle lite_urdf scene).

Two key optimizations (verified)

  1. Render-dedicated low-poly meshes - new scripts/simplify_visual_meshes.py (open3d quadric decimation, 2.76M -> 0.39M tris): 1.9 -> 7.1 Hz, RSS 962 -> 386 MB, mesh load ~90s -> ~40s, rendered content 99.7% preserved. (Do NOT use fast_simplification - its output loses ~70% of rendered content in OGRE.)
  2. Direct pixel read - rviz_offscreen_node reads the OGRE render target via copyContentsToMemory instead of PNG capture + decode: capture 38ms -> 1-2ms/frame, frame 74ms -> 31ms, frame rate 7.1 -> 10.2 Hz (at the rate cap).

Net effect

  • Steady motion-render frame rate 1.9 -> 10.2 Hz (5.4x)
  • RSS 962 -> 386 MB (2.5x less), mesh load ~90s -> ~40s
  • Pixel output identical to the PNG path (verified)
  • Per-100-frame frame-timing log for frame-budget observability

Docs: architecture.md 5.1, robot-state-vision-test.md 8, README, CHANGELOG.