std_msgs 消息详解
这篇文档梳理当前仓库中所有std_msgs::*消息类型,内容以源码中的消息模板和 JSON Schema 为准。
目标:
- 人能快速查字段
- AI 能直接提取结构和含义
- 内容尽量简单直接
说明:
- 本文主要依据
spirems/json_msgs/std_msgs/*.json(消息初值) - 同时参考
spirems/json_schemas/std_msgs/*.json(消息类型说明)
1. 消息总览
当前源码中共有 11 个std_msgs消息:
| 消息类型 | 说明 |
|---|---|
std_msgs::Boolean | 布尔值 |
std_msgs::BooleanMultiArray | 布尔数组 |
std_msgs::Clock | 时钟(仅时间戳) |
std_msgs::KeyValuePair | 键值对 |
std_msgs::Log | 日志消息 |
std_msgs::Null | 空消息 |
std_msgs::Number | 数值(浮点) |
std_msgs::NumberMultiArray | 数值数组 |
std_msgs::String | 字符串 |
std_msgs::StringMultiArray | 字符串数组 |
std_msgs::SystemStatus | 系统状态监控 |
2. 通用约定
2.1type
每个消息模板里都有:
"type":"std_msgs::某个类型"作用:标识消息类型,便于运行时分发和校验。
2.2timestamp
所有std_msgs消息都带:
"timestamp":0.0含义:时间戳,单位是秒(Unix 时间)。初值为0.0。
3. 消息详解
3.1 Boolean — 布尔值
用途:传递单个布尔状态(开关、标志位等)。
初值模板(spirems/json_msgs/std_msgs/Boolean.json):
{"type":"std_msgs::Boolean","timestamp":0.0,"data":false}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::Boolean" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | bool | false | 布尔值 |
3.2 BooleanMultiArray — 布尔数组
用途:传递多个布尔值,如批量标志位。
初值模板(spirems/json_msgs/std_msgs/BooleanMultiArray.json):
{"type":"std_msgs::BooleanMultiArray","timestamp":0.0,"data":[false]}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::BooleanMultiArray" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | bool[] | [false] | 布尔数组 |
3.3 Clock — 时钟
用途:传递时间信息本身,无额外数据载荷。
初值模板(spirems/json_msgs/std_msgs/Clock.json):
{"type":"std_msgs::Clock","timestamp":0.0}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::Clock" | 消息类型标识 |
timestamp | number | 0.0 | 当前时钟值(秒) |
注意:此消息仅有
type和timestamp,无data字段。时钟信息即timestamp本身。
3.4 KeyValuePair — 键值对
用途:传递通用键值对数据(参数、配置、属性等)。
初值模板(spirems/json_msgs/std_msgs/KeyValuePair.json):
{"type":"std_msgs::KeyValuePair","timestamp":0.0,"key":"","value":""}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::KeyValuePair" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
key | string | "" | 键名 |
value | string | "" | 值(字符串形式) |
3.5 Log — 日志消息
用途:传递日志信息,包含级别、内容、来源文件和行号。
初值模板(spirems/json_msgs/std_msgs/Log.json):
{"type":"std_msgs::Log","timestamp":0.0,"level":2,"message":"","name":"","file":"","line":0}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::Log" | 消息类型标识 |
timestamp | number | 0.0 | 日志时间戳(秒) |
level | int | 2 | 日志级别(见下方枚举) |
message | string | "" | 日志内容 |
name | string | "" | 进程或节点名称 |
file | string | "" | 源文件名 |
line | int | 0 | 源文件行号(≥0) |
日志级别枚举 (spirems.LogLevel):
| 常量值 | 名称 | 说明 |
|---|---|---|
0 | UNKNOWN | 未知级别 |
1 | DEBUG | 调试信息 |
2 | INFO | 一般信息(默认初值) |
3 | WARNING | 警告 |
4 | ERROR | 错误 |
5 | FATAL | 严重错误 |
来源:JSON Schema 定义在
spirems/json_schemas/std_msgs/Log.json
3.6 Null — 空消息
用途:无数据载荷的占位消息,可用于心跳、信令等场景。
初值模板(spirems/json_msgs/std_msgs/Null.json):
{"type":"std_msgs::Null","timestamp":0.0}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::Null" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
注意:与
Clock一样仅含type和timestamp。语义上Null表示"无意义载荷",Clock表示"时间信息"。
3.7 Number — 数值
用途:传递单个浮点数值(温度、速度、比率等)。
初值模板(spirems/json_msgs/std_msgs/Number.json):
{"type":"std_msgs::Number","timestamp":0.0,"data":0.0}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::Number" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | number | 0.0 | 浮点数值 |
3.8 NumberMultiArray — 数值数组
用途:传递多个浮点数值(传感器读数序列、向量等)。
初值模板(spirems/json_msgs/std_msgs/NumberMultiArray.json):
{"type":"std_msgs::NumberMultiArray","timestamp":0.0,"data":[0.0]}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::NumberMultiArray" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | number[] | [0.0] | 浮点数值数组 |
3.9 String — 字符串
用途:传递单个字符串(文本、JSON 字串、命令等)。
初值模板(spirems/json_msgs/std_msgs/String.json):
{"type":"std_msgs::String","timestamp":0.0,"data":""}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::String" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | string | "" | 字符串内容 |
3.10 StringMultiArray — 字符串数组
用途:传递多个字符串(标签列表、文件名列表等)。
初值模板(spirems/json_msgs/std_msgs/StringMultiArray.json):
{"type":"std_msgs::StringMultiArray","timestamp":0.0,"data":[""]}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::StringMultiArray" | 消息类型标识 |
timestamp | number | 0.0 | 时间戳(秒) |
data | string[] | [""] | 字符串数组 |
3.11 SystemStatus — 系统状态监控
用途:传递系统运行时状态(CPU、内存、磁盘、网络、进程信息)。
初值模板(spirems/json_msgs/std_msgs/SystemStatus.json):
{"type":"std_msgs::SystemStatus","timestamp":0.0,"cpu_usage":0,"cpu_temp":0,"mem_usage":0,"disk_free":0,"disk_write":0,"disk_read":0,"net_sent":0,"net_recv":0,"top_processes_by_cpu":[],"top_processes_by_mem":[],"top_processes_by_io":[]}字段说明:
| 字段 | 类型 | 初值 | 说明 |
|---|---|---|---|
type | string | "std_msgs::SystemStatus" | 消息类型标识 |
timestamp | number | 0.0 | 采样时间戳(秒) |
cpu_usage | int | 0 | CPU 使用率(百分比,0-100) |
cpu_temp | int | 0 | CPU 温度(摄氏度) |
mem_usage | int | 0 | 内存使用率(百分比,0-100) |
disk_free | int | 0 | 磁盘可用空间(MB) |
disk_write | int | 0 | 磁盘写入速率(KB/s) |
disk_read | int | 0 | 磁盘读取速率(KB/s) |
net_sent | int | 0 | 网络发送速率(KB/s) |
net_recv | int | 0 | 网络接收速率(KB/s) |
top_processes_by_cpu | array | [] | CPU 占用最高的进程列表 |
top_processes_by_mem | array | [] | 内存占用最高的进程列表 |
top_processes_by_io | array | [] | IO 最高的进程列表 |
4. 快速对照表
| 消息类型 | 是否含data | 特有字段 |
|---|---|---|
Boolean | ✅bool | — |
BooleanMultiArray | ✅bool[] | — |
Clock | ❌ | — |
KeyValuePair | ❌ | key,value |
Log | ❌ | level,message,name,file,line |
Null | ❌ | — |
Number | ✅number | — |
NumberMultiArray | ✅number[] | — |
String | ✅string | — |
StringMultiArray | ✅string[] | — |
SystemStatus | ❌ | cpu_usage,cpu_temp,mem_usage,disk_*,net_*,top_processes_* |