Summary

A detailed comparison of three robotics visualization tools — RViz, Foxglove, and Rerun — across pricing, platform support, ROS integration, performance with large datasets, UI, extensibility, and analysis capabilities. The article is written from the perspective of ReductStore (a data logging platform) and aims to help developers choose the right tool for their workflow.

詳細比較 RViz、Foxglove 和 Rerun 三款機器人視覺化工具,涵蓋定價、平台支援、ROS 整合、大數據集性能、UI、擴展性和分析能力,協助開發者選擇適合工具。

Key Points

  • RViz: classic, ROS-native, excellent for real-time debug/interactive markers; Linux-first, C++ plugins, no remote collaboration, performance degrades with large datasets.
  • Foxglove: modern cross-platform (desktop + web), multi-user collaboration, MCAP-based, best for team data analysis and time-synchronized playback; proprietary core with paid tiers.
  • Rerun: native desktop, Rust/WGPU, highest performance for large datasets, Python SDK, programmatic-first; no built-in multi-user, no native URDF/occupancy grid support.
  • Each tool occupies a distinct niche: RViz for live ROS dev, Foxglove for collaborative analysis, Rerun for high-throughput programmatic pipelines.
  • All three support sharing recorded data (rosbag, MCAP, .rrd respectively).

Insights

The article is partially promotional (written by ReductStore), but the per-tool analysis is detailed and factual. The most useful framing: these tools are complementary, not competing — many teams use all three at different workflow stages. Rerun’s Rust-based architecture gives it a clear performance edge for dense sensor data, but its lack of native ROS bridge (requires custom nodes) and no URDF support make it a complement to RViz rather than a replacement. Foxglove’s browser version hitting JS memory limits is a real practical concern for large bag file review.

Limitations

各工具的核心限制,按實際影響分類整理:

RViz / RViz 2

  • 無時間軸分析或 time-series 繪圖(需外接 rqt_plot、PlotJuggler)
  • 無條件過濾或跨 topic 時間同步(需 message_filters 節點)
  • 無內建錄影或資料匯出,僅限手動截圖
  • 大型資料集(dense point cloud、高頻 topic)會出現渲染延遲與高 CPU/GPU 使用率
  • 不合適 ROS 生態系外的資料,依賴完整 ROS 環境

Foxglove

  • 瀏覽器版受 JS 單執行緒與記憶體上限制約,大型 bag 或高頻 3D 資料易掉幀
  • 不支援 RViz 式的 interactive 3D markers(無法直接拖動目標點、調整 pose)
  • 缺乏 PlotJuggler 等級的訊號處理功能(移動平均、微分、自訂數學運算)
  • 無自動異常偵測,依賴使用者手動發現 NaN/infinity 等問題
  • 核心為專有軟體,進階協作與雲端功能需付費

Rerun

  • 無原生 URDF robot model 完整渲染與 interactive TF tree(有社群範例但不完整)
  • 無法直接開啟 ROS bag 檔(需 rosbag play 轉發至 Rerun,需自訂橋接節點)
  • 不支援 occupancy grid / costmap / SLAM map 原生視覺化
  • 缺乏即時多用戶協作(無法像 Foxglove 共享雲端即時 session)
  • 無內建統計分析或 anomaly detection,純視覺化導向
  • 核心以 Rust + egui 撰寫,對不熟悉 Rust 的開發者有學習門檻,低階客製化受限

跨工具共同盲點

  • 三者均未提供 production-grade 的資料長期儲存方案(定位為視覺化層,而非 logging 層)
  • 無一工具原生支援跨機器人車隊的統一觀察介面
  • 效能基準(benchmark)資料稀少,跨工具比較多依賴社群回饋而非正式測試

Connections

Raw Excerpt

Choosing the right tool depends on your context: use RViz for real-time ROS development and interactive debugging, Foxglove for collaborative data analysis, time-synchronized playback, and remote team workflows, and Rerun for fast, developer-centric visualization of structured data in programmatic pipelines.