新たにリアルタイムGCを搭載したJava

Javaロボットは、もう転ばない

2007/05/11

javarts01.jpg Javaでプログラマブルなロボット「ROBOSAPIEN V2」

 米国サンフランシスコで開催中のJava開発者向けイベント「JavaOne」の会場の入り口には、Javaで動くロボット「ROBOSAPIEN V2」(ロボサピエン)が展示されている。これはロボット好きの日本人が期待するような、いわゆる自律型ロボットではない。加速度センサーやバランサーを使って姿勢制御を自ら行うわけではなく、巨大な足をかろうじて持ち上げ、身体全体を左右に振りながら歩く高性能マルチメディアラジコンといった趣だ。

 デジカメやウーファー付きのステレオスピーカー、カラー液晶を搭載している。画面で動画やゲームが楽しめるなど、どちらかというと日本のケータイのようだ。

 それでも人気は高い。

 イベント特価の269ドル(約3万2200円)でも200体以上売れたという。人気の理由は、Javaでプログラマブルになっているからだ。「前に動く」、「腕を上げる」といった抽象度の高いコマンドがJava拡張APIとして実装されているばかりでなく、13基搭載されているアクチュエータや、光や音、タッチを感知するセンサーもJavaから利用できる。USBポートやSDカードスロットも装備しており、つまりJavaプログラマであれば、ロボットにやらせたいことが何でもできてしまうのだ。

 本気かどうか分からないが、開発元の担当者はロボット向けのAPIセットを次期JavaのAPIとして提案するという。

Javaでも動きはスムーズ

 ロボット向けAPIセットを提案するのが現実的に意味があるかどうかは分からないが、Javaがロボットを制御するプラットフォームとして現実味を増しているのは間違いない。

 Javaでは長らくリアルタイム処理が課題だった。ミリ秒単位でのタイミング制御や、クリティカルなイベントを、保証された時間内に処理するリアルタイム処理は、組み込み向けOSや言語では欠かせない要素技術だ。サンは今回のイベントで「Sun Java Real-Time System 2.0」(Java RTS2)を発表している。Java RTS2はJavaでリアルタイム処理を実現するための拡張で、既存のコードに若干の変更を加えるだけでJava SE 5.0で利用できるという。

 今回のバージョンアップでは、新たにランド大学と共同開発したリアルタイムGC(ガベージ・コレクタ)を搭載する。つまり、ロボットが歩いているときに、突然ガベージ・コレクタが動き出し、その結果としてロボットが足を上げたとたんに動きが止まったり、バランスを崩して倒れるということがなくなるわけだ。転ぶだけのロボットなら問題は小さいが、産業用ロボットで非常停止ボタンが瞬時に動作するか2秒後に動作するか分からないのでは困る。サンによれば、搭載プロセッサの数や動作クロックによって差はあるが、Java RTS2では遅延は5〜50マイクロ秒の範囲に収まるという。

 今のところJava RTS2はOSとしてSolaris 10のみサポートしているが、2008年中にもLinuxへの対応も予定している。利用可能なプロセッサも、今回のバージョンからUltraSPARC以外にx86プラットフォームもサポートされるようになった。制限が多かったJavaによるリアルタイム処理の環境がより広がったことで、組み込み用途以外でも、今後は航空、金融、科学研究などリアルタイム処理が要求される分野でJava RTSの利用が広がっていきそうだ。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)