# USB 串口设备权限设置指南 ## 文件说明 | 文件 | 说明 | |------|------| | `99-usb-serial.rules` | udev 规则文件,固定设备名称和权限 | | `setup_usb_permissions.sh` | 自动化设置脚本 | ## 操作步骤 ### 方法一:使用自动化脚本(推荐) ```bash cd ~/code/amadeus_26 ./setup_usb_permissions.sh ``` ### 方法二:手动设置 1. **识别设备 VID/PID** ```bash # 查看 CH340 设备信息 udevadm info -a -n /dev/ttyUSB0 | grep -E "idVendor|idProduct" # 查看 IMU 设备信息 udevadm info -a -n /dev/ttyUSB1 | grep -E "idVendor|idProduct" ``` 2. **安装 udev 规则** ```bash sudo cp 99-usb-serial.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger ``` 3. **添加用户权限** ```bash sudo usermod -aG dialout $USER ``` 4. **生效** - 重新插拔 USB 设备,或重启系统 - 注销并重新登录,使权限生效 ## 设备映射 设置完成后,设备将以固定名称出现: | 设备 | 固定名称 | 原名称 | |------|----------|--------| | CH340 发送模块 | `/dev/ttyCH340` | `/dev/ttyUSB0` | | IMU 模块 | `/dev/ttyIMU` | `/dev/ttyUSB1` | ## 验证 ```bash # 检查设备链接 ls -la /dev/ttyCH340 /dev/ttyIMU # 检查权限 ls -la /dev/ttyUSB* ``` ## 使用 修改 launch 文件中的默认设备路径: ```python # launch/uart_transmitter.launch.py serial_port_arg = DeclareLaunchArgument( 'serial_port', default_value='/dev/ttyCH340', # 使用固定名称 description='CH340 串口设备路径' ) ``` 运行节点: ```bash ros2 launch amadeus_26 uart_transmitter.launch.py # 或指定 IMU 设备 ros2 launch amadeus_26 uart_transmitter.launch.py serial_port:=/dev/ttyIMU