77 lines
3.4 KiB
Protocol Buffer
77 lines
3.4 KiB
Protocol Buffer
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);
|
||
|
||
|
||
// 按指定速度平移固定距离。成功返回仅表示控制器已接受命令。
|
||
rpc translate(AgvTranslateCommand.Request) returns (AgvTranslateCommand.Feedback);
|
||
}
|