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

【ROS2】YDLidar X2的HELLO WORLD步骤总结

YDLidar X2的HELLO WORLD步骤总结

    • 前言
    • 环境准备
    • 具体步骤
      • 安装VMware创建虚拟机
      • 安装ROS2
      • 创建ROS2工作空间
      • USB连接WINDOWS
      • 安装YDLidar-SDK
      • 安装ydlidar_ros2_driver
      • 启动YDLidar X2
    • 遇到的问题
      • /dev/ttyUSB0串口被抢占,导致ls /dev/ttyUSB*没有发现设备
    • 参考链接

前言

之前没接触处过ROS,这次目标不高,先弄清楚HELLO WORLD 如何跑起来。所谓的HELLO WORLD这里指的是,在拿到YDLidar X2设备后,在liunx系统上检测设备是否能正常采集数据,并在RVIZ上显示。

环境准备

  1. 家里没有单独的LINUX系统的电脑,在windows10上安装了VMware,在VMware上创建了虚拟机
  2. ROS2有很多版本,这里以HUMBLE版本为例
  3. LINUX系统采用Ubuntu Jammy (22.04)版本,链接https://releases.ubuntu.com/22.04/
  4. YDLidar X2的WINDOWS 10 CH340驱动安装好

具体步骤

安装VMware创建虚拟机

先下载ubuntu镜像,然后再VMware上安装Ubuntu Jammy (22.04)系统。这里值得注意的是一定要安装VMware Tools,这里是负责主机和虚拟机复制粘贴等操的,比较重要。

sudo apt update && sudo apt install open-vm-tools open-vm-tools-desktop -y

安装后需要做的操作:

关闭虚拟机(必须关机,不能仅挂起,可以多试几次)
右键虚拟机→设置→选项→客户机隔离
勾选启用复制和粘贴(建议同时勾选启用拖放)
启动虚拟机,设置生效

安装ROS2

  1. 配置系统语言和字符
locale# check for UTF-8sudoaptupdate&&sudoaptinstalllocalessudolocale-gen en_US en_US.UTF-8sudoupdate-localeLC_ALL=en_US.UTF-8LANG=en_US.UTF-8exportLANG=en_US.UTF-8 locale# verify settings
  1. 将 ROS 2 的 apt 仓库添加到你的系统中
sudoaptinstallsoftware-properties-commonsudoadd-apt-repository universe
  1. 安装 ros2-apt-source 包
