Mission Planning - Blueye SDK

Skip to content

# Mission Planning

## `` mission_planning

Classes:

- `CameraAction` –

  List of available camera actions.

- `CameraCommand` –

  CameraCommands are used to control the camera from a mission.

- `ControlModeCommand` –

  A ControlModeCommand is used to set vertical and horizontal

- `ControlModeHorizontal` –

  Control mode for the horizontal axis of the drone.

- `ControlModeVertical` –

  Control mode for the vertical axis of the drone.

- `DepthSetPoint` –

  Depth set point is used to describe a depth set-point

- `DepthSetPointCommand` –

  A DepthSetPointCommand is used to go to a desired depth or

- `DepthZeroReference` –

  Depth zero reference from surface for depth, and seabed for

- `GoToHomeCommand` –

  GoToHomeCommand is used to go to the home position.

- `GoToSeabedCommand` –

  GoToSeabedCommand is used to go to the seabed.

- `GoToSurfaceCommand` –

  GoToSurfaceCommand is used to go to the surface.

- `Instruction` –

  A mission consists of one or multiple instructions. One

- `InstructionType` –

  List of available instruction types.

- `Mission` –

  A list of waypoints describes a mission that the auto pilot

- `MissionState` –

  List of mission supervisor states.

- `MissionStatus` –

  Mission Status is used for showing the status of the mission.

- `PathSegment` –

  Path segment used to describe segments of a mission as a line

- `ReferenceAutoPilot` –

  Reference for the auto pilot when a mission is active.

- `TiltMainCameraCommand` –

  The TiltMainCameraCommand can set the desired camera tilt

- `TiltMultibeamCommand` –

  The TiltMultibeamCommand is used to set the tilt angle of the

- `WaitForCommand` –

  WaitForCommand is used to wait during a mission.

- `Waypoint` –

  Waypoints used to describe a path for the auto pilot.

- `WaypointCommand` –

  A WaypointCommand will request the drone to drive to a point

### `` CameraAction

List of available camera actions.

#### `` CAMERA_ACTION_START_RECORDING `class-attribute` `instance-attribute`

    CAMERA_ACTION_START_RECORDING = 5

Start recording.

#### `` CAMERA_ACTION_STOP_RECORDING `class-attribute` `instance-attribute`

    CAMERA_ACTION_STOP_RECORDING = 6

Stop recording.

#### `` CAMERA_ACTION_STOP_TAKING_PHOTOS `class-attribute` `instance-attribute`

    CAMERA_ACTION_STOP_TAKING_PHOTOS = 4

Stop taking photos.

#### `` CAMERA_ACTION_TAKE_PHOTO `class-attribute` `instance-attribute`

    CAMERA_ACTION_TAKE_PHOTO = 1

Take one photo.

#### `` CAMERA_ACTION_TAKE_PHOTOS_DISTANCE `class-attribute` `instance-attribute`

    CAMERA_ACTION_TAKE_PHOTOS_DISTANCE = 3

Take a photo every x meter.

#### `` CAMERA_ACTION_TAKE_PHOTOS_TIME `class-attribute` `instance-attribute`

    CAMERA_ACTION_TAKE_PHOTOS_TIME = 2

Take a photo every x second.

#### `` CAMERA_ACTION_UNSPECIFIED `class-attribute` `instance-attribute`

    CAMERA_ACTION_UNSPECIFIED = 0

Unspecified command.

### `` CameraCommand

CameraCommands are used to control the camera from a mission.

#### `` action_param `class-attribute` `instance-attribute`

    action_param: float = Field(FLOAT, number=2)

#### `` camera_action `class-attribute` `instance-attribute`

    camera_action: "CameraAction" = Field(
        ENUM, number=1, enum="CameraAction"
    )

### `` ControlModeCommand

A ControlModeCommand is used to set vertical and horizontal control mode during a mission.

#### `` control_mode_horizontal `class-attribute` `instance-attribute`

    control_mode_horizontal: "ControlModeHorizontal" = Field(
        ENUM, number=6, enum="ControlModeHorizontal"
    )

#### `` control_mode_vertical `class-attribute` `instance-attribute`

    control_mode_vertical: "ControlModeVertical" = Field(
        ENUM, number=5, enum="ControlModeVertical"
    )

### `` ControlModeHorizontal

Control mode for the horizontal axis of the drone.

#### `` CONTROL_MODE_HORIZONTAL_AUTO_HEADING `class-attribute` `instance-attribute`

    CONTROL_MODE_HORIZONTAL_AUTO_HEADING = 2

