クラウドロボティクスによる「異種複数ロボットのデータの利活用」というテーマを設定して研究・開発を行っております。図1は、この研究開発の全体像を示した図になります。ついての研究開発事例を紹介します。REPOSITORYの目的クラウドロボティクスは、インターネット上に配置されるクラウドと呼ばれる巨大で柔軟なサーバー群を用いることで、人、モノ、ロボットが有機的に結合し、サービスを構築し提供することのできる仕組みと方法論を研究する分野です(図2)。ロボット単体は、おおよそモーターや油圧などのアクチュエーターと、それらを制御する電子機器、観測のためのセンサによって構成されていますが、ロボットの動作の1つ1つは単純な動作の積み重ねです。そのようなロボットが、熟練し卓越した職人のような動作をするには、そのロボットの個体に合わせた動作の計画が必要です。その計画を『学習』によって得るには、『データ』が必要になります。AIは、今一番ホットな『人工知能』を用いた動作や判断の部分になりますが、人工知能を使うためには、ロボットの動作した『ログ』が不可欠です。RDRは、このためのデータ収集・整理の基盤として研究するものです。(データ中心アーキテクチャ)というものです。サービスを構成するために必要なデータの授受や格納に焦点を当てて、それらがどのように各コンポーネントに結合されるのかを中心に物事を考えるところから始まります。システムにおけるデータは、人における血、ロボットにおける電気のようなものと同等と考えられるからです。ロボットから出てくるデータは、決して『同じタイミングで、全てのデータが揃って吐き出される』ものではありません。ロボット毎についても、モーターが違ったり、搭載されるセンサが違ったり、精度が違ったりして、全てを同質のものとして扱うことができません。RDB)は、表形式で記述するものですが、各項目で並ぶ値は同質であり、かつほぼ必ず同じタイミングで全てのデータが揃っている必要があります。OODB)の考え方を使うと、効率的にデータが収集できます。されたデータであったりしてほしいものです。OODBではそれが難しいため、RDBのような形式で保持するのが望ましいことになります。RDRで構成するORDBは、RDBの一種であるPostgreSQLと、OODBの亜種であるMongoDBを用いて構成します。ロボットから取り出されたログは、タイミング毎にドキュメントとしてMongoDBに保持されます。それらをMongoDB内のメソッドを用いて整理し、データをそろえて、PostgreSQLに構成されるレコードとして変換されます。この過程の中間データもRDRでは保持されるので、PostgreSQLで利用されるような既存プロシージャの組み合わせによる『トランザクション』が、RDR全体で保持されることとなります。これが、RDRの一番の特徴です。Mappingを用いた自律的なRDR多段DBの構築を行う研究RDRを用いた実アプリケーションの実例としての、3Dマップの構築と閲覧を行う研究開発を行いました。温度センサによるロボット環境データの収集に関する研究開発を行いました。以下で、詳細な説明を行います。オントロジーからのRTC生成(左)と、生成されたRTC対を用いての観測からの制御利用(右)背景と目的RDRの開発で工数が特に多いのは、データベース間で発生するデータ変換のプログラムをいかに利用し配置するかです。どのようなタイプのDBシステムであっても、この部分を、自動的に入出力を合わせることができないので、非常に多くの工数がかかります。本研究では、この部分を、ロボットに共有される知識層をOntologyと呼ばれる形式言語で記述し、その形式言語を基に、入力と出力の仕様を合わせる既存プログラムの組み合わせを経て、自動的にRDRの多層DBを構築することを目的としています。図6では、RDRの自動生成の考え方を示しています。ロボットは、各コンポーネントからログデータを出力してOODB型のログデータベースに保存します。保存されるデータの仕様は、ロボットのコンポーネントの出口にありますので、それらを指定の言語で記述します。データベースからの出力として使用したいアプリケーションのデータの仕様も、そのアプリケーションとなるコンポーネントの入り口のデータの仕様が当てはまります。これらのデータスキームを提示し、そのデータスキームを繋ぐことのできるような中間コンポーネントを取り出して計算し、2次ないしn次のデータベースを作成することで、サービスを提供するものです。ロボットシステムのモデリング(ロボット仕様・環境条件・シナリオの定義)から、オントロジーを用いて変換コンポーネントを配置し、DBの変換を行う。Frameworkを用いて(図8)実装しました。Protégéツールを用いて構成されたロボットで利用されているセンサとデータの関係性や、単位系などを知識として木構造で保持したものを、XMLを用いてプログラムに入力します。実際のロボットの仕様を、XMLを用いて同様に入力します。Frameworkは、それらのXMLを解析した結果を用いてRTコンポーネントのテンプレートから、実行可能なRTコンポーネントを生成します。RDRで使用するDBのスキームと、変換するためのプログラムを自動で生成します。あとは、それぞれの場所でロボットとサーバーサービスを動作させれば、実行が可能となります。Protégéツールを用いて、センサとデータの関係性、および単位系などを知識として木構造で保持する。RDRの自動生成フレームワーク2019年度の成果2019年度は、図5のように、2つの項目について実装を行い、それぞれ自動生成ができることを確認しました。フレームワークが、アプリケーションとして動作するために必要なコンポーネント、サービス、リポジトリをシームレスに生成および展開したことを示しました。フレームワークが、プログラム層の定義からのコンポーネント群の自動生成を行い、ライブラリ内のレガシーソフトウエアの再利用をしながら、クラウドデータを介した異なるロボット間の連携を行うことができることを示しました。目的RDRの持ち味の一つに、データのスキーマを変換する変換コンポーネントを挟んだ、クラスとテーブルの多段化があります。この多段DBシステムを用いて、異種複数ロボットの内界(ロボット自身に具備される、自分の状態を監視するセンサ等からの情報)および外界(ロボットが動く環境を計測する計測器等の情報)データをクラウド環境上に配置されたOODBに蓄積し、そのデータをRDBとして利用できる環境を提供するのがRDRです。本項目では、この1つのアプリケーション例として、ロボットの観測データと動作ログからの3Dマップの生成と提供を行うシステムを構築しました(図9)。多段DBシステムを用いた3Dマップ生成と提供スキームの概要図2019年度の取り組み図10は、私たちの目指すRDRの形の一つである、多段DBシステムを用いた3Dマップ生成に係る様々なデータの情報や、それらをどのように統合して、マップを提供するかの構成図です。SLAMの技術を用いて3次元地図を生成します。併せて、事前に取得しておいたステレオカメラとLiDARとの間の対応関係を取り込み、LiDARで示された点群マップに色を付ける形で、カラー付き3次元地図を構成します。これを配布用のDBに格納し、ユーザーが閲覧できるようにします。前項で示した目標に対して、実際に作成された多段DBシステムは、ロボットが採取したデータをシステムにアップロードしてから、地図データ取得までを図11で示されるようなフローで構築した。各ポイントの説明は以下の通りです。2階の3D点群生成を行いました。実際に、台車システムを用いて3D計測を行っている映像は以下のようになります。]このように、LiDAR点群を取得し、そのデータをRDRで整理し、途中にROSベースのSLAM処理を施して、ノイズを除去すると、図13のように、3次元地図データを生成することができます。ステレオカメラとLiDARの対応関係を正しく計測できれば、図14のように、色付きの点群としてのマップを作ることも可能となりました。今後の課題2019年度ではLiDARの点群による地図生成を行っていましたが、実際にロボットが動作する場合は、高価なLiDARではなく、安価な単眼のカメラで動作することが多いので、LiDARの点群に、画像の特徴点を紐づけ、それをほかのロボットに適用して自己位置の推定と、経路計画に利用する計画です。屋内外の地図データをシームレスに結合し、GPS/非GPS環境下でのシームレスなロボットの運用が可能となるようなシステムを構築したいと考えています。目的RDRを用いた3Dマッピングの一例は、ロボットの『内界』と『外界』の観測を基に、外部環境を復元する試みでしたが、一方で、RDRには、外部からのロボットの観測情報も併せて含めることが可能です。このプロジェクトでは、異種複数ロボットの外部からの観測データ(固定カメラからの映像など)をクラウド環境上に配置されたDBに蓄積し、そのデータが利用できる環境を構築します。具体的には、映像データベースから、そのデータが撮られた場所と日時などの情報をメタ情報として付与し、映像データだけでなく、メタデータをRDRに蓄積して、そのメタデータ側から目的の映像区間を検索するシステムを構築することを目的としています。して取り出された区間でロボットがどのように動いたのかという情報を認識して、ロボットの内界・外界観測データと照らし合わせながら、正しくロボットが動いたのか、ロボットに実装するプログラムにバグがないかをテストする目的で利用することを想定しています。2019年度の取り組み2019年度では、まず動画検索システムで利用するためのデータとして、福島ロボットテストフィールドや会津大学ICTラボで撮影されたロボット動作動画をクラウドDBに蓄積する作業を行いました。クラウドDBから撮影場所と撮影日時の情報を別なDBに蓄積し、それらを基に検索し、検索結果の区間の動画を提供するシステム開発を行いました。図16は、本プロジェクトで構築するロボット監視映像データへのメタ検索システムの概略図です。動画には、EXIF情報というメタデータが含まれるので、それらを抽出し、映像情報からメタ情報を分離し、データベースに整理して蓄積します。それらを用いて、当該区間のビデオとメタデータを抽出し、それらをユーザーが閲覧できるようにローカルのディレクトリに切り出すというシステムを構築しました。以下の例は、実際に作製されたシステムを用いた一例になります。結果、DBに蓄積された動画の中から撮影場所と撮影日時の条件に該当する動画を検索することができた。今後の課題ロボットを監視する監視カメラのログとしての映像検索は、2018年度に画像特徴量を使った物体の類似検索、2019年度にメタデータを用いた検索を実装しましたが、RDRとの連携及び『ロボットの動作情報』を認識して検索することや、『ロボット自体の認識と自動的な分類』を行ってそれを検索に用いることなど、非常に多くの課題があります。作製されたシステムは、現時点ではそのままサービスインできるほどの通信基盤を得ていないので、アップロードの速度の向上や、データストアの柔軟なスケーリング、動画検索手法の多様化など、技術的課題も多く存在します。『人の介在しないところで動くロボットの管理・監視』のための検索・認識エンジンとして、利用価値の高いシステムであると考えているので、一つ一つ改善していきたいと思います。ラボ昨今ではロボットの自律走行において、LiDARを搭載することが必須事項となっています。パルスレーザーならびに散乱光により、障害物を避けた走行が可能になりますが、一方でガラス素材の対象物を空間であると誤検知してしまうことも少なくありません。熱情報データベータマップを構築します。人、ロボットなどへ得られた情報送信、通知することによる通行・移動の補助情報として活用できるか検証を行っています。一般的なサーモパイルセンサがセンサ内部に1つの素子しか無いのに対して、サーモパイルアレイセンサは複数の素子がセンサ内部に整列して搭載されているため、8×8解像度の熱データを取得できます。サーモデバイスを、小型デバイスのマイコンボードへ搭載し温度データを保管。小型デバイスを天井ならびに壁へ設置し、室内の空間データ生成します。(画素拡大)やノイズ除去処理を組み込み、オリジナルデータに対し16×16、32×32とした、高解像度化による詳細データを再構築します。3Wi-Fiによるデータ送信サーモアレイセンサーから収集した情報はWi-Fiによる無線通信にて熱信号データを逐次RDRへ送信します。実施概要サーモセンサーユニット4台をLictia1Fへ設置し、センサー毎の温度を得る実験を行いました。24:実験風景・カメラとサーマルデータを重ね合わせた画像・実際にアップロードされた映像0.5度単位でサーモデータを取得することが確認できました。1sec毎に温度データをリクエストするため、熱源物体(人など)の通過を捉えることができ、移動体検知の通知に応用ができると考えられます。開発ツール/フレームワーク。