最新情報 2021.07.06
ウェビナー:ROS(Robot Operating System)による迅速なロボット試作
はじめに
今や私達は新型コロナウイルスがもたらした、医療体制や教育現場、建設業界などへの様々な影響により、2018年や2019年と比較して大変違った生活を送るようになっています。新型コロナウイルスの影響は、多くの業界にマイナスな結果をもたらしましたが、一方特定な業界へはプラスに働き多くの成長した産業も多くあります。
新型コロナウイルスにより、ヘルスケアやその他の業界でロボットの使用が増加しているため、ロボティクス業界は現在、驚異的な成長をしています。
倉庫業界について
驚異的な成長を遂げた他の業界は、相互に依存しているeコマース業界と倉庫業界です。ただし、eコマース・プラットフォームで顧客からの注文数が増加していることを考えると、すべての倉庫が大規模な取引を処理するように設計されているわけではありません。
倉庫の能力を高めるための最も簡単な方法は、従業員の数を増やすことです。ただし、これにより、会社の全体的なコストが増加します。 コストの増加を避けるために、いくつかの会社はシステムの効率を改善するための新しい方法を見つけようとしています。
調査によると、運用時間の50%は荷物の運搬に使われています。運搬での効率を改善できれば、全体的なコストへの影響は大幅に削減できます。ここでロボティクスが大きな役割を果たします。
自律移動ロボット
ここでは、移動ロボットのコンセプトをご紹介します。
移動ロボットには、AMRとAGVの2種類あります。使用されている業界に応じて、これらのロボットは他のアプリケーションの中でも、荷物の運搬や仕分けなど倉庫内の多くのタスクを管理できます。これらの移動ロボットを使用することで、多くの時間を節約できます。
AGVと比較してAMRは、そのダイナミック(動的)な性質による 拡張性とコストの点で優位に立っています。
AGV(Automated Guided Vehicle)は、倉庫または製造環境で荷物を運搬するように事前にプログラムできる産業用車両です。
- 従来からある、倉庫のフロアの上または下に設置された磁気ストリップ及びワイヤーによって誘導される方式です。
- ナビゲーションガイドの設置が必要で、施設の大幅な改修が必要になる場合があります。
- AGVの運用パターンを変更するには、導入プロセス全体を再度行う必要があります。
- 限られた環境、ワークフローでの運用で、柔軟性はありません。
AMR(Autonomous Mobile Robot)は、搭載されたセンサーとプロセッサーを使用して、物理的なガイドやマーカーを必要とせずに、荷物を自律的に移動させる車両です。 環境を学習し、場所を記憶し、あるウェイポイント(環境内の場所または目的地)から別のウェイポイントへの独自のルートを動的に計算します。
- LiDARセンサーや SLAM などのテクノロジーを使用して、AMRはウェイポイント間の最適なルートを決定します。
- 優れたAMRは箱から出して15分以内に稼働させることができます。
- AMRは現在の条件と要件に基づいて最短ルートを動的に計算します。作業が日ごとに変わる場合でも、AMRのルートもそれに伴って変わります。
- AMRは障害物や塞がれたルートを自動的に検知して回避し、ウェイポイントへの最適なルートを見つけます。
AMRは、周囲を判断して倉庫内のルートを計画できるため、インテリジェント(知的)であり、業界での展開がより安全になります。AMRは、フロアマップを使用して、倉庫や障害物をナビゲートします。したがって、AMRを新しい倉庫、倉庫のアップグレードまたは再設計で機能させるに為に必要なことは、倉庫のフロアマップの更新のみです。
AMRに関して、倉庫にはいくつかの主要な「コーナー・ケース」があります。
- 混雑している倉庫をナビゲートすること
- ロボットと外部デバイスの同期
- ロボットのオリエンテーション
- 障害物の 回避
- 人(間)への安全性
これらのケースのうち、ロボットのオリエンテーションに注目します。
コーナー・ケース:ピックアップ及びデリバリー時のロボット・オリエンテーション
下の画像では、ロボットが荷物をフロアの投入口に落としているところを見ることができます。ただし、ロボットがドロップ・オフ位置に到達し、90度ずれてから荷物をドロップした場合、荷物は目的の投入口に落下せず、フロアに落下します。この状況を避けるため、ピック・アップ及びデリバリーのとき、ロボットのオリエンテーションが非常に重要となります。
ガゼボ・シミュレーターを使用した通常の倉庫
上の画像は、ガゼボ・シミュレーターを使用して作成された倉庫の通常の姿です。フロアと棚にたくさんの荷物が置かれているのを見ることができます。また、倉庫フロアでのユース・ケースのデモに使用される「位置A」に置れたロボットを見ることができます。
次に、使用されるハードウェアについてご説明します。
ハードウェア・アーキテクチャ
シミュレータで使用するハードウェアは「PioneerP3-dx」です。これは、配備される要件や状況に応じて、カメラ、レーダー、IMU、近接センサーなどのセンサーで構成されている移動ロボットです。これらはすべて、センサーとのインターフェースが可能な組み込みハードウェアに接続されており、同組み込みハードウェアはバックグラウンドでアプリケーションを実行します。また、これらのコンポーネントを倉庫内で移動させるモバイルベース(車輪部分)があります。
ここまでAMRに関するユース・ケースとコーナー・ケースを見てきました。それでは、AMRの開発をよりシンプルかつ迅速に行う方法を見ていきましょう。
ROS: Robot Operating System
ROSは、さまざまなプロセスが相互に通信するためのパイプラインを作成するファームウェアまたはミドルウェアです。ここではプロセスは「ノード」と呼ばれて、各ノードはトピックとメッセージを使用して通信します。ROSは、そのスケーラビリティと大規模な開発者コミュニティにより、ロボティクスで広く使用されています。ROSはオープン・ソース・プラットフォームであるため、ROSに関する多くの情報・資料がオンラインで参照可能です。
上記には、「ROSマスター」と2つのノードである「パブリッシャー」と「サブスクライバー」が存在するシンプルな ROS ツリーがあります。ここで、ROSマスターは2つのノード間の通信を開始します。こうして、2つのノードは、ROS メッセージを使用してROSトピックを介して相互に通信します。
自律移動ナビゲーション
これは、ROSがどのように機能するかを説明する単純なツリーです。
最初最初のフェーズは自律移動ナビゲーションです。目的は、ロボットを位置Aから位置Bの離れた箇所へ、自動的にルートを計算し移動させることです(自律移動ナビゲーション)。
これは、ROSナビゲーションスタックを使用して処理します。
B → B’ は、後のセクションで説明するレーン検出行程で、アクションサーバーによって処理されます。
フロアマップの作成
ナビゲーションに進む前に、フロアのマップを作成する必要があります。マップ作成は、manual mapping(手動)と exploratory mapping(探索的)の2つの方法があります。
manual mapping では、LIDARまたはセンサーを使用してデータが収集され、アルゴリズムを使用してマップが作成されます。テレオペレーションは、ロボットを倉庫のフロアをマニュアルで移動させ、データを収集するために使用されます。
exploratory mapping では、ロボット自身で倉庫のフロアを移動しマッピングします。
manual mapping と exploratory mapping の両方に、使用される場所(屋内、屋外)に応じて、適したメソッドとアルゴリズムがあります。
今回のシミュレーションでは、数ある屋内向けのマッピング・アルゴリズムの中から、SLAM(Simultaneous localization and mapping) を使用しました。他に良く使用されている屋内向けのアルゴリズムは、Hector、Slam Cartographer、G-mapping、ORBSlam があります。
ROS ナビゲーション・スタック
ナビゲーション・スタックは、4つの主要なブロックに分かれています。
- Sensory block
- Move base
- Base controller
- Maps server
Sensory block は、LIDARまたは 3DCAM で構成され、周囲のデータを収集し Move base ノードに送ります。
Move base ブロックは、ロボットのルートを計算する ブロックです。Move base 内には、local_planner と global_planner と呼ばれる2つのノードがあります。
local_planner は短距離のルート を計算し、global_planner はグローバル空間(位置Aから位置Bに移動するためのおおよその方向)のルートを計算します。たとえば、ロボットのルートに障害物があった場合、local_planner は、グローバルパス(ルート)を参照して障害物を回避するために、代替のルートを計算します。
同時に、これらの2つのプランナーは、移動速度コマンドを base controller ノードへ与えます。
Maps server ブロックは、プランナーがグローバル・スペースとローカル・スペースでルートを計算できるように、前の段階で作成されたマップをパブリッシュします。このような4つのブロックを、ROSでは「ナビゲーション・スタック」と呼ばれています。
レーン検出
次のフェーズはレーン検出です。
ここでは、ロボットはビジョン・センサーを使用しています。ビジョン・センサーは、倉庫の フロアから視覚情報を収集するために使用されるカメラです。この視覚情報は、処理ノード送られ、レーンの検出、ロボットの向きを修正します。
最初のステップとして、ロボットは位置Bから位置B’ に移動します。クライアントは、アクション・クライアント・サーバー ・メソッドを使用して、アクション・サーバーに目標 B’ の情報を与えます。
アクション・サーバーは、B から B’ へ移動中、フィードバック・メッセージでクライアントを更新し続けます。
この間、ロボットは画像処理とPIDのアルゴリズムを使用して、床に設けられた赤いレーンに完全に一致するようにロボットをオリエンテーションし、荷物を収集するようにロボットをオリエンテーションします。B’ の位置に到着すると、アクション・サーバーは、目標が達成されたことをアクション・クライアントにフィードバックします。
次のステップは、ロボットを B’ から B に戻すことです。そのため、同じアクション・サーバーが使用されます。ロボットの動作は フィードバック・メッセージを使用して再び更新され、位置Bに到着すると、目標に到着したという結果がパブリッシュされます。
次に、ロボットは、オペレーターから提供された次の目的地に移動します。
RQT グラフツール
RQTグラフツールは、ROSの開発中に役に立ちます。RQTグラフは、現在利用可能なライブ・ノードを表示できるダイナミック・ウィンドであり、これらのノードは、メッセージが渡されている場所または相互接続(インターコネクト)が何であるかを示します。これはトラブルシューティングに非常に役立ちます。
RQTグラフを使用して、アクティブまたは非アクティブなノードを確認します。このグラフから多くの情報を収集できます。
RVIZツール
次はRVIZです。これは様々なセンサーやデータを視覚化するツールです。右に生成させた地図が表示され、その地図には赤い点でレーザーデータが表示されています。左側は、マップパス、レーザースキャンなどの様々なパラメーターが表示されます。(これはパブリッシュされた新しいデータです)
ここで、プランナーによって生成されたレーザー・スキャンまたはルート(パス)を追加できます。RVIZツールは、レーンの検出に使用されたカメラ画像を視覚化するためにも使用でき、非常に便利なツールです。
ガゼボ・シミュレーター
次はガゼボ・シミュレーターです。これは非常に強力なシミュレーターであり、物理エンジンを備えています。重力または慣性は実世界のように定義でき、ガゼボ内でシミュレートできます。
ここでの基本的なコンセプトは、ロボット、棚、荷物などのモデルを作成することです。モデルが何であれ、実世界のオブジェクトと同じように作成する必要があります。したがって、ガゼボシミュレーターは、アルゴリズムをシミュレートしたり、費用をかけずに多くのテストを実行できるツールです。
ガゼボシミュレーターは、あらゆるロボットや状況をシミュレートするために使用でき、怪我やシステム障害などのリスクなしに、アルゴリズムを複数回実行できます。設計されたアルゴリズムは、RVIZとガゼボによって評価でき、選択した任意のシナリオをシミュレートできます。RQTグラフを使用して、ROSアーキテクチャのトラブルシューティングを行うこともできます。
また、ROSにはさまざまなツールがあり、ロボットやプロトタイプを非常に迅速に開発することができます。
詳細については、弊社までお気軽にお問い合わせください。
イグニタリアムでは、ビジョンAIの専門知識、エッジ・デバイス用の低レベル・ソフトウェアの作成、またディープ・ラーニングの専門知識があり、これは、弊社のロボティクスでソフトウェア製品を構築するための適切なチームを作成するのに役立ちました。弊社では、ROS、センサー・フュージョン、経路計画、ナビゲーション、ダイナミック(動的)障害物の検出と回避、および知覚エンジニアリングの分野で機能を備えています。
イグニタリアムのロボティクス・ソフトウェア製品の詳細については、ロボティクスのホーム・ページをご覧いただくか、お問い合わせフォームよりご連絡ください。