WSL: Windows for Subsystem for Linuxのインストールと設定

仮想マシンを使わなくてWindows上でLinuxが使えるWindows for Subsystem for Linux (以下、WSLと表記)のインストールとメモ。しかもLinuxのバイナリがそのまま動く。Windows10のバージョンが1803だとROSのシミュレータGazeboでロボットが動作せず、授業では使用できなかった。バージョン1903は動作したという報告があったので試してみる。

  •  バージョンの確認
    • 「スタートメニュー→歯車アイコン(設定)→システム→バージョン情報」を確認しWindowsの1903以上なら良い。

      バージョンが低い場合は「スタートメニュー→歯車アイコン(設定)→更新とセキュリティ」から更新する。なお、更新作業は時間がかかり(私の環境では1時間程度かかった)、途中で作業を中断し電源を切れないので時間的に余裕がある場合に実施すること。
  • Windows Subsystem for Linuxの有効化
    • スタートメニュ→Windowsシステムツール→コントロールパネル→プログラム→プログラムと機能→Windowsの機能の有効化または無効化をクリックする。
    • Windows Subsystem for Linuxにチェックを入れ、「OK」をクリックする。
    • 再起動するように聞かれるので再起動する。
  • Ubuntuをストアからインストール
    • スタートメニューの検索窓に「store」と入力すると「Microsoft Store」と表示されるのでそれをクリックする。
  • 下記の画面になるので、Ubutu 16.04LTSを選択しクリックする。下の画面にならない場合は「検索」にUbuntuと入力する。
  • 次のウインドウになるので「入手」をクリックする。ダウンロードサイズは約200MB。
  • 入手が終わると次の画面になるので「起動」をクリックする。
  • 次のウインドウになるので少し待つ。
  • ユーザ名とパスワードを聞かれるので入力する。全角は使えないので半角英数字を使うこと。ユーザ名、パスワードは今後も使うので忘れないこと。
  • 時間帯の設定。標準では、日本の時間帯ではないので以下のコマンドを端末にコピペする。パスワードを聞かれるので入力する。なお、$はプロンプト(入力できる状態を示す記号)なのでコピペしない。
    • $ sudo dpkg-reconfigure tzdata
    • 次のウインドウになるので「Asia」を選択して、Tabキーを押して「OK」を選択してEnterキーを押す。
    • 「T」を押すとTaipeに飛ぶので、下矢印キーでTokyoを選択し、Enterキーを押す。
    • dateコマンドを端末に入力して正しい時間帯に(JST)なっていたら終わり。
  • ダウンロード先の変更。標準では海外からダウンロードするようになっているので、時短するために以下のコマンドを端末にコピペして実行し、国内に変更する。
    • $ sudo sed -i 's/\/archive\.ubuntu/\/jp\.archive\.ubuntu/' /etc/apt/sources.list
  • 次のコマンドでアップデートする。
    • $ sudo apt update
    • $ sudo apt upgrade -y
  • X Window システムのインストール。WSLはグラフィカルなインタフェース(GUI)が使えないので、ROSを動かすためにはX Windowシステムを別にインストールしなければならない。調べたらVcXsrvが無償で良さそうなのでインストールしてみる。以下のウェブサイトに行き、下図の赤で囲った「Download]をクリックする。2019年10月2日現在のバージョンは1.20.5.1。
    • 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のチェックを外して「次へ」をクリックする。
    • Finish configurationウインドウになるので、「Save configuration」をクリックして設定ファイルを保存してから「完了」をクリックする。
    • ファイアウォールなどを設定している場合は、次の図のように「Windowsセキュリティの重要な警告」というウインドウが開くので、「アクセスを許可する」をクリックする。
  • Ubuntuの設定
    • スタートメニュー→Ubuntu 16.04からUbuntuターミナルを起動する。
      デスクトップにショートカットを作っておくと便利。
    •  起動したターミナルで以下のコマンドを実行し、必要なパッケージをインストールする。なお、$はプロンプトなので入力しない。
      • $ sudo apt update
      • $ sudo apt upgrade
      • $ sudo apt-get install language-pack-ja -y
      • sudo update-locale LANG=ja_JP.UTF-8
      • $ sudo apt-get install git emacs gedit build-essential firefox dbus -y
    • 環境変数の設定
      • 自分のパソコン画面にLinuxのウインドウアプリケーションが表示されるように以下のコマンドを実行して環境変数を設定する。
        • $ echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc
        • $ source ~/.bashrc
  • ROS Kineticのインストール
    • 上のリンクに従ってインストール作業をしてから、以下の設定を行う。
    •  Gazeboを起動すると画面が真っ黒で何も表示されない。モデルが表示されるように以下のコマンドで環境変数を設定する。
      • $ echo ‘export GAZEBO_IP=127.0.0.1’ >> ~/.bashrc
      • $ source ~/.bashrc
    • Gazeboの起動
      • Ubuntuターミナルを起動し、次のコマンドを実行する。
        • $ gazebo
    • rvizでdbus関係のエラーを解決するためにmachine IDを設定する。Ubuntuターミナルを起動し、次のコマンドを実行する。
      • $ dbus-uuidgen | sudo tee /etc/machine-id
    • rvizの起動
      • Ubuntuターミナルを起動し、次のコマンドを実行する。
        • $ roscore
      • もう一つ、Ubuntuターミナルを起動し、次のコマンドを実行する。
        • $ rosrun  rviz  rviz

終わり

コメント

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