TOPシステム開発> 第4回:リソース制約対応とプログラム開発管理 (3/3)

LEGOから学ぶ組み込みシステム開発のキホン

LEGOから学ぶ組み込みシステム開発のキホン

第4回:リソース制約対応とプログラム開発管理

著者:日本ビクター株式会社 山岸 亨

公開日:2008/04/09(水)

最新バージョン、最高バージョンを管理するために

FLLでは世界大会まで進出すると、ほぼ半年間同一のミッションについての「開発」を続けることになる。しかも地方大会、日本大会と途中で成果を出すことが求められ、その段階、段階で、すべては完成していない状態であっても、まとめることが重要になってくる。一般に子供も大人もこういうまとめや整理をすることに慣れていない。しかしながら、このようなことはメーカーなどの開発現場では日常的に行われていることであり、FLLを通じてこのように「まとめていくこと」を学習する成果は大きい。

FLLに参画した最初の頃は、子供たちは作ったプログラムをセーブしておくことの意義さえなかなか理解することができなかった。「次回にもう一度最初から作れば簡単にできるよ」という発想である。ところが、そのうちに前回と同じレベルに到達するまで何回も同じことを繰り返す無駄に気づく。ここまで来るとセーブする習慣ができる。

何台かのPCで作業をしていると、ローカルディレクトリにコピーが増えてどれが最新のプログラムか分からなくなってしまう。そこで、一日の作業が終わったら必ずUSBメモリにセーブする、というような決まりを作っておく。大人であればHDDのどのディレクトリに格納する、と決めておけばよいのだが、子供だとやはり「物」で押さえないとなかなか実践できず、あちらこちらに色々なバージョンのプログラムが散逸してしまい、一番うまくいったものがどれであったかも、すぐに分からなくなってしまう。さらに整理をするのに一定の命名基準を決めて混乱をしないようにすることが重要である。

その次の段階としては、毎回作ったプログラムを異なったディレクトリにセーブしていくことである。毎回新しい工夫をするたびに新しいディレクトリを作りそこにプログラムをセーブしていく。改良を重ねていくと、プログラムも元に戻れなくなることが多い。これはメカについても同じである。精度が上がってくると、現在のものより改良しているはずが、かえって悪化してしまい、以前はどうなっていたか分からなくなってしまう、ということが発生する。いわゆるデグレードである。常に前に戻れるように、メカとプログラムは今までの最高状態のものを確保しながら別に改良版を作る、といった作業方法を採ることによりこれを回避する。これはソフトウェア開発プロセスにおける構成管理そのものである。

図3:RCX使い方の規約の例
(画像をクリックすると別ウィンドウに拡大図を表示します)

FLL世界大会、2008年4月27〜29日、東京体育館にて開催!

プログラムのコーディング規則はFLLにおいては特に無いのに加え、今回プログラミングで使ったROBOLABのプログラムが一般的にはあまり公開されていないので、改めて作る必要があった。プログラミングツールとして見た場合のROBOLABは、構造言語的なチェックが厳しく、特にループなどが構造言語的に閉じていないと、ルールチェックを通らず、ロボットにダウンロードできない。いわゆるgoto文的なプログラミングは書きたくても書けないようになっている。組み込みプログラムで多用される例外時にループから抜けるような処理も記述するのが難しく、制約の中でのプログラミングが要求される。

このような中でやはり分かりやすく記述するということの重要性が大きな学習項目になる。FLLの活動をしていると、毎週チームメンバ全員が参加できるとは限らず、他のメンバの作ったプログラムを改良する必要に迫られることも少なくない。このような共同作業はなかなか通常の学校教育では経験しないので、最初は抵抗がある。

これをできるようにするためには、まず分かりやすいプログラムをどうやって書くかということを学ぶ必要がある。処理単位ごとにプログラムをきれいに整理したり、コメントを入れたり、といったことが基本になる。慣れてくると、人の作ったプログラムの良いところをコピーして組み合わせるようなことができてくる。

図3のようにRCXのポートの使い方の取り決めをまとめることも重要である。子供が複数人でロボットを作っていると、このようなポートの調整作業の重要性に最初は気づかない。このような共同作業のやり方を学習することも、FLLの大きな意義であると思う。

本連載では、小中学生向けの科学教育プログラムであるFLL(FIRST LEGO League)の中心となるロボット競技について、組み込みシステムの視点から、4回にわたってロボットのプログラム開発の事例を紹介してきた。

FLLに参加することは、子供だけでなく大人としても稀有の体験となる。このような経験を通じて子供たちが成長して行くのを見るだけでも楽しい。「第1回:これがLEGOのロボット競技会FLLだ!」でも案内した通り、FLLの世界大会の1つである「FLL Open Asian Championship 2007」が来たる2008年4月27〜29日の3日間、千駄ヶ谷の東京体育館にて開催される。まずは、子供たちと一緒にFLLの実際をご覧になった上で、9月に課題が発表される予定のFLL2008から、読者も子供たちに参加を促されることを期待して、本連載を終了する。

なお、2008年4月11日(金)からは体験編として連載「最強ロボットを作れ!−FLL挑戦記」を開始する。子供たちの実際の活動の記録を通してFLLの面白さを伝えていく予定だ。


前のページ  1  2  3


日本ビクター株式会社 山岸 亨
著者プロフィール
日本ビクター株式会社 山岸 亨
1983年東京大学工学部卒。同年日本ビクター(株)入社。以来光ディスク、テレビのICやソフトウェア開発など組込み系開発に携わる。現在技術本部ディビジョン技術開発センターにて国内液晶テレビのソフトウェアの開発に従事。FLLにはチーム「Edisons」のメンターとして参加。2005年度、2006年度と世界大会進出し、特に2006年度欧州世界大会では総合2位を獲得。


INDEX
第4回:リソース制約対応とプログラム開発管理
  リソースの制約に挑む
  どの電池を選ぶか?放電特性を考慮せよ
最新バージョン、最高バージョンを管理するために