専門実験2021(ロボット制御):WSLとVcXsrvのインストール

2021年度後学期 金沢工業大学 ロボティクス学科 専門実験(ロボット制御)では,授業中に配布するUbuntuu20.04インストール済みのUSBメモリを使って実際のロボットで実習しますが,課題等は各人のノートPCにWSLとUbuntu20.04をインストールしてシミュレータ上で実習します.なお,ロボットプログラミングⅡを履修している学生は,この作業は必要ありません.


  •  環 境
    • Windows10 (64ビット版、バージョン2004, ビルド19041以上)
    • BIOSでIntel Virtualization Technology (Intel VT-x)を有効にする。デフォルトで有効になっている場合は多いので、うまく動作しないときに確認しましょう。
  • 準 備
    • Windows10のバージョン確認.WSLを使うためにはWindows10が次の条件を満足する必要がある。
      • バージョン2004以降
      • ビルド19041以降
    • バージョンの確認方法
      • スタート→設定→バージョン情報→Windowsの仕様で確認する。
    • 条件を満足していない場合は以下のリンクのWindows 10 May 2020 Update [今すぐアップデート]をクリックする。
  • WSLのインストール
    • スタート→Windows PowerShell→Windows PowerShell(右マウスボタンで「管理者として実行する」を選択して)する.
    • タスクバーに下図の右端に示す盾のアイコンが現れる.のでクリックする.

      「このアプリがデバイスに変更を加えることを許可しますか」と聞かれるので,「はい」をクリックしてPowerShellを管理者権限で起動する.
    • 次のコマンドをPowerShellで実行(コピペしてEnterキーを押す)するだけでインストールが終わってしまう.ネットワーク環境によるが,私の環境では1分ぐらいでインストールが終了した.
      • wsl --install -d Ubuntu-20.04
    • WSLを有効化するためにコンピュータを再起動する.
  • Ubuntu20.04の設定とアプリのインストール
    • 再起動するとUbuntuの端末が自動的に開き,インストール中というメッセージがでる.
    • 3分ぐらい経つとユーザー情報の設定画面になる.以下のようにUbuntu用のユーザ名を聞かれるので,半角英子文字のユーザ名を入れ,Enterキーを押すこの例ではkitとする.次のパスワードも聞かれるので入力してEnterキーを押す.再度,入力するように聞かれるので,再入力してEnterキーを押すと設定が終了する.
    • アプリのインストール
      • 端末で以下のコマンドを入力する.
        • sudo apt install x11-apps -y
        • sudo apt install gedit -y
  • VcXsrv Window X  サーバーのインストール
    • WSLはグラフィカルなインタフェース(GUI)が使えないので、X Windowシステムを別にインストールしなければならない。ここでは、VcXsrv(無償)をインストールする。以下のウェブサイトに行き、下図の赤で囲った[Download]をクリックする。2021年10月8日現在のバージョンは1.20.9.0。
    • https://sourceforge.net/projects/vcxsrv/
    • ダウンロードしたexeファイルをダブルクリックする。次のウインドウが開くので「Next」をクリックする。
    • インストールするフォルダーを聞かれるので、デフォルトのまま「Install」をクリックする。
    • セットアップが終わったら「Close」をクリックしてインストールを終了する。
  • Xサーバーの起動
    • デスクトップにできたXLaunchアイコンをダブルクリックする。
    • Select display settingsのウインドウになるのでデフォルトのまま「次へ(N)」をクリックする。
    • Select how to start clientのウインドウになるので、デフオルトのまま「次へ(N)」をクリックする。
    • Extra Settingsのウインドウになるので 以下の図のようにClipboard、Primary Selection、Disable access controlにチェックを入れ、Native openglのチェックを外して「次へ」をクリックする。Additional parameters for VcXsrvは入力しなくてもよい。
    • Finish configurationウインドウになるので、「Save configuration」をクリックして設定ファイルをデスクトップにconfig.xlaunch保存してから「完了」をクリックする。次回からはデスクトップのconfig.xlaunchアイコンをダブルクリックする。そうすると再度設定する必要はなく設定済みのXが起動する。
    • ファイアウォールなどを設定している場合は、次の図のように「Windowsセキュリティの重要な警告」というウインドウが開くので、「アクセスを許可する」をクリックする。
  • Ubuntuの設定
    • [スタートメニュー]→[Ubuntu 20.04 LTS]からUbuntuのターミナル(以下、端末とよぶ)を起動する。
      • タスクバーにピン留めするかデスクトップにショートカットを作っておくと便利。
    •  起動した端末で以下のコマンドを実行し、必要なパッケージをインストールする。なお、$はコマンド入力の合図を示すプロンプトを表しているので入20力しない。
      • $ sudo apt install -y language-pack-ja
      • sudo update-locale LANG=ja_JP.UTF-8
      • sudo apt install -y git gedit emacs
      • $ sudo apt install -y vim build-essential pkg-config firefox dbus
    • 環境変数の設定
      • 以下の5行を.bashrcの最後にエディタを使い追加し保存する.この設定により,LinuxのウインドウアプリケーションとGazeboが起動するようになる。nanoエディタで保存する方法はこのリンクを参照して欲しい。
        • export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
          export ROS_MASTER_URI=http://localhost:11311
          export ROS_HOSTNAME=localhost
          export LIBGL_ALWAYS_INDIRECT=""
          export GAZEBO_IP=127.0.0.1
      • 追加しただけではすぐ有効にならないので、次のコマンドを実行して設定を反映する。
        • $ source ~/.bashrc
    • 確認
      • ウインドウアプリケーションが起動するか確認しましょう。
      • Ubuntuで標準のウェブブラウザfirefoxを起動してみましょう。Ubuntu端末を起動して次のコマンドを実行してください。うまくfirefoxのウインドウが開けば成功です。お疲れ様!
        • $ firefox &
      • エラーがでる場合は次のエラー対処法をご覧ください。
  • エラーの対処法
    • firefoxなどのアプリが開かない
      • デスクトップに作ったXサーバーアプリVcXsrvのショートカットをダブルクリックして起動する。
      •  ~/.bashrcに以下の行が含まれているか確認してなければ、geditやnanoなどのエディタを使って最後の行の後に追加する。
        • export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
      • 端末で次のコマンドを実行する。
        • $ source  ~/.bashrc
    • WSLバージョン確認
      • Ubuntu20.04のWSLがバージョン2になっているかWindows PowerShellを管理者権限で起動して次のコマンドで確認する。
        • wsl -l -v
        • 以下のように表示されていればOK。
          PS C:\WINDOWS\system32> wsl -l -v
          NAME                 STATE       VERSION
          * Ubuntu-20.04  Running        2
          Ubuntu               Stopped       1
        • Ubuntu-20.04がVERSION 1になっていたら、Windows PowerShellで次のコマンドによりVERSION 2へ変換する。変換に数分かかる。変換が終了したら上のコマンドで確認する。
          • wsl --set-version Ubuntu-20.04  2

終わり

コメント

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