以下、ハンドリングシステムの例示的な実施形態が開示される。以下に示される実施形態の構成や制御(技術的特徴)、ならびに当該構成や制御によってもたらされる作用および結果(効果)は、一例である。
[ハンドリングシステムの概要]
図1は、実施形態のハンドリングシステム1の概要を示す。図1に示されるように、ハンドリングシステム1は、ロボット統合管理システム100、外部システム310、上位システム320、ロボット200、およびマテリアルハンドリング機器250を備えている。ハンドリングシステム1は、物体ハンドリングシステムや、アイテムハンドリングシステムとも称されうる。
外部システム310は、例えば、自動倉庫や、外部搬送装置等である。また、上位システム320は、例えば、倉庫管理システムや、在庫管理システム、輸送管理システム等である。
ロボット統合管理システム100には、複数のロボット200(自動化ロボット)や、コンベアシステムや昇降システムのようなマテリアルハンドリング機器250の他、OCRのような情報読み取り検査システムや、ソーティングシステム等(不図示)が接続されている。ロボット統合管理システム100は、ロボット管理システムの一例である。
ロボット統合管理システム100は、外部システム310からの対象物10の移送や、外部システム310への対象物10の移送に際し、上位システム320と連携して、対象物10のハンドリングを実行するよう、上述した接続されたシステムや機器を、統合的に管理あるいは制御する。具体的に、ロボット統合管理システム100は、例えば、各種のアイテムや、製品、荷物、箱のような対象物10について、搬送、ピッキング、箱詰め、荷降ろし、荷積み、開梱、検査、検品等の処理を実行するよう、ロボット200やマテリアルハンドリング機器250を制御する。アイテムは、対象物10の一例であり、物品や物体とも称される。また、ロボット200およびマテリアルハンドリング機器250は、ロボットシステムとも称されうる。
ロボット統合管理システム100は、マスタ装置110、複数のスレーブ装置120、および統合管理データベース130を備えている。
マスタ装置110は、外部システム310と統合管理データベース130とのインタフェースとして機能する。また、マスタ装置110は、ロボット200やマテリアルハンドリング機器250のような異なる装置間でのアイテムの搬送のようなオペレーションを実行したり、当該オペレーションの最適化を実行したりする。
スレーブ装置120は、それぞれ、ロボット200やマテリアルハンドリング機器250と接続され、当該接続された機器を管理または制御する。
マスタ装置110は、ロボット統合管理システム100に接続される装置を切り替える際には、制御対象としてのスレーブ装置120を切り替えることにより、マスタ装置110や統合管理データベース130の変更を最小限に抑えることができる。
[ロボット統合管理システムの概要]
図2は、ロボット統合管理システム100の構成を示す。図2に示されるように、ロボット統合管理システム100は、データ管理部100a、データ解析部100b、オペレーション部100c、サービス・UI部100d、業務管理部100e、およびSoS_API100fを備えている。
データ管理部100aは、データベースを管理する、言い換えると統合管理データベース130についてデータの取得、保存、および更新を実行する。
データ管理部100aが管理する統合管理データベース130は、統合管理データベース130と称されうる。統合管理データベース130は、例えば、アイテムデータ、ロボットデータ、エンドエフェクタデータ、および稼働データを含む。
アイテムデータは、端末としてのロボット200やマテリアルハンドリング機器250が処理するアイテムの情報である。
ロボットデータは、ロボット200の情報であり、エンドエフェクタデータは、ロボット200の一部としてのエフェクタの情報である。エンドエフェクタ220は、ハンドとも称されうる。
稼働データは、例えば、ロボット200の稼働状況やアイテムの処理結果等のような、システムの運用中に発生する情報である。
データ解析部100bは、データ管理部100aから必要なデータを取得し、オペレーション部100cによるオペレーションの実行に必要となるデータ解析を実行する。データ解析部100bの解析によって得られたアイテム(対象物10)に関連付けられたデータは、第二データの一例である。
オペレーション部100cは、データ更新オペレーション、および動作指令オペレーションを実行する。
オペレーション部100cは、データ更新オペレーションにおいては、データ解析部100bでの解析に基づいて、データベースに保存されたデータの成否を判断して当該データを取捨選択したり、複数のデータから新たなデータを生成したりすることにより、データベースのデータを更新する。
オペレーション部100cは、動作指令オペレーションにおいては、データ解析部100bでの解析結果に基づいて、ロボット200やマテリアルハンドリング機器250のそれぞれの稼働状態を制御したり、ロボット200やマテリアルハンドリング機器250のそれぞれに投入するアイテムを制御したり、投入するアイテムに合わせて各ロボット200のエンドエフェクタ220を変更したり、各ロボット200に動作モードの指示を出したりすることで、ロボットシステムやマテリアルハンドリング機器250の制御を実行する。
サービス・UI部100dは、ユーザインタフェースを介して、データ管理部100aに対するデータの入出力を行ったり、データ解析部100bで実施された解析に基づいてメンテナンス情報を外部に提供したり、現場改善情報を外部に提供したりする。また、サービス・UI部100dは、データ管理部100aおよびデータ解析部100bからの情報に基づいて、オペレーション状態を可視化する機能や、遠隔オペレーションを実現するオペレーションデータを受信あるいは送信するオペレーションUI機能を有してもよい。
業務管理部100eは、サービス・UI部100dやデータ管理部100aのデータを活用して、computer aided engineering(CAE)や、製品ライフサイクル管理(PLM)、enterprise asset management(EAM)のような機能を実行する。
system of systems application programing interface(SoS_API100f)は、warehouse management system(WMS)や、manufacturing execution system)、TMS(transportation management system(MES)等の外部のITシステムに接続するためのインタフェースを提供する。
[ピッキングロボットシステムの概要]
図3は、ピッキングロボットシステム2の概略構成図である。ピッキングロボットシステム2は、コントローラ201、ロボット200、センサ230、筐体240、およびマテリアルハンドリング機器250を、備えている。ピッキングロボットシステム2は、対象物10を把持位置Phで把持して搬送し、解放位置Prで解放する。このような動作は、対象物10の搬送、あるいは対象物10のピッキングと称されうる。ロボット200は、マニピュレータとも称されうる。また、コントローラ201は、ハンド制御装置とも称されうる。
ロボット200は、アーム210と、エンドエフェクタ220と、を備えている。
アーム210は、例えば、複数(例えば6個)のサーボモータで回転駆動される回転部210a〜210fを有した多関節ロボットである。アーム210は、これには限定されず、スカラロボットあるいは直動ロボットであってもよい。また、アーム210は、多関節ロボット、スカラロボット、および直動ロボットのうち少なくとも二つの組み合わせであってもよい。アーム210は、可動部の一例である。なお、ロボット200は、ロボットアームとも称されうる。
エンドエフェクタ220は、一例としては、図3に示されるような吸着機構を有するが、これには限定されず、例えば、ジャミング機構、挟み込み機構、または多指機構を有してもよい。また、エンドエフェクタ220は、吸着機構、ジャミング機構、挟み込み機構、および多指機構のうち少なくとも二つを有してもよい。なお、エンドエフェクタ220は、ハンドとも称されうる。
センサ230は、力センサ231の他、回転部210a〜210fに設けられるモータの、トルクセンサや、回転センサ、電流センサであってもよい。コントローラ201は、エンドエフェクタ220に作用する力を、力センサ231の検出値から得てもよいし、各モータの電流値や回転値(回転センサの検出値)から算出してもよい。
また、図3に示されるように、ピッキングロボットシステム2は、複数のカメラ232を備えている。カメラ232は、センサ230の一例であり、画像センサとも称されうる。カメラ232は、例えば、RGB画像カメラや、距離画像カメラ、レーザーレンジファインダ、laser imaging detection and ranging(LiDAR)など、画像情報や距離情報(3次元情報)を取得可能なセンサである。カメラ232は、観測部の一例である。
また、センサ230による対象物10の計測によって得られたデータは、第一データの一例である。
ピッキングロボットシステム2は、カメラ232として、例えば、把持用のカメラ232a、把持状態確認用あるいはキャリブレーション用のカメラ232b、解放用のカメラ232c、および仮置き用のカメラ232dを、備えている。
把持用のカメラ232aは、把持(搬出)する対象物10が存在している把持位置Phにおいて、対象物10およびその周辺領域を撮影かつ検出する。当該把持位置Phにおいて、対象物10は、例えばコンテナやパレットのような把持用の容器11a内に収容されている。その場合、把持用のカメラ232aは、容器11a内の一部または全部を撮影かつ検出する。把持位置Phは、対象物10の移動開始位置や出発位置とも称されうる。なお、図3では、容器11aは、例えばベルトコンベアのような搬送機構としての容器搬送部251上に載置されているが、これには限定されない。容器搬送部251は、マテリアルハンドリング機器250の一例である。容器11aは、物品容器や搬入容器とも称されうる。
キャリブレーション用のカメラ232bは、把持用の容器11a外であるとともに把持位置Phよりも上方に設定された対象物10のキャリブレーション位置において、対象物10を撮影かつ検出する。
解放用のカメラ232cは、対象物10を解放(搬入)する解放位置Prにおいて、当該解放位置Prおよびその周辺領域を撮影かつ検出する。解放位置Prにおいて、対象物10は、例えばコンテナやパレットのような解放用の容器11b内に収容される。その場合、解放用のカメラ232cは、容器11b内の一部または全部を撮影かつ検出する。解放位置Prは、対象物10の移動終了位置や到着位置とも称されうる。なお、図3では、容器11bは、例えばベルトコンベアのような搬送機構としての容器搬送部252上に載置されているが、これには限定されない。容器搬送部252は、マテリアルハンドリング機器250の一例である。容器11bは、集荷容器や搬出容器とも称されうる。
仮置き用のカメラ232dは、把持位置Phと解放位置Prとの間で対象物10を一時的に置いておく仮置位置Ptおよびその周辺領域を撮影かつ検出する。仮置位置Ptにおいて、対象物10は、例えばテーブルやステージのような仮置き面260上に置かれる。その場合、仮置き用のカメラ232dは、仮置き面260の一部または全部を撮影かつ検出する。仮置位置Ptは、対象物10の途中位置や経由位置とも称されうる。なお、仮置位置Ptは、載置面で無くてもよい。
また、ピッキングロボットシステム2は、センサ230として、対象物10の重量を計測する重量計233を備えてもよい。重量計233は、把持位置Phにおいて対象物10の重量を計測する重量計233aと、解放位置Prにおいて対象物10の重量を計測する重量計233bと、を含む。
筐体240内には、例えば、モータのような電動アクチュエータを駆動させるための電源装置や、流体アクチュエータを駆動させるためのボンベ、タンク、コンプレッサー、ユーザインタフェース、各種安全機構など、ピッキングロボットシステム2の種々の部品や機器類が収容されうる。なお、筐体240内には、コントローラ201が収容されてもよい。
図4A〜図4Dは、ロボット200で使用可能なエンドエフェクタ220の例を示す。図4A〜図4Cは、吸着式のエンドエフェクタ220A〜220Cを例示する。図4Aのエンドエフェクタ220Aは、屈曲部220bを有しているが、図4Bのエンドエフェクタ220Bおよび図4Cのエンドエフェクタ220Cは、屈曲部220bを有していない。図4Bのエンドエフェクタ220Bは、一つの吸着パッド220aを有するのに対し、図4Aのエンドエフェクタ220Aおよび図4Cのエンドエフェクタ220Cは、複数の吸着パッド220aを有している。また、図4Dは、把持式のエンドエフェクタ220Dを例示する。エンドエフェクタ220Dは、複数のフィンガー220cを有した挟持機構を有している。
ただし、エンドエフェクタ220は、図4A〜図4Dの例には限定されない。例えば、エンドエフェクタ220は、伸縮機構を有してもよい。エンドエフェクタ220における吸着パッド220aの大きさや、数、位置のようなスペックは、種々に変更することができる。力センサ231はアーム210の先端に設けられてもよい。エンドエフェクタ220は、力センサ231以外のセンサ230を有してもよい。エンドエフェクタ220に屈曲部220bを動かすアクチュエータとしてのモータのトルクを計測するトルクセンサが設けられてもよい。また、コントローラ201は、モータの電流値やエンコード信号から、エンドエフェクタ220に作用する力を検出したり推定したりしてもよい。
図4Eは、エンドエフェクタ情報の例を示す。エンドエフェクタ220には、それぞれ、エンドエフェクタIDが付与されている。エンドエフェクタ220の特徴情報には、エンドエフェクタ220のタイプ、関節情報、吸着パッド数、吸着パッド情報、フィンガー数、フィンガー情報、外形情報、力センサ231の有無の区別、等がある。特徴情報を示すデータは、それぞれ、エンドエフェクタIDに対応付けて、統合管理データベース130に記憶されている。ロボット200は、アーム210に、複数の異なるエンドエフェクタ220を交換して装着できるよう、構成されている。エンドエフェクタチェンジャ(不図示)は、ロボット統合管理システム100からの指示にしたがって、エンドエフェクタ220を交換することができる。
[ピッキングロボットシステムのコントローラ]
図5は、コントローラ201のブロック図である。コントローラ201は、例えば、統合部201a、画像処理部201b、信号処理部201c、把持計画生成部201d、解放計画生成部201e、動作計画生成部201f、ロボット制御部201g、周辺機器・I/O制御部201h(I/O:インプットアウトプット)、学習制御部201i、エラー検出部201j、および内部データベース201kを有している。コントローラ201は、制御装置とも称されうる。
統合部201aは、ロボット統合管理システム100からの入力情報や、ピッキングロボットシステム2の状態、センサ230による検出値に基づいて、ピッキングロボットシステム2の作業計画の生成や、運用、管理を実行する。
画像処理部201bは、カメラ232から得られた画像や情報(検出値)を処理し、動作計画や、動作制御、エラー検出、学習等に必要な情報を生成する。
信号処理部201cは、センサ230から得られた情報(検出値)を処理し、動作計画や、動作制御、エラー検出、等に必要な情報を生成する。
把持計画生成部201dは、ロボット200による対象物10の把持方法や、把持位置Phや把持姿勢、必要な個所が周囲環境に干渉することなく把持位置Phおよび把持姿勢に移動可能な経路および経由点を算出する処理を、実行する。ここで、必要な個所とは、例えば、ロボット200の全体やアーム210等の一部である。一方で、本実施形態のピッキングロボットシステム2では、力の制御が可能であるため、吸着パッド220aや弾性関節部などある程度の柔軟性を持つ部分に関しては、多少の接触を許容してもよい。
解放計画生成部201eは、ロボット200が把持した対象物10を容器140bに箱詰めしたり設置したりする場所における例えば押し付けのような設置方法や、把持方法、解放方法、解放位置Prや解放姿勢、必要な個所が周囲環境に干渉することなく解放位置Prおよび解放姿勢に移動可能な経路および経由点を算出する処理を、実行する。解放計画生成部201eは、計画生成部の一例である。なお、解放姿勢は、解放する直前までの把持姿勢と略同じである。
動作計画生成部201fは、統合部201aからの指示にしたがって、ロボット200が現在位置から移動可能な経路(経由点)を経由して把持位置Phや、仮置位置Pt、解放位置Pr等に移動するよう、動作方法や、動作速度、動作経路等のロボット動作情報の算出を実行する。
ロボット制御部201gは、把持計画生成部201d、解放計画生成部201e、あるいは動作計画生成部201fで生成されたロボット動作情報および統合部201aからの各種の動作切り替え指示等にしたがって、ロボット200を含むピッキングロボットシステム2を制御する。また、ロボット制御部201gは、統合部201aから取得した各種姿勢情報や軌道計画情報等に従い、ロボット200を制御する。
周辺機器・I/O制御部201hは、各種搬送機器の制御や、安全ドアなどの周辺機器400の制御、各種センサ情報の取得、照明の制御等のための、インプットアウトプット(I/O)制御を実行する。
学習制御部201iは、ロボット200の振動抑制など動作精度向上のためのロボットモデル学習や、対象物10の把持性能向上のための把持制御パラメータ学習、把持データベース学習、作業計画の実施性能を向上のためのエラー検知学習、等の学習機能を制御する。本実施形態では、力制御において、状況に応じてパラメータの最適な値が選択される。これらの値は人間が経験値から設定してもよいが、機械学習の結果を適用することで、より省力化しながら、より効率の高い処理を実現することができる。
エラー検出部201jは、ピッキングロボットシステム2の状態、作業計画の実施状態、駆動制御状態、対象物10の把持、搬送の状態等を観測し、エラーを検知する。このエラー検知は、例えば、力センサ231の出力や当該出力を手先座標に変換した値、それらの値をローパスフィルタに通したものを観測し、既定の値を超えたらエラーと判断することで実現できる。この結果、処理中の作業を中断し、その後リカバリ動作に移るなどの処理が可能となる。
内部データベース201kは、例えば、ロボットデータベース、ハンドデータベース、アイテムデータベース、把持データベース、および環境データベース(いずれも不図示)を含んでいる。
ロボットデータベースには、例えば、ピッキングロボットシステム2の構造、各部の寸法や重量、慣性モーメント、各駆動部の動作範囲や速度、およびトルク性能が、保存されている。
エンドエフェクタデータベースには、例えば、エンドエフェクタ220の機能、およびエンドエフェクタ220の把持の特性に関する情報が、保存されている。
アイテムデータベースには、例えば、対象物10の名称、識別番号、カテゴリ、全面の画像情報、CADモデル情報、重量情報、および把持時の特性情報(柔らかい、壊れやすい、形が変わる等)が、保存されている。
把持データベースには、例えば、対象物10について、エンドエフェクタ220の把持方法ごとに、把持可能位置、把持可能姿勢、把持のしやすさなどのスコア情報、把持時の押し込み可能量、把持判定のための判定閾値、およびエラー検知のための判定閾値が、保存されている。ここで、把持方法は、例えば、吸着方式、並行2指方式、平行4指方式、または多関節方式である。
環境データベースには、例えば、ピッキングロボットシステム2が対応している作業台情報、およびピッキングロボットシステム2の動作範囲や周囲の障害物Oを示すような周囲環境情報が、保存されている。
学習制御部201iでの学習結果や、内部データベース201kの情報は、逐次、ロボット統合管理システム100のデータ管理部100aと関連付けられたロボット統合管理システム100の統合管理データベース130の情報と共有される。
このような構成において、オペレーション部100cは、データ管理部100aで管理されている統合管理データベース130におけるデータの有無やデータ量に応じて、ロボット200の動作モードの変更やエンドエフェクタ220の交換を、コントローラ201に指示する。コントローラ201は、当該指示にしたがって、対象物10に対する処理内容を変更する。すなわち、本実施形態では、ロボット200の動作は、統合管理データベース130におけるデータの蓄積状態に応じて変化する。
本実施形態のハンドリングシステム1では、データ管理部100aによって管理されている統合管理データベース130におけるデータの記録状態、言い換えると、記録されているデータの種別や、データの有無、データのステータス、データの値、等に基づいて、オペレーション部100cは、ロボット200の動作モードの変更やエンドエフェクタ220の交換指示を実行する。そして、ロボット200は指示内容にしたがって、ハンドリング対象に対する処理内容を変更する(データベースのデータの記録状態でロボット動作を切り替え)。
[統合アイテムデータベースおよび状態遷移]
図6は、統合管理データベース130のコンテンツのひとつである統合アイテムデータベースのデータの記録状態およびエンドエフェクタ220の設定に関する状態遷移図を示す。また、図7Aおよび図7Bは、統合アイテムデータベースのレコードの例を示す。アイテムは、エンドエフェクタ220による処理の対象物10の一例である。統合アイテムデータベースのレコードは、アイテムID毎に生成される。
図7Aは、アイテム情報テーブルと称される。アイテム情報テーブルは、ステータスや、アイテムの分類であるアイテムタイプ、アイテム重量の他、各種の取り扱いフラグ等について、情報(データ)のフィールドを有している。また、図7Bは、エンドエフェクタ情報テーブルと称される。エンドエフェクタ情報テーブルは、アイテムの各把持面について、把持面のサイズや、各エンドエフェクタ220の適合性等について、情報(データ)のフィールドを有している。
図6に示されるように、統合アイテムデータベースは、基本状態として、「ST1:アイテム初期登録状態」、「ST2:エンドエフェクタ仮決定状態」、「ST3:エンドエフェクタ確定状態」、「ST4:ハンドリング非対応」を有するとともに、それら基本状態の間の中間状態として、「ST5:アイテム登録更新中状態」、「ST6:モデル更新中状態」、「ST7:エンドエフェクタ登録更新中状態」、および「ST8:新エンドエフェクタ更新中状態」を有しており、統合アイテムデータベースは、これら八つのステータスの間で遷移する。なお、本実施形態では、データ管理部100aが、統合アイテムデータベースの記録の登録や書き換え等を実行する。
「ST1:アイテム初期登録状態」は、データ管理部100aが、処理対象のアイテムに対し、新たなアイテムIDを発行し、新規にレコードを生成した状態である。
「ST2:エンドエフェクタ仮決定状態」は、データ管理部100aが、処理対象のアイテムに対し、当該アイテムを把持できる可能性のあるエンドエフェクタ220を一つ以上仮登録した状態である。エンドエフェクタ仮決定状態は、第一状態の一例である。
「ST3:エンドエフェクタ確定状態」は、処理対象のアイテムのピッキング動作が一回以上実行され、データ解析部100bが、当該アイテムの形状情報を取得する等のモデル化を完了し、データ管理部100aが、当該アイテムを把持するのに適したエンドエフェクタ220を確定した状態である。エンドエフェクタ確定状態は、第二状態の一例である。
「ST4:ハンドリング非対応」は、データ解析部100bが、処理対象のアイテムのロボット200によるピッキングが困難であると判定し、ロボット200によるハンドリングを実行しないことを決定した状態である。
「ST5:アイテム登録更新中状態」は、データ解析部100bが、処理対象のアイテムについて、当該処理対象のアイテムが撮影された情報等に基づいて、エンドエフェクタ220のそれぞれについて把持できる可能性を、計算機上で演算しかつ評価し、かつデータ管理部100aが、レコードの状態を変更している途中の状態である。
「ST6:モデル更新中状態」は、データ解析部100bが、複数回のピッキングにおいて計測された処理対象のアイテムの形状に基づいて、当該アイテムのモデル化を行い、かつデータ管理部100aが、レコードの状態を変更している途中の状態である。
「ST7:エンドエフェクタ登録更新中状態」は、データ管理部100aが、モデル化されたアイテムのデータに基づいて、処理対象のアイテムの把持に適したエンドエフェクタ220やアイテムの把持面毎に適したエンドエフェクタ220の情報を変更している状態である。
「ST8:新エンドエフェクタ更新中状態」は、データ管理部100aが、モデル化されたアイテムのデータのデータおよび実際の把持の成功や失敗などの稼働データに基づいて、新たなエンドエフェクタ220に関連した情報を変更している状態である。
[ピッキング統合管理処理]
図8は、ハンドリングシステム1による新規アイテムの登録からピッキングまでの手順、および統合アイテムデータベースの更新の手順を示すフローチャートである。
S0−1のステップにおいて、ロボット統合管理システム100は、SoS_API100fを通して、WMSのような外部システム310からピッキング作業指示を受ける。オペレーション部100cは、受信したピッキング作業指示データを、データ管理部100aで管理されている統合管理データベース130の情報と照合する。ピッキング作業指示のあったアイテムが未登録アイテムであった場合、データ管理部100aは、新規アイテムIDを発行し、統合管理データベース130の統合アイテムデータベースにレコードを追加する。この際、データ管理部100aは、統合アイテムデータベースのステータスのフィールドを「ST1:アイテム初期登録状態」に設定する。
S0−2のステップにおいて、オペレーション部100cは、複数のロボット200のうち作業指示受付が可能なロボット200のコントローラ201に、撮影登録モードを実行するよう指示を出すとともに、マテリアルハンドリング機器250に対して、当該ロボット200の容器搬送部251に容器11aを移動するよう、指示を出す。指示を受けたコントローラ201は、撮影登録モードによる動作を実行する。この動作では、ロボット200は、指定されたアイテムのピッキング動作は行わず、カメラ232によるアイテムの撮影と、把持計画等の計画作成を実行する。そして、コントローラ201は、撮影データおよび作成された計画等の関連情報を、ロボット統合管理システム100に返信する。データ管理部100aは、受信したデータに基づいて、統合アイテムデータベースにおける当該アイテムIDに対応するレコードを更新する。この更新作業中は統合アイテムデータベースの状態は「ST5:アイテム登録更新中」の状態である。撮影登録モードは、動作モードおよび第一モードの一例であって、形状登録モードは、動作モードおよび第二モードの一例である。
S0−3のステップにおいて、データ解析部100bは、統合管理データベース130の情報を用いて、当該アイテムを処理可能なエンドエフェクタ220を仮決定するためのエンドエフェクタ仮決定処理を実行する。このエンドエフェクタ仮決定処理において、データ解析部100bは、把持計画に対応した各エンドエフェクタ220による把持の評価値に基づいて、最も安定して把持できる可能性のあるエンドエフェクタ220をプライマリエンドエフェクタと仮決定し、当該プライマリエンドエフェクタよりも評価値は低いものの把持できる可能性のあるエンドエフェクタ220をケイパブルエンドエフェクタと仮決定する。
データ解析部100bが、S0−3の仮決定処理において、処理可能なエンドエフェクタ220が無いと判断した場合(S0−4でN)、オペレーション部100cは、統合アイテムデータベースの撮影登録処理の失敗カウントをインクリメントし、手順はS0−15へ移行する。
S0−15のステップにおいて、撮影登録処理の失敗カウントが規定回数を超えた場合(S0−15でN)、手順はS0−16に移行し、データ管理部100aは、当該アイテムのステータスのフィールドを「ST4:ハンドリング非対応状態」に変更し、処理を完了する。他方、S0−15のステップにおいて、撮影登録処理の失敗カウントが規定回数を超えていない場合には(S0−15でY)、ステータスのフィールドは「ST1:アイテム初期登録状態」のまま維持され、手順はS0−2へ戻る。
データ解析部100bが、S0−3の仮決定処理において、処理可能なエンドエフェクタ220を仮決定した場合(S0−4でY)、S0−5のステップにおいて、データ管理部100aは、アイテム情報テーブルのステータスのフィールドを「ST2:エンドエフェクタ仮決定状態」に変更する。
S0−6のステップにおいて、仮決定された全てのプライマリエンドエフェクタおよびケイパブルエンドエフェクタが、現在処理を行っているロボット200に装着可能なエンドエフェクタ220でない場合、データ管理部100aは、当該エンドエフェクタ220が装着可能なロボット200を検索し、オペレーション部100cは、当該エンドエフェクタ220が装着可能なロボット200(言い換えると別のロボット200)に対して形状登録モードでの動作の実行を指示する。さらに、マテリアルハンドリング機器250に対して、当該する機体の容器搬送部251に容器11aを移動するよう、指示を出す。仮決定されたエンドエフェクタ220が現在処理を行っているロボット200に装着可能なエンドエフェクタ220である場合には、オペレーション部100cは当該ロボット200に形状登録モードでの動作の実行を指示する。
S0−7のステップにおいて、指示を受けたロボット200は、形状登録モードでの動作を実行する。この動作では、指定された仮決定エンドエフェクタを用いて、実際にアイテムのピッキングを実行する。ただし、この時点では、アイテム統合データベース中のアイテムデータが不完全あるいは不足気味であるため、動作速度が所定速度以下に制限される。また、アイテムの形状をより詳細に把握するため、ピッキングロボットシステム2(コントローラ201)は、把持用のカメラ232aや重量計233a等により、アイテムのより詳細な計測処理を実行する。形状登録モードでのピッキング動作では、ピッキングロボットシステム2は、処理対象のアイテムの把持動作を実施し、把持が可能であった場合には、把持したアイテムを把持用のカメラ232bの計測可能領域に運び、把持しているアイテムの形状や特性を計測する。その後、ピッキングロボットシステム2は、把持したアイテムを集荷用(解放用)の容器11b内に箱詰めし、重量計233bにより、重量の計測を実施する。そして、ピッキング処理結果およびアイテムの計測結果等の関連情報をロボット統合管理システム100に返信する。データ管理部100aは、受信したデータにより、統合管理データベース130の統合アイテムデータベースにおける当該アイテムIDに関する情報を更新する。この更新作業中は、統合アイテムデータベースの状態は「ST6:モデル更新中」の状態である。
S0−8のステップにおいて、データ解析部100bは、形状登録モードでの動作により得られたデータを解析し、アイテム情報を更新する。計測された形状や重量等のデータに基づいて、アイテムをモデル化し、それらの情報からアイテムの各把持面に対して、複数種のエンドエフェクタ220の把持適合性等を評価する。そして、データ管理部100aは、実際に把持が可能であったエンドエフェクタ220、または最も安定して把持が可能と推定されるエンドエフェクタ220を、アイテム統合データベースに、当該アイテムにおけるプライマリエンドエフェクタとして登録する。また、データ管理部100aは、当該プライマリエンドエフェクタよりも評価値は低いものの把持できる可能性が高いエンドエフェクタ220を、アイテム統合データベースに、当該アイテムにおけるケイパブルエンドエフェクタとして登録する。さらに、データ解析部100bは、アイテムの形状および特性情報を解析し、アイテムのタイプを判定する。
S0−9のステップにおいて、形状登録モードでの動作が失敗であった場合には、オペレーション部100cは、形状登録処理の失敗カウントをインクリメントし、手順はS0−17へ移行する。
S0−17において、全てのエンドエフェクタの形状登録処理の失敗カウントが規定回数を超えた場合(S0−17でN)、手順はS0−16に移行し、データ管理部100aは、当該アイテムのステータスのフィールドを「ST4:ハンドリング非対応状態」に変更し、処理を完了する。また、当該アイテムに対するプライマリエンドエフェクタの形状登録処理の失敗カウントが規定回数を超えた場合、ケイパブルエンドエフェクタの中で最も安定して把持できる可能性の高いエンドエフェクタ220をプライマリエンドエフェクタに変更する。また、形状登録モードでの動作が成功した場合、形状登録処理の成功カウントをインクリメントする。この更新作業中は統合アイテムデータベースの状態は「ST8:新エンドエフェクタ登録更新中」の状態である。
S0−10のステップにおいて、データ解析部100bによる解析によりアイテムがモデル化され、アイテム統合データベース中の各種のフラグ、適合性等のような、アイテムデータの特性関連の情報が充足したような場合には、手順はS0−11のステップに移行し、データ管理部100aは、統合アイテムデータベースのステータスのフィールドを「ST3:エンドエフェクタ確定状態」に変更する。他方、S0−10のステップにおいて、アイテム統合データベース中のアイテムのデータが充足していない場合には、ステータスのフィールドは、「ST2:エンドエフェクタ仮決定状態」のまま維持される。また、形状登録処理の結果、受け取ったピッキング作業指示に対応する動作がすべて完了した場合、オペレーション部100cは、ロボット200に対して、容器11bの掃き出し指示を出し、さらに、データ管理部100aは、業務管理部100eおよびSoS_API100fを通して、外部システム310にピッキング作業の完了を通知する。
S0−12のステップにおいて、オペレーション部100cは、ピッキング作業指示が完了していない場合、ピッキングロボットシステム2(コントローラ201)に対して、次のアイテムのピッキング処理の実行を指示する。その際、更新された統合アイテムデータベースの情報に従い、ステータスのフィールドが「ST3:エンドエフェクタ確定状態」である場合、オペレーション部100cは、通常モードでの動作の実行を指示する。ステータスのフィールドが「ST2:エンドエフェクタ仮決定状態」の場合、手順はS0−5からS0−6に移行し、オペレーション部100cは、形状登録モードでの動作の実行を指示する。通常モードは、動作モードおよび第三モードの一例である。
S0−13のステップにおいて、ロボット200は、通常モードで動作する場合、アイテムの形状計測などの詳細な計測は実行せず、把持対象物の姿勢推定のみを行い、より高速にピッキング処理を実行する。そして、随時ピッキングの成功および失敗や処理時間のような処理にかかわる情報をロボット統合管理システム100に通知する。通常モードは、姿勢推定モードとも称されうる。通常モードでのアイテムの移動速度は、形状登録モードでの同じアイテムの移動速度よりも高く設定される。
S0−14のステップにおいて、データ管理部100aは、これらの処理結果をデータベースに蓄積する。データ解析部100bおよびオペレーション部100cは、蓄積された情報から、処理の成功率などに合わせて、プライマリエンドエフェクタとケイパブルエンドエフェクタの変更、更新等を行う。そして、オペレーション部100cは、容器11bが満杯になった場合には、容器11bの交換指示を行うとともに、オーダーされたピッキング作業指示がすべて完了した場合、容器11bの掃き出し指示を行い、さらに、データ管理部100aは、業務管理部100eおよびSoS_API100fを通してピッキング作業完了を外部システム310に通知する。
このように、実施形態のハンドリングシステム1は、エンドエフェクタ220の特性をモデル化し、統合管理データベース130において管理している。また、統合管理データベース130は複数のロボット200間で共用されている。よって、本実施形態によれば、アイテムデータの更新の処理を各ロボット200が行う必要はなく、ロボット統合管理システム100は、統合管理データベース130を、異なるエンドエフェクタ220を持った複数のロボット200で得られたデータによって更新するので、より迅速に、データベースを拡充することができる。
[撮影登録モードでの動作]
図9は、ピッキングロボットシステム2の撮影登録モードでの処理の手順を示す。撮影登録モードでの動作において、ピッキングロボットシステム2は、アイテム(対象物10)の撮影と、ロボット200の内部データベース201kで設定された条件に対して、把持計画などの計画演算の評価値の算出と、を行う。
S1−1において、ロボット統合管理システム100から撮影登録モードでの動作指示を受け取ると、コントローラ201は、内部データベース201kの更新を実行する。
S1−2において、ピッキングロボットシステム2は、カメラ232b、あるいは光電センサやマイクロスイッチのようなセンサによって、容器11aの到着を確認すると、S1−3において、カメラ232bによって、容器11aの内部を撮影する。
S1−4において、画像処理部201bは、撮影した画像から、アイテムの有無を判定するとともに、アイテムの把持可能面の識別を実行する。さらに、画像処理部201bは、アイテムの把持可能面の形状や大きさ、3次元空間内での位置姿勢等の把持面情報を算出する。
S1−5において、把持計画生成部201dは、把持面情報から、ロボット200がアイテムの把持可能面を把持するための複数の把持位置姿勢情報を算出する把持計画演算を実行する。この際、更新された内部データベース201kに登録されたすべての種類のエンドエフェクタモデルに対して、把持計画演算を行う。ここで、把持計画生成部201dは、把持位置姿勢情報に、各把持位置姿勢の安定性や信頼性などを示す評価値を付与するとともに、コンテナや把持対象以外のアイテムなどの周囲環境の情報や把持面情報やアイテム統合データベースの情報に基づいて、力制御を伴うエンドエフェクタ220の押しつけ方向や押し付ける力の大きさ、力制御の移動許容範囲等の情報を付加する。
S1−6において、統合部201aは、把持対象となるアイテム、把持位置、および把持姿勢を選択し、動作計画生成部201fは、ロボット200の現在位置から把持位置姿勢に至るロボット動作情報を生成する。統合部201aは、ロボット動作情報に、衝突の可能性や、処理速度の推定値のような、経路の評価値を付与する。
S1−7において、統合部201aは、外部インタフェースを介して、内部データベース201kに登録されたすべての種類のエンドエフェクタモデルにおける把持位置姿勢やロボット動作情報を、ロボット統合管理システム100に通知し、撮影登録モードの処理を完了する。
[把持計画]
図10Aは、エンドエフェクタ220の一例を示し、図10Bは、吸着パッド220aによる吸着パターンを示す。図10Aに示されるエンドエフェクタ220は、平面に沿う5つの吸着パッド220aを有しており、これら吸着パッド220aは、それぞれ、吸着のオンおよびオフを切り替えることができる。よって、図10Bに示されるように、様々な状態の吸着パターンによってアイテムを吸着することができる。図10Bにおいては、ドットパターンが付与された円が吸着を実行するオンの吸着パッド220aであり、白抜きの円が吸着を実行しないオフの吸着パッド220aであり、外周の正方形がエンドエフェクタ220の外周を示している。把持計画を行うためのエンドエフェクタ220のモデル化にあたっては、エンドエフェクタ220の吸着端面の中心(図心、重心)に対する各吸着パッド220aの位置、吸着パッド220aの直径、エンドエフェクタ220の外形寸法などを指定すれば良い。図10Cは、コントローラ201による画像処理に基づく容器11a内に置かれたアイテムの画像処理による認識例を示す。ここで、破線の領域は、把持の可能性がある把持平面の外接四角形すなわち把持可能領域A1である。破線内の実線の領域が実際に計測され認識された平面P1であり、これは把持可能領域A1のマスク情報と称される。把持計画では、図10Bに示されるように、指定されたエンドエフェクタモデルをもとに、図中(A)〜(H)のような吸着パッド220aのパターンをリスト化する。そして、各把持可能面の把持可能領域A1を示すマスク情報に対し、リスト化された各パターンにおけるオンの吸着パッド220aの領域が内包されるか否かを、エンドエフェクタ220の姿勢を変化させながら、チェックする。
把持計画生成部201dは、オンの吸着パッド220aの領域がマスク情報に内包されている状態を把持可能状態と判定し、そのパッドパターンと把持位置姿勢を把持位置姿勢候補とする。把持計画生成部201dは、これらの判定を、例えばマスク領域を0と1で表したビットマップとし、かつ有効な吸着パッド220aの領域を0と1で表したビットマップとし、両者のコンボリューションを行うことで、実行することができる。ここで、コンボリューション後の値が、オンの吸着パッド220aのビットマップの1の総和と一致している部分が、オンの吸着パッド220aの領域がマスク情報に内包された部分であると判定することができる。
次に、把持位置姿勢候補ごとに算出される把持の安定性や信頼性を示す評価値の具体例について説明する。例えば、内包されるオンの吸着パッド220aの領域がより広いほどより安定的に把持できると考えられるため、オンの吸着パッド220aの領域の面積が大きいほど評価値が高く設定される。また、把持力は、オンの吸着パッド220aの領域の面積とそこに発生する真空度の積で求めることができるため、把持対象となるアイテムの重量に対する把持力の比が大きいほど評価値が高く設定されてもよい。また、把持位置が物体の重心に近いほどより安定的に把持できると考えられるため、把持位置が重心(図心)に近いほど評価値が高く設定されてもよい。また、把持時にエンドエフェクタ220が周囲の物体に衝突する可能性を考慮し、エンドエフェクタ220の外周(外縁)の周囲の物体からの距離が大きいほど評価値が高く設定されてもよい。なお、ここでは、吸着型のエンドエフェクタ220について説明されたが、<https://www.jstage.jst.go.jp/article/jrsj1983/9/1/9_1_85/_pdf/−char/ja>にあるように、多指タイプのエンドエフェクタ220についても同様に把持計画を作成することができる。この場合、フィンガー220cの開く幅が狭いほど評価値が高く設定されてもよいし、フィンガー220cの接触面積が大きいほど評価値が高く設定されてもよい。
このような把持計画処理は、エンドエフェクタ220のモデルが統合管理データベース130に登録されていれば、ハンドリングシステム1に実際に設置されていないエンドエフェクタ220や、エンドエフェクタ220とは交換可能ではないエンドエフェクタ220についても、把持計画を作成することができる。
[エンドエフェクタ仮決定処理]
図11Aは、容器11a内に配置された同種の複数のアイテムを示し、図11Bは、図11Aの複数のアイテムについて撮影登録モードの動作で得られた評価値のリストを示す。ここでは、同種の複数のアイテムについての評価値について検討する。このため、図11Aの容器11aに収められているアイテム(対象物10)は、全て同じ種類の、同一アイテムであり、アイテムIDは同一である。図11Bのリストでは、図4A〜図4Dに示された4つの異なるエンドエフェクタ220A〜220D(220)に対して、計測された把持面毎に各エンドエフェクタ220の把持計画による評価値の評価値最大値および評価値平均値が記録されている。また、これらの処理は、計測の結果であるため、データの登録状態は、計測結果を示す”D”というラベルが付与されている。
図11Cに仮決定処理の手順の一例を示す。S2−1では、データ解析部100bは、エンドエフェクタ仮決定のために、検出された把持面の計測結果のグルーピングまたは、クラスタリング処理を行う。これは、あらかじめ定められた条件へのマッチングや、統計的な評価、ディープニューラルネットワーク等の機械学習を用いて実行することが可能である。
ここで、図11Dは、統合管理データベース130に含まれる統合アイテムデータベースのアイテム情報であり、図11Eは、統合アイテムデータベースのエンドエフェクタ情報である。図11Dおよび図11Eの例では、データ解析部100bは、アイテム(対象物10)は、3辺の長さが異なる直方体と分類したため、図11Dのアイテム情報中のアイテムタイプは、BOX型である。また、データ解析部100bは、同アイテムのサイズが十分に大きいと判断したため、図11Dのアイテム情報中の小物フラグは、小物でないことを示す0である。
次に、図11CのS2−2では、データ解析部100bは、把持面の計測結果を分類する。ここでは、データ解析部100bは、複数の把持面の計測結果を、異なるサイズである直方体の3面に分類し、識別番号を付ける。
S2−3では、データ解析部100bは、エンドエフェクタ220の適合性を評価し、エンドエフェクタ情報に記録して、処理を終了する。ここで、エンドエフェクタ仮決定処理で行われる処理は、暫定的な評価であるため、各データの登録状態には、仮決定を表す“P”というラベルが記録される。
S2−3の適合性評価では、あらかじめ決められた評価値の基準を用いて、把持可能と予測されるエンドエフェクタ220、把持が不可能と予測されるエンドエフェクタ220を分類することができる。例えば、データ解析部100bは、各把持面に対し、評価値が0.3以下のものは把持できない可能性が高いとみなして、適合性を「非ケイパブル」とする。データ解析部100bは、評価値が0.3より大きいものは、把持が可能であるとみなして、適合性を「ケイパブル」とする。さらに、データ解析部100bは、各把持面に対して、最も評価値の最大値が大きいケイパブルであるエンドエフェクタを「プライマリ」とする。例えば、把持面TS2が、把持面MS2に分類されており、当該把持面TS2に対する最も評価値の最大値が大きいエンドエフェクタ220が、エンドエフェクタcである場合、データ解析部100bは、把持面TS2についてエンドエフェクタcの適合性を「プライマリ」であると判定する。同様に、把持面TS2が、計測データである把持面MS2,MS3に分類されており、当該把持面TS2に対する最も評価値の最大値が大きいエンドエフェクタ220が、エンドエフェクタaである場合、データ解析部100bは、把持面TS2についてエンドエフェクタaの適合性を「プライマリ」であると判定する。最後に、データ解析部100bは、総合評価として、いずれかの把持面が「ケイパブル」または「プライマリ」であるエンドエフェクタ220の総合的な適合性を「ケイパブル」とする。ここで、全ての把持面に対して「非ケイパブル」である場合、データ解析部100bは、当該エンドエフェクタ220の総合的な適合性を「非ケイパブル」とし、最も評価値の最大値が大きいエンドエフェクタ220の総合的な適合性を「プライマリ」とする。ここで、「プライマリ」、「ケイパブル」、「非ケイパブル」等の判定を、評価値の最大値を用いて説明した。最大値を利用した方法は、処理が簡便で、高速であるという特徴がある。一方で、平均値を用いたり、最大値、最小値、平均値等の組み合わせを用いたり、複数のデータの分散、外れ値を考慮したり、クラスタリングを用いるなど、統計的な評価を行ったり、ディープニューラルネットワーク等の機械学習を行ったりすることにより、より精度の高い判定を実施可能な場合もある。
[形状登録モードでの動作]
図12は、ハンドリングシステム1の形状登録モードでの処理の手順を示す。形状登録モードでの動作では、ピッキングロボットシステム2は対象物10の把持動作を実行する。この際、ピッキングロボットシステム2(コントローラ201)は、把持用のカメラ232a、キャリブレーション用のカメラ232b、解放用のカメラ232c、仮置き用のカメラ232d、重量計233によるアイテム(対象物10)の計測処理を実行する。
まず、S3−1において、統合部201aは、外部インタフェースを経て、外部システム310からアイテムの搬送指示(ピッキング指示)を受け取る。
S3−2において、統合部201aは、カメラ232aのようなセンサ230や、光電センサ、マイクロスイッチ等により、容器11aの把持位置Phへの到着を検知する。
S3−3において、統合部201aは、アイテムの把持位置Phおよびその周辺、例えばアイテムが収容されている容器140a内を、撮像するよう、カメラ232aを制御する。
S3−4において、画像処理部201bは、カメラ232aが撮影した画像から、アイテムの有無の判定、アイテムの把持可能面の識別を実行する。さらに、画像処理部201bは、アイテムの把持可能面の形状や、大きさ、3次元空間内での位置や姿勢のような、把持面情報を算出する。
S3−5において、把持計画生成部201dは、把持面情報に基づいて、ロボット200がアイテムの把持可能面を把持するための複数の把持情報を算出する。把持情報には、把持位置情報や把持姿勢情報が含まれる。ここで、把持計画生成部201dは、容器11a内のアイテム以外の物体(周辺部品)などの把持位置Phの周辺情報や、把持面情報やアイテムデータベースの情報に基づいて、例えば、後述の力制御を実行する際の、エンドエフェクタ220の移動方向や、押付力の大きさ、移動許容範囲のような付加情報を算出し、これを把持情報に付加する。
S3−6において、統合部201aは、把持情報に基づいて、把持対象とするアイテム、その把持位置Ph、および把持姿勢を、選択あるいは決定する。そして、動作計画生成部201fは、ロボット200の現在位置から、把持位置Phおよび把持姿勢に至るロボット動作情報を生成する。ここで、統合部201aは、ロボット200とアイテム以外の物体との干渉あるいは衝突の虞が無いあるいは干渉あるいは衝突の確率が比較的低い領域では、より高速な動作を選択する。他方、統合部201aは、例えば、エンドエフェクタ220が容器11aに近付いたり容器11a内に入ったりするなど、エンドエフェクタ220またはアイテムと当該アイテム以外の物体との干渉あるいは衝突の虞がある、あるいは干渉あるいは衝突の確率が比較的高い領域では、より低速な動作を選択する。さらに、動作計画生成部201fは、この領域でエンドエフェクタ220に発生する力の目標値を決定する。また、この場合、形状登録モードではアイテムの重量等が不確定であることから、動作計画生成部201fは、動作速度を速度可変範囲内での下限に設定してもよい。
S3−7において、ロボット制御部201gは、生成されたロボット動作情報にしたがって動作し、把持位置Phおよび把持姿勢でアイテムを把持するよう、ロボット200およびエンドエフェクタ220を制御する。アイテムの把持位置Phの周辺領域では、力制御のみによるエンドエフェクタ220の押付動作が実行され、吸着パッド220aやフィンガー220cがアイテムに十分に接触した状態で、吸着や挟み込み等の把持動作が実行される。把持位置Phの周辺領域では、エンドエフェクタ220が、アイテム以外の物体のような障害物に当たった場合には、ロボット制御部201gは、所定の動作、例えば、力の目標値にしたがってエンドエフェクタ220が障害物から逃げる動作を、実行する。また、把持対象面が予期せぬ傾きを持っている場合などにおいても、ロボット制御部201gは、所定の押し付け方法や押し付け力によりエンドエフェクタ220を把持対象面に倣わせる動作を実行する。
ロボット制御部201gおよび統合部201aは、ロボット200の動作やエンドエフェクタ220によるアイテムの把持の状態を監視している。S3−8において、エンドエフェクタ220によるアイテムの把持が成功した場合には(S3−8でY)、手順はS3−10に移行する。他方、S3−8において、アイテムの把持が失敗した場合には(S3−8でN)、手順はS3−9に移行する。
S3−9において、統合部201aは、ロボット200の退避動作や、把持の失敗を示す情報をアイテムデータベースに登録する登録処理などのリトライ準備動作を実行し、S3−9の後、手順はS3−3へ戻る。
S3−10において、ロボット制御部201gは、エンドエフェクタ220によるアイテムの把持状態が撮影可能な位置に移動するよう、ロボット200を制御する。そして、統合部201aは、当該位置で、アイテムを把持したエンドエフェクタ220を撮影するよう、カメラ232bを制御する。
S3−11において、画像処理部201bは、把持用のカメラ232aやキャリブレーション用のカメラ232bが撮影した画像から、例えば、エンドエフェクタ220に対するアイテムの相対位置、エンドエフェクタ220に対するアイテムの相対姿勢、およびアイテムの状態や形状のような、把持アイテム情報の計測および生成を実行する。また、信号処理部201cは、把持位置Phに設けられた重量計233aの計測結果から、アイテムの持ち上げ前後の重量の差分を計算することにより、アイテムの重量を計測することができる。
S3−12において、統合部201aは、力センサ231のリセットのような重力補償動作を実行する。ここで、既に次の解放姿勢が決定している場合には、統合部201aは、エンドエフェクタ220の姿勢を次の解放姿勢と同じか、それと近い状態にして、重力補償動作を実行することにより、より精度の高い重力補償動作を実行することができる。この際、統合部201aは、さらに、力センサ231による把持されたアイテムの重量計測を実行しても良い。
S3−13において、統合部201aは、容器11bの内部を撮影するよう、カメラ232bを制御する。そして、画像処理部201bは、カメラ232bが撮影した画像から、解放位置Prおよびその周辺における、アイテム以外の物体の有無を判定するとともに、当該物体の大きさや、位置、当該物体の表面の位置を示す周辺情報を生成する。
S3−14において、解放計画生成部201eは、把持アイテム情報、把持データベースの情報、周辺情報等を用いて、ロボット200が把持しているアイテムの解放方法や、解放位置、解放姿勢、経由位置、経由姿勢等を含む解放情報を生成する。解放計画生成部201eは、さらに、解放情報に、力制御を伴うエンドエフェクタ220の押し付け方向や押し付ける力の大きさ、力制御の移動許容範囲等の情報を付加することができる。
S3−15において、統合部201aは、解放位置および解放方法を選択し、動作計画生成部201fは、ロボット200の現在位置から解放位置姿勢に至るロボット動作情報を生成する。ここで、統合部201aは、ロボット200の周囲の物体との干渉あるいは衝突の虞が無いあるいは干渉あるいは衝突の確率が比較的低い領域では、把持アイテムの重さのような把持アイテム情報や、把持データベースの情報、把持状態等を考慮した上で、可能な限り高速な動作を選択する。他方、統合部201aは、例えば、エンドエフェクタ220や把持したアイテムが容器11bに近付いたり当該容器11b中に入ったりするなど、エンドエフェクタ220またはアイテムと当該アイテム以外の物体との干渉あるいは衝突の虞がある、あるいは干渉あるいは衝突の確率が比較的高い領域では、より低速な動作を選択する。さらに、この領域では解放情報等に基づいて、エンドエフェクタ220に発生する力の目標値を与える。
S3−16において、ロボット制御部201gは、生成されたロボット動作情報にしたがって動作し、解放位置Prおよび解放姿勢でアイテムを解放するよう、ロボット200およびエンドエフェクタ220を制御する。アイテムを容器11b内により高密度に配置するため、アイテムの到達位置の周辺では、容器11bの壁や、既に置かれている十分な大きさの荷物等、がある場合には、エンドエフェクタ220による把持アイテムの押し付け動作が実施される。解放位置Prの周辺領域では、エンドエフェクタ220や把持アイテムが、既に置かれている物体のような予期せぬ障害物に当たった場合には、ロボット制御部201gは、所定の動作、例えば、力の目標値にしたがってエンドエフェクタ220が障害物から逃げる動作を、実行する。また、押付対象面が予期せぬ傾きを持っている場合などでも、ロボット制御部201gは、所定の押付方法や押し付け力により把持アイテムを容器11bの壁のような押付対象面に倣わせ、密着した状態で解放する動作を実行する。
S3−17において、ロボット制御部201gは、アイテムの解放後、容器11bから脱出するようエンドエフェクタ220を制御し、待機姿勢をとるロボット200を制御する。この際、ロボット制御部201gは、力センサ231の検出値のリセット(この状態での検出値を0とする)のような、重力補償を実行する。ここで、次のアイテムの把持姿勢が既に決定している場合には、ロボット制御部201gは、エンドエフェクタ220が把持姿勢と略同じかあるいは近いキャリブレーション姿勢となるよう、ロボット200およびエンドエフェクタ220を制御し、この状態で、重力補償を実行する。
S3−18において、統合部201aが外部システム310から次のアイテムのピッキング指示を受け取った場合には(S3−18でN)、手順はS3−2へ移行し、次のアイテムに対する一連の制御を開始する。S3−18において、次のアイテムが無い場合には(S3−18でY)、一連の制御が終了される。
ここでは、カメラ232aのような把持用のセンサ230を用いてアイテムの形状を計測する処理が例示されたが、カメラ232dのような仮置き用のセンサ230を用いてアイテムの形状が計測されてもよい。この場合、ロボット200は、エンドエフェクタ220が把持したアイテムを仮置位置Ptへ移動する。仮置位置Ptに、回転テーブルや、スキャナ、重量計233等の機器が設置されることにより、当該仮置位置Ptにおいて、アイテムの形状や重量のデータの取得が可能となる。アイテムのデータを取得する処理が終了し、仮置位置Ptに置いたアイテムを、エンドエフェクタ220が把持し、ロボット200が容器11bに移動し、エンドエフェクタ220が容器11b内で解放することにより、一連の制御が終了される。
[アイテム情報更新処理:アイテムのカテゴリ分け]
撮影登録モードでの動作では、容器11aの撮影情報からアイテムの形状や特徴情報を抽出しているが、このような状況では、容器11aの壁やアイテムの重なりによるオクルージョン等によって、アイテム全体の情報が得られない場合がある。他方、形状登録モードでの動作では、アイテムを持ち上げたり仮置位置Ptに置いたりした状態で、当該アイテム単体で、容器11a内では隠れていた領域も含めた全体的な情報を撮影したり計測したりすることが可能である。そこで、アイテム情報更新処理では、撮影登録モードでの動作で取得した情報に基づいて生成された仮の情報を、形状登録モードでの動作で取得した情報によって更新する。
図13Aは、アイテム情報更新処理の手順を示す。また、図13Bは、アイテムモデルを示し、図13Cは、評価値のリストを示す。まず、S4−1において、データ管理部100aは、形状登録モードでの動作で取得した各種データから、図13Bに示されるようなアイテムモデルおよび図13Cに示されるような評価値のリストを生成する。ここで、図13Bの実線Crはアイテムの外接直方体を示し、ドットパターンの領域Moは3次元のモデルデータを示す。
S4−2において、データ管理部100aは、モデル化された情報にしたがって、図11Bに示された評価値のリストを、図13Cに示される評価値のリストに更新する。ここで、各把持面の登録状態は、モデル化されたことを示す”M”と記録されており、把持面のサイズは、モデル化の結果にしたがって、更新されている。また、計測の結果により重量情報が記録されているほか、形状情報がBOX型と登録されている。さらに、各ハンドの評価値が、モデル化された情報をもとに再計算され、更新されている。
S4−3において、データ管理部100aは、統合アイテムデータベースを更新する。図14Aは、統合アイテムデータベースのアイテム情報を示す。アイテムタイプは、モデル化後の分類結果によりBOX型と登録されている、アイテム重量は、計測結果とモデル化による確認の結果、計測値が記録されている。これらの分類方法は後述する。また、データ管理部100aは、モデル化された情報をもとに、小物フラグおよび重量物フラグを更新する。図14Bは、統合アイテムデータベースのエンドエフェクタ情報を示す。把持面情報の登録状態は、モデル化された情報により更新されたことを示す”M”と記録されている。また、データ管理部100aは、更新された評価値のリストにしたがって、各エンドエフェクタ220の適合性を更新する。ここで、把持面MDS1の適合性は、実際に把持が実行されるとともに把持に成功した結果であるため、登録状態は把持成功を示す“G”となっている。
図15は、アイテムタイプを判定する手順の一例を示す。まず、S5−1において、データ解析部100bは、モデル化データを取得する。S5−2において、データ解析部100bは、モデル化データから形状変化に関する情報を取得し、形状変化を確認する。この形状変化は、把持時(挟持時、吸着時)や移送時(方向変化時、加速度変化時、終点到着時)における形状変化の計測や、形状登録モードでの計測中における形状変化の計測、複数回の形状登録モードでの動作の結果の差異や変化等によって、確認することができる。
S5−3において、データ解析部100bは、形状変化に対する判定を行う。S5−3で形状変化、例えば、所定の大きさの外力に対する変形量が、閾値以上であると判定された場合(S5−4でY)、手順はS5−4に移行する。S5−4のステップでは、アイテムタイプをデフォーマブルに設定し、処理を終了する。
他方、S5−3で形状変化が閾値未満であると判定された場合(S5−4でN)、手順はS5−5に移行する。S5−5において、データ解析部100bは、形状確認または分類を行う。分類は、あらかじめ定められたテンプレートとのマッチングなどによって実現可能である。
S5−6において、データ解析部100bは、形状が略直方体であるか否かを判定する。S5−6で、形状が略直方体である、例えば、各面が直方体に近い3次元的な所定範囲内に存在する、と判定された場合(S5−6でY)、手順はS5−7に移行する。S5−7のステップでは、データ管理部100aは、アイテムタイプをボックスと登録し、アイテムタイプの判定を終了する。
S5−6において、形状が上記所定の直方体でないと判定された場合(S5−6でN)、手順はS5−8に移行する。S5−8では、データ管理部100aは、アイテムタイプをソリッドに設定し、アイテムタイプの判定処理を終了する。
本明細書において、”ボックス”とは、アイテムの形状が略直方体であるもの、”ソリッド”とは、アイテムが形状変化し難いものであり、略直方体ではないものを示す。また”デフォーマブル”とは、衣類や柔らかい袋など形の定まらないものを示す。ここで、”ボックス”のような直方体状のアイテムの場合には、BL法に代表されるような箱詰めアルゴリズムを、比較的容易に適用できる。また、”ソリッド”のように形状が変形し難いアイテムの場合には、計測された結果やデータベースに登録されたモデル情報を用いて、箱詰めの計画を比較的容易に計算することができる。また、”デフォーマブル”のような形の定まらないアイテムの場合には、当該アイテム自体が周囲の形に倣うことを考慮した箱詰め処理が必要となる。このように本実施形態のハンドリングシステム1では、ピッキング後の箱詰めまでを考慮したアイテムの分類を行うことで、より効率的なハンドリング処理が実現できる。”ボックス”、”ソリッド”、および”デフォーマブル”は、それぞれ、アイテムの、所定の大きさの外力に対する変形量(変形しやすさ)および外形状に応じた分類の一例である。なお、ここでは、一例として、データ解析部100bは、アイテムを、外形状に関し、略直方体であるか否かについて分析して分類したが、直方体には限定されず、例えば薄い四角形の板や、円筒、円柱などのような他の形状であるか否かについて分析して分類してもよいし、種々の形状とのマッチングによってアイテムを分類してもよい。
図16は、アイテムの属性を示すフラグ情報の判定手順を示す。S6−1において、データ解析部100bは、統合アイテムデータベースから、モデル化されたアイテム情報を取得する。
ここで、S6−2において、データ解析部100bは、取得した情報に基づいて、対象となるアイテムが小物フラグを立てるアイテムであるか否かの判定を開始する。まず、S6−3において、データ解析部100bは、アイテムの外接直方体の3辺サイズを判定する。ここで、3辺のそれぞれのサイズ及び合計のサイズがサイズ規定値以下であった場合(S6−3でY)、手順はS6−4に移行する。S6−4において、データ解析部100bは、アイテムの重量が重量規定値以下であるか否かを判定する。ここで、アイテムの重量が重量規定値以下であった場合(S6−4でY)、データ解析部100bは対象となるアイテムは小物であると判定し、データ管理部100aは、S6−5において、統合アイテムデータベースの当該アイテムの小物フラグを「1」に設定する。
S6−3でNまたはS6−4でNの場合、すなわち、データ解析部100bが、アイテムのサイズがサイズ規定値未満であるか、またはアイテムの重量が重量規定値未満であると判定した場合、S6−6において、データ解析部100bは、対象となるアイテムは小物ではないと判定し、データ管理部100aは、統合アイテムデータベースの当該アイテムの小物フラグを「0」に設定する。
次に、S6−7において、データ解析部100bは、易損品フラグの判定を開始する。まず、データ解析部100bは、S6−8において、易損品判定が可能なデータが存在するか否かを確認する。易損品判定が可能なデータは、例えば、易損品リストのような外部データベースのデータや、易損品分類が可能なアイテムの写真情報、外部ユーザインタフェースを通したユーザからの入力情報等である。
データ解析部100bは、易損品判定が可能なデータがあると判定した場合(S6−8でY)、S6−9において、対象アイテムが易損品であるか否かを判定する。この判定は、外部からデータを取得した場合には、そのデータを直接活用することにより実行できるし、写真情報などの1次データを用いる場合には、機械学習等を用いた易損品判定の識別器を用いることにより実行できる。
S6−9で易損品であると判定された場合(S6−9でY)、データ管理部100aは、S6−10において、統合アイテムデータベースの当該アイテムの易損品フラグを「1」に設定する。他方、S6−9で易損品でないと判定された場合(S6−9でN)、データ管理部100aは、S6−11において、統合アイテムデータベースの当該アイテムの易損品フラグを「0」に設定する。
また、S6−8において、判定に有効なデータが存在しないことが確認された場合(S6−8でN)、データ管理部100aは、S6−12において、統合アイテムデータベースの当該アイテムの易損品フラグを「NA」に設定する。ここで、NAとは、未判定を意味する。
次に、S6−13では、データ解析部100bは、重量物フラグの判定を開始する。まず、データ解析部100bは、S6−14において、アイテムの外接直方体の3辺サイズを判定する。ここで、3辺のそれぞれのサイズ及び合計のサイズがサイズ規定値以上であった場合(S6−14でY)、手順はS6−15に移行する。S6−15において、データ解析部100bは、アイテムの重量が重量規定値以上であるか否かを判定する。アイテムの重量が重量規定値以上であった場合(S6−15でY)、S6−16において、データ解析部100bは、対象となるアイテムは重量物であると判定し、データ管理部100aは、統合アイテムデータベースの当該アイテムの重量物フラグを「1」に設定し、処理を完了する。
S6−14でNまたはS6−15Nの場合、すなわち、データ解析部100bが、アイテムのサイズがサイズ規定値未満であるか、またはアイテムの重量が重量規定値未満であると判定した場合、S6−17において、データ解析部100bは、対象となるアイテムは重量物ではないと判定し、データ管理部100aは、統合アイテムデータベースの当該アイテムの重量物フラグを「0」に設定し、処理を完了する。
このように、ロボット統合管理システム100では、ピッキングロボットシステム2が、撮影登録モードでの動作および形状登録モードでの動作で得られた情報に基づいてモデル化されたアイテム情報を用いて、逐次データベースの情報を更新することにより、自動的に処理効率を向上することができる。
ロボット統合管理システム100では、このように、データ解析部100bにおいて解析を実施し、オペレーション部100cによりデータベース更新処理を行うことで、データベースにおけるデータを補充したり、更新したりすることが可能である。この結果、処理が進むごとに、ハンドリングシステム1による処理効率の向上が可能となる。また、上記説明では、主に、ハンドリングシステム1が、データベースの各種の情報を自動で生成したり補充したり更新したりする例について述べたが、ハンドリングシステム1は、サービス・U100dI部を介してユーザの直接入力によって得られた情報や、SoS_API100fを介して外部のデータベース等から得られた情報に基づいて、統合管理データベース130を作成したり更新したりすることも可能である。
[データベース更新後のハンドリングシステムのピッキング統合管理]
図17は、ロボット統合管理システム100が、統合管理データベース130において「エンドエフェクタ確定状態」であるアイテムを処理する手順を示す。
S7−1において、ロボット統合管理システム100は、SoS_API100fを介して、WMS等の外部システム310からピッキング作業指示を受ける。
S7−2において、オペレーション部100cは、受信したピッキング作業指示データとデータ管理部100aで管理されている統合管理データベース130の情報を照合する。ピッキング作業指示のあったアイテムのIDがロボット統合管理データベースに登録済みのアイテムであった場合、登録されたアイテムの情報を確認する。
S7−2において、アイテムデータの状態が「エンドエフェクタ確定状態」である場合には、データ解析部100bは、S7−3において、ピッキング対象となるアイテムに最適なエンドエフェクタ220および当該最適なエンドエフェクタ220を有するピッキングロボットシステム2を決定する。
S7−4において、オペレーション部100cは、最適であると決定されたピッキングロボットシステム2のコントローラ201に対し、最適であると決定されたエンドエフェクタ220を用いて、通常モードでのピッキングを実行するよう指令する。
S7−5において、データ管理部100aは、ロボット200によるピッキング作業の実行中は、ピッキング動作に応じて、統合管理データベース130を更新する。例えば、登録状態が“M”の把持面とエンドエフェクタ220との組み合わせで、ピッキングが実行され、把持が成功した場合、データ管理部100aは、登録状態を“M”から“G”に更新する。また、把持面とエンドエフェクタ220との組み合わせがケイパブルであっても、複数回把持に失敗した場合には、適合性を非ケイパブルに更新し、登録状態を、再度確認が必要であることを示す“C”とする。
S7−6において、ロボット統合管理システム100は、終了処理を実行する。具体的には、オーダーされたピッキング作業指示がすべて完了した場合には、マテリアルハンドリング機器250に容器11bの掃き出し指示を行う。また、ロボット統合管理システム100は、データ管理部100a、業務管理部100e、SoS_API100fを介してピッキング作業完了を外部に通知する。なお、ピッキング作業の途中でピッキングに失敗した場合には、ロボット統合管理システム100は、データ管理部100a、業務管理部100e、SoS_API100fを介して外部システム310にエラーを通知するか、サービス・UI部100dを通じて、ユーザにエラーを通知する。
[通常モードでの動作]
図18は、ピッキングロボットシステム2の通常モードでの処理の手順を示す。
まず、S8−1において、統合部201aは、外部インタフェースを経て、外部システム310からアイテムの搬送指示(ピッキング指示)を受け取る。
S8−2において、統合部201aは、カメラ232aのようなセンサ230や、光電センサ、マイクロスイッチ等により、容器11aの把持位置Phへの到着を検知する。
S8−3において、統合部201aは、アイテムの把持位置Phおよびその周辺、例えばアイテムが収容されている容器140a内を、撮像するよう、カメラ232aを制御する。
S8−4において、画像処理部201bは、カメラ232aが撮影した画像から、アイテムの有無の判定、アイテムの把持可能面の識別を実行する。さらに、画像処理部201bは、アイテムの把持可能面の形状や、大きさ、3次元空間内での位置や姿勢のような、把持面情報を算出する。
S8−5において、把持計画生成部201dは、把持面情報に基づいて、ロボット200がアイテムの把持可能面を把持するための複数の把持情報を算出する。把持情報には、把持位置情報や把持姿勢情報が含まれる。ここで、把持計画生成部201dは、容器11a内のアイテム以外の物体(周辺部品)などの把持位置Phの周辺情報や、把持面情報やアイテムデータベースの情報に基づいて、例えば、後述の力制御を実行する際の、エンドエフェクタ220の移動方向や、押付力の大きさ、移動許容範囲のような付加情報を算出し、これを把持情報に付加する。
S8−6において、統合部201aは、把持情報に基づいて、把持対象とするアイテム、その把持位置Ph、および把持姿勢を、選択あるいは決定する。そして、動作計画生成部201fは、ロボット200の現在位置から、把持位置Phおよび把持姿勢に至るロボット動作情報を生成する。ここで、統合部201aは、ロボット200とアイテム以外の物体との干渉あるいは衝突の虞が無いあるいは干渉あるいは衝突の確率が比較的低い領域では、より高速な動作を選択する。他方、統合部201aは、例えば、エンドエフェクタ220が容器11aに近付いたり容器11a内に入ったりするなど、エンドエフェクタ220またはアイテムと当該アイテム以外の物体との干渉あるいは衝突の虞がある、あるいは干渉あるいは衝突の確率が比較的高い領域では、より低速な動作を選択する。さらに、動作計画生成部201fは、この領域でエンドエフェクタ220に発生する力の目標値を決定する。
S8−7において、ロボット制御部201gは、生成されたロボット動作情報にしたがって動作し、把持位置Phおよび把持姿勢でアイテムを把持するよう、ロボット200およびエンドエフェクタ220を制御する。アイテムの把持位置Phの周辺領域では、力制御のみによるエンドエフェクタ220の押付動作が実行され、吸着パッド220aやフィンガー220cがアイテムに十分に接触した状態で、吸着や挟み込み等の把持動作が実行される。把持位置Phの周辺領域では、エンドエフェクタ220が、アイテム以外の物体のような障害物に当たった場合には、ロボット制御部201gは、所定の動作、例えば、力の目標値にしたがってエンドエフェクタ220が障害物から逃げる動作を、実行する。また、把持対象面が予期せぬ傾きを持っている場合などにおいても、ロボット制御部201gは、所定の押し付け方法や押し付け力によりエンドエフェクタ220を把持対象面に倣わせる動作を実行する。
ロボット制御部201gおよび統合部201aは、ロボット200の動作やエンドエフェクタ220によるアイテムの把持の状態を監視している。S8−8において、エンドエフェクタ220によるアイテムの把持が成功した場合には(S1−8でY)、手順はS8−10に移行する。他方、S8−8において、アイテムの把持が失敗した場合には(S1−8でN)、手順はS8−9に移行する。
S8−9において、統合部201aは、ロボット200の退避動作や、把持の失敗を示す情報をアイテムデータベースに登録する登録処理などのリトライ準備動作を実行し、S8−9の後、手順はS8−3へ戻る。
S8−10において、S8−3において把持対象のアイテムの姿勢が確定していない場合には、ロボット制御部201gは、エンドエフェクタ220によるアイテムの把持状態が撮影可能な位置に移動するよう、ロボット200を制御する。そして、統合部201aは、当該位置で、アイテムを把持したエンドエフェクタ220を撮影するよう、カメラ232bを制御する。
S8−11において、統合部201aは、把持用のカメラ232aやキャリブレーション用のカメラ232bが撮影した画像、および統合管理データベース130に登録されたアイテムの形状情報に基づいて、エンドエフェクタ220とアイテムとの相対的な位置および相対的な姿勢を取得する。
S8−12において、統合部201aは、力センサ231のリセットのような重力補償動作を実行する。ここで、既に次の解放姿勢が決定している場合には、統合部201aは、エンドエフェクタ220の姿勢を次の解放姿勢と同じか、それと近い状態にして、重力補償動作を実行することにより、より精度の高い重力補償動作を実行することができる。この際、統合部201aは、さらに、力センサ231による把持されたアイテムの重量計測を実行しても良い。
S8−13において、統合部201aは、容器11bの内部を撮影するよう、カメラ232bを制御する。そして、画像処理部201bは、カメラ232bが撮影した画像から、解放位置Prおよびその周辺における、アイテム以外の物体の有無を判定するとともに、当該物体の大きさや、位置、当該物体の表面の位置を示す周辺情報を生成する。
S8−14において、解放計画生成部201eは、把持アイテム情報、把持データベースの情報、周辺情報等を用いて、ロボット200が把持しているアイテムの解放方法や、解放位置、解放姿勢、経由位置、経由姿勢等を含む解放情報を生成する。解放計画生成部201eは、さらに、解放情報に、力制御を伴うエンドエフェクタ220の押し付け方向や押し付ける力の大きさ、力制御の移動許容範囲等の情報を付加することができる。
S8−15において、統合部201aは、解放位置および解放方法を選択し、動作計画生成部201fは、ロボット200の現在位置から解放位置姿勢に至るロボット動作情報を生成する。ここで、統合部201aは、ロボット200の周囲の物体との干渉あるいは衝突の虞が無いあるいは干渉あるいは衝突の確率が比較的低い領域では、把持アイテムの重さのような把持アイテム情報や、把持データベースの情報、把持状態等を考慮した上で、可能な限り高速な動作を選択する。他方、統合部201aは、例えば、エンドエフェクタ220や把持したアイテムが容器11bに近付いたり当該容器11b中に入ったりするなど、エンドエフェクタ220またはアイテムと当該アイテム以外の物体との干渉あるいは衝突の虞がある、あるいは干渉あるいは衝突の確率が比較的高い領域では、より低速な動作を選択する。さらに、この領域では解放情報等に基づいて、エンドエフェクタ220に発生する力の目標値を与える。
S8−16において、ロボット制御部201gは、生成されたロボット動作情報にしたがって動作し、解放位置Prおよび解放姿勢でアイテムを解放するよう、ロボット200およびエンドエフェクタ220を制御する。アイテムを容器11b内により高密度に配置するため、アイテムの到達位置の周辺では、容器11bの壁や、既に置かれている十分な大きさの荷物等、がある場合には、エンドエフェクタ220による把持アイテムの押し付け動作が実施される。解放位置Prの周辺領域では、エンドエフェクタ220や把持アイテムが、既に置かれている物体のような予期せぬ障害物に当たった場合には、ロボット制御部201gは、所定の動作、例えば、力の目標値にしたがってエンドエフェクタ220が障害物から逃げる動作を、実行する。また、押付対象面が予期せぬ傾きを持っている場合などでも、ロボット制御部201gは、所定の押付方法や押し付け力により把持アイテムを容器11bの壁のような押付対象面に倣わせ、密着した状態で解放する動作を実行する。
S8−17において、ロボット制御部201gは、アイテムの解放後、容器11bから脱出するようエンドエフェクタ220を制御し、待機姿勢をとるロボット200を制御する。この際、ロボット制御部201gは、力センサ231の検出値のリセット(この状態での検出値を0とする)のような、重力補償を実行する。ここで、次のアイテムの把持姿勢が既に決定している場合には、ロボット制御部201gは、エンドエフェクタ220が把持姿勢と略同じかあるいは近いキャリブレーション姿勢となるよう、ロボット200およびエンドエフェクタ220を制御し、この状態で、重力補償を実行する。
S8−18において、統合部201aが外部システム310から次のアイテムのピッキング指示を受け取った場合には(S8−18でN)、手順はS8−2へ移行し、次のアイテムに対する一連の制御を開始する。S8−18において、次のアイテムが無い場合には(S8−18でY)、一連の制御が終了される。
[データベースの統合システム上でのオンライン活用:エンドエフェクタ選択]
図19は、ロボット統合管理システム100による最適なエンドエフェクタ220を決定する手順を示す。S9−1において、オペレーション部100cは、対象となるピッキングロボットシステム2のロボット200に、エンドエフェクタ220が接続されているか否かを判定する。
ロボット200にエンドエフェクタ220が接続されている場合(S9−1でY)、S9−2において、オペレーション部100cは、ロボット200に接続されているエンドエフェクタ220が、ピッキングオーダに指定されたアイテムのうち、次に処理対象となるアイテムを処理可能であるか否か、を確認する。オペレーション部100cは、対象アイテムに対して、エンドエフェクタ220がプライマリまたはケイパブルであれば、処理可能と判断し、ピッキングロボットシステム2に当該エンドエフェクタ220を用いたピッキングの実行指示を出す(S9−3)。
ロボット200にエンドエフェクタ220が接続されていないと確認された場合(S9−1でN)、あるいはS9−2において接続されているエンドエフェクタ220がプライマリまたはケイパブルではなかった場合(S9−2でN)には、手順はS9−4に移行する。S9−4において、データ解析部100bは、まずは、統合アイテムデータベースのエンドエフェクタ情報から、ピッキングオーダで指定されたアイテムのうち、まだ処理されていないアイテムに対するプライマリエンドエフェクタとケイパブルエンドエフェクタをピックアップする。そして、データ解析部100bは、指定された全てのアイテムを処理可能なプライマリエンドエフェクタがあるかどうかを判定する。
S9−4において、全てのアイテムを処理可能なプライマリエンドエフェクタが存在することが判明した場合(S9−4でY)、手順はS9−5のステップに移行する。S9−5において、オペレーション部100cは、ピッキングロボットシステム2に、プライマリエンドエフェクタと判定されているエンドエフェクタ220の接続の指示を行い、接続の完了を確認する。そして、オペレーション部100cは、ピッキングロボットシステム2に、当該エンドエフェクタ220によってピッキングを行うよう指示する(S9−9)。
他方、S9−4において、全てのアイテムを処理可能なエンドエフェクタ220が存在しないことが判明した場合(S9−4でN)、手順はS9−6に移行する。S9−6において、データ解析部100bは、ピッキングオーダで指定されたアイテムのうち未処理である全てのアイテムを処理可能なケイパブルエンドエフェクタがあるかどうかを判定する。
S9−6において、全てのアイテムを処理可能なケイパブルエンドエフェクタが存在することが判明した場合(S9−6でY)、手順はS9−7に移行する。S9−7において、オペレーション部100cは、ピッキングオーダで指示されたアイテムの内、ピッキングオーダで指定されたアイテムのうち未処理である全てのアイテムを処理可能なエンドエフェクタ220の中から、プライマリエンドエフェクタと判定されている数が最も多い物など、優先度の一番高いエンドエフェクタ220を選択し、ピッキングロボットシステム2に、当該優先度の一番高いエンドエフェクタ220をロボット200に接続するよう、接続指示を出す。また、オペレーション部100cは、ピッキングロボットシステム2に、当該接続したエンドエフェクタ220によってピッキングを行うよう指示する(S9−9)。
S9−7において、全てのアイテムを処理可能なケイパブルエンドエフェクタが存在しないことが判明した場合(S9−7でY)、手順はS9−8に移行する。S9−8では、オペレーション部100cは、ピッキングオーダの中で、次に処理の対象となるアイテムのプライマリエンドエフェクタを接続するよう、ピッキングロボットシステム2に指示を出す。そして、オペレーション部100cは、ピッキングロボットシステム2に、当該エンドエフェクタ220によってピッキングを行うよう指示する(S9−9)。
図20Aは、ピッキングオーダの一例を示し、図20Bは、統合アイテムデータベースのエンドエフェクタ情報に基づいて、ピッキングオーダで指定されたアイテムのうち未処理アイテムに対するプライマリエンドエフェクタおよびケイパブルエンドエフェクタの一例を示している。
図20Bの状態でS9−4が実行された場合、4種類の商品全てに対し処理可能なプライマリエンドエフェクタは存在しないため、S9−6へ移行する。S9−6では、タイプBのエンドエフェクタ220が4種類全てのアイテムを処理可能な(ケイパブルである)エンドエフェクタ220であると判定される。この場合、S9−7およびS9−10において、オペレーション部100cは、ピッキングロボットシステム2に、ロボット200に対するエンドエフェクタ220(タイプB)への接続と、当該接続したタイプBのエンドエフェクタ220によってピッキングを行うよう指示する。
このように、ロボット統合管理システム100は、統合アイテムデータベースの情報を活用して、ピッキングロボットシステム2(ロボット200)に接続するエンドエフェクタ220を切り替えることで、複数のアイテムを処理する際にもエンドエフェクタ220の切り替え回数を最小限に抑えながら、より効率の高い処理を実行することができる。
[ピッキングロボットでのデータベース情報活用:把持処理]
図21にデータベースを活用した、ピッキングロボットシステム2によるアイテムの把持処理のパラメータを切り替える手順を示す。
ピッキングロボットシステム2(コントローラ201)は、ピッキングのような物体ハンドリング処理にあたり、ロボット統合管理システム100の統合アイテムデータベースの最新情報を用いて、コントローラ201内の内部データベース201kを更新する。そして、コントローラ201は、ピッキングのような物体ハンドリング処理時に、更新された内部データベース201kの情報を活用する。
S10−1において、アイテムの把持動作を開始するにあたり、統合部201aは、内部データベース201kのアイテム情報に基づいて、対象となるアイテムの易損品フラグの判定を行う。
S10−1において、易損品フラグが「1」であった場合(S10−1でN)、ロボット制御部201gは、S10−2において、吸着圧力を切り替えることにより吸着力を制御するとともに、吸着パッド220aのアイテムへの押付力またはアイテムをフィンガー220cによって挟む場合の挟持圧力を、アイテムを保持可能な範囲における最小値に設定し、アイテムの把持動作を続行する。
他方、S10−1において、易損品フラグが「0」であった場合(S10−1でY)、統合部201aは、S10−3において、内部データベース201kのアイテム情報から、アイテムタイプを判定する。
S10−3において、アイテムタイプが「ボックス」と判定された場合には、手順はS10−4に移行し、「ソリッド」と判定された場合には、手順はS10−5に移行し、「デフォーマブル」と判定された場合には、手順はS10−6に移行する。
S10−4において、ロボット制御部201gは、吸着パッド220aのアイテムへの押付力またはアイテムを挟み込むフィンガー220cを挿入する挿入力の目標値を比較的に大きな値に設定して、アイテムの把持動作を続行する。これは、アイテムがボックスの場合、アイテムの設置状態が安定しており、ある程度の力でエンドエフェクタ220を押し当てても、アイテムが壊れたり、置いてあるアイテムが崩れたりする可能性が低いためである。
S10−5において、ロボット制御部201gは、吸着パッド220aのアイテムへの押付力またはアイテムを挟み込むフィンガー220cを挿入する挿入力の目標値を比較的に小さな値、言い換えるとS10−4の場合よりも小さな値に設定して、アイテムの把持動作を続行する。これは、アイテムがソリッドの場合、アイテムの設置状態が安定しないため、強い力で押し込むとおいてあるアイテムが崩れたりする虞があるからである。
S10−6において、ロボット制御部201gは、吸着パッド220aのアイテムへの押付力またはアイテムを挟み込むフィンガー220cを挿入する挿入力の目標値を略0(ゼロ)に設定して、アイテムの把持動作を続行する。これは、アイテムがデフォーマブルの場合、強い力で押し当てても、アイテムの形が変わってしまい、押し当ての効果が発揮されないからである。
このように本実施形態のピッキングロボットシステム2は、データベースのアイテムタイプデータを活用することで、より効果的なパラメータで物体ハンドリング処理を実行することが可能となる上、易損品フラグ等のフラグデータを用いることで、ハンドリング処理に伴ってアイテムを破損するなどの不都合が生じるのを抑制できる。
[ピッキングロボットでのデータベース情報活用:箱詰め処理]
図22は、データベースを活用した、ピッキングロボットシステム2によるアイテムの箱詰め処理の手順を示す。
ピッキングロボットシステム2(コントローラ201)は、ピッキングのような物体ハンドリング処理にあたり、ロボット統合管理システム100の統合アイテムデータベースの最新情報を用いて、コントローラ201内の内部データベース201kを更新する。そして、コントローラ201は、箱詰めのような物体ハンドリング処理時に、更新された内部データベース201kの情報を活用する。
S11−1において、アイテムの箱詰めを開始するにあたり、統合部201aは、内部データベース201kのアイテム情報から、対象となるアイテムのアイテムタイプの判定を行う。
S11−1において、アイテムタイプが「ボックス」と判定された場合には、手順はS11−2に移行し、「ソリッド」と判定された場合には、手順はS11−3に移行し、「デフォーマブル」と判定された場合には、手順はS11−4に移行する。
S11−2において、統合部201aは、ボックスと判定されたアイテムを容器11b内に箱詰めするアルゴリズムのパラメータをセットする。アルゴリズムは、アイテムがボックス形状であることを考慮したものであって、例えば、BL法のような箱詰めアルゴリズムが用いられる。このアルゴリズムは、より適切な箱詰め位置を算出し、力制御等の押し付け動作により、当該箱詰め位置にアイテムを設置する(第一箱詰めモード)。
S11−3において、統合部201aは、ソリッドと判定されたアイテムを容器11b内に箱詰めするアルゴリズムのパラメータをセットする。アルゴリズムは、アイテムがボックス形状ではないことを考慮したものであって、例えば、アイテムの外接直方体情報等を用いて対象物が収まる箱詰め位置を算出し、力制御等の押し付け動作により、算出した箱詰め位置付近にアイテムを押し当てて設置する(第二箱詰めモード)。
S11−4において、統合部201aは、デフォーマブルと判定されたアイテムを容器11b内のデフォーマブル領域に箱詰めするアルゴリズムのパラメータをセットする。アルゴリズムは、形状が変形するアイテムであることを考慮したものであって、例えば、アイテムの外接直方体情報等を用いて対象物が収まる箱詰め位置を算出し、力制御によらない位置制御により、当該箱詰め位置およびその周辺に力が掛からないよう、箱詰め位置にアイテムを設置する(第三箱詰めモード)。
第三箱詰めモードでの押付力は、第二箱詰めモードでの押付力よりも小さく、第二箱詰めモードでの押付力は、第一箱詰めモードでの押付力よりも小さい。押付力の差は、移動するアイテムの加速度の差となる。よって、第三箱詰めモードでの移送の終点に到着する際の加速度は、第二箱詰めモードでの移送の終点に到着する際の加速度よりも小さく、第二箱詰めモードでの移送の終点に到着する際の加速度は、第一箱詰めモードでの移送の終点に到着する際の加速度よりも小さい。
S11−5において、統合部201aは、容器11bの内部に既に置かれているアイテムの有無を確認するとともに、アイテムが存在する場合、当該既存アイテムの位置情報および姿勢情報を取得する。これらの位置情報および姿勢情報は、既存アイテム情報と称される。
S11−6において、統合部201aは、内部データベース201kのアイテム情報から、箱詰めの対象となるアイテムについて、小物フラグの判定を行う。小物フラグが「1」であった場合(S11−6でN)、手順はS11−7に移行する。また、小物フラグが「0」であった場合(S11−6でY)、手順はS11−8に移行する。
S11−7において、統合部201aは、S11−2、S11−3、またはS11−4で所定の記憶領域にセットされた情報を、小物専用の箱詰め処理のための情報によって、上書きする。
S11−10において、統合部201aは、S11−7で上書きされた情報をもとに、小物を配置可能な領域を探索する。ここで、小物専用の情報による探索とは、例えば、小物フラグが「1」のアイテムに関しては、そのアイテムタイプがボックスであっても、デフォーマブル領域の既存アイテムの上に重畳可能とするという条件での探索である。
S11−8において、統合部201aは、内部データベース401kのアイテム情報から、対象となるアイテムの重量物フラグの判定を行う。ここで、重量物フラグが「0」であった場合(S11−8でY)、手順はS11−9に移行する。他方、重量物フラグが「1」であった場合(S1−8でN)、手順はS11−13に移行する。
S11−9において、統合部201aは、既存アイテム情報から既存アイテムに易損品があるか否かを確認する。ここで、易損品がある場合(S11−9)でY、手順はS11−11に移行する。他方、易損品が無い場合(S11−9でN)、手順はS11−12に移行する。
S11−11において、統合部201aは、S11−2、S11−3、またはS11−4で指定された領域のうち易損品と接触しない領域に対して、セットされた箱詰めアルゴリズムによりアイテムの設置位置を探索する。このS11−11の処理は、これから配置するアイテムを上に載せたり、押し当てたりすることにより、易損品である既存アイテムを破壊することが無いようにするための処理である。
S11−12において、統合部201aは、S11−2、S11−3、またはS11−4で指定された領域に対して、セットされた箱詰めアルゴリズムによりアイテムの設置位置を探索する。
S11−13において、統合部201aは、S11−2、S11−3、またはS11−4で指定された領域のうち、既存アイテムが存在しない領域に対して、セットされた箱詰めアルゴリズムによりアイテムの設置位置を探索する。S11−13の処理は、重量が大きいアイテムを既存のアイテムの上に乗せることにより、既存アイテムが損傷することが無いようにするための処理である。
S11−14において、統合部201aは、S11−10、S11−11、S11−12、またはS11−13の探索の成功および失敗を確認する。探索が成功し、アイテムの配置位置が決定した場合(S11−14でY)、手順はS11−15に移行する。他方、探索が失敗し、アイテムの配置位置が決定しなかった場合(S11−14でN)、一旦箱詰め処理を中止し、容器11bの切り替えなど、次の処理に移行する。
S11−15において、統合部201aは、S11−2、S11−3、S11−4、またはS11−7で設定された各アイテムに適したバラメータを用いて、探索された設置位置にアイテムを箱詰めし、箱詰め処理を完了する。
このように本実施形態のピッキングロボットシステム2は、データベースのアイテムタイプデータを活用することで、より効果的なパラメータで物体ハンドリング処理を実行することが可能となる上、易損品フラグ等のフラグデータを用いることで、ハンドリング処理に伴ってアイテムを破損するなどの不都合が生じるのを抑制できる。
図23Aは、例えば段ボール箱や厚紙の箱など、アイテムタイプがボックスであるアイテム10aを示す。図23Bは、例えば液体容器やブリスターパックなど、アイテムタイプがソリッドであるアイテム10bを示す。図23Cは、例えば衣類や詰め替え容器など、アイテムタイプがデフォーマブルであるアイテム10cを示す。
また、図23Dは、ピッキングロボットシステム2が図22のフローにしたがって、箱詰めした場合の容器11bの平面図である。図23Dに示されるように、容器11b内には、図23Aのアイテム10a、図23Bのアイテム10b、および図23Cのアイテム10cが、それぞれ同種毎に纏められるとともに、互いに異なる位置に、互いに干渉しない状態に配置されている。このように、本実施形態のハンドリングシステム1によれば、アイテムの特性に関する情報を活用した箱詰め動作により、より効率の良い箱詰めを実現することができる。
[データベースの統合システム上でのオフライン活用:現場改善予測]
図24は、物流システム改善提案処理の手順を示す。S12−1において、データ管理部100aは、業務管理部100eのCAE機能等を通じて取得した新規ロボットデータやエンドエフェクタデータにより、統合管理データベース130を更新する。データ解析部100bは、それらの新規ロボットデータやエンドエフェクタデータを取得する。
S12−2において、データ解析部100bは、エンドエフェクタ220の適合性評価に必要な統合アイテムデータベースのアイテム情報等を取得する。
S12−3において、データ解析部100bは、取得したアイテム情報とエンドエフェクタデータを用いて、新規なエンドエフェクタ220と統合アイテムデータベースに登録された複数のアイテムの適合性を評価し、図14Bの場合と同様に、各アイテムに対する統合アイテムデータベースのエンドエフェクタ情報テーブルを更新する。
S12−4において、データ解析部100bは、更新したエンドエフェクタ情報テーブルから、登録されたアイテムに対して、夫々処理可能であるか、不可能であるかを判定する。この場合、複数の把持面に対して、一つでもプライマリもしくはケイパブルと判定された面がある場合には、当該アイテムは処理可能なアイテムであると判定しても良いし、把持面の全数に対する処理可能な把持面の数の比率を判定の結果としてもよい。
S12−5において、データ解析部100bは、S12−4の判定結果に基づいて、データベースに登録されたアイテム、または稼働状況のデータベースから当日や直近の一年のような指定期間内に扱われたアイテムのうち、新規なエンドエフェクタ220で処理可能と判定されたアイテムの数と、処理不可能であると判定されたアイテムの数をカウントし、全アイテム数に対して新規なエンドエフェクタ220を用いた場合に処理可能となるアイテムの比率を算出する。この比率は、推定アイテムカバー率と称される。
S12−6において、データ解析部100bは、新規なエンドエフェクタ220に対する推定アイテムカバー率と、既存のエンドエフェクタ220についての推定アイテムカバー率とを比較することで、新規なエンドエフェクタ220を導入した際の、処理可能アイテム比率の改善率を算出する。
S12−7において、サービス・UI部100dは、S12−5やS12−6で算出された結果を例えばディスプレイのようなUI(表示部)に表示する。また、SoS_API100fは、外部システム310または上位システム320にS12−5やS12−6で算出された結果を通知し、処理を完了する。
図25は、物流システム改善提案機能としてのUIにおける表示例を示す。図25に示されるように、画像Imには、新規なエンドエフェクタ220であるエンドエフェクタCに対する、物流システム改善提案機能処理の結果が示されている。画像Im中の表において、第一列は、ハンドリングシステム1が処理を行っている処理ラインを示し、第二列は、それぞれのラインで用いられている物体ハンドリングロボットが選択可能なエンドエフェクタ220を示している。ここで、ライン1にはエンドエフェクタAが選択可能なロボット200が配置されていることがわかる。同様に、ライン2には、エンドエフェクタAとエンドエフェクタBとの切り替えおよび選択が可能なピッキングロボットシステム2(ロボット200)が配置されていることが分かる。
また、表の第三列は、ロボット統合管理システム100のデータ解析部100bで推定されたそれぞれのラインに流れているアイテムに対する処理可能なアイテムの比率の推定値が表示されている。第四列は、実際のラインに流れたアイテムの稼働状況から、処理が成功した比率の実績値を示す。第三列と第四列の差は、推定と実績の差である。
また、表の第五列は、実際に処理が行われた処理件数を示し、第六列は、それぞれのラインにおけるエンドエフェクタ220の設置状態を示す。また、第4行は、ライン2に対して、エンドエフェクタCを新規に導入した場合の、物流システム改善提案機能の処理結果を示す。この結果から、ライン2にエンドエフェクタCを導入した場合、自動で処理できるアイテムの比率が現在の80%程度から、88%程度に上昇することがわかる。また、実際にエンドエフェクタCで処理されるアイテムの件数は900件と推定されていることがわかる。
このようにハンドリングシステム1は、ロボット統合管理システム100による物流システム改善提案機能を用いることで、新規なエンドエフェクタ220の導入効果を実際に導入する前に見積もることが可能となる。さらに、この結果をUIに表示することで、顧客とのコミュニケーションを効果的に実施することが可能となる。
以上、説明したように、本実施形態によれば、ハンドリングシステム1は、新しいアイテム(対象物10)のデータが無いような場合にあっても、当該新しいアイテムを自動的に計測し分析することにより、より適切に処理することができる。
また、本実施形態によれば、ハンドリングシステム1は、アイテムを把持しながら計測する形状登録モード(第二モード)で動作することにより、把持によって生じるアイテムの実際の状態の変化を計測することができるので、アイテムをより適切にあるいはより精度良く処理しやすくなる。
また、本実施形態によれば、ハンドリングシステム1は、アイテムを位相しながら計測する形状登録モードで動作することにより、位相によって生じるアイテムの実際の状態の変化を計測することができるので、アイテムをより適切にあるいはより精度良く処理しやすくなるとともに、アイテムを移送せずに計測するだけのシステムと比較して、スループットをより高くすることができる。
また、本実施形態によれば、データ解析部100bは、アイテムを、変形しやすさ、例えば、所定の大きさの外力に対する変形量に応じて分類し、当該分類に応じた箱詰めを実行できるので、例えば、アイテムへのダメージがより少ない収容状態のような、より不都合の少ない容器11b内でのアイテムの収容状態が得られる。
また、本実施形態によれば、データ解析部100bは、アイテムを、外形状、例えば、略直方体であるか否か、例えば、外面が略直方体状の所定領域内に収まるか否か、に応じて分類し、当該分類に応じた箱詰めを実行できるので、例えば、よりアイテムの集積度が高い収容状態のような、より不都合の少ない容器11b内でのアイテムの収容状態が得られる。
また、本実施形態では、ロボット統合管理システム100(ロボット管理システム)が、複数のピッキングロボットシステム2(ロボットシステム)で共用化されているので、ピッキングロボットシステム2のそれぞれでアイテムを計測したり分析したりするシステムに比べて、より処理効率の高いハンドリングシステム1を実現できる。
実施形態において、ロボット統合管理システム100、マスタ装置110、スレーブ装置120、コントローラ201は、それぞれ、一つ以上のコンピュータによって構成される。ロボット統合管理システム100、マスタ装置110、スレーブ装置120、コントローラ201の、それぞれの演算処理や制御は、ソフトウエアによって実行されてもよいし、ハードウエアによって実行されてもよい。また、ロボット統合管理システム100、マスタ装置110、スレーブ装置120、コントローラ201による演算処理や制御には、ソフトウエアによる演算処理や制御とハードウエアによる演算処理や制御とが含まれてもよい。
ソフトウエアによる処理の場合にあっては、ロボット統合管理システム100、マスタ装置110、スレーブ装置120、コントローラ201は、それぞれ、図26に示されるような、コンピュータ1000によって構成される。コンピュータ1000は、少なくとも、プロセッサ1001(回路)、RAM1002、ROM1003、およびHDDやSSDのような補助記憶装置1004等を有し、プロセッサ1001は、ROM1003や補助記憶装置1004に記憶されたプログラム(アプリケーション)を読み出して実行する。プロセッサ1001は、プログラムにしたがって動作することにより、ロボット統合管理システム100、マスタ装置110、スレーブ装置120、コントローラ201のそれぞれに含まれる各機能ブロックとして動作する。この場合、プログラムは、上記各機能ブロックに対応するプログラムモジュールを含む。
プログラムは、それぞれインストール可能な形式または実行可能な形式のファイルでCD−ROMや、FD、CD−R、DVD、USBメモリのような、コンピュータ1000で読み取り可能な記録媒体に記録されて提供されうる。記録媒体は、プログラムプロダクトとも称されうる。また、プログラムは、通信ネットワークに接続されたコンピュータの記憶部に記憶され、ネットワーク経由でダウンロードされることによってコンピュータ1000に導入されうる。また、プログラムは、ROM1003等に予め組み込まれてもよい。
また、コンピュータ1000の少なくとも一部がハードウエアによって構成される場合、当該コンピュータ1000には、例えば、field programmable gate array(FPGA)や、application specific integrated circuit(ASIC)等が含まれうる。
また、図示されないが、コンピュータ1000には、適宜、外部インタフェースや、各種UI装置が接続され、利用されうる。
上記実施形態のロボット統合管理システム100では、マスタ装置110が、データ管理部100a、データ解析部100b、サービス・UI部100d、業務管理部100e、およびSoS_API100fとして機能し、スレーブ装置120が、オペレーション部100cとして機能した。しかしながら、ロボット統合管理システム100における機能の区分は、このような態様には限定されない。また、ロボット統合管理システム100は、一つのコンピュータによって構成されてもよいし、三つ以上のコンピュータによって構成されてもよい。
以上、本発明の実施形態を例示したが、上記実施形態は一例であって、発明の範囲を限定することは意図していない。上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。これら実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。また、各構成や形状等のスペック(構造や、種類、方向、型式、大きさ、長さ、幅、厚さ、高さ、数、配置、位置、材質等)は、適宜に変更して実施することができる。例えば、上記ハンドリングシステムは、上述した一の容器内から別の容器内に対象物を搬送する物体ハンドリングシステム以外のハンドリングシステムにも適用可能である。