Auto heading control mode.

#### `` CONTROL_MODE_HORIZONTAL_MANUAL `class-attribute` `instance-attribute`

    CONTROL_MODE_HORIZONTAL_MANUAL = 1

Manual control mode.

#### `` CONTROL_MODE_HORIZONTAL_STATION_KEEPING `class-attribute` `instance-attribute`

    CONTROL_MODE_HORIZONTAL_STATION_KEEPING = 3

Station keeping control mode.

#### `` CONTROL_MODE_HORIZONTAL_UNSPECIFIED `class-attribute` `instance-attribute`

    CONTROL_MODE_HORIZONTAL_UNSPECIFIED = 0

Unspecified.

### `` ControlModeVertical

Control mode for the vertical axis of the drone.

#### `` CONTROL_MODE_VERTICAL_AUTO_ALTITUDE `class-attribute` `instance-attribute`

    CONTROL_MODE_VERTICAL_AUTO_ALTITUDE = 3

Auto altitude control mode.

#### `` CONTROL_MODE_VERTICAL_AUTO_DEPTH `class-attribute` `instance-attribute`

    CONTROL_MODE_VERTICAL_AUTO_DEPTH = 2

Auto depth control mode.

#### `` CONTROL_MODE_VERTICAL_MANUAL `class-attribute` `instance-attribute`

    CONTROL_MODE_VERTICAL_MANUAL = 1

Manual control mode.

#### `` CONTROL_MODE_VERTICAL_UNSPECIFIED `class-attribute` `instance-attribute`

    CONTROL_MODE_VERTICAL_UNSPECIFIED = 0

Unspecified.

### `` DepthSetPoint

Depth set point is used to describe a depth set-point relative to the surface or the seabed.

#### `` depth `class-attribute` `instance-attribute`

    depth: float = Field(FLOAT, number=1)

#### `` depth_zero_reference `class-attribute` `instance-attribute`

    depth_zero_reference: "DepthZeroReference" = Field(
        ENUM, number=3, enum="DepthZeroReference"
    )

#### `` speed_to_depth `class-attribute` `instance-attribute`

    speed_to_depth: float = Field(FLOAT, number=2)

### `` DepthSetPointCommand

A DepthSetPointCommand is used to go to a desired depth or altitude.

#### `` depth_set_point `class-attribute` `instance-attribute`

    depth_set_point: "DepthSetPoint" = Field(
        MESSAGE, number=1, message="DepthSetPoint"
    )

### `` DepthZeroReference

Depth zero reference from surface for depth, and seabed for altitude.

#### `` DEPTH_ZERO_REFERENCE_SEABED `class-attribute` `instance-attribute`

    DEPTH_ZERO_REFERENCE_SEABED = 2

#### `` DEPTH_ZERO_REFERENCE_SURFACE `class-attribute` `instance-attribute`

    DEPTH_ZERO_REFERENCE_SURFACE = 1

#### `` DEPTH_ZERO_REFERENCE_UNSPECIFIED `class-attribute` `instance-attribute`

    DEPTH_ZERO_REFERENCE_UNSPECIFIED = 0

### `` GoToHomeCommand

GoToHomeCommand is used to go to the home position.

#### `` desired_speed `class-attribute` `instance-attribute`

    desired_speed: float = Field(FLOAT, number=1)

### `` GoToSeabedCommand

GoToSeabedCommand is used to go to the seabed.

#### `` desired_speed `class-attribute` `instance-attribute`

    desired_speed: float = Field(FLOAT, number=1)

### `` GoToSurfaceCommand

GoToSurfaceCommand is used to go to the surface.

#### `` desired_speed `class-attribute` `instance-attribute`

    desired_speed: float = Field(FLOAT, number=1)

### `` Instruction

A mission consists of one or multiple instructions. One instruction can be of different types.

This message has `oneof`_ fields (mutually exclusive fields). For each oneof, at most one member field can be set at the same time. Setting any member of the oneof automatically clears all other members.

.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields

#### `` auto_continue `class-attribute` `instance-attribute`

    auto_continue: bool = Field(BOOL, number=3)

#### `` camera_command `class-attribute` `instance-attribute`

    camera_command: "CameraCommand" = Field(
        MESSAGE,
        number=6,
        oneof="command",
        message="CameraCommand",
    )

#### `` control_mode_command `class-attribute` `instance-attribute`

    control_mode_command: "ControlModeCommand" = Field(
        MESSAGE,
        number=7,
        oneof="command",
        message="ControlModeCommand",
    )

