当前位置: 首页 > news >正文

激光雷达YDLIDAR X2 SDK安装

激光雷达YDLIDAR X2 SDK安装

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

1. 简介

  • YDLIDAR X2官方网址
  • https://ydlidar.cn/index.html
  • ‌YDLIDAR X2

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个数据点。

相关文章:

  • RESTful 的特点与普通 Web API 的区别
  • 【GPT】从GPT1到GPT3
  • 某大型业务系统技术栈介绍【应对面试】
  • C++中的线程同步方式
  • Linux 配置ntp时间同步
  • 代码随想录算法训练营第四十三天| 动态规划06
  • Exchange Server 2019 CU3升级到Exchange Server 2019 CU14
  • C#学习之DataGridView控件
  • 华为云deepseek大模型平台:deepseek满血版
  • Vision Transformer图像分类实现
  • 在HBase中,LSM树是如何工作的
  • 深入解析 iText 7:从 PDF 文档中提取文本和图像
  • Windows 启动 SSH 服务报错 1067
  • @Async java异步实现
  • 【Go语言快速上手】第二部分:Go语言进阶之数据库操作
  • Zookeeper(58)如何在Zookeeper中实现分布式锁?
  • Zookeeper 和 Redis 哪种更好?
  • Mysql各操作系统安装全详情
  • Maven——Maven开发经验总结(1)
  • 常用的 React Hooks 的介绍和示例
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • 深入贯彻中央八项规定精神学习教育中央第七指导组指导督导中国船舶集团见面会召开
  • 前瞻|美联储明晨“按兵不动”几无悬念:关税战阴霾下,会否释放降息信号
  • 央行:增加科技创新和技术改造再贷款额度3000亿元
  • 刘诚宇、杨皓宇进球背后,是申花本土球员带着外援踢的无奈
  • 巴基斯坦外交部:印度侵略行径侵犯巴主权