cmvr-es/protos/cmvr/api/agv_command.proto

232 lines
7.8 KiB
Protocol Buffer
Raw Permalink Normal View History

syntax = "proto3";
package cmvr.api;
import "cmvr/api/common.proto";
import "cmvr/api/agv_utils.proto";
2026-07-07 15:54:09 +08:00
// 查询 AGV 运行状态命令。
message AgvRuntimeStateCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
2026-07-07 15:54:09 +08:00
// AGV 当前运行状态快照。
cmvr.msgs.AgvRuntimeState state = 2;
}
}
2026-07-07 15:54:09 +08:00
// 查询 AGV 当前导航任务状态命令。
message AgvNavigationStatusCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
2026-07-07 15:54:09 +08:00
// 当前导航任务状态。
cmvr.msgs.AgvNavigationStatus status = 2;
}
}
2026-07-07 15:54:09 +08:00
// 导航到指定地图位姿命令。
message AgvNavigateToPoseCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
2026-07-07 15:54:09 +08:00
// 目标位姿。x/y 单位theta 单位:弧度。
cmvr.msgs.AgvPose2d pose = 2;
// 通用运动约束和执行选项;默认同步阻塞至任务终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
2026-07-07 15:54:09 +08:00
// AGV 适配器扩展参数,用于传递厂商特有选项。
cmvr.msgs.AgvAdapterParams adapter_params = 4;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
2026-07-07 15:54:09 +08:00
// 导航到指定站点命令。
message AgvNavigateToStationCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
2026-07-07 15:54:09 +08:00
// 目标站点 id。
string station_id = 2;
// 通用运动约束和执行选项;默认同步阻塞至任务终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
2026-07-07 15:54:09 +08:00
// AGV 适配器扩展参数,用于传递厂商特有选项。
cmvr.msgs.AgvAdapterParams adapter_params = 4;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
2026-07-07 15:54:09 +08:00
// 按显式站点路径导航命令。
message AgvFollowPathCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
2026-07-07 15:54:09 +08:00
// 路径段列表。每段包含起点站点 id 和终点站点 id。
repeated cmvr.msgs.AgvPathSegment path = 2;
// 通用执行选项;默认同步阻塞至整条路径终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
2026-08-04 16:30:42 +08:00
// 按指定速度执行固定距离平移命令。
message AgvTranslateCommand {
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 固定距离平移参数。
cmvr.msgs.AgvTranslation translation = 2;
}
message Feedback {
// 仅表示控制器是否接受命令,不表示平移已经完成。
CommandHeader.Feedback header = 1;
}
}
2026-07-07 15:54:09 +08:00
// 下发底盘速度命令。
message AgvSetVelocityCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
2026-07-07 15:54:09 +08:00
// 目标车体速度。vx/vy 单位:米/秒wz 单位:弧度/秒。
cmvr.msgs.AgvVelocity velocity = 2;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
2026-07-07 15:54:09 +08:00
// 查询可用地图列表命令。
message AgvListMapsCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
2026-07-07 15:54:09 +08:00
// 地图名称列表。
repeated string maps = 2;
}
}
2026-07-07 15:54:09 +08:00
// 查询当前地图站点列表命令。
message AgvListStationsCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
2026-07-07 15:54:09 +08:00
// 当前地图中的站点列表。
repeated cmvr.msgs.AgvStation stations = 2;
}
}
2026-07-07 15:54:09 +08:00
// 地图上传、下载、切换等通用地图命令。
message AgvMapCommand {
2026-07-07 15:54:09 +08:00
// 请求体。
message Request {
2026-07-07 15:54:09 +08:00
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
2026-07-07 15:54:09 +08:00
// 地图名称。切换/下载时表示目标地图,上传时表示写入的地图名称。
string map_name = 2;
2026-07-07 15:54:09 +08:00
// 地图内容。上传地图时使用;下载或切换地图时可为空。
string content = 3;
}
2026-07-07 15:54:09 +08:00
// 反馈体。
message Feedback {
2026-07-07 15:54:09 +08:00
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
2026-07-07 15:54:09 +08:00
// 地图内容。下载地图时返回;其他命令通常为空。
string content = 2;
}
}
2026-07-07 15:54:09 +08:00
// 开始建图/扫图命令。
message AgvStartMappingCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 请求建图维度2D、3D 或二者都要。未指定时由适配器选择最合适模式。
cmvr.msgs.AgvMapDimension dimension = 2;
// 目标地图名称。为空表示由 AGV 或适配器创建/选择默认地图名。
string map_name = 3;
// 是否请求实时建图更新。true 表示希望实时推送false 表示允许离线/批处理。
bool real_time = 4;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 建图会话 id。该值由服务端生成作为调试和日志关联标识。
string session_id = 2;
}
}
// 地图流命令。用于获取当前地图、最近地图、全量快照和后续增量更新。
message AgvMapStreamCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 请求地图维度2D、3D 或二者都要。该字段不是厂商格式选择器。
cmvr.msgs.AgvMapDimension dimension = 2;
// 地图名称。为空表示当前加载地图;若无当前地图,适配器应尝试使用最近保存/创建的地图。
string map_name = 3;
// 断点续传令牌。为空表示上位机没有缓存,服务端应先发送全量快照。
string resume_token = 4;
// 是否请求全量快照。首次请求通常应为 true。
bool snapshot = 5;
// 是否在快照之后保持流并发送增量更新。若适配器不支持增量,可继续发送全量并标记 update_type。
bool incremental = 6;
// 单条流消息建议最大载荷大小,单位:字节。小于等于 0 表示使用服务端默认值。
int32 max_chunk_bytes = 7;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 统一地图更新。payload 只会是 map_2d 或 map_3d不暴露厂商原始格式。
cmvr.msgs.AgvUnifiedMapUpdate update = 2;
}
}