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