Ubuntu中USB端口与外设绑定,ROS读取IMU模块数据

1、根据设备ID绑定

方法原理:根据设备使用的串口芯片的型号来进行绑定

好处:不需要固定设备插入的USB口,每次拔插到计算机上的任意USB口都可以识别为同一个设备

坏处:如果计算机中有多个设备并且使用的是同一款串口芯片就会混乱,因为设备ID都是一样的

1.1 查看ID

查看需要绑定的设备的idVendoridpProduct,我这里是绑定一个陀螺仪,首先通过usb把设备连接到电脑

$ lsusb

image-20220909092457921

可以看到这块陀螺仪使用的串口芯片是CP210x,设备ID是10c4:ea60

1.2 编写USB规则文件

首先进入到我们usb设备规则存放的目录下

$ cd /etc/udev/rules.d

image-20220909092812353

可以看到这里存放着各种规则,我们新建一个USB端口映射规则

$ sudo vim com_imu.rules

写入如下内容

image-20220909095038834

1.3 查看绑定结果

查看一下我们的外设

$ ls /dev/tty*

image-20220909095252210

可以看到没有起效,因为我们还需要重新载入一下我们的规则才能实现端口映射

$ sudo udevadm trigger

再次查看设备

image-20220909100735210

可以看到设备已经绑定成功了,之后不管设备插入哪个USB口最后都会被识别为 /dev/IMU0

2、 根据电脑USB口绑定

实现原理:根据电脑自身的USB硬件地址进行绑定

好处:可以解决设备使用同一款串口芯片导致ID相同的问题

坏处:对应的设备必须每次都要插入同一个USB端口

2.1 找到USB端口名称

先拔掉设备,输入命令

$ ls /dev/tty*

image-20220909101802900

插入设备,输入命令

$ ls /dev/tty*

image-20220909102401508

可以看到当前设备插入的USB端口为 /dev/ttyUSB0, 查看这个端口的信息

$ udevadm info --attribute-walk --name=/dev/ttyUSB0

image-20220909104026325

可以看到现在使用的端口号为“1-4.3:1.0”

2.2 编写绑定规则

同样地在/etc/udev/rules.d/目录下新建一个绑定规则

$ sudo vim /etc/udev/rules.d/ttyUSB_Link_imu.rules

写入如下内容:

image-20220909110216492

保存并重启电脑,在终端中查看是否绑定成功

image-20220909110336072

可以看到已经绑定成功,后面我们尝试在ROS里面把IMU数据读出来。

3、 通过ROS读数据

我这里已经编译好了IMU的功能包,直接roslaunch启动IMU节点,通过rostopic list 查看当前话题

image-20220909132325003

可以看到已经有/imu话题了,下面我们看看话题的数据

image-20220909132415366

可以看到一帧数据中包含了:姿态角、加速度、角速度

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值