@@ -37,6 +37,14 @@ message Instruction {
3737 GoToSeabedCommand go_to_seabed_command = 12 ; // Go to seabed.
3838 GoToHomeCommand go_to_home_command = 13 ; // Go to home position.
3939 SurveyCommand survey_command = 14 ; // Execute a survey pattern over a polygon area.
40+ MultibeamRecordCommand multibeam_record_command = 15 ; // Start or stop multibeam recording.
41+ MultibeamDriverCommand multibeam_driver_command = 16 ; // Start or stop the multibeam driver.
42+ SetMultibeamConfigCommand set_multibeam_config_command = 17 ; // Change the multibeam configuration.
43+ SetLightsCommand set_lights_command = 18 ; // Set the main or guest port lights.
44+ SetLaserCommand set_laser_command = 19 ; // Set the laser.
45+ SetTiltStabilizationCommand set_tilt_stabilization_command = 20 ; // Enable or disable tilt stabilization.
46+ SetCvModelCommand set_cv_model_command = 21 ; // Start or stop a computer vision model.
47+ AnnotationCommand annotation_command = 22 ; // Record an annotation in the dive log.
4048 }
4149}
4250
@@ -78,6 +86,7 @@ enum ControlModeHorizontal {
7886 CONTROL_MODE_HORIZONTAL_MANUAL = 1 ; // Manual control mode.
7987 CONTROL_MODE_HORIZONTAL_AUTO_HEADING = 2 ; // Auto heading control mode.
8088 CONTROL_MODE_HORIZONTAL_STATION_KEEPING = 3 ; // Station keeping control mode.
89+ CONTROL_MODE_HORIZONTAL_WEATHER_VANING = 4 ; // Weather vaning control mode (station keeping into the current).
8190}
8291
8392// A ControlModeCommand is used to set vertical and horizontal control mode during a mission.
@@ -115,6 +124,8 @@ message WaitForCommand {
115124message CameraCommand {
116125 CameraAction camera_action = 1 ; // Camera command.
117126 float action_param = 2 ; // Used for taking photos based on a time or distance interval.
127+ Camera camera = 3 ; // Which camera the action applies to. The main camera when unspecified.
128+ StorageLocation storage_location = 4 ; // Where to store the photos or the recording. Internal when unspecified.
118129}
119130
120131// GoToSurfaceCommand is used to go to the surface.
@@ -132,6 +143,62 @@ message GoToHomeCommand {
132143 float desired_speed = 1 ; // Desired speed to home (m/s).
133144}
134145
146+ // MultibeamRecordCommand starts or stops recording of the multibeam sonar.
147+ message MultibeamRecordCommand {
148+ bool enable = 1 ; // True to start recording, false to stop.
149+ StorageLocation storage_location = 2 ; // Where to store the recording. Internal when unspecified.
150+ }
151+
152+ // MultibeamDriverCommand starts or stops the multibeam sonar driver.
153+ //
154+ // The instruction completes when the driver reports the requested state, so a following
155+ // MultibeamRecordCommand or TiltMultibeamCommand finds the sonar ready.
156+ message MultibeamDriverCommand {
157+ bool activate = 1 ; // True to start the driver, false to stop it.
158+ MultibeamConfig config = 2 ; // Configuration to start with. When left out, the last known configuration is used.
159+ }
160+
161+ // SetMultibeamConfigCommand changes the configuration of a running multibeam sonar.
162+ message SetMultibeamConfigCommand {
163+ MultibeamConfig config = 1 ; // The configuration to apply.
164+ }
165+
166+ // Which lights a SetLightsCommand applies to.
167+ enum LightTarget {
168+ LIGHT_TARGET_UNSPECIFIED = 0 ; // Unspecified, treated as the main lights.
169+ LIGHT_TARGET_MAIN = 1 ; // The drone's own lights.
170+ LIGHT_TARGET_GUESTPORT = 2 ; // Lights connected to a guest port.
171+ }
172+
173+ // SetLightsCommand sets the intensity of the lights.
174+ message SetLightsCommand {
175+ float intensity = 1 ; // Light intensity (0..1).
176+ LightTarget target = 2 ; // Which lights to set.
177+ }
178+
179+ // SetLaserCommand sets the laser connected to a guest port.
180+ message SetLaserCommand {
181+ Laser laser = 1 ; // Laser intensity and modulation.
182+ }
183+
184+ // SetTiltStabilizationCommand enables or disables camera tilt stabilization.
185+ message SetTiltStabilizationCommand {
186+ bool enabled = 1 ; // True to stabilize the camera tilt.
187+ }
188+
189+ // SetCvModelCommand starts or stops a computer vision model on the drone.
190+ //
191+ // The instruction completes when the model reports the requested state.
192+ message SetCvModelCommand {
193+ string package_id = 1 ; // The model package to start or stop, as listed in CvModelInfo.
194+ bool running = 2 ; // True to start the model, false to stop it.
195+ }
196+
197+ // AnnotationCommand records an annotation in the dive log, as AnnotationCtrl does.
198+ message AnnotationCommand {
199+ Annotation annotation = 1 ; // The annotation to record. The drone sets the timestamp and the source.
200+ }
201+
135202// A SurveyCommand defines a survey (lawn-mower) pattern over a polygon area.
136203// The planner generates waypoints from the polygon + parameters and stores them
137204// in the waypoints field. The drone executes these pre-computed waypoints directly
@@ -206,6 +273,14 @@ enum InstructionType {
206273 INSTRUCTION_TYPE_GO_TO_SEABED = 11 ; // Go to the seabed.
207274 INSTRUCTION_TYPE_GO_TO_HOME = 12 ; // Returning to home.
208275 INSTRUCTION_TYPE_SURVEY = 13 ; // Execute a survey pattern over a polygon area.
276+ INSTRUCTION_TYPE_MULTIBEAM_RECORD = 14 ; // Start or stop multibeam recording.
277+ INSTRUCTION_TYPE_MULTIBEAM_DRIVER = 15 ; // Start or stop the multibeam driver.
278+ INSTRUCTION_TYPE_SET_MULTIBEAM_CONFIG = 16 ; // Change the multibeam configuration.
279+ INSTRUCTION_TYPE_SET_LIGHTS = 17 ; // Set the lights.
280+ INSTRUCTION_TYPE_SET_LASER = 18 ; // Set the laser.
281+ INSTRUCTION_TYPE_SET_TILT_STABILIZATION = 19 ; // Enable or disable tilt stabilization.
282+ INSTRUCTION_TYPE_SET_CV_MODEL = 20 ; // Start or stop a computer vision model.
283+ INSTRUCTION_TYPE_ANNOTATION = 21 ; // Record an annotation.
209284}
210285
211286// Reference for the auto pilot when a mission is active.
0 commit comments