2026-06-26 10:51:01 +08:00
|
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
|
|
|
|
package cmvr.api;
|
|
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
import "cmvr/api/common.proto";
|
|
|
|
|
|
import "cmvr/api/agv_command.proto";
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// AGV 通用服务。该服务只暴露控制器无关的能力,
|
|
|
|
|
|
// 厂商协议、地图文件格式和控制器特有参数由具体 AGV 适配器内部处理。
|
|
|
|
|
|
service AgvService {
|
|
|
|
|
|
// 获取 AGV 当前运行状态快照。
|
|
|
|
|
|
rpc getRuntimeState(AgvRuntimeStateCommand.Request) returns (AgvRuntimeStateCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 获取当前导航任务状态。
|
|
|
|
|
|
rpc getNavigationStatus(AgvNavigationStatusCommand.Request) returns (AgvNavigationStatusCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 执行急停或等效安全停止动作。
|
|
|
|
|
|
rpc emergencyStop(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 清除可恢复故障或告警。
|
|
|
|
|
|
rpc clearFault(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 导航到指定地图位姿。目标位姿 x/y 单位为米,theta 单位为弧度。
|
|
|
|
|
|
rpc navigateToPose(AgvNavigateToPoseCommand.Request) returns (AgvNavigateToPoseCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 导航到指定地图站点。
|
|
|
|
|
|
rpc navigateToStation(AgvNavigateToStationCommand.Request) returns (AgvNavigateToStationCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 按显式站点路径执行导航。
|
|
|
|
|
|
rpc followPath(AgvFollowPathCommand.Request) returns (AgvFollowPathCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 暂停当前导航任务。
|
|
|
|
|
|
rpc pauseNavigation(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 恢复已暂停的导航任务。
|
|
|
|
|
|
rpc resumeNavigation(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 取消当前导航任务。
|
|
|
|
|
|
rpc cancelNavigation(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 下发底盘速度控制指令。vx/vy 单位为米/秒,wz 单位为弧度/秒。
|
|
|
|
|
|
rpc setVelocity(AgvSetVelocityCommand.Request) returns (AgvSetVelocityCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 停止底盘速度控制。该接口不等价于取消导航任务。
|
|
|
|
|
|
rpc stopVelocityControl(CommandHeader.Request) returns (CommandHeader.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 查询 AGV 控制器可用地图名称列表。
|
|
|
|
|
|
rpc listMaps(AgvListMapsCommand.Request) returns (AgvListMapsCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 查询当前地图中的站点列表。
|
|
|
|
|
|
rpc listStations(AgvListStationsCommand.Request) returns (AgvListStationsCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 切换当前使用地图。
|
|
|
|
|
|
rpc switchMap(AgvMapCommand.Request) returns (AgvMapCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 上传地图内容到 AGV 控制器。地图内容字段由适配器解释。
|
|
|
|
|
|
rpc uploadMap(AgvMapCommand.Request) returns (AgvMapCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 下载指定地图内容。
|
|
|
|
|
|
rpc downloadMap(AgvMapCommand.Request) returns (AgvMapCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 开始建图/扫图会话。请求只选择 2D、3D 或二者都要,
|
|
|
|
|
|
// 控制器特有地图格式由 AGV 适配器内部转换。
|
|
|
|
|
|
rpc startMapping(AgvStartMappingCommand.Request) returns (AgvStartMappingCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 以服务端流方式发送统一地图。resume_token 为空时应先发送全量快照;
|
|
|
|
|
|
// 后续是否发送增量由 AGV 适配器能力决定,并通过 update_type 标记。
|
|
|
|
|
|
rpc streamMap(AgvMapStreamCommand.Request) returns (stream AgvMapStreamCommand.Feedback);
|
2026-06-26 10:51:01 +08:00
|
|
|
|
|
2026-07-10 13:44:07 +08:00
|
|
|
|
// 停止当前建图/扫图会话。
|
|
|
|
|
|
rpc stopMapping(CommandHeader.Request) returns (CommandHeader.Feedback);
|
|
|
|
|
|
}
|