镭神智能N301-P调试使用

目录

一、项目介绍

1.1简介

1.2历程

1.3软硬件

二、项目实现的功能

三、如何部署使用

3.1官方说明

3.1.1准备工作

3.1.2编译和运行

3.2自测说明

四、代码组织结构


一、项目介绍

1.1简介

实验室遗留了一个雷达,该项目用来测试雷达是否有问题,能否正常使用以及在其他项目中使用该雷达。

1.2历程

  1. 在淘宝询问各卖该设备的商家是否有使用手册(都为二手贩子,都没有)。

  2. 登入该厂家官网企业介绍-深圳市镭神智能系统有限公司,寻找对应资料。联系在线客服获取雷达的输入电压以及SDK。

  3. 在中控中下载调试雷达。

1.3软硬件

雷达供电电压为24V,项目使用的软硬件型号如下

设备型号
雷达设备镭神智能N301-P
中控型号Jeston Orin AGX

二、项目实现的功能

  1. 获取雷达数据

  2. 可视化雷达数据

三、如何部署使用

在doc目录中有ZH_linux_and_win_demo_SDK_v2.2.0说明文档。

3.1官方说明

注:官方说明可能与雷达实际不一致,如果按官方说明测试失败请看3.2自测说明

3.1.1准备工作

  1. 通过网线把中控与雷达相连,并通过拔插网线并观察命令行中ifconfig的变换,确定有线连接设备名。

  2. 把ip地址改为192.168.1.102,子网掩码为255.255.255.0,代码如下,其中eth1为有线连接设备名。 ifconfig eth1 192.168.1.102 netmask 255.255.255.0

  3. 如果没有事先安装好pcl点云库,可输入以下命令安装 sudo apt-get install libpcl-dev

3.1.2编译和运行

  1. 切换到文件夹所在目录,并执行以下代码进行编译

    cd build
    cmake ..
    make -j4
  2. 进入生成可执行文件目录中

    cd ../bin
    作用命令
    获取数据 demo./demo
    可视化 demo_viewer./demo_viewer
    可视化离线包 demo_viewer_Pcap./demo_viewer_Pcap

    注意:离线的文件要放到./demo/PcapPacketPath文件夹中并在源文件main_PCL_Pcap.cpp 中修改对应的文件名,修改离线包的名称

3.2自测说明

  1. 打开终端:ping 雷达 IP,测试硬件是否连接正常,若ping通则正常,否则检测硬件连接。

    ping 192.168.1.222

    1745466801701

  2. 使用tcpdump查看雷达发送数据包情况,如果显示雷达发送到目的端数据包为1206个字节,则表示雷达数据发送正常。(eth1为有线连接设备名)

    sudo tcpdump -ni eth1

    1745467808066

    :如果显示雷达发送到目的端数据包为28个字节,则为雷达数据传不到中控,原因可能为

    1. 网线连接问题

    2. 中控ip未能和雷达ip处在同一局域网,可使用ifconfig eth1查看中控设置的IP

  3. 由步骤2中IP 192.168.1.22.2369 > 192.168.1.125.2368: UDP可知

    雷达ip为192.168.1.22,发送消息的端口号为2369

    中控ip为192.168.1.125,接收消息的端口号为2368

    使用UDP协议进行通讯

    :这里我把eth1的ip改为了192.168.1.102,并使用tcpdump进行抓包,也可接收到雷达数据,因为它们此刻处于一个局域网。

    1745468478802

  4. 打开demo文件夹中的main.cpp和main_PCL.cpp,把以下ip和端口修改为步骤3中雷达pi、端口和中控ip、端口

    1745470995904

    1745471099012

  5. 按3.1.2编译和运行步骤重新编译运行,下图为执行./demo_viewer后的可视化结果图,蓝色点为检测到的障碍物。

    d3be008acac1a7334d2640ac253a590

    注:如果输出为Failed to bind socket,可能是端口2368被占

    1745472075493

    使用lsof命令查出占用2368端口的进程,并使用kill命令进行消灭

    sudo lsof -i :2368  # 检查2368端口占用
    sudo kill -9 XXXX  #XXXX为sudo lsof -i :2368命令输出的进程号

四、代码组织结构

bin编译生成的可执行文件
build编译的目录
include头文件和源文件的目录
doc说明文档的路径
demomain.cpp一般般示例,获取点云的文件, 输出点云数据
demomain_PCL.cpp获取点云的文件,增加PCL 可视化的库,显示点云
demomain_PCL_Pcap.cpp获取点云的文件,增加PCL 可视化的库,pcap的离线解 析示例,显示点云: 注意:离线的文件要放到 demo/PcapPacketPath文件 夹内并在源文件中修改对应 的文件main_PCL_Pcap.cpp 内修改离线包的名称
CMakeLists.txtCmake文件,配置编译项目 配置编译规则

### 关于 N301 单线激光雷达的数据处理方法 对于 N301 这样的单线激光雷达,其主要功能在于提供二维平面内的距离测量数据。这些数据可以被用于构建环境的地图或是检测路径上的障碍物等应用。 #### 数据接收与解析 要开始处理来自 N301 的数据,首先要确保能够成功接收到设备发送的信息流。这通常涉及到通过串口通信协议来读取原始的距离数值以及角度信息。在 Linux 系统下(如 Ubuntu),可能需要安装特定驱动程序并配置网络接口以便正确识别和访问雷达装置[^1]。 一旦建立了稳定连接,则可通过 SDK 或者自定义脚本来提取每一轮扫描产生的极坐标形式的点集{(r, θ)},其中 r 表示测距结果而θ代表相应方位角。为了便于后续分析,往往还需要将此转换成笛卡尔坐标系下的(x, y)表示法: ```python import math def polar_to_cartesian(rho, phi): """Converts from polar coordinates to cartesian.""" x = rho * math.cos(phi) y = rho * math.sin(phi) return (x, y) # Example usage with dummy data points representing distance and angle. points_polar = [(1.0, 0), (2.0, math.pi / 4)] points_cartesian = [polar_to_cartesian(*point) for point in points_polar] print(points_cartesian) ``` #### 基础滤波技术 由于传感器本身的局限性和外界因素干扰,在实际采集过程中不可避免地会出现噪声点或异常值。因此有必要实施初步过滤措施以提高数据质量。常用手段包括但不限于滑动平均、中值滤波器或者是基于统计学原理去除离群点的方法。 例如采用简单的移动窗口均值算法平滑曲线走势: ```python from collections import deque class MovingAverageFilter: def __init__(self, window_size=5): self.window = deque(maxlen=window_size) def filter(self, value): self.window.append(value) avg = sum(self.window)/len(self.window) return avg filter_instance = MovingAverageFilter() filtered_data = [filter_instance.filter(point[0]) for point in points_cartesian] ``` #### 特征提取与对象识别 经过预处理后的干净数据可用于进一步挖掘有用特征,比如边缘轮廓描绘、聚类分析寻找独立实体等等。针对具体应用场景的不同需求选取合适的机器学习模型训练分类器实现自动化决策支持系统;亦或是利用几何关系判断是否存在潜在碰撞风险从而触发预警机制。 考虑到N301属于单线产品特性所限,更多侧重于一维方向上的感知能力提升而非复杂三维建模任务。不过即便如此也足以满足诸如AGV导航避障之类的基础作业要求了[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值