3import "dccl/option_extensions.proto";
4import "jaiabot/messages/mission.proto";
6package jaiabot.protobuf;
13 START_WAVE_HEIGHT_SAMPLING = 1;
14 STOP_WAVE_HEIGHT_SAMPLING = 2;
15 START_BOTTOM_TYPE_SAMPLING = 3;
16 STOP_BOTTOM_TYPE_SAMPLING = 4;
17 START_CALIBRATION = 5;
20 required IMUCommandType type = 1;
23enum IMUCalibrationState
32 optional double heading = 1
33 [(dccl.field) = {units {
34 derived_dimensions: "plane_angle"
35 system: "angle::degree"
39 optional double pitch = 2
40 [(dccl.field) = {units {
41 derived_dimensions: "plane_angle"
42 system: "angle::degree"
46 optional double roll = 3
47 [(dccl.field) = {units {
48 derived_dimensions: "plane_angle"
49 system: "angle::degree"
54 optional EulerAngles euler_angles = 1;
56 message Acceleration {
57 optional double x = 1;
58 optional double y = 2;
59 optional double z = 3;
62 optional Acceleration linear_acceleration = 2;
63 optional Acceleration gravity = 3;
66 optional int32 accelerometer = 1 [(dccl.field) = { min: 0 max: 3 }];
67 optional int32 gyroscope = 2 [(dccl.field) = { min: 0 max: 3 }];
68 optional int32 magnetometer = 3 [(dccl.field) = { min: 0 max: 3 }];
71 optional Accuracies accuracies = 4;
73 optional IMUCalibrationState calibration_state = 5;
75 optional bool bot_rolled_over = 6 [default = false];
77 optional double significant_wave_height = 7 [(dccl.field) = {units {
78 derived_dimensions: "length"
83 // For bottom characterization
84 optional double max_acceleration = 8
85 [(dccl.field) = {units {
86 derived_dimensions: "acceleration"
91 message AngularVelocity {
95 derived_dimensions: "angular_velocity"
102 derived_dimensions: "angular_velocity"
106 optional double z = 3
109 derived_dimensions: "angular_velocity"
115 optional AngularVelocity angular_velocity = 9;
118 optional double w = 1;
119 optional double x = 2;
120 optional double y = 3;
121 optional double z = 4;
124 optional Quaternion quaternion = 10;
126 optional string imu_type = 11;
128 optional Acceleration acceleration = 12;
130 message MagneticField {
131 optional double x = 1
138 optional double y = 2
145 optional double z = 3
154 optional MagneticField magnetic_field = 13;
156 message AccelerationWorld {
157 optional double north = 1
158 [(dccl.field) = {units {
159 derived_dimensions: "acceleration"
163 optional double east = 2
164 [(dccl.field) = {units {
165 derived_dimensions: "acceleration"
169 optional double down = 3
170 [(dccl.field) = {units {
171 derived_dimensions: "acceleration"
176 optional AccelerationWorld linear_acceleration_world = 14;
191 REBOOT_BNO085_IMU = 7;
192 REBOOT_BNO085_IMU_AND_RESTART_IMU_PY = 8;
195 required SolutionType solution = 1;
198 HEADING_COURSE_DIFFERENCE_TOO_LARGE = 0;
201 optional IssueType type = 2;
203 optional MissionState mission_state = 3;
205 optional double imu_heading_course_max_diff = 30 [default = 45];
207 optional double heading = 31 [(dccl.field) = {
211 units { derived_dimensions: "plane_angle" system: "angle::degree" }
214 optional double desired_heading = 32 [(dccl.field) = {
218 units { derived_dimensions: "plane_angle" system: "angle::degree" }
221 optional double course_over_ground = 33 [(dccl.field) = {
225 units { derived_dimensions: "plane_angle" system: "angle::degree" }
228 optional double heading_course_difference = 34 [(dccl.field) = {
232 units { derived_dimensions: "plane_angle" system: "angle::degree" }
235 optional double pitch = 35 [(dccl.field) = {
239 units { derived_dimensions: "plane_angle" system: "angle::degree" }
242 optional double speed_over_ground = 36 [(dccl.field) = {
246 units { derived_dimensions: "velocity" system: "si" }
249 optional double desired_speed = 37 [(dccl.field) = {
253 units { derived_dimensions: "velocity" system: "si" }