![]() |
Gemini Sonar Driver
1.0.0
A ROS2 Package for the Tritech Gemini 1200ikd sonar
|
GLF (Gemini Log Format) data processing utilities. More...
Namespaces | |
| namespace | FrequencyResolution1200ikd |
| Frequency resolution constants in meters. | |
| namespace | PingFlags |
| Ping flags bit definitions. | |
Classes | |
| struct | BeamData |
| Processed beam data ready for ROS message conversion. More... | |
| struct | PingMetadata |
| Processed ping metadata extracted from GLF::GMainImage. More... | |
Enumerations | |
| enum class | FrequencyMode : uint8_t { LOW_FREQUENCY = 0 , HIGH_FREQUENCY = 1 } |
| Ping frequency modes. More... | |
| enum class | SoSMode : uint8_t { SONAR_SENSOR = 0 , MANUAL = 1 } |
| Speed of sound source modes. More... | |
Functions | |
| PingMetadata | extractPingMetadata (const GLF::GMainImage &mainImage, uint32_t ping_number) |
| Extract ping metadata from GLF::GMainImage. | |
| BeamData | extractBeamData (const GLF::GMainImage &mainImage, const PingMetadata &metadata) |
| Extract beam intensity data from GLF::GMainImage. | |
| bool | isCompressed (const GLF::GMainImage &mainImage) |
| Check if data is compressed and needs decompression. | |
| bool | decompress (GLF::GMainImage &mainImage) |
| Decompress GLF image data if needed. | |
| marine_acoustic_msgs::msg::PingInfo | createPingInfo (const PingMetadata &metadata) |
| Create PingInfo message from conversion parameters. | |
| marine_acoustic_msgs::msg::SonarImageData | createSonarImageData (const BeamData &beam_data, const PingMetadata &metadata, uint8_t dtype) |
| Create SonarImageData message from beam data (OPTIMIZED) | |
| marine_acoustic_msgs::msg::RawSonarImage | createRawSonarImage (const GLF::GMainImage &mainImage, const PingMetadata &metadata, const BeamData &beam_data, const std::string &frame_id) |
| Create marine_acoustic_msgs/RawSonarImage from parsed GLF data. | |
| marine_acoustic_msgs::msg::ProjectedSonarImage | createProjectedSonarImage (const GLF::GMainImage &mainImage, const PingMetadata &metadata, const BeamData &beam_data, const std::string &frame_id) |
| Create marine_acoustic_msgs/ProjectedSonarImage (spatial domain) | |
GLF (Gemini Log Format) data processing utilities.
This module extracts sonar data from GLF::GLogTargetImage structures received from the Tritech Gemini SDK and prepares it for conversion to marine_acoustic_msgs formats.
|
strong |
|
strong |
| marine_acoustic_msgs::msg::PingInfo gemini_sonar_driver::glf_processor::createPingInfo | ( | const PingMetadata & | metadata | ) |
Create PingInfo message from conversion parameters.
| metadata | Extracted ping metadata |
| marine_acoustic_msgs::msg::ProjectedSonarImage gemini_sonar_driver::glf_processor::createProjectedSonarImage | ( | const GLF::GMainImage & | mainImage, |
| const PingMetadata & | metadata, | ||
| const BeamData & | beam_data, | ||
| const std::string & | frame_id ) |
Create marine_acoustic_msgs/ProjectedSonarImage (spatial domain)
| mainImage | GLF main image structure from SDK |
| metadata | Extracted ping metadata |
| beam_data | Extracted beam data with bearing angles |
| frame_id | TF frame ID for the sonar |
| marine_acoustic_msgs::msg::RawSonarImage gemini_sonar_driver::glf_processor::createRawSonarImage | ( | const GLF::GMainImage & | mainImage, |
| const PingMetadata & | metadata, | ||
| const BeamData & | beam_data, | ||
| const std::string & | frame_id ) |
Create marine_acoustic_msgs/RawSonarImage from parsed GLF data.
| mainImage | GLF main image structure from SDK |
| metadata | Extracted ping metadata |
| beam_data | Extracted beam data with bearing angles |
| frame_id | TF frame ID for the sonar |
| marine_acoustic_msgs::msg::SonarImageData gemini_sonar_driver::glf_processor::createSonarImageData | ( | const BeamData & | beam_data, |
| const PingMetadata & | metadata, | ||
| uint8_t | dtype ) |
Create SonarImageData message from beam data (OPTIMIZED)
Uses BeamData.flat_data which is already in row-major (beam-major) format. This is the zero-copy approach - direct assignment from GLF SDK data.
| beam_data | BeamData structure with flat_data already in correct format |
| metadata | Ping metadata for beam count |
| dtype | Data type for the image (DTYPE_UINT8 for Gemini) |
| bool gemini_sonar_driver::glf_processor::decompress | ( | GLF::GMainImage & | mainImage | ) |
Decompress GLF image data if needed.
| mainImage | GLF main image structure (will be modified if compressed) |
| BeamData gemini_sonar_driver::glf_processor::extractBeamData | ( | const GLF::GMainImage & | mainImage, |
| const PingMetadata & | metadata ) |
Extract beam intensity data from GLF::GMainImage.
The SDK provides data in row-major (beam-major) format: [beam0_sample0, beam0_sample1, ..., beam1_sample0, beam1_sample1, ...]
This function reorganizes it into a 2D vector structure for easier processing.
| mainImage | GLF main image structure from SDK |
| metadata | Pre-extracted ping metadata (for dimensions) |
| PingMetadata gemini_sonar_driver::glf_processor::extractPingMetadata | ( | const GLF::GMainImage & | mainImage, |
| uint32_t | ping_number ) |
Extract ping metadata from GLF::GMainImage.
| mainImage | GLF main image structure from SDK |
| ping_number | Sequential ping counter |
| bool gemini_sonar_driver::glf_processor::isCompressed | ( | const GLF::GMainImage & | mainImage | ) |
Check if data is compressed and needs decompression.
| mainImage | GLF main image structure |