(57)【要約】【課題】障害物に接触せずに格納手段の物品を出し入れする。【解決手段】格納手段から物品を取り出すロボットと、前記ロボットの外部又は内部に設けられ、前記ロボットを制御する演算部とを備えるロボットシステムであって、前記ロボットは、前記物品を保持可能なグリッパと、前記グリッパの位置姿勢を変更可能なアームと、当該ロボットの位置姿勢を変更可能な走行部とを有し、前記演算部は、前記格納手段の形状と、前記ロボットの形状と、取り出される対象物品の形状と、前記格納手段内の前記対象物品の位置姿勢とに基づいて、前記ロボットの停止位置姿勢及び前記アームの目標関節角度を算出し、前記ロボットは、前記停止位置姿勢へ移動し、前記アームの関節角度を前記目標関節角度へ変更し、前記格納手段から前記対象物品を取り出すことを特徴とする。【選択図】図５
2018020423.tif 000002
【特許請求の範囲】
【請求項１】
ロボットシステムであって、
格納手段から物品を取り出すロボットと、
前記ロボットの外部又は内部に設けられ、前記ロボットを制御する演算部とを備え、
前記ロボットは、
前記物品を保持可能なグリッパと、
前記グリッパの位置姿勢を変更可能なアームと、
当該ロボットの位置姿勢を変更可能な走行部とを有し、
前記演算部は、前記格納手段の形状と、前記ロボットの形状と、取り出される対象物品の形状と、前記格納手段内の前記対象物品の位置姿勢とに基づいて、前記ロボットの停止位置姿勢及び前記アームの目標関節角度を算出し、
前記ロボットは、
前記停止位置姿勢へ移動し、
前記アームの関節角度を前記目標関節角度へ変更し、
前記格納手段から前記対象物品を取り出すことを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記演算部は、前記ロボットが前記格納手段に近づいた状態である第１の前記停止位置姿勢及び第１の前記目標関節角度を実現するために、前記アームの関節角度を前記第１の目標関節角度とした状態で、前記ロボットが障害物と干渉せずに現在の位置姿勢から前記第１の停止位置姿勢へ移動する経路を算出することを特徴とするロボットシステム。
【請求項３】
請求項２に記載のロボットシステムであって、
前記演算部は、前記ロボットが前記障害物と干渉せずに前記対象物品を保持する前記第１の停止位置姿勢と前記第１の目標関節角度との組み合わせを算出することを特徴とするロボットシステム。
【請求項４】
請求項１に記載のロボットシステムであって、
前記演算部は、前記ロボットが前記格納手段から遠ざかった状態である第２の前記停止位置姿勢及び第２の前記目標関節角度を実現するために、前記アームの関節角度が現在の状態で、前記ロボットが障害物と干渉せずに現在の位置姿勢から前記第２の停止位置姿勢へ移動する経路を算出することを特徴とするロボットシステム。
【請求項５】
請求項４に記載のロボットシステムであって、
前記演算部は、前記ロボットが前記対象物品を保持した状態で前記格納手段から離隔した前記第２の停止位置姿勢と前記第２の目標関節角度との組み合わせを算出することを特徴とするロボットシステム。
【請求項６】
請求項１に記載のロボットシステムであって、
前記演算部は、前記格納手段の形状と、前記ロボットの形状と、前記対象物品の形状と、前記対象物品の位置姿勢とに基づいて、前記ロボットを前記停止位置姿勢へ移動する制御と前記アームの関節角度を前記目標関節角度へ変更する制御との順序を選択することを特徴とするロボットシステム。
【請求項７】
請求項１に記載のロボットシステムであって、
物品計測センサを有し、
前記ロボットは、前記物品計測センサが前記格納手段に格納された物品を計測可能な位置姿勢へ移動し、
前記物品計測センサは、前記計測可能な位置姿勢へ前記ロボットが移動した後、前記格納手段に格納された物品を計測し、
前記演算部は、前記計測の結果に基づいて、前記格納手段内の前記対象物品の位置姿勢を認識することを特徴とするロボットシステム。
【請求項８】
ロボットシステムであって、
格納手段から物品を取り出すロボットと、
前記格納手段を搬送する搬送車と、
前記ロボットの外部又は内部に設けられ、前記ロボットを制御する演算部とを備え、
前記ロボットは、
前記物品を保持可能なグリッパと、
前記グリッパの位置姿勢を変更可能なアームとを有し、
前記演算部は、前記格納手段の形状と、前記ロボットの形状と、取り出される対象物品の形状と、前記格納手段内の前記対象物品の位置姿勢とに基づいて、前記格納手段の停止位置姿勢及び前記アームの目標関節角度を算出し、
前記搬送車は、前記停止位置姿勢へ前記格納手段を搬送し、
前記ロボットは、
前記アームの関節角度を前記目標関節角度へ変更し、
前記格納手段から前記対象物品を取り出すことを特徴とするロボットシステム。
【請求項９】
請求項８に記載のロボットシステムであって、
前記演算部は、前記格納手段が前記ロボットに近づいた状態である第１の前記停止位置姿勢及び第１の前記目標関節角度を実現するために、前記アームの関節角度を前記第１の目標関節角度とした状態で、前記格納手段が障害物と干渉せずに現在の位置姿勢から前記第１の停止位置姿勢へ移動する経路を算出することを特徴とするロボットシステム。
【請求項１０】
請求項９に記載のロボットシステムであって、
前記演算部は、前記格納手段が前記障害物と干渉せずに、前記ロボットが前記対象物品を保持する前記第１の停止位置姿勢と前記第１の目標関節角度との組み合わせを算出することを特徴とするロボットシステム。
【請求項１１】
請求項８に記載のロボットシステムであって、
前記演算部は、前記格納手段が前記ロボットから遠ざかった状態である第２の前記停止位置姿勢及び第２の前記目標関節角度を実現するために、前記アームの関節角度が現在の状態で、前記格納手段が障害物と干渉せずに現在の位置姿勢から前記第２の停止位置姿勢へ搬送される経路を算出することを特徴とするロボットシステム。
【請求項１２】
請求項１１に記載のロボットシステムであって、
前記演算部は、前記ロボットが前記対象物品を保持した状態で、前記格納手段が前記ロボットから離隔した前記第２の停止位置姿勢と前記第２の目標関節角度との組み合わせを算出することを特徴とするロボットシステム。
【請求項１３】
請求項８に記載のロボットシステムであって、
前記演算部は、前記格納手段の形状と、前記ロボットの形状と、前記対象物品の形状と、前記対象物品の位置姿勢とに基づいて、前記搬送車が前記格納手段を前記停止位置姿勢へ搬送する制御と前記アームの関節角度を前記目標関節角度へ変更する制御との順序を選択することを特徴とするロボットシステム。
【請求項１４】
請求項８に記載のロボットシステムであって、
物品計測センサを有し、
前記搬送車は、前記物品計測センサが前記格納手段に格納された物品を計測可能な位置姿勢へ、前記格納手段を搬送し、
前記ロボットは、前記計測可能な位置姿勢へ前記格納手段が搬送された後、前記格納手段に格納された物品を計測し、
前記演算部は、前記計測の結果に基づいて、前記格納手段内の前記対象物品の位置姿勢を認識することを特徴とするロボットシステム。
【請求項１５】
ロボットシステムによる物品のピッキング方法であって、
格納手段から物品を取り出すロボットと、
前記ロボットの外部又は内部に設けられ、前記ロボットを制御する演算部と、
前記ロボット又は前記格納手段を搬送する搬送車に設けられ、前記ロボットと前記格納手段との相対的な位置姿勢を変更可能な走行部とを備え、
前記ロボットは、前記物品を保持可能なグリッパと、前記グリッパの位置姿勢を変更可能なアームとを有し、
前記方法は、
前記演算部が、前記格納手段の形状と、前記ロボットの形状と、取り出される対象物品の形状と、前記格納手段内の前記対象物品の位置姿勢とに基づいて、前記ロボットと前記格納手段との相対的な位置姿勢を決定する前記走行部の停止位置姿勢及び前記アームの目標関節角度を算出し、
前記走行部が、前記停止位置姿勢へ移動し、
前記ロボットが、前記アームの関節角度を前記目標関節角度へ変更し、
前記ロボットが、前記格納手段から前記対象物品を取り出すことを特徴とするピッキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、格納手段（棚、容器など）から物品を出し入れするロボットシステムに関する。
【背景技術】
【０００２】
近年、多様化する消費者ニーズに柔軟に対応するため、通信販売倉庫のような多品目を取り扱う倉庫や多品種少量生産工場のような多品目を取り扱う工場が増加傾向にある。このような倉庫や工場におけるピッキング作業は、注文された商品又は製品の生産に必要な部品を棚や容器から取り出す作業である。従来、ピッキング作業は人手で行われていたが、労働力の不足や生産性向上の点から、ロボットによるピッキング作業が必要となっている。
【０００３】
本技術分野の背景技術として、以下の先行技術がある。特許文献１（特開２０１５−２１５６５１号公報）には、アームを搭載したロボットであって、棚の位置まで移動し、商品を取り出すロボットが開示されている。また、特許文献２（特表２０１５−５３５７８７号公報）には、搬送車が棚を人の作業エリアまで搬送するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２１５６５１号公報
【特許文献２】特表２０１５−５３５７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に示すロボットは、該当の物品が格納されている棚の前まで移動し、到達地点において物品を把持するようにアームを動作させるが、このような手順では、高範囲まで届くリーチが長いアームを装着する必要があり、リーチが長いアームを棚や他の障害物に接触させないように動作させるために、多くの関節自由度が必要となり、システムが高価になる。
【０００６】
また、特許文献２に示すシステムでは、棚を巡回する人の動作は自動化されるものの、棚から商品を取り出す作業は人手を必要とする。
【０００７】
本発明では、リーチが短く関節自由度が少ないアームを有するロボットでも、障害物に接触せずに格納手段の物品を出し入れ可能なロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ロボットシステムであって、格納手段から物品を取り出すロボットと、前記ロボットの外部又は内部に設けられ、前記ロボットを制御する演算部とを備え、前記ロボットは、前記物品を保持可能なグリッパと、前記グリッパの位置姿勢を変更可能なアームと、当該ロボットの位置姿勢を変更可能な走行部とを有し、前記演算部は、前記格納手段の形状と、前記ロボットの形状と、取り出される対象物品の形状と、前記格納手段内の前記対象物品の位置姿勢とに基づいて、前記ロボットの停止位置姿勢及び前記アームの目標関節角度を算出し、前記ロボットは、前記停止位置姿勢へ移動し、前記アームの関節角度を前記目標関節角度へ変更し、前記格納手段から前記対象物品を取り出すことを特徴とする。
【発明の効果】
【０００９】
本発明の一態様によれば、障害物に接触せずに格納手段の物品を出し入れできる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】実施例１のロボットシステムの構成を示す図である。
【図２】格納棚内の物品をピッキングする実施例１のロボットシステムを示す図である。
【図３】容器内の物品をピッキングする実施例１のロボットシステムを示す図である。
【図４】実施例１のロボットの動作を制御する処理のフローチャートである。
【図５】実施例１のロボットの停止位置姿勢を示す図である。
【図６】実施例２のロボットシステムの構成を示す図である。
【図７】実施例２のロボットの停止位置姿勢を示す図である。
【図８】実施例２のロボットが物品を保持するまでの動作を制御する処理のフローチャートである。
【図９】実施例２のロボットが物品を保持するまでの動作を示す図である。
【図１０】実施例２のロボットが干渉回避移動軌跡に従って走行する動作を示す図である。
【図１１】実施例２のロボットが物品を保持した後の動作を制御する処理のフローチャートである。
【図１２】実施例２のロボットが物品を保持した後の動作を示す図である。
【図１３】実施例３のロボットシステムの構成を示す図である。
【図１４】格納棚内の物品をピッキングする実施例３のロボットシステムを示す図である。
【図１５】容器内の物品をピッキングする実施例３のロボットシステムを示す図である。
【図１６】実施例３のロボットの動作を制御する処理のフローチャートである。
【図１７】実施例３の格納棚の停止位置姿勢を示す図である。
【図１８】実施例４のロボットシステムの構成を示す図である。
【図１９】実施例４の格納棚の停止位置姿勢を示す図である。
【図２０】実施例４のロボットが物品を保持するまでの動作を制御する処理のフローチャートである。
【図２１】実施例４のロボットが物品を保持するまでの動作を示す図である。
【図２２】実施例４のロボットが干渉回避移動軌跡に従って走行する動作を示す図である。
【図２３】実施例４のロボットが物品を保持した後の動作を制御する処理のフローチャートである。
【図２４】実施例４のロボットが物品を保持した後の動作を示す図である。
【発明を実施するための形態】
【００１１】
＜実施例１＞
図１は、実施例１のロボットシステムの構成を示す図である。
【００１２】
実施例１のロボットシステムは、ロボット１０ａと、全体管理装置２００とで構成される。
【００１３】
ロボット１０ａは、先端にグリッパ１１を有するアーム１２と、グリッパ１１が保持する物品を認識する物品計測センサ１８ａとを有する。また、ロボット１０ａのベース部には、走行部１３ａと、周囲環境計測センサ１７ａと、演算部１４と、吸引力発生部１５と、電力供給部１６とが設けられる。
【００１４】
アーム１２は、ベース部上に起立する柱から横方向に延伸し、先端に設けられたグリッパ１１で物品を保持する。また、アーム１２は、複数の関節を有し、該関節においてアーム１２を屈曲させ、アーム１２を縮退及び延伸し、グリッパ１１の位置を移動する。本実施例のアーム１２は、３箇所の関節でグリッパ１１を前後及び上下に移動させ、グリッパ１１の向きを変えることができるが、より複雑な動きができるアーム（例えば、６軸アーム、横方向に移動可能な水平多関節アーム）でもよい。
【００１５】
グリッパ１１は、アーム１２の先端に設けられ、物品に密着して吸着することによって、アーム１２が物品を保持する。グリッパ１１は、吸着式グリッパではなく、複数の指を有する多指ハンドグリッパ、２爪単関節グリッパ、２爪平行グリッパなど様々な方式のグリッパを採用できる。
【００１６】
物品計測センサ１８ａは、アーム１２の先端に設けられ、グリッパ１１が保持する物品を認識するための距離画像カメラで構成される。物品計測センサ１８ａは、物品を撮影するグレー又はカラーのカメラ（撮像素子）や赤外線カメラなどでもよく、距離画像カメラとカメラとの組合せでもよい。本実施例では、物品計測センサ１８ａは、ロボット１０ａの一構成であるが、ロボット１０ａと別に構成してもよい。例えば、物品計測センサ１８ａを、格納棚１００ａに設けたり、格納棚１００ａが設置される倉庫内の複数箇所に固定的に設けてもよい。
【００１７】
ロボット１０ａのベース部に設けられる走行部１３ａは、回転するタイヤと、該タイヤを回転駆動するモータとで構成される。タイヤは対向して二つ設けられ、各タイヤの回転方向や回転数を制御することによって、ロボット１０ａが走行し、方向を転換し、その場で回転できる。ロボット１０ａのベース部の下部には、図示を省略する補助輪が設けられてもよい。
【００１８】
周囲環境計測センサ１７ａは、レーザ光照射部とレーザ光受光部とを有する二次元又は三次元のレーザスキャナで構成され、周囲にレーザ光を照射し、反射光を測定する。周囲環境計測センサ１７ａが測定したレーザ反射光によって、周囲の障害物（壁、格納棚など）までの距離を算出でき、該算出された距離を連結して周囲の障害物の位置及び大きさを算出できる。
【００１９】
演算部１４は、プロセッサ（ＣＰＵ）、メモリ、補助記憶装置及び通信インターフェースを有する計算機によって構成される。本実施例では、演算部１４は、ロボット１０ａの一構成であるが、ロボット１０ａと別に設け、ロボット１０ａと通信可能に構成してもよい。
【００２０】
ＣＰＵは、メモリに格納されたプログラムを実行する。メモリは、不揮発性の記憶デバイスであるＲＯＭ及び揮発性の記憶デバイスであるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶デバイスであり、ＣＰＵが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００２１】
補助記憶装置は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置によって構成され、ＣＰＵが実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置から読み出されて、メモリにロードされて、ＣＰＵによって実行される。また、補助記憶装置は、格納棚１００の形状データ、ロボット１０の形状や機構（動作範囲）のデータ、物品１０１の形状や大きさ、位置姿勢のデータ、物品１０１を保持する際の物品１０１に対するグリッパ１１の相対位置姿勢のデータ、ロボット１０や格納棚１００の位置姿勢のデータ、倉庫の形状や通路のデータを格納する。
【００２２】
通信インターフェースは、所定のプロトコルに従って、他の装置（例えば、全体管理装置２００）との通信を制御するネットワークインターフェース装置である。
【００２３】
ＣＰＵが実行するプログラムは、リムーバブルメディア（フラッシュメモリ、ＣＤ−ＲＯＭなど）又はネットワークを介して演算部１４に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、演算部１４は、リムーバブルメディアからデータを読み込むインターフェース（例えば、ＵＳＢポート）を有するとよい。なお、演算部１４において、プログラムによって実装される機能ブロックの全部又は一部は、物理的な集積回路（例えば、Field-Programmable Gate Array）等によって構成されてもよい。
【００２４】
吸引力発生部１５は、コンプレッサ（又は、ポンプ）で構成され、圧縮空気（又は、低圧空気）を生成して、グリッパ１１に供給することによって、グリッパ１１の吸引力や把持力を生成する。
【００２５】
電力供給部１６は、電池であり、走行部１３ａ、演算部１４、周囲環境計測センサ１７ａ、物品計測センサ１８ａなどのロボット１０ａの各部に電力を供給する。
【００２６】
全体管理装置２００は、プロセッサ（ＣＰＵ）、メモリ、補助記憶装置及び通信インターフェースを有する計算機によって構成される。全体管理装置２００とロボット１０ａとは無線通信によって接続される。
【００２７】
ＣＰＵは、メモリに格納されたプログラムを実行する。メモリは、不揮発性の記憶デバイスであるＲＯＭ及び揮発性の記憶デバイスであるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶デバイスであり、ＣＰＵが実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００２８】
補助記憶装置は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）等の大容量かつ不揮発性の記憶装置によって構成され、ＣＰＵが実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置から読み出されて、メモリにロードされて、ＣＰＵによって実行される。また、補助記憶装置は、格納棚１００の形状データ、ロボット１０の形状や機構（動作範囲）のデータ、物品１０１の形状や大きさ、位置姿勢のデータ、物品１０１を保持する際の物品１０１に対するグリッパ１１の相対位置姿勢のデータ、ロボット１０や格納棚１００の位置姿勢のデータ、倉庫の形状や通路のデータを格納してもよい。
【００２９】
ＣＰＵが実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して全体管理装置２００に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、全体管理装置２００は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００３０】
全体管理装置２００は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【００３１】
また、全体管理装置２００において、プログラムによって実装される機能ブロックの全部又は一部は、物理的な集積回路（例えば、Field-Programmable Gate Array）等によって構成されてもよい。
【００３２】
次に、図２及び図３を参照して、ロボット１０ａによる物品のピッキングを説明する。
【００３３】
図２は、格納棚内の物品をピッキングする実施例１のロボットシステムを示す図である。
【００３４】
図２に示すロボットシステムは、ロボット１０ａ、格納棚１００ａ及び全体管理装置２００（図示省略）を含む。ロボット１０ａは、格納棚１００ａから取り出される物品１０１ａの正面に移動し、当該物品１０１ａの側面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１ａを格納棚１００ａから取り出す。
【００３５】
図３は、容器内の物品をピッキングする実施例１のロボットシステムを示す図である。
【００３６】
図３に示すロボットシステムは、ロボット１０ａ、格納容器１５０ａ及び全体管理装置２００（図示省略）を含む。ロボット１０ａは、格納容器１５０ａから取り出される物品１０１ａの正面に移動し、当該物品１０１ａの上面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１ａを格納容器１５０ａから取り出す。
【００３７】
なお、実施例１において物品が格納される格納手段として格納棚１００ａ及び格納容器１５０ａについて説明したが、物品を格納し保管できる物であれば、どの様な形態でもよい。
【００３８】
図４は、実施例１のロボット１０ａの動作を制御する処理のフローチャートである。図４に示す処理を行うプログラムは、ロボット１０ａの演算部１４のＣＰＵが実行する。
【００３９】
まず、ロボット１０ａは、格納棚１００ａから物品１０１ａを取り出す指令を全体管理装置２００から受信すると（１００１）、格納棚１００ａの手前、すなわち格納棚１００ａに格納された物品１０１を計測できる位置まで自律的に移動する（１００２）。なお、本明細書において、自律的に移動するとは、演算部１４がロボット１０ａの位置姿勢（自己位置）を推定し、計画した経路と自己位置との位置関係からロボット１０ａが経路に沿って移動するように走行部１３ａを制御することを意味する。自己位置の推定は、周囲環境計測センサ１７ａで計測した周囲の障害物の位置及び大きさと、演算部１４の補助記憶装置に格納された倉庫の形状データと照合することで行う。また、経路は、長距離経路と短距離経路に分けられ、１００２の経路は長距離経路に該当する。長距離経路は、倉庫の通路データを用いて、ロボット１０ａの現在地から目的地（ここでは、格納棚１００ａに格納された物品１０１を計測できる位置）までを通路に沿って結ぶことによって計画され、ロボット１０ａの演算部１４が計画しても、全体管理装置２００が計画してロボット１０ａへの指令に含めてもよい。また、交差点など他のロボット１０と接近する可能性が高い箇所に侵入する際には、全体管理装置２００と通信し、交差点への侵入可否を問い合わせてもよい。一方、短距離経路は、ロボット１０ａの演算部１４により、現在地から目的地までを単純に直線で結ぶことによって、あるいは干渉回避移動軌跡９０４として計画される。干渉回避移動軌跡９０４は後述する。
【００４０】
そして、ロボット１０ａは、物品計測センサ１８ａによって格納棚１００ａに格納された物品１０１を計測する（１００３）。そして、演算部１４は、物品計測センサ１８ａによる計測結果に対し、予め登録されている物品１０１の形状や大きさを用いて、格納棚１００ａ内の各物品１０１の詳細な位置姿勢を算出する（１００４）。例えば、物品計測センサ１８ａが物品１０１を含んだ距離画像を取得し、予め登録されている物品１０１の形状と大きさに合致する部分を距離画像の中から探索することによって、各物品１０１の詳細な位置姿勢を算出できる。なお、全体管理装置２００から格納棚１００ａ内の物品１０１の詳細な位置姿勢を取得できる場合、ステップ１００３及び１００４の処理を省略できる。
【００４１】
そして、演算部１４は、物品１０１ａを保持するためのロボット１０ａの停止位置姿勢９００ａを算出する（１００５）。この算出は、例えば、演算部１４によるシミュレーションによって実現される。まず、予め定められた物品１０１ａを保持するための物品１０１ａから見たグリッパ１１の相対位置姿勢のデータと、１００４で算出した物品１０１ａの位置姿勢から、物品１０１ａを保持するためのグリッパ１１の絶対位置姿勢を算出する。続いて、シミュレーション内において、ロボット１０ａの仮の停止位置姿勢を設定し、ロボット１０ａの形状や機構のデータを用いて、その仮の停止位置姿勢において算出したグリッパ１１の絶対位置姿勢をロボット１０ａが取ることが可能か不可能かを確認する。この確認は逆運動学問題を解くことによって実現できる。この確認の結果が可能である場合は、仮の停止位置姿勢を停止位置姿勢９００ａとして出力する。確認の結果が不可能である場合は、仮の停止位置姿勢の微小変更し、グリッパ１１の絶対位置姿勢の実現可否の確認を再度実行する。これを、確認の結果が可能となるまで繰り返す。本実施例において、物品１０１ａを保持するための物品１０１ａから見たグリッパ１１の相対位置姿勢は、物品１０１ａの正面の中心で垂直な方向であることから、物品１０１ａを取り出すためのロボット１０ａの停止位置は、物品１０１ａの正面（ロボット１０ａに向いた面）に正対する位置となる。
【００４２】
その後、ロボット１０ａは、算出された停止位置姿勢９００ａへ自律的に移動する（１００６）。このときの経路は短距離経路に該当し、ロボット１０ａは、現在地にて停止位置姿勢９００ａの位置に向かう方向へとその場で旋回し、停止位置姿勢９００ａの位置まで直線的に移動し、停止位置姿勢９００ａの位置でその場旋回することによって姿勢を合わせ、最終的にロボット１０ａは停止位置姿勢９００ａとなる。
【００４３】
物品１０１ａを保持可能な位置姿勢へグリッパ１１が移動するように、アーム１２の関節の角度を目標関節角度９０１ａに変更する（１００７）。１００５における逆運動学問題を解いた結果が、グリッパ１１の絶対位置姿勢をロボット１０ａが取るためのアーム１２の目標関節角度９０１ａとなる。例えば、現在の関節角度から一定の角速度で目標関節角度９０１ａへと関節角度を徐々に推移させていく方法がある。その結果、取り出すべき物品１０１ａの正面に正対して、物品１０１ａを吸着可能なように、グリッパ１１が移動する。
【００４４】
次に、グリッパ１１が物品１０１ａを保持する（１００８）。例えば、物品１０１ａに面接触したグリッパ１１を減圧し、グリッパ１１に物品１０１ａを吸着する。
【００４５】
そして、物品１０１ａを保持したまま格納棚１００ａから引き出すように、アーム１２の関節角度を終了関節角度９０２へ変更し、グリッパ１１を移動する（１００９）。例えば、グリッパ１１の姿勢及び物品１０１ａの姿勢を１００８の状態のまま変更することなく、格納棚１００ａから物品１０１ａが完全に離れる位置まで、格納棚１００ａの正面に対し垂直に移動させる。格納棚１００ａから物品１０１ａが完全に離れたときのアーム１２の関節角度が終了関節角度９０２となる。
【００４６】
その後、演算部１４は、アーム１２の関節角度が終了関節角度９０２へ変更されたことを確認し、全体管理装置２００へ作業完了報告を送信する（１０１０）。
【００４７】
図５は、実施例１の物品１０１の位置姿勢に対応するロボット１０ａの停止位置姿勢９００を示す図である。
【００４８】
前述したように、実施例１では、グリッパ１１が物品１０１ａを保持できる位置にロボット１０ａが停止する。すなわち、取り出すべき物品１０１の位置姿勢によってロボットが停止する位置姿勢が異なる。例えば、格納棚１００ａの下の間口の中列上段の物品１０１ａを取り出す場合、ロボット１０ａは停止位置姿勢９００ａに停止する。また、格納棚１００ａの下の間口の左列上段の物品１０１ｅを取り出す場合、ロボット１０ａは停止位置姿勢９００ｅに停止する。さらに、格納棚１００ａの下の間口の左列上段の物品１０１ｉを取り出す場合、ロボット１０ａは停止位置姿勢９００ｉに停止する。
【００４９】
なお、停止位置姿勢９００及び目標関節角度９０１は、グリッパ１１の種類やアーム１２に対する取り付け位置姿勢、物品１０１の形状や大きさによって異なる。このため、演算部１４は、グリッパ１１が物品１０１にアクセスする方向の情報を用いて、停止位置姿勢９００及び目標関節角度９０１を算出する。
【００５０】
ここまで、実施例１において、図２に示す格納棚１００ａ内に格納されている物品を取り出す場合について説明したが、図３に示す格納容器１５０ａに格納された物品１５１ａを取り出す場合も同様である。すなわち、グリッパ１１が物品の上面に正対して、物品１５１ａを吸着可能な位置に、ロボット１０ａが移動する。
【００５１】
以上に説明したように、実施例１では、物品１０１ａを保持するためのロボット１０ａの停止位置姿勢９００ａを算出し、当該停止位置姿勢９００ａへ移動した後に、グリッパ１１が物品１０１ａを保持するので、グリッパ１１が物品１０１ａに正しく接触できる位置から物品１０１ａにアクセスでき、違う物品１０１を取り出したり、物品１０１ａを取りこぼしたりするミスが軽減できる。
【００５２】
＜実施例２＞
本実施例では、格納棚１００の奥に置かれた物品１０１を取り出すことが可能な格納棚内物品ピッキングロボットシステムの例を説明する。
【００５３】
図６は、実施例２のロボットシステムの構成を示す図である。
【００５４】
実施例２のロボットシステムは、ロボット１０ａ、格納棚１００Ｍ及び全体管理装置２００を含む。ロボット１０ａは、格納棚１００Ｍから取り出される物品１０１Ｍの正面に移動し、当該物品１０１Ｍの側面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１Ｍを格納棚１００Ｍから取り出す。
【００５５】
実施例２では、格納棚１００Ｍの奥に置かれている物品１０１Ｍをロボット１０ａが取り出す例を説明する。格納棚１００Ｍの奥に置かれている物品１０１Ｍを取り出す場合、ロボット１０ａが格納棚１００Ｍに近づいた状態で、物品１０１Ｍを吸着するためにアーム１２を目標関節角度９０１Ｍへ変更すると、格納棚１００Ｍの間口を区画する棚板に当接することがある。また、ロボット１０ａが物品１０１Ｍを保持した後、直ちにアーム１２を終了関節角度９０２へ変更すると、格納棚１００Ｍの間口を区画する棚板に当接することがある。このため、格納棚１００Ｍの奥に置かれている物品１０１Ｍを取り出す場合には、特別の手順が必要となる。
【００５６】
図７は、実施例２の格納棚１００Ｍの奥に置かれている物品１０１Ｍを取り出すためのロボット１０ａの停止位置姿勢９００Ｍを示す図である。
【００５７】
前述したように、実施例２では、グリッパ１１が物品１０１Ｍを保持できる位置にロボット１０ａが停止する。すなわち、取り出すべき物品１０１によってロボットの停止位置姿勢が異なる。例えば、格納棚１００Ｍの下の間口の左列上段の物品１０１Ｍを取り出す場合、ロボット１０ａは停止位置姿勢９００Ｍに停止する。停止位置姿勢９００Ｍは、格納棚１００Ｍの最前面の物品１０１を取り出すための停止位置姿勢９００ｅより格納棚１００Ｍに近い位置である。
【００５８】
次に、図８及び図９を参照して、実施例２のロボット１０ａが格納棚１００Ｍの奥に置かれた物品１０１Ｍを取り出す動作を説明する。図８は、実施例２のロボット１０ａが物品１０１Ｍを保持するまでの動作を制御する処理のフローチャートである。図９は、実施例２のロボット１０ａが物品１０１Ｍを保持するまでの動作を示す図である。
【００５９】
まず、ロボット１０ａは、図４のステップ１００１から１００４を実行する（１１０１）。すなわち、ロボット１０ａは、格納棚１００Ｍから物品１０１Ｍを取り出す指令を全体管理装置２００より受信し（１００１）、格納棚１００Ｍに格納された物品１０１を計測できる位置まで自律的に移動し（１００２）、物品計測センサ１８ａによって格納棚１００Ｍに格納された物品１０１を計測し（１００３）、格納棚１００Ｍ内の各物品１０１の詳細な位置姿勢を算出する（１００４）。この状態では、図９（ａ）に示すように、ロボット１０ａは、取り出すべき物品１０１Ｍや周囲の状況を見渡せる、格納棚１００Ｍから離れた位置にいる。
【００６０】
そして、演算部１４は、物品１０１Ｍを保持するためのロボット１０ａの停止位置姿勢９００Ｍ及びアーム１２の目標関節角度９０１Ｍを算出する（１１０２）。この算出は、例えば、演算部１４によるシミュレーションによって実現される。まず、予め定められた物品１０１Ｍを保持するための物品１０１Ｍから見たグリッパ１１の相対位置姿勢のデータと、１００４で算出した物品１０１Ｍの位置姿勢から、物品１０１Ｍを保持するためのグリッパ１１の絶対位置姿勢を算出する。続いて、シミュレーション内において、ロボット１０ａの仮の停止位置姿勢を設定し、その仮の停止位置姿勢において算出したグリッパ１１の絶対位置姿勢をロボット１０ａが取ることが可能か不可能かを確認する。この確認は逆運動学問題を解くことで実現でき、その結果、アーム１２の仮の目標関節角度を同時に得ることができる。この確認の結果が可能である場合は、さらに、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、１１０１中の１００３で計測した距離画像を用いて、ロボット１０ａが仮の停止位置姿勢と仮の目標関節角度を取った際に、ロボット１０ａが格納棚１００や他の物品と接触するか否かを確認する。接触しない場合は、仮の停止位置姿勢を停止位置姿勢９００Ｍとして、仮の目標関節角度を目標関節角度９０１Ｍとしてそれぞれ出力する。確認の結果が不可能である場合、又は「接触する」である場合は、仮の停止位置姿勢の微小変更し、グリッパ１１の絶対位置姿勢の実現可否の確認と、ロボット１０ａが接触するか否かの確認とを再度実行する。これらを、確認の結果が可能でかつ「接触しない」となるまで繰り返す。本実施例において、物品１０１Ｍを保持するための物品１０１Ｍから見たグリッパ１１の相対位置姿勢は、物品１０１Ｍの正面の中心で垂直な方向であることから、物品１０１Ｍを取り出すためのロボット１０ａの停止位置は、物品１０１Ｍの正面（ロボット１０ａに向いた面）に正対する位置となる。また、グリッパ１１が格納棚１００Ｍの奥の物品１０１Ｍに届くようにアーム１２を延伸した状態が目標関節角度９０１Ｍとなる（図９（ｂ））。
【００６１】
次に、演算部１４は、ロボット１０ａが停止位置姿勢９００Ｍにいるときに、アーム１２を現在の関節の角度から目標関節角度９０１Ｍへ推移可能かを判定する（１１０３）。例えば、格納棚１００Ｍが設置された倉庫及び格納棚１００Ｍの形状データ（例えば、倉庫の壁や柱の位置及び大きさ、格納棚１００Ｍの形状及び位置を表すＣＡＤデータ）を参照し、アーム１２の先端（グリッパ１１）が移動可能な範囲の空間において、アーム１２が障害物（格納棚１００Ｍ、他のロボット１０、倉庫の柱や壁など）と干渉することなく、現在の関節角度から目標関節角度９０１Ｍへと推移可能な軌跡を探索する。この探索は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、停止位置姿勢９００Ｍ、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、１１０１中の１００３で計測した距離画像を用いて、多数のアーム１２の関節角度に対し、ロボット１０ａが格納棚１００Ｍや他の物品と接触するか否かを確認し、接触しない関節角度を記憶しておく。次に、記憶した関節角度を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い関節角度同士を繋いだ関節角度推移グラフを作成する。その後、関節角度推移グラフを辿り、現在の関節角度から目標関節角度９０１Ｍへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、アーム１２を現在の関節の角度から目標関節角度９０１Ｍへ推移可能と判定する。例えば、図９（ｃ）に示すように、ロボット１０ａが停止位置姿勢９００Ｍにおいて、アーム１２を目標関節角度９０１Ｍに推移しようとすると必ず上の棚板と接触する場合、予め定められた時間内で道筋を発見できずに、推移不可能であると判定される。
【００６２】
その結果、アーム１２が目標関節角度９０１Ｍに推移不可能であれば、ステップ１１０７に進む。一方、アーム１２が目標関節角度９０１Ｍに推移可能であれば、演算部１４は、ロボット１０ａが停止位置姿勢９００Ｍにいるとき、アーム１２を現在関節角度から目標関節角度９０１Ｍへ推移する干渉回避関節角度軌跡を決定する（１１０４）。具体的には、ステップ１１０３におけるシミュレーションの結果を用いて、現在の状態から目標関節角度９０１Ｍへ推移する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避関節角度軌跡に決定する。
【００６３】
そして、ロボット１０ａは、停止位置姿勢９００Ｍへ自律的に移動し（１１０５）、干渉回避関節角度軌跡に従ってアーム１２を制御し、グリッパ１１を移動する（１１０６）。１１０５の経路は短距離経路に該当する。その後、グリッパ１１が物品１０１Ｍを保持する（１１１１）。例えば、物品１０１Ｍに面接触したグリッパ１１を減圧し、グリッパ１１に物品１０１Ｍを吸着する。
【００６４】
一方、ステップ１１０３において、アーム１２が障害物と干渉するので目標関節角度９０１Ｍに推移不可能であると判定された場合、ステップ１１０７において、演算部１４は、アーム１２が目標関節角度９０１Ｍであるとき、ロボット１０ａを現在位置姿勢から停止位置姿勢９００Ｍへ移動可能かを判定する。この判定は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、目標関節角度９０１Ｍ、倉庫の形状データ、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、ステップ１１０１中のステップ１００３で計測した距離画像を用いて、格納棚１００Ｍの近傍における多数のロボット１０ａの位置姿勢において、ロボット１０ａが格納棚１００や他の物品と接触するか否かを確認し、接触しない位置姿勢を記憶しておく。次に、記憶した位置姿勢を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い位置姿勢同士を繋いだ移動グラフを作成する。その後、移動グラフを辿り、現在の位置姿勢から停止位置姿勢９００Ｍへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、ロボット１０ａを現在の位置姿勢から停止位置姿勢９００Ｍへ移動可能であると判定する。
【００６５】
その結果、ロボット１０ａが停止位置姿勢９００Ｍまで移動不可能であれば、ステップ１１０２に戻り、停止位置姿勢９００Ｍ及び目標関節角度９０１Ｍの別の組み合わせを算出する。このとき、停止位置姿勢９００Ｍ及び目標関節角度９０１Ｍの一方が新たなものでもよく、停止位置姿勢９００Ｍ及び目標関節角度９０１Ｍの両方が新たなものでもよい。
【００６６】
一方、ロボット１０ａが障害物と干渉せずに停止位置姿勢９００Ｍまで移動可能であれば、演算部１４は、アーム１２が目標関節角度９０１Ｍとなっているときに、ロボット１０ａが現在位置姿勢からを停止位置姿勢９００Ｍへ移動する干渉回避移動軌跡９０４Ｍを決定する（１１０８）。具体的には、ステップ１１０７におけるシミュレーションの結果を用いて、現在の位置姿勢から停止位置姿勢９００Ｍへ移動する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避移動軌跡９０４Ｍに決定する（図９（ｄ））。
【００６７】
その後、アーム１２が関節角度を目標関節角度９０１Ｍへ変更し（１１０９）、演算部１４が干渉回避移動軌跡９０４Ｍに従って走行部１３ａを制御し、ロボット１０ａが移動する（１１１０、図９（ｅ）参照）。その後、グリッパ１１が物品１０１Ｍを保持する（１１１１、図９（ｆ）参照）。
【００６８】
図１０に示すように、実施例２のロボット１０ａは、格納棚１００Ｍの奥に置かれている物品１０１Ｍを保持するために、アーム１２の関節角度を目標関節角度９０１Ｍとした状態で（１１０９）、干渉回避移動軌跡９０４Ｍに従って格納棚１００Ｍに近づく。
【００６９】
図１１は、実施例２のロボット１０ａが物品１０１Ｍを保持した後の動作を制御する処理のフローチャートである。すなわち、図１１に示す処理は、図８に示す処理の後に実行される。また、図１２は、実施例２のロボット１０ａが物品１０１Ｍを保持した後の動作を示す図である。
【００７０】
まず、演算部１４は、物品１０１Ｍを保持したまま格納棚１００Ｍから引き出すための、ロボット１０ａの停止位置姿勢９００Ｑ及びアーム１２の目標関節角度９０１Ｑを算出する（１１１２）。ここで算出される停止位置姿勢９００Ｑ及び目標関節角度９０１Ｑは、ロボット１０ａが格納棚１００Ｍから離れ、ロボット１０ａが次の動作に移行できる位置姿勢及びアーム１２の目標関節角度である（図１２（ｂ））。
【００７１】
次に、演算部１４は、ロボット１０ａが現在位置姿勢にいるとき、アーム１２を現在関節角度から目標関節角度９０１Ｑへ推移可能かを判定する（１１１３）。例えば、格納棚１００Ｍが設置された倉庫及び格納棚１００Ｍの形状データ（例えば、ステップ１１０３と同様に、倉庫の壁や柱の位置及び大きさ、格納棚１００Ｍの形状及び位置を表すＣＡＤデータ）を参照し、アーム１２の先端（グリッパ１１）が移動可能な範囲の空間において、アーム１２が障害物と干渉することなく、現在の関節角度から目標関節角度９０１Ｑへと推移可能な軌跡を探索する。この探索は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、現在位置姿勢、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、ステップ１１０１中のステップ１００３で計測した距離画像を用いて、多数のアーム１２の関節角度に対し、ロボット１０ａが格納棚１００や他の物品と接触するか否かを確認し、接触しない関節角度を記憶しておく。次に、記憶した関節角度を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い関節角度同士を繋いだ関節角度推移グラフを作成する。その後、関節角度推移グラフを辿り、現在の関節角度から目標関節角度９０１Ｑへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、アーム１２を現在の関節の角度から目標関節角度９０１Ｑへ推移可能として判定する。例えば、図１２（ｃ）に示すように、ロボット１０ａが現在位置姿勢において、アーム１２を目標関節角度９０１Ｑに推移しようとすると必ず上の棚板と接触する場合、予め定められた時間内で道筋を発見できずに、推移不可能であると判定される。
【００７２】
その結果、アーム１２が目標関節角度９０１Ｑに推移不可能であれば、ステップ１１１７に進む。一方、アーム１２が目標関節角度９０１Ｑに推移可能であれば、演算部１４は、ロボット１０ａが現在位置姿勢にいるとき、アーム１２を現在関節角度から目標関節角度９０１Ｑへ推移する干渉回避関節角度軌跡を決定する（１１１４）。具体的には、ステップ１１１３におけるシミュレーションの結果を用いて、現在の状態から目標関節角度へ推移する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避関節角度軌跡に決定する。
【００７３】
そして、ロボット１０ａは、干渉回避関節角度軌跡に従ってアーム１２を制御し、グリッパ１１を移動し（１１１５）、停止位置姿勢９００Ｑへ自律的に移動する（１１１６）。１１１６の経路は短距離経路に該当する。その後、演算部１４は、ロボット１０ａが停止位置姿勢９００Ｑへ移動し、アーム１２の関節角度が目標関節角度９０１Ｑへ変更されたことを確認した後、全体管理装置２００へ作業完了報告を送信する（１１２１）。
【００７４】
一方、ステップ１１１３において、アーム１２が障害物と干渉せずに目標関節角度９０１Ｑに変形不可能であると判定された場合、演算部１４は、アーム１２が現在の関節角度であるとき、ロボット１０ａを現在位置姿勢から停止位置姿勢９００Ｑへ移動可能かを判定する（１１１７）。この判定は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、アーム１２の現在の関節角度、倉庫の形状データ、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、ステップ１１０１中のステップ１００３で計測した距離画像を用いて、格納棚１００Ｍの近傍における多数のロボット１０ａの位置姿勢に対し、ロボット１０ａが格納棚１００や他の物品と接触するか否かを確認し、接触しない位置姿勢を記憶しておく。次に、記憶した位置姿勢を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い位置姿勢同士を繋いだ移動グラフを作成する。その後、移動グラフを辿り、現在の位置姿勢から停止位置姿勢９００Ｑへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、ロボット１０ａを現在の位置姿勢から停止位置姿勢９００Ｑへ移動可能であると判定する（図１２（ｄ））。
【００７５】
その結果、ロボット１０ａが停止位置姿勢９００Ｑまで移動不可能であれば、ステップ１１１２に戻り、停止位置姿勢９００Ｑ及び目標関節角度９０１Ｑの別の組み合わせを算出する。このとき、停止位置姿勢９００Ｑ及び目標関節角度９０１Ｑの一方が新たなものでもよく、停止位置姿勢９００Ｑ及び目標関節角度９０１Ｑの両方が新たなものでもよい。
【００７６】
一方、ロボット１０ａが障害物と干渉せずに停止位置姿勢９００Ｑまで移動可能であれば、演算部１４は、アーム１２が目標関節角度９０１Ｑとなっているときに、ロボット１０ａが現在位置姿勢からを停止位置姿勢９００Ｑへ移動する干渉回避移動軌跡９０４Ｑを決定する（１１１８）。具体的には、ステップ１１０７におけるシミュレーションの結果を用いて、現在の位置姿勢から停止位置姿勢９００Ｑへ移動する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避移動軌跡９０４Ｑに決定する。
【００７７】
その後、演算部１４が干渉回避移動軌跡９０４Ｑに従って走行部１３ａを制御し、ロボット１０ａが移動し（１１１９、図１２（ｅ））、アーム１２が関節角度を目標関節角度９０１Ｑへ変更する（１１２０、図１２（ｆ））。その後、演算部１４は、ロボット１０ａが停止位置姿勢９００Ｑへ移動し、アーム１２の関節角度が目標関節角度９０１Ｑへ変更されたことを確認し、全体管理装置２００へ作業完了報告を送信する（１１２１）。
【００７８】
ここまで、実施例２において、図６に示す格納棚１００Ｍ内に格納されている物品を取り出す場合について説明したが、図３に示す格納容器１５０ａに格納された物品１５１ａを取り出す場合も同様である。すなわち、グリッパ１１が物品の上面に正対して、物品１５１ａを吸着可能な位置に、ロボット１０ａが移動する。
【００７９】
以上に説明したように、実施例２では、物品１０１Ｍを保持するためのロボット１０ａの停止位置姿勢９００Ｍ及び目標関節角度９０１Ｍを算出し、アーム１２が目標関節角度９０１Ｍの状態で、ロボット１０ａが停止位置姿勢９００Ｍへ移動した後に、グリッパ１１が物品１０１Ｍを保持する。また、物品１０１Ｍを格納棚１００Ｍから取り出した状態での停止位置姿勢９００Ｑ及び目標関節角度９０１Ｑを算出し、アーム１２が物品１０１Ｍを保持した関節角度（９０１Ｍ）の状態で、ロボット１０ａが停止位置姿勢９００Ｑへ移動した後に、アーム１２が目標関節角度９０１Ｑへと推移する。この一連の動作により、物品１０１Ｍが格納棚１００Ｍの奥に格納されていても、ロボット１０ａが格納棚１００Ｍや他の物品と接触することなく、グリッパ１１が物品１０１Ｍに正しく接触できる位置から物品１０１Ｍにアクセスでき、違う物品１０１を取り出したり、物品１０１Ｍを取りこぼしたりするミスを軽減できる。
【００８０】
＜実施例３＞
図１３は、実施例３のロボットシステムの構成を示す図である。
【００８１】
実施例３のロボットシステムは、ロボット１０ｂと、搬送車９０ｂと、全体管理装置２００とで構成される。
【００８２】
ロボット１０ｂは、先端にグリッパ１１を有するアーム１２と、グリッパ１１が保持する物品を認識する物品計測センサ１８ｂと、演算部１４と、吸引力発生部１５と、電力供給部１６とを有する。実施例３のロボット１０ｂは、実施例１のロボット１０ａと異なり、走行部と周囲環境計測センサとを有さない。アーム１２、物品計測センサ１８ｂ、演算部１４、吸引力発生部１５及び電力供給部１６の構成は、前述した実施例１のロボット１０ａと同じであるため、説明を省略する。
【００８３】
搬送車９０ｂは、積載部９１と、走行部１３ａと、周囲環境計測センサ１７ｂとを有する。
【００８４】
積載部９１は、搬送車９０ｂの上部に設けられており、所定の位置姿勢になったとき又は全体管理装置２００の指令信号に従って、上部を上昇及び下降する。例えば、図１４に示すように、積載部９１の上昇によって、搬送車９０ｂが格納棚１００ｂの下部と係合し、格納棚１００ｂを持ち上げた状態で格納棚１００ｂを搬送する。また、図１５に示すように、積載部９１に載置された格納容器１５０ｂを搬送する。
【００８５】
走行部１３ａは、回転するタイヤと、該タイヤを回転駆動するモータとで構成される。タイヤは対向して二つ設けられ、各タイヤの回転方向や回転数を制御することによって、搬送車９０ｂが走行し、方向を転換し、その場で回転できる。搬送車９０ｂの下部には、図示を省略する補助輪が設けられてもよい。
【００８６】
周囲環境計測センサ１７ｂは、レーザ光照射部とレーザ光受光部とを有する二次元又は三次元のレーザスキャナで構成され、周囲にレーザ光を照射し、反射光を測定する。周囲環境計測センサ１７ｂが測定したレーザ反射光によって、周囲の障害物（壁、格納棚など）までの距離を算出でき、該算出された距離を連結して周囲の障害物の位置及び大きさを算出できる。
【００８７】
全体管理装置２００は、有線又は無線の通信によってロボット１０ｂと接続され、無線通信によって搬送車９０ｂと接続される。全体管理装置２００の構成は、前述した実施例１と同じであるため説明を省略する。
【００８８】
本実施例では、演算部１４は、ロボット１０ｂの一構成であるが、ロボット１０ｂと別に構成してもよい。例えば、搬送車９０ｂが演算部１４を有し、搬送車９０ｂとロボット１０ａが通信可能に構成してもよい。
【００８９】
次に、図１４及び図１５を参照して、ロボット１０ｂによる物品のピッキングを説明する。
【００９０】
図１４は、格納棚内の物品をピッキングする実施例３のロボットシステムを示す図である。
【００９１】
図１４に示すロボットシステムは、ロボット１０ｂ、搬送車９０ｂ、格納棚１００ｂ及び全体管理装置２００（図示省略）を含む。格納棚１００ｂから取り出される物品１０１ｂの正面にロボット１０ｂが位置するように、格納棚１００ｂを積載した搬送車９０ｂが移動する。ロボット１０ｂは、当該物品１０１ｂの側面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１ｂを格納棚１００ｂから取り出す。
【００９２】
図１５は、容器内の物品をピッキングする実施例３のロボットシステムを示す図である。
【００９３】
図１５に示すロボットシステムは、ロボット１０ｂ、搬送車９０ｂ、格納容器１５０ｂ及び全体管理装置２００（図示省略）を含む。格納容器１５０ｂから取り出される物品１０１ｂの正面にロボット１０ｂが位置するように、格納容器１５０ｂを積載した搬送車９０ｂが移動する。ロボット１０ｂは、当該物品１０１ｂの上面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１ｂを格納容器１５０ｂから取り出す。
【００９４】
なお、実施例３において物品が格納される格納手段として格納棚１００ｂ及び格納容器１５０ｂについて説明したが、物品を格納し保管できる物であれば、どの様な形態でもよい。
【００９５】
図１６は、実施例３のロボット１０ｂの動作を制御する処理のフローチャートである。図１６に示す処理を行うプログラムは、ロボット１０ｂの演算部１４のＣＰＵが実行する。
【００９６】
まず、ロボット１０ｂは、格納棚１００ｂから物品１０１ｂを取り出す指令を全体管理装置２００から受信する。さらに、搬送車９０ｂは、ロボット１０ｂが格納棚１００ｂから物品１０１ｂを取り出す指令を全体管理装置２００から受信すると（２００１）、格納棚１００ｂを積載可能な位置まで自律的に移動し（２００２）、格納棚１００ｂを積載し（２００３）、ロボット１０ｂの手前、すなわち、ロボット１０ｂが格納棚１００ｂに格納された物品１０１を計測できる位置まで自律的に移動して、格納棚１００ｂを搬送する（２００４）。２００２及び２００４の経路は長距離経路に該当する。
【００９７】
そして、ロボット１０ｂは、物品計測センサ１８ｂによって格納棚１００ｂに格納された物品１０１を計測する（２００５）。そして、演算部１４は、物品計測センサ１８ｂによる計測結果に対し、予め登録されている物品１０１の形状や大きさを用いて、格納棚１００ｂ内の各物品１０１の詳細な位置姿勢を算出する（２００６）。例えば、物品計測センサ１８ｂが物品１０１を含んだ距離画像を取得し、予め登録されている物品１０１の形状と大きさに合致する部分を距離画像の中から探索することによって、各物品１０１の詳細な位置姿勢を算出できる。なお、全体管理装置２００から格納棚１００ｂ内の物品１０１の詳細な位置姿勢を取得できる場合、ステップ２００５及び２００６の処理を省略できる。
【００９８】
そして、演算部１４は、物品１０１ｂを保持するための格納棚１００ｂの停止位置姿勢９００ｂを算出する（２００７）。この算出は、例えば、演算部１４によるシミュレーションによって実現される。まず、予め定められた物品１０１ｂを保持するための物品１０１ｂから見たグリッパ１１の相対位置姿勢のデータと、２００６で算出した物品１０１ｂの位置姿勢から、物品１０１ｂを保持するためのグリッパ１１の絶対位置姿勢を算出する。続いて、シミュレーション内において、格納棚１００ｂの仮の停止位置姿勢を設定し、ロボット１０ｂの形状や機構のデータを用いて、その仮の停止位置姿勢において算出したグリッパ１１の絶対位置姿勢をロボット１０ｂが取ることが可能か不可能かを確認する。この確認は逆運動学問題を解くことによって実現できる。この確認の結果が可能である場合は、仮の停止位置姿勢を停止位置姿勢９００ｂとして出力する。確認の結果が不可能である場合は、仮の停止位置姿勢の微小変更し、グリッパ１１の絶対位置姿勢の実現可否の確認を再度実行する。これを、確認の結果が可能となるまで繰り返す。本実施例において、物品１０１ｂを保持するための物品１０１ｂから見たグリッパ１１の相対位置姿勢は、物品１０１ｂの正面の中心で垂直な方向であることから、物品１０１ｂを取り出すための格納棚１００ｂの停止位置は、ロボット１０ｂが物品１０１ｂの正面（ロボット１０ｂに向いた面）に正対する位置となる。
【００９９】
その後、搬送車９０ｂは、算出された停止位置姿勢９００ｂへ自律的に移動し、格納棚１００ｂを搬送する（２００８）。このときの経路は短距離経路に該当し、搬送車９０ｂは、現在地にて停止位置姿勢９００ｂの位置に向かう方向へとその場で旋回し、停止位置姿勢９００ｂの位置まで直線的に移動し、停止位置姿勢９００ｂの位置でその場旋回することにょって姿勢を合わせ、最終的に格納棚１００ｂは停止位置姿勢９００ｂとなる。
【０１００】
物品１０１ｂを保持可能な位置姿勢へグリッパ１１が移動するように、アーム１２の関節の角度を目標関節角度９０１ｂに推移する（２００９）。２００７における逆運動学問題を解いた結果が、グリッパ１１の絶対位置姿勢をロボット１０ａが取るためのアーム１２の目標関節角度９０１ｂとなる。例えば、現在の関節角度から一定の角速度で目標関節角度９０１ｂへと関節角度を徐々に推移させていく方法がある。その結果、取り出すべき物品１０１ｂの正面に正対して、物品１０１ｂを吸着可能なように、グリッパ１１が移動する。
【０１０１】
次に、グリッパ１１が物品１０１ｂを保持する（２０１０）。例えば、物品１０１ｂに面接触したグリッパ１１を減圧し、グリッパ１１に物品１０１ｂを吸着する。
【０１０２】
そして、物品１０１ｂを保持したまま格納棚１００ｂから引き出すように、アーム１２の関節角度を終了関節角度９０２へ変更し、グリッパ１１を移動する（２０１１）。例えば、グリッパ１１の姿勢及び物品１０１ｂの姿勢を２０１０の状態のまま変更することなく、格納棚１００ｂから物品１０１ｂが完全に離れる位置まで、格納棚１００ｂの正面に対し垂直に移動させる。格納棚１００ｂから物品１０１ｂが完全に離れたときのアーム１２の関節角度が終了関節角度９０２となる。
【０１０３】
その後、アーム１２の関節角度が終了関節角度９０２へ変更された後、搬送車９０ｂは、設置位置姿勢へ自律的に移動し、格納棚１００ｂを搬送し（２０１２）、格納棚１００ｂを定められた位置に設置する（２０１３）。その後、搬送車９０ｂは、全体管理装置２００へ作業完了報告を送信する（２０１４）。２０１２の経路は長距離経路に該当する。
【０１０４】
図１７は、実施例３の物品１０１の位置姿勢に対応する格納棚１００ｂの停止位置姿勢９００を示す図である。
【０１０５】
前述したように、実施例３では、ロボット１０ｂのグリッパ１１が物品１０１ｂを保持できる位置に搬送車９０ｂ（格納棚１００ｂ）が停止する。すなわち、取り出すべき物品１０１の位置姿勢によって搬送車９０ｂが停止する位置姿勢が異なる。
【０１０６】
例えば、格納棚１００ｂの下の間口の中列上段の物品１０１ｂを取り出す場合、搬送車９０ｂ（格納棚１００ｂ）は停止位置姿勢９００ｂに停止する。また、格納棚１００ｂの下の間口の左列上段の物品１０１ｆを取り出す場合、搬送車９０ｂ（格納棚１００ｂ）は停止位置姿勢９００ｆに停止する。さらに、格納棚１００ｂの下の間口の左列上段の物品１０１ｊを取り出す場合、搬送車９０ｂ（格納棚１００ｂ）は停止位置姿勢９００ｊに停止する。
【０１０７】
なお、停止位置姿勢９００及び目標関節角度９０１は、グリッパ１１の種類やアーム１２に対する取り付け位置姿勢、物品１０１の形状や大きさによって異なる。このため、演算部１４は、グリッパ１１が物品１０１にアクセスする方向の情報を用いて、停止位置姿勢９００及び目標関節角度９０１を算出する。
【０１０８】
ここまで、実施例３おいて、図１４に示す格納棚１００ｂ内に格納されている物品を取り出す場合について説明したが、図１５に示す格納容器１５０ｂに格納された物品１５１ｂを取り出す場合も同様である。すなわち、グリッパ１１が物品の上面に正対して、物品１５１ｂを吸着可能な位置に、ロボット１０ｂが移動する。
【０１０９】
以上に説明したように、実施例３では、ロボット１０ｂが物品１０１ｂを保持するための搬送車９０ｂ（格納棚１００ｂ）の停止位置姿勢９００ｂを算出し、当該停止位置姿勢９００ｂへ格納棚１００ｂを搬送した後に、グリッパ１１が物品１０１ｂを保持するので、グリッパ１１が物品１０１ｂに正しく接触できる位置から物品１０１ｂにアクセスでき、違う物品１０１を取り出したり、物品１０１ｂを取りこぼしたりするミスが軽減できる。
【０１１０】
＜実施例４＞
本実施例では、格納棚１００の奥に置かれた物品１０１を取り出すことが可能な格納棚内物品ピッキングロボットシステムの例を説明する。
【０１１１】
図１８は、実施例４のロボットシステムの構成を示す図である。
【０１１２】
実施例４のロボットシステムは、ロボット１０ｂ、搬送車９０ｂ、格納棚１００ｎ及び全体管理装置２００を含む。ロボット１０ｂは、格納棚１００ｎから取り出される物品１０１ｎの正面に移動し、当該物品１０１ｎの側面にグリッパ１１を吸着して、アーム１２の関節を曲げることによって、物品１０１ｎを格納棚１００ｎから取り出す。
【０１１３】
実施例４では、格納棚１００ｎの奥に置かれている物品１０１ｎをロボット１０ｂが取り出す例を説明する。格納棚１００ｎの奥に置かれている物品１０１ｎを取り出す場合、格納棚１００ｎがロボット１０ｂに近づいた状態で、物品１０１ｎを吸着するためにアーム１２を目標関節角度９０１ｎへ変更すると、格納棚１００ｎの間口を区画する棚板に当接することがある。また、ロボット１０ｂが物品１０１ｎを吸着した後、直ちにアーム１２を終了関節角度９０２へ変更すると、格納棚１００ｎの間口を区画する棚板に当接することがある。このため、格納棚１００ｎの奥に置かれている物品１０１ｎを取り出す場合には、特別の手順が必要となる。
【０１１４】
図１９は、実施例４の格納棚１００ｎの奥に置かれている物品１０１ｎを取り出すためのロボット１０ｂの停止位置姿勢９００ｎを示す図である。
【０１１５】
前述したように、実施例４では、ロボット１０ｂのグリッパ１１が物品１０１ｎを保持できる位置に搬送車９０ｂ（格納棚１００ｎ）が停止する。すなわち、取り出すべき物品１０１によってロボットの停止位置姿勢が異なる。例えば、格納棚１００ｎの下の間口の左列上段の物品１０１ｎを取り出す場合、搬送車９０ｂは、ロボット１０ｂの手前の位置まで格納棚１００ｎを搬送した後、ロボット１０ｂに近づき、停止位置姿勢９００ｎに停止する。停止位置姿勢９００ｎは、格納棚１００ｎの最前面の物品１０１を取り出すための停止位置姿勢９００ｆよりロボット１０ｂに近い位置である。
【０１１６】
次に、図２０及び図２１を参照して、実施例４のロボット１０ｂが格納棚１００ｎの奥に置かれた物品１０１ｎを取り出す動作を説明する。図２０は、実施例４のロボット１０ｂが物品１０１ｎを保持するまでの動作を制御する処理のフローチャートである。図２１は、実施例４のロボット１０ｂが物品１０１ｎを保持するまでの動作を示す図である。
【０１１７】
まず、ロボット１０ｂは、図１６のステップ２００１から２００６を実行する（２１０１）。すなわち、搬送車９０ｂは、ロボット１０ｂが格納棚１００ｎから物品１０１ｎを取り出す指令を全体管理装置２００から受信し（２００１）、格納棚１００ｎを積載可能な位置まで自律的に移動し（２００２）、格納棚１００ｎを積載し（２００３）、ロボット１０ｂが格納棚１００ｎに格納された物品１０１を計測できる位置まで自律的に移動する（２００４）。また、ロボット１０ｂは、格納棚１００ｎから物品１０１ｎを取り出す指令を全体管理装置２００から受信し（２００１）、物品計測センサ１８ｂによって格納棚１００ｎに格納された物品１０１を計測し（２００５）、格納棚１００ｎ内の各物品１０１の詳細な位置姿勢を算出する（２００６）。この状態では、図２１（ａ）に示すように、搬送車９０ｂは、ロボット１０ｂが取り出すべき物品１０１ｎや周囲の状況を見渡せる、ロボット１０ｂから離れた位置にいる。
【０１１８】
そして、演算部１４は、物品１０１ｎを保持するための格納棚１００ｎの停止位置姿勢９００ｎ及びアーム１２の目標関節角度９０１ｎを算出する（２１０２）。この算出は、例えば、演算部１４によるシミュレーションによって実現される。まず、予め定められた物品１０１ｎを保持するための物品１０１ｎから見たグリッパ１１の相対位置姿勢のデータと、２００６で算出した物品１０１ｎの位置姿勢から、物品１０１ｎを保持するためのグリッパ１１の絶対位置姿勢を算出する。続いて、シミュレーション内において、格納棚１００ｎの仮の停止位置姿勢を設定し、その仮の停止位置姿勢において算出したグリッパ１１の絶対位置姿勢をロボット１０ｂが取ることが可能か不可能かを確認する。この確認は逆運動学問題を解くことで実現でき、その結果、アーム１２の仮の目標関節角度を同時に得ることができる。この確認の結果が可能である場合は、さらに、ロボット１０ｂの形状や機構のデータ、格納棚１００の形状データ、ステップ２１０１中のステップ２００５で計測した距離画像を用いて、ロボット１０ａが仮の停止位置姿勢と仮の目標関節角度を取った際に、ロボット１０ａが格納棚１００や他の物品と接触するか否かを確認する。接触しない場合は、仮の停止位置姿勢を停止位置姿勢９００ｎとして、仮の目標関節角度を目標関節角度９０１ｎとしてそれぞれ出力する。確認の結果が不可能である場合、又は「接触する」である場合は、仮の停止位置姿勢の微小変更し、グリッパ１１の絶対位置姿勢の実現可否の確認と、ロボット１０ｂが接触するか否かの確認とを再度実行する。これらを、確認の結果が可能でかつ「接触しない」となるまで繰り返す。本実施例において、物品１０１ｎを保持するための物品１０１ｎから見たグリッパ１１の相対位置姿勢は、物品１０１ｎの正面の中心で垂直な方向であることから、物品１０１ｎを取り出すための格納棚１００ｎ（及び搬送車９０ｂ）の停止位置は、ロボット１０ｂが物品１０１ｎの正面（ロボット１０ｂに向いた面）に正対する位置となる。また、グリッパ１１が格納棚１００ｎの奥の物品１０１ｎに届くようにアーム１２を延伸した状態が目標関節角度９０１ｎである（図２１（ｂ））。
【０１１９】
次に、演算部１４は、格納棚１００ｎ（及び搬送車９０ｂ）が停止位置姿勢９００ｎにいるときに、アーム１２を現在の関節の角度から目標関節角度９０１ｎへ推移可能かを判定する（２１０３）。例えば、格納棚１００ｎが設置された倉庫及び格納棚１００ｎの形状データ（例えば、倉庫の壁や柱の位置及び大きさ、格納棚１００ｎの形状及び位置を表すＣＡＤデータ）を参照し、アーム１２の先端（グリッパ１１）が移動可能な範囲の空間において、アーム１２が障害物（格納棚１００ｎ、搬送車９０ｂ、他のロボット１０、倉庫の柱や壁など）と干渉することなく、現在の関節角度から目標関節角度９０１ｎへと推移可能な軌跡を探索する。この探索は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、停止位置姿勢９００ｎ、ロボット１０ｂの形状や機構のデータ、格納棚１００の形状データ、ステップ２１０１中のステップ２００５で計測した距離画像を用いて、多数のアーム１２の関節角度に対し、ロボット１０ｂが格納棚１００ｎや他の物品と接触するか否かを確認し、接触しない関節角度を記憶しておく。次に、記憶した関節角度を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い関節角度同士を繋いだ関節角度推移グラフを作成する。その後、関節角度推移グラフを辿り、現在の関節角度から目標関節角度９０１ｎへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、アーム１２を現在の関節の角度から目標関節角度９０１ｎへ推移可能と判定する。例えば、図２１（ｃ）に示すように、格納棚１００ｎ（及び搬送車９０ｂ）が停止位置姿勢９００ｎにおいて、アーム１２を目標関節角度９０１ｎに推移しようとすると必ず上の棚板と接触する場合、予め定められた時間内で道筋を発見できずに、推移不可能であると判定される。
【０１２０】
その結果、アーム１２が目標関節角度９０１ｎに推移不可能であれば、ステップ２１０７に進む。一方、アーム１２が目標関節角度９０１ｎに推移可能であれば、演算部１４は、格納棚１００ｎ（及び搬送車９０ｂ）が停止位置姿勢９００ｎにいるとき、アーム１２を現在関節角度から目標関節角度９０１ｎへ推移する干渉回避関節角度軌跡を決定する（２１０４）。具体的には、ステップ２１０３におけるシミュレーションの結果を用いて、現在の状態から目標関節角度９０１ｎへ推移する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避関節角度軌跡に決定する。
【０１２１】
そして、搬送車９０ｂは、格納棚１００ｎを停止位置姿勢９００ｎへ自律的に搬送し（２１０５）、干渉回避関節角度軌跡に従ってアーム１２を制御し、グリッパ１１を移動する（２１０６）。２１０５の経路は短距離経路に該当する。その後、グリッパ１１が物品１０１ｎを保持する（２１１１）。例えば、物品１０１ｎに面接触したグリッパ１１を減圧し、グリッパ１１に物品１０１ｎを吸着する。
【０１２２】
一方、ステップ２１０３において、アーム１２が障害物と干渉するので目標関節角度９０１ｎに推移不可能であると判定された場合、ステップ２１０７において、演算部１４は、アーム１２が目標関節角度９０１ｎであるとき、格納棚１００ｎ（搬送車９０ｂ）を現在位置姿勢から停止位置姿勢９００ｎへ移動可能かを判定する。この判定は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーション内において、アーム１２の現在の関節角度、倉庫の形状データ、ロボット１０ｂの形状や機構のデータ、格納棚１００の形状データ、ステップ２１０１中のステップ２００５で計測した距離画像を用いて、ロボット１０ｂの近傍における多数の格納棚１００ｎの位置姿勢において、格納棚１００ｎとその内部の物品がロボット１０ｂや他の倉庫内の機材と接触するか否かを確認し、接触しない位置姿勢を記憶しておく。次に、記憶した位置姿勢を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い位置姿勢同士を繋いだ移動グラフを作成する。その後、移動グラフを辿り、現在の位置姿勢から停止位置姿勢９００ｎへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、格納棚１００ｎ（搬送車９０ｂ）を現在の位置姿勢から停止位置姿勢９００ｎへ移動可能であると判定する。
【０１２３】
その結果、搬送車９０ｂが停止位置姿勢９００ｎまで移動不可能であれば、ステップ２１０２に戻り、停止位置姿勢９００ｎ及び目標関節角度９０１ｎの別の組み合わせを算出する。このとき、停止位置姿勢９００ｎ及び目標関節角度９０１ｎの一方が新たなものでもよく、停止位置姿勢９００ｎ及び目標関節角度９０１ｎの両方が新たなものでもよい。
【０１２４】
一方、搬送車９０ｂが障害物と干渉せずに停止位置姿勢９００ｎまで移動可能であれば、演算部１４は、アーム１２が目標関節角度９０１ｎとなっているときに、搬送車９０ｂが現在位置姿勢からを停止位置姿勢９００ｎへ格納棚１００ｎを搬送する干渉回避移動軌跡９０４ｎを決定する（２１０８）。具体的には、ステップ２１０７におけるシミュレーションの結果を用いて、現在の位置姿勢から停止位置姿勢９００ｎへ移動する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避移動軌跡９０４ｎに決定する（図２１（ｄ））。
【０１２５】
その後、アーム１２が関節角度を目標関節角度９０１ｎへ変更し（２１０９）、搬送車９０ｂが干渉回避移動軌跡９０４ｎに従って自律的に移動して、格納棚１００ｎを搬送する（２１１０、図２１（ｅ）参照）。その後、グリッパ１１が物品１０１ｎを保持する（２１１１、図２１（ｆ）参照）。
【０１２６】
図２２に示すように、実施例４の搬送車９０ｂ（格納棚１００ｎ）は、ロボット１０ｂが格納棚１００ｎの奥に置かれている物品１０１ｎを保持するために、アーム１２の関節角度を目標関節角度９０１ｎとした状態で（２１０９）、干渉回避移動軌跡９０４ｎに従ってロボット１０ｂに近づく。
【０１２７】
図２３は、実施例４のロボット１０ｂが物品１０１ｎを保持した後の動作を制御する処理のフローチャートである。図２４は、実施例４のロボット１０ｂが物品１０１ｎを保持した後の動作を示す図である。すなわち、図２３に示す処理は、図２０に示す処理の後に実行される。
【０１２８】
まず、演算部１４は、ロボット１０ｂが物品１０１ｎを保持したまま格納棚１００ｎから引き出すための、格納棚１００ｎ（搬送車９０ｂ）の停止位置姿勢９００ｒ及びアーム１２の目標関節角度９０１ｒを算出する（２１１２）。ここで算出される停止位置姿勢９００ｒ及び目標関節角度９０１ｒは、格納棚１００ｎがロボット１０ｂから離れ、ロボット１０ｂが次の動作に移行できる状態の、格納棚１００ｎ（搬送車９０ｂ）の位置姿勢及びアーム１２の目標関節角度である（図２４（ｂ））。
【０１２９】
次に、演算部１４は、格納棚１００ｎ（搬送車９０ｂ）が現在位置姿勢にいるとき、アーム１２を現在関節角度から目標関節角度９０１ｒへ推移可能かを判定する（２１１３）。例えば、格納棚１００ｎが設置された倉庫及び格納棚１００ｎの形状データ（例えば、ステップ２１０３と同様に、倉庫の壁や柱の位置及び大きさ、格納棚１００ｎの形状及び位置を表すＣＡＤデータ）を参照し、アーム１２の先端（グリッパ１１）が移動可能な範囲の空間において、アーム１２が障害物と干渉することなく、現在の関節角度から目標関節角度９０１ｒへと推移可能な軌跡を探索する。この探索は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、現在位置姿勢、ロボット１０ｂの形状や機構のデータ、格納棚１００の形状データ、ステップ２１０１中のステップ２００５で計測した距離画像を用いて、多数のアーム１２の関節角度に対し、ロボット１０ｂが格納棚１００や他の物品と接触するか否かを確認し、接触しない関節角度を記憶しておく。次に、記憶した関節角度を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い関節角度同士を繋いだ関節角度推移グラフを作成する。その後、関節角度推移グラフを辿り、現在の関節角度から目標関節角度９０１ｒへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、アーム１２を現在の関節の角度から目標関節角度９０１ｒへ推移可能として判定する。例えば、図２４（ｃ）に示すように、格納棚１００ｎ（搬送車９０ｂ）が現在位置姿勢において、アーム１２を目標関節角度９０１ｒに推移しようとすると必ず上の棚板と接触する場合、予め定められた時間内で道筋を発見できずに、推移不可能であると判定される。
【０１３０】
その結果、アーム１２が目標関節角度９０１ｒに推移不可能であれば、ステップ２１１７に進む。一方、アーム１２が目標関節角度９０１ｒに推移可能であれば、演算部１４は、搬送車９０ｂが現在位置姿勢にいるとき、アーム１２を現在関節角度から目標関節角度９０１ｒへ推移する干渉回避関節角度軌跡を決定する（２１１４）。具体的には、ステップ２１１３におけるシミュレーションの結果を用いて、現在の状態から目標関節角度へ推移する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避関節角度軌跡に決定する。
【０１３１】
そして、ロボット１０ｂは、干渉回避関節角度軌跡に従ってアーム１２を制御し、グリッパ１１を移動し（２１１５）、搬送車９０ｂが停止位置姿勢９００ｒへ自律的に格納棚１００ｎを搬送する（２１１６）。２１１６の経路は短距離経路に該当する。その後、ステップ２０１１から２０１４を実行する（２１２１）。すなわち、グリッパ１１が物品１０１ｎを保持したまま、アーム１２の関節角度を終了関節角度９０２へ変更し、物品１０１ｎを格納棚１００ｎから引き出し（２０１１）、搬送車９０ｂが設置位置姿勢へ自律的に格納棚１００ｎを搬送し（２０１２）、格納棚１００ｎを定められた位置に設置し（２０１３）、搬送車９０ｂが全体管理装置２００へ作業完了報告を送信する（２０１４）。
【０１３２】
一方、ステップ２１１３において、アーム１２が障害物と干渉せずに目標関節角度９０１ｒに推移不可能であると判定された場合、演算部１４は、アーム１２が現在の関節角度であるとき、格納棚１００ｎ（搬送車９０ｂ）を現在位置姿勢から停止位置姿勢９００ｒへ移動可能かを判定する（２１１７）。この判定は、例えば、演算部１４によるシミュレーションによって実現される。まず、シミュレーションにおいて、アーム１２の現在の関節角度、倉庫の形状データ、ロボット１０ａの形状や機構のデータ、格納棚１００の形状データ、ステップ２１０１中のステップ２００５で計測した距離画像を用いて、ロボット１０ｂの近傍における多数の格納棚１００ｎの位置姿勢に対し、格納棚１００ｎやその内部の物品がロボット１０ｂや他の倉庫内の機材と接触するか否かを確認し、接触しない位置姿勢を記憶しておく。次に、記憶した位置姿勢を任意に二つ選出し、予め与えられた閾値を用いてそれらが近いか否かを判定し、近い位置姿勢同士を繋いだ移動グラフを作成する。その後、移動グラフを辿り、現在の位置姿勢から停止位置姿勢９００ｒへと到達する道筋を探索する。予め定められた時間内で道筋を発見できた場合、格納棚１００ｎ（搬送車９０ｂ）を現在の位置姿勢から停止位置姿勢９００ｒへ移動可能であると判定する（図２４（ｄ））。
【０１３３】
その結果、格納棚１００ｎ（搬送車９０ｂ）が停止位置姿勢９００ｒまで移動不可能であれば、ステップ２１１２に戻り、停止位置姿勢９００ｒ及び目標関節角度９０１ｒの別の組み合わせを算出する。このとき、停止位置姿勢９００ｒ及び目標関節角度９０１ｒの一方が新たなものでもよく、停止位置姿勢９００ｒ及び目標関節角度９０１ｒの両方が新たなものでもよい。
【０１３４】
一方、格納棚１００ｎ（搬送車９０ｂ）が障害物と干渉せずに停止位置姿勢９００ｒまで移動可能であれば、演算部１４は、アーム１２が目標関節角度９０１ｒとなっているときに、搬送車９０ｂが現在位置姿勢からを停止位置姿勢９００ｒへ格納棚１００ｎを搬送する干渉回避移動軌跡９０４ｒを決定する（２１１８）。具体的には、ステップ２１０７におけるシミュレーションの結果を用いて、現在の位置姿勢から停止位置姿勢９００ｒへ移動する最短の道筋（又は、所定の条件を満たす道筋）を探索し、干渉回避移動軌跡９０４ｒに決定する。
【０１３５】
その後、搬送車９０ｂは、干渉回避移動軌跡９０４ｒに従って走行して、格納棚１００ｎを搬送し（２１１９、図２４（ｅ））、アーム１２が関節角度を目標関節角度９０１ｒへ変更する（２１２０、図２４（ｆ））。その後、ステップ２０１１から２０１４を実行し（２１２１）、最終的に、搬送車９０ｂが全体管理装置２００へ作業完了報告を送信する。
【０１３６】
ここまで、実施例４において、図１８に示す格納棚１００ｎ内に格納されている物品を取り出す場合について説明したが、図１５に示す格納容器１５０ｂに格納された物品１５１ｂを取り出す場合も同様である。すなわち、グリッパ１１が物品の上面に正対して、物品１５１ｂを吸着可能な位置に、搬送車９０ｂが格納容器１５０ｂを搬送する。
【０１３７】
以上に説明したように、実施例４では、ロボット１０ｂが物品１０１ｎを保持するための格納棚１００ｎ（搬送車９０ｂ）の停止位置姿勢９００ｎとアーム１２の目標関節角度９０１ｎを算出し、アーム１２が目標関節角度９０１ｎの状態で、格納棚１００ｎを当該停止位置姿勢９００ｎへ搬送した後に、グリッパ１１が物品１０１ｎを保持する。また、物品１０１ｎを格納棚１００ｎから取り出した状態での停止位置姿勢９００ｒ及び目標関節角度９０１ｒを算出し、アーム１２が物品１０１ｎを保持した関節角度（９０１ｎ）の状態で、搬送車９０ｂが格納棚１００ｎを停止位置姿勢９００ｒへ移動した後に、アーム１２が目標関節角度９０１ｒへと推移する。この一連の動作により、物品１０１ｎが格納棚１００ｎの奥に格納されていても、ロボット１０ａが格納棚１００ｎや他の物品と接触することなく、グリッパ１１が物品１０１ｎに正しく接触できる位置から物品１０１ｎにアクセスでき、違う物品１０１を取り出したり、物品１０１ｎを取りこぼしたりするミスを軽減できる。
【０１３８】
以上に説明した実施例では、格納手段（格納棚１００、格納容器１５０）から物品１０１を取り出す場合について説明したが、ロボット１０が物品１０１を格納手段に格納する場合にも、本発明を適用できる。
【０１３９】
以上に説明したように、本発明の実施例によると、演算部１４が、格納棚１００の形状と、ロボット１０の形状と、取り出される対象物品１０１の形状と、格納棚１００内の対象物品１０１の位置姿勢とに基づいて、ロボット１０の停止位置姿勢９００及びアーム１２の目標関節角度９０１を算出し、ロボット１０が、停止位置姿勢９００へ移動し、アーム１２の関節角度を目標関節角度９０１へ変更し、格納棚１００から前記対象物品１０１を取り出すので、リーチが短く関節自由度が少ないアームを有するロボットでも、障害物（格納棚１００、他の物品など）に接触せずに、格納棚１００から物品１０１を取り出すことが可能となる。このため、ロボットのコストを低減でき、安価なロボットでの棚形状の制約を低くすることができる。
【０１４０】
また、演算部１４は、ロボット１０が格納棚１００に近づいた状態（格納棚１００内の物品１０１にアクセス可能な状態）である第１の停止位置姿勢９００Ｍ及び第１の目標関節角度９０１Ｍを実現するために、アーム１２の関節角度を第１の目標関節角度９０１Ｍとした状態で、ロボット１０が障害物と干渉せずに現在の位置姿勢から第１の停止位置姿勢９００Ｍへ移動する経路９０４Ｍを算出して、算出された経路９０４Ｍに従ってロボット１０が格納棚１００に近づくので、格納棚１００の奥に置かれている物品１０１を障害物と接触することなく保持することができる。
【０１４１】
また、演算部１４は、格納棚１００内の対象物品１０１の位置姿勢に基づいて、ロボット１０が障害物と干渉せずに対象物品１０１を保持する停止位置姿勢９００と目標関節角度９０１との組み合わせを算出するので、格納棚１００の奥に置かれている物品１０１を取り出すための一連の動作を適切に計画できる。
【０１４２】
また、演算部１４は、ロボット１０が格納棚１００から遠ざかった状態（ロボット１０が格納棚１００から離れ、他の場所に移動可能な状態）である第２の停止位置姿勢９００Ｑ及び第２の目標関節角度９０１Ｑを実現するために、アーム１２の関節角度が現在の状態で、ロボット１０が障害物と干渉せずに現在の位置姿勢から第２の停止位置姿勢９００Ｑへ移動する経路９０４Ｑを算出して、算出された経路９０４Ｑに従ってロボット１０が格納棚１００から遠ざかるので、格納棚１００の奥に置かれている物品１０１を保持した後に、障害物と接触することなく格納棚１００から離脱できる。
【０１４３】
また、演算部１４は、ロボット１０と格納棚１００が近接した状態から、ロボット１０が対象物品１０１を保持した状態で格納棚１００から離隔した停止位置姿勢９００と目標関節角度９０１との組み合わせを算出するので、格納棚１００の奥に置かれている物品１０１を取り出すための一連の動作を適切に計画できる。
【０１４４】
また、演算部１４は、格納棚１００の形状と、ロボット１０の形状と、対象物品１０１の形状と、対象物品１０１の位置姿勢とに基づいて、ロボット１０を停止位置姿勢９００へ移動する制御とアーム１２の関節角度を目標関節角度９０１へ変更する制御との順序を選択する。ロボット１０がアームを曲げた状態で移動することが安全上望ましいが、目的を達し得ない場合は、アームを伸ばした状態で移動する必要がある。このように、制御の順序を選択することによって、適切な制御を行うことができる。
【０１４５】
また、物品計測センサ１８が前記格納棚１００に格納された物品１０１を計測可能な位置姿勢へロボット１０が移動し、物品計測センサ１８は、計測可能な位置姿勢へロボット１０が移動した後、格納棚１００に格納された物品１０１を計測し、演算部１４は、計測の結果に基づいて、格納棚１００内の対象物品１０１の位置姿勢を認識するので、中央の制御装置（全体管理装置２００）での物品１０１の管理が不要となり、システムの負荷を分散できる。
【０１４６】
また、演算部１４は、格納棚１００の形状と、ロボット１０の形状と、取り出される対象物品１０１の形状と、格納棚１００内の対象物品１０１の位置姿勢とに基づいて、格納棚１００の停止位置姿勢９００及びアーム１２の目標関節角度９０１を算出し、搬送車９０は、停止位置姿勢９００へ格納棚１００を搬送し、ロボット１０は、アーム１２の関節角度を前記目標関節角度９０１へ変更し、格納棚１００から対象物品１０１を取り出すので、リーチが短く関節自由度が少ないアームを有するロボットでも、障害物（格納棚１００、他の物品など）に接触せずに、格納棚１００から物品１０１を取り出すことが可能となる。このため、ロボットのコストを低減でき、安価なロボットでの棚形状の制約を低くすることができる。
【０１４７】
また、演算部１４は、格納棚１００がロボット１０に近づいた状態（ロボット１０が格納棚１００内の物品１０１にアクセス可能な状態）である第１の停止位置姿勢９００ｎ及び第１の目標関節角度９０１ｎを実現するために、アーム１２の関節角度を第１の目標関節角度９０１ｎとした状態で、格納棚１００及び格納している物品が障害物（ロボット１０など）と干渉せずに現在の位置姿勢から第１の停止位置姿勢９００ｎへ移動する経路９０４ｎを算出して、算出された経路９０４ｎに従って格納棚１００が前記ロボット１０に近づくので、ロボット１０は格納棚１００の奥に置かれている物品１０１を障害物（格納棚１００、他の物品など）と接触することなく保持することができる。
【０１４８】
また、演算部１４は、格納棚１００内の対象物品１０１の位置姿勢に基づいて、格納棚１００及びロボット１０が障害物（お互いや他の物品など）と干渉せずに、ロボット１０が対象物品１０１を保持する停止位置姿勢９００と目標関節角度９０１との組み合わせを算出するので、格納棚１００の奥に置かれている物品１０１を取り出すための一連の連携動作を適切に計画できる。
【０１４９】
また、演算部１４は、格納棚１００がロボット１０から遠ざかった状態（格納棚１００がロボット１０から離れ、他の場所に移動可能な状態）である第２の停止位置姿勢９００ｒ及び第２の目標関節角度９０１ｒを実現するために、アーム１２の関節角度が現在の状態で、格納棚１００及び格納している物品が障害物（ロボット１０など）と干渉せずに現在の位置姿勢から第２の停止位置姿勢９００ｒへ搬送される経路９０４ｒを算出して、算出された経路９０４ｒに従って格納棚１００がロボット１０から遠ざかるので、格納棚１００の奥に置かれている物品１０１を保持した後に、障害物（ロボット１０など）と接触することなく格納棚１００がロボット１０から離脱できる。
【０１５０】
また、演算部１４は、ロボット１０と格納棚１００が近接した状態から、ロボット１０が対象物品１０１を保持した状態で、格納棚１００及び格納している物品がロボット１０から離隔した停止位置姿勢９００及び目標関節角度９０１を組合せとして算出するので、格納棚１００の奥に置かれている物品１０１を取り出すための一連の連携動作を適切に計画できる。
【０１５１】
また、演算部１４は、格納棚１００の形状と、ロボット１０の形状と、対象物品１０１の形状と、対象物品１０１の位置姿勢とに基づいて、搬送車９０が格納棚１００を停止位置姿勢９００へ搬送する制御とアーム１２の関節角度を目標関節角度９０１へ変更する制御との順序を選択する。格納棚１００がロボット１０へ向かう移動経路を最小とすることは作業スループットの観点から望ましいが、目的を達し得ない場合は、ロボット１０のアーム１２を伸ばし、そのアーム１２を回避するように格納棚１００を移動させる必要がある。このように、制御の順序を選択することによって、適切な制御を行うことができる。
【０１５２】
また、搬送車９０は、物品計測センサ１８が格納棚１００に格納された物品１０１を計測可能な位置姿勢へ、格納棚１００を搬送し、ロボット１０は、計測可能な位置姿勢へ格納棚１００が搬送された後、格納棚１００に格納された物品１０１を計測し、演算部１４は、計測の結果に基づいて、対象物品１０１の位置姿勢を認識するので、中央の制御装置（全体管理装置２００）での物品１０１の管理が不要となり、システムの負荷を分散できる。
【０１５３】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【０１５４】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１５５】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【０１５６】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１５７】
１  棚陳列物品ピッキングロボットシステム
２  容器内物品ピッキングロボットシステム
１０  ロボット
１１  グリッパ
１２  アーム
１３  走行部
１４  演算部
１５  吸引力発生器
１６  電力供給部
１７  周囲環境計測センサ
１８  物品計測センサ
９０  搬送車
９１  積載部
１００  格納棚
１０１  棚陳列物品
１５０  格納容器
１５１  容器内物品
２００  全体管理装置
９００  停止位置姿勢
９０１  目標関節角度
９０２  終了関節角度
９０４  干渉回避移動軌跡
【図１】
2018020423.tif 000003
【図２】
2018020423.tif 000004
【図３】
2018020423.tif 000005
【図４】
2018020423.tif 000006
【図５】
2018020423.tif 000007
【図６】
2018020423.tif 000008
【図７】
2018020423.tif 000009
【図８】
2018020423.tif 000010
【図９】
2018020423.tif 000011
【図１０】
2018020423.tif 000012
【図１１】
2018020423.tif 000013
【図１２】
2018020423.tif 000014
【図１３】
2018020423.tif 000015
【図１４】
2018020423.tif 000016
【図１５】
2018020423.tif 000017
【図１６】
2018020423.tif 000018
【図１７】
2018020423.tif 000019
【図１８】
2018020423.tif 000020
【図１９】
2018020423.tif 000021
【図２０】
2018020423.tif 000022
【図２１】
2018020423.tif 000023
【図２２】
2018020423.tif 000024
【図２３】
2018020423.tif 000025
【図２４】
2018020423.tif 000026