各分野の専門家たちが
力を合わせ
一歩先行く自己位置推定・
障害物認識を実現
ドローンが安定した飛行を実現するためには、周囲の状況を正確に、即座にセンシングする必要があります。「Airpeak S1」ではその高難度な要求を実現するため、AIロボティクスビジネスグループだけでなく、グループ全体の先進技術研究開発を担うR&Dセンター、そして、さまざまなデバイスの開発を行うソニーセミコンダクタソリューションズのメンバーが力を合わせて取り組みました。
広野「Airpeak S1」の機体制御システムは大きく3つのマイクロプロセッサで構成されています。自律飛行や撮影機能などの上位アプリケーションとシステム全体を制御するアプリケーションプロセッサ、機体の姿勢や運動を制御するフライトコントローラー、そして大量の映像情報から機体の制御に必要な位置・周囲状況を判断するビジョンセンシングプロセッサです。
それに加え、「Airpeak S1」には機動性能と安全な飛行を提供するために多くのセンサーを搭載しています。中でも最も重要なものが、機体と周囲の情報を映像から得るための5方向ステレオカメラです。「Airpeak S1」では、ビジョンセンシングプロセッサでこの5×2=10個のイメージセンサーと、機体の角速度・加速度を検出するIMU(Inertial Measurement Unit/慣性計測装置)の計11個のセンサーで取得した膨大な情報を高速に処理。それにGPSなどのGNSS(Global Navigation Satellite System/衛星測位システム)から取得した情報なども加味してフライトコントローラーが機体の運動を制御し、アプリケーションプロセッサからの指令にしたがって飛行します。
広野ドローンが空中にピタッと静止したり、ユーザーの指示制御にしたがって正確な飛行を行うには、より高精度な位置情報を得る必要があります。しかし、屋内やトンネル内など飛行する環境によってはGNSSの情報を安定して得られないことがあります。GNSSなどの位置情報を使わずに飛行させるモードでドローンを飛ばしたことのある方はご存じだと思いますが、位置情報を得られないドローンの操作は、宇宙空間でロケットを噴射させて位置を制御するようなもの。つねに緻密で煩雑な操作をせねばならず、非常に危険です。
その点、「Airpeak S1」では5方向ステレオカメラで取得した周囲の映像情報をビジョンセンシングプロセッサで処理し、機体の位置を推定してフライトコントローラーに提供することで、GNSS情報が得られないトンネル内や屋内でも安全な飛行を可能にしています。
さらにステレオカメラには、映像を元に取得した測距情報で周囲の物体情報マップを生成し、障害物の有無や位置をアプリケーションプロセッサに提供することで障害物に対する停止・回避機能を実現する、という役割もあります。
広野まずは機体のどこに5つのステレオカメラを配置するかを思案しました。ペイロード(積載物)として搭載されるフルサイズミラーレス一眼カメラα™(Alpha™)やジンバルの動きを妨げない場所に配置しなければなりませんし、振動を抑えるために部品はなるべく機体の中央に集めたいという要求もありました。とはいえステレオカメラを機体の中心に寄せてしまうと、プロペラやアームによって映像がケラレて有効に使える範囲が狭くなってしまうので、位置や角度を工夫して有効視野を確保し、機体の飛行姿勢を考慮して性能が発揮できるようメカ担当と連携して検討しました。
またステレオカメラではもう1点、左右のカメラの間隔も重要になります。原理的には左右のカメラの距離を離すほど、より遠くまで測距できるようになり、精度が確保できる距離のレンジも変わってきます。カメラの間隔を離すほうが、たとえば高速飛行時でも早めに障害物を検知できるため安全に停止させることができるのですが、離せば離すほど機体のサイズは大きくなり、プロペラやアームがカメラの画角内に入ってくるということがここでも起きてしまいます。そのため、測距可能距離と機体の小型化のバランスを考慮して、現在の間隔に決めました。
広野やはり安全にドローンを飛ばしたいというユーザーの要求を叶えたいという思いがありました。周囲の障害物検知によって安全を確保し、機動性に富んだ「Airpeak S1」の急激な機体運動や激しい振動下でも高精度な自己位置推定を行うことで、GNSSが入りづらいところでも安定した飛行を提供できるようにしたかったのです。
そう考えたとき、たとえばステレオカメラが2系統しかないと場所や環境によっては必要な情報を取り切れない恐れがあります。ステレオカメラによるビジョンセンシングは測距範囲内にテクスチャーのある物体が存在していなくてはならないので、観測できる方向が増えることで周囲の障害物検知ができることはもちろん、自己位置推定の性能を発揮する条件を満たしやすくなります。しかし、5系統のステレオカメラを搭載するのは簡単なことではありません。すでにお話しした設置場所やコスト、重量などの問題に加え、多数の入力系統を持ち大量の映像をリアルタイムに処理できる高性能なマイクロプロセッサが必要になります。
広野その通りです。これがなければ「Airpeak S1」のビジョンセンシング機能とそれによる安定した飛行は実現できませんでした。
中川ソニーセミコンダクタソリューションズ社内では、以前からセンサーやデバイス単品のビジネスだけではなく、それらを組み合わせてお客様の課題を解決するセンシングソリューション開発の取り組みを進めていました。イメージセンサーを使ったセンシングソリューションの応用領域として、ロボット産業は有望な領域です。その中からあえてドローン分野を選んだのは、ドローンのように空間を自由に移動可能なロボットが安定して飛行するためには、ロボットの周囲の環境をくまなくリアルタイムにセンシングできるシステムが必要になるためです。求められる性能は非常に高くなりますが、そのようなシステムが実現できれば、この先さまざまな分野に応用できると考えました。なお、そのためのシステム開発には、空間認識に必要なイメージセンサー全てを同期して制御し、かつそれらのデータをリアルタイムで処理可能なコンピューティング性能が要求されます。そのようなシステムを実現できるデバイスは当時、世の中に存在しなかったため、自らビジョンセンシングプロセッサを企画し開発するところからスタートしました。
中川実はそうなんです。そして、その開発が進み、ちょうどデバイスの製造に入ったタイミングでAIロボティクスビジネスグループがドローンの開発をしているという話を聞きつけ、我々の方から技術を紹介して採用されることになりました。
広野もちろん、ビジョンセンシングプロセッサの採用を決定する以前から、それに相当するようなさまざまな他社製品をベンチマークして検討しています。ただ、ビジョンセンシングプロセッサは、先ほどお話しした5方向ステレオカメラを接続できる入力系統の多さに加え、グローバルシャッターなどドローンに必要とされるスペックを高い水準で満たしたソニー製の高性能なセンシング向けイメージセンサーに対応していました。その上で、ソニーセミコンダクタソリューションズのカメラモジュール部隊の協力も得られたこと、さらにソニーのR&Dセンターがロボティクス向けに開発していた自己位置推定などのアルゴリズムやノウハウを活かせそうだったことなどが決め手となり、採用を決定しました。これが最も「Airpeak S1」の開発を加速させる選択肢だろうと判断したのです。
また、ドローンは我々にとって未知の領域ですから、開発の過程でさまざまな問題・課題が発生することが分かりきっていました。それを乗り越えていくところも含めて一緒にやっていけるパートナーになってくれそうだったのも彼らを選んだ理由の1つですね。実際、「Airpeak S1」の開発では何度も助けていただきました。
中川ドローンでは空間全体の状態を把握しなければならないため、接続するセンサーの数が非常に多くなります。また、R&Dセンターが開発した自己位置推定のアルゴリズムなどを動作させられるだけのコンピューティング性能も求められます。それらの要求を満たした上で、消費電力、チップコストのバランスがとれたデバイス仕様を策定していくのが大変でしたね。拡張性の面でも、処理に応答性が求められる部分はハードウェアに機能を割り当てますが、認識アルゴリズムのように継続的な進化が想定されている部分はソフトウェアにより機能を実装しています。要求される処理性能を担保しつつ拡張性を持ったデバイス仕様を策定していくために、多くの検討を重ね、デバイス仕様・アーキテクチャ設計を行いました。
多井ここまでで何度か話が出ている自己位置推定のアルゴリズムについてお話しますと、これはステレオカメラとIMUの情報を使い、数十Hzの頻度で機体の位置姿勢と速度を推定してフライトコントローラーに渡すというものです。
この際、ステレオカメラから取得した映像のうち、自己位置推定に有効なステレオカメラ映像を選択することをアルゴリズム内部で実施しています。たとえば、逆光によって写りが悪いステレオカメラの映像や、遠くしか映っておらず原理上距離が測れないステレオカメラの映像はあまり使わないようにすることをアルゴリズムが行っています。こうすることで、さまざまな環境でも安定して機体の位置を求められるように設計しています。
多井他社製品も同様にカメラ映像を使った自己位置推定をしていると思われますが、詳細はわかりません。ただ、体験会で「Airpeak S1」を操縦いただいたプロフェッショナルサポーターの方々には、低高度での飛行の安定性が抜群に良いと好評をいただいています。カメラ映像以外でドローンの高度情報を得る場合は、GNSSや気圧計を利用するのですが、低高度ではそれぞれのセンサーの精度が悪くなります。現在広く使われているGPSなどのGNSSは原理上、計測高度の精度が悪く、気圧計はドローンのプロペラが発生させる風が地面に当たることで気圧が変わり、高度値の精度が悪化します。これらの影響により低高度飛行は不安定になりがちでした。一方、カメラ映像による自己位置推定は低高度でも高精度な自己位置を推定することが可能です。「Airpeak S1」 は、その結果を上手くフライトコントローラーに取り入れているため、低高度でも安定飛行が実現できています。
多井「Airpeak S1」で使われている自己位置推定、障害物停止のアルゴリズムの開発は、家庭用エンタテインメントロボット「aibo」や二足歩行ロボット「Qrio」のような、自律移動体向けの開発からスタートしています。その後、モバイル機器のAR/VRエンターテインメント用途にも利用できるよう、位置精度の向上やさまざまな環境に対するロバスト性(頑健性)の向上を行ってきました。「Airpeak S1」に搭載しているアルゴリズムには、過去に得られたノウハウの多くが反映されています。
多井ドローンならではの高速飛行・急加速・急停止といった機体運動、ドローンの振動がカメラやIMUへ与える影響、屋外環境に対するロバスト性確保という、はじめて取り組む課題が多くありました。たとえば、高速飛行時に安定して自己位置や周囲の障害物を推定するためセンサー観測の頻度(サンプリングレート)を上げられるよう、ビジョンセンシングプロセッサのリソースを最大限に活用する最適解を探る必要がありました。また、アルゴリズムの修正だけでは解決できないこともよくあります。そのため、アルゴリズムを改善するのが最適か、フライトコントローラーまたはソフトウェアシステムで改善するのが最適かなど、各ソフトウェア担当者と頻繁に議論を行いました。自己位置推定結果をフル活用できるフライトコントローラーの改善策を、フライトコントローラーの担当者に提案するようなことも積極的に行っています。総合的かつ柔軟に課題解決に取り組み、ビジョンセンシングプロセッサと他のプロセッサとのシステム連携の工夫を取り入れたことで、計算負荷を一定に保ちつつ、ドローンの厳しい飛行運動の中でも、安定して機能するものに仕上がったと考えています。
広野ドローンの開発は、室内実験やシミュレーションで事前確認していても実際に外で飛ばしてみたら想定外のことが発生してしまう、ということが少なくありません。またビジョンセンシングは周囲の景色や環境条件に大きく左右されるので、空撮におけるユースケースを考慮すると海や山、構造物に囲まれた場所など、多くの環境条件で実験をする必要がありました。そうしたフィールドテストを行う中、現地で機体がうまく動かず、ログや動画をオフィスにいる中川さんや多井さんに送って、何とか対策していただいて実験を続行するということが何度もありました。
多井さんにはこうしたリモートでのやり取りだけでなく、実際のフィールドテストにも頻繁に参加していただきました。宇宙航空研究開発機構(JAXA)の風洞施設で行った実験の時には、1日目に起きたトラブルについて、施設利用ができる翌日までになんとかチューニングをしてもらったことなどが印象に残っています。
多井東京都調布市にあるJAXA調布航空宇宙センターに、台風の強風域のような風速下での飛行実験を行える風洞施設があるためです。こうした実験を自然環境で定量的に行うことは難しいため、JAXAから設備をお借りして、「Airpeak S1」を持ち込む形でテストを行っています。
広野その時は2日間、JAXAの風洞施設をお借りして、風速20m/sという台風レベルの強風が吹いているところでも「Airpeak S1」がホバリングできるのか、安定した飛行ができるのかという実験を行う予定でした。屋外でも林の中や市街地で建物に囲まれた場所などではGNSSの情報を安定して得られないことがよくありますが、JAXAの屋内の風洞施設内もGNSSが入りませんのでビジョンセンシングプロセッサだけで自己位置推定を行わなければなりません。しかし風洞の中は暗く、映像的な特徴量もあまりありません。さらに風による振動も凄まじく、機体の動きと振動を自己位置推定で区別できるのかという懸念もありました。
その結果、最初のテストでは風速5m/sくらいの環境でも機体がフラフラしてしまって……(苦笑)。これは想定と違うぞとその場でデータを収集して、同席いただいていた多井さんにアルゴリズムの挙動確認をお願いし、翌日に実験ができるよう夜中まで解析をしていただきました。
多井データを元に、パラメーターをどのようにチューニングすればよいのかを自分の中で整理をして、翌日、その設定で試してみたのですが、それでも風速10〜12m/sくらいで位置推定が失敗し機体がふらついてしまいました。後日の詳細解析で、機体運動のうち高めの周波数成分を IMU が検波できていなかったため、推定に失敗していたことがわかりました。アルゴリズムの性能を十分発揮させるためには、高めの周波数成分を検波できるようにIMUのサンプリングレートを変更する必要があるのですが、先ほどもお話ししたように、IMUのサンプリングレートを上げるとビジョンセンシングプロセッサの負荷が上がってしまいます。
広野それで、すぐに中川さんに連絡をして、ビジョンセンシングプロセッサのソフトウェアの仕様変更をお願いしました。とても大きな変更だということは分かっていたのですが、どうしてもこの変更が必要なのでなんとかしてください、と(笑)。さすがにそれをその場で対応していただくのは無理だったのですが、おかげで半年後にまたJAXAでテストを行った時には無事、風速20m/sでも安定した飛行ができるようになり、胸をなで下ろしました。
中川IMUのサンプリングレートを倍にすること自体は簡単なのですが、上がった負荷の分、他にしわ寄せが行ってしまうので、それをどう解決するかが悩みどころでしたね。一部の処理を実装レベルで最適化しても解決できない規模の問題でしたので、処理負荷を下げるためにデータ転送の仕方を工夫するなど、処理全体の構造を見直すかたちで再実装していきました。
広野センシングの処理時間はそのまま制御処理の遅延や機体の反応速度に効いてくるので、性能を改善しても処理スループットを低下させることはできません。しかし開発中は、高速飛行時に急停止すると自己位置を見失って機体が円を描くように踊りだす、特定の場所で直進飛行させると勝手に高度が下がっていく、機体ハードウェアの仕様変更が入り振動特性が変わるなど、次から次へと課題が出てきてしまい、安定した飛行を行うための機能追加や改善を行うたびに処理負荷が増えて目標スペックに到達しなくなるということが何度もありました。そのたびにソニーセミコンダクタソリューションズはもちろん、ビジョンプロセッサのソフトウェアシステムについてはR&Dセンターのシステム担当者にもサポートいただき、パフォーマンスの監視を継続しつつ、IMUのサンプリングレート改善の時と同様にソフトウェアの構造変更まで踏み込んだシステムの高速化や最適化に取り組んでいただきました。これにより、たとえば自己位置推定において特徴のある物体が周囲にない環境ではステレオカメラから有意な情報が得られず推定結果の信頼度が下がり不安定な状態になりますが、情報が得られ次第、一瞬で復帰させて機体制御を安定化させたり、障害物を検知したときに減速・停止制御を低遅延で実行して安全な飛行を提供したりすることが可能になりました。
ソフトウェアだけでなく、ハードウェア開発や製造での調整技術でも多くのサポートをいただきました。空撮ドローンは過酷な環境で使われることが多いため、ソニーセミコンダクタソリューションズのステレオカメラモジュール部隊とAIロボティクスのメカ担当の協力を得て、カメラモジュールに使われる材料に気温・湿度の変動に強いものを選定したり、激しい振動に耐えうるステレオカメラの保持構造を検討しました。製造でのキャリブレーションや調整技術もソニーセミコンダクタソリューションズに監修していただき、イメージセンサー間の特性のばらつきを画像処理で自動的に吸収する調整を製造ラインに導入しています。キャリブレーションに関しては設備導入において製造の方に多大なご協力をいただき、それだけでもここでは語りつくせないくらいの多くの課題や開発項目があります。また、ビジョンセンシングプロセッサにはステレオカメラのAE(Auto exposure/自動露光)機能やノイズリダクション、ガンマ補正機能などのセンシングの基礎となる画質調整機能も備わっていますが、ステレオカメラによるセンシングに特化した画質調整も一緒に検討しました。地上の物体を高コントラストでとらえ、ノイズを抑えつつ激しい機体運動による動きボケの影響が最小限になるようチューニングしています。なお、私はAIロボティクスに異動してくる前は実はソニーセミコンダクタソリューションズでモバイル向けイメージセンサーの画質制御ソフトウェア開発に携わっていました。その時の経験を活かしつつも、モバイルの画質調整とは全く異なるビジョンセンシングのための画質チューニングを、有識者と相談しながら行っていきました。
また、先ほどフライトコントローラーとのアルゴリズムの開発の話がありましたが、ビジョンセンシングプロセッサだけでなく、アプリケーションプロセッサ、フライトコントローラーの担当者とも頻繁にミーティングで課題共有と対策協議を行いました。自己位置推定が不安定になった場合のリカバリーや、GNSSや気圧計など他のセンサーとの情報をどのように統合するか、測距精度に応じた障害物回避のための速度制御など、センシング技術だけではなく機体制御と密接に連携させて性能を追い込んでいくことができたと思います。
広野政府によるドローンの利用推進もいよいよ具体化してきました。そうした中、我々としては「レベル4」と呼ばれる目視外自律飛行に向けて、まずはセンシングの精度や距離、速度といった基本的な性能向上に注力していくつもりです。こうした性能向上によってドローンが正確に素早く環境情報を認識できるようになれば、より安全に飛行ができるようになります。さらに今後は、検知できる物体の制約解消が求められてくると考えています。
可視光や赤外線、レーダーや超音波を利用したさまざまなセンサーが存在しますが、それぞれ特性によりどうしても捉えにくい、見えない物体が存在します。検知できる物体の制約が存在するというのは、センシング技術開発における大きな課題の1つです。「Airpeak S1」ではできるだけ多くの物体を認識できるよう、複数のセンサーを組み合わせて活用していますが、それでも限界はあります。かといって全ての物理現象を検知するセンサーを積み込むわけにもいきませんから、今後は、AIによる「状況判断」などによってより安全に飛行するような制御を行っていく必要があるでしょう。そうした進化によって、悪天候、低温・高温下など過酷な環境下でも安定したセンシング性能を発揮できるようになれば、人ができない仕事をロボティクスが代わって遂行できるようになるのではないかと期待しています。
中川ソニーセミコンダクタソリューションズでは今回の「Airpeak S1」に搭載したイメージセンサーのほかにも、多くのセンシングデバイスを開発しています。ドローンがどのような条件下でも安定して飛行を続けられるよう、さまざまなセンサーから得られた情報をビジョンセンシングプロセッサで統合し、より頑健な認識処理を実行していくというのが今後の開発における重要なポイントになっていくでしょう。
ビジョンセンシングプロセッサの企画当初に思い描いたことが、実際の商品として具現化されるよう、開発に全力で取り組みました。より多くの皆さまに「Airpeak S1」が安定して飛行するところをご覧いただきたいです。