メディア

用途は携帯電話機だけでない、組み込み機器に向くAndroid組み込み技術

2008年11月19〜21日に横浜で、組み込み機器の開発者やソフトウェア・エンジニアに向けた展示会「組込み総合技術展 2008」が開催された。なかでも、OHA(Open Handset Alliance)が提供するソフトウェア「Android」に関する出展が多く、来場者の注目を集めていた。

» 2008年12月15日 09時12分 公開
[渡邊淳一, 畑陽一郎, 薩川格広,EE Times Japan]

 2008年11月19〜21日に横浜で、組み込み機器の開発者やソフトウェア・エンジニアに向けた展示会「組込み総合技術展 2008(Embedded Technology 2008、以下ET2008)」が開催された。なかでも、OHA(Open Handset Alliance)が提供するソフトウェア「Android」に関する出展が多く、来場者の注目を集めていた。OHAは、携帯電話機に共通なソフトウェア・フレームワークの開発や普及を推進する団体である。米Google社の呼び掛けにより、半導体メーカーや通信事業者、ソフトウェア・メーカーなど30社以上が参加を表明して、2007年11月に設立された。

 Androidは、本来は携帯電話機を開発するために必要なOS(Linux)やライブラリなどをまとめたソフトウェアである。Google社が中心に開発を進め、2008年9月23日に開発キット(SDK)「Android 1.0 SDK, release 1」が公開された。同年10月21日にはAndroidの全ソース・コードが公開されている。

 Android SDKが公開されてからわずか2カ月後にもかかわらず、ET2008ではOSや評価ボードを展示した出展社は8社以上を数えた(表1)。

表1 表1 ET2008での主なAndroid関連展示品

 Androidは、クラス・ライブラリの豊富さに魅力があり、Java言語を用いるのでセキュリティ向上のための確立した手法を利用できる利点がある。さらにソフトウェアのライセンス料が不要というメリットもある。「Androidはオープンソースだが、作成したソフトウェアのソース・コードを公開する必要がないApache License 2.0を採る。著作権の観点から、メーカーにとっては非常に好ましいライセンス形態だ」(富士通ソフトウェアテクノロジーズの説明員)。

 表1のようにAndroidの適用範囲は、携帯電話機だけにとどまらない。これは携帯電話機を実現する機能にとどまらず、ウインドウ表示やデータベース管理システム(DBMS)などといった一般の組み込み機器にも役立つソフトウェア・ライブラリが十分に備わっているからだ。「Androidが携帯電話機専用ではなく、多くの組み込み機器に活用できることを提唱したいし、その豊富な表現力を見てもらいたい。Linuxを使ったソフトウェア開発では、GTKやQtなど選択肢が豊富なソフトウェア・ライブラリがかえってばらばらな印象を与えて混乱を招くが、Androidが開発環境を統一した」(富士通ソフトウェアテクノロジーズの説明員)。

 ET2008でのAndroidに関する展示は、Androidの基礎となるLinux OSのほか、Androidへの導入を目的とした画像処理ライブラリ、音声通信ライブラリ、DBMS、Androidを組み込んだ機器や携帯電話機の評価ボード、ナビゲーション・ソフトウェアなど多岐にわたった。

Androidの動作原理

 Androidが広く組み込み機器に適用できるのは、Java言語で記述した既存のソフトウェアが動作することに加え、省電力に向く構造を採るからだ。具体的にはJavaプログラムを独自形式にコンパイルすることで使用するメモリー量を削減し、同時に必要とするプロセッサの性能を抑えている。

 Androidは図1のように、「アプリケーション層」、「アプリケーション・フレームワーク層」、「Androidランタイム層」、「ライブラリ層」、「Linuxカーネル層」の5層構造からなる。ET2008の展示品ではプロセッサにすべてARMを用いていたものの、任意のプロセッサを選択でき、Linuxが動作しさえすればよい。機器構成も自由で、Linuxが備えるデバイス・ドライバを利用する。

