cmvr-es/protos/cmvr/api/agv_service.proto
2026-07-07 15:54:09 +08:00

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