TOPPERS/JSPによるロボット制御
TOPPERS版ETロボコン環境の登場
前回までは、nxtJSPという環境を使ってロボットのプログラムを作成していました。nxtJSPでは、TOPPERSプロジェクトが公開しているカーネルなどのソースコードを、nxtJSPプロジェクトの手によってNXTで動作するように修正して利用しています。このようにいったんほかの機器用に開発されたソースコードを別の機器でも動作するように修正することを「ポーティング」と呼びます。
実は最近、本家のTOPPERSプロジェクトも、nxtJSPプロジェクトとは別に、TOPPERS自身がポーティングした、2つのNXT用環境の提供を開始しました。
- MINDSTORMS NXT用TOPPERS/JSPプラットフォーム
- MINDSTORMS NXT用TOPPERS/ASP+TECSプラットフォーム
「MINDSTORMS NXT用TOPPERS/JSP プラットフォーム」は、nxtJSPと類似の環境です。もうひとつの「MINDSTORMS NXT用TOPPERS/ASP+TECSプラットフォーム」は、次世代向けのTOPPERS/ASPカーネルとTECS(TOPPERS組み込みコンポーネントシステム)を用いた環境で、ともにETロボコン2010の認定プラットフォームとなっています。
これらのプラットフォームやTOPPERSのETロボコンに対する取り組みの詳細はTOPPERSのWebサイトにある「ETロボコン2010に対する取り組み」というページを参照してください。
これらのプラットフォームを活用するための教育用コンテンツも用意されています。
TOPPERS/JSP版NXT環境を構築しよう
今回は「MINDSTORMS NXT用TOPPERS/JSP プラットフォーム(以下ではTOPPERS/JSP版NXT環境と呼びます)」を開発環境に使ってロボットを動かしてみましょう[*1]。
- [*1]nxtJSPと同様、TOPPERS版JSP環境もレゴ社から提供されているソフトウエアではありませんので、これを使用した場合レゴ社の製品保証範囲外となります。レゴ社のサポートを受けることができなくなるとともに、筆者や株式会社アフレルも製品の動作を保証することができなくなります。この記事に記載されていることを試すときは、みなさん自身の責任において試すことをあらかじめご承知おきください。
まずTOPPERSのWebサイトからTOPPERS/JSP版NXT環境を入手しましょう。ページの下の方にある「教育コンテンツのダウンロード」から「et-robocon-jsp-062610.zip」をダウンロードします。このファイルを展開すると、このプラットフォーム用の教育コンテンツも含まれています。
環境の構築手順についても詳しく載っています。今回は、Windows 7 Professional 32bit版上に構築してみました。
TOPPERS/JSP版NXT環境の環境構築手順は、nxtJSPの環境構築手順と大きな違いはありません。以下に概略を書いておきますので、詳細はTOPPERS/JSP版NXT環境の教育コンテンツを参照してください。
1. Cygwin(GNU make, SED, gcc++, perl)のインストール
CygwinのWebサイトから setup.exe をダウンロードして実行します。Windows 7やVistaにインストールをする場合には、setup.exe を実行するときに、右クリックしてポップアップメニューの「管理者として実行」を選びましょう。また、必要なパッケージは、GNU make ver3.81-2、SED、gcc-g++ ver3.4.4-3 を選択するほか、perl も選択しておきます。
2. GNU ARMツールチェーン(GCC-4.0 toolchain)のインストール
GNU ARMツールチェーン(以下GNU ARMと書きます)は,NXTのCPUに使われているARMチップ用にプログラムをコンパイルするツール群です。GNU ARMのWebサイトの上部にある「FILES」メニューをクリックするとファイルをダウンロードするページに切り替わります。このページの中ほどより下「Binaries」の「GCC-4.0 toolchain」のリストの中から、「binutils-2.16.1, gcc-4.0.2-c-c++, newlib-1.14.0, insight-6.4, setup.exe[24.8MB]」というリンクをクリックしてインストール用ファイルをダウンロードします。
保存したファイルを実行するとインストールが始まります。インストールするフォルダは、この後の設定で参照するので覚えておきましょう。インストール中にコンポーネントを選択する場面では、「Floating PointUnit」と、「Big Endian」は「チェックしない」でください。さらに、CygwinのDLLをインストールは「しない」、環境変数Pathの設定も「しない」にしておいてください。
図1:インストールフォルダを覚えておきましょう |
インストールしたGNU ARMのツール群を利用できるように、Cygwinのシェルが使う環境変数PATHを編集します。
エディタで次のファイルを開きます。
【Cygwinをインストールしたフォルダ】\home\【ユーザ名】\ .bash_profile
このファイルの末尾に次のような行を追加します。
インストールしたディレクトリが/GNUARM/bin ではないときは、実際にGNUARMをインストールしたフォルダ名を記述してください。PATHを変更した後は、Cywinをいったん終了し、もう一度起動して変更を反映します。
3. TOPPERS/JSPカーネルのインストール
TOPPERSのWebサイトにアクセスしてTOPPERS/JSPのオリジナルのカーネルのソースコード「jsp-1.4.3.tar.gz」をダウンロードします。ダウンロードしたjsp-1.4.3.tar.gzをCygwinフォルダの中にコピーします。
Cygwinを「管理者として実行」で起動して、保存先のフォルダへ移動し、次のようなコマンドで、「jsp-1.4.3.tar.gz」 を展開します。
tar zxvf jsp-1.4.3.tar.gz
展開が終わると、Cygwinフォルダの中に、「jsp」というフォルダが作成されます。
4. TOPPERS/JSP版NXT環境のインストール
TOPPERSのWebサイトの「ETロボコン向け RTOS活用コンテンツ(TOPPERS/JSPベース)」にアクセスして「ec-robocon-jsp-062610.zip」をダウンロードします。
このファイルには、NXT向けにポーティングしたカーネルソースコードの変更ファイルや、センサーやモーターのためのプログラムのサンプルを含んでいます。展開すると「jsp-mindtormsnxt-1.4.3.tar.gz」というファイルが含まれていますので、このファイルをCygwinフォルダの中にコピーします。
Cygwinを「管理者として実行」で起動して、次のようなコマンドで、「jsp-mindtormsnxt-1.4.3.tar.gz」を展開します。
tar zxvf jsp-mindtormsnxt-1.4.3.tar.gz
展開が終わると「jsp」フォルダの中に「nxt」というフォルダが作成されます。