Eclipse/Che で lejOS EV3 のビルドをしてみる。

  • 1
    Like
  • 0
    Comment

はなしのまくら

こんにちは。
ETロボコンは,技術委員会に名前だけ載っていたことがあって,振り返ってみたら5年前の話でした。
ほぼ無関係者なのですが,ツールについて書いてみます。

昔話を思い出すと,ETロボコンへの参加に際しては開発環境構築が大きな壁になっていたように思います。ざっとぐぐってみたところ,今も楽になっているわけでもないようですね。

そこで,半月ほど前に Docker を使った EV3RT のビルド方法 と,その応用として Eclipse/Che を使った EV3RT のビルド方法 を紹介し,いずれも開発環境構築の手間を大幅に削減できることを示しました。

しかし,ETロボコンでは EV3RT よりも leJOS のほうがメジャーですね。
leJOS EV3 ではどういう感じに楽になるのか,擬似ハンズオンをしてみたいと思います。

開発環境の紹介と調達

クラウドIDE である Eclipse/Che を用います。バージョンは,執筆時点での最新版である 5.0.0-M7 です。
Eclipse/Che の概要は以前,別記事に書きましたので,省略します。

調達方法は,大きく3つあります。

  • 自前の Docker ホストの上に立てる
  • クラウド上にインスタンスを立てる
  • Cheをホスティングしているサービスを使う

でもこれは ETロボコン固有の話ではないので,近いうちに別記事にします。
後述するように,今回は Che をホスティングしているサービスを使いました。しかし,全ての選択肢に一長一短があります。

擬似ハンズオン

…というわけで,Eclipse/Che のサーバは立ち上がって,お手元の Web ブラウザから Che へアクセスできたところから始めます。

ソースコードは, github:yoshioterada さんのリポジトリから fork し若干の修正を加えたものを使います。

ワークスペースの作成

左のメニューから Workspaces を選択し,Add Workspace という青いボタンを押します。

add-workspace.png

New Workspace 画面では,Runtime のタブを選択し,Ready-to-go Stacks の一覧でJAVAをクリックします。(クリックして有効になると,グレーから濃い青色になります。)

select-stack.png

CREATE ボタンをおしてワークスペースを作成します。

open-workspace.png

ワークスペースが作成されましたので,右上の OPEN ボタンを押して,ワークスペースを開きます。この時点でワークスペース用の環境 (Docker コンテナ)が生成されます。コンテナイメージがホストにない場合には,ダウンロードされます。初回だけ,時間がかかりますので,待ちます。

プロジェクトのインポート

ワークスペースが立ち上がったら,GitHub からプロジェクトをインポートしてきます。

メニューバーから Workspace - Import Project。開いたダイアログに入力していきます。

choose-import-project.png

左上の Source Control のところに GITHUB なる選択肢もありますが,GITを使います1

右側の URLhttps://github.com/PizzaFactory/Java-Sample-app-for-LEGO-Mindstorms と入力し,下の 'Name:' がそれっぽい名前になっていることを確認します。

import.png

最後に Import ボタンを押すと,GitHub からソースコードが clone されてきます2

Project configuration

リポジトリの clone が終わると,ダイアログがプロジェクトの設定に遷移します。
Maven を選んで,右下の Save ボタンを押してください。

project-configuration.png

ビルド

GUI でビルド

ここまでくればあと少しです。再生ボタン(実行ボタン)を押せばビルドが走ります…ます…ます? ん?

execute.png

今回使用した版の Che (5.0.0-M7) には,Maven 周りの設定にバグがあるようで,エラーを吐いてビルドが止まってしまいました。

(追記: 原因が判りましたので,別記事に書きました。)

error.png

バグがなければ,実行ボタンを押すと mvn clean install が走り,jar ファイルが作られるはずです。残念。

CLI ビルド

こういうときに助かるのが,コマンドライン(CLI)ビルドです。

cli-build.png

まず,ウインドウ下方の Terminal タブを選択します。
Bash 3 が動いています。

次に cd と打って,タブキーを2回押します。直接 Java-Sample... と打たなくても補完されます。
リターンを押してカレントディレクトリを移動したら mvn package と入力してリターンを打ちます。

Maven が必要とする jar ファイル群がずらずらとダウンロードされ,ビルドが終了します。

デプロイ

適切な設定 4 を行った上で mvn deploy とすると,生成されたアプリケーションを LAN 上にある EV3 に直接デプロイできます。楽ですね。
しかし,今回は,PizzaFactory Camino というクラウドホスティングサービスを用いましたので,そのデモはできません。

クラウド上に Che がある場合の,ファイルの取り出し方は簡単です。
Explorer タブで jar ファイルを選び,コンテキストメニューから Download を選びます。
これを scp で送るなりして EV3 へデプロイしてください。

download.png

まとめ

EV3RT に比べると leJOS は環境構築の手間は元々少なめなので,インパクトは大きくないかもしれません。
それでも Che を用いるとメリットがあるとするならば…

  • 後片付けが楽(コンテナを消せば環境が綺麗に消える)
  • 複数台の開発機へのインストールでも環境を同じにし易い
  • 複数のブラウザから同時編集が可能なので,ペアプロし易い
  • 端末側の計算能力は低くても構わない。なんなら iPad でも OK。
  • 管理の外部委託が可能。

といった,教材として求められるような特徴かもしれません。

あと,これはちょっと嬉しい人も居るかも。

  • いざとなれば CLI でほぼ何でもできる。GUI が嫌いな人も妥協して使える。

環境構築のご参考になれば幸いです。


  1. GitHubとのインテグレーションには少し混みいった設定が要ります。今回は説明を割愛します。 

  2. 実際の開発では,https ではなく ssh で clone してくる必要があります。そうしないと変更したものをリポジトリに push できません。この場合,鍵の作成と登録といった作業になるのですが,ここでは割愛します。より詳しくは Che 本家の情報 を参照してください。 

  3. コンテナは Ubuntu なので,Bash 互換の Dash かもしれない。細かいことですが。 

  4. SlideShare にあるハンズオン資料 が参考になります。