nlink_parser2驱动包使用教程
1.ROS2驱动包开发环境配置
1.1安装git
如已安装git可忽略本步骤
$ sudo apt install git

1.2安装colcon构建工具
colcon是 ROS 2 的标准化构建工具,用于自动化处理软件包的编译、依赖关系和环境设置,相当于 ROS 1 中的 catkin工具。
$ sudo apt install python3-colcon-common-extensions

2.搭建ROS2工作空间
建议先搭建一个独立的工作空间,以便验证传感器完整功能
$ mkdir -p ~/nooploop_ws/src
$ cd ~/nooploop_ws/src

3.git clone 命令获取nlink_parser2功能包
这个步骤非常重要,需要使用git clone --recursive命令来获取子模块,并且将功能包安装在src目录下
$ git clone --recursive https://github.com/nooploop-dev/nlink_parser2.git

4.编译nlink_parser2功能包
$ cd ~/nooploop_ws
$ colcon build --symlink-install
使用cd命令回到工作空间目录,编译ROS2功能包。

出现 colcon build successful则表明成功
5.激活ROS2工作空间环境(source的使用方法)
该 步骤非常重要关键步骤提示:编译完成后,必须通过source命令激活工作空间的配置脚本,才能将新编译的功能包路径添加到当前终端的环境中,从而允许ROS2工具(如 ros2 run、ros2 launch、ros2 echo)等发现和使用这些包。
一共有两种配置环境的办法
方法一:永久配置(推荐使用)此方法通过将source命令添加到用户的shell启动配置文件(~/.bashrc)中,使得每次打开新终端时都会自动激活指定的工作空间环境。
操作步骤(任选其一即可)
选项A:使用绝对路径
$ cd ~/nooploop_ws
$ echo "source ~/nooploop_ws/install/local_setup.bash" >> ~/.bashrc
$ source ~/.bashrc

选项B:使用命令生成路径
此方法利用 $(pwd)命令自动获取当前所在目录的绝对路径,避免手动输入。
$ cd ~/nooploop_ws
$ echo "source $(pwd)/install/local_setup.bash" >> ~/.bashrc
$ source ~/.bashrc

每次新打开终端都需要激活,此方法仅在执行source命令的当前终端窗口中有效。一旦关闭该终端,配置即失效。适用于快速测试新编译的包或临时使用某个特定工作空间。
$ cd ~/nooploop_ws
$ source install/setup.bash
6.配置串口环境(安装CH343串口驱动)
目前Nooploop产品主要采用两种USB转TTL串口芯片:CP210x 与 CH343。Linux内核通常已集成CP210x驱动,但未包含CH343驱动。若无法确定产品所用芯片型号,一般建议依照本节教程安装CH343驱动,以确保兼容性。驱动开源仓库驱动链接
6.1下载驱动源码
首先,将官方驱动源码克隆到本地。
$ cd ~/Downloads/
$ git clone https://github.com/WCHSoftGroup/ch343ser_linux.git

6.2编译驱动模块
进入串口驱动的driver目录,make编译生成内核模块。
$ cd ch343ser_linux/driver/
$ make

常见问题一:编译环境缺失
若执行 make命令时出现类似下图所示的错误,提示编译器缺失:

$ sudo apt update
$ sudo apt install -y gcc-12 g++-12

安装成功后,重新执行make命令即可。
6.3加载驱动模块
将编译好的驱动模块动态加载到当前运行的内核中。$ sudo make load

常见问题二:安全启动阻止加载

则需要参考以下帖子重启电脑进入BIOS,修改安全启动选项,禁用安全启动选项,开机后重新sudo运行之前的指令:
https://blog.csdn.net/qq_43135204/article/details/118547385
6.4安装驱动
$ sudo make install

6.5开启串口设备权限
第一次使用串口设备通常需要开启串口权限,一般建议依照本节步骤开启串口权限,以确保兼容性。开启方法,可参考 Fix serial port permission denied errors on Linux,也可以跟着本教程一步一步执行。
$ sudo usermod -aG dialout $USER
输入该命令重启系统
$ reboot

登录回来后打开终端,输入该命令
$ groups

输入完命令后,能看到输出里有dialout,便意味着成功完成。
7.硬件连接
7.1无转接 需求(使用官方连接线)
如果使用官方usb-A口转typeC线(注意是数据线)或官方双端GH1.25-4P端子连接线,可进行下一步配置串口环境&&查看串口端口号
7.2需转接接口
使用USB转TTL模块连接,需要检查产品与USB转TTL模块的接线线序,以及产品的供电电压(具体型号供电电压范围参考官网下载的数据手册,大部分型号都是5V供电的,不能使用3.3V供电),产品和USB转TTL模块的接线参考下图:
接线时需要注意:UART通信中双方的TX和RX应该交叉连接

