WSL2を使ってみる その3(Ubuntu 20.04、ROS Noetic、Open Manipulator)

はじめに

 今回はWSL2のUbuntu 20.04に、ROSをインストールしてみました。

 前回構築したのはWSL2のUbuntu 22.04です。WSL2で複数のバージョンのUbuntu環境をインストールできたので、ROSも複数のバージョンをインストールして試しています。

 入れすぎた結果、私のノートパソコンにはUbuntuとROS/ROS2の環境が4つずつ入っています...

▼以前の記事はこちら

ROS2を使ってみる その1(環境構築、Windows)

はじめに  今回はROS2の環境構築です。何度か挑戦して諦めていたのですが、今度こそちゃんと動かせるようにしてみます。  つい最近参加していたROS Japan UGでは、ROS1…

WSL2を使ってみる その1(Ubuntu 22.04、Node-RED、メモリ制限)

はじめに  今回はWindows環境でLinuxディストリビューションをインストールできる、WSL(Windows Subsystem for Linux)の環境を構築してみました。  最近オープンソー…

バージョンについて

 ROSには様々なバージョンがありますが、それぞれ対応したUbuntuのバージョンがあるようです。

▼ROS1はUbuntu 20.04までのようです。

https://qiita.com/atsuto/items/d7a7730b278ef8c9b662

▼WSL2でROS2の環境を構築したときはUbuntu 22.04でした。

WSL2を使ってみる その2(Ubuntu 22.04、ROS2 Iron)

はじめに  以前の記事でWindows環境にROS2の環境を構築しました。それ以降パッケージをインストールして利用しようとしていたのですが、インストールするときのコマンド…

 今回はROS1を使いたかったので、Ubuntuのバージョンを20.04にして、ROSのNoeticをインストールすることにしました。

WSL2に異なるバージョンのUbuntuをインストールする

 Microsoftの「以前のバージョンの WSL の手動インストール手順」というページがあったのですが、ディストリビューションをインストールしても変更が反映されませんでした。

▼こちらのページです。

https://learn.microsoft.com/ja-jp/windows/wsl/install-manual

 Ubuntu 20.04の.appxファイルをダウンロードして実行してみたのですが、Ubuntu22.04のままでした。

▼.appxファイルを実行すると、このような画面が起動します。

 他の方法を調べていたら、wslのコマンドでインストールできるディストリビューションの表示ができると書かれていました。

▼こちらのページです。

https://development.relaxes.jp/windows11%E3%81%ABwsl2%EF%BC%8Bubuntu20-04%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

▼以下のコマンドで、インストールできるディストリビューションを表示できます。

▼UbuntuやDebian、OraclLinuxがあります。

 インストールするためのコマンドも表示されていたので、それに従ってインストールしました。

▼以下のコマンドでインストールしました。

 インストールが完了すると、Ubuntu 20.04.6 LTSを利用できるようになっていました。

▼すでにインストールされていたUbuntuとは別になっています。

 以前の記事でも試していた、neofetchでバージョンを表示してみました。

▼コマンドはこちら

▼違うバージョンで起動しています。

▼エクスプローラーのLinuxも、別のフォルダとして作成されています。

 ついでに、Ubuntu 18.04もインストールしてみました。

▼コマンドはこれだけです。

▼Ubuntu 18.04が追加されました。

▼エクスプローラーでも別のフォルダとして作成されています。

 WindowsのPowerShellとUbuntu 18.04にもneofetchをインストールしました。

▼neofetchを並べるとこんな感じ。

ROS Noeticをインストールする

 この後Open Manipulatorを動かしたかったので、そのページを参考にしました。

▼Quick Start Guideのページはこちら

https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide

▼ページの上の方に書かれているのですが、ROSのバージョンを選択すると切り替えることができます。今回はNoeticです。

https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide/

 Ubuntuのインストールは完了しているので、ROSのインストールを行います。ROBOTIS-GITに用意されていたこともあって、Windows環境にROS2をインストールしたときよりもよっぽど簡単でした。

▼インストールするためのコマンドはこちら

▼インストールに使われていたシェルスクリプトはこちら

https://github.com/ROBOTIS-GIT/robotis_tools/blob/master/install_ros_noetic.sh

▼Qtとかも入ったようです。

 roscoreを実行すると、起動していました。

▼ちゃんと起動しています。

 他の環境で試していたときに気づいたのですが、環境構築が完了した時点でコマンドが表示されていました。これを実行しておくと、後でエラーが出ずに済むかもしれません。

▼Ubuntu 16.04で再構築していたときは、/home/background/catkin_ws/buildのディレクトリでmake -j8 -l8を実行すると、この後のエラーが出ませんでした。

ROS Packagesのインストール

 次に、Open Manipulatorに必要なパッケージをインストールしていきます。

▼コマンドはこちら

 ここまではドキュメント通りで順調だったのですが、catkin_makeを実行したときにエラーが出ました。

▼コマンドはこちら

▼Invoking "make -j8 -l8" failedというエラーです。

 このエラーは、先述したようにROSの環境構築後に表示されたコマンドを実行していれば回避できていたのかもしれません。

 CMakeLists.txtを一度削除してから再度catkin_makeを実行すると、解決しました。

▼コマンドはこちら

WSL2環境とUSBデバイスを接続する

 WSL2のUbuntuでは、設定しないとUSBデバイスに接続できないようです。この後Open ManipulatorとPCを接続するためにU2D2というUSBデバイスを使うのですが、そのときに気づきました。

▼WSL2のUSBデバイスとの接続に関するページはこちら

https://learn.microsoft.com/ja-jp/windows/wsl/connect-usb

 「usbipd-win 4.0.0 以上がインストール済みであること」が前提だったので、インストールしておきました。

▼こちらからmsiファイルをダウンロードして実行すると、インストールが始まります。

https://github.com/dorssel/usbipd-win/releases/tag/v4.2.0

 WindowsのPowerShellでコマンドを実行していきます。管理者権限で起動しておいてください。

▼接続中のUSBデバイスを確認するコマンドはこちら

▼この後のコマンドを実行した状態ですが、USB Serial ConverterがU2D2です。

 今回の場合、左に書いてあるBUSIDが1-2です。コマンドでこのBUSIDに対するUSBデバイスを共有します。

▼busidは状況に合わせて変更してください。

▼実行してみると以下の警告が表示されていました。

▼--forceをつけて実行すると警告は表示されていませんでした。

▼以下のコマンドでWSL2に接続したディストリビューションでも接続できるようにします。

 この状態でUbuntuのターミナルを開き、lsusbを実行すると接続されていることが確認できました。

▼接続前と接続後の画像です。ちゃんと接続できていました。

 この後USBを抜いてみたのですが、もう一度接続する場合は再度コマンドを実行する必要がありました。

Open Manipulatorを操作してみる

 Open Manipulatorの実機をお借りすることができたので、操作してみました。

 PCとOpen Manipulatorの接続には、U2D2とその周辺機器を使いました。

▼購入したことがあるのですが、個人で買うには高額ですよね...

USBシリアル変換インターフェース U2D2 [902-0132-000] - ¥6,963.- : アールティロボットショップ, ロボットキット、部品は専門スタッフがいるアールティへ! (rt-shop.jp)

U2D2 PHB Set [902-0145-001] - ¥4,180.- : アールティロボットショップ, ロボットキット、部品は専門スタッフがいるアールティへ! (rt-shop.jp)

▼U2D2を使って接続する場合のコマンドはこちら

▼U2D2に接続できると、LEDが点灯します。

▼別のターミナルを開いて、以下のコマンドを実行しました。

▼キーボードでの操作キーが表示されます。

▼Unreal Engine 5でOpen Manipulatorのモデルを作成したときは、このキー割り当てに合わせました。

Unreal Engine 5を使ってみる その7(Open Manipulator)

はじめに  前回、Unreal Engine 5(UE5)でロボットアームのようなものを作成しました。今回はROBOTIS社がオープンソースとして公開している、Open Manipulatorというロ…

 キーを入力すると操作できました。連打すると反応しなくなるのですが、長押しするとゆっくり回りました。

▼動かすことができました。

 ちなみに、この後PS4のコントローラで動かすプログラムを試そうとしたのですが、インストールできませんでした。これはWSL2ではないUbuntu環境にインストールしたROS Noeticでも同じところで引っかかったことがあります。

▼こちらのページにインストール方法が書かれているのですが、noeticに切り替えてもkineticのままになっていました。

https://emanual.robotis.com/docs/en/platform/openmanipulator_x/ros_operation/#ps4-joystick-1

▼kineticだとインストールできません。

▼ros-noetic-joystick-driversに依存しているパッケージがインストールできないようです。

 ソースコードからのビルドを試すと、一応インストールできたものの動作しませんでした。ビルドの方法があまりよく分かっていないので、また詳しく調べてみようと思います。

最後に

 WSL2で複数のUbuntuディストリビューションをインストールできたので、動作検証には便利になりそうです。

 今回のUSBデバイスの接続のように、WSL2で起動しているが故の問題には遭遇しそうだなと思っています。要注意ですね。

 実機を操作することができたので、他のパッケージも試してみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です