如果在 Ubuntu 系统中两个设备出现两个相同的端口号解决方案

问题描述:

自己的移动机器人在为激光雷达和IMU配置动态指定的端口时,发现激光雷达和深度相机配置的 idVendor 和 idProduct 相同,但是两个设备都具有不同的ttyUSB号,如下图所示

  • idVendor:代表着设备的生产商ID,由USB设备生产商向USB-IF官方来统一管理和申请。
  • idProduct:代表着该生产商生产的产品编号,同一厂商下的不同idProduct代表着该公司不同的产品系列。


解决方法:

出现此问题的原因是两个串口芯片都是CP2102......芯片ID号都一致。但是可以通过查询USB口的具体信息,发现一个地方可以区分开,那就是端口路径!!(这个端口就是我们字面的意思,不同的USB的插口!)

1、使用如下

使用如下的指令分别查询ttyUSB0和ttyUSB1的端口具体信息

1)查询 USB0的具体信息,其中主要关注 ATTR{devpath}

复制代码
# 查询 USB0 的信息
udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)

查询 USB1 的具体信息,其中主要关注 ATTR{devpath}

复制代码
# 查询 USB1 的信息
udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB1)

可以看出,在Ubuntuh中可以通过 ATTR{devpath} 的不同来对两个设备进行区别。需要记住这两个端口路径号,在下面的规则设定中需要使用这个编号。

2、修改IMU和激光雷达的端口配置规则

1)激光雷达的规则修改:

这里的 ATTRS{devpath}=="2" 对应于刚刚上面查询 ttyUSB1 的信息,因为查询时激光雷达对应 ttyUSB1 端口

复制代码
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{devpath}=="2", MODE:="0777", SYMLINK+="laser"

2)IMU的规则修改:

这里的 ATTRS{devpath}=="3" 对应于刚刚上面查询 ttyUSB0 的信息,因为查询时激光雷达对应 ttyUSB0 端口

复制代码
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{devpath}=="3", MODE:="0777", SYMLINK+="IMU"

3、验证配置结果

将上述的两个配置完成后,重新执行上述修改的规则,然后将Ubuntu系统重启或者重新拔插后,使用如下指令即可查询到配置结果即可看到设备分别指向其所在的ttyUSB端口。

复制代码
ll /dev/ | grep ttyUSB*

1)把两个设备插在刚开始查询的端口,可以看到如下效果

2)我再调转下插接先后顺序,把两个设备调换接口

此时便可以不管两个设备插入到主机上的先后顺序了,规则都会映射到对应的端口上。

只是此处需要注意的是,两个设备的端口相当于刚刚在配置时已经锁定,便不能插接其他端口,插接其他端口就不能找到此设备了。

参考博客

【ROS学习】修改串口的别名_ros的串口号会变-CSDN博客

相关推荐
老当益壮梁奶奶12 分钟前
Linux软件编程学习笔记(十一):深入浅出 TCP 协议与 Socket 编程实践
linux·c语言·笔记·学习·tcp/ip
speop24 分钟前
hell-gpu| TASK01-2
linux·运维·算法
byte轻骑兵37 分钟前
【BlueZ 】用户态入口:main.c 核心函数与程序启动流程
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
m0_547486661 小时前
《移动机器人原理与应用(基于ROS操作系统)》全套PPT课件2026
机器人·移动机器人
别动我齐刘海1 小时前
从0到1独立搭建机器人软件系统
c++·人工智能·神经网络·opencv·目标检测·机器学习·机器人
Mr.朱鹏1 小时前
科技周报(2026-09-01期):版权战与机器人潮
人工智能·科技·机器人
Tisfy1 小时前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
liulilittle1 小时前
REALITY 代理隧道的有效检测方法: 被动、主动与确定性三层实证研究
linux·服务器·网络·网络协议·安全·网络安全·通信
邪修king2 小时前
Re:Linux 系统篇(十五):进程篇(四):进程切换深度解析 —— CPU 寄存器、进程上下文与切换全流程万字详解
linux·运维·服务器
Superzhangaa2 小时前
外骨骼机器人品牌怎么选:太希智能与同类产品的差异在哪里
机器人·开源