Monash-Connected-Autonomous-Vehicle / ESDA

Software stack for MCAVs annual IGVC entry
0 stars 0 forks source link

Creating USB symlinks for sensors #62

Open AbBaSaMo opened 1 month ago

AbBaSaMo commented 1 month ago

Overview

3 devices are connected to the computer via USB: the piksi, the dynamixel servo and the Zed2i. Atm the piksi has a config file where you supply it's /dev/ which is something like /dev/ttyUSB0 but this sometimes changes depending on the order that devices are plugged in. Instead, what we want to do is create a symbolic link to the path and use the symbolic link which will be constant.

The Zed2i and servo don't really need this as of now (15/07/24) and so will not be prioritised but for the sake of completeness we can still implement this for them.

Atm the udev rule for the piksi has been written on the hive but there are permission issues wherein the synlink group must be dialout but is stuck as root. Additionally, instructions taken to achieve everything must be documented in the project README.md for future replication on other systems

Relevant resources

Acceptance criteria

Todo

AbBaSaMo commented 1 month ago

Doing the following to create predictable usb ref paths

# observe device deets
lsusb

# Bus <num> Device <num>: ID <vendor_id>:<product_id> <product_name>

# create udev to map a UUID to a specified path
sudo nano /etc/udev/rules.d/99-esda-usb.rules

#  Add rules as follows
# SUBSYSTEM=="tty", ATTRS{idVendor}=="<vendor_id>", ATTRS{idProduct}=="<product_id>", SYMLINK+="<custom_name>"

# Then reload the rules
sudo udevadm control --reload-rules
sudo udevadm trigger

# and finally double check it works
lsusb
AbBaSaMo commented 3 weeks ago

Run ls -a /dev/piksi and make sure the group is dialiout, if not fix it from root to dialout and record the steps taken for future reference