3 import "dccl/option_extensions.proto";
4 import "goby/middleware/protobuf/frontseat_data.proto";
5 import "jaiabot/messages/option_extensions.proto";
7 package jaiabot.protobuf;
11 SETPOINT_STOP = 0; // no actuator movement - drift
12 SETPOINT_IVP_HELM = 1; // IvPHelm setpoints (helm_course)
13 SETPOINT_REMOTE_CONTROL =
14 2; // fixed heading, speed, etc. for a given duration
15 SETPOINT_DIVE = 3; // Inverse drive control (dive_depth)
16 SETPOINT_POWERED_ASCENT = 4; // Power ascent to surface
17 SETPOINT_SUSPEND_PID = 5; // stop sending PID based control messages until another SETPOINT is sent
22 option (dccl.msg).unit_system = "si";
24 required int32 duration = 1 [
28 units { derived_dimensions: "time" }
30 (jaia.field).rest_api.presence = GUARANTEED
33 optional double heading = 10 [
39 units { derived_dimensions: "plane_angle", system: "angle::degree" }
41 (jaia.field).rest_api.presence = GUARANTEED
43 optional double speed = 11 [
49 units { derived_dimensions: "length/time" }
51 (jaia.field).rest_api.presence = GUARANTEED
55 message DesiredSetpoints
57 option (dccl.msg).unit_system = "si";
59 required SetpointType type = 1;
63 // pHelmIvP control, i.e. SETPOINT_IVP_HELM
64 goby.middleware.frontseat.protobuf.DesiredCourse helm_course = 10;
66 // remote control, i.e. SETPOINT_REMOTE_CONTROL
67 RemoteControl remote_control = 11;
69 // inverse dive control to target depth, i.e. SETPOINT_DIVE
70 double dive_depth = 12
71 [(dccl.field).units = { derived_dimensions: "length" }];
73 // throttle control, i.e. SETPOINT_POWERED_ASCENT
77 optional bool is_helm_constant_course = 2 [default = false];