激光雷达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 扫描频…...
DeepSeek-R1:使用KTransformers部署(保姆级教程)
1. 引言 KTransformers作为一个开源框架,专门为优化大规模语言模型的推理过程而设计。它支持GPU/CPU异构计算,并针对MoE架构的稀疏性进行了特别优化,可以有效降低硬件要求,允许用户在有限的资源下运行像DeepSeek-R1这样庞大的模型…...
什么是Spring Boot?
Spring Boot 是基于 Spring 框架的扩展工具,旨在简化 Spring 应用的初始搭建和开发流程。它通过约定优于配置和自动装配机制,减少了传统 Spring 开发中的繁琐配置,使开发者能快速构建独立运行、生产级别的应用。 Spring Boot 的核心特性 自动…...
C++ 学习路线:从入门到精通,全面掌握 C++ 编程
引言 C 是一种高性能的系统级编程语言,广泛应用于游戏开发、嵌入式系统、高性能计算等领域。尽管 C 的学习曲线较为陡峭,但掌握它将为你的职业发展带来巨大的优势。本文将为你提供一条清晰的 C 学习路线,帮助你从入门到精通,逐步…...
【算法精练】背包问题(01背包问题)
目录 1. 背包问题 2. 01背包问题 3. 优化 总结 1. 背包问题 经典的背包问题: 有一个背包,限制背包的体积;有一堆物品,从这堆物品中选择,在不超过背包容量的前提下,选出最大价值的物品; 从这个…...
宇树机器人G1 SDK实战和交付
最近客户有需求定制机宇树机器人G1 的功能,在接到需求后。进行了评估报价和开发。现在已经进入开发交付阶段 现在已经拿到了G1和H1版本的人型机器人。 需求是使用宇树机器G1 或H1在展馆进行路线移动,或指定移动路径,并且不能碰到小朋友&…...
使用EasyExcel和多线程实现高效数据导出
使用EasyExcel和多线程实现高效数据导出 1. 概述 在企业级应用中,数据导出是一个常见的需求。为了提高导出效率,尤其是在处理大量数据时,我们可以结合使用EasyExcel库和多线程技术。本文将详细介绍如何通过EasyExcel和多线程技术实现高…...
如何监控和优化 MySQL 中的慢 SQL
如何监控和优化 MySQL 中的慢 SQL 前言一、什么是慢 SQL?二、如何监控慢 SQL?1. 启用慢查询日志启用方法:日志内容: 2. 使用 mysqldumpslow 分析日志 三、如何分析慢 SQL?1. 使用 EXPLAIN 分析执行计划使用方法&#x…...
SPO(Self-Supervised Prompt Optimization)自我监督Prompt提示优化的全景指南
HuggingFace 链接:https://huggingface.co/spaces/XiangJinYu/SPO 作者也与国内的 ModelScope 魔搭社区官方进行了合作,现在可以体验由 Deepseek-V3 和 Qwen-2.5-72B 等开源模型驱动的 SPO。 ModelScope 链接: https://modelscope.cn/studios/AI-ModelScope/SPO 在大语言…...
【云安全】云原生-Docker(六)Docker API 未授权访问
Docker API 未授权访问 是一个非常严重的安全漏洞,可能导致严重的安全风险。 什么是 Docker API ? Docker API 是 Docker 容器平台提供的一组 RESTful API,用于与 Docker 守护程序进行通信和管理 Docker 容器。通过 Docker API,…...
9.PG数据库层权限管理(pg系列课程)第2遍
一、PostgreSQL数据库属主 Postgres中的数据库属主属于创建者,只要有createdb的权限就可以创建数据库,数据库属主不一定拥有存放在该数据库中其它用户创建的对象的访问权限。数据库在创建后,允许public角色连接,即允许任何人连接…...
Pytorch深度学习教程_3_初识pytorch
欢迎来到《PyTorch深度学习教程》系列的第三篇!在前面的两篇中,我们已经介绍了Python及numpy的基本使用。今天,我们将深入探索PyTorch的核心功能,帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏: 深度…...
个人博客5年回顾
https://huangtao01.github.io/ 五年前,看程序羊的b站视频做的blog,受限于网络,只能单向学习,没有人指导与监督,从来没有想过,有没有什么问题? 一、为什么要做个人博客? 二、我是怎么…...
DeepSeek与ChatGPT:会取代搜索引擎和人工客服的人工智能革命
云边有个稻草人-CSDN博客 在众多创新技术中,DeepSeek和ChatGPT无疑是最为引人注目的。它们通过强大的搜索和对话生成能力,能够改变我们与计算机交互的方式,帮助我们高效地获取信息,增强智能服务。本文将深入探讨这两项技术如何结合…...
SpringBoot高级-底层原理
目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…...
百问网(100ask)的IMX6ULL开发板的以太网控制器(MAC)与物理层(PHY)芯片(LAN8720A)连接的原理图分析(包含各引脚说明以及工作原理)
前言 本博文承接博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 。 本博文和博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 的目录是找出百问网(100ask)的IMX6ULL开发板与NXP官方提供的公板MCIMX6ULL-EVK(imx6ull14x14evk)在以太网硬件…...
使用 PyTorch 实现标准卷积神经网络(CNN)
卷积神经网络(CNN)是深度学习中的重要组成部分,广泛应用于图像处理、语音识别、视频分析等任务。在这篇博客中,我们将使用 PyTorch 实现一个标准的卷积神经网络(CNN),并介绍各个部分的作用。 什…...
openGauss 3.0 数据库在线实训课程18:学习视图管理
前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见:openGauss 3.0.0数据库在线实训课程 学习目标 掌握openGauss视图的管理:创建视图、删除视图、查询视图的信息、修改视图的信息。 课程作业 1.创建表,创建普通视图…...
nginx ngx_http_module(7) 指令详解
nginx ngx_http_module(7) 指令详解 nginx 模块目录 nginx 全指令目录 一、目录 1.1 模块简介 以下是您请求的Nginx HTTP相关模块的简述: ngx_http_proxy_protocol_vendor_module:这是一个商业订阅模块,允许从云平台的应用特定TLV&#…...
用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战
系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房?****二、准备工作****三、实战步骤详解****Step 1:数据爬取与清洗&am…...
青少年编程都有哪些比赛可以参加
Python小学生可参加的赛事: 电子学会青少年编程考级、中国计算机学会编程能力等级认证、蓝桥杯、 信奥赛CSP-J/S初赛/NOIP(推荐C)、编程设计、信息素养、科技创新赛; 升学助力(科技特长生、大学)、企业、出国留学; python比赛&am…...
如何使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈
使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈:详细分析与实战 在开发 Flutter 应用时,性能问题可能会导致用户体验下降,比如页面卡顿、掉帧、内存泄漏等。为了定位和解决这些问题,Flutter 提供了强大的性能监控工具…...
拯救者电脑在重装系统之后电源计划丢失Fn+Q切换不了模式怎么恢复?
参考联想知识库的一下链接: https://iknow.lenovo.com.cn/detail/196192 其中下载的解压文件后的文件需要复制粘贴到D盘的根目录下,再来运行文件。若在生成的log文件中看到导入成功以及控制面板中看到已添加的电源计划即可 如果还是无效可是试试以下的…...
自动创建spring boot应用(eclipse版本)
使用spring starter project创建项目 设置Service URL 把Service URL设置为 https://start.aliyun.com/ 如下图: 使用这个网址,创建项目更快。 选择Spring Web依赖 项目结构 mvnw和mvnw.cmd:这是maven包装器(wrapper)脚本&…...
通过监督微调提升多语言大语言模型性能
引言 澳鹏助力一家全球科技公司提升其大语言模型(LLM)的性能。通过提供结构化的人工反馈形式的大语言模型训练数据,让该模型在30多种语言、70多种方言中的表现得到优化。众包人员们进行多轮对话,并依据回复的相关性、连贯性、准确…...
应急响应(linux 篇,以centos 7为例)
一、基础命令 1.查看已经登录的用户w 2.查看所有用户最近一次登录:lastlog 3.查看历史上登录的用户还有登录失败的用户 历史上所有登录成功的记录 last /var/log/wtmp 历史上所有登录失败的记录 Lastb /var/log/btmp 4.SSH登录日志 查看所有日志:…...
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
摘要:本文整理自鹰角大数据开发工程师,Apache Hudi Contributor 朱正军老师在 Flink Forward Asia 2024 生产实践(二)专场中的分享。主要分为以下四个部分: 一、鹰角数据平台架构 二、数据湖选型 三、湖仓一体建设 四、…...
探秘Transformer系列之(3)---数据处理
探秘Transformer系列之(3)—数据处理 接下来三篇偏重于工程,内容略少,大家可以当作甜点 _。 0x00 概要 有研究人员认为,大模型的认知框架看起来十分接近卡尔弗里斯顿(Karl Friston)描绘的贝叶斯大脑。基于贝叶斯概率…...
跨平台AES/DES加密解密算法【超全】
算法说明 要实现在 WinForm、Android、iOS、Vue3 中使用 相同的算法,确保各平台加密结果互通 一、统一加密参数 算法: AES-256-CBC 密钥: 32字节(示例中使用固定字符串生成) IV: 16字节 填充模式: PKCS7 字符编码: UTF-8 输出格式: Base64二、各平台实现代码...
XML DOM 高级
XML DOM 高级 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,DOM(文档对象模型)是用于访问和操作XML文档的编程接口。在XML DOM中,我们可以对XML文档进行读取、修改、添加和删除等操作。本…...
MySQL智障离谱问题,删了库确还存在、也不能再创建同名库
1、问题 今天跟后端朋友接毕设单子的时候,后端穿过来的【weather.sql】这个文件没弄好,导致这个【weather】数据库的数据是错的,因此我用datagrip的GUI界面直接右键删除,结果就是tmd删不掉,ok,我只能在那新…...
网工项目实践2.6 广域网需求分析及方案制定
本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 全网拓扑展示 一.广域网互联方式 1.专线 优点 稳定 独享。绝对安全。可靠性高,带宽高,完全取决于终端接口。 缺点: 费用高。建设时间长。难…...
11.编写前端内容|vscode链接Linux|html|css|js(C++)
vscode链接服务器 安装VScode插件 Chinese (Simplified) (简体中⽂) Language Pack for Visual Studio CodeOpen in BrowserRemote SSH 在命令行输入 remote-ssh接着输入 打开配置文件,已经配置好主机 点击远程资源管理器可以找到 右键链接 输入密码 …...
GITHUB的若干操作
GITHUB的若干操作 github又名代码仓库,是git的远程和线上延申,Git是一个分布式版本控制系统,用于跟踪文件的更改和协助多人合作开发。它由Linus Torvalds为更好地管理Linux内核开发而设计。git最原始是为Linux系统设计而生,不过后…...
网页制作04-html,css,javascript初认识のhtml如何使用列表
Html列表共有三种类型: 1.一种是无序列表,项目符号有几个符号组成; 2.一种是有序列表,项目符号由字母或数字进行排序; 3.一种是定义列表,它用作产生条件和描述的双重列表,可以对列表进行灵活定义 一、有序列表 1.有序列表ol 1)一般格式: <ol>…...
Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存)
目录 1.认识进程间通信 2.管道 2.1匿名管道 2.2pipe()函数 —创建匿名管道 2.3匿名管道的四种情况 2.4管道的特征 3.基于管道的进程池设计 4.命名管道 4.1引入与性质 4.2命令行创建 4.3程序中创建命名管道 写个小项目 项目规划 PipeClient.cpp PipeServe.cpp 5.…...
深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作
一、问题背景(传统爬虫的痛点) 数据采集是现代网络爬虫技术的核心任务之一。然而,传统爬虫面临多重挑战,主要包括: 反爬机制:许多网站通过检测请求头、IP地址、Cookie等信息识别爬虫,进而限制…...
Spring Boot中使用Flyway进行数据库迁移
文章目录 概要Spring Boot 集成 FlywayFlyway 其他用法bug错误Flyway版本不兼容数据库存在表了Flyway 的校验和(Checksum)不匹配 概要 在 Spring Boot 项目开发中,数据库的变更不可避免。手动执行 SQL 脚本不仅容易出错,也难以维…...
Conda 常用命令全解析
在 Windows 系统中,Conda 是一款功能强大的包管理和环境管理工具,尤其对于数据分析、科学计算等场景有着重要的作用。本文将详细介绍 Conda 在 Windows 系统中的常用命令,帮助你高效地管理虚拟环境和软件包。 一、环境管理命令 1.1 查看 Co…...
【Vue教程】使用Vite快速搭建前端工程化项目 Vue3 Vite Node.js
??大家好!我是毛毛张! ??个人首页: ??今天毛毛张分享的是关于如何快速??♂搭建一个前端工程化的项目的环境搭建以及流程?? 文章目录 1.前端工程化环境搭建?? 1.1 什么是前端工程化1.2 nodejs的简介和安装 1.2.1 什么是Nodejs1.2.2 如何安装…...
基于51单片机的定时器实现LED闪烁控制(CT107D)
引言 在嵌入式开发中,定时器是一个非常重要的外设,它可以用于实现精确的时间控制。本文将介绍如何在CT107D单片机综合训练平台上,利用51单片机的定时器T0实现LED灯的定时闪烁控制。具体功能如下: L1指示灯:每隔1秒闪烁…...
一键部署开源DeepSeek并集成到钉钉
一键部署开源DeepSeek并集成到钉钉 简介: DeepSeek发布了两款先进AI模型V3和R1,分别适用于对话AI、内容生成及推理任务。由于官方API流量限制,阿里云推出了私有化部署方案,无需编写代码即可完成部署,并通过计算巢AppF…...
Web后端 Tomcat服务器
一 Tomcat Web 服务器 介绍: Tomcat是一个开源的Java Servlet容器和Web服务器,由Apache软件基金会开发。它实现了Java Servlet和JavaServer Pages (JSP) 技术,用于运行Java Web应用程序。Tomcat轻量、易于配置,常作为开发和部署…...
java多线程及线程池
线程 一、什么是多线程?二、线程的生命周期三、简单地创建一个线程1、实现Runnable接口2、继承Thread类3、使用Callable和FutureTask4、三种实现方式的对比 四、线程同步和锁1、为什么需要线程同步?2、线程同步的实现方式3、synchronized和ReentrantLock…...
Unreal5从入门到精通之如何在 C++ 中创建 UserWidget
文章目录 前言UUserWidget 子类示例创建我们的 C++ 类的新蓝图子类更改现有蓝图的父类现在我们有了 C++ 基类,下一步做什么?蓝图还是 C++?结论前言 在之前的教程中,我展示了如何在编辑器中创建 UserWidget 蓝图, 在本教程中,我们将创建一个新的基于 C++ 的子类UUserWid…...
Elasticsearch:探索 CLIP 替代方案
作者:来自 Elastic Jeffrey Rengifo 及 Toms Mura 分析图像到图像和文本到图像搜索的 CLIP 模型的替代方案。 在本文中,我们将通过一个模拟房地产网站的实际示例介绍 CLIP 多模态模型,探索替代方案,并分析它们的优缺点,…...
天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
一、项目背景与目标 本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本,模型大小约132GB。 1.1 硬件环境 - 服务器配置:天翼云910B服务器 - NPU:8昇腾910B (每卡64GB显存) - 系统内存&…...
Mac 清理缓存,提高内存空间
步骤 1.打开【访达】 2.菜单栏第五个功能【前往】,点击【个人】 3.【command shift J】显示所有文件,打开【资源库】 4.删除【Containers】和【Caches】文件 Containers 文件夹:用于存储每个应用程序的沙盒数据,确保应用程序…...
bash+crontab充当半个守护进程的歪招
两个cpolar下的不同程序,都需要定时监测,以免程序没有再运行。有点类似半个守护进程吧。但是守护进程不会写,咋搞?就用这个办法临时当下守门员。这里主要为了备忘xpgrep -各类参数的用法。 #!/bin/bashif pgrep -fl "check_…...
Android JNI的理解与使用。
写在前面:Java相对于C/C来说是更高级的语言,隐藏了指针,可读性更高,更容易学习,但是无法直接操作硬件、运行速度较慢也是不可回避的硬伤。JNI就是Java官方定义的一套标准“接口”,用于Java和C/C之间互相调用…...