#### `` depth_set_point_command `class-attribute` `instance-attribute`

    depth_set_point_command: "DepthSetPointCommand" = Field(
        MESSAGE,
        number=5,
        oneof="command",
        message="DepthSetPointCommand",
    )

#### `` go_to_home_command `class-attribute` `instance-attribute`

    go_to_home_command: "GoToHomeCommand" = Field(
        MESSAGE,
        number=13,
        oneof="command",
        message="GoToHomeCommand",
    )

#### `` go_to_seabed_command `class-attribute` `instance-attribute`

    go_to_seabed_command: "GoToSeabedCommand" = Field(
        MESSAGE,
        number=12,
        oneof="command",
        message="GoToSeabedCommand",
    )

#### `` go_to_surface_command `class-attribute` `instance-attribute`

    go_to_surface_command: "GoToSurfaceCommand" = Field(
        MESSAGE,
        number=11,
        oneof="command",
        message="GoToSurfaceCommand",
    )

#### `` group_id `class-attribute` `instance-attribute`

    group_id: int = Field(UINT32, number=2)

#### `` id `class-attribute` `instance-attribute`

    id: int = Field(UINT32, number=1)

#### `` tilt_main_camera_command `class-attribute` `instance-attribute`

    tilt_main_camera_command: "TiltMainCameraCommand" = Field(
        MESSAGE,
        number=8,
        oneof="command",
        message="TiltMainCameraCommand",
    )

#### `` tilt_multibeam_command `class-attribute` `instance-attribute`

    tilt_multibeam_command: "TiltMultibeamCommand" = Field(
        MESSAGE,
        number=9,
        oneof="command",
        message="TiltMultibeamCommand",
    )

#### `` wait_for_command `class-attribute` `instance-attribute`

    wait_for_command: "WaitForCommand" = Field(
        MESSAGE,
        number=10,
        oneof="command",
        message="WaitForCommand",
    )

#### `` waypoint_command `class-attribute` `instance-attribute`

    waypoint_command: "WaypointCommand" = Field(
        MESSAGE,
        number=4,
        oneof="command",
        message="WaypointCommand",
    )

### `` InstructionType

List of available instruction types.

#### `` INSTRUCTION_TYPE_GO_TO_DEPTH_SET_POINT `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_DEPTH_SET_POINT = 4

Go to depth set point.

#### `` INSTRUCTION_TYPE_GO_TO_HOME `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_HOME = 12

Returning to home.

#### `` INSTRUCTION_TYPE_GO_TO_SEABED `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_SEABED = 11

Go to the seabed.

#### `` INSTRUCTION_TYPE_GO_TO_SURFACE `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_SURFACE = 10

Go to the surface.

#### `` INSTRUCTION_TYPE_GO_TO_WAYPOINT `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_WAYPOINT = 2

Go to waypoint.

#### `` INSTRUCTION_TYPE_GO_TO_WAYPOINT_WITH_DEPTH_SET_POINT `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_GO_TO_WAYPOINT_WITH_DEPTH_SET_POINT = 3

Go to waypoint with depth set point.

#### `` INSTRUCTION_TYPE_NONE `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_NONE = 1

None.

#### `` INSTRUCTION_TYPE_SET_CAMERA_ACTION `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_SET_CAMERA_ACTION = 5

Command used to take photo repeatedly or start, stop recording.

#### `` INSTRUCTION_TYPE_SET_CONTROL_MODE `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_SET_CONTROL_MODE = 6

Sets a new control mode.

#### `` INSTRUCTION_TYPE_SET_TILT_MAIN_CAMERA `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_SET_TILT_MAIN_CAMERA = 7

Sets a new angle for the tilt servo.

#### `` INSTRUCTION_TYPE_SET_TILT_SERVO `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_SET_TILT_SERVO = 8

Sets a new angle for the tilt servo.

#### `` INSTRUCTION_TYPE_UNSPECIFIED `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_UNSPECIFIED = 0

Unspecified.

#### `` INSTRUCTION_TYPE_WAIT_FOR_SEC `class-attribute` `instance-attribute`

    INSTRUCTION_TYPE_WAIT_FOR_SEC = 9

Waiting for requested time in seconds.

### `` Mission

A list of waypoints describes a mission that the auto pilot can execute.

#### `` default_circle_of_acceptance `class-attribute` `instance-attribute`

    default_circle_of_acceptance: float = Field(FLOAT, number=9)

