Ubuntu Jammy下替代drake_visualizer评估仿真实时率的方案问询
仿真实时率评估的替代方案(Ubuntu Jammy + Meldis)
针对你在Ubuntu Jammy中替换drake_visualizer后需要评估仿真实时率的需求,以下是几个等效且更友好的方案:
Meldis内置状态栏监控
Meldis默认在界面底部状态栏显示实时率(Real-Time Rate),数值含义和drake_visualizer完全一致——即仿真步长与实际耗时的比值,直接反映仿真的实时性能。如果状态栏未显示,可通过顶部菜单View > Show Status Bar开启。命令行轻量监控工具
若偏好命令行工作流,可使用Drake提供的drake-monitor工具(通过bazel run @drake//tools:monitor启动),它会持续输出仿真的实时率、系统负载等关键指标,无需打开图形界面。自定义LCM订阅脚本
针对lcm-spy干扰性强的问题,你可以写一个极简Python脚本,仅订阅你关注的仿真状态通道,精准计算实时率。示例代码如下:import lcm import time from drake_lcmtypes.drake import SystemSnapshot last_timestamp = None rate_window = [] SIMULATION_STEP = 0.01 # 根据你的仿真配置调整步长 def snapshot_handler(channel, data): global last_timestamp current_time = time.time() if last_timestamp: elapsed_real = current_time - last_timestamp real_time_rate = SIMULATION_STEP / elapsed_real rate_window.append(real_time_rate) # 每5次采样输出一次平均率 if len(rate_window) == 5: avg_rate = sum(rate_window) / len(rate_window) print(f"Avg Real-Time Rate: {avg_rate:.2f}") rate_window.clear() last_timestamp = current_time lc = lcm.LCM() lc.subscribe("DRAKE_SYSTEM_SNAPSHOT", snapshot_handler) try: while True: lc.handle_timeout(100) except KeyboardInterrupt: print("\nMonitoring stopped.")替换
SIMULATION_STEP为你的实际仿真步长,订阅通道可根据需求调整(比如自定义的仿真状态发布通道),这样只会聚焦目标数据,不会产生多余干扰。
内容的提问来源于stack exchange,提问作者Dale McConachie
相关产品推荐
相关产品推荐