sudoaptupdate&&sudoaptinstallcurl-yexportROS_APT_SOURCE_VERSION=$(curl-shttps://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest|grep-F"tag_name"|awk-F\"'{print $4}')curl-L-o/tmp/ros2-apt-source.deb"https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(./etc/os-release&&echo${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"sudodpkg-i/tmp/ros2-apt-source.debsudoaptupdate
  1. 安装ROS2 Humble桌面版+导航全套包
sudoaptupdate&&sudoaptinstall-y\ros-humble-desktop\ros-humble-navigation2\ros-humble-nav2-bringup\ros-humble-slam-toolbox\ros-humble-tf2-tools\python3-colcon-common-extensions\python3-pyserial\ros-humble-teleop-twist-keyboard\ros-humble-ros-base\ros-dev-tools\ros-humble-slam-toolbox\ros-humble-navigation2\ros-humble-nav2-bringup
  1. 设置环境变量
echo"source /opt/ros/humble/setup.bash">>~/.bashrcecho"source ~/ros2_ws/install/setup.bash">>~/.bashrcecho"export ROS_DOMAIN_ID=0">>~/.bashrc# 避免多设备通信冲突source~/.bashrc

创建ROS2工作空间

# 创建工作空间目录mkdir-p~/ros2_ws/srccd~/ros2_ws# 初始化编译(空工作空间,生成配置文件)colcon build --symlink-install

到此ROS2就安装好了

USB连接WINDOWS

将雷达usb插入到电脑上,此时虚拟机会提示连接到主机还是虚拟机 ,选择连接到虚拟机。然后做如下操作

ls/dev/ttyUSB*# 添加当前用户到dialout组(永久生效,需重启Ubuntu)sudousermod-aGdialout$USER# 临时赋予串口权限(立即生效)sudochmod777/dev/ttyUSB0

安装YDLidar-SDK

cd~/ros2_wsgitclone https://github.com/YDLIDAR/YDLidar-SDK.gitcdYDLidar-SDKmkdirbuildcdbuild cmake..makesudomakeinstall

安装ydlidar_ros2_driver

  1. 克隆驱动,并编译
    注意这里是humble版本的。
cd~/ros2_wsgitclone-bhumble https://github.com/YDLIDAR/ydlidar_ros2_driver.git colcon build --symlink-install
  1. 设备包环境变量
echo"source ~/ros2_ws/install/setup.bash">>~/.bashrcsource~/.bashrc

确认是否设置成功

printenv | grep -i ROS

命令执行后,如果看到OLDPWD=/home/tony/ros2_ws/install说明成功。

到这里驱动就算安装成功了

启动YDLidar X2

指定配置文件连接

ros2 launch ydlidar_ros2_driver ydlidar_launch.py params_file:=src/ydlidar_ros2_driver/params/X2.yaml

或者

ros2 launch ydlidar_ros2_driver ydlidar_launch.py (默认使用的是params/ydlidar.yaml)
需要修改ydlidar_launch.py内在param_file里修改为X2.yaml启动

启动RVIZ

ros2 launch ydlidar_ros2_driver ydlidar_launch_view.py

自此就可以看到如下成功启动的画面了

遇到的问题

/dev/ttyUSB0串口被抢占,导致ls /dev/ttyUSB*没有发现设备

CH340也安装好了,但是ls /dev/ttyUSB*没有发现设备,多执行几次发现出现了又消失,启动YDLidar X2时报错

[105.587883]usb1-2.2: Product: USB Serial[105.590687]ch3411-2.2:1.0: ch341-uart converter detected[105.599718]usb1-2.2: ch341-uart converter now attached to ttyUSB0[106.189801]input: BRLTTY6.4Linux Screen Driver Keyboard as /devices/virtual/input/input10[106.200295]usb1-2.2: usbfs: interface0claimed by ch341while'brltty'sets config#1[106.203012]ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0[106.203036]ch3411-2.2:1.0: device disconnected[146.834070]usb1-2.2: Product: USB Serial

激光雷达被系统识别为ttyUSB0,但被brltty程序抢占了串口接口(这是 Ubuntu 默认的盲文辅助程序,会和串口设备冲突),导致ttyUSB0刚创建就被断开,所以ls /dev/ttyUSB*看不到设备。卸载掉这个盲文程序

# 停止brltty服务sudosystemctl stop brlttysudosystemctl disable brltty# 卸载brltty(彻底解决冲突)sudoaptremove-ybrlttysudoaptpurge-ybrltty# 重启udev服务(重新加载USB设备)sudoudevadm control --reload-rulessudoudevadm trigger

然后再虚拟机重新连接

在 VMware 菜单栏:「虚拟机」→「可移动设备」→「Qinheng USB Serial」→ 先「断开 (连接到主机)」;
等待 2 秒后,再点击「连接 (连接到客户机)」;

最后配置串口权限

# 添加当前用户到dialout组(串口权限组)sudousermod-aGdialout$USERsudousermod-aGtty$USER# 验证权限(替换为实际设备名)ls-l/dev/ttyUSB0

参考链接

X2用户手册

https://oss.p.skytech.cn/2036899223840006144/714dab97c67cd3ebd494dd37b488d450.pdf
https://www.ydlidar.cn/download/category/user-manual

YDLidar-SDK

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

YDLIDAR ROS2 Driver

https://github.com/YDLIDAR/ydlidar_ros2_driver

ROS2手册

https://docs.ros.org/en/humble/index.html

ydlidar X2 ubuntu 22.04调试记录

https://blog.csdn.net/qq_55437104/article/details/145790714

http://www.jsqmd.com/news/459374/

相关文章:

  • 高频-链表
  • 第十六届蓝桥杯大赛软件赛省赛Java 大学 B 组
  • 耳内EEG技术:便携性与信号质量的综合评估
  • 公司办公固定资产管理办法(框架草案)
  • 统计代码量
  • linux-内存相关
  • 第174章 第四卷中局 - 淬火成钢
  • 等保测评命令——华三(H3C)网络设备
  • Java 中 Set 集合
  • Nginx安全配置:隐藏版本号
  • Qt 数据库模块详解(从驱动编译到性能优化)
  • 2026年靠谱的防爆电伴热带品牌推荐:自限温电伴热带/工程用电伴热带/阻燃防爆电伴热带行业内口碑厂家推荐 - 行业平台推荐
  • 溯源过程
  • 阿里云购买服务器安装openclaw踩坑记录
  • 写了个页面分享此时此刻我在听的歌
  • 优选算法——分治(1):三路快排
  • 【更新至2024年】2013-2024年各省数字经济指数数据(含原始数据+计算代码+结果)
  • 1分钟,带你认识门窗五金系统!
  • Ubuntu 20.04 LTS 防止暴力破解
  • Unreal Engine 4核心概念解析:Pawn——游戏世界中的可操控化身
  • Methyltetrazine–PEG4–Mal 1802908-02-6 活细胞双靶点标记探针
  • 基于Simulink的鲁棒H∞整流器控制器设计
  • 【通俗易懂告诉你什么是人工智能/CNN/RNN/DL......】
  • 智能AI裂缝识别 裂缝图像分割识别 建筑物裂缝识别 建筑结构裂缝自动检测模型训练 道路桥梁病害识别算法10529期
  • Unreal Engine 4核心概念解析:Character——专为人形角色设计的终极“游戏化身”
  • 毕业设计:基于SpringBoot Ai和Vue的旅游攻略小程序(源码)
  • OpenClaw霸榜,Agent正悄无声息地干掉传统“App”!
  • Mac病毒清除过程, SimulatorTrampoline,提醒事项APP伪装 XcodeGhost,XCSSET类型
  • 刷题笔记:力扣第18题-四数之和
  • 华为 MetaERP 的内部交易协同,是基于元数据驱动的多组织模型 + 事件驱动的服务总线 + 分布式事务 + 智能对账引擎,实现内部交易从发起、协同、确认到对账、抵消的全链路自动化、数据同源、零差异