#### `` default_heave_speed `class-attribute` `instance-attribute`

    default_heave_speed: float = Field(FLOAT, number=8)

#### `` default_surge_speed `class-attribute` `instance-attribute`

    default_surge_speed: float = Field(FLOAT, number=7)

#### `` id `class-attribute` `instance-attribute`

    id: int = Field(UINT32, number=1)

#### `` instructions `class-attribute` `instance-attribute`

    instructions: MutableSequence["Instruction"] = (
        RepeatedField(MESSAGE, number=3, message="Instruction")
    )

#### `` name `class-attribute` `instance-attribute`

    name: str = Field(STRING, number=2)

#### `` path_segments `class-attribute` `instance-attribute`

    path_segments: MutableSequence["PathSegment"] = (
        RepeatedField(MESSAGE, number=4, message="PathSegment")
    )

#### `` total_distance `class-attribute` `instance-attribute`

    total_distance: int = Field(UINT32, number=5)

#### `` total_duration_time `class-attribute` `instance-attribute`

    total_duration_time: int = Field(UINT32, number=6)

### `` MissionState

List of mission supervisor states.

#### `` MISSION_STATE_ABORTED `class-attribute` `instance-attribute`

    MISSION_STATE_ABORTED = 6

Mission is aborted by the mission supervisor.

#### `` MISSION_STATE_COMPLETED `class-attribute` `instance-attribute`

    MISSION_STATE_COMPLETED = 5

Mission is completed.

#### `` MISSION_STATE_FAILED_TO_LOAD_MISSION `class-attribute` `instance-attribute`

    MISSION_STATE_FAILED_TO_LOAD_MISSION = 7

Mission has failed to load.

#### `` MISSION_STATE_FAILED_TO_START_MISSION `class-attribute` `instance-attribute`

    MISSION_STATE_FAILED_TO_START_MISSION = 8

Mission has failed to start.

#### `` MISSION_STATE_INACTIVE `class-attribute` `instance-attribute`

    MISSION_STATE_INACTIVE = 1

Mission supervisor is inactive.

#### `` MISSION_STATE_PAUSED `class-attribute` `instance-attribute`

    MISSION_STATE_PAUSED = 4

Mission is paused.

#### `` MISSION_STATE_READY `class-attribute` `instance-attribute`

    MISSION_STATE_READY = 2

Ready to start mission.

#### `` MISSION_STATE_RUNNING `class-attribute` `instance-attribute`

    MISSION_STATE_RUNNING = 3

Mission is running.

#### `` MISSION_STATE_UNSPECIFIED `class-attribute` `instance-attribute`

    MISSION_STATE_UNSPECIFIED = 0

Unspecified.

### `` MissionStatus

Mission Status is used for showing the status of the mission.

#### `` completed_instruction_ids `class-attribute` `instance-attribute`

    completed_instruction_ids: MutableSequence[int] = (
        RepeatedField(UINT32, number=5)
    )

#### `` completed_path_segment_ids `class-attribute` `instance-attribute`

    completed_path_segment_ids: MutableSequence[int] = (
        RepeatedField(UINT32, number=7)
    )

#### `` distance_to_complete `class-attribute` `instance-attribute`

    distance_to_complete: int = Field(UINT32, number=4)

#### `` estimated_time_to_complete `class-attribute` `instance-attribute`

    estimated_time_to_complete: int = Field(UINT32, number=3)

#### `` id `class-attribute` `instance-attribute`

    id: int = Field(UINT32, number=9)

#### `` state `class-attribute` `instance-attribute`

    state: "MissionState" = Field(
        ENUM, number=1, enum="MissionState"
    )

#### `` time_elapsed `class-attribute` `instance-attribute`

    time_elapsed: int = Field(UINT32, number=2)

#### `` total_number_of_instructions `class-attribute` `instance-attribute`

    total_number_of_instructions: int = Field(UINT32, number=6)

#### `` total_number_of_path_segments `class-attribute` `instance-attribute`

    total_number_of_path_segments: int = Field(UINT32, number=8)

### `` PathSegment

Path segment used to describe segments of a mission as a line between to waypoints.

#### `` course_to_target `class-attribute` `instance-attribute`

    course_to_target: float = Field(FLOAT, number=3)

#### `` depth_speed `class-attribute` `instance-attribute`

    depth_speed: float = Field(FLOAT, number=4)

#### `` duration_time `class-attribute` `instance-attribute`

    duration_time: float = Field(FLOAT, number=9)

