連載
» 2015年09月15日 07時00分 公開

あのロボットが私のハードウェア予算を食っている!SYSTEM DESIGN JOURNAL(3/4 ページ)

[Ron Wilson,Altera Corporation. MONOist]

 このロボットは大型ホームセンターの売り場を不規則に動き回り、支援が必要かどうかを顧客に尋ね、顧客が探している商品の棚まで誘導します。デザイン上、店舗の静的マップを利用して航行することが可能ですが、ビデオと2個のオンボード 2D LIDAR ユニットからのデータを利用して自己位置を推定し、マップにない障害物を回避して航行します(図 2)。また、車輪からのシャフトエンコーダデータと慣性航法モジュールからのデータも使用します。

 データは、適応モンテカルロ位置推定(Adaptive Monte Carlo Localization:AMCL)アルゴリズムにまとめて入力されます。このコードは、マップデータ、映像データ、LIDAR データ、推測位置を組み合わせて、ロボットの位置および方向の確率マップを作成します。必要な分解能によってはかなりの計算が必要ですが、入力データの誤差や曖昧さにほとんど影響を受けません。

図 2. SLAM はオンザフライでマップを作成し、その中にロボットを置く 図 2. SLAM はオンザフライでマップを作成し、その中にロボットを置く

 また、Fellow Robotsのロボットは一時的な陳列台や顧客など、予期しない障害物を認識しながら航行しなければなりません。さらに、ビジョンプロセッシングを使用して人間の顔を探します。人間を発見すると、ロボットなりのアイコンタクトをとった後、音声合成・認識と大型タッチスクリーン・ディスプレイに表示した商品カタログを使用して自己紹介し、顧客が探している商品を特定し、その商品売り場まで案内します。

 これらの機能レイヤーには、さまざまなソースからのアプリケーション・コードが必要です。Fellow Robots CIOのThavidu Ranatunga氏によれば、そのコードには数種類の動作環境が必要であり、同社のロボットデザインは、連係動作する複数マシンの集合体と考えることができるといいます。

 「まず、Windows上で動作するユーザーインタフェースマシンがあります。また、Robot Operating System(ROS)組織のロボティクス・コードを実行するマシンはLinux上で動作し、幾つかのCコードはArduino上で実行されます」(Ranatunga 氏)

 Windows 上のジョブの重要な部分はネットワーキングです。音声認識のためのクラウドアクセスなど、さまざまな理由から Wi-Fi が必要です。実際、特に電力の制約がないため、Wi-Fiルーターをそのまま搭載しています。

 既に計算負荷はヘキサポッドに搭載されたマルチコアMCUの能力をはるかに超えています。Ranatunga 氏は、「Core i5のクアッドコアをほとんど使用している他、約1.6GBのメモリを使用しています」と語ります。大体の数字が把握できたところで、6本脚の相棒の話に戻りましょう。

Copyright © ITmedia, Inc. All Rights Reserved.