つくばチャレンジ2009説明会と第1回試走会がいよいよ今週の土曜日になりました。自律走行は難しそうなので最低でもデータ取りできるように急ピッチで作業を進めています。
さて、つくばチャレンジに使用するロボットはGPSとレーザスキャナを装備していますが、このデバイス名両方とも/dev/ttyACMなので、接続する順番により、初めのデバイスが/dev/ttyACM0、次のデバイスが/dev/ttyACM1となりプログラムがやっかいになります。間違ったデバイスをオープンするとパソコンがフリーズしました。そこで、udevを使いレーザスキャナをttyACM0、GPSをttyACM1に固定します。
この記事はそのメモです。
- udevデータベースからデバイスの情報を取得
- udevinfo -a -p $(udevinfo -q path -n /dev/ttyACM1)
- 各デバイスに固有な情報を探します。ここでは、idVendorとidProductの情報を使います。
- /etc/udev/96-local.rulesというファイルを作成
- 中身は次のとおりです。なお,idProductの番号は変えています.
# ttyACM0: URG Laser scanner, ttyACM1: U-blox 5 GPS, urbtc0: imcs01 robot controller KERNEL=="ttyACM* SUBSYSTEMS=="usb" ATTRS{idVendor}=="15d1" ATTRS{idProduct}=="1234" NAME="ttyACM0" KERNEL=="ttyACM* SUBSYSTEMS=="usb" ATTRS{idVendor}=="1546" ATTRS{idProduct}=="5678" NAME="ttyACM1" KERNEL=="urbtc0" MODE="0666"
- USBデバイスを抜き差ししてデバイスファイルが固定されるか確かめましょう。
以上です。
コメント