项目简介
这是一个官方的C语言库,以Apache License 2.0开源,为与Provizio雷达进行通信提供API。该库支持C99+,可在C++及其他客户端语言中使用。它具备跨平台特性,能在Linux、macOS、Windows等多种操作系统,以及x64、x86、ARM等架构上运行,采用CMake 3.10+进行构建。
项目的主要特性和功能
- 跨平台兼容性:支持Linux、macOS、Windows系统,以及x64、x86、ARM架构。
- 低依赖与高性能:无外部依赖,内部无动态分配,使用客户端预分配对象,不创建内部线程,支持单线程和多线程使用。
- 灵活的数据传输:提供内置UDP接口,也支持集成自定义传输或回放。
- 代码规范性:符合MISRA标准,具备完整的单元测试覆盖。
- 丰富的雷达操作功能:包括雷达连接、点云接收、点云累积、雷达范围设置等。
安装使用步骤
假设用户已经下载了本项目的源码文件,以下是具体步骤:
编译与链接
该库是一个使用CMake 3.1.0+构建的静态C库,在项目中使用它有多种方式:
1. CMake项目使用ExternalProject_Add:可在CMake项目中使用ExternalProject_Add
引入,示例代码见文档。
2. CMake项目使用add_subdirectory:将库作为文件夹复制或作为git子模块添加到项目中,使用add_subdirectory
和target_link_libraries
进行链接。
3. 标准系统路径安装:可将库构建并安装到标准系统路径,然后直接使用或链接。
4. 临时文件夹安装:可在项目构建时将库构建并安装到临时文件夹。
高级编译配置
配置库时可指定一些CMake参数,如-DAVOID_PACKETS_DUPLICATION=ON/OFF
用于检测和丢弃重复数据包,-DVERBOSE=ON/OFF
用于启用详细日志。
初始化
- 包含核心头文件:
#include "provizio/radar_api/core.h"
- 可选设置自定义警告和错误处理函数。
- 对于实时UDP使用,每个进程运行时初始化一次套接字系统。
- 创建并初始化
provizio_radar_point_cloud_api_context
或其数组。
连接
在实时UDP模式下,初始化后进行连接,支持单雷达和多雷达在同一UDP端口的连接。
接收点云
支持实时UDP接收和自定义传输或回放接收点云,点云回调函数可处理完整或部分点云。
点云累积
点云累积可使点云更密集,物体特征更清晰。需包含累积头文件,创建并初始化累积缓冲区,存储定位信息,在接收点云时进行累积,可使用过滤函数,最后可检索累积的点云。
更改雷达范围
使用provizio_set_radar_range
函数更改雷达范围。
关闭
完成操作后,关闭连接,正确释放分配的资源,若初始化了套接字系统,需进行反初始化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】