1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2でKHR-3HVを接続する方法

Last updated at Posted at 2025-01-15

本記事では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の接続設定のせいで何度かつまづきました。この記事などを参考にし、これ以上苦しむ人が増えないことを願います。

(こんなことする人そもそもそんなにいない気がするけど)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?