#### `` from_wp_id `class-attribute` `instance-attribute`

    from_wp_id: int = Field(UINT32, number=7)

#### `` horizontal_length `class-attribute` `instance-attribute`

    horizontal_length: float = Field(FLOAT, number=5)

#### `` id `class-attribute` `instance-attribute`

    id: int = Field(UINT32, number=1)

#### `` speed_to_target `class-attribute` `instance-attribute`

    speed_to_target: float = Field(FLOAT, number=2)

#### `` to_wp_id `class-attribute` `instance-attribute`

    to_wp_id: int = Field(UINT32, number=8)

#### `` vertical_length `class-attribute` `instance-attribute`

    vertical_length: float = Field(FLOAT, number=6)

### `` ReferenceAutoPilot

Reference for the auto pilot when a mission is active.

#### `` active_instruction_id `class-attribute` `instance-attribute`

    active_instruction_id: int = Field(UINT32, number=2)

#### `` active_path_segment_id `class-attribute` `instance-attribute`

    active_path_segment_id: int = Field(UINT32, number=3)

#### `` circle_of_acceptance `class-attribute` `instance-attribute`

    circle_of_acceptance: float = Field(FLOAT, number=7)

#### `` course_to_target `class-attribute` `instance-attribute`

    course_to_target: float = Field(FLOAT, number=4)

#### `` depth_set_point `class-attribute` `instance-attribute`

    depth_set_point: float = Field(FLOAT, number=8)

#### `` depth_zero_reference `class-attribute` `instance-attribute`

    depth_zero_reference: "DepthZeroReference" = Field(
        ENUM, number=11, enum="DepthZeroReference"
    )

#### `` heave_velocity `class-attribute` `instance-attribute`

    heave_velocity: float = Field(FLOAT, number=9)

#### `` horizontal_distance_to_target `class-attribute` `instance-attribute`

    horizontal_distance_to_target: float = Field(
        FLOAT, number=6
    )

#### `` instruction_type `class-attribute` `instance-attribute`

    instruction_type: "InstructionType" = Field(
        ENUM, number=1, enum="InstructionType"
    )

#### `` speed_over_ground `class-attribute` `instance-attribute`

    speed_over_ground: float = Field(FLOAT, number=5)

#### `` time_to_complete `class-attribute` `instance-attribute`

    time_to_complete: float = Field(FLOAT, number=12)

#### `` vertical_distance_to_target `class-attribute` `instance-attribute`

    vertical_distance_to_target: float = Field(FLOAT, number=10)

### `` TiltMainCameraCommand

The TiltMainCameraCommand can set the desired camera tilt angle.

#### `` tilt_angle `class-attribute` `instance-attribute`

    tilt_angle: TiltAngle = Field(
        MESSAGE, number=1, message=TiltAngle
    )

### `` TiltMultibeamCommand

The TiltMultibeamCommand is used to set the tilt angle of the servo.

#### `` multibeam_servo `class-attribute` `instance-attribute`

    multibeam_servo: MultibeamServo = Field(
        MESSAGE, number=1, message=MultibeamServo
    )

### `` WaitForCommand

WaitForCommand is used to wait during a mission.

#### `` wait_for_seconds `class-attribute` `instance-attribute`

    wait_for_seconds: float = Field(FLOAT, number=1)

### `` Waypoint

Waypoints used to describe a path for the auto pilot.

#### `` circle_of_acceptance `class-attribute` `instance-attribute`

    circle_of_acceptance: float = Field(FLOAT, number=4)

#### `` depth_set_point `class-attribute` `instance-attribute`

    depth_set_point: "DepthSetPoint" = Field(
        MESSAGE, number=6, message="DepthSetPoint"
    )

#### `` global_position `class-attribute` `instance-attribute`

    global_position: LatLongPosition = Field(
        MESSAGE, number=3, message=LatLongPosition
    )

#### `` id `class-attribute` `instance-attribute`

    id: int = Field(UINT32, number=1)

#### `` name `class-attribute` `instance-attribute`

    name: str = Field(STRING, number=2)

#### `` speed_to_target `class-attribute` `instance-attribute`

    speed_to_target: float = Field(FLOAT, number=5)

### `` WaypointCommand

A WaypointCommand will request the drone to drive to a point automatically.

#### `` waypoint `class-attribute` `instance-attribute`

    waypoint: "Waypoint" = Field(
        MESSAGE, number=1, message="Waypoint"
    )