What is the difference between these 2 visualizers that are available with drake? When should I use one over another?
1 Answers
DrakeVisualizer was traditionally the main visualizer in Drake. Most of the core developers use it (alongside other tools like RViz); it can be faster and render a bit nicer. But it is slightly painful to add features to it, especially for non-core developers, and it has been painful to continue to upgrade and support for each platform. So it is likely that we will stop officially supporting it in the not-too-distant future.
We started working with Meshcat initially because I wanted a lightweight visualizer with zero install, that I could use with my teaching (students can render on their own machines with zero install the notebooks they are running on colab). It has some really nice features. For instance, it's very easy to push additional geometry (e.g. debugging visualization) on top of say a simulation. The only major limitation of it, really, is that we currently only include the python bindings for it, so you can't yet use it directly from c++. But that's on the roadmap: https://github.com/RobotLocomotion/drake/issues/13038
I believe that the transition away from DrakeVisualizer will perhaps start with getting Meshcat in C++, as well as making more public our internal tools/examples for interfacing with RViz.

- 4,703
- 1
- 7
- 10
-
Hi, are there any examples for using Drake with RViz available now? I want to try to use RViz for the visulization but I haven't find relevant examples. Thanks. – Chen Wang Mar 30 '22 at 02:30
-
@ChenWang, I think you can take a look at [this](https://github.com/sloretz/drake_ros2_demos) there seems to be an RVIZ example for robotic arm – fet.atas Mar 30 '22 at 20:20
-
@RussTedrake Is it still true that Meshcat is slower than DrakeVisualizer? I noticed DrakeVisualizer scales very poorly with resolution (gets much much slower) whereas Meshcat is invariant to resolution. – HoliInn Apr 18 '23 at 07:23
-
Meshcat has had a few updates that should make it faster (certainly the message passing should be faster than it was last year). One way that it is fundamentally different is that Meshcat always sends the geometry/texture map files over a network connection whereas DrakeVisualizer loads them directly from disk. This also makes Meshcat more versatile. BTW -- the transition of Meshcat into C++ was completed last year, and we now consider it our primary visualizer. – Russ Tedrake Apr 18 '23 at 13:26