1. 引言
Livox SDK2 是一款软件开发套件,专为所有 Livox 激光雷达(如 HAP 和 Mid-360)设计。它基于 C/C++ 开发,遵循 Livox SDK2 通信协议,并提供易于使用的 C 风格 API。使用 Livox SDK2,用户可以快速连接到 Livox 激光雷达并接收点云数据。
Livox SDK2 由 Livox SDK2 核心代码、Livox SDK2 API 和三个示例组成。
Livox SDK2 接口
Livox SDK2 API 提供了一套 C 风格的 API,可以方便地集成到 C/C++ 程序中。请参考 Livox SDK2 API。
Livox SDK2 通信协议
Livox SDK2 通信协议向所有用户开放。它是用户程序和livox产品之间的通信协议。该协议由控制命令和数据格式组成,请参考以下文档:
HAP(TX/T1):
中 360:
- Mid-360 通信协议 (中文)
- Mid-360 通信协议(英文)
2. 安装
2.1 先决条件
-
BSW系统
- Linux:Ubuntu 18.04 或更高版本
- 窗户 10 / 11
-
工具:
- 支持 C++11 的编译器
- CMake 3.0+
-
拱:
- x86的
- 手臂
2.2 Ubuntu 20.04说明
- 依赖:
- CMake 3.0.0+
- 海湾合作委员会 4.8.1+
- 使用 apt 安装 CMake:
$ sudo apt install cmake
- 编译并安装 Livox-SDK2:
git clone https://github.com/Livox-SDK/Livox-SDK2.git
cd ./Livox-SDK2/
mkdir build
cd build
cmake .. && make -j
sudo make install
注意:
生成的共享库和静态库安装到“/usr/local/lib”目录下。头文件安装到 “/usr/local/include” 目录下。
提示:删除 Livox SDK2:
sudo rm -rf /usr/local/lib/liblivox_lidar_sdk_*
sudo rm -rf /usr/local/include/livox_lidar_*
2.3 Windows 10说明
- 依赖:
- Visual Studio 2019
- CMake 3.0.0+
- 制备:
> git clone https://github.com/Livox-SDK/Livox-SDK2.git
> cd Livox-SDK2
> md build && cd build
- 生成项目
- 64 位项目:
> cmake .. -G "Visual Studio 16 2019" -A x64
- 32 位项目:
> cmake .. -G "Visual Studio 16 2019" -A Win32
- 编译:
现在可以在 Visual Studio 2019 中编译 Livox-SDK2。
3. 运行示例
Livox SDK2 包含三个示例,分别是 “livox_lidar_quick_start”、“logger” 和 “multi_lidars_upgrade”。
3.1 Livox 激光雷达快速入门示例
在 Ubuntu 20.04 中
连接到激光雷达,然后运行程序“livox_lidar_quick_start”:
$ cd samples/livox_lidar_quick_start && ./livox_lidar_quick_start ../../../samples/livox_lidar_quick_start/[config file]
示例:
cd Livox-SDK2/build/samples/livox_lidar_quick_start
./livox_lidar_quick_start ../../../samples/livox_lidar_quick_start/hap_config.json
在 Windows 10 中
如上图安装所示编译 Livox SDK2 后,您可以在 Livox-SDK2\build\samples\livox_lidar_quick_start\Debug(or Release)\' 目录中找到 'livox_lidar_quick_start.exe'。
将配置文件“Livox-SDK2\samples\livox_lidar_quick_start\[config file]”复制到包含程序“livox_lidar_quick_start.exe”的目录中,然后运行:
> livox_lidar_quick_start.exe [config file]
然后,您可以看到以下信息:
> [info] Data Handle Init Succ. [data_handler.cpp] [Init] [42]
> [info] Create detection channel detection socket:0 [device_manager.cpp] [CreateDetectionChannel] [232]
注:
- [config file] 在上面的命令中表示配置文件名,您可以根据需要选择不同的配置文件。
3.2 记录器示例
参数配置
参数 | 详细说明 | 违约 |
---|---|---|
lidar_log_enable | 启用或禁用激光雷达记录器。 默认情况下,记录器处于启用状态。 | 真 |
lidar_log_cache_size_MB | 设置激光雷达日志缓存大小。单位是 MB 。 | 500 |
lidar_log_path | 设置激光雷达日志文件的保存路径。 默认情况下,日志文件保存在当前路径中。 | "./" |
这些参数位于 hap_config.json / mid360_config.json 文件中。
在 Ubuntu 20.04 中运行“记录器”
连接到激光雷达,然后运行程序“记录器”:
$ cd samples/logger && ./logger ../../../samples/logger/[config file]
在 Windows 10 中运行“记录器”
如上图安装所示编译 Livox SDK2 后,您可以在 Livox-SDK2\build\samples\logger\Debug(or Release)\' 目录下找到 'logger.exe'。
将配置文件“Livox-SDK2\samples\logger\[config file]”复制到包含程序“logger.exe”的目录中,然后运行:
> logger.exe [config file]
注:
- [config file] 在上面的命令中表示配置文件名,您可以根据需要选择不同的配置文件。
3.3 多激光雷达升级示例
在 Ubuntu 20.04 中
连接到激光雷达,然后运行程序“multi_lidars_upgrade”:
$ cd samples/multi_lidars_upgrade && ./multi_lidars_upgrade ../../../samples/[config file] [firmware file path]
执行上述命令后,激光雷达停止,固件升级开始。 激光雷达升级需要一段时间,升级进度打印在终端上。此外,完成升级时,终端上会打印“升级成功”。
在 Windows 10 中
如上图安装所示编译 Livox SDK2 后,您可以在 Livox-SDK2\build\samples\multi_lidars_upgrade\Debug(or Release)\' 目录下找到 'multi_lidars_upgrade.exe'。
将配置文件“Livox-SDK2\samples\multi_lidars_upgrade\[config file]”和固件文件复制到包含程序“multi_lidars_upgrade.exe”的目录中,然后运行:
> multi_lidars_upgrade.exe [config file] [firmware file name]
注:
- [config file] 在上面的命令中表示配置文件名,您可以根据需要选择不同的配置文件。
4. 配置文件
4.1 基本配置
下面是一个包含所有必填字段的基本配置示例:
{
"HAP": {
"lidar_net_info" : {
"cmd_data_port" : 56000,
"push_msg_port" : 0,
"point_data_port": 57000,
"imu_data_port" : 58000,
"log_data_port" : 59000
},
"host_net_info" : [
{
"lidar_ip" : ["192.168.1.10","192.168.1.11","192.168.1.12", "192.168.1.13"],
"host_ip" : "192.168.1.5",
"cmd_data_port" : 56000,
"push_msg_port" : 0,
"point_data_port": 57000,
"imu_data_port" : 58000,
"log_data_port" : 59000
}
]
}
}
必填字段的说明
- “HAP”:激光雷达类型,表示以下配置为HAP激光雷达类型;另一个选项是“MID360”,用于配置 MID-360 激光雷达类型。
- “lidar_net_info”:在激光雷达中设置端口。
- “cmd_data_port”:发送/接收控制命令的端口。
- “push_msg_port”:发送推送消息的端口。
- “point_data_port”:发送点云数据的端口。
- “imu_data_port”:发送 IMU 数据的端口。
- “log_data_port”:发送固件日志数据的端口。
- “host_net_info”:设置主机的配置,值为列表,表示可以配置多个主机。
- “lidar_ip”:这是一个列表,指示打算连接到此主机的激光雷达的所有 IP。
- “host_ip”:您正在配置的主机的 IP。
- “cmd_data_port”:发送/接收控制命令的端口。
- “push_msg_port”端口用于接收推送消息。
- “point_data_port”:接收点云数据的端口。
- “imu_data_port”:接收 IMU 数据的端口。
- “log_data_port”:用于接收固件日志数据的端口。
- “lidar_net_info”:在激光雷达中设置端口。
4.2 完整配置
下面是一个完整的示例,包括多激光雷达类型、配置和一些可选字段:
{
"master_sdk" : true,
"lidar_log_enable" : true,
"lidar_log_cache_size_MB" : 500,
"lidar_log_path" : "./",
"HAP": {
"lidar_net_info" : {
"cmd_data_port" : 56000,
"push_msg_port" : 0,
"point_data_port": 57000,
"imu_data_port" : 58000,
"log_data_port" : 59000
},
"host_net_info" : [
{
"lidar_ip" : ["192.168.1.10","192.168.1.11","192.168.1.12", "192.168.1.13"],
"host_ip" : "192.168.1.5",
"multicast_ip" : "224.1.1.5",
"cmd_data_port" : 56000,
"push_msg_port" : 0,
"point_data_port": 57000,
"imu_data_port" : 58000,
"log_data_port" : 59000
}
]
},
"MID360": {
"lidar_net_info" : {
"cmd_data_port" : 56100,
"push_msg_port" : 56200,
"point_data_port": 56300,
"imu_data_port" : 56400,
"log_data_port" : 56500
},
"host_net_info" : [
{
"lidar_ip" : ["192.168.1.3"],
"host_ip" : "192.168.1.5",
"multicast_ip" : "224.1.1.5",
"cmd_data_port" : 56101,
"push_msg_port" : 56201,
"point_data_port": 56301,
"imu_data_port" : 56401,
"log_data_port" : 56501
}
]
}
}
OPTIONAL 字段的说明
- “master_sdk”:用于多播场景。
- 'true'代表主SDK,“false”代表slave SDK;
- “master SDK”可以向激光雷达发送控制命令并接收数据,而“slave SDK”只能接收来自激光雷达的点云数据。
- 注意:只能将一个 SDK(主机)设置为“master SDK”。其他应设置为“slave SDK”。
- “lidar_log_enable”: 'true' 或 'false' 表示是否启用固件日志。
- “lidar_log_cache_size_MB”:设置固件日志的存储大小,单位:MB。
- “lidar_log_path”:设置固件日志数据的存储路径。
- “multicast_ip”:此字段位于父键“host_net_info”中,表示多播 IP。
5. 支持
您可以通过以下方式获得 Livox 的支持:
- 向 cs@livoxtech.com 发送电子邮件,并附上您的问题和设置的详细说明;
- 提出 github 问题