Androidオープンアクセサリ開発キットって何ですか



 5月11日に開催されたGoogleの開発者向けカンファレンス「Google I/O」の情報をtwitter経由で何気なく見ていたときのことです。突然、ArduinoクラスタからのTweetが大量に飛び込んできました。リンク先へ行くと、どうやらGoogleが自社の開発キットの一部としてArduino互換ボードを提供するという話のようです。そのキットの名前はAndroid Open Accessory Development Kit(以下ADK)。基調講演の後半に発表されたようです。

 プレゼンの写真を見ると、GoogleとAndroidのロゴが入った基板の写真が大写しになっていました。基板の形とピンの配列から、Arduino Megaに似たボードであることがわかります。事実、最初のADKはArduinoボードを前提にしていました。

 この連載ではArduinoをたびたび取り上げてきました。最初の記事は2008年のブレッドボーダーズです。Arduinoの魅力は、ハードウェアを含むあらゆる要素がオープンソースであること。それによりたくさんの情報が流通し、便利なツールもふんだんに揃っています。これまでに30万台以上のArduinoボードが出荷され、およそ50万人がなんらかの形で触れたことがあるという推測もあり、日本においても着実に裾野を広げています。

 オープンソースなOSであるAndroidのハードウェア開発に、オープンソースなArduinoを使うというGoogleの選択は、理に適っています。むしろ、適いすぎなくらいで、Googleという会社が持つある種の凄みを感じました。

 さて、Google I/Oが終了し、タイムラインも落ち着くと、ADKについての新しい情報はほとんど出回らなくなり、一部のコミュニティーを除いてはあまり注目されていない様子がわかってきました。我々は「もっと詳しく知りたい」と思い、情報収集を続けました。その結果、メカロボショップの岩崎修さんのご協力により、株式会社アールティの中川友紀子さんへたどりつくことができました。

株式会社アールティの中川友紀子さんとメカロボショップの岩崎修さんからGoogle I/Oの現場の様子と、ADKについて、詳しいお話をうかがいました

 今回のGoogle I/Oでは開発者向けにGoogleロゴ入りのArduino互換基板が配布されました。それとは別に、アールティはADKのオープンさの実例として、自社バージョンの基板を作ってカンファレンスに参加し、基調講演で紹介された初の日本企業となりました。ADKのリリースに深く関わる会社が秋葉原にあったということに、我々はなんだかうれしくなりました。その秋葉原のオフィスにお邪魔して、そこに至る経緯からお話を伺いました。

――まずADKへつながるいきさつについて教えてください。

 「2010年9月のGoogle Developer Day(GDD)で、株式会社ブリリアントサービスと開発したAndroid OSで動作するロボットRIC androidを展示したところ、Googleの人たちの目にとまり、チェコやドイツなど海外のGDDでも展示をしました。そのときの反響がとても大きくて、次のGoogle I/Oにも来て欲しいという話になったんです」。

――Google I/O(5月)への出展はいつごろ決まったのでしょう。

 「ほんとに直前で、震災の影響とゴールデンウイークによってギリギリのスケジュールになりました。工場から受け取った基板を持って飛行機に乗り、会場に到着したのは前日です」。

――映像ではADKのデモとして、巨大な迷路ゲームを動かす様子が流れていました。

 「Labyrinthですね。手元のパッドを動かすと、人が乗れる大きさの巨大な迷路が同じように動きます。迷路の横の部屋にAndroid端末とADKがあって、それが迷路の台を制御しています」。

Labyrinthの仕組み(左)。ユーザーが操作するパッドの動きはWiFiでAndroidに送られ、ADKを使って大出力のサーボを制御します。右側は会場の見取り図。Labyrinthを筆頭に、ADK関連のデモが並びました

――巨大迷路がAndroidのアクセサリ(周辺機器)なんですね。Googleのパワー(財力)を実感するリッチなデモです。ところで、ADKというのはAndroidにつなげて使うインターフェイスボードのことなんでしょうか。

 「Open Accessory Development Kitは、Android3.1と2.3.4で追加された周辺機器用APIを利用するためのソフトウェアとドキュメントを指します。大事なのはAPIなんです。ADKをデモするのに使うボードのほうはAccessory Demo Kitとも言って、やはり略すとADKになってしまうので、そこはちょっと紛らわしいですね」。

――物理的には単なるUSB機器なわけですが、ADKを使うメリットはどこにあるのでしょう?

 「ハードウェアとクラウドがシームレスにつながる新しいサービスを簡単に作れるようになります。従来の周辺機器はハードウェアとソフトウェアが別々に存在していて、ユーザーは新しいハードウェアをつないだら、必要なソフトを自分で見つけてインストールすることが多かったと思います。一方、ADKの場合は、ハードウェアがソフトウェアの情報を持っていて、接続すると自動的に必要なアプリを指定してくれます」。

