【ESP32-S3】ESP32-S3 + YDLIDAR X2 + ROS2 远程导航完整落地方案
-
- 一、方案概述(核心解决"带电脑建图"痛点)
- 二、核心软硬件清单(精准适配端子线雷达)
- 三、硬件接线(核心步骤,精准无误)
-
- [3.1 核心接线:YDLIDAR X2 ↔ ESP32-S3(端子线直连)](#3.1 核心接线:YDLIDAR X2 ↔ ESP32-S3(端子线直连))
- [3.2 电机接线(ESP32-S3 ↔ 电机驱动模块)](#3.2 电机接线(ESP32-S3 ↔ 电机驱动模块))
- [3.3 整体接线注意事项](#3.3 整体接线注意事项)
- 四、软件环境配置(分两端,全程可复现)
-
- [4.1 远程端:Windows + VMware + Ubuntu 22.04 + ROS2 Humble 配置](#4.1 远程端:Windows + VMware + Ubuntu 22.04 + ROS2 Humble 配置)
-
- [4.1.1 VMware 与 Ubuntu 基础配置(已安装 Ubuntu 可跳过)](#4.1.1 VMware 与 Ubuntu 基础配置(已安装 Ubuntu 可跳过))
- [4.1.2 ROS2 Humble 与 MicroROS 代理安装](#4.1.2 ROS2 Humble 与 MicroROS 代理安装)
- [4.1.3 Ubuntu 端启动脚本创建(一键启动所有节点)](#4.1.3 Ubuntu 端启动脚本创建(一键启动所有节点))
- [4.2 车载端:ESP32-S3 配置(Arduino IDE + MicroROS + 雷达/电机驱动)](#4.2 车载端:ESP32-S3 配置(Arduino IDE + MicroROS + 雷达/电机驱动))
-
- [4.2.1 Arduino IDE 配置(支持 ESP32-S3 + MicroROS)](#4.2.1 Arduino IDE 配置(支持 ESP32-S3 + MicroROS))
- [4.2.2 ESP32-S3 完整可烧录代码(仅需改4处自定义参数)](#4.2.2 ESP32-S3 完整可烧录代码(仅需改4处自定义参数))
- [4.2.3 ESP32 代码烧录步骤](#4.2.3 ESP32 代码烧录步骤)
- 五、完整操作流程(从启动到自主导航,全程远程)
-
- [5.1 前期准备(1次配置,后续可直接使用)](#5.1 前期准备(1次配置,后续可直接使用))
- [5.2 步骤1:启动远程端(Ubuntu 虚拟机,固定放置)](#5.2 步骤1:启动远程端(Ubuntu 虚拟机,固定放置))
- [5.3 步骤2:启动车载端(小车本体,无需电脑)](#5.3 步骤2:启动车载端(小车本体,无需电脑))
- [5.4 步骤3:SLAM 远程建图(小车自主移动,电脑不动)](#5.4 步骤3:SLAM 远程建图(小车自主移动,电脑不动))
- [5.5 步骤4:自主导航(远程设置目标点,小车自动行驶)](#5.5 步骤4:自主导航(远程设置目标点,小车自动行驶))
- [5.6 步骤5:停止操作](#5.6 步骤5:停止操作)
- 六、常见问题排查(避坑指南,新手必看)
- 七、注意事项(确保方案稳定落地)
- 八、参考链接
一、方案概述(核心解决"带电脑建图"痛点)
本方案实现 小车车载主控+远程导航控制 架构,彻底摆脱"建图/导航需携带电脑"的不合理场景,充分复用现有硬件(ESP32-S3、YDLIDAR X2端子线版、电机小车),通过 WiFi 无线通信实现"雷达车载、电脑远程"的标准化 ROS2 导航,具体架构如下:
- 车载端(小车本体,无需电脑):ESP32-S3 为主控,直连 YDLIDAR X2 雷达(端子线),负责雷达数据解析、电机控制,通过 MicroROS 无线收发 ROS2 话题(发布雷达点云
/scan、订阅导航速度指令/cmd_vel); - 远程端(电脑固定放置):Windows 主机 + VMware + Ubuntu 22.04 + ROS2 Humble,负责运行 MicroROS 代理、SLAM 建图、导航算法、RViz 可视化,全程无需移动,仅远程监控和操作。
方案优势:无需额外硬件,现有设备全复用;无线通信稳定,操作简单,新手可直接照做;符合机器人导航标准架构,可后续扩展功能(如HTML远程控制联动)。
二、核心软硬件清单(精准适配端子线雷达)
| 类别 | 组件名称 | 规格/型号 | 作用 | 关键注意事项 |
|---|---|---|---|---|
| 车载端 | ESP32-S3 开发板 | 任意型号(≥4MB Flash) | 小车主控,驱动雷达、电机,无线传输 ROS2 数据 | 需引出 UART2(GPIO8=TX2、GPIO9=RX2) |
| 车载端 | YDLIDAR X2 激光雷达 | 端子线版(TX/RX/GND/5V) | 环境感知,采集激光点云数据 | 直出端子线,无需 USB 转串口模块,必须 5V 供电 |
| 车载端 | 电机驱动模块 | DRV8833(推荐)/ L298N | 驱动直流电机,接收 ESP32 控制信号 | 适配 ESP32 GPIO 控制,供电 7-12V(给电机) |
| 车载端 | 直流减速电机 | 带编码器(推荐) | 小车动力来源,编码器可提供里程计数据(导航优化) | 无编码器可正常导航,精度略低 |
| 车载端 | 电源系统 | 5V 2A 电源(雷达+ESP32)、7-12V 电源(电机) | 为车载所有组件供电 | 雷达严禁 3.3V 供电,避免数据异常或损坏 |
| 车载端 | 小车底盘 | 两轮差分底盘 | 机械载体,需测量轮距/轴距(导航参数优化可选) | 确保电机安装牢固,运动顺畅 |
| 远程端 | 电脑 | Windows 系统(支持 VMware) | 运行虚拟机、ROS2 导航相关软件 | 需开启 CPU 虚拟化(BIOS 中设置) |
| 远程端 | 虚拟机软件 | VMware Workstation 16/17 | 安装 Ubuntu 系统,实现 ROS2 运行环境 | 支持 USB 3.0(调试 ESP32 时用)、桥接网络 |
| 远程端 | 操作系统 | Ubuntu 22.04 LTS 桌面版 | ROS2 Humble 官方适配系统 | 分配 ≥4G 内存、≥40G 硬盘,确保流畅运行 |
| 辅助配件 | 杜邦线 | 公对公、公对母 | 连接 ESP32 与雷达、电机驱动 | 建议选用优质杜邦线,避免接触不良 |
| 辅助配件 | WiFi 网络 | 家用/实验室路由器 | ESP32 与 Ubuntu 无线通信载体 | 确保两者处于同一网段(如 192.168.1.x) |
三、硬件接线(核心步骤,精准无误)
3.1 核心接线:YDLIDAR X2 ↔ ESP32-S3(端子线直连)
YDLIDAR X2 端子线为 4 芯(VCC/TX/RX/GND),ESP32-S3 的 UART2(GPIO8=TX2、GPIO9=RX2)直接对接,无需电平转换(X2 支持 3.3V/5V 串口通信,ESP32-S3 GPIO 为 3.3V)。
| YDLIDAR X2 端子线(颜色参考) | ESP32-S3 引脚 | 功能 | 关键提醒 |
|---|---|---|---|
| VCC(红) | 5V | 雷达供电 | 必须接 5V!3.3V 会导致雷达供电不足、数据丢失 |
| GND(黑) | GND | 共地 | 必须可靠连接,否则串口乱码、雷达无法启动 |
| TX(黄) | RX2(GPIO9) | 雷达 → ESP32 传输扫描数据 | 交叉对接(雷达 TX 对应 ESP32 RX) |
| RX(绿) | TX2(GPIO8) | ESP32 → 雷达传输控制指令 | 交叉对接(ESP32 TX 对应雷达 RX) |
3.2 电机接线(ESP32-S3 ↔ 电机驱动模块)
沿用原有电机接线逻辑,仅明确引脚对应关系(可根据自身硬件修改代码中的引脚定义),确保电机正反转、速度控制正常。
| 电机驱动模块接口 | ESP32-S3 引脚 | 功能 |
|---|---|---|
| L_PWM(左轮速度) | GPIO10 | 控制左轮转速(PWM 信号) |
| L_DIR(左轮方向) | GPIO11 | 控制左轮正反转 |
| R_PWM(右轮速度) | GPIO12 | 控制右轮转速(PWM 信号) |
| R_DIR(右轮方向) | GPIO13 | 控制右轮正反转 |
| 电机驱动供电 | 7-12V 电源 | 为电机提供动力(与 ESP32/雷达供电分离) |
| 电机驱动 GND | GND | 与 ESP32、雷达共地 |
3.3 整体接线注意事项
- 所有组件共地,避免接地不良导致的信号干扰;
- 雷达供电优先选用独立 5V 电源,若与 ESP32 共用电源,需确保电源输出电流 ≥1A;
- 接线时避免线路交叉、拉扯,固定好杜邦线,防止小车运动时脱落;
- 雷达安装时,确保扫描方向朝向小车前方,后续可通过代码调整
inverted参数修正安装方向。
四、软件环境配置(分两端,全程可复现)
4.1 远程端:Windows + VMware + Ubuntu 22.04 + ROS2 Humble 配置
4.1.1 VMware 与 Ubuntu 基础配置(已安装 Ubuntu 可跳过)
- 安装 VMware Workstation 16/17(官网下载,支持 USB 3.0);
- 下载 Ubuntu 22.04 LTS 桌面版镜像(官网链接:https://releases.ubuntu.com/22.04/);
- 创建 Ubuntu 虚拟机,配置如下:
- 内存:≥4G(推荐 8G);
- 处理器:≥2 核;
- 硬盘:≥40G(推荐 60G);
- 网络适配器:桥接模式(关键!确保 Ubuntu 与 ESP32 同网段);
- USB 控制器:USB 3.1(用于 ESP32 调试,雷达不接电脑);
- 安装 Ubuntu,完成后安装 VMware Tools(解决分辨率、windows和linux复制粘贴、鼠标无缝切换问题);
先安装
sudo apt update && sudo apt install open-vm-tools open-vm-tools-desktop -y
安装后需要做的操作:
关闭虚拟机(必须关机,不能仅挂起,可以多试几次)
右键虚拟机→设置→选项→客户机隔离
勾选启用复制和粘贴(建议同时勾选启用拖放)
启动虚拟机,设置生效
- 更新 Ubuntu 系统:
bash
sudo apt update && sudo apt upgrade -y
4.1.2 ROS2 Humble 与 MicroROS 代理安装
- 配置系统编码(避免中文乱码):
bash
locale # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale # verify settings
- 添加 ROS2 软件源:
bash
sudo apt install software-properties-common
sudo add-apt-repository universe
- 安装 ros2-apt-source 软件包
bash
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://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"
sudo dpkg -i /tmp/ros2-apt-source.deb
- 安装 ROS 2 软件包
bash
sudo apt update
sudo add-apt-repository universe
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
- 加载配置脚本
bash
source /opt/ros/humble/setup.bash
也可以永久配置环境变量(永久生效):
bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
echo "export ROS_DOMAIN_ID=0" >> ~/.bashrc
source ~/.bashrc
-
创建 ROS2 工作空间(可选,用于后续扩展功能):
bashmkdir -p ~/ros2_ws/src cd ~/ros2_ws colcon build --symlink-install -
关闭 Ubuntu 防火墙(避免 WiFi 通信被拦截):
bashsudo ufw disable
4.1.3 Ubuntu 端启动脚本创建(一键启动所有节点)
创建 ros2_car_launch.sh 脚本,避免手动输入复杂命令,直接一键启动 MicroROS 代理、TF 变换、RViz、SLAM/导航。
-
创建脚本文件:
bashgedit ~/ros2_car_launch.sh -
复制以下内容(可直接使用,无需修改,建图/导航切换仅需注释/取消注释对应行):
bash#!/bin/bash # ESP32-S3 + YDLIDAR X2 + ROS2 远程导航一键启动脚本 # 功能:启动 MicroROS 代理、TF 坐标变换、RViz、SLAM 建图/导航 # 1. 启动 MicroROS 代理(接收 ESP32 无线发送的 ROS2 数据) gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888; exec bash" sleep 3 # 等待代理启动完成 # 2. 启动 TF 坐标变换(定义雷达→小车本体的坐标系关系) # 参数说明:x y z roll pitch yaw 父坐标系 子坐标系(x=0.05 表示雷达在小车前方5cm,可根据实际调整) gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 run tf2_ros static_transform_publisher 0.05 0.0 0.1 0.0 0.0 0.0 base_link laser_link; exec bash" sleep 2 # 等待 TF 节点启动完成 # 3. 启动 RViz(可视化雷达点云、地图、导航路径) gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 launch nav2_bringup rviz_launch.py; exec bash" sleep 2 # 等待 RViz 启动完成 # 4. 启动 SLAM 建图(建图阶段使用,导航阶段注释此行) gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 launch slam_toolbox online_async_launch.py; exec bash" # 5. 启动自主导航(建图完成后,注释第4行,取消注释此行) # 注意:map:=~/my_car_map.yaml 为地图路径,需与保存地图时的文件名一致 # gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 launch nav2_bringup navigation_launch.py map:=~/my_car_map.yaml; exec bash" -
保存脚本并赋予执行权限:
bashchmod +x ~/ros2_car_launch.sh
4.2 车载端:ESP32-S3 配置(Arduino IDE + MicroROS + 雷达/电机驱动)
4.2.1 Arduino IDE 配置(支持 ESP32-S3 + MicroROS)
- 安装 Arduino IDE(官网下载,版本 ≥2.0.0);
- 配置 ESP32 开发板支持:
-
打开 Arduino IDE → 首选项 → 附加开发板管理器网址,添加以下两个网址(分两行输入):
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://raw.githubusercontent.com/micro-ROS/micro_ros_arduino/humble/micro_ros_arduino.repos -
打开 工具 → 开发板 → 开发板管理器,搜索"esp32",安装版本 ≥2.0.0 的"esp32 by Espressif Systems";
-
- 安装 MicroROS 库:
- 打开 项目 → 加载库 → 管理库,搜索"micro_ros_arduino",安装 Humble 版本;
- 选择开发板:
- 工具 → 开发板 → ESP32 → ESP32-S3 Dev Module;
- 工具 → 端口 → 选择 ESP32-S3 连接电脑后的串口(如 COM3、/dev/ttyUSB0);
- 工具 → 上传速度 → 选择 921600(确保上传稳定)。
4.2.2 ESP32-S3 完整可烧录代码(仅需改4处自定义参数)
代码整合了 YDLIDAR X2 雷达驱动、MicroROS 无线通信、电机控制逻辑,保留原有 HTML 控制接口(可选),无需修改核心代码,仅需调整 4 处自定义参数(WiFi、Ubuntu IP、电机引脚)。
代码见:https://gitee.com/likexiang/like-code/blob/master/ESP32-S3-CAM/ROS2/esp32.ino
4.2.3 ESP32 代码烧录步骤
- 打开 Arduino IDE,复制上述代码;
- 修改 4 处自定义参数(WiFi 名称、WiFi 密码、Ubuntu IP、电机引脚);
- 将 ESP32-S3 用 USB 线连接到 Windows 电脑;
- 选择正确的开发板(ESP32-S3 Dev Module)和端口;
- 点击"上传"按钮,等待烧录完成(烧录成功会提示"上传成功");
- 烧录完成后,断开 USB 线(ESP32 后续由车载电源供电),仅保留车载供电、雷达和电机接线。
五、完整操作流程(从启动到自主导航,全程远程)
5.1 前期准备(1次配置,后续可直接使用)
- 确认硬件接线正确(雷达、电机与 ESP32 连接无误,所有组件共地);
- 确认 ESP32 和 Ubuntu 连接到 同一个 WiFi (用
ifconfig查 Ubuntu IP,确保与 ESP32 代码中的 AGENT_IP 一致); - 确认 Ubuntu 端已创建启动脚本(
ros2_car_launch.sh)并赋予执行权限; - 确认 ESP32 代码已烧录完成,车载电源准备就绪(雷达 5V、电机 7-12V)。
5.2 步骤1:启动远程端(Ubuntu 虚拟机,固定放置)
-
打开 Ubuntu 虚拟机,启动终端;
-
执行一键启动脚本,启动所有 ROS2 节点:
bash~/ros2_car_launch.sh -
脚本执行后,会自动打开 4 个终端(MicroROS 代理、TF 变换、RViz、SLAM 建图),无需手动操作。
5.3 步骤2:启动车载端(小车本体,无需电脑)
- 给小车上电(先接雷达 5V 电源,再接电机 7-12V 电源,避免电流冲击);
- ESP32 会自动启动,完成以下操作(可通过 Arduino IDE 串口监视器查看日志,波特率 115200):
- 连接 WiFi(提示"WiFi 连接成功");
- 初始化 MicroROS,连接 Ubuntu 的 MicroROS 代理(提示"MicroROS 初始化完成");
- 启动雷达驱动,开始解析雷达数据并无线发送到 Ubuntu;
- 观察 Ubuntu 的 RViz 界面,会出现雷达点云(红色/蓝色点,代表周围环境),说明无线通信正常、雷达工作正常。
5.4 步骤3:SLAM 远程建图(小车自主移动,电脑不动)
-
确认 RViz 中已显示雷达点云;
-
新开一个 Ubuntu 终端,启动键盘控制节点,远程控制小车移动建图:
bashsource /opt/ros/humble/setup.bash ros2 run teleop_twist_keyboard teleop_twist_keyboard -
按终端提示,用键盘控制小车:
w:前进,s:后退,a:左转,d:右转,x:停止;- 控制小车缓慢移动,覆盖需要导航的区域(如房间、走廊),确保地图完整,避免遗漏角落;
-
建图完成后,保存地图(新开终端,执行以下命令):
bashros2 run nav2_map_server map_saver_cli -f ~/my_car_map- 地图会保存到 Ubuntu 的家目录(
~/my_car_map.pgm和~/my_car_map.yaml),后续导航需用到这两个文件。
- 地图会保存到 Ubuntu 的家目录(
5.5 步骤4:自主导航(远程设置目标点,小车自动行驶)
-
停止 Ubuntu 中所有正在运行的终端(关闭 SLAM 建图、键盘控制节点);
-
修改启动脚本(
ros2_car_launch.sh):- 注释第 4 行(SLAM 建图行):
# gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 launch slam_toolbox online_async_launch.py; exec bash" - 取消注释第 5 行(导航行):
gnome-terminal -- bash -c "source /opt/ros/humble/setup.bash; ros2 launch nav2_bringup navigation_launch.py map:=~/my_car_map.yaml; exec bash"
- 注释第 4 行(SLAM 建图行):
-
重新执行启动脚本:
bash~/ros2_car_launch.sh -
小车上电,等待 ESP32 连接到 Ubuntu 代理,RViz 中显示地图和雷达点云;
-
在 RViz 中完成导航设置:
- 点击 RViz 左侧工具栏中的「2D Pose Estimate」(机器人图标),在地图上点击小车当前的实际位置(标定小车初始位姿);
- 点击 RViz 左侧工具栏中的「2D Goal Pose」(目标点图标),在地图上点击想要到达的目标点(可拖动箭头设置小车朝向);
-
小车会自动规划路径,躲避障碍物(雷达检测到的障碍物),行驶到目标点,完成自主导航。
5.6 步骤5:停止操作
- 导航完成后,在 Ubuntu 终端中按
Ctrl+C停止所有节点; - 断开小车的车载电源(先断电机电源,再断雷达/ESP32 电源);
- 关闭 Ubuntu 虚拟机和 VMware。
六、常见问题排查(避坑指南,新手必看)
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| ESP32 无法连接 WiFi | 1. WiFi 名称/密码错误;2. WiFi 频段不支持(ESP32 仅支持 2.4G WiFi);3. 与 Ubuntu 不同网段 | 1. 核对代码中的 WiFi 参数;2. 将路由器切换为 2.4G 频段;3. 确保 Ubuntu 和 ESP32 的 IP 均为 192.168.1.x 网段 |
| RViz 无雷达点云 | 1. 雷达接线错误;2. 雷达供电不足;3. MicroROS 代理未启动;4. ESP32 未连接到代理 | 1. 重新核对雷达接线(TX→GPIO9、RX→GPIO8);2. 更换雷达电源(确保 5V/1A);3. 确认 Ubuntu 中的 MicroROS 代理终端正常运行;4. 查看 ESP32 串口日志,确认"MicroROS 初始化完成" |
| 小车不响应 /cmd_vel 指令 | 1. 电机引脚与代码不一致;2. 电机驱动供电不足;3. /cmd_vel 话题无数据;4. 电机驱动故障 | 1. 核对电机引脚定义;2. 检查电机驱动电源(7-12V);3. 执行 ros2 topic echo /cmd_vel 查看是否有指令数据;4. 单独测试电机驱动,确认电机可正常转动 |
| SLAM 建图模糊、丢点 | 1. 雷达安装不牢固,小车运动时晃动;2. 雷达扫描频率过高;3. WiFi 通信不稳定 | 1. 固定好雷达,避免晃动;2. 将代码中的 SCAN_FREQ 改为 5-7Hz;3. 靠近路由器,减少 WiFi 干扰 |
| 导航路径规划失败 | 1. 小车初始位姿标定错误;2. 地图保存失败;3. TF 变换参数错误;4. 无里程计数据(可选) | 1. 重新标定小车初始位姿(2D Pose Estimate);2. 重新保存地图,确保地图文件存在;3. 调整 TF 变换的 x/y/z 参数(匹配雷达实际安装位置);4. 若有编码器,添加里程计发布功能 |
| Ubuntu 无法接收 ESP32 数据 | 1. Ubuntu 防火墙未关闭;2. AGENT_IP 设置错误;3. 端口冲突 | 1. 执行 sudo ufw disable 关闭防火墙;2. 用 ifconfig 重新查看 Ubuntu IP,修改 ESP32 代码;3. 确保端口 8888 未被占用(关闭其他 MicroROS 代理) |
七、注意事项(确保方案稳定落地)
- 电源稳定性是关键:雷达必须用 5V 稳定供电,电机用 7-12V 供电,避免共用电源导致的电压波动;
- WiFi 通信:确保 Ubuntu 和 ESP32 同网段,避免 WiFi 干扰(远离其他电子设备),建图/导航时尽量靠近路由器;
- 雷达安装:扫描方向朝向小车前方,安装高度适中(避免地面遮挡扫描),若安装方向相反,可修改代码中的
scan_msg.angle_min和scan_msg.angle_max互换; - 代码修改:仅修改 4 处自定义参数,核心代码无需修改,若需调整小车速度/转向灵敏度,可修改
linear_x = int(msg->linear.x * 100)和angular_z = int(msg->angular.z * 50)中的系数; - 地图保存:建图完成后,确保地图文件(
my_car_map.pgm和my_car_map.yaml)保存在 Ubuntu 家目录,导航时脚本中的地图路径需与文件名一致; - 安全操作:小车运动时,避免周围有障碍物或人员,远程控制时缓慢移动,防止小车碰撞损坏硬件。
八、参考链接
ROS2官方链接
https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
ROS中文链接
YDLIDAR X2链接