# ROS Topics

This page is a description of all the topics we are using (or plan to use) on the sub. Below is a symbolic representation of data flow on the sub (with sensors as we have right now).

## Sensors

### /orientation

Message: geometry_msgs/Quaternion
The current orientation of the sub, given as a quaternion. Any code wanting to know the sub's orientation should use this topic, not /orientation/rpy.

### /pretty/orientation

Message: robosub/Euler
The current orientation of the sub, given in roll, pitch, yaw. This is meant just for human readability of the sub's orientation, code should use the /orientation topic.

### /depth

Message: std_msgs/Float32
The current depth of the sub.

## Movement

### /thruster

Message: robosub/thruster
Dynamic array of commands going to the thrusters. Order of the thrusters is dependent on their order in the settings file.

### /control

Message: robosub/control
Send messages to this topic to move the sub around, the control system subscribes to this topic.

### /joystick_driver

Message: robosub/joystick This is the raw joystick state, published by the joystick driver. Shows the current state of all axes and buttons on the joystick.

## Vision

### /camera/(left|right|bottom)/image

Message: wfov_camera_msgs/WFOVImage
Images from our cameras.

### /vision

Message: rs_yolo/DetectionArray
Results of the deep vision processing system. It's a list detailing all the objects it sees.

## Hydrophones

### /hydrophones/[Frequency]/deltas

Message: Duplicated for all frequencies in the pool. Contains the latest time deltas between the reference and other 3 hydrophones.

Header header
duration d1
duration d2
duration d3

### /hydrophones/[Frequency]/timestamps

Message: Duplicated for all frequencies in the pool. Contains the latest timestamps recorded by the system.

Header header
Time ref
Time t1
Time t2
Time t3

### /hydrophones/[Frequency]/debug

Message: Used for debugging the hydrophone system.

Header header
Int64 frequency
Int64 avg_sig_strength
Float64 approx_angle

### /hydrophones/bearing

Message: geometry_msgs/Vector3Stamped
A 3-dimensional vector pointing at the pinger in $i,j,k$ notation.