Livox SDK API
V2.2.0
|
https://github.com/Livox-SDK/Livox-SDK/blob/master/README_CN.md "中文版本使用说明"
Livox SDK is the software development kit designed for all Livox products. It is developed based on C/C++ following Livox SDK Communication Protocol, and provides easy-to-use C style API. With Livox SDK, users can quickly connect to Livox products and receive point cloud data.
Livox SDK consists of Livox SDK communication protocol, Livox SDK core, Livox SDK API, Linux sample, and ROS demo.
Livox SDK communication protocol opens to all users. It is the communication protocol between user programs and Livox products. The protocol consists of control commands and data format. Please refer to the Livox SDK Communication Protocol for detailed information.
Livox SDK provides the implementation of control commands and point cloud data transmission, as well as the C/C++ API. The basic structure of Livox SDK core is shown as below:
User Datagram Protocol (UDP) is used for communication between Livox SDK and LiDAR sensors. Please refer to the Livox SDK Communication Protocol for further information. Point cloud data handler supports point cloud data transmission, while command handler receives and sends control commands. And the C/C++ API is based on command handler and point cloud data handler.
The Livox LiDAR sensors can be connected to host directly or through the Livox Hub. Livox SDK supports both connection methods. When LiDAR units are connected to host directly, the host will establish communication with each LiDAR unit individually. And if the LiDAR units connect to host through Hub, then the host only communicates with the Livox Hub while the Hub communicates with each LiDAR unit.
Livox SDK API provides a set of C style functions which can be conveniently integrated in C/C++ programs. Please refer to the Livox SDK API Reference for further information.
The installation procedures in Ubuntu 18.04/16.04/14.04 LTS and Windows 7/10 are shown here as examples. For Ubuntu 18.04/16.04/14.04 32-bit LTS and Mac, you can get it in Livox-SDK wiki.
Livox SDK requires CMake 3.0.0+ as dependencies. You can install these packages using apt:
In the Livox SDK directory, run the following commands to compile the project:
Install apr library by:
or by:
then
Livox SDK supports Visual Studio 2015 Update3/2017 and requires install CMake 3.0.0+ as dependencies.
In the Livox SDK directory, run the following commands to create the Visual Studio solution file. Generate the 32-bit project:
Generate the 64-bit project:
You can now compile the Livox SDK in Visual Studio.
The procedure of cross compile Livox-SDK in ARM-Linux are shown below.
Host machine requires install cmake and gcc. You can install these packages using apt:
If your ARM board vendor provides a cross compile toolchain, you can skip the following step of installing the toolchain and use the vendor-supplied cross compile toolchain instead.
The following commands will install C and C++ cross compiler toolchains for 32bit and 64bit ARM board. You need to install the correct toolchain for your ARM board. For 64bit SoC ARM board, only install 64bit toolchain, and for 32bit SoC ARM board, only install 32bit toolchain.
Install **ARM 32 bits cross compile toolchain**:
Install **ARM 64 bits cross compile toolchain**:
For **ARM 32 bits toolchain**,In the Livox SDK directory,run the following commands to cross compile the project:
For **ARM 64 bits toolchain**,In the Livox SDK directory,run the following commands to cross compile the project:
Note:
Two samples are provided in Sample/Lidar and Sample/Hub, which demonstrate how to configure Livox LiDAR units and receive the point cloud data when directly connecting Livox SDK to LiDAR units or by using a Livox Hub, respectively. The sequence diagram is shown as below:
For Ubuntun 18.04/16.04/14.04 LTS, run the lidar_sample if connect with the LiDAR unit(s):
or run the hub_sample if connect with the hub unit(s):
After compiling the Livox SDK as shown in section 4.1.2, you can find hub_sample.exe
or lidar_sample.exe
in the {Livox-SDK} or {Livox-SDK} folder, respectively, which can be run directly.
Then you can see the information as below:
Samples we provided will connect all the broadcast device in you LAN in default.There are two ways to connect the specific units:
NOTE:
Each Livox LiDAR unit owns a unique Broadcast Code . The broadcast code consists of its serial number and an additional number (1,2, or 3). The serial number can be found on the body of the LiDAR unit (below the QR code).The Broadcast Code may be used when you want to connect to the specific LiDAR unit(s). The detailed format is shown as below:
We provide the following program options for connecting the specific units and saving log file:
Here is the example:
Comment the following code section:
Remove the comment of the following code section, set the BROADCAST_CODE_LIST_SIZE and replace the broadcast code lists in the main.c
for both LiDAR sample ({Livox-SDK}/sample/lidar/main.c) and Hub sample ({Livox-SDK}/sample/hub/main.c) with the broadcast code of your devices before building.
We provide the C++ sample to generate the lvx file for hub and LiDAR unit(s). You can use the same way in 4.2.1
and 4.2.2
to run them.
You can alse use the program options in 4.3.1
to connect specific device and generate the log file, and we provide two new options for lvx file:
Here is the example:
You can get support from Livox with the following methods: