在硬件平台中,各个组件都是通过USB接口与Jetson nano连接的。在ROS中启动各个节点时,需要各个设备的名字(如ttyUSB0)。默认的名字定义是按USB的插入顺序(如ttyUSB0,ttyUSB1,ttyUSB2)这对于用户理解是不利的。
所以我们需要对设备命名,主要过程如下(以摄像头为例):
udevadm info --name=/dev/video0 --attribute-walk | grep serial
这个命令是在 Linux 系统中用来查询有关设备的信息,具体来说是 /dev/video0
设备,通常这是一个视频设备,比如网络摄像头。这个命令的每个部分含义如下:
-
udevadm info
:这是一个用来访问 udev(Linux 内核的设备管理器)数据库的工具。它提供了设备的详细信息。 -
--name=/dev/video0
:这部分指定了要查询的设备。/dev/video0
通常是指第一个视频设备,比如第一个接入的网络摄像头。 -
--attribute-walk
:这个选项指示udevadm
显示设备的所有属性和属性值,这些信息是在设备的所有父节点中定义的。 -
| grep serial
:这部分是一个管道命令,它使用grep
来过滤输出,只显示包含“serial”(序列号)的行。这通常用于获取设备的序列号信息。
sudo vim /etc/udev/rules.d/99-fixed-interbotix-udev.rules
在打开的文件中添加
SUBSYSTEM=="video4linux", ATTRS{serial}=="<serial number here>", ATTR{index}=="0", ATTRS{idProduct}=="085c", ATTR{device/latency_timer}="1", SYMLINK+="CAM_RIGHT_WRIST"
最后,对改配置进行重新载入。
sudo udevadm control --reload && sudo udevadm trigger
就可以在/dev目录下,看到名为CAM_RIGHT_WRIST的设备。