激光雷达YDLIDAR X2 SDK安装

激光雷达YDLIDAR X2 SDK安装

  • 陈拓 2024/12/15-2024/12/19

1. 简介

YDLIDAR X2是一款高性能的激光雷达传感器,具有以下主要特点和规格参数‌:

‌测距频率‌:3000Hz

‌扫描频率‌:5-8Hz

‌测距半径‌:0.12-8m

‌扫描角度‌:360°

‌角度分辨率‌:0.6-0.96°

‌外观尺寸‌:Φ60.550.396mm

YDLIDAR X2采用红外点状脉冲式激光器,符合FDA Class I激光安全标准,保护儿童及宠物的眼睛健康。其机械结构设计为360°旋转,能够全方位扫描测距,稳定输出点云数据‌。此外,X2自带电机调速功能的电机驱动器,可以自行调制扫描频率,满足不同的应用需求‌。

‌应用领域‌方面,YDLIDAR X2广泛应用于创客教育、科学研究、算法验证、小车避障等场景。其小尺寸、低功耗、高性能的特点,使得在机器人小车的建图、导航、避障方面表现出色。此外,YDLIDAR X2还适用于智能扫地机器人,优化了扫地机的空间结构,提升了其建图、导航和避障的能力。

2. 构建和安装SDK

https://ydlidar.cn/service_support/download.html

2.1 GitHub仓库

https://github.com/YDLIDAR/YDLidar-SDK

2.2 YDLidar SDK

YDLidar SDK是为所有YDLidar产品设计的软件开发工具包。它是基于C/C++开发的,遵循YDLidar SDK通信协议,并提供易于使用的C/C++、Python、C#风格的API。使用YDLidar SDK,用户可以快速连接YDLidar产品并接收激光扫描数据。

YDLidar SDK由YDLidar-SDK通信协议、YDLidar SDK内核、YDLidar SDK API、Linux/windows示例和Python演示组成。

2.2.1 支持的操作系统
  • Linux
  • Windows 7/10,Visual Studio 2015/2017
  • C++11编译器
2.2.2 支持的语言
  • C/C++
  • Python
  • C#
2.2.3 YDLidar SDK通信协议

YDLidar SDK通信协议对所有用户开放。它是用户程序与YDLIDAR产品之间的通信协议。该协议由控制命令和数据格式组成。有关详细信息,请参阅YDLidar SDK通信协议:

https://github.com/YDLIDAR/YDLidar-SDK/blob/master/doc/YDLidar-SDK-Communication-Protocol.md

2.2.4 架构(Architecture)

YDLidar SDK提供了控制命令和激光扫描数据传输的实现,,以及C/C++、Python API。YDLidar SDK的基本结构如下所示

串口或网络用于YDLidar SDK和LiDAR传感器之间的通信。有关详细信息,请参阅YDLidar SDK通信协议。LaserScan支持激光扫描数据传输,而命令处理程序接收和发送控制命令。C++ API基于Command和LaserScan Hander。

YDLidar LiDAR传感器可以通过串口或通过YDLidar适配器板直接连接到主机。YDLidar SDK支持这两种连接方式。当激光雷达单元通过串口直接连接到主机时,主机将单独与每个激光雷达单元建立通信。如果激光雷达单元通过转接板连接到主机,则主机仅与YDLidar转接板通信,而转接板与每个激光雷达单元通信。

2.3 我的系统

  • 硬件系统架构

arch

  • 操作系统版本

lsb_release -a

2.4 克隆代码

  • 克隆YDLidar SDK的GitHub代码

git clone https://github.com/YDLIDAR/YDLidar-SDK.git

2.5 安装CMake

  • 安装CMake
  • 如果要使用python API,需要安装python和swig(3.0或更高版本)

SWIG(Simplified Wrapper and Interface Generator)是一个软件开发工具,主要用于将C和C++编写的程序与各种高级编程语言连接起来。它支持多种目标语言,包括常见的脚本语言如Javascript、Perl、PHP、Python、Tcl和Ruby,以及非脚本语言如C#、D、Go、Java(包括Android)、Lua、OCaml、Octave、Scilab和R等。

sudo apt install swig

2.6 构建YDLidar-SDK(C++)

  • 官方文档

https://github.com/YDLIDAR/YDLidar-SDK/blob/master/doc/howto/how_to_build_and_install.md

  • 构建

mkdir YDLidar-SDK/build

cd YDLidar-SDK/build

cmake ..

生成可执行文件:

make

安装SDK:

sudo make install

3. 运行YDLidar SDK示例

3.1 将YDLIDAR X2通过串口连接到

我使用CH340G,USB-串口转换器

转换器的RX的YDLIDAR X2的TX。

3.2 Ubuntu22.04安装CH340驱动

见《Ubuntu22.04安装CH340和CH341驱动》。

Ubuntu22.04安装CH340/CH341驱动_ubuntu ch340驱动-CSDN博客

  • 插上USB串口转换器

用dmesg命令查看:

sudo dmesg | grep ch341-uart

ch341 uart转换器现在连接到ttyUSB0。

  • 在/dev目录查看tty设备

ls -l /dev/ttyUSB0

  • 修改/dev/ ttyUSB0设备权限

sudo chmod 777 /dev/ttyUSB0

3.2 运行示例

examples中提供了三个示例,分别演示了如何配置YDLidar LiDAR单元以及如何在直接连接YDLidar SDK和使用YDLidar Adapter板的情况下接收激光扫描数据。

3.2.1 运行tri_test连接三角激光雷达单元
  • 进入SDK目录

cd ~/YDLidar-SDK/build

  • 运行tri_test

./tri_test

"Scan received [494] points scanFreq [6.00]" 的意思是:

扫描收到了494个数据点,扫描频率为6.00Hz,即设备每秒钟会采集6次数据。

如果扫描频率是6.00Hz,那么采集494个数据点所需的时间为:

也就是说,设备在82秒内采集了494个数据点。

相关推荐
Black蜡笔小新2 天前
WebRTC嵌入式视频通话SDK:EasyRTC从免插件到轻量级带来的音视频通话技术
音视频·webrtc·sdk·rtc·webp2p
EasyNVR5 天前
EasyRTC智能硬件:小体积,大能量,开启音视频互动新体验
前端·安全·音视频·webrtc·sdk·p2p·智能硬件
岁月如歌,青春不败10 天前
无人机生态环境监测、图像处理与GIS数据分析
图像处理·数据分析·gis·无人机·生态学·激光雷达·环境科学
做猪呢,最重要的是开森啦13 天前
如何导入第三方sdk | 引入第三方jar 包
maven·jar·sdk·第三方sdk
bohu8320 天前
亚博microros小车-原生ubuntu支持系列:15 激光雷达巡逻
ubuntu·激光雷达·小车·亚博·micoros·巡逻路线
bohu8321 天前
亚博microros小车-原生ubuntu支持系列:18 Cartographer建图
ubuntu·激光雷达·cartographer·microros·亚博·建图·机器人小车
bohu8322 天前
亚博microros小车-原生ubuntu支持系列:17 gmapping
slam·激光雷达·rviz·gmapping·microros·亚博·构建地图
机器视觉小小测试员24 天前
工业相机 SDK 二次开发-VC6.0 程序示例
二次开发·sdk·工业相机·vc6.0
深蓝学院24 天前
顶刊JFR|ROLO-SLAM:首个针对不平坦路面的车载Lidar SLAM系统
slam·激光雷达