本記事ではWSL2上で近藤科学様のヒューマノイドロボット「KHR-3HV Ver.2」を接続する方法を説明します。
拙い知識での説明になりますこと、ご了承ください。
前座
どうも、iiTAiです。
受講している講義で、KHR-3HV Ver.2を使った演習を行うことになりました。
以下のライブラリを使って、ロボット制御用のUIを作成するそうです。
どうやらこのライブラリはLinux向けに開発されたもののようです。
私はLinuxの環境を持ち合わせていないので、WSL2で取り組もうと考えました。
しかしWSL2は標準でUSBデバイスを認識できないようです。また、ロボットの方も接続に設定が求められます。
接続できないか試したところ、なんとか成功したため、その手順をここに記します。
参考記事
↓WSL2未導入の方向け(多分これみればなんとかなります)
環境
- Windows11
- WSL 2.3.26.0 (Ubuntu 22.04)
usbipdのインストール
PowerShellにて以下のコマンドを実行してください。
winget install --interactive --exact dorssel.usbipd-win
インストールが完了したらusbipd
コマンドをPowerShell上で使えるようになります。使えなければPowerShellやOSの再起動を試してください。
従来のusbipdでは、WSL上でlinux-toolsをインストールする必要がありましたが、usbipd 4.0以降ではその手順が不要になったそうです。
また、当バージョンでは後述のコマンドの記述も従来と異なります。
接続
WSL上でロボットのUSBを認識し、アクセスできる状態にします。
usbipdによるデバイスのattach
まずはKHR‐3HV Ver.2のUSBをパソコンに挿入してください。
挿入後、PowerShellを管理者として実行し、以下のコマンドを実行してください。
usbipd list
これによりWindows上で接続されたデバイスの一覧を取得できます(おそらくどれがロボットの情報なのかは見ればわかると思います)。
ここで、ロボットのBUSID(1-1とか書いてあるやつ)を覚えてください。
次にUSB機器のバインドを行います。以下のコマンドを実行してください。
usbipd bind --busid 1-1
BUSID1-1
の部分は、先に覚えたBUSIDを入力してください。
バインドした後、アタッチを行います。
usbipd attach --wsl --busid 1-1
こちらもBUSID1-1
の部分は、先に覚えたBUSIDを入力してください。
FTDIカーネルへの関連づけ
modprobe ftdi-sio
の実行時、ftdi-sioが見つからない旨のエラーが確認されました。
WSL2のカーネルの更新により解決できる場合があります。その場合、PowerShell上でwsl --update
の実行をお試しください。その後、sudo su
から再度実行してください。
次に、ロボット接続用のUSBデバイスをFTDIのカーネルに関連付けます。
WSLで以下のコマンドを実行してください。
sudo su
modprobe ftdi-sio
echo 165C 0008 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
exit
なお、プロダクトID0008
の部分は使用しているデバイスごとで異なります。
ベンダID | プロダクトID | デバイス名 |
---|---|---|
165C | 0006 | ICS USB ADAPTER HS |
165C | 0008 | Dual USB ADAPTER HS |
165C | 0009 | RS485 USB/SERIAL CONVERTER |
165C | 000A | RS485 USB ADAPTER HS |
以上で接続は完了です。おつかれさまでした。
アクセスできることの確認
正常に認識されていることを確認します。
WSLで以下のコマンドを実行して、ttyUSB0
などに接続されていることが示されたら成功です。
dmesg | grep tty
なにも出力されずに命令が終了した場合、lsusb
コマンドを実行し、ロボットのUSBがattachされていることを確認してください。
デバイスの一覧にロボットの情報があれば、おそらくWSL側の設定に問題があります。ロボットの情報がなければusbipdのattachに失敗しています。それぞれ必要な手順をやり直してください。
また、必要に応じてライブラリ記載のサンプルコードを動かしてみてください。
さいごに
usbipdのバージョン違いやDual USB ADAPTER HSの接続設定のせいで何度かつまづきました。この記事などを参考にし、これ以上苦しむ人が増えないことを願います。
(こんなことする人そもそもそんなにいない気がするけど)