JaiaBot  1.12.1
JaiaBot micro-AUV software
high_control.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 
3 import "dccl/option_extensions.proto";
4 import "goby/middleware/protobuf/frontseat_data.proto";
5 
6 package jaiabot.protobuf;
7 
8 enum SetpointType
9 {
10  SETPOINT_STOP = 0; // no actuator movement - drift
11  SETPOINT_IVP_HELM = 1; // IvPHelm setpoints (helm_course)
12  SETPOINT_REMOTE_CONTROL = 2; // fixed heading, speed, etc. for a given duration
13  SETPOINT_DIVE = 3; // Inverse drive control (dive_depth)
14  SETPOINT_POWERED_ASCENT = 4; // Power ascent to surface
15 }
16 
17 message RemoteControl
18 {
19  option (dccl.msg).unit_system = "si";
20 
21  required int32 duration = 1 [(dccl.field) = {
22  min: 1,
23  max: 600
24  units { derived_dimensions: "time" }
25  }];
26 
27  optional double heading = 10 [
28  default = 0,
29  (dccl.field) = {
30  min: 0
31  max: 360
32  precision: 0
33  units { derived_dimensions: "plane_angle", system: "angle::degree" }
34  }
35 
36  ];
37  optional double speed = 11 [
38  default = 0,
39  (dccl.field) = {
40  min: 0,
41  max: 5,
42  precision: 1,
43  units { derived_dimensions: "length/time" }
44  }
45  ];
46 }
47 
48 message DesiredSetpoints
49 {
50  option (dccl.msg).unit_system = "si";
51 
52  required SetpointType type = 1;
53 
54  oneof setpoint_data
55  {
56  // pHelmIvP control, i.e. SETPOINT_IVP_HELM
57  goby.middleware.frontseat.protobuf.DesiredCourse helm_course = 10;
58 
59  // remote control, i.e. SETPOINT_REMOTE_CONTROL
60  RemoteControl remote_control = 11;
61 
62  // inverse dive control to target depth, i.e. SETPOINT_DIVE
63  double dive_depth = 12
64  [(dccl.field).units = { derived_dimensions: "length" }];
65 
66  // throttle control, i.e. SETPOINT_POWERED_ASCENT
67  double throttle = 13;
68  };
69 
70  optional bool is_helm_constant_course = 2 [default = false];
71 }