当前位置: 首页 > news >正文

零依赖使用mcap记录ros消息

背景

使用mcap配合foxglove做可视化,需要渲染urdf模型使用JointStates驱动。
由于foxglove stuido闭源前最后一个版本还未上线foxglove.JointStates格式。
只能退而求其次转化为sensors_msg/msg/JointState进行保存。
希望用最少的依赖(不安装完整ros2)完成sensors_msg/msg/JointState消息记录。

尝试

期间尝试过mcap-ros2-support-fast配合small-mcap方案,保存不定长度关节角总遇到cdr反序列化问题。
偶然间发现了mcap官方示例,通过声明消息定义规避完整ROS2依赖。
仅需安装pip install mcap-ros2-support即可完成写入。

代码

#!/usr/bin/env python3
"""Minimal example: Save one JointState message to MCAP."""from mcap_ros2.writer import Writer
import time# Schema definition
SCHEMA = """std_msgs/Header header
string[] name
float64[] position
float64[] velocity
float64[] effort================================================================================
MSG: std_msgs/Header
uint32 seq
builtin_interfaces/Time stamp
string frame_id================================================================================
MSG: builtin_interfaces/Time
int32 sec
uint32 nanosec"""with Writer("simple_joint_state.mcap") as writer:# Add schemajointstate_schema = writer.register_msgdef("sensor_msgs/msg/JointState", SCHEMA)   # Create messagetimestamp = time.time_ns()msg = {"header": {"seq": 0,"stamp": {"sec": timestamp // 1_000_000_000, "nanosec": timestamp % 1_000_000_000},"frame_id": "world"},"name": ["joint1", "joint2", "joint3"],"position": [1.0, 2.0, 3.0],"velocity": [0.1, 0.2, 0.3],"effort": [0.0, 0.0, 0.0]}# Write messagewriter.write_message(topic="/joint_states", schema=jointstate_schema, message=msg, log_time=timestamp, publish_time=timestamp, sequence=0)

参考

robotic-tools/mcap-ros2-support-fast at main · mrkbac/robotic-tools
robotic-tools/small-mcap at main · mrkbac/robotic-tools
Working with ROS 2 Messages — mcap documentation

http://www.gsyq.cn/news/1338407.html

相关文章:

  • Scroll Reverser终极指南:3分钟彻底解决Mac滚动方向冲突难题
  • 收藏!小白也能看懂,AI Agent到底是个啥?它将如何改变你的工作与生活?
  • 告别蓝桥杯单片机‘玄学’调试:用PCF8591玩转AD/DA转换与AT24C02存储的保姆级教程
  • UE5材质蓝图新手避坑指南:别再死记硬背,用这5个核心节点搞定90%效果
  • HS2-HF_Patch终极指南:如何一键解锁Honey Select 2完整汉化与去码功能
  • 太原采购/质量/项目岗考证避坑:众智商学院6证合报,一站式搞定CPPM/PMP/SCMP/六西格玛/中级经济师/CCAA - 众智商学院课程中心
  • 戴尔笔记本风扇控制终极指南:告别过热与噪音困扰的完整解决方案
  • QrazyBox:二维码的“数字手术刀“,让损坏的QR码起死回生
  • Display Driver Uninstaller技术解析:彻底清理显卡驱动的专业解决方案
  • YOLOv8n-face人脸检测模型终极实战:从训练到跨平台部署的完整指南
  • AICoverGen实战指南:5步掌握AI翻唱制作的核心技术
  • 高效解决PL2303兼容性问题:Windows 10/11专业级驱动配置实战指南
  • 耗子拿枪了:AI如何把漏洞挖掘的门槛从“院士”拉低到“脚本小子”
  • 别再手动调音量了!用Unity Audio Mixer Snapshot一键切换游戏‘声音场景’
  • League Akari终极指南:英雄联盟玩家的智能客户端工具完整教程
  • 5分钟掌握DistroAV:告别复杂布线,用网络视频传输重塑你的OBS直播工作流
  • 音频智能分割利器:如何用Audio Slicer一键处理海量音频文件?
  • 5分钟快速激活Adobe全系列软件的终极指南:Adobe-GenP工具详解
  • Mac微信插件终极指南:消息防撤回、多开登录与高效工作流完整解决方案
  • Hotkey Detective:3分钟找出Windows热键冲突元凶,重获键盘控制权
  • 别再为答辩 PPT 掉头发了!paperxie AI PPT 生成器,一键解锁导师点赞的毕业答辩稿
  • Cursor Pro破解工具:如何绕过限制实现永久免费使用AI编程助手
  • 2026 年库尔勒壁挂炉销售维修全攻略:选购、安装、维保、避坑一站式指南 - GrowthUME
  • m4s-converter:5秒完成B站缓存视频转换的完整指南
  • GNSS数据处理不求人:手把手教你用GREAT-UPD软件生成自己的UPD产品(附完整配置流程)
  • Windows界面自由定制:ExplorerPatcher让你的操作系统真正属于你
  • 2026 海南给排水・市政基建・家装农牧・通信电力管道甄选清单,PE/PVC/PPR/ 克拉波纹管优质厂商实用对比参考 - 海棠依旧大
  • 英雄联盟国服换肤神器:R3nzSkin完整使用指南
  • 从SPI到QSPI:手把手教你用Verilog在FPGA上实现四线高速数据传输(附仿真对比)
  • 为什么92%的设计师生成的纹理总显“塑料感”?揭秘Midjourney纹理权重分配的黄金比例(1.83:2.47:0.91)