
If you are running Ubuntu (or another flavor of Linux that uses udev), you can use a udev rule to get this result.
If you run the following as root
echo 'SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="sensors/ftdi_%s{serial}"' > /etc/udev/rules.d/52-ftdi.rules
you'll get a brand new udev rule that will create symlinks in /dev/sensors based on the unique serial numbers burned into the FTDI chip's EEPROM. You'll have to restart udev (or your entire PC) in order for this rule to take effect.
For example, if your Arduino's FTDI chip had a serial number of abc123, if you are using this udev rule after you plug the Arduino in, you will have a symlink of /dev/sensors/ftdi_abc123 that links to /dev/ttyUSB0 (or whichever /dev/ttyUSB device is appropriate if you have more than one). This way, you can use the path /dev/sensors/ftdi_abc123 in your launch files when configuring a node such as the xv_11_laser_driver.
Originally posted by tfoote with karma: 58457 on 2011-02-16
This answer was ACCEPTED on the original site
Post score: 9
Original comments
Comment by mjcarroll on 2011-02-16:
This is exactly what we do. We choose some informative names as well, like /dev/lrf, /dev/motor_controller, /dev/power_board. It makes things easy to find for both ROS parameters and interfacing with a terminal (like screen) if your device's protocol is "human readable".
Comment by tfoote on 2011-02-16:
copied to work around http://askbot.org/en/question/293/how-can-an-admin-answer-own-question-and-accept-it