cmvr-es/protos/cmvr/api/agv_command.proto
2026-08-04 16:30:42 +08:00

232 lines
7.8 KiB
Protocol Buffer
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package cmvr.api;
import "cmvr/api/common.proto";
import "cmvr/api/agv_utils.proto";
// 查询 AGV 运行状态命令。
message AgvRuntimeStateCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// AGV 当前运行状态快照。
cmvr.msgs.AgvRuntimeState state = 2;
}
}
// 查询 AGV 当前导航任务状态命令。
message AgvNavigationStatusCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 当前导航任务状态。
cmvr.msgs.AgvNavigationStatus status = 2;
}
}
// 导航到指定地图位姿命令。
message AgvNavigateToPoseCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 目标位姿。x/y 单位theta 单位:弧度。
cmvr.msgs.AgvPose2d pose = 2;
// 通用运动约束和执行选项;默认同步阻塞至任务终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
// AGV 适配器扩展参数,用于传递厂商特有选项。
cmvr.msgs.AgvAdapterParams adapter_params = 4;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
// 导航到指定站点命令。
message AgvNavigateToStationCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 目标站点 id。
string station_id = 2;
// 通用运动约束和执行选项;默认同步阻塞至任务终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
// AGV 适配器扩展参数,用于传递厂商特有选项。
cmvr.msgs.AgvAdapterParams adapter_params = 4;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
// 按显式站点路径导航命令。
message AgvFollowPathCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 路径段列表。每段包含起点站点 id 和终点站点 id。
repeated cmvr.msgs.AgvPathSegment path = 2;
// 通用执行选项;默认同步阻塞至整条路径终态并确认停车。
cmvr.msgs.AgvMotionOptions options = 3;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
// 按指定速度执行固定距离平移命令。
message AgvTranslateCommand {
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 固定距离平移参数。
cmvr.msgs.AgvTranslation translation = 2;
}
message Feedback {
// 仅表示控制器是否接受命令,不表示平移已经完成。
CommandHeader.Feedback header = 1;
}
}
// 下发底盘速度命令。
message AgvSetVelocityCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 目标车体速度。vx/vy 单位:米/秒wz 单位:弧度/秒。
cmvr.msgs.AgvVelocity velocity = 2;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
}
}
// 查询可用地图列表命令。
message AgvListMapsCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 地图名称列表。
repeated string maps = 2;
}
}
// 查询当前地图站点列表命令。
message AgvListStationsCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 当前地图中的站点列表。
repeated cmvr.msgs.AgvStation stations = 2;
}
}
// 地图上传、下载、切换等通用地图命令。
message AgvMapCommand {
// 请求体。
message Request {
// 通用请求头。header.device_id 指定目标 AGV 设备。
CommandHeader.Request header = 1;
// 地图名称。切换/下载时表示目标地图,上传时表示写入的地图名称。
string map_name = 2;
// 地图内容。上传地图时使用;下载或切换地图时可为空。
string content = 3;
}
// 反馈体。
message Feedback {
// 通用反馈头。包含成功标志、错误信息和反馈时间戳。
CommandHeader.Feedback header = 1;
// 地图内容。下载地图时返回;其他命令通常为空。
string content = 2;
}
}
// 开始建图/扫图命令。
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;
}
}