新規にADK対応デバイスをAndroid端末へ接続すると、必要なソフトウェアを取得するため、自動的にインターネットへアクセスします。デバイスに記録されているURLをブラウザで開くという、シンプルな仕組みで実現されているようです
これがGoogle I/Oで配布されたGoogle版Arduino互換ボード(左)とシールド(右)。左のボードに、右のシールド(Arduino用の拡張ボードをシールドと呼びます)を重ね、USBケーブルを使ってAndroidに繋ぐと1つのデモ用周辺機器として機能します。これらのボードのプログラムはArduinoの標準的な開発環境(IDE)で作ることができます
シールドのアップ。さまざまなデバイスが載っていて、Lチカからリレーによる外部機器の制御まで、さまざまなデモが可能です。銅色のAndroid君(?)はタッチセンサーの接触面になっています
Googleロゴは多色刷り。コストのかかっているボードです

――開発用のデバイスにArduinoが採用されたことが驚きでした。

 「開発者にとってADKを使う最大のメリットは、そのオープンさでしょう。誰でも自由に試すことができます。開発ツールはすべて無料でダウンロードでき、試作に使うハードウェアも、USBホストインターフェイスを持つArduinoをベースに自分で作ることが可能です。完全にオープンな環境で周辺機器の開発ができるのは、素晴らしいことです」。

――すでに、Google版以外のADKボードも現れ始めたようです。

 「Google I/Oでは、アールティのArduino互換ボートと、マイクロチップのPICベースのボードの2種類がサードパーティ製品として紹介されました。我々のボードは製造しやすいよう、Google版を少し修正したものです。今後、いろいろな製品が出てくると思います」。

アールティ版のArduino互換ボードとシールド「RT-ADK&RT-ADS
マイクロチップのボード。マイコン搭載のUSBホスト機能で接続するため、ICの数が少なくなっています
こちらはクリス・アンダーソン率いるDIY Dronesの製品。UAV(無人飛行機)への組み込みを想定したADK用Arduino互換ボード。Androidスマートフォンと組み合わせれば、3G回線でUAVをコントロールできそうです
ADK付属のデモを実行中。スマートフォン側のユーザーインターフェイスを操作すると、ボード側のLEDやリレーの状態が変化します。ボードをUSBで接続すると、アプリケーションが自動的に選択されます
デモボードはスマフォの充電に必要な電力を供給します。小型のRCサーボならそのまま接続可能です
マイクロチップ版のデモ。8連装のLチカです

――スマートフォン側の開発はどのようにするのでしょう。

 「スマートフォン側はAndroid SDKを用いる通常の開発スタイルです。ただし、現在ADKに対応しているAndroid OSのバージョンは3.1と2.3.4だけなので、そのどちらかが必要です。今日の時点で私たちはまだ3.1を使ったデモを見たことがないので、2.3.4のほうが確実かもしれません」。

――アールティ・オリジナルのデモもあるのでしょうか?

 「この2足歩行ロボットは、AndroidとADKを使って40個のサーボモータを制御しています。ロボットの前に跪いて、ハグしてみてください」。

――こうでしょうか……、わ、ハグしかえされた!

 「ロボットもちょうどいい力加減でハグします。このロボットはGoogle I/Oの後にベイエリアで行なわれたMaker faireでも展示したのですが、1,000人以上の子ども達がハグしてくれました」。

――やはりAndroidとロボットは相性がいいのでしょうか。

 「Googleはクラウド・ロボティクスという言葉を使っていますが、ネットワークにロボットがつながることで、今までにないサービスが生まれる可能性がある思います。たとえば、ロボットに話しかけてくれるお客さんはとても多いのですが、それに音声認識技術とクラウド型の情報処理を組み合わせると、面白いマーケティングデータが取れるかもしれません」。

――クラウドと人間の接点にロボットが介在する感じでしょうか。そして、その実装にADKが有効であると。

 「もう1つGoogleの人がよく使う表現を紹介すると、彼らはバーチャルからリアルを掴む(grasp)という言い方をよくしていました。これまでのGoogleをはじめとするITサービスはバーチャルの側にありましたが、これからはリアルの側に出てこないといけないということだと思います。ADKを使えば、それを個人の開発者でも始めることができます。最初はクラウドLチカでもいいんじゃないでしょうか。熱い状況が生まれつつあることを多くの人に知ってもらいたいですね」。

AndroidスマートフォンとADKで制御されている2足歩行ロボット。アメリカでのデモから帰還したものを動くようにしていただきました。40個のサーボモータがシリアル接続されています
ハグされちゃった。恥ずかしいような嬉しいような体験でしたが、純真な子ども達はもっとストレートに感動するようです