Livox SDK2

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):

  • HAP通信协议 (中文)
  • HAP 通信协议(英文版)

中 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说明

  1. 依赖:
  • CMake 3.0.0+
  • 海湾合作委员会 4.8.1+
  1. 使用 apt 安装 CMake
$ sudo apt install cmake
  1. 编译并安装 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说明

  1. 依赖:
  • Visual Studio 2019
  • CMake 3.0.0+
  1. 制备:
> git clone https://github.com/Livox-SDK/Livox-SDK2.git
> cd Livox-SDK2
> md build && cd build
  1. 生成项目
  • 64 位项目:
> cmake .. -G "Visual Studio 16 2019" -A x64
  • 32 位项目:
> cmake .. -G "Visual Studio 16 2019" -A Win32
  1. 编译:

现在可以在 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]

注:

  1. [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]

注:

  1. [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]

注:

  1. [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”:用于接收固件日志数据的端口。

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 的支持:

  • 向 [email protected] 发送电子邮件,并附上您的问题和设置的详细说明;
  • 提出 github 问题

你可能感兴趣的:(lidar)