図1 図1 Androidのソフトウェア構成図 主な機能のみを示した。Androidランタイム層がライブラリ層の内部に定義されている。「ソフトウェアの動作の性格から考えた場合には、理にかなった構造だ」(トラスト・テクノロジーの説明員)。

 アプリケーション層のソフトウェアは、Java言語で、アプリケーション・フレームワーク層のクラス・ライブラリを利用して記述する。Java言語で記述したソース・コードをAndroid用にコンパイルすると「Androidバイト・コード」という形式の中間言語に変換される。一般的なJavaプログラムの実行環境には米Sun Microsystems社のJava仮想マシン(JVM)を使うのに対して、AndroidではAndroidランタイム層にある「Dalvik Virtual Machine」が、Androidバイト・コードを解釈してソフトウェアを実行する。ソフトウェアの実行に必要であれば、ライブラリ層のライブラリを呼び出す。

 「Androidは、Sun社が提供する組み込みソフトウェア開発用のJava Platform, Micro Edition(Java ME)の制限されたプログラミング環境とは違う。アプリケーション・フレームワーク層のクラス・ライブラリが豊富な機能を提供しているためだ。アプリケーション・フレームワーク層のクラス・ライブラリはとても使いやすく、今まで組み込みソフトウェア開発を経験したことのないソフトウェア開発者でも、組み込みソフトウェア開発に参加できる。純粋な比較ではないが、C/C++言語による組み込みソフトウェア開発と比べて労力を1/10以下に省けた」(富士通ソフトウェアテクノロジーズの説明員)。

PDAとして用いる

 富士通ソフトウェアテクノロジーズは、Androidを利用したナビゲーション・ソフトウェア(図2)を出展した。アットマークテクノのPDA向け評価ボード「Armadillo-500 FX 液晶モデル」にUSBカメラとタッチ・センサー、通信モジュールをつないだ。ユーザーは用意された複数の写真から3つを選んでUSBカメラに写し、タッチ・センサーをユーザーが操作して確定する。するとソフトウェアは、選択された写真からユーザーの好みを推測して温泉地を案内する。このときの温泉地の検索には、通信モジュールで外部のデータベース・サーバーとデータをやりとりする。

図2 図2 Android上で動作するナビゲーション・ソフトウェアのデモ 富士通ソフトウェアテクノロジーズが開発した。USBカメラとタッチ・センサー、通信モジュールを接続した。

 組み込みソフトウェア開発環境として、ほかにWindows Embedded CEやWindows Mobileがあるが、Androidの方がソフトウェアの実行速度が高く、またさらに高める余地があると指摘するエンジニアの意見も複数あった。Androidはオープンソースなのでソース・コードが公開されており、機器の目的に応じた最適化がソース・コード・レベルでできるメリットも挙げた。

OSとライブラリもある

 Android向けのLinuxとして2社の展示があった。ウインドリバーの「Wind River Linux」とモンタビスタ ソフトウェア ジャパンの「MontaVista Linux」である。

 ウインドリバーは、日新システムズとアイティアクセスのブースに展示した。「米Wind River社はAndroidの計画時からOHAに参加している。Wind River LinuxをAndroid専用に米Wind River社が修正した。OHA推奨のLinuxでもある」(日新システムズの説明員)。Wind River Linuxは、Androidを搭載した携帯電話機の第1号である台湾HTC社が製造した「T-Mobile G1」にも採用されている。

 一方、モンタビスタ ソフトウェア ジャパンは、MontaVista Linuxで動作するAndroid上でルービック・キューブを回す映像を表示するデモを見せた。デモ機は、プロセッサに米Texas Instruments社の「OMAP3」を採用した。MontaVista Linuxは、消費電力を抑えるためにプロセッサのクロック速度を下げたり、ディスプレイやサウンドなどのデバイスへの電源供給を止めるなどといった電源管理機能を強化したLinuxである。「今後、MontaVista Linuxには、T-Mobile G1に利用されたハードウェアに固有のソース・コードも取り込んでいく」(モンタビスタの説明員)とした。

 Androidに向けたライブラリ・ソフトウェアの出展も多数見られた。

 トラスト・テクノロジーは、C++言語で記述された同社独自の画像処理ライブラリ「TrustSense」をJava言語に移植した。TrustSenseでは、顔認識、顔追従、輪郭抽出などの機能を提供する。「Androidのクラス・ライブラリは充実しているので、ユーザー・インターフェースは既存のJava言語よりも作りやすい。また、Windows CEよりも動作がきびきびしている。ただし、例えば米Apple社の『iPhone』と比べると、細かなユーザー・インターフェースの挙動に物足りないところがある」(同社の説明員)。

 ガイロジックは、Androidに向けたDBMS「Perst」のデモを見せた。Perstは、ソース・コードのサイズが小さいこと(5000行)と検索速度の高さを特徴とする。Androidには、オープンソースのDBMS「SQLite」がライブラリ層にある。ガイロジックでは同社既存のJava用のDBMSをAndroidに移植してベンチマーク・テストを実施したところ、SQLiteに比べて5〜10倍の速度が得られたという。例えば1万件のデータを検索した場合には、SQLiteでは110秒を要したが、Perstでは16秒に短縮できた。

