docker
ETロボコン
EV3RT
EV3

macOSでDockerを使って簡単にTOPPERS/EV3RTのビルド環境を構築する


はじめに

本稿はLEGOマインドストームで、リアルタイムOSであるTOPPERS/EV3RT用のプログラムをビルドする環境をmacOSでDockerを使って簡単に構築するための方法を記しています。

内容は先日買いたこの記事とほぼ同じです。


Dockerを用いないビルド環境の構築について

もちろんDockerを使わずに環境を構築する方法はあります。

macOSで環境を構築する場合、例えば公式の方法はGNUツールチェーンをインストールしています。

1からインストールしても良いのですが、Dockerを使うと様々な利点があるので、今回Dockerを使った環境構築方法を記すことにしました。


予備知識


Docker


Dockerはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。

WikipediaのDockerの記事より


仮想化技術の一つで、例えば仮想マシン(VirtualBoxなど)と比べて、起動が速い・メモリ消費量が少ない・移植性が高いなどといったメリットが存在します。

必要なミドルウェアがインストール済の環境を手軽に用意できることと上記のメリットから、多くの方に利用されています。

参考


ETrobo-Docker

TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージです。

EV3RTをビルドするための環境が用意されています。今回はこれを利用します。

詳細はこちら


手順


Dockerを使えるようにする

※既にDockerがインストールされている場合は次のセクションにお進みください

ETrobo-Dockerを使うためにはDockerを使えるようになる必要があります。macOSではDocker Toolboxをインストールすることで実現できる。


Docker CEをインストールする

Dockerを使えるようにするためにDocker CEをインストールします。



  1. Docker StoreGet Docckerをクリックしてディスクイメージ(img)をダウンロードします。


  2. Docker.imgを実行すると、以下のようなウィンドウが立ち上がるので、Docker.appApplicationsディレクトリに移動します。

image.png


Dockerを起動する

/Applications/Docker.app起動すると、上部のメニューバーにDocker鯨のアイコンが出てきます。クリックすると、以下のようなプルダウンメニューが出てきます。プルダウンメニューの一番上の項目がDocker is runningになれば、Dockerの起動は完了です。

image.png

しっかり動くか確認するために、ターミナルを開いて以下のコマンドを実行しましょう。


~

$ docker run hello-world


image.png

上のような文字が出力されればインストールは完了!


EV3RTのサンプルコードをダウンロードする

※既にソースコードを持っている方は次のセクションに進んでください

スクリーンショット 2018-05-24 14.50.05.png



  1. TOPPERSのEV3のページev3rt-beta7-1-release.zipをダウンロードし、解凍します。

  2. 解凍したディレクトリの中にあるhrp2.tar.gzを解凍1し、解凍したhrp2/sdk/workspaceディレクトリをユーザのホームディレクトリ直下/Users/(ユーザ名)/workspaceにコピーします。


ソースコードをビルドする

ターミナルで目的のソースコードがあるフォルダに移動する。

/Users/(ユーザ名)/workspace以下にソースコードがある場合、以下のコマンドで移動できる。


~

$ cd ~/workspace


上のセクションでサンプルコードをダウンロードしている場合、lsコマンドで以下のフォルダがあることが確認できる。

~/workspaceの中身

ビルドしたいフォルダに移動する。今回はev3way-cppをビルドする。


~/workspace

$ cd ev3way-cpp


ビルドには、上記で紹介した、TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージのETrobo-Dockerを利用する。

以下のコマンドを実行する。初回はイメージをプルする必要があるため時間がかかる。


~/workspace/ev3way-cpp

$ docker run -v $PWD:/home/hrp2/sdk/workspace/product korosuke613/etrobo-docker


ビルド画面

このような画面になったらビルド成功!

生成された実行ファイルは、実行したフォルダにappという名前で保存されている。


Mindstormsで動かしてみる

生成した実行ファイルをMindstormsにコピーすることでMindstormsでプログラムを実行できる。


おわりに

本稿の方法だとEV3RTのビルド環境を簡単に素早く構築できます。

今回はWindowsでの説明でしたが、Dockerが使えるなら他のOSでも同様にビルド環境を構築できます。

また、ローカル環境を汚さないので、不要になったらDockerイメージを消すだけで済みます。

マインドストームを用いた教育で、各生徒のノートパソコンを使う場合2などにご活用ください。





  1. tar.xzの解凍ができない場合はこちらを参考にしてください。 



  2. 私の所属する研究室では毎年1年生にMindstormsで演習をしており、毎回各学生の環境構築で苦戦します。そこでDockerを用いることにしました。