cangoxina

生産性向上見習いのブログ的な何かです

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

この記事は、macOSでDockerを使って簡単にTOPPERS/EV3RTのビルド環境を構築する - Qiitaアーカイブです。

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

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

korosuke613.hatenablog.com


目次


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

もちろんDockerを使わずに環境を構築する方法はあります。 macOSで環境を構築する場合、例えば公式の方法GNUツールチェーンをインストールしています。 1からインストールしても良いのですが、Dockerを使うと様々な利点があるので、今回Dockerを使った環境構築方法を記すことにしました。

追記:2020/01/11

VS CodeのRemote Container機能を使って、ビルド環境だけじゃ無く開発環境も簡単に構築する方法を記事に書きました。

korosuke613.hatenablog.com

予備知識

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ディレクトリに移動します。

f:id:korosuke613:20200926200035p:plain

Dockerを起動する

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

f:id:korosuke613:20200926200049p:plain

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

$ docker run hello-world

f:id:korosuke613:20200926200128p:plain

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

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

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

f:id:korosuke613:20200926200146p:plain

  1. TOPPERSのEV3のページev3rt-beta7-1-release.zipをダウンロードし、解凍します。
  2. 解凍したディレクトリの中にあるhrp2.tar.gzを解凍1し、解凍したhrp2/sdk/workspaceディレクトリをユーザのホームディレクトリ直下/Users/(ユーザ名)/workspaceにコピーします。

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

ターミナルで目的のソースコードがあるフォルダに移動する。 /Users/(ユーザ名)/workspace以下にソースコードがある場合、以下のコマンドで移動できる。

$ cd ~/workspace

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

f:id:korosuke613:20200926195050p:plain

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

$ cd ev3way-cpp

ビルドには、上記で紹介した、TOPPERS/EV3RTのビルド環境をラッピングしたUbuntuベースのDockerイメージのETrobo-Dockerを利用する。 以下のコマンドを実行する。初回はイメージをプルする必要があるため時間がかかる。

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

f:id:korosuke613:20200926195110p:plain

このような画面になったらビルド成功! 生成された実行ファイルは、実行したフォルダにappという名前で保存されている。

Mindstormsで動かしてみる

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

おわりに

本稿の方法だとEV3RTのビルド環境を簡単に素早く構築できます。 今回はWindowsでの説明でしたが、Dockerが使えるなら他のOSでも同様にビルド環境を構築できます。 また、ローカル環境を汚さないので、不要になったらDockerイメージを消すだけで済みます。 マインドストームを用いた教育で、各生徒のノートパソコンを使う場合2などにご活用ください。


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

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


スポンサーリンク