独立行政法人 産業技術総合研究所【理事長 吉川 弘之】(以下「産総研」という)知能システム研究部門【部門長 平井 成興】の 金広 文男 研究員らは、株式会社ムービングアイ【代表取締役 小松 史男】(以下「ムービングアイ」という)の 石綿 陽一 取締役らと、産総研(旧工業技術院 電子技術総合研究所)で開発したLinuxの実時間拡張であるART-Linuxを用いて、イーサネット上で実時間通信を実現した。
イーサネットはPC等で世界標準の通信ネットワークとして広く利用されているが、実時間通信機能を持っていなかった。ここで言う実時間通信とは、指定された時間内に完了しなければならない通信のことで、言い換えると、締切のある通信のことである。実時間通信は、事務処理等に利用されるPC等では不要であるが、一定時間内に処理を完了することが必要な距離計測やエンジン制御といった応用には不可欠な技術である。これまで、実時間通信は高価な専用ネットワークを用いることで実現されてきたが、今回の成果により、安価で高い通信速度を持つイーサネットを実時間通信を必要とする組込機器に利用し、組込機器をサーバPC等と同じ通信ネットワークを用いて接続することが可能となった。
今回開発した実時間通信は、データリンク層に新規プロトコルを設定し実現されており、イーサネットの上位層プロトコルであるTCP/IPを用いていない。上位のプロトコルとしては、パケットの中継機能と通信経路の切り替え機能を持たせることにより実現している。また、実時間通信を行わないときは、通常のTCP/IPプロトコルを利用することも可能であるので、ソフトウエアの開発も容易に行える。
従来のイーサネットと、今回開発した実時間イーサネットの構成を次にまとめる。
従来のイーサネット
|
|
今回開発した実時間イーサネット
|
アプリケーション |
TCP |
IP |
非実時間データリンク層 |
イーサネット |
10BASE5 |
|
アプリケーション |
|
実時間データリンク層 |
イーサネット |
100BASET |
|
本研究以外にも、イーサネット上で実時間通信を実現しようという試みは幾つかあり、マルチメディア用に通信バンド幅を保証しようとするタイプと、OSカーネルの改造や専用デバイスドライバの新規開発によって通信の完了時間を保証するタイプとに分類できる。前者はロボットコントロール等に必要なレベルの実時間通信機能を持たないという点で、後者はソフトウエアの再利用が難しいという点で問題があった。
一般に、新しい通信プロトコルを開発しても、既存のソフトウエアに大きな修正が必要だと普及させるのは困難である。そこで、既存の通信プロトコルとの互換性を実現するため、今回開発した実時間通信プロトコル上にミドルウェアCORBAのアプリケーション層プロトコルGIOPを実装した。これにより、これまでCORBAを利用してきたユーザは、通信部分を大きく変更することなく、実時間通信上に実現されたCORBAを利用することが可能となった。CORBAの実装としては、日本アイオナテクノロジーズ株式会社製の組込型アプリケーション向きCORBAであるOrbix/Eを利用している。
GIOPの実装方法を従来のイーサネットと今回開発した実時間イーサネットで比較したものを次に示す。
従来のイーサネット上のCORBA
|
|
実時間イーサネット上のCORBA
|
GIOP |
TCP |
IP |
非実時間データリンク層 |
イーサネット |
10BASE5 |
|
GIOP |
|
実時間データリンク層 |
イーサネット |
100BASET |
|
図に示した様に、GIOPのレベルで見ると互換性があるので、従来GIOP上で動いていたソフトウエアはそのまま利用することができる。違いは通信時間が締切を守ることを保証される様になった点である。
以上、今回開発したソフトウエアは、通常のPCや、開発した名刺サイズの小型ボード上で稼動する。PCを用いて性能検証を行った結果、データリンク層プロトコルのみを用いたときは最短で100マイクロ秒、CORBAを用いたときは最短で500マイクロ秒程度の周期通信が実現可能であることが確認されている。
今後、産総研知能システム研究部門は、川田工業株式会社【代表取締役社長 多田 勝彦】(以下「川田工業」という)と開発中のヒューマノイドロボットの次期モデル、独立行政法人新エネルギー・産業技術総合開発機構【理事長 牧野 力】(以下「NEDO技術開発機構」という)の委託を受けて推進中の「ロボットの開発基盤となるソフトウエア上の基盤整備(2002~2004年度)」等において、今回開発したソフトウエアを利用していく計画である。
Linuxはムービングアイの 石綿 陽一 取締役が旧工業技術院 電子技術総合研究所在籍時に中心となって開発した実時間Linuxである。他の実時間Linuxとは異なり、実時間拡張がユーザ空間で実現されているため、デバイスドライバが無修正で使える点が特徴である。
イーサネットは、PC等の世界標準の通信ネットワークとして利用されているが、この上で実時間通信は実現されてこなかった。実時間通信は、事務処理等に利用されるPC等では不要であるが、一定時間内に処理を完了することが必要な距離計測やエンジン制御といった応用には不可欠な技術である。これまで、実時間通信は高価な専用ネットワークを用いることで実現されてきたが、実時間通信を必要とする組込機器のコストを下げ、開発効率を向上させるためには、世界標準である安価なイーサネットの利用、オープンソースOSであるLinuxのターゲットOSとしての利用、ミドルウェアの採用によるモジュール性の向上が求められていた。
今回の開発により、実時間拡張が施されたLinuxを用いて、実時間通信ネットワークとしてイーサネットを利用し、この上で標準的ミドルウェアであるCORBAを使うことが可能になった。
今後、ロボット、情報家電、自動車等の組込機器の分野で、広く利用されていくことが期待される。
従来の組込機器の構成
|
|
提案する組込機器の構成
|
本研究の基盤となっているART-Linuxは、ムービングアイの 石綿 陽一 取締役が中心となって、旧工業技術院 電子技術総合研究所において開発された。今回の研究は、産総研が川田工業等と共同で開発したヒューマノイドロボットHRP-2内のCPU間の通信を実時間化することを目的として開始された。その後、産総研ベンチャー開発戦略研究センターのスタートアップ開発戦略タスクフォースにおいて、事業化を目指した研究開発を実施してきている。
従来、イーサネット上で実時間通信が実現困難と考えられてきたのは、次の理由による。
-
フレームの衝突によって通信データの送出が遅れる。
-
TCP/IPは再送を含む複雑な処理をするため、通信データの処理時間が予測できない。
-
フレームの送出時刻を制御できない。
まず、フレームの衝突に関しては、イエローケーブルを用いてバス型の配線をしていたイーサネットではフレームの衝突が発生していたが、ツイストペアケーブルを用いて1対1接続するイーサネットでは発生しない。この様子を次図に示す。
バス型配線
|
|
1対1接続型
|
次に、TCP/IPの処理時間が予測できない問題については、TCP/IPを利用しないことにより回避できる。
最後のフレームの送出時刻の制御は、他の実時間Linuxでも実現可能であるが、ここでは、ART-Linuxの固有のシステムコールを用いて周期実行をすることにより、正確な周期で命令を実行することが可能となった。
送信周期を50~1000マイクロ秒と何段階かに変化させ、CORBAサーバ呼び出しを行ったときの送信側処理時間の評価を行った。ここに、送信周期、送信処理時間の関係を示す。
送信処理時間の最大値の計測結果を次図に示す。横軸はデータ長である。最大で20マイクロ秒程度で処理が完了していることが分かる。このことから、ある時刻にデータを送り始めたとき、20マイクロ秒後には送り終わっていることが分かる。この様な通信が実時間通信である。
送信側処理時間の最大値
|
|
次図に、この送信時間の中、データリンク層以下の通信に使われた処理時間、すなわち、今回の開発で新規開発した通信機能の部分に限定した処理時間の最大値を示す。10マイクロ秒から20マイクロ秒程度で処理されている様子が分かる。前の図の処理時間はトータルの処理時間で、この図の処理時間との差は、CORBAの通信処理に使われた時間である。
送信側処理時間の最大値
|
|
この処理時間には、タイマー割込みによりART-Linuxのシステムコールが呼ばれ、イーサネットデバイスに命令が送られるまでの時間が含まれている。デバイスに命令が送られてから送信が完了するまでの時間はソフトウエアでは計測できないので含まれていないが、数マイクロ秒程度と推測される。最大で20マイクロ秒以内に送信命令が発効されており、デバイスの処理時間を加えても、十分正確に送信処理が周期実行されていることが分かる。
さらに、受信処理については、通常のイーサネットデバイスドライバでは、フレームの受信処理がデバイスからの割込によって開始されるため、プログラムで指定した時刻にフレームの受信処理が開始されることは困難であった。そこで、本研究開発では、通常はデバイスからの割込信号によって起動される割込ハンドラを、プログラムの受信命令によって起動されるようにLinuxカーネルの改造を行った。
以上述べた送受信過程をまとめたものを次図に示す。
ここで、送信周期と受信周期は同一で、両者の開始時刻は同期をとってあるとすると、全ての送受信が完了するまでの時間は、送受信周期+受信処理時間となることが分かる。
受信側周期誤差の最大値を示す結果を次図に示す。このグラフから、送受信周期500マイクロ秒以上だと、CORBAを用いても周期を守って通信していることが確認される。
送受信機能の実現のために施したカーネルの改造はごく一部であり、その他の大部分はLinuxの通常のシステムコールを用い、ユーザプログラムとして実装した。そのため、Linuxソフトウエアの再利用性を損なうことはなく、CORBAのアプリケーション層プロトコルを容易に実装することができた。
以上述べたデータリンク層プロトコルにはフレームの中継機能がないので、フレームの中継機能と通信経路の切り替え機能を併せて実現した。これらの機能を用いることにより、通信経路の一部に障害が発生したときに、経路を切り替えることも可能となった。以上の様子を次図に示す。
既存の通信プロトコルと互換性を取るため、今回開発した実時間通信プロトコル上にCORBAのアプリケーション層プロトコルGIOPを実装した。これにより、これまでCORBAを利用してきたユーザは、通信部分を大きく変更することなく、実時間通信上に実現されたCORBAを利用することが可能となった。CORBAの実装としては、日本アイオナテクノロジーズ株式会社製の組込型アプリケーション向きCORBAであるOrbix/Eを利用し、開発した通信プロトコルを用いてOrbix/EのOCI(Open Communication Interface)のAPIを実装した。以上の構成を次図に示す。
従来のイーサネット上のCORBA
|
|
実時間イーサネット上のCORBA
|
GIOP |
|
TCP |
IP |
非実時間データリンク層 |
イーサネット |
10BASE5 |
|
GIOP |
|
|
実時間データリンク層 |
イーサネット |
100BASET |
|
本研究で開発したソフトウエアは、まず分散型ロボットコントローラに適用することを計画している。このために開発した名刺サイズのSH-4ボードの外観図を次に示す。手前側が名刺である。
産総研知能システム研究部門は、川田工業と開発中のヒューマノイドロボットの次期モデル、NEDO技術開発機構の委託を受けて推進中の「ロボットの開発基盤となるソフトウエア上の基盤整備(2002~2004年度)」等において、今回開発したソフトウエアを利用していく計画である。
また、さらなる実用化研究開発の後、ムービングアイが事業化することを計画している。