特集
» 2015年11月09日 07時00分 UPDATE

OpenEL概論:ロボット向けハードウェア抽象化レイヤー「OpenEL 2.0」とは何か (1/2)

組込みシステム技術協会(JASA)が中心となって取り組んでいる、ロボットおよび組み込みシステム向けハードウェア抽象化レイヤーが「OpneEL(Open Embedded Library)」だ。その概略と現状について解説する。

[中村憲一(アップウィンドテクノロジー),MONOist]

OpenELとは?

 OpenEL(Open Embedded Library)とは、組込みシステム技術協会(JASA)が中心となって仕様を策定しているロボットや組み込みシステム向けのオープンなライブラリである。デバイスベンダーごとに異なっているソフトウェアのインタフェースを統一することを目的とし、モーター用API、各種センサー用APIの仕様を策定している。

 OpenELの位置付けを図1に、アーキテクチャを図2に示す。

図1 OpenELの位置付け OpenELの位置付け
図2 OpenELのアーキテクチャ OpenELのアーキテクチャ

 2011年5月から、JASA技術本部プラットフォーム研究会が仕様の策定を開始し、2012年3月にバージョン0.1、2012年3月にバージョン1.0、2014年3月にバージョン1.1、2015年7月にバージョン2.0仕様を公開してきた。

OpenEL 0.1

 バージョン0.1では、JASAが主催しているET(Embedded Technology)ロボコンの走行体として採用されているLEGOのMindstorms NXTを対象とし、モーター、ジャイロセンサー、光センサー、タッチセンサーなどを制御するAPI仕様を策定した。例えば、モーターの速度制御はelMotorSetSpeed()、ジャイロセンサーの値の取得はelGyroSensorGetValue()といった具合である。

OpenEL 1.0

 バージョン1.0では、実用化を見据えてNXT以外の幅広いシステムに対応できるよう仕様を改定した。例えば、アーキテクチャをサーフェイスレイヤーとコンポーネントレイヤーの2つ分けることにより、各社のモーター制御やセンサー処理のノウハウをコンポーネントレイヤーのコンポーネント内に隠すことが可能となった。

 また、デバイスの初期化を行うelInit()、デバイスの終了処理を行うelExit()が追加され、モーター用APIでは、FA機器などでも使用できるように位置制御・速度制御・トルク制御が可能なAPIを追加した。さらに、首都大学東京にて実際のロボットを用いた実証実験を行い、OpenELのアーキテクチャの妥当性などを検証した。

 この結果から、JASAは米国を拠点とする世界的なソフトウェアの国際標準化機関であるOMG(Obeject Management Group)にドメイン会員として参加し、Robotics-DTF(Domain Task Force)においてロボット用ソフトウェアインタフェースの標準化を提案したところ、Robotics-DTF傘下にHAL(Hardwere Abstraction Layer) WGの設置が決議され、JASAが議長を務めることとなった。その後、HAL WGとして活動した結果、2014年6月に開催されたOMG技術会議でHAL4RT(Hardwere Abstraction Layer for Robotic Technology)という規格名でOMGが正式に国際標準化を進めることが決議された。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.