@lyon https://community.bwbot.org/topic/16624/ubuntu中用udev规则绑定usb串口和映射别称的办法
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
xiaoqiang 发布的帖子
-
ubuntu中用udev规则绑定usb串口和映射别称的办法
1、为什么要把usb串口号映射绑定到usb口
usb转串口设备是常用的外设,用来扩展主机的串口功能。在实操过程中,一个机器人底盘往往会外接多个usb转串口设备,如果不对这些串口设备利用udev规则加以区分,则每次系统上电时这些串口设备的设备号是随机分配的。比如超声波模块的串口第一次开机分配成ttyUSB0, 自动充电模块串口则分配了ttyUSB1这个串口号,然后你重新断电开机后会发现ttyUSB1竟然被系统分配给了超生波模块的串口号,导致超生波和充电模块的ros驱动都工作异常。
解决办法就是把usb口和串口设备进行绑定,同时给这个串口设备映射一个新的名字,比如第一个usb口和超声波串口进行绑定,绑定后超声波串口映射成一个新的名字bwSensors,超生波
的ros驱动程序通过新名字bwSensors对串口进行操作,这样无论系统如何断电重启,都不会串台了。因为usb口的系统编号在关机重启后不会变化,绑定了usb口也就等价获取了静态分配的串口号。2、如何把usb串口设备绑定到usb口同时映射一个新名字
2.1确定要绑定的usb口在系统中的名字
#执行下列指令 dmesg --follow
将usb串口设备插在你要绑定的usb口上,观察上面指令的输出信息,确定系统这次分配的串口号是什么,一般是ttyUSB0、ttyUSB1之类,如下图中attached to ttyUSB1表示给新插入的设备分配了ttyUSB1这个编号。
再通过系统分配的串口号确定当前usb口的编号,下列指令输出信息中找到下图蓝色方框所在位置,红色方框内的2-2.3:1.0就是我们要获取的信息。#ttyUSB1要换成你上面实际获取的串口号 udevadm info /dev/ttyUSB1
2.2建立udev规则文件
在/etc/udev/rules.d/路径下新建95-persistent-serial.rules,如果文件之前存在,不用新建直接修改内容。
sudo nano /etc/udev/rules.d/95-persistent-serial.rules
文件内容如下
ACTION!="add", GOTO="persistent_serial_end" SUBSYSTEM!="tty", GOTO="persistent_serial_end" KERNEL!="ttyUSB[0-9]*", GOTO="persistent_serial_end" KERNELS=="2-2.3:1.0" ,SYMLINK="bwSensors" ,OWNER="xiaoqiang", MODE="0666" KERNELS=="2-2.4:1.0" ,SYMLINK="bwIMU" ,OWNER="xiaoqiang", MODE="0666" LABEL="persistent_serial_end"
KERNELS==“2-2.3:1.0” 中的"2-2.3:1.0"换成上面获取的usb口信息。
SYMLINK=“bwSensors” 中的"bwSensors"就是我们要设置的别称,你可以修改成自己想要的名字。
OWNER="xiaoqiang"中的"xiaoqiang"是系统当前用户名,要改成你自己的用户名。上面实列是把2-2.3:1.0这个usb口上的usb转串口设备绑定映射成bwSensors,把2-2.4:1.0这个usb口上的usb转串口设备绑定映射成bwIMU, 一行代表一个端口的映射,理论上几十个usb转串口设备都可以通过这种方式进行绑定区分,你只要添加对应内容就行。
Ctrl + s保存后, Ctrl + x退出。
2.3主机重启生效
重启后用ls /dev指令,一切正常的话会看到自己映射成功的设备号
ls /dev
-
RE: ps4手柄ros驱动安装和蓝牙配对教程
@cuiliyun ps4手柄有多款山寨版本,有些版本就会能蓝牙配对但是无法使用ros。包装盒有大小两款,小盒子的一般是用不了的垃圾,大盒子能用的概率比较大,原厂原装的最好。
-
RE: google激光雷达slam算法Cartographer的安装及bag包demo测试
@蓝胖子 没找到对应的launch文件,检查ros包launch文件夹内是否有这些launch文件,同时检查是否source了ros工作空间
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@dennis odom_combined的话题类型需要是标准的里程计话题,不能是其它类型话题
-
RE: 二维码自动充电,无法保存dockposition
@yanyan http://community.bwbot.org/topic/16596/二维码自动充电无法保存dockposition问题/34
-
RE: Odom drifting heavily
@loto https://community.bwbot.org/topic/612/recalibrate-the-chassis-imu
-
RE: 关于启动xiaoqiang_local.launch后自动结束进程
@yao 用windows上位机软件测试能否正常充电,排除硬件问题后再用rostopic工具打印充电节点输出的充电电压和电流话题数据,看值是否异常
-
RE: 二维码自动充电无法保存dockposition问题
@yanyan1011-0 frame_id不要带/,如何查找话题是否订阅成功用rqt_graph、rosnode info工具确定。提供的代码很多用户已经成功使用了,卡在的地方是你们ros基础不扎实。
-
RE: 二维码自动充电无法保存dockposition问题
@yanyan1011-0 tf树解决后,再解决其它问题,打印/ar_pose_marker话题,看是否识别了二维码,以及话题内的frame—id显示的是不是和设置的一样。
还有里程计话题里面的速度值要为零,节点会根据这个速度,判断车是否处于静止状态,处于运动状态也会不保存位置。 -
RE: 二维码自动充电,无法保存dockposition
@yanyan1011-0 参考小助理检查tf的方向,要保证odom到二维码话题所在的frame id这颗tf树完整,不是仅仅有tf树,tf树可能断了