littlebot
Published on 2025-04-08 / 1 Visits
0

【源码】基于C语言的Provizio雷达通信API库

项目简介

这是一个官方的C语言库,以Apache License 2.0开源,为与Provizio雷达进行通信提供API。该库支持C99+,可在C++及其他客户端语言中使用。它具备跨平台特性,能在Linux、macOS、Windows等多种操作系统,以及x64、x86、ARM等架构上运行,采用CMake 3.10+进行构建。

项目的主要特性和功能

  1. 跨平台兼容性:支持Linux、macOS、Windows系统,以及x64、x86、ARM架构。
  2. 低依赖与高性能:无外部依赖,内部无动态分配,使用客户端预分配对象,不创建内部线程,支持单线程和多线程使用。
  3. 灵活的数据传输:提供内置UDP接口,也支持集成自定义传输或回放。
  4. 代码规范性:符合MISRA标准,具备完整的单元测试覆盖。
  5. 丰富的雷达操作功能:包括雷达连接、点云接收、点云累积、雷达范围设置等。

安装使用步骤

假设用户已经下载了本项目的源码文件,以下是具体步骤:

编译与链接

该库是一个使用CMake 3.1.0+构建的静态C库,在项目中使用它有多种方式: 1. CMake项目使用ExternalProject_Add:可在CMake项目中使用ExternalProject_Add引入,示例代码见文档。 2. CMake项目使用add_subdirectory:将库作为文件夹复制或作为git子模块添加到项目中,使用add_subdirectorytarget_link_libraries进行链接。 3. 标准系统路径安装:可将库构建并安装到标准系统路径,然后直接使用或链接。 4. 临时文件夹安装:可在项目构建时将库构建并安装到临时文件夹。

高级编译配置

配置库时可指定一些CMake参数,如-DAVOID_PACKETS_DUPLICATION=ON/OFF用于检测和丢弃重复数据包,-DVERBOSE=ON/OFF用于启用详细日志。

初始化

  1. 包含核心头文件:#include "provizio/radar_api/core.h"
  2. 可选设置自定义警告和错误处理函数。
  3. 对于实时UDP使用,每个进程运行时初始化一次套接字系统。
  4. 创建并初始化provizio_radar_point_cloud_api_context或其数组。

连接

在实时UDP模式下,初始化后进行连接,支持单雷达和多雷达在同一UDP端口的连接。

接收点云

支持实时UDP接收和自定义传输或回放接收点云,点云回调函数可处理完整或部分点云。

点云累积

点云累积可使点云更密集,物体特征更清晰。需包含累积头文件,创建并初始化累积缓冲区,存储定位信息,在接收点云时进行累积,可使用过滤函数,最后可检索累积的点云。

更改雷达范围

使用provizio_set_radar_range函数更改雷达范围。

关闭

完成操作后,关闭连接,正确释放分配的资源,若初始化了套接字系统,需进行反初始化。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】