目录
编辑
1 /dev/设备列表
2 ttyUSB*端口ID
3 端口别名rules动态绑定
4 launch文件配置
1 /dev/设备列表
lsusblsusb -t
2 ttyUSB*端口ID
查看/dev/ttyUSB* 设备端口ID :0403:6014
找到对应USB的设备ID,这里是 0403:6014, 可以不连接USB设备输入lsusb,连接上后再输一次lsusb,多加出现的那一行就是你对应的ID。
3 端口别名rules动态绑定
新建USB端口规则文件ttyusb.rules
cd /etc/udev/rules.d/
touch ttyusb.rules
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE:="0777", SYMLINK+="ServoBus"
注意: (需要替换id/自定义名称)
举例: ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014",动态绑定端口id,并设置别名SYMLINK+="ServoBus", 端口权限MODE:="0777"。
重启usb dev服务器
sudo service udev reloadsudo service udev restart
重新拔插设备并检查设备端口号:
ls /dev/ServoBus
查看所有端口
lsusb
可以发现,Rules已经生效,将ttyUSB0硬件端口软链接至rules-ServoBus端口便于分类识别与使用。
4 launch文件配置
将ROS launch文件中的端口名改为软链接的端口名即可,即使增删硬件,端口别名也不会错乱。
<arg name="usb_port" default="/dev/ServoBus"/>
<launch><arg name="usb_port" default="/dev/ServoBus"/><arg name="baud_rate" default="1000000"/><arg name="control_period" default="0.010"/><!--Hardware of Virtual Platform in Gazebo--><arg name="use_platform" default="true"/>
<!--Control Mode Selection --><arg name="using_publisher_gui" default="false"/>
<!-- Dynamixel prismatic joint servo MAX velocity , mm/s--><!--<arg name="prismatic_joint_max_velocity" default=100/>--><node name="open_manipulator_controller" pkg="open_manipulator_controller" type="open_manipulator_controller" output="screen" args="$(arg usb_port) $(arg baud_rate)"><param name="control_period" value="$(arg control_period)"/><param name="using_platform" value="$(arg use_platform)"/></node>
</launch>