Skip to content

Commit 45ccf7f

Browse files
jp-pinoclaude
andcommitted
Add device instruction commands: multibeam, guest port camera, lights, laser, tilt stabilization, CV model, annotation
Phase 3a of the MissionSupervisor restructuring: https://claude.ai/code/artifact/951a11c6-e492-436f-90bc-aa61f3b0d05c Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 parent cc65af2 commit 45ccf7f

2 files changed

Lines changed: 76 additions & 0 deletions

File tree

‎protobuf_definitions/message_formats.proto‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,7 @@ enum NotificationType {
684684
NOTIFICATION_TYPE_DVL_HIGH_TEMPERATURE_DETECTED = 31; // DVL high temperature detected.
685685
NOTIFICATION_TYPE_DVL_THERMAL_PROTECTION_MODE_DETECTED = 32; // DVL thermal protection mode detected.
686686
NOTIFICATION_TYPE_VIDEO_PARTITION_NOT_MOUNTED = 33; // Video partition not mounted.
687+
NOTIFICATION_TYPE_INSTRUCTION_STARTED = 34; // A mission instruction started; the value names it.
687688
NOTIFICATION_TYPE_DVL_PROTOCOL_UNSUPPORTED = 34; // DVL firmware speaks a protocol version Blunux does not support.
688689
}
689690

‎protobuf_definitions/mission_planning.proto‎

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {
115124
message 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

Comments
 (0)