前回はETロボコンの特徴である「モデル=ソフトウェアの設計図」について紹介しました。その中で、モデルには「要求モデル」、「設計モデル」、「性能モデル」の3つがあり、それぞれのモデルで表現してほしいことを審査基準として公開していることに触れました。
今回は3つのモデルの中の「性能モデル」に期待されている事柄にフォーカスしながら、これからETロボコンを始めようとする皆さんに、できるだけわかり易くETロボコンにおける性能について紹介します。
ETロボコンにおける性能の位置づけ
ETロボコンは、組込みソフトウェア開発力をモデル部門と競技部門の2部門の総合点で競うコンテストです。実はこの2つの部門の結果に大きく関わってくるのが性能なのです。
ソフトウェア開発の大きな流れをイメージしてみましょう。まず、性能に対する要求を「要求モデル」で定義します。次に「性能モデル」で要求実現方法の妥当性や信頼性、実現方法がもたらす有効性を確認します。そして、期待通りの性能を発揮できる要素を「設計モデル」に実装していきます。このような開発の流れで高い性能を発揮するソフトウェアが開発されると、実際の走行において期待する成果を得ることができるわけです。
それでは、走行体(教育用レゴ マインドストームNXT)の走行性能を最大限に引き出すためのソフトウェア設計について、具体例を交えながら紹介しましょう。
性能とは
先日、日本製のスーパーコンピュータが世界のスパコン性能ランキングで7年ぶりに1位を獲得し話題となりました。スパコンの開発競争は、日本、米国、中国がしのぎを削っており、今後も計算能力世界一を競って激しい闘いが予想されます。スパコン世界1位が産学官にもたらす価値判断については賛否両論があるようですが、日本の産業技術がまだまだ健在であることを立証してくれたわけであり、日本の産業技術の衰退が懸念される中での快挙を素直に喜びたいと思います。
さて、このスパコンの性能とはいったい何を指すのでしょうか。
スパコン性能を評価する試験には、1秒間に何回の計算ができるかという項目があり、回数が多ければ多いほど性能が高いという判断がなされています。確かにスパコンには多くの計算を素早く処理する能力が求められている(期待されている)わけですから、製品に備わっている能力の高さを計るうえで、単位時間あたりの計算回数はとても重要な評価項目といえるでしょう。今回、日本のスパコンが達成した計算能力は1秒間に8162兆回という気が遠くなるような計算回数です。このように、性能とは製品の使用目的に適合する能力を発揮する力を定量的に示すものであるといえます。
それではETロボコンにおける性能について見てみましょう。
ETロボコンで使用する走行体の目的は、競技規約に基づいて競技コースを最短時間で走破し、すべての難所を攻略することです。したがって、走行体に求められる基本性能には次の4つが挙げられます。
この4つの基本性能は、競技コースを走破するうえでどれも欠かすことのできない重要なものです。たとえば、「倒立する[1]」という基本性能には、コース上の平坦な路面だけでなく傾いた路面の走行時や急加減速時にも倒立し続ける能力(図1)が求められます。また、「走行する」という基本性能には、ハードウェア・スペックの限界スピードで走れる能力やスピードを素早く自在に可変できる能力が求められます。
このようにETロボコンにおいては、競技コースを最短時間で走破し、コースの途中に設けられた幾つもの難所を的確に攻略するための能力(成し遂げる力)を、性能として評価することになります。
性能審査
性能の審査は、ソフトウェアの設計内容を記述した6枚のシート中の「性能モデル」の評価です。コンセプトシートを除く5枚の記述構成比について規定はありませんが、最近のチャンピオンシップ大会上位入賞チームのモデル記述構成比は、「要求モデル」:「設計モデル」:「性能モデル」=1:2:2 の割合が多いようです。この記述構成比からもわかるように、走行体の目的を成し遂げる力の高さを伝えるために性能について多くの紙面が割かれているようです。
「性能モデル」の質は、「要素技術」および「走行戦略」の2つの審査基準(表1)によって評価されます。それでは、どのように評価されるのかをみていきましょう。
ETロボコンでは競技ルールや競技コースの情報を参加チームに競技規約として提示しています。参加チームはこれらの情報に加えて競技コースが設置される会場の環境やチームの目標など、あらゆる情報を要求という形に集約して分析し、実現したいことを機能要求/非機能要求(品質要求)として「要求モデル」に整理します。このようにして抽出した一つひとつの要求をいかにして効果的に実現させるのか、そのためにはどのような要素技術が必要なのかを検討します。
要素技術
たとえば、「コース上の黒色ラインを滑らかにトレースする」という機能要求を実現するためには、要素技術として旋回指示の制御にPID制御(図2)を適用する方法が考えられます。性能審査では、このPID制御という要素技術が、走行体の自律性すなわちライントレースに有効な技術であるかを評価することになります。
ETロボコンの代表的な要素技術のひとつとなっているPID制御について簡単に触れておきましょう。PID制御は、制御系の出力値(図2の光センサ値)と目標値(図2の走行閾値)との偏差を制御系にフィードバックしながら偏差を小さくしていく方法です。P(Proportional)は比例制御、I(Integral)は積分制御、D(Derivative)は微分制御を表しています。
P項は出力値と目標値との大きさに比例した操作(制御)を担っており、I項は出力値と目標値との偏差をなくすような微調整の操作(制御)を担っており、D項は出力値の急激な変化に応じた素早い操作(制御)を担っています。また、P項は制御全体のゲインを決定するという役割も持っています。これら3つの操作を使って制御系にフィードバックする入力値(図2の旋回量)を決めることになります。
走行体のライントレースに適用されるPID制御は、黒色ラインと白色ゾーンの境界(図3)をPID制御の目標値(図2の走行閾値)にして、モータ駆動へ旋回要求を渡すことで、黒色から白色、白色から黒色への操舵切り換え時に発生するオーバーシュートを抑えることができます(図4、5)。
走行戦略
コースを最短時間で走破し、難所を攻略するためにはどのような走行戦略が必要なのかを検討します。
たとえば、階段という難所を攻略するためには、階段の上り段差を検知したら光センサを活用したライントレースを中断し、階段の下り段差を検知したら再開するという走行戦略を立てたとします。これは走行体が段差に乗り上げた瞬間、走行体の下部に取り付けられた光センサから路面までの距離が変化する(遠くなる/近くなる)ため、平坦な路面走行時に適用していた黒色と白色を識別する閾値をそのまま階段の段差通過時にも適用すると誤判定(図6)することがあるので、そのリスクを回避するための走行戦略となるわけです。
要素技術と走行戦略の関係
前記の階段攻略におけるライトレース戦略を実現するためにはどうすればよいのでしょうか。まずは要素技術として車輪の回転加速度の変化やジャイロセンサの加速度の変化を捉えて、段差を識別する方法(図7)が必要となるでしょう。
性能審査においては、この加速度の変化を検知して段差判定をするという要素技術が、走行戦略の実現に有効な技術であるかを評価することになります。つまり、走行戦略の実現性を評価するにあたり、実現に必要な要素技術が網羅されているか、一つひとつの要素技術の妥当性はどうか、その方法の信頼性はどうか、その方法がもたらす有効性はどうか、といった具合に要素技術と走行戦略の関連がどうなっているのかが大きな関心事となっています。
このように性能審査では、階段という難所を攻略するためにどのような走行戦略が練られ、どのような要素技術を実装しているかを評価することになります。
トレーサビリティ
性能審査の項目ではありませんが、審査項目のひとつにトレーサビリティ(表2)があります。これは、「要求モデル」、「設計モデル」、「性能モデル」のそれぞれの要素がモデル間で双方向に関連(図8)しており、追跡可能となっているかを審査するものです。
また、「要素技術と走行戦略の関係」の章で触れた要素技術と走行戦略のように、モデル内の要素の双方向の追跡性(図8)についてもこのトレーサビリティという項目で評価します。
たとえば、PID制御で実現できる目処付けができれば、「設計モデル」の構造のダイアグラムにPID制御を要素として反映することになるでしょう。したがって、「性能モデル」内のPID制御という要素技術が「設計モデル」の構造や振る舞いのダイアグラムの適切な部位に反映されているかどうかを評価します。さらに、PID制御が「性能モデル」に記載されたどの走行戦略に関連しているのかについても評価します。
実務に役立つ経験を積む
ETロボコンの競技が開催される会場は日本各地の学校や公共機関のホールなのですが、すべての大会を同じ環境下で開催することは現実的に不可能です。したがって、各地区大会の会場と各地区の代表が集うチャンピオンシップ大会の会場とでは競技環境が異なりますので、何らかの対策が必要となります。このように、走行に影響を及ぼすあらゆる要因を分析することで、どのような環境下においても柔軟に対応でき、期待する走行性能を発揮できるようにシステムを構築する必要があるわけです。
この環境外乱に対する備えは、実際の組込みソフトウェア開発においてとても重要な事項です。そのため、ETロボコンでは実際の開発に直結するこのような貴重な経験を通して未知や未経験による想定外を既知の想定内に変換する力を養い、実践に強い技術者に育ってくれることを期待しているのです。
それでは、環境の影響を受ける代表的なケースをみてみましょう。走行体の光センサ部から発光したLED光がコースの路面に当たって反射した光を受け、反射光の輝度を測定することでコース上の黒色ラインと白色ゾーンを識別しながら黒色ラインに沿って走行する方法を採用するとします。
これは黒色ライン内であれば白色ゾーン方向へ操舵し、白色ゾーンへ入ったら黒色ライン側へ操舵しながら走る、すなわち、黒色と白色の境界線上を走る方法(図4、5)です。しかしながら、走行体の発光するLED光に会場の照明光が混入することで、黒と白の識別に微妙な影響を及ぼします。各会場の照明器具が異なるだけでなく、コース上の位置によって照度が異なることも少なくありません。したがって、会場の照明器具の照度は、走行体にとって大きな環境要因のひとつとなるのです。
この会場照明による環境外乱の影響を低減するために、まいまい式と呼ばれる光センサの信号処理方式が考案されました。これは、高速でLEDを点滅させ、LED点灯時と消灯時の路面反射光の差分値(環境外乱を除去した路面反射光)を使って路面色を識別する方法(図9)です。
この方法は、LED点灯時と消灯時の環境外乱(会場照明器具光)が同じであることを前提としているため、LED点灯時と消灯時の環境外乱が異なる場合には、効果が期待できません。つまり、走行体の走行スピードが速いためにLED点灯時と消灯時のコース上の地点が大きく異なり、環境外乱自体が変化する場合にはこの方法が使えません。しかしながら、LED点灯時と消灯時における路面反射光(環境外乱)がほぼ同じ場合にはかなり有効な方法といえそうです。このように、外乱ノイズの影響を可能な限り排除することで、環境外乱に強いシステムを構築することができます。
また、光センサを全く使わない仮想ライントレースという方法(図10)も考案されています。これは、左右の車輪を駆動する各々のモータ内にあるロータリーエンコーダを使い、車輪の回転量をエンコーダから読み取って、どれだけ車輪が回転したか(どれだけ移動したか)を積算して現在位置を推定し、目標とする仮想ライン上を走行する方法です。左右の回転量を積算することで、前後方向だけでなく左右方向の移動量も把握できるため、出発点からどの方向にどれだけ移動したのかを推定することができるわけです。
この仮想ライントレースを使えば、会場の照明に左右されず走行することはできますが、別の要因を考慮することが必要となります。たとえば、コース上の難所に置かれた突起物を乗り越えるときに車輪が空転することで、ロータリーエンコーダの積算値と実際の移動距離に乖離が生じるため、現在位置の推定に少なからず誤差が含まれてしまいます。よって、この誤差をキャンセルする方法を新たに追加するなどの工夫が必要になります。
会場照明のような環境要因の他にも、電池電圧の低下、モータの劣化、路面コンディションの変化、並走するロボットとの衝突など、多くの要因の影響を受けることが考えられるため、「要求モデル」を通してリスクの分析に取り組むことが必要になってきます。
このように走行体を実際のコースで走らせてみると次々と想定外であった新たな課題が明らかになり、それらを解決するための要素技術や走行戦略が必要となってくるため、「要求モデル」、「性能モデル」、「設計モデル」をスパイラルアップしながらシステムを熟成していくことになります。しかしながら、これこそが組込みソフトウェア開発の醍醐味ともいえるわけです。
したがって、実際の開発現場で技術者としての実務を始める前に、ETロボコンという砂場でソフトウェア開発の醍醐味を味わいながら、たくさんのリアルな体験を積み重ねることに大きな意義があると考えています。このような貴重な機会を利活用することで、実務に役立つ経験をできるだけ多く積み、ソフトウェア開発の現場で活躍されることを期待しています。
モデルベース開発
一昨年、昨年と少しずつではありますが、実機や競技コースを使う前にPC上のシミュレーションで要求の妥当性を早期に確認したり、モデルから自動コード生成をしたりするMBD(Model Based Design)の適用が見られるようになってきました(図11、12)。
いくつかの業種では何年も前からMBDに取り組まれているようですが、実際の現場で本格的に量産開発に適用しているケースはそんなに多くはありません。MBDに限らず、新しい技法や手法をいきなり実務に導入するのは品質面や納期面でリスクが高いため、ETロボコンという砂場を使って試行することには大きな意味があるといえるでしょう。
ETロボコンで習得可能なスキル
IPA/SEC(独立行政法人 情報処理推進機構 ソフトウェア・エンジニアリング・センター)から示された組込みスキル標準ETSS(Embedded Technology Skill Standards)には、組込みソフトウェア開発力の強化を目的とし、組込みソフトウェア開発に関する最適な人材育成や人材の有効活用を実現するための指標や仕組みが規定されています。その中のひとつである組込みソフトウェア開発スキルを体系的に整理したスキル基準に着目し、ETロボコンで習得可能なスキルについて紹介します。
過去の大会参加者からのヒアリングや提出されたモデルから読み取った情報をもとにETロボコンで習得することができるスキルをETSSのスキル基準の「技術要素スキルカテゴリ(表3)」、「開発技術スキルカテゴリ(表4)」、「管理技術スキルカテゴリ(表5)」の各項目にマッピングしてみました。
3つの表には多くの○が付いています。これはあくまでも筆者の主観による判定結果であるため、判定者によって○の数に多少の差異はありますが、ETロボコンへの参加を通していくつかの項目に○が付くことに異論はないでしょう。実際には参加者がどこまで取り組むかによって習得スキルに差は出ますが、ETロボコンへの参加を通して各項目のレベル1:初級(支援のもとに作業を遂行できる)あるいは、レベル2:中級(自律的に作業を遂行できる)といった習熟度への到達が期待できます。
ここ数年、企業に入社して間もない社会人や学生の参加も増えており、企業では若手教育の一環として、また学生は社会人になる前の実践的教育の場としてETロボコンを大いに活用しているようです。昨年は学生チームが難易度の高い難所を攻略してチャンピオンシップ大会で準優勝するなど、社会人と同じ土俵で競うコンテストにもかかわらず素晴らしい結果を残しています。ETロボコンへの参加を通して培われたこれら多くのスキルは、必ずや企業での実務に活かされることでしょう。
また、ETロボコンの参加チームには全チームの描いたモデルが配布されるため、他チームの描いたモデルを教材にしてモデリング技術や性能要素技術を高めることもできます。
2010年の地区大会参加チーム数は343でしたので、A3サイズで2058枚(=343×6枚)ものモデルシートに触れることができる計算になります。実際にはチャンピオンシップ大会参加40チームのモデルシートがさらに加算されるため、2298枚(=2058+240)となります。この膨大な資料を上手く活用していっそうのスキルアップを図っていただきたいものです。
走行性能のさらなる発展に期待
これまで多くの要素技術がETロボコンに導入され、走行性能は飛躍的に高まってきました。今回、「実務に役立つ経験を積む」の章で取り上げたPID制御を例に挙げますと、光センサによる路面反射光の処理に適用するだけでなく、複数の制御対象に対してPID制御を複合化、多様化して実装し、高速安定走行を可能にしてきました。さらにはPID制御といった古典制御理論のみならず、MBDツールソフトウェアを使って現代制御理論をモデル化し、運営側から配布された倒立制御ロジックをさらに進化させたチームもありました。
10年という節目の年である2011年は競技中にBluetoothを使って走行体とPCが通信できるようになりました。これは走行体に実装された制御ロジックとPCに実装された制御ロジックがBluetooth通信でつながることを意味し、PCの高い処理能力を使って走行体を走行させることができるようになったということです。走行体に搭載されたコンピュータ資源しか使えなかった時の走行性能に比べ、PCの大規模な資源と強力な処理能力によって格段に進化した走行性能が発揮されることを期待しています。