UART:接口信号线为3.3V的TTL电平,232和485的串口不能直接连接,需要通过对应的TTL转/232/485电平转换模块进行转接。不带USB口的型号,需要通过UART接口连接USB 转TTL模块到电脑使用NAssistant软件查看数据和配置参数,不能直接连接电脑的USB接口。接口线序简写为“VGRT”,对应VCC 、GND、RX、TX,各个产品的线序以对应产品构造示意图中的简写线序为准,接口一一对应;除了LTPTag以外,所有产品配有1到2个用户UART接口。其中配备两个UART接口的型号的两个UART口,在硬件上是连接在一起的,只是接口方向不同,用户使用其中任意一个接口即可。此外需要注意不要同时连接两个UART接口,不要同时连接USB接口和UART接口,否则可能会出现冲突。

8.查看设备端口号
本步骤是运行传感器的核心,必须查看该步骤重要前提 在执行本步骤前,请确保:
- 已完成串口驱动安装
本步骤旨在指导用户快速确定目标传感器或产品所对应的设备端口号(如 /dev/ttyUSBx、/dev/ttyCH343USBx或 /dev/ttyACMx)。
8.1工作原理概述
当目标传感器或产品接入运行ROS2的Linux设备时,内核会识别硬件并自动创建设备端口号(如 /dev/ttyCH343USBx、/dev/ttyUSBx或 /dev/ttyACMx)。通过对比设备接入前后系统设备端口号的变化,可以精确确定目标设备对应的端口号。本方法的核心是差异比对。
8.2操作步骤
本操作示例以ttyCH343USB类设备为例,其他类型(ttyUSB, ttyACM)逻辑相同。
步骤1:记录初始状态(设备接入前)
将目标传感器或产品接入运行ROS2的Linux设备之前,首先在终端中执行以下命令,查看当前系统已存在的相关设备端口号,并记录列表。完整记录所有识别到的设备端口号信息。
依次输入以下三条命令,并记录所有出现的设备端口号
$ ls -l /dev/ttyUSB*
$ ls -l /dev/ttyCH343USB*
$ ls -l /dev/ttyACM*

记录示例:根据上图输出,记录结果如下:
-
ttyUSB*:列表为空(无设备端口号)。 -
ttyCH343USB*:发现设备/dev/ttyCH343USB1。 -
ttyACM*:列表为空(无设备端口号)。
步骤2:接入设备记录状态
将产品通过USB线或者Nooploop官方的NUTT(NUTT-B、NUTT-C)型号的USB转TTL模块连接至ROS2的Linux设备中。目标传感器接入ROS2的Linux设备后,然后再次输入相同的三条命令。
$ ls -l /dev/ttyUSB*
$ ls -l /dev/ttyCH343USB*
$ ls -l /dev/ttyACM*

结果对比与判定:
对比步骤1与步骤2的命令输出列表,在步骤2中新出现的设备端口号即为目标传感器对应的端口号。
根据上述记录示例分析:
-
ttyUSB*与ttyACM*列表对比前后无变化。 -
ttyCH343USB*列表中新增了/dev/ttyCH343USB0设备端口号。
因此,可以确定目标传感器的设备端口号为 /dev/ttyCH343USB0。
异常处理:如果对比后发现列表没有任何变化,请排查传感器硬件连接、电源或设备本身是否工作正常。
步骤3:验证(推荐执行)
通过重新插入→再次检测的循环验证,确保识别准确性:
-
再次拔除:设备端口号应再次消失
-
插入设备:消失的设备端口号应重新出现
-
确认端口与设备物理连接的严格对应关系,避免误判
常见问题:通过上述方案,如果设备端口号被识别为 ttyACM* 而非 ttyCH343USB*

解决方法:
-
情况判断:如果您已确保安装了串口驱动并开启了串口权限。但目标传感器仍然被识别成
ttyACM*设备端口号,而不是ttyCH343USB*设备端口号。 -
解决方案:将已找到的
ttyACM*设备端口号确定为最终可用的设备端口号。 -
后续应用:在接下来的 Launch 文件配置中,请直接使用此
ttyACM*设备端口号。后续也可以正常使用。
9.配置Launch与运行
重要前提 在执行本步骤前,请确保:
-
已激活ROS2工作空间。
9.1 准备环境
本章节的目标是:将已确认的设备端口号配置到对应产品的Launch文件中,并启动相应的ROS2节点。
新开终端,进入工作空间并激活环境(source)
$ cd ~/nooploop_ws
$ source install/setup.bash
