No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Repository Summary

Description
Checkout URI https://github.com/hydronautics-team/stingray.git
VCS Type git
VCS Version master
Last Updated 2026-03-07
Dev Status UNKNOWN
Released UNRELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

stingray

Stingray logo

Stingray is a ROS 2 AUV control stack built around mission orchestration, action servers for movement/devices, object detection, and video recording. This repository currently contains the first-party packages listed below plus two external code trees that are used by object detection.

Scope of This README

  • This document describes the packages that live in this repository today.
  • Direct code review scope excluded src/stingray_core.
  • Deep review also excluded third-party detector code in src/stingray_object_detection/ultralytics and vendored yolov5.
  • Known defects and architectural risks are tracked in ISSUES.md.

Repository Map

Package Kind Main entry points Notes
stingray_cam ROS 2 Python package Camera calibration data Ships configs/camera.yaml; no runtime node in this package.
stingray_devices ROS 2 C++ package device_action_server Bridges DeviceAction requests to stingray_core_interfaces/SetDevice.
stingray_interfaces ROS 2 interface package Actions, messages, services Shared contract for missions, movement, devices, detector, and recorder control.
stingray_launch ROS 2 Python package cam.launch.py, control.launch.py, missions.launch.py, od.launch.py, recorder.launch.py, zbar.launch.py Main bring-up/orchestration layer.
stingray_missions ROS 2 Python package fsm_node, qr_trigger_node Loads scenario YAML, drives the finite-state machine, and invokes actions/services.
stingray_movement ROS 2 C++ package twist_action_server, bbox_centering_twist_action_server, bbox_search_twist_action_server Movement actions backed by stingray_core_interfaces/SetTwist.
stingray_object_detection ROS 2 Python package yolov8_detector Publishes BboxArray from image topics; also contains the ultralytics submodule and vendored yolov5.
stingray_recorder ROS 2 Python package video_recorder_node Records image topics on demand via EnableTopic.
stingray_utils Mixed ROS 2 package C++ headers, Python helpers, stingray_utils.launch.py Shared helpers used by missions/movement; packaging is currently inconsistent, see ISSUES.md.

Architecture Overview

The current first-party control path is:

  1. stingray_launch starts operators, action servers, cameras, detector, and recorder nodes.
  2. stingray_missions/fsm_node loads scenarios from stingray_missions/configs/scenarios/*.yaml.
  3. Scenario states reference mission YAML in stingray_missions/configs/missions/*.yaml.
  4. Mission actions call movement/device action servers or publish EnableTopic messages to toggle detection/recording.
  5. stingray_movement and stingray_devices turn those actions into stingray_core_interfaces service calls.
  6. stingray_object_detection subscribes to image and camera info topics and publishes */bbox_array.
  7. stingray_recorder subscribes to image topics and records when enabled.

The stack relies on stingray_core_interfaces for the low-level control and state contracts, but src/stingray_core itself is outside the scope of this repository review.

Launch Files

The active launch entry points in this repository are:

Launch file Purpose Notes
cam.launch.py Start a single usb_cam node with calibration file support. Defaults to /dev/video0 and /stingray/topics/camera.
od.launch.py Start yolov8_detector. Expects image topics, camera info topics, and detector asset files.
recorder.launch.py Start video_recorder_node. Uses EnableTopic to start/stop recording.
control.launch.py Bring up the full reviewed control stack. Includes FSM, QR trigger, movement action servers, and device action server.
missions.launch.py Bring up the mission FSM without the full control stack. Overlaps with control.launch.py; see ISSUES.md.
zbar.launch.py Start QR / barcode reader integration. Publishes decoded barcode strings to the configured topic.

Typical commands:

ros2 launch stingray_launch cam.launch.py
ros2 launch stingray_launch od.launch.py
ros2 launch stingray_launch recorder.launch.py
ros2 launch stingray_launch control.launch.py
ros2 launch stingray_launch missions.launch.py
ros2 launch stingray_launch zbar.launch.py

Most launch files accept topic, service, and device overrides through launch arguments. Check the corresponding src/stingray_launch/launch/*.py file before deploying to hardware.

Interfaces and Control Contracts

The public ROS contracts defined in stingray_interfaces are:

  • TwistAction: generic movement command.
  • BboxCenteringTwistAction: center on a detected object.
  • BboxSearchTwistAction: search for a detected object by yaw sweep.
  • DeviceAction: actuate a device through the device action server.
  • HydroacousticCenteringTwistAction: declared interface; implementation status is tracked in ISSUES.md.
  • SetTransition: service used by the mission FSM and QR trigger.
  • Bbox, BboxArray: detector outputs.
  • EnableTopic: enable/disable object detection or recording for a topic.

Missions and Scenarios

Mission and scenario behavior is configured in YAML:

File truncated at 100 lines see the full file