WSL2を試す:Gazeboも動くぞ!

WSL (Windows Subsystem for Linux)で授業のROS教材が動かないので、来年には正式にリリースされるLinuxが完全に動くWSL2試してみる。WSLでは動かなった授業のROS教材も問題なく動いた。この記事はそのメモ。なお、現時点(2019-10-25)ではWSL2とVirtualBox、VMwareは共存できないので注意。

Windows 10のPreview版をインストールしないとWSL2は使えないので、今年度の授業には使えないが、来年度にはリリース版でも動くので使えるだろう。

なお、WSL2のインストールはMicrosoftの以下の記事に従い作業した。


まず、ビルド18917以降にするためにWindows Insiderプログラムに参加する。

  • 以下のリンクからWindows Insider Programに登録する。
  • Windows Insider Programの設定を行う。
    • スタート → 設定 → 更新とセキュリティ → Windows Insider Program
    • 「Windows Insider Programに参加して、Windows10のプレビュービルドを取得し、フィードバックを送信してWindowsの発展にご協力ください。」と聞かれるので「開始」をクリック。
    • 「Windows Insider Programにご参加ください」と聞かれる。アカウントを切り替えたい場合は「アカウントの切り替え」をクリックする。そのままでよい場合は「登録」をクリック。

    • 「Insiderの設定を選択してください」と聞かれるので、「ファスト」を選択し、「確認」をクリックする。する。WSL2をインストールまでは「ファスト」にして、インストール後は「スロー」にする。そうしないと、OS更新プログラムが1週間に1,2回入手し、再起動が必要になるので仕事に支障が出るかもしれない。
    • 「すべての人に、より良いWindowsを」と聞かれるので「確認」をクリック。
    • 「あと1ステップです。。。」と聞かれるので「今すぐ再起動」をクリックする。
  • Windows Preview版のインストール
    • 再起動したら、以下を実行する。
      • スタート → 設定 → 更新とセキュリティ → 更新プログラムのチェック
    • 利用可能な更新プログラムとして、Windows 10 Insider Previewが表示される。ビルド 18917ならWSL2をインストールできる。この場合はバージョン19002.1だった。
    • 更新して以下の手順でバージョンをチェックする。OSビルドが18917以上ならよい。
      • スタート→設定→システム→バージョン情報
  • 仮想マシンプラットフォーム ‘ オプションのコンポーネントを有効にし、WSL を有効にする。
    • 管理者権限でPowerShellを開き以下のコマンドを実行する。PowerShellを開くのはスタートメニューからWindowsPowerShellを選び、右マウスボタンをクリックして「管理者として実行する」を選ぶ。
      • Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
      • Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
      • 再起動するかと聞かれので「Y」キーを押して再起動する。
  • WSLとUbuntu-18.04のインストール
  •  WSL2の設定
    • 管理者権限でPowerShellを開き、次のコマンドを実行する。
      • wsl -l
    • 僕の環境では、Ubuntu-16.04、Ubuntu-18.04が既にインストールされている。次の困んでUbuntu-18.04をWSL2に設定する。
      • wsl –set-version Ubuntu-18.04 2
    • 次のコマンドで、設定を確認する。Ubuntu-18.04が次のようにVERSION 2になっていればよい。
      • wsl –list –verbose
  • ROS Melodicのインストール
  • ROS での動作確認
    • Windowsのデスクトップで右マウスボタンをクリックして、NVIDIAコントロールパネルを選択し、「優先するグラフィックスプロセッサ」に「高いパフォーマンスNVIDIAプロセッサ」に設定する。
    • VcXsrvを以下の設定で起動する。
      • Select display settingsウインドウ
        • Multiple windowsにチェックを入れ、「次へ(N)」をクリックする。
      • Select how to start clientsウインドウ
        • Start no client にチェックを入れ、「次へ(N)」をクリックする。
      • Extra settingsウインドウ
        • Clipboard、Primary Selection、Disable access controlにチェックを入れる
        • Additional parameter for VcXsrvに”-ac”を入力して、「次へ」をクリックする。
      • Configuration completeウインドウ
        • 「完了」をクリックするとVxSrvが起動する。
    • ROSでの動作確認
      • Ubuntu18.04LTSアイコンをクリックして端末を開き、.bashrcをgeditなどのエディタで以下の4行をファイルの最後に追加して保存する。特に、DISPLAY環境変数がlocalhostでは動かないので注意。
        export TURTLEBOT3_MODEL=burger
        export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
        source /opt/ros/melodic/setup.bash
        source ~/catkin_ws/devel/setup.bash

      •  WSLでは動かなかった以下のGazebo上のTurtlebot3をキーボードで動かすサンプルを試す。デスクトップにあるUbuntu18.04LTSアイコンをクリックして端末を開き、以下のリンクを実行して動作を確認した。私の環境ではWSL2では問題なく動作した。めでたし!めでたし!

終わり

コメント

タイトルとURLをコピーしました