-
Notifications
You must be signed in to change notification settings - Fork 560
/
Copy pathmission_service.proto
74 lines (57 loc) · 3.68 KB
/
mission_service.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// Copyright (c) 2023 Boston Dynamics, Inc. All rights reserved.
//
// Downloading, reproducing, distributing or otherwise using the SDK Software
// is subject to the terms and conditions of the Boston Dynamics Software
// Development Kit License (20191101-BDSDK-SL).
syntax = "proto3";
package bosdyn.api.mission;
option java_outer_classname = "MissionServiceProto";
import "bosdyn/api/data_chunk.proto";
import "bosdyn/api/mission/mission.proto";
// The MissionService can be used to specify high level autonomous behaviors for Spot using behavior
// trees.
service MissionService {
// RPCs for loading missions to the robot. NOTE: LoadMission and LoadMissionAsChunks may fail
// for large missions because the request and response may exceed the maximum message size. Use
// LoadMissionAsChunks2 instead.
rpc LoadMission(LoadMissionRequest) returns (LoadMissionResponse) {}
// This RPC may be deprecated in the future, please use LoadMissionAsChunks2 instead.
// Non-preferred method for loading large missions to the robot because only the request is a
// streaming RPC. The data chunks are deserialized into a LoadMissionRequest. NOTE:
// LoadMissionAsChunks may fail for large missions because the response may exceed the maximum
// message size.
rpc LoadMissionAsChunks(stream DataChunk) returns (LoadMissionResponse) {}
// Preferred RPC for loading large missions to the robot because both the request and response
// are streaming RPCs, allowing you to break the message up into multiple streamed messages. The
// data chunks are deserialized into a LoadMissionRequest and LoadMissionResponse.
rpc LoadMissionAsChunks2(stream DataChunk) returns (stream DataChunk) {}
// Start executing a loaded mission.
// Will not restart a mission that has run to completion. Use RestartMission to do that.
rpc PlayMission(PlayMissionRequest) returns (PlayMissionResponse) {}
// Pause mission execution.
rpc PauseMission(PauseMissionRequest) returns (PauseMissionResponse) {}
// Stop a running mission.
// Must use RestartMission, not PlayMission, to begin from the beginning.
rpc StopMission(StopMissionRequest) returns (StopMissionResponse) {}
// Start executing a loaded mission from the beginning.
// Does not need to be called after LoadMission.
rpc RestartMission(RestartMissionRequest) returns (RestartMissionResponse) {}
// Get the state of the mission.
rpc GetState(GetStateRequest) returns (GetStateResponse) {}
// RPCs for getting static information regarding the mission. Used to interpret mission state.
// NOTE: GetInfo may fail for large missions because the response may exceed the maximum message
// size. Use GetInfoAsChunks instead.
rpc GetInfo(GetInfoRequest) returns (GetInfoResponse) {}
// Preferred RPC for getting the status of large missions from the robot because the response is
// a streaming streaming RPC, allowing you to break the message up into multiple streamed
// messages. THe data chunks are deserialized into a GetInfoResponse.
rpc GetInfoAsChunks(GetInfoRequest) returns (stream DataChunk) {}
// Download the mission as it was uploaded to the service.
rpc GetMission(GetMissionRequest) returns (GetMissionResponse) {}
// Alternative method to download large missions that allows you to break
// the mission up into multiple streamed requests. Each data chunk message should be
// deserialized as a GetMissionResponse protobuf message.
rpc GetMissionAsChunks(GetMissionRequest) returns (stream DataChunk) {}
// Specify an answer to the question asked by the mission.
rpc AnswerQuestion(AnswerQuestionRequest) returns (AnswerQuestionResponse) {}
}