激光雷达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个数据点。
相关文章:
激光雷达YDLIDAR X2 SDK安装
激光雷达YDLIDAR X2 SDK安装 陈拓 2024/12/15-2024/12/19 1. 简介 YDLIDAR X2官方网址https://ydlidar.cn/index.htmlYDLIDAR X2 YDLIDAR X2是一款高性能的激光雷达传感器,具有以下主要特点和规格参数: 测距频率:3000Hz 扫描频…...
大模型在肝硬化风险预测及临床决策中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 1.3 研究方法与数据来源 二、肝硬化及大模型相关理论基础 2.1 肝硬化概述 2.2 大模型技术原理 2.3 大模型在医疗领域的应用现状 三、大模型预测肝硬化术前风险 3.1 术前风险因素分析 3.2 大模型预测术前风险…...
计算机毕业设计SpringBoot+Vue.js母婴商城(源码+LW文档+PPT+讲解+开题报告)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Java多线程三:补充知识
精心整理了最新的面试资料,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Lambda表达式 简介: 希腊字母表中排序第十一位的字母,英语名称为Lambda避免匿名内部类定义过多其实质属于函数式编程的概念 为什么要使用lam…...
计算机网络————(一)HTTP讲解
基础内容分类 从TCP/IP协议栈为依托,由上至下、从应用层到基础设施介绍协议。 1.应用层: HTTP/1.1 Websocket HTTP/2.0 2.应用层的安全基础设施 LTS/SSL 3.传输层 TCP 4.网络层及数据链路层 IP层和以太网 HTTP协议 网络页面形成基本 流程:…...
stream流常用方法
1.reduce 在Java中,可以使用Stream API的reduce方法来计算一个整数列表的乘积。reduce方法是一种累积操作,它可以将流中的元素组合起来,返回单个结果。对于计算乘积,你需要提供一个初始值(通常是1,因为乘法…...
最新扣子(Coze)案例教程:全自动DeepSeek 写影评+批量生成 + 发布飞书,提效10 倍!手把手教学,完全免费教程
👨💻群里有同学是做影视赛道的博主,听说最近DeepSeek这么火,咨询能不能用DeepSeek写影评,并整理电影数据资料,自动发布到飞书文档,把每天的工作做成一个自动化的流程。 那今天斜杠君就为大家…...
数据结构:动态数组vector
vector 是 C 标准库的动态数组。 在C语言中一般初学者会使用malloc,int[n]等方式来创建静态数组,但是这种方式繁琐且容易出错。我们做算法题一般使用动态数组vector, 并且在刷题网站的题目给的输入一般也是vector类型。 示例:vect…...
【HeadFirst系列之HeadFirst设计模式】第9天之模板方法模式:从咖啡和茶到Spring框架,掌握设计模式的精髓
模板方法模式:从咖啡和茶到Spring框架,掌握设计模式的精髓 《Head First 设计模式》是一本经典的设计模式入门书籍,它以轻松幽默的方式讲解了设计模式的核心思想。其中,模板方法模式是一个非常简单但非常实用的设计模式ÿ…...
力扣hot100——排序链表(常见方法,归并排序)
解题思路: 分解(Divide):将待排序的列表递归地分成两半,直到每个子列表只包含一个元素(此时每个子列表都是有序的)。解决(Conquer):递归地对每个子列表进行排…...
使用 DeepSeek 和 ECharts 实现大屏数据可视化
引言 在当今数据驱动的时代,数据可视化成为了分析和展示数据的重要手段。大屏数据可视化不仅能够直观地展示数据,还能帮助决策者快速理解复杂信息。本文将介绍如何结合 DeepSeek(一个强大的数据处理与分析工具)和 ECharts(一个流行的数据可视化库)来实现大屏数据可视化。…...
基于springboot+vue的新生报到管理系统
一、系统架构 前端:vue | element-ui | echarts 后端:springboot | mybatis-plus | jwt 环境:jdk1.8 | mysql | maven 二、代码及数据 三、功能介绍 01. 登录 02. 首页 03. 管理员-系统管理-用户管理 04. 管理员-系统…...
【面试系列】Java开发--AI常见面试题
文章目录 1、实际工作或学习中用过哪些Ai工具1.1、AI编程1.2、AI对话聊天1.3、AI图像工具1.4、AI办公工具 2、谈谈你知道的AI领域的一些常见词汇及其含义的理解? 例如AIGC、LLM、DeepLearning分别是什么意思?2.1、AIGC(Artificial Intelligen…...
Maven 基础环境搭建与配置(二)
四、本地仓库配置,存储依赖 在 Maven 的世界里,本地仓库就像是一个 “私人储物间”,专门用来存放项目所需的各种依赖构件,如 JAR 包、WAR 包等。当我们构建项目时,Maven 会首先在本地仓库中查找所需的依赖,…...
了解ffmpeg,安装并配置环境变量
一、了解FFmpeg FFmpeg 是一个功能强大的开源多媒体框架,能够处理音视频的录制、转换和流媒体传输。它由 Fabrice Bellard 发起,采用 LGPL/GPL 许可证,广泛应用于各种平台,包括 Linux、Windows 和 macOS 什么是FFmpeg࿱…...
Deepseek reasoning-content 透出调研
Deepseek reasoning-content 透出调研 部署方式:Docker Ollama Deepseek-R1:8b 参考: https://help.apiyi.com/deepseek-reasoning-content-guide.htmlhttps://yuluo-yx.github.io/blog/%E4%BD%BF%E7%94%A8-Ollama-%E9%83%A8%E7%BD%B2-DeepSeek-%E5…...
Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现
Codes 简介 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作,使敏捷开发更易于实施。并提供低成本的敏捷开发解决方案࿰…...
Leetcode K个一组翻转链表
双指针法,java solution class Solution {public ListNode reverseKGroup(ListNode head, int k) {if(head null || head.next null) return head;//设置pre和index节点ListNode pre head, index head.next;int m 0;while(m < k && index ! null) …...
电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦
下面的是我解决问题的心路历程,不想看的可以直接跳到解决方法上面! 内心思路: w11电脑更新过系统后,我的电脑是常年不关机的,但是一天突然断网,试了很多方法都连不上,重启电脑就会好࿰…...
Python 性能剖析利器:DTrace 与 SystemTap 深度指南
在 Python 开发过程中,深入了解程序的运行时行为对于优化性能、排查问题至关重要。本文聚焦于 DTrace 和 SystemTap 这两款强大的监控工具,详细介绍它们在 CPython 中的应用,包括启用静态标记、编写 DTrace 和 SystemTap 脚本、利用可用的静态…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...





