You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sonar-3d/sonar-3d-15-api.md
+19-10Lines changed: 19 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,9 @@
1
1
# Integration API Sonar 3D-15
2
2
3
3
## Introduction
4
-
The **Water Linked Sonar 3D-15** provides real-time 3D views of underwater environments using a low-bandwidth **Range Image Protocol (RIP1)**. This protocol efficiently transmits data such as 3D points or grayscale bitmaps over UDP multicast, enabling live visualization, analysis, or archival for later use.
4
+
The **Water Linked Sonar 3D-15** provides real-time 3D views of underwater environments using a low-bandwidth **Range Image Protocol (RIP1)**. This protocol efficiently transmits data such as 3D points or grayscale bitmaps over UDP, enabling live visualization, analysis, or archival for later use.
5
+
6
+
The Sonar 3D-15 also exposes a HTTP API for configuration and inspection of system state.
5
7
6
8
A Python example implementation of the Sonar API is available on [github](https://github.com/waterlinked/Sonar-3D-15-api-example).
7
9
@@ -25,34 +27,36 @@ RIP1 is a compact format for range and bitmap images, designed for <10 Mbit ba
25
27
26
28
---
27
29
28
-
## Network
29
-
By default, the Sonar 3D-15 uses **UDP Multicast** (`224.0.0.96:4747`), so any device on the local network can receive data without knowing the sonar’s IP.
30
+
### Network
31
+
By default, the Sonar 3D-15 uses **UDP Multicast** (`224.0.0.96:4747`), so any device on the local network can receive RIP1 packets without knowing the sonar’s IP.
32
+
33
+
The Sonar can also be configured for UDP unicast, or to disable UDP packet sending. See HTTP API.
RIP1 supports several Protobuf-encoded messages, including:
43
47
44
-
### `BitmapImageGreyscale8`
48
+
####`BitmapImageGreyscale8`
45
49
- 8-bit grayscale; each pixel = signal strength or shaded depth.
46
50
-`type` enum differentiates **signal strength** vs. **shaded**.
47
51
48
-
### `RangeImage`
52
+
####`RangeImage`
49
53
- Each pixel represents distance (radius) to the strongest reflection.
50
54
-`0` = no valid data.
51
55
-`radius = pixelValue * imagePixelScale`.
52
56
53
57
---
54
58
55
-
## Coordinate and Image Conventions
59
+
###Coordinate and Image Conventions
56
60
**Axes** (right-handed):
57
61
58
62
-**x**: forward
@@ -91,7 +95,7 @@ z = -radius * sin(pitch); // z is downward
91
95
92
96
---
93
97
94
-
## `.proto` File (Excerpt)
98
+
### `.proto` File (Excerpt)
95
99
```protobuf
96
100
// Water Linked Sonar 3D-15 protocol
97
101
syntax = "proto3";
@@ -173,7 +177,12 @@ message RangeImage {
173
177
- Decoders should ignore unrecognized messages.
174
178
- Major breaking changes will involve a new protocol identifier.
175
179
180
+
Refer to the full protocol specification and `.proto` file shown above for more information.
181
+
182
+
## HTTP API
183
+
184
+
The Sonar 3D-15 exposes a HTTP API for configuration and inspection of system state. The HTTP API is exposed on port 80 and uses paths rooted at `/api/v1/integration/`. JSON is used for request and response bodies. The HTTP API is documented in the example code on [github](https://github.com/waterlinked/Sonar-3D-15-api-example).
185
+
176
186
---
177
187
178
188
**Thank you for using the Water Linked Sonar 3D-15!**
179
-
Refer to the full protocol specification and `.proto` file shown above for more information.
0 commit comments