はじめに
本稿はLEGOマインドストームで、リアルタイムOSであるTOPPERS/EV3RT用のプログラムをビルドする環境をmacOSでDockerを使って簡単に構築するための方法を記しています。
内容は先日買いたこの記事とほぼ同じです。
Dockerを用いないビルド環境の構築について
もちろんDockerを使わずに環境を構築する方法はあります。
macOSで環境を構築する場合、例えば公式の方法はGNUツールチェーンをインストールしています。
1からインストールしても良いのですが、Dockerを使うと様々な利点があるので、今回Dockerを使った環境構築方法を記すことにしました。
追記:2020/01/11
VS CodeのRemote Container機能を使って、ビルド環境だけじゃ無く開発環境も簡単に構築する方法を記事に書きました。
VS CodeのRemote Containerを使ってEV3RT開発環境をどこでも再現する【ETロボコン】
予備知識
Docker
Dockerはコンテナ型の仮想化環境を提供するオープンソースソフトウェアである。VMware製品などの完全仮想化を行うハイパーバイザ型製品と比べて、ディスク使用量は少なく、仮想環境 (インスタンス) 作成や起動は速く、性能劣化がほとんどないという利点を持つ。
WikipediaのDockerの記事より
仮想化技術の一つで、例えば仮想マシン(VirtualBoxなど)と比べて、起動が速い・メモリ消費量が少ない・移植性が高いなどといったメリットが存在します。
必要なミドルウェアがインストール済の環境を手軽に用意できることと上記のメリットから、多くの方に利用されています。
参考
- 【入門】Dockerとは?使い方と基本コマンドを分かりやすく解説します
- 今からでも間に合うDockerの基礎。コンテナとは何か、Dockerfileとは何か。Docker Meetup Tokyo #2
ETrobo-Docker
TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージです。
EV3RTをビルドするための環境が用意されています。今回はこれを利用します。
詳細はこちら
手順
Dockerを使えるようにする
※既にDockerがインストールされている場合は次のセクションにお進みください
ETrobo-Dockerを使うためにはDockerを使えるようになる必要があります。macOSではDocker Toolboxをインストールすることで実現できる。
Docker CEをインストールする
Dockerを使えるようにするためにDocker CEをインストールします。
-
Docker Storeの
Get Doccker
をクリックしてディスクイメージ(img)をダウンロードします。 -
Docker.img
を実行すると、以下のようなウィンドウが立ち上がるので、Docker.app
をApplications
ディレクトリに移動します。
Dockerを起動する
/Applications/Docker.app
起動すると、上部のメニューバーにDocker鯨のアイコンが出てきます。クリックすると、以下のようなプルダウンメニューが出てきます。プルダウンメニューの一番上の項目がDocker is running
になれば、Dockerの起動は完了です。
しっかり動くか確認するために、ターミナルを開いて以下のコマンドを実行しましょう。
$ docker run hello-world
EV3RTのサンプルコードをダウンロードする
※既にソースコードを持っている方は次のセクションに進んでください
-
TOPPERSのEV3のページで
ev3rt-beta7-1-release.zip
をダウンロードし、解凍します。 - 解凍したディレクトリの中にある
hrp2.tar.gz
を解凍1し、解凍したhrp2/sdk/workspace
ディレクトリをユーザのホームディレクトリ直下/Users/(ユーザ名)/workspace
にコピーします。
ソースコードをビルドする
ターミナルで目的のソースコードがあるフォルダに移動する。
/Users/(ユーザ名)/workspace
以下にソースコードがある場合、以下のコマンドで移動できる。
$ cd ~/workspace
上のセクションでサンプルコードをダウンロードしている場合、ls
コマンドで以下のフォルダがあることが確認できる。
ビルドしたいフォルダに移動する。今回はev3way-cpp
をビルドする。
$ cd ev3way-cpp
ビルドには、上記で紹介した、TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージのETrobo-Dockerを利用する。
以下のコマンドを実行する。初回はイメージをプルする必要があるため時間がかかる。
$ docker run -v $PWD:/home/hrp2/sdk/workspace/product korosuke613/etrobo-docker
このような画面になったらビルド成功!
生成された実行ファイルは、実行したフォルダにapp
という名前で保存されている。
Mindstormsで動かしてみる
生成した実行ファイルをMindstormsにコピーすることでMindstormsでプログラムを実行できる。
おわりに
本稿の方法だとEV3RTのビルド環境を簡単に素早く構築できます。
今回はWindowsでの説明でしたが、Dockerが使えるなら他のOSでも同様にビルド環境を構築できます。
また、ローカル環境を汚さないので、不要になったらDockerイメージを消すだけで済みます。
マインドストームを用いた教育で、各生徒のノートパソコンを使う場合2などにご活用ください。