ページ

2013年10月10日木曜日

LinuxからUSB2Dynamixelを使う

UbuntuからDynamixelサーボをもりもり動かしたい!
そのためには、まずUSB2DynamixelがLinuxから使えるようにならないとダメですね。

USB2Dynamixelが認識されない


普通に挿しただけで認識される環境もあるようなのですが、自分の環境(Ubuntu 12.04 LTS amd64)だと、認識してくれませんでした。幸いFTDIのモジュール自体はカーネル(3.2.0-23-realtime)に含まれていたので、これを利用するようにします。

$sudo modprobe ftdi_sio

とコマンドを打ち込み、完了です。

$lsusb

で認識されているのが確認できると思います。なお、この設定は再起動しても有効なようです。

/dev/ttyUSB0に一般ユーザーから書き込めない


Linux環境ではデバイスが挿したときにudevによって/dev下にマウントされるのですが、その時の権限が適切に設定されていないようです。一般ユーザーからも書き込めるように設定を偏光子摩しよう。(参考)

/etc/udev/rules.d以下に、70-usbserial.rulesというファイルを作り、

KERNEL=="ttyUSB*", MODE="0666"

と書き込みます。あとはudevを再起動

$sudo service udev restart

して、USBを抜き差しすれば完了です。

FTDIのドライバって再コンパイルしないと遅延が発生するんじゃないの?


Robotisの公式ページにも書いてありますが、最近のカーネルに含まれているFTDIモジュールでは適切にLatencyTimerの値が(1msに)設定されているらしく、問題はないそうです。
また、最近のモジュールではこの値は簡単に確認or設定することができて、

$cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer

で確認することができます。(参考)
この値が1になってなかった場合は、
$echo 1 > /sys/bus/usb-serial/devices/ttyUSB0/latency_timer

で設定しておきましょう。

0 件のコメント:

コメントを投稿