diff --git a/acoustic_msgs/msg/PingInfo.msg b/acoustic_msgs/msg/PingInfo.msg index f2f8d7b..2eaeab5 100644 --- a/acoustic_msgs/msg/PingInfo.msg +++ b/acoustic_msgs/msg/PingInfo.msg @@ -1,11 +1,26 @@ +# the frame id of the acoustic center of the receiver +# the transmitter frame is assumed to be that specified +# in the message header +string rx_frame_id + +# the ping number reported by the sonar. +# useful for matching multiple message types for a given ping +uint64 ping_no + # Center frequency of sonar in Hz # Set to 0 if unavailable float32 frequency +# the width of the transmittd pulse in seconds +float32 tx_pulse_width + # Speed of sound (m/s) used to calculate ranges; # Set to 0 if unavailable float32 sound_speed +# The number of samples per second that the reciever collects +float32 sample_rate + # Sonar reported -3db beamwidths # May be empty if not reported # reported in radians diff --git a/acoustic_msgs/msg/RawSonarImage.msg b/acoustic_msgs/msg/RawSonarImage.msg index ef7c5a2..8432edf 100644 --- a/acoustic_msgs/msg/RawSonarImage.msg +++ b/acoustic_msgs/msg/RawSonarImage.msg @@ -1,14 +1,11 @@ - -# The header time should be the time the ping was transmitted, not -# the time the message was received. -# Note that these two could potentially be several seconds apart, -# especially in deep water. +# All values in the header are associated the transmitter: +# - stamp references the transmit time or the start of the +# transmit cycle. +# - frame_id references the transmitter's acoustic center std_msgs/Header header PingInfo ping_info -float32 sample_rate # hz - uint32 samples_per_beam # the number of samples in each beam # Many sonars have some kind of upper gate for water column data @@ -16,8 +13,14 @@ uint32 samples_per_beam # the number of samples in each beam # for beam n uint32 sample0 +# if the image is not reported at the full resolution +# ping_info.sample_rate != image_sample_rate +# for a given sample: +# 2-way travel time = image_sample_rate*(sample_no+sample0) + +float32 image_sample_rate + # Multi-sector multibeams can transmit different sectors at different times -# The Reson doesn't but we include a TX delay for each beam anyway. # # Overall, therefore, our overall time is: # @@ -25,11 +28,12 @@ uint32 sample0 # Each beam's TX time: header.stamp + transmit_delay[i] # Each beam's RX time: header.stamp + transmit_delay[i] + sample_rate*image_row float32[] tx_delays -# Steering angle applied to tx beam + +# The angle reported for the transmitted pulse # reported in radians float32[] tx_angles -# Steering angle applied to rx beam +# The angle reported for the received pulse # reported in radians float32[] rx_angles diff --git a/acoustic_msgs/msg/SonarImageData.msg b/acoustic_msgs/msg/SonarImageData.msg index abb88c2..f1b724f 100644 --- a/acoustic_msgs/msg/SonarImageData.msg +++ b/acoustic_msgs/msg/SonarImageData.msg @@ -17,4 +17,6 @@ uint32 dtype uint32 beam_count # The actually pixel data in row-major (beam_index major) format +# this can be interpreted as a 2d array with indicies beam_index and +# sample_number uint8[] data