Androidが動作する機器

 Android向けの評価ボードもある。2社が展示した。多様な組み込み機器に向けたアットマークテクノのArmadillo- 500 FX 液晶モデルと、携帯電話機に向けたソフィアシステムズの「Sandgate3- P」である。Armadillo-500 FX 液晶モデルは、ARM11プロセッサ・コアを採用しており、インターフェースとしてUSB、LAN、ウィルコムの「W-SIM」通信モジュールなどを備える。表示には、5.7インチ型で640×480画素(VGA)のタッチパネル付き液晶ディスプレイが用意されている。すでに出荷を開始しており、価格は12万8100円(税込み)である。富士通ソフトウェアテクノロジーズやトラスト・テクノロジーの参考出展品は、Arma-dillo-500 FX 液晶モデルを利用していた。Armadillo-500シリーズとして、7インチ型で800×480画素(WVGA)や3.7インチ型(VGA)タッチパネル付き液晶ディスプレイを備えた展示品もあった(図3)。

図3 図3 7インチ型(左)と3.7インチ型(右)の液晶ディスプレイを備えた評価ボード Armadillo-500 評価ボードに液晶パネルとタッチ・センサーをつないだ。液晶パネルには、それぞれAndroidの起動画面と写真を表示した。

 ソフィアシステムズのSandgate3-Pは、ET2008におけるAndroidの展示では、唯一の携帯電話機の参考出展だった。米Marvell Semiconductor社のPXA310プロセッサや240×320画素(QVGA)の2.2インチ型TFT液晶パネル、130万画素のCMOSセンサーを用いたカメラ、無線LAN、地磁気センサー、3軸加速度センサーなどを備える。通話とデータ通信にはウィルコムのW-SIMを利用する。

 「Androidを用いた機器の開発が活発になるに従って、Android用のミドルウェアの供給者が増えるのではないだろうか」(富士通ソフトウェアテクノロジーズの説明員)。

Linuxを3秒以内で起動

 ET2008には、そのほかにも組み込みソフトウェアに関する多数の展示があったが、ここではその中から、Androidにも活用できる技術と、新しいアルゴリズムの展示を取り上げる。

リネオソリューションズがLinuxを3秒以内で起動させる技術「Warp!! 2」、セイコーエプソンが「人の音声から喜怒哀楽などの感情を認識するアルゴリズムを搭載したマイコン」を展示した。

リネオソリューションズのWarp!! 2は、評価ボードにアットマークテクノのArmadillo-500を用いた場合、電源投入後、X.orgが開発した「X Window Sys-tem」と、ウインドウ・マネジャー「twm」が動作し、ターミナル・ソフトウェアである「xterm」が3つ起動した状態まで、2.97秒で到達した(図4)。

図4 図4 Warp!! 2を組み込んだ評価ボードの起動デモ Warp!! 2を用いない場合、アプリケーション・ソフトウェアの画面に至るまで31.11秒を要するが、Warp!! 2を使えば起動時間を2.97秒まで短縮できる。データ・サイズを小さくするため、圧縮・伸長処理を加えた場合でも3.17秒で起動した。アットマークテクノの評価ボードArmadillo-500を用いた。同ボードは、米Freescale Semiconductor社のプロセッサ「i.MX31L」(400MHz動作)を搭載し、64Mバイトの主記憶を備える。図左下はAndroidにWarp!! 2を適用した例。

 Warp!! 2では、ハイバネーション技術を用いることで、電源投入後、素早くLinux用アプリケーション・ソフトが起動した後の画面を表示でき、操作可能な状態に至る。パソコン向けのハイバネーション技術では、電源切断時にメイン・メモリーの内容をディスク装置にファイル化して退避することで、次回の起動時間を短くしている。一方、Warp!! 2ではソフトウェア開発が終了した時点で、指定した時点のメイン・メモリーの内容(スナップショット)をフラッシュ・メモリーに書き込む。従って、Warp!! 2を用いた機器では、起動時の画面は常に同一になる。

 Warp!! 2を機器に適用するには、スナップショットとそれを格納するフラッシュ・メモリーを準備するほか、電源投入時にスナップショットをメイン・メモリーに展開し、プロセッサのレジスタ値を復元するための専用ドライバ・ソフトウェアを組み込む。このような方式を採るため、Linuxカーネルのバージョンやアプリケーション・ソフトウェアの処理内容に依存せずに適用できる。

 Warp!! 2は、2008年5月時点で顧客に提供していた「Warp!!」技術の改良版である。主に3点を改良した。Warp!!ではOSやアプリケーション・ソフトウェアがロードされたメイン・メモリーのイメージをほぼそのままフラッシュ・メモリーにスナップショットとして記録していた。例えば、冒頭の例では64Mバイトのメイン・メモリー中、OSとアプリケーション・ソフトウェアが32Mバイトを占有しているため、スナップショットのサイズは32Mバイトとなる。Warp!! 2では、ハード・ディスク装置のキャッシュ領域などイメージ化する必要のないメモリー部分を記録前に解放するなどの手法を採った。冒頭の例では 18.3Mバイトに減らすことができた。システム起動時の転送データ量が減るため、起動時間のさらなる短縮に役立つ。

 第2に、スナップショット自体の圧縮が可能となった。圧縮率よりも伸長に要する時間を重視したため、Lempel-Ziv法と類似のアルゴリズムを採用した。ただし、プロセッサが低速な場合は、伸長処理に要する時間が加算される結果、起動時間が非圧縮時よりも長くなる可能性があるという。圧縮操作は、開発ターゲット・マシン自体で可能とした。このため、組み込みボードの開発者自身がスナップショットを入れ替えられる。

 第3に、複数のスナップショットを記録できるようにした。DIPスイッチを用いて選択するか、Linuxを起動するブート・ローダー・ソフトウェアで設定できる。このほか、対応プロセッサを拡充しARM 11以外にも対応した。

感情を認識するマイコン

 セイコーエプソンは、人の音声から喜怒哀楽などの感情を認識するアルゴリズムを搭載したマイコンを開発し、参考出展した。音声の周波数成分と韻律(リズム)を解析して、発話者の感情をリアルタイムに認識する機能を備える。具体的には、「喜び」「怒り」「悲しみ」「平常」「興奮」の5つの感情成分について、それぞれの強さを50段階で検知可能だ。家電機器をはじめとした組み込み機器の音声入力型ユーザー・インターフェースに向ける。

 32ビットのプロセッサ・コア「C33」のほか、マイクロホンからのアナログ音声入力をデジタル化するA-D変換器などを集積したマイコンである。音声感情認識技術に取り組むソフトウェア開発企業であるAGIが開発した感情認識アルゴリズムをソフトウェアとして搭載した。

 AGIの感情認識アルゴリズムは、すでにコール・センター向けオペレータ支援ツールや、任天堂の携帯型ゲーム機「ニンテンドーDS」向けゲーム・ソフトウェアなどで実用化されているが、組み込み機器に向けてマイコンに搭載したのは今回が初めてである。感情認識の精度については、「人間が音声のみから発話者の感情を認識する際の精度が60〜70%だとされており、このアルゴリズムもそれと同程度の認識精度を実現している」(AGIの説明員)という。また、アルゴリズム自体には言語依存性がないため、日本語以外の言語で発話された音声からも感情認識が可能だとする。

 会場では応用例として、開発したマイコンやマイクロホンを搭載した感情認識ボードと、セイコーエプソン既存の音声合成LSIの評価ボード、パソコンを組み合わせて構成した「感情コミュニケーション・システム」を見せた(図5)。パソコン用モニターに表示されたキャラクタが、あたかもそれ自身が感情を持っているかのように、発話者の感情に応じて表情や音声を変化させるシステムである。

図5 図5 感情コミュニケーション・システム 発話者の感情を認識してディスプレイに表情を表示する。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.