425 lines
12 KiB
Protocol Buffer
425 lines
12 KiB
Protocol Buffer
syntax = "proto3";
|
||
|
||
import "cmvr/api/common.proto";
|
||
|
||
package cmvr.api;
|
||
|
||
// AGV状态信息
|
||
message AgvStatusInfo {
|
||
optional string id = 1; // AGV ID
|
||
optional string vehicle_id = 2; // 车辆ID
|
||
optional string version = 3; // 软件版本
|
||
optional string model = 4; // 型号
|
||
optional string dsp_version = 5; // DSP版本
|
||
optional string current_ip = 6; // 当前IP地址
|
||
optional string mac = 7; // MAC地址
|
||
optional int32 rssi = 8; // 信号强度
|
||
optional int32 ret_code = 9; // 返回码
|
||
optional string err_msg = 10; // 错误信息
|
||
}
|
||
|
||
// 获取AGV状态命令
|
||
message GetAgvStatusInfoCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvStatusInfo status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
// ===================== 电池状态查询 =====================
|
||
message AgvBatteryStatus {
|
||
optional double battery_level = 1; // 电池电量 [0,1]
|
||
optional double battery_temp = 2; // 电池温度 ℃
|
||
optional bool charging = 3; // 是否正在充电
|
||
optional double voltage = 4; // 电压 V
|
||
optional double current = 5; // 电流 A
|
||
optional double max_charge_voltage = 6; // 最大充电电压,-1=不支持
|
||
optional double max_charge_current = 7; // 最大充电电流,-1=不支持
|
||
optional bool manual_charge = 8; // 手动充电状态
|
||
optional bool auto_charge = 9; // 自动充电状态
|
||
optional int32 battery_cycle = 10; // 电池循环次数
|
||
optional string battery_user_data = 11; // 电池自定义数据
|
||
optional string extra = 12; // 客户自定义数据
|
||
optional int32 ret_code = 13; // 错误码
|
||
optional string create_on = 14; // 时间戳
|
||
optional string err_msg = 15; // 错误信息
|
||
}
|
||
|
||
message RobotStatusBatteryRequestData {
|
||
optional bool simple = 1; // true:仅简单数据 false:全量数据,默认false
|
||
}
|
||
|
||
message RobotStatusBatteryCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotStatusBatteryRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvBatteryStatus status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
// ===================== 机器人位置查询 =====================
|
||
message AgvRobotLocation {
|
||
optional double x = 1; // X坐标(m)
|
||
optional double y = 2; // Y坐标(m)
|
||
optional double angle = 3; // 姿态角(rad)
|
||
optional double confidence = 4; // 定位置信度[0,1]
|
||
optional string current_station = 5; // 当前最近站点ID
|
||
optional string last_station = 6; // 上一站点ID
|
||
optional int32 loc_method = 7; // 定位方式
|
||
optional int32 ret_code = 8; // 错误码
|
||
optional string create_on = 9; // 时间戳
|
||
optional string err_msg = 10; // 错误信息
|
||
}
|
||
|
||
message RobotStatusLocCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvRobotLocation status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
// ===================== 地图下载 =====================
|
||
message RobotConfigDownloadMapRequestData {
|
||
optional string map_name = 1;
|
||
}
|
||
|
||
message AgvDownloadMapResult {
|
||
optional int32 ret_code = 1;
|
||
optional string create_on = 2;
|
||
optional string err_msg = 3;
|
||
optional string map_content = 4;
|
||
}
|
||
|
||
message RobotConfigDownloadMapCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotConfigDownloadMapRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvDownloadMapResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
// 单条地图文件信息
|
||
message MapFileInfo {
|
||
optional string name = 1;
|
||
optional string modified = 2;
|
||
optional int64 size = 3;
|
||
}
|
||
|
||
// 地图查询响应
|
||
message AgvMapStatus {
|
||
optional string current_map = 1;
|
||
optional string current_map_md5 = 2;
|
||
repeated string maps = 3;
|
||
repeated MapFileInfo map_files_info = 4;
|
||
optional int32 ret_code = 5;
|
||
optional string create_on = 6;
|
||
optional string err_msg = 7;
|
||
}
|
||
|
||
// 查询地图状态命令
|
||
message RobotStatusMapCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvMapStatus status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
// ===================== 上传地图 =====================
|
||
message RobotConfigUploadMapRequestData {
|
||
optional string map_content = 1;
|
||
}
|
||
|
||
message AgvUploadMapResult {
|
||
optional int32 ret_code = 1;
|
||
optional string create_on = 2;
|
||
optional string err_msg = 3;
|
||
}
|
||
|
||
message RobotConfigUploadMapCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotConfigUploadMapRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvUploadMapResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
// ===================== 抢占控制权 ======================
|
||
// 抢占控制权 请求参数
|
||
message RobotConfigLockRequestData {
|
||
// 控制权抢占者名称,必填
|
||
optional string nick_name = 1;
|
||
}
|
||
|
||
// 抢占控制权 返回结果
|
||
message AgvLockResult {
|
||
// API错误码
|
||
optional int32 ret_code = 1;
|
||
// API上传时间戳
|
||
optional string create_on = 2;
|
||
// 错误描述信息
|
||
optional string err_msg = 3;
|
||
}
|
||
|
||
// 抢占控制权 命令封装
|
||
message RobotConfigLockCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
// 请求业务参数
|
||
RobotConfigLockRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
// 抢占控制权响应数据
|
||
AgvLockResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
// ===================== 查询当前控制权所有者 ======================
|
||
// 查询当前控制权所有者响应结构体
|
||
message AgvCurrentLockStatus {
|
||
// 当前控制权是否被抢占
|
||
optional bool locked = 1;
|
||
// 抢占方IP
|
||
optional string ip = 2;
|
||
// 抢占方端口
|
||
optional int32 port = 3;
|
||
// 抢占者类型 0=default 2=roboshop 0xDD=srd
|
||
optional uint32 type = 4;
|
||
// 抢占者昵称
|
||
optional string nick_name = 5;
|
||
// 抢占时间戳 单位秒
|
||
optional int64 time_t = 6;
|
||
// 抢占方描述信息
|
||
optional string desc = 7;
|
||
// 接口错误码
|
||
optional int32 ret_code = 8;
|
||
// 接口时间戳
|
||
optional string create_on = 9;
|
||
// 错误信息
|
||
optional string err_msg = 10;
|
||
}
|
||
|
||
|
||
|
||
// 查询当前控制权指令
|
||
message RobotStatusCurrentLockCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
AgvCurrentLockStatus status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
//==================== 开环速度运动控制 命令码:2010(0x07DA) ====================
|
||
// 下发指令会强制取消当前正在执行的自动导航任务
|
||
// 多舵轮设备仅解析vx/vy/w;steer、real_steer仅单舵轮设备生效
|
||
// vx:X轴速度 m/s;vy:Y轴速度 m/s;w:旋转角速度 rad/s,逆时针为正、顺时针为负
|
||
// steer:单舵轮档位控制 -2回零 / ±15°增减;real_steer:目标舵角rad,优先级高于steer
|
||
// duration:持续时间ms,0=永久运行;缺省读取全局参数ControlMotionDuration(默认500ms)
|
||
message RobotMotionControlRequestData {
|
||
optional double vx = 1;
|
||
optional double vy = 2;
|
||
optional double w = 3;
|
||
optional double steer = 4;
|
||
optional double real_steer = 5;
|
||
optional int64 duration = 6;
|
||
}
|
||
|
||
message RobotMotionControlResult {
|
||
optional int32 ret_code = 1;
|
||
optional string create_on = 2;
|
||
optional string err_msg = 3;
|
||
}
|
||
|
||
message RobotMotionControlCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotMotionControlRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
RobotMotionControlResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
//==================== 切换载入地图 命令码:2022(0x07E6) ====================
|
||
// 切换指定地图,合法地图会更新设备current_map字段
|
||
message RobotLoadMapRequestData {
|
||
optional string map_name = 1; // 地图名,仅字母数字-_,不可缺省
|
||
}
|
||
|
||
message RobotLoadMapResult {
|
||
optional int32 ret_code = 1;
|
||
optional string create_on = 2;
|
||
optional string err_msg = 3;
|
||
}
|
||
|
||
message RobotLoadMapCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotLoadMapRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
RobotLoadMapResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
//==================== 查询地图载入状态 命令码:1022(0x03FE) ====================
|
||
// loadmap_status:0失败 1成功 2载入中;LOADING状态不可重定位
|
||
message RobotQueryLoadMapStatusResult {
|
||
optional int32 loadmap_status = 1;
|
||
optional int32 ret_code = 2;
|
||
optional string create_on = 3;
|
||
optional string err_msg = 4;
|
||
}
|
||
|
||
message RobotQueryLoadMapStatusCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
RobotQueryLoadMapStatusResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
//==================== 查询当前地图所有站点信息 命令码:1301(0x0515) ====================
|
||
message StationItem {
|
||
optional string id = 1;
|
||
optional string type = 2;
|
||
optional double x = 3;
|
||
optional double y = 4;
|
||
optional double r = 5;
|
||
optional string desc = 6;
|
||
optional string executor = 7;
|
||
optional string prepoint = 8;
|
||
optional string recfile = 9;
|
||
optional bool spin = 10;
|
||
optional bool use_down_pgv = 11;
|
||
}
|
||
|
||
message QueryStationListResult {
|
||
repeated StationItem stations = 1;
|
||
optional int32 ret_code = 2;
|
||
optional string create_on = 3;
|
||
optional string err_msg = 4;
|
||
}
|
||
|
||
message QueryStationListCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
QueryStationListResult status = 2;
|
||
}
|
||
}
|
||
|
||
//==================== 指定路径导航 命令码:3066(0x0BFA) ====================
|
||
// 单段导航任务单元
|
||
message MoveTaskItem {
|
||
optional string task_id = 1;
|
||
optional string source_id = 2;
|
||
optional string id = 3;
|
||
optional string operation = 4;
|
||
optional double jack_height = 5;
|
||
}
|
||
|
||
// 指定路径导航请求体
|
||
message RobotGoTargetListRequestData {
|
||
repeated MoveTaskItem move_task_list = 1;
|
||
}
|
||
|
||
// 指定路径导航返回结果
|
||
message RobotGoTargetListResult {
|
||
optional int32 ret_code = 1;
|
||
optional string create_on = 2;
|
||
optional string err_msg = 3;
|
||
}
|
||
|
||
message RobotGoTargetListCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
RobotGoTargetListRequestData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
RobotGoTargetListResult status = 2;
|
||
}
|
||
}
|
||
|
||
|
||
//==================== 查询当前导航状态 robot_status_task_req 1020(0x03FC) 应答0x2B0C ====================
|
||
message QueryCurrentNavReqData {
|
||
optional bool simple = 1;
|
||
}
|
||
|
||
message NavContainerItem {
|
||
optional string container_name = 1;
|
||
optional string desc = 2;
|
||
optional string goods_id = 3;
|
||
optional bool has_goods = 4;
|
||
}
|
||
|
||
message QueryCurrentNavResData {
|
||
optional int32 task_status = 1;
|
||
optional int32 task_type = 2;
|
||
optional string target_id = 3;
|
||
repeated double target_point = 4;
|
||
repeated string finished_path = 5;
|
||
repeated string unfinished_path = 6;
|
||
optional string move_status_info = 7;
|
||
repeated NavContainerItem containers = 8;
|
||
|
||
optional int32 ret_code = 9;
|
||
optional string create_on = 10;
|
||
optional string err_msg = 11;
|
||
}
|
||
|
||
message RobotStatusTaskCommand {
|
||
message Request {
|
||
CommandHeader.Request header = 1;
|
||
QueryCurrentNavReqData data = 2;
|
||
}
|
||
message Feedback {
|
||
CommandHeader.Feedback header = 1;
|
||
QueryCurrentNavResData data = 2;
|
||
}
|
||
}
|