macOSにDockerをインストールし,ubuntuでROSを動かす

macOSにDockerをインストールし,ubuntuでROSを動かす

タイトルの通りです.手順をメモします.

Dockerのインストール

  • Docker Desktop for Macをダウンロード.
  • インストーラーを走らせる.
  • Dockerのアカウントを作成する.
  • LaunchpadからDockerをクリックし,Docker Desktopを起動する.
  • 正常にインストール,起動していることをターミナルで確認.

      $ docker info
    

ROSイメージを起動

  • イメージをpullする.
    perceptionに関するタスクを扱いたいので,下記のtagのものを選択.

      $ docker pull ros:melodic-perception-bionic
    
  • コンテナを起動する. ホストと共有のディレクトリを作っておくと作業が楽になります.

      $ docker run -it --name docker_ros --net='host' -v ~/Desktop/sandbox/:/sandbox/ ros:melodic-perception-bionic /bin/bash
    

中身を見てみると,opencv,pclなどPerceptionに必要な基本ライブラリがすでにインストールされいました.

GUIが開かない件を解決する

rvizを起動しようとしたところ,Could not connect to any X display.と怒られます.
どうやらx serverの設定がうまく出来ていないようです.
こちらのLinkに従って対応します.

  • XQuartzをインストール
  • XQuartzを起動し,環境設定 --> セキュリティタブの"ネットワーク・クライアントからの接続を許可"にチェックを入れる.
  • Indirect GLXを有効にする.

      $ defaults write org.macosforge.xquartz.X11 enable_iglx -bool true
    
  • XQuartzを再起動

  • x serverにlocalhostを登録し,DISPLAY環境変数を指定してコンテナを起動.

      $ xhost + 127.0.0.1
      $ docker run -it --name docker_ros --net='host' -v ~/Desktop/sandbox/:/sandbox/ -e DISPLAY=docker.for.mac.localhost:0  -v="/tmp/.X11-unix:/tmp/.X11-unix:rw" --privileged ros:melodic-perception-bionic /bin/bash
    

rvizを起動するもsegmentation faultで落ちる.ムムム…
結局この問題を解決できずにmacでROSをイジるのは諦めた. そこそこのスペックでいいからubuntuマシンを自宅に欲しいところ.
特にリモートワークが当たり前になるとねぇ.