7.7 KiB
LivoxGen1Lidar Device Attachment Protocol (DAP) Specification
Overview
The LivoxGen1Lidar DAP specification defines how to attach to Livox Gen1 LiDAR devices and access their various data streams using a unified API with mode-based parameter selection.
API Structure
The LivoxGen1Lidar DAP uses a unified API name livoxGen1 with mode-based parameters to specify which data interface to present.
Device Attachment Specifications
1. Point Cloud Intensity Data Device (Interoceptor)
Purpose: Provides light intensity/reflectivity data from the LiDAR point cloud.
Syntax:
+idev | avia0 | structural-implexor | livoxGen1(mode=pointCloudIntensity) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
Alternative Syntax (all equivalent):
+idev | avia0 | structural-implexor | livoxGen1(stim=pcloudIntensity) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
+idev | avia0 | structural-implexor | livoxGen1(affordance=pCloudI) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
Mode Parameter Values (synonymous):
pointCloudIntensitypcloudIntensitypCloudIntensitypCloudIpcloudI
2. Point Cloud Coordinate Data Device (Extrospector)
Purpose: Provides spatial coordinate data from the LiDAR point cloud.
Syntax:
+edev | avia0 | structural-implexor | livoxGen1(mode=pcloud,format=xyz) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
Mode Parameter Values (synonymous):
pcloudpCloudpointCloud
Format Parameter (for point cloud modes):
xyz: Standard Cartesian coordinates (X, Y, Z)spherical: Raw spherical coordinatesspherical-cartesian: Spherical coordinates converted to Cartesiandual-cartesian: Dual Cartesian coordinate systemdual-spherical: Dual spherical coordinate system
Alternative Format Parameter Names (synonymous):
formatorfmt
3. IMU Gyroscope Data Device (Interoceptor)
Purpose: Provides gyroscope data from the LiDAR's internal IMU.
Syntax:
+idev | avia0 | gyro-implexor | livoxGen1(mode=gyro) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
Mode Parameter Values:
gyro
4. IMU Accelerometer Data Device (Interoceptor)
Purpose: Provides accelerometer data from the LiDAR's internal IMU.
Syntax:
+idev | avia0 | accel-implexor | livoxGen1(mode=accel) | livoxProto1(handshake-timeout-ms=1000,retry-delay-ms=3000,smo-ip=192.168.1.50,smo-subnet-nbits=24) | 3JEDK380010Z39
Mode Parameter Values:
accel
Provider Parameters
livoxProto1 Provider
The livoxProto1 provider accepts the following parameters:
handshake-timeout-ms (optional):
- Specifies the timeout for handshake operations when connecting to devices
- Value: Integer number of milliseconds
- Example:
handshake-timeout-ms=1000(1 second timeout) - Default: 1000ms if not specified
retry-delay-ms (optional):
- Specifies how long to wait for broadcast messages to arrive after attempting an initial direct connection
- Value: Integer number of milliseconds
- Example:
retry-delay-ms=3000(wait 3 seconds) - Default: 3000ms if not specified
subnet (optional):
- Specifies the IP subnet for device IP address calculation
- Value: IP address in the form X.X.0.0 where non-subnet bits must be 0
- Example:
subnet=10.42.0.0(use 10.42.x.x subnet) - Default: 0.0.0.0 (use default 192.168.1.x subnet)
data-port (optional):
- Specifies the UDP port for receiving point cloud data from the device
- Value: Integer port number
- Example:
data-port=56000 - Default: 56000 if not specified
cmd-port (optional):
- Specifies the UDP port for receiving command responses from the device
- Value: Integer port number
- Example:
cmd-port=56001 - Default: 56001 if not specified
imu-port (optional):
- Specifies the UDP port for receiving IMU data from the device
- Value: Integer port number
- Example:
imu-port=56002 - Default: 56002 if not specified
Parameter Summary
Mode/Stim/Affordance Parameter Values
| Data Type | Mode Values | Description |
|---|---|---|
| Point Cloud Intensity | pointCloudIntensity, pcloudIntensity, pCloudIntensity, pCloudI, pcloudI |
Light intensity/reflectivity data |
| Point Cloud Coordinates | pcloud, pCloud, pointCloud |
Spatial coordinate data |
| Gyroscope | gyro |
Angular velocity measurements |
| Accelerometer | accel |
Linear acceleration measurements |
Format Parameter Values (for point cloud modes)
| Format | Description |
|---|---|
xyz |
Standard Cartesian coordinates (X, Y, Z) |
spherical |
Raw spherical coordinates (range, azimuth, elevation) |
spherical-cartesian |
Spherical coordinates converted to Cartesian |
dual-cartesian |
Dual Cartesian coordinate system |
dual-spherical |
Dual spherical coordinate system |
Device Discovery and Connection
The specification uses a retry-based connection strategy with two different approaches:
Connection Methods
1. Broadcast-Based Connection (connectToKnownDeviceReq)
- Uses device IP addresses discovered from broadcast advertisements
- smo-ip parameter: Optional - if omitted, driver auto-detects the appropriate interface
- smo-subnet-nbits parameter: Optional - used for validation if smo-ip is provided
- When to use: When devices are actively broadcasting their presence
2. Heuristic Connection (connectByDeviceIdentifierReq)
- Generates device IP addresses from serial numbers using network prefix
- smo-ip parameter: Required - needed to determine network prefix for IP generation
- smo-subnet-nbits parameter: Required - needed to calculate valid device IP addresses
- When to use: When devices are not broadcasting or for initial setup
Connection Strategy
- Initial Check: Check if device is already known from broadcasts
- Direct Connect: Attempt direct connection based on calculated IP address
- Retry Wait: If direct connect fails, wait for
retry-delay-msfor broadcast messages - Final Check: Check known devices again after retry delay
- Report Result: Success or failure based on final check
Data Formats
Point Cloud Coordinate Formats
-
XYZ Format: Standard 3D Cartesian coordinates
- X, Y, Z in meters
- Standard coordinate system orientation
-
Spherical Format: Raw spherical coordinates
- Range (distance) in meters
- Azimuth angle in degrees/radians
- Elevation angle in degrees/radians
-
Spherical-Cartesian Format: Spherical coordinates converted to Cartesian
- Range, azimuth, elevation converted to X, Y, Z
- Maintains spherical measurement precision
-
Dual Formats: Support for dual-coordinate systems
- Useful for devices with multiple measurement modes
- Provides redundancy and validation capabilities
Intensity Data
- Reflectivity values typically in the range 0-255
- Normalized intensity measurements
- Calibrated for material reflectivity analysis
IMU Data
- Gyroscope: Angular velocity measurements (rad/s)
- Accelerometer: Linear acceleration measurements (m/s²)
- Timestamped data synchronized with point cloud measurements
Error Handling
The specification includes comprehensive error handling for:
- Network connectivity issues
- Device communication timeouts
- Invalid coordinate format requests
- IMU data stream interruptions
- Device discovery failures
- Connection retry timeouts