原创:未经同意,请勿转载

我们在windows 通过USB连接串口,在设备串口中可以观测到COM0或者COMx.当我们插入不同的USB口时会显示不同的COM。

在UBUNTU下,ROS下接收串口信息时,也需要设置COM接口,特别是当有两个串口接入的时候,需要区分对应COM端口号。

接下来我们就来解决在ROS下串口变动的问题,通过软连接固定COM口。

1.首先我们打开一个终端,输入如下命令:

ll /dev

出现如下:

发现里边没有关于USB COM信息,这是因为我们还没有接入串口。

2. 我们将串口数据线通过USB接入UBANTU系统,在终端输入输入以上命令。

ll /dev

出现如下:可以看到有了一个ttyUSB0

3.查看USB接口权限,若为一个rw,则需要修改USB权限,将其设置为所有用户可读可写模式,这样做是为了实现对USB0进行访问。

也是通过命令:

ll /dev

若这里只有一个rw,则需要修改权限。通过以下命令修改。在修改之前首先要进入dev路径

cd /dev
sudo chmod 666 ttyUSB0

修改之后就会发现USB0变为了可读可写模式。

4.获取该USB的硬件编码(idVendor)和产品编码(idProduct),不同的USB有着不同的硬件编码和产品编码,在终端输入如下命令:

lsusb -vvv

出现如下界面:可以找到USB硬件编码和产品编码。

5.在home下创建文件rqlidar.rules文件,并将其复制到/utc/udev/rules.d/路径下。

在rqlidar.rules中写入如下内容:其中"rplidar"是软连接名称。

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0002", MODE:="0666", SYMLINK+="rplidar"

在硬件编码(idVendor)和产品编码(idProduct)对应位置填入4步中获得的编码。

使用如下命令进行复制:

cp rqlidar.rules /etc/udev/rules.d

进入该路径下查看是否存在该文件,也可以通过gedit打开文件进行查看。

6.拔下USB接口,并再次插入,在终端下输入:

ll /dev

在列表中会存在如下条目:表示已经实现了软连接。

总结:

通过以上的方法我们实现了串口USB的软连接,不需要再去考虑COMx,只需要在代码实现连接的地方将串口设置为软连接名称就可以了。

posted on 2018-09-13 16:39  未完代码  阅读(1068)  评论(0编辑  收藏  举报