WSL2を使ってみる その4(Ubuntu 16.04、ROS Kinetic、Open Manipulator)
はじめに
これまでWSL2にUbuntu 18.04、20.04、22.04をインストールして、ROS/ROS2の環境を構築しました。今回はUbuntu 16.04です。
オンラインドキュメントや書籍の情報が多かったという理由で、ROS Kineticも使ってみたかったんですよね。これだけの環境があれば、ひとまず動作検証には事欠かないかと思います。WSL2特有の問題は今後あるかもしれません。
▼例えば「ROS Industrial (Kinetic) 演習トレーニング」という資料がありました。
https://industrial-training-jp.readthedocs.io/ja/latest/index.html
前回はOpen Manipulatorの実機を操作しましたが、今回はシミュレーションを試してみました。
▼以前の記事はこちら
WSL2にUbuntu 16.04をインストールする
前回はwslコマンドでインストールしたのですが、インストールできるリストにUbuntu 16.04はありませんでした。
▼Ubuntu 18.04以降であればあります。
Ubuntu 20.04のときは.appxファイルを実行してもインストールされなかったのですが、今回の場合はインストールできました。
▼こちらのページにディストリビューションの一覧があります。
https://learn.microsoft.com/ja-jp/windows/wsl/install-manual#downloading-distributions
▼こちらのリンクをクリックすると、ダウンロードが始まります。
https://aka.ms/wsl-ubuntu-1604
ダウンロードされた.appxファイルを実行すると、インストールされます。
▼追加されました。
いつも通りであればインストール後にneofetchでバージョンを表示するのですが、今回はaptでインストールすることができませんでした。バージョンを表示できる、他のコマンドを実行してみました。
▼以下のページのコマンドを実行しました。
https://www.famlog.jp/article/4873
▼コマンドはこちら
lsb_release -a
lsb_release -d
▼Ubuntuのバージョンが表示されています。
▼他にも追加されたようです。
ROS Kineticをインストールする
インストールしたのはUbuntu 16.04なので、ROSのバージョンはKineticです。今回も後でOpen Manipulatorを操作したかったので、そのページを参考にしました。
▼こちらにUbuntuとROSのバージョンの対応表がありました。
https://qiita.com/atsuto/items/d7a7730b278ef8c9b662
▼インストールはこちらのページを参考にしました。
https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide
▼ページの上の方に書かれているのですが、ROSのバージョンを選択すると切り替えることができます。
▼手順はROS Noeticの場合とほとんど同じです。エラーへの対処も同じでした。
まずはROSをインストールします。
▼コマンドはこちら。前回はnoeticだったところが、kineticになっています。
sudo apt-get update
wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh
chmod 755 ./install_ros_kinetic.sh
bash ./install_ros_kinetic.sh
環境構築が完了した時点でコマンドが表示されていました。これを実行しておくと、この後のエラーが出ずに済むかもしれません。後述していますが、環境をやり直したときはエラーが出ませんでした。
▼/home/background/catkin_ws/buildのディレクトリでmake -j8 -l8を実行するように表示されています。
ROSのパッケージをインストールします。
▼コマンドはこちら
source ~/.bashrc
sudo apt-get install ros-kinetic-ros-controllers ros-kinetic-gazebo* ros-kinetic-moveit* ros-kinetic-industrial-core
sudo apt-get install ros-kinetic-dynamixel-sdk ros-kinetic-dynamixel-workbench*
sudo apt-get install ros-kinetic-robotis-manipulator
ここまではすんなりインストールできたのですが、catkin__makeを実行したときにエラーが出ました。
▼コマンドはこちら
cd ~/catkin_ws/src/
git clone -b kinetic-devel https://github.com/ROBOTIS-GIT/open_manipulator.git
git clone -b kinetic-devel https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
git clone -b kinetic-devel https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
git clone https://github.com/ROBOTIS-GIT/open_manipulator_dependencies.git
cd ~/catkin_ws && catkin_make
▼Invoking "make -j8 -l8" failedというエラーです。
CMakeLists.txtを一度削除してから再度catkin_makeを実行すると、解決しました。
▼こちらのコマンドでcatkin_makeを実行できました。
rm -r src/CMakeLists.txt
cd ~/catkin_ws && catkin_make
環境を再構築してみる
いろいろインストールしているとPythonの環境が壊れたので、Ubuntu環境ごとやり直してみました。
▼スタート画面にあったUbuntu 16.04を右クリックして、アンインストールしました。
▼インストールしたときに実行した.appxファイルを再度実行してみると、インストールできませんでした。
▼Ubuntu 22.04のときも再インストールしたのですが、同様の対処をしました。
Windowsの機能の有効化または無効化で、Virtual Machine Platform(仮想マシンプラットフォーム)とWindows Subsystem for Linux(Linux用Windowsサブシステム)を無効化しました。
▼検索欄で検索すると出てくるかと思います。
▼仮想マシンプラットフォームと、Linux用Windowsサブシステムを無効化しました。
再起動後、先程の.appxファイルを実行するとインストールできました。
その後、無効化した機能を有効化し、再起動してからUbuntu 16.04を起動すると、利用できるようになっていました。
▼有効化してからでないと、エラーが出ていました。
Gazeboを試してみる
ROBOTISのe-manualにあった、Simulationを試してみました。
▼こちらのページを参考にしました。
https://emanual.robotis.com/docs/en/platform/openmanipulator_x/ros_simulation/#launch-gazebo
まずはGazeboを起動します。3D空間上に、Opne Manipulatorのモデルが表示されます。
▼コマンドはこちら
roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch
▼Gazeboが起動しました。
一番下に三角形のスタートボタンがあるので、これは入力しておいてください。
別のターミナルで、open_manipulator_controllerを起動します。
▼コマンドはこちら
roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false
さらに別のターミナルで、open_manipulator_control_guiを起動します。実機を操作したときはキーボードでの操作でしたが、今回はGUIのアプリで操作してみました。
▼コマンドはこちら
roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
▼GUIのアプリが起動しました。
実際にGazebo上のOpne Manipulatorを操作してみました。
▼動画には映っていませんが、GUIのアプリで操作しています。
▼操作することができました。
MoveItを試してみる
書籍で紹介されていた、MoveItを試してみました。運動学や逆運動学の計算、動作軌道の計画などを行うことができる機能があって、後でUnreal Engine 5と一緒に使いたいなと思っています。
▼こちらの書籍でROS1についても少し触れられていて、そこに書かれていました。
Open Manipulator用のMoveItをインストールしました。
▼コマンドはこちら
sudo apt install ros-$ROS_DISTRO-open-manipulator-moveit
▼以下のコマンドで起動できます。
roslaunch open_manipulator_moveit demo.launch
▼3次元での可視化には、RVizが使われています。
実際にシミュレーションを行ってみました。
▼ランダムな姿勢になって、その姿勢になるようにどう動かすのかがシミュレーションされています。
最後に
ROS Noeticのときと同様に、ROS Kineticの環境も構築できました。書籍やネット上の情報だとバージョンがバラバラなのですが、必要になればまた用意すれば良いかなと思っています。
GazeboとMoveItについては、今回は起動だけ行いました。実機との連携やNode-REDとの通信を行いたいので、詳しく調べてみます。