@foxglove/rosmsg (英语)
ROS1 和 ROS2 信件定义解析器
导言
机器人操作系统(ROS) 定义用于描述数据类型的简化消息描述语言。 这个库解析了这些消息定义,并可以环绕它们返回到适合校验和生成的犬形字符串格式. 解析后的定义与其他库对接时,对序列化或去序列化有用.
此库支持两者 罗斯1号 财务报告和审定财务报表 报告2 消息定义.
ROS 1 定义使用法
import { parse, stringify } from "@foxglove/rosmsg";
const definitionStr = `# geometry_msgs/Pose
geometry_msgs/Point position
geometry_msgs/Quaternion orientation
===
MSG: geometry_msgs/Point
float64 x
float64 y
float64 z
===
MSG: geometry_msgs/Quaternion
float64 x
float64 y
float64 z
float64 w`;
const messageDefinition = parse(definitionStr);
// print the parsed message definition structure
console.log(JSON.stringify(messageDefinition, null, 2));
指纹 :
[
{
"definitions": [
{
"type": "geometry_msgs/Point",
"isArray": false,
"name": "position",
"isComplex": true
},
{
"type": "geometry_msgs/Quaternion",
"isArray": false,
"name": "orientation",
"isComplex": true
}
]
},
{
"name": "geometry_msgs/Point",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
}
]
},
{
"name": "geometry_msgs/Quaternion",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "w",
"isComplex": false
}
]
}
]
ROS 2 定义使用法
import { parse, stringify } from "@foxglove/rosmsg";
const definitionStr = `# geometry_msgs/msg/Pose
geometry_msgs/msg/Point position
geometry_msgs/msg/Quaternion orientation
===
MSG: geometry_msgs/msg/Point
float64 x
float64 y
float64 z
===
MSG: geometry_msgs/msg/Quaternion
float64 x
float64 y
float64 z
float64 w`;
const messageDefinition = parse(definitionStr, {ros2: true});
// stringify(messageDefinition) will return a canonical string, similar to
// _definitionStr_
// print the parsed message definition structure
console.log(JSON.stringify(messageDefinition, null, 2));
指纹 :
[
{
"definitions": [
{
"type": "geometry_msgs/msg/Point",
"isArray": false,
"name": "position",
"isComplex": true
},
{
"type": "geometry_msgs/msg/Quaternion",
"isArray": false,
"name": "orientation",
"isComplex": true
}
]
},
{
"name": "geometry_msgs/msg/Point",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
}
]
},
{
"name": "geometry_msgs/msg/Quaternion",
"definitions": [
{
"type": "float64",
"isArray": false,
"name": "x",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "y",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "z",
"isComplex": false
},
{
"type": "float64",
"isArray": false,
"name": "w",
"isComplex": false
}
]
}
]
ROS 2 IDL 支助
见(@foxglove/ros2idl-parser[https://github.com/foxglove/omgidl/packages/ros2idl-parser 页面存档备份,存于互联网档案馆执行 ros2idl 计划支持.
许可证
@foxglove/rosmsg 获得许可证 MIT 许可证。 。 。 .
释放
- 运行
yarn version --[major|minor|patch]切换到凸起版本 - 运行
git push && git push --tags以驱动新标签 - GitHub 动作会照顾剩下的
保持联系
加入我们 Discord 社区 问问题 分享反馈 随时了解我们团队的工作.