IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社MUJINの特許一覧

特許7272568ロボット運動計画およびリポジトリ検出を実行するための方法および計算システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-01
(45)【発行日】2023-05-12
(54)【発明の名称】ロボット運動計画およびリポジトリ検出を実行するための方法および計算システム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20230502BHJP
【FI】
B25J13/08 A
【請求項の数】 19
【外国語出願】
(21)【出願番号】P 2022076186
(22)【出願日】2022-05-02
(65)【公開番号】P2022172465
(43)【公開日】2022-11-16
【審査請求日】2022-08-30
(31)【優先権主張番号】63/183,685
(32)【優先日】2021-05-04
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】シュタオ イエ
(72)【発明者】
【氏名】ハムディ サロウル
(72)【発明者】
【氏名】プティチャイ ラートクルターノン
(72)【発明者】
【氏名】ローゼン ニコラエフ ディアンコフ
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2019-025566(JP,A)
【文献】国際公開第2020/100908(WO,A1)
【文献】特開2018-020423(JP,A)
【文献】国際公開第2019/187779(WO,A1)
【文献】特開2021-139879(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースと、
少なくとも1つの処理回路と、備え、
前記ロボットアームは、エンドエフェクター装置を含むかまたは当該エンドエフェクター装置に取り付けられ、前記カメラは、前記ロボットアームに取り付けられており、
前記少なくとも1つの処理回路は、前記ロボットが、ソースリポジトリと、シェルフタイプリポジトリを有する宛先リポジトリを含む物体移動領域内にあるときに、前記ソースリポジトリから前記宛先リポジトリへと物体を移動するために、
前記カメラを前記シェルフタイプリポジトリに向けさせる様式で、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、
前記シェルフタイプリポジトリを記述するための画像情報を受信することであって、前記画像情報が、前記第1の宛先リポジトリアプローチコマンドが実行された後に、前記カメラによって生成されることと、
前記画像情報に基づいて、前記シェルフタイプリポジトリの構造を記述するためのリポジトリ構造情報及び前記シェルフタイプリポジトリの姿勢を記述するためのリポジトリ姿勢情報を計算するリポジトリ検出操作を実行することと、
前記カメラが前記シェルフタイプリポジトリを記述するための前記画像情報を生成した後に、前記ロボットアームを前記ソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、
前記ソースリポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記ソースリポジトリから前記物体をピックアップさせるための物体ピックアップコマンドを出力することと、
前記物体ピックアップコマンドが実行された後に、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、
前記第2の宛先リポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記物体を前記シェルフタイプリポジトリ内に配置させるための物体配置コマンドを出力することであって、前記物体配置コマンドが、前記リポジトリ検出操作の結果に基づいて生成され、前記結果が、前記リポジトリ構造情報及び前記リポジトリ姿勢情報を含むことと、
を実行するように構成されている、計算システム。
【請求項2】
前記少なくとも1つの処理回路は、前記ソースリポジトリアプローチコマンドまたは前記物体ピックアップコマンドのうちの少なくとも1つが実行されている間、前記画像情報に基づいて前記リポジトリ検出操作を実行するように構成されている、請求項1に記載の計算システム。
【請求項3】
前記少なくとも1つの処理回路は、前記ソースリポジトリアプローチコマンド、前記物体ピックアップコマンド、または前記第2の宛先リポジトリアプローチコマンドのうちの少なくとも1つが実行されている間、前記リポジトリ検出操作の前記結果に基づいて物体配置軌道を計算するように構成されており、
前記物体配置軌道は、前記エンドエフェクター装置が前記物体を前記シェルフタイプリポジトリ内に配置するために従うための軌道であり、
前記物体配置コマンドは、前記物体配置軌道に基づいて生成される、請求項1に記載の計算システム。
【請求項4】
前記少なくとも1つの処理回路は、前記リポジトリ検出操作の前記結果に基づいていない様式で、第1の宛先リポジトリアプローチ軌道を計算するように構成されており、
前記第1の宛先リポジトリアプローチ軌道は、前記ロボットアームが前記シェルフタイプリポジトリに近づくために従うためのものであり、
前記第1の宛先リポジトリアプローチコマンドは、前記第1の宛先リポジトリアプローチ軌道に基づいて生成される、請求項3に記載の計算システム。
【請求項5】
前記少なくとも1つの処理回路は、前記シェルフタイプリポジトリがシェルフのセットを形成するフレームであり、かつ車両によって前記物体移動領域内および外に移動可能であるときに、前記車両が従った、または従う予定の車両軌道に基づいて、シェルフタイプリポジトリ位置を計算するように構成されており、
前記シェルフタイプリポジトリ位置は、前記物体移動領域内の前記シェルフタイプリポジトリについての推定された位置である、請求項4に記載の計算システム。
【請求項6】
前記少なくとも1つの処理回路は、前記物体ピックアップコマンドが実行された後に従うべき第2の宛先リポジトリアプローチ軌道を計算するように構成されており、
前記第2の宛先リポジトリアプローチ軌道は、前記リポジトリ検出操作の前記結果に基づいていない様式で計算され、
前記物体配置軌道は、前記第2の宛先リポジトリアプローチ軌道の終点で開始するように計算される、請求項4に記載の計算システム。
【請求項7】
前記少なくとも1つの処理回路は、前記ソースリポジトリが前記物体移動領域内の所定の位置に固定されるときに、前記ソースリポジトリが前記物体移動領域内で固定される前記所定の位置に基づいて、ソースリポジトリアプローチ軌道および物体ピックアップ軌道を計算するように構成されており、
前記ソースリポジトリアプローチ軌道は、前記ロボットアームが前記ソースリポジトリに近づくために従うための軌道であり、前記ソースリポジトリアプローチコマンドは、前記ソースリポジトリアプローチ軌道に基づいて生成され、
前記物体ピックアップ軌道は、前記エンドエフェクター装置が前記ソースリポジトリから前記物体をピックアップするために従うための軌道であり、前記物体ピックアップコマンドは、前記物体ピックアップ軌道に基づいて生成される、請求項1に記載の計算システム。
【請求項8】
前記リポジトリ検出操作は、第1のリポジトリ検出操作であり、前記画像情報は、画像情報の第1のセットであり、
前記少なくとも1つの処理回路は、前記ソースリポジトリが前記物体移動領域に固定されていないときに、
前記ソースリポジトリを記述するための画像情報の第2のセットを受信することであって、前記画像情報の第2のセットが、前記ソースリポジトリアプローチコマンドの実行中に、前記カメラによって生成されることと、
前記画像情報の第2のセットに基づいて、第2のリポジトリ検出操作を実行することと、
前記第2のリポジトリ検出操作の結果に基づいて、物体ピックアップ軌道の少なくとも一部分を計算することであって、前記物体ピックアップ軌道が、前記エンドエフェクター装置が前記ソースリポジトリから前記物体をピックアップするために従うための軌道であり、前記物体ピックアップコマンドが、前記物体ピックアップ軌道に基づいて生成されることと、
を実行するように構成されている、請求項1に記載の計算システム。
【請求項9】
前記少なくとも1つの処理回路は、前記画像情報の第2のセットに基づいて、前記物体が前記ソースリポジトリ内にある間に前記物体に関連付けられた物体姿勢を決定することによって、前記第2のリポジトリ検出操作を実行するように構成されており、前記物体ピックアップコマンドは、前記物体姿勢に基づいて生成される、請求項8に記載の計算システム。
【請求項10】
前記少なくとも1つの処理回路は、
前記ロボットによって実行されたときに、前記ソースリポジトリに向かう前記ロボットアームの移動を第1の期間中に一時停止させ、それに続く第2の期間中に再開させる様式で、前記ソースリポジトリアプローチコマンドを生成することと、
前記第1の期間中に、前記画像情報の前記第2のセットが前記カメラによって生成されるようにすることと、
前記第2の期間中に、前記第2のリポジトリ検出操作を実行することと、
を行うように構成されている、請求項8に記載の計算システム。
【請求項11】
前記少なくとも1つの処理回路は、前記画像情報がリポジトリ構造を記述する所定のリポジトリモデルと少なくとも部分的に整列する様式を決定することによって、前記リポジトリ検出操作を実行するように構成されており、
前記物体配置コマンドは、前記画像情報が前記所定のリポジトリモデルと少なくとも部分的に整列する様式に基づいて生成される、請求項1に記載の計算システム。
【請求項12】
前記少なくとも1つの処理回路は、前記画像情報がリポジトリ構造を記述する所定のリポジトリモデルと比較されるときに、所定のテンプレートマッチング条件を満たすかどうかを決定することによって、前記リポジトリ検出操作を実行するように構成されており、
前記少なくとも1つの処理回路は、前記画像情報が前記所定のテンプレートマッチング条件を満たすという決定に応答して、前記所定のリポジトリモデルに基づいて前記物体配置コマンドを生成するように構成されている、請求項1に記載の計算システム。
【請求項13】
前記画像情報は、前記シェルフタイプリポジトリ上の複数の表面位置についてのそれぞれの奥行き値を記述し、
前記少なくとも1つの処理回路は、前記複数の表面位置が前記カメラに対する第2の表面位置よりも近い第1の表面位置を含むときに、前記画像情報と前記所定のリポジトリモデルとの間の一致のレベルを、前記第2の表面位置が前記所定のリポジトリモデルとどれだけ密接に一致するかよりも、前記第1の表面位置が前記所定のリポジトリモデルとどれだけ密接に一致するかにより重点を置く様式で、決定するように構成されている、請求項12に記載の計算システム。
【請求項14】
前記少なくとも1つの処理回路は、
前記物体が配置される前記シェルフタイプリポジトリ内の宛先セクタを決定するように構成されていると共に、
前記画像情報に基づいて、前記宛先セクタが占有されていないかどうかを決定することによって、前記リポジトリ検出操作を実行するように構成されている、請求項1に記載の計算システム。
【請求項15】
前記少なくとも1つの処理回路は、前記物体が配置される前記シェルフタイプリポジトリ内の宛先セクタを決定するように構成されており、かつ
前記画像情報がリポジトリ構造を記述する第1のリポジトリモデルと少なくとも部分的に整列する様式を決定することと、
前記画像情報が前記第1のリポジトリモデルと少なくとも部分的に整列する前記様式に基づいて、前記宛先セクタを含む前記シェルフタイプリポジトリの少なくとも1層を表す前記画像情報の一部分を識別することと、
前記画像情報の前記部分が前記リポジトリ構造の少なくとも1層を記述する第2のリポジトリモデルと少なくとも部分的に整列する様式を決定することと、
によって前記リポジトリ検出操作を実行するように構成されており、
前記物体配置コマンドは、前記画像情報の前記部分が前記第2のリポジトリモデルと少なくとも部分的に整列する様式に基づいて生成される、請求項1に記載の計算システム。
【請求項16】
前記第1のリポジトリモデルは、前記リポジトリ構造のフレームを記述し、その結果、少なくとも1つの処理回路は、前記画像情報が前記第1のリポジトリモデルによって記述されるフレームと整列する様式を決定するように構成されている、請求項15に記載の計算システム。
【請求項17】
前記少なくとも1つの処理回路は、
前記画像情報から、前記シェルフタイプリポジトリを複数の領域に分割する前記シェルフタイプリポジトリの複数のエッジを検出することと、
複数の仮想バウンディングボックスを決定することであって、前記複数の仮想バウンディングボックスの各仮想バウンディングボックスが、前記複数のエッジのうちの1つを囲むか、または前記複数の領域のうちの1つを囲むことと、
を行うように構成されており、
前記物体配置コマンドは、前記複数の仮想バウンディングボックスに基づいて生成される、請求項16に記載の計算システム。
【請求項18】
ソースリポジトリから、シェルフタイプリポジトリを有する宛先リポジトリへと物体を移動するためのロボット制御方法であって、当該方法が、ロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースを介して、少なくとも1つの処理回路によって操作可能であり、前記ロボットアームが、エンドエフェクター装置を含むかまたは当該エンドエフェクター装置に取り付けられ、前記カメラが、前記ロボットアームに取り付けられ、
前記方法が、
前記カメラを前記シェルフタイプリポジトリに向けさせる様式で、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、
前記シェルフタイプリポジトリを記述するための画像情報を受信することであって、前記画像情報が、前記第1の宛先リポジトリアプローチコマンドが実行された後に、前記カメラによって生成されることと、
前記画像情報に基づいて、前記シェルフタイプリポジトリの構造を記述するためのリポジトリ構造情報及び前記シェルフタイプリポジトリの姿勢を記述するためのリポジトリ姿勢情報を決定するリポジトリ検出操作を実行することと、
前記カメラが前記シェルフタイプリポジトリを記述するための前記画像情報を生成した後に、前記ロボットアームを前記ソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、
前記ソースリポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記ソースリポジトリから前記物体をピックアップさせるための物体ピックアップコマンドを出力することと、
前記物体ピックアップコマンドが実行された後に、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、
前記第2の宛先リポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記物体を前記シェルフタイプリポジトリ内に配置させるための物体配置コマンドを出力することであって、前記物体配置コマンドが、前記リポジトリ検出操作の結果に基づいて生成され、前記結果が、前記リポジトリ構造情報及び前記リポジトリ姿勢情報を含むことと、
を含む、ロボット制御方法。
【請求項19】
ソースリポジトリから、シェルフタイプリポジトリを有する宛先リポジトリへと物体を移動するためのロボット制御方法を実装するための実行可能な命令を備えた非一時的コンピュータ可読媒体であって、前記方法が、ロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースを介して、少なくとも1つの処理回路によって操作可能であり、前記ロボットアームが、エンドエフェクター装置を含むかまたは当該エンドエフェクター装置に取り付けられ、前記カメラが、前記ロボットアームに取り付けられ、
前記方法が、
前記カメラを前記シェルフタイプリポジトリに向けさせる様式で、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、
前記シェルフタイプリポジトリを記述するための画像情報を受信することであって、前記画像情報が、前記第1の宛先リポジトリアプローチコマンドが実行された後に、前記カメラによって生成されることと、
前記画像情報に基づいて、前記シェルフタイプリポジトリの構造を記述するためのリポジトリ構造情報及び前記シェルフタイプリポジトリの姿勢を記述するためのリポジトリ姿勢情報を決定するリポジトリ検出操作を実行することと、
前記カメラが前記シェルフタイプリポジトリを記述するための前記画像情報を生成した後に、前記ロボットアームを前記ソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、
前記ソースリポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記ソースリポジトリから前記物体をピックアップさせるための物体ピックアップコマンドを出力することと、
前記物体ピックアップコマンドが実行された後に、前記ロボットアームを前記シェルフタイプリポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、
前記第2の宛先リポジトリアプローチコマンドが実行された後に、前記エンドエフェクター装置に前記物体を前記シェルフタイプリポジトリ内に配置させるための物体配置コマンドを出力することであって、前記物体配置コマンドが、前記リポジトリ検出操作の結果に基づいて生成され、前記結果が、前記リポジトリ構造情報及び前記リポジトリ姿勢情報を含むことと、
を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年5月4日に出願された、「ROBOTIC SYSTEM FOR ADJUSTING ROBOT TRAJECTORY」と題する、米国仮出願第63/183,685号の利益を主張し、その全内容が参照により本明細書に組み込まれる。
【0002】
本技術は、概して、ロボットシステム、より具体的には、物体サイズ測定および/または最小実行可能領域検出を実行するためのシステム、プロセス、および技術を対象とする。
【背景技術】
【0003】
性能がますます向上し、コストが低減するにつれ、現在、多くのロボット(例えば、物理的アクションを自動/自律的に実行するように構成された機械)が様々な異なる分野で広く使用されている。ロボットは、例えば、製造および/または組立、梱包および/または包装、輸送および/または出荷などにおける様々なタスク(例えば、空間を通して物体を操作するか、または移動させる)を実行するために使用され得る。タスクを実行する際に、ロボットは、人のアクションを再現することができ、それによって、そうでなければ危険または反復的なタスクを実行するのに必要な人の関与を置き換えるか、または低減することができる。
【発明の概要】
【0004】
一実施形態では、計算システムが提供される。計算システムは、ロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースと、少なくとも1つの処理回路と、備え、ロボットアームが、エンドエフェクター装置を含むかまたはそれに取り付けられ、カメラが、ロボットアームに取り付けられ、少なくとも1つの処理回路は、ロボットが、ソースリポジトリおよび宛先リポジトリを含む物体移動領域内にあるときに、ソースリポジトリから宛先リポジトリへと物体を移動するために、以下のステップを実行するように構成されている。ステップは、カメラを宛先リポジトリに向けさせる様式で、ロボットアームを宛先リポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、宛先リポジトリを記述するための画像情報を受信することであって、画像情報が、第1の宛先リポジトリアプローチコマンドが実行された後に、カメラによって生成されることと、画像情報に基づいて、宛先リポジトリの構造を記述するためのリポジトリ構造情報、宛先リポジトリの姿勢を記述するためのリポジトリ姿勢情報、または1つ以上の物体が宛先リポジトリ内に存在するかどうかを記述するためのリポジトリコンテンツ情報のうち少なくとも1つを決定する、リポジトリ検出操作を実行することと、カメラが宛先リポジトリを記述するための画像情報を生成した後に、ロボットアームをソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、ソースリポジトリアプローチコマンドが実行された後に、エンドエフェクター装置にソースリポジトリから物体をピックアップさせるための物体ピックアップコマンドを出力することと、物体ピックアップコマンドが実行された後に、ロボットアームを宛先リポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、第2の宛先リポジトリアプローチコマンドが実行された後に、エンドエフェクター装置に物体を宛先リポジトリ内に配置させるための物体配置コマンドを出力することであって、物体配置コマンドが、リポジトリ検出操作の結果に基づいて生成され、結果が、リポジトリ構造情報、リポジトリ姿勢情報、またはリポジトリコンテンツ情報のうちの少なくとも1つを含むことと、を含む。
【0005】
一実施形態では、ソースリポジトリから宛先リポジトリへと物体を移動するためのロボット制御方法が提供される。方法は、ロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースを介して、少なくとも1つの処理回路によって操作可能であり、ロボットアームは、エンドエフェクター装置を含むかまたはそれに取り付けられ、カメラは、ロボットアームに取り付けられる。方法は、カメラを宛先リポジトリに向けさせる様式で、ロボットアームを宛先リポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、宛先リポジトリを記述するための画像情報を受信することであって、画像情報が、第1の宛先リポジトリアプローチコマンドが実行された後に、カメラによって生成されることと、画像情報に基づいて、宛先リポジトリの構造を記述するためのリポジトリ構造情報、宛先リポジトリの姿勢を記述するためのリポジトリ姿勢情報、または1つ以上の物体が宛先リポジトリ内に存在するかどうかを記述するためのリポジトリコンテンツ情報のうち少なくとも1つを決定する、リポジトリ検出操作を実行することと、カメラが宛先リポジトリを記述するための画像情報を生成した後に、ロボットアームをソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、ソースリポジトリアプローチコマンドが実行された後に、エンドエフェクター装置にソースリポジトリから物体をピックアップさせるための物体ピックアップコマンドを出力することと、物体ピックアップコマンドが実行された後に、ロボットアームを宛先リポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、第2の宛先リポジトリアプローチコマンドが実行された後に、エンドエフェクター装置に物体を宛先リポジトリ内に配置させるための物体配置コマンドを出力することであって、物体配置コマンドが、リポジトリ検出操作の結果に基づいて生成され、結果が、リポジトリ構造情報、リポジトリ姿勢情報、またはリポジトリコンテンツ情報のうちの少なくとも1つを含むことと、を含む。
【0006】
一実施形態では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、ソースリポジトリから宛先リポジトリへと物体を移動するためのロボット制御方法を実装するための実行可能な命令を備えており、かつロボットアーム及びカメラを有するロボットと通信するように構成された通信インターフェースを介して、少なくとも1つの処理回路によって操作可能であり、ロボットアームは、エンドエフェクター装置を含むかまたはそれに取り付けられ、カメラは、ロボットアームに取り付けられる。方法は、カメラを宛先リポジトリに向けさせる様式で、ロボットアームを宛先リポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力することと、宛先リポジトリを記述するための画像情報を受信することであって、画像情報が、第1の宛先リポジトリアプローチコマンドが実行された後に、カメラによって生成されることと、画像情報に基づいて、宛先リポジトリの構造を記述するためのリポジトリ構造情報、宛先リポジトリの姿勢を記述するためのリポジトリ姿勢情報、または1つ以上の物体が宛先リポジトリ内に存在するかどうかを記述するためのリポジトリコンテンツ情報のうち少なくとも1つを決定する、リポジトリ検出操作を実行することと、カメラが宛先リポジトリを記述するための画像情報を生成した後に、ロボットアームをソースリポジトリに近づかせるためのソースリポジトリアプローチコマンドを出力することと、ソースリポジトリアプローチコマンドが実行された後に、エンドエフェクター装置にソースリポジトリから物体をピックアップさせるための物体ピックアップコマンドを出力することと、物体ピックアップコマンドが実行された後に、ロボットアームを宛先リポジトリに近づかせるための第2の宛先リポジトリアプローチコマンドを出力することと、第2の宛先リポジトリアプローチコマンドが実行された後に、エンドエフェクター装置に物体を宛先リポジトリ内に配置させるための物体配置コマンドを出力することであって、物体配置コマンドが、リポジトリ検出操作の結果に基づいて生成され、結果が、リポジトリ構造情報、リポジトリ姿勢情報、またはリポジトリコンテンツ情報のうちの少なくとも1つを含むことと、を含む。
【図面の簡単な説明】
【0007】
図1A】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするためのシステムを示している。
図1B】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするためのシステムを示している。
図1C】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするためのシステムを示している。
図1D】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするためのシステムを示している。
図2A】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2B】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2C】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2D】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2E】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2F】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図2G】本明細書の実施形態に合致する、最小実行可能領域を画定することを実行するか、または容易にするように構成された計算システムを示すブロック図を提供する。
図3A】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図3B】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図3C】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図3D】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図3E】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図3F】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を示している。
図4】本明細書の一実施形態による、最小実行可能領域を定義する方法を示すフロー図を提供する。
図5A】は、本明細書の実施形態に合致する、ロボットアームの運動計画軌道を示している。
図5B】は、本明細書の実施形態に合致する、ロボットアームの運動計画軌道を示している。
図5C】は、本明細書の実施形態に合致する、ロボットアームの運動計画軌道を示している。
図6】本明細書の実施形態に合致する、リポジトリテンプレートを示している。
【発明を実施するための形態】
【0008】
協調移動機構を有するロボットシステムのシステムおよび方法が本明細書に説明されている。本明細書に記載する実施形態に従って構成されたロボットシステム(例えば、各々が1つ以上の指定されたタスクを実行するデバイスの統合されたシステム)は、複数のユニット(例えば、ロボット)の操作を協調させることによって、統合されたタスクを自律的に実行する。
【0009】
本明細書に記載される本技術は、既存のコンピュータベースの画像認識およびロボット制御分野に技術的改善をもたらす。技術的改善は、ロボット軌道計画操作の全体的な速度、信頼性、および正確さの向上をもたらす。本明細書に記載されるロボット軌道計画操作は、より速い速度、信頼性、および正確さでロボットタスク(物体を掴んで移動する)を達成するための、事前に計画された軌道および調整された軌道の組み合わせを含む。
【0010】
特に、本明細書に記載される本技術は、事前に計画された軌道および調整された軌道のインテリジェントな組み合わせを可能にすることによって、ロボットシステムを改善する。事前に計画された軌道を採用して、ロボットアームが、移動中に有意な計算を必要とせずに、ロード/アンロードゾーン全体にわたって迅速に移動することを可能にし得る。しかしながら、事前に計画された軌道に厳密に依存することは、物体のソースおよび宛先に差異がある状況では、正確さおよび信頼性の低下という欠点がある可能性がある。画像分析で調整された軌道は、速度を犠牲にして、より正確で信頼性の高い物体のピッキングおよび配置を提供し得る。本明細書に記載されるシステムおよび方法は、いずれの方法よりも速度、正確さ、および信頼性を高めるために、事前に計画された軌道および画像支援軌道の両方を組み合わせる。予め計画された軌道を使用して、ロボットアームを目標場所の近くに位置付けてもよく、一方で、画像支援軌道を採用して、物体をピッキングまたは配置するための最終軌道を調整または微調整してもよい。したがって、本明細書に記載の方法およびシステムは、コンピュータ支援ロボット制御の技術分野で生じる技術的問題に対する技術的解決策を提供する。
【0011】
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含まずに実施されてもよい。他の実例では、特定の機能またはルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。本明細書における「実施形態」、「一実施形態」などへの参照は、説明される特定の特徴、構造、材料、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしもすべて同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料、または特性は、1つ以上の実施形態で、任意の好適な様式で組み合わせられ得る。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0012】
周知であり、かつ多くの場合にロボットシステムおよびサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭にし得る、構造またはプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。さらに、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成または異なる構成要素を有してもよい。したがって、開示された技術は、追加の要素を有するか、または以下に説明される要素のうちの数点を有しない、他の実施形態を有してもよい。
【0013】
以下に説明される本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはコントローラによって実行されるルーチンを含む、コンピュータまたはコントローラ実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され説明されるもの以外のコンピュータまたはコントローラシステム上で、またはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技術は、以下に説明されるコンピュータ実行可能命令のうちの1つ以上を実行するように、特別にプログラム、構成、または構築されている、専用コンピュータまたはデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される用語「コンピュータ」および「コントローラ」は、任意のデータプロセッサを指し、インターネット家電およびハンドヘルドデバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラーまたはモバイルフォン、マルチプロセッサシステム、プロセッサベースまたはプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータおよびコントローラによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータまたはコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体に、またはその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、および/または他の好適な媒体を含む、任意の適切なメモリデバイスに含まれ得る。
【0014】
「結合」および「接続」という用語は、それらの派生語と共に、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続」は、2つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合」という用語は、2つ以上の要素が、互いに直接的または間接的(それらの間の他の介在要素との)接触にあるか、または2つ以上の要素が互いに協働するか、もしくは相互作用する(例えば、信号送信/受信のための、または関数呼び出しのためのなどの、因果関係にあるような)か、またはその両方を示すために使用され得る。
【0015】
計算システムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の位置を記述する、点群を含んでもよく、またはそれを生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0016】
図1Aは、物体検出、すなわち、より具体的には、物体認識を実行するためのシステム1500を例示する。より詳細には、システム1500は、計算システム1100およびカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を描写するか、もしくはそうでなければ表し、またはより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、または他の施設であり得る。こうした実例では、画像情報が、ボックス、ビン、ケース、木枠または他の容器などの、こうした施設に位置する物体を表し得る。システム1500は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて物体認識または物体登録を実行すること、および/または画像情報に基づいてロボット相互作用計画を実行することなど、画像情報を生成、受信、および/または処理するよう構成され得る(用語「および/または」および「または」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器または他の物体との間のロボット相互作用を促進するように、施設でロボットを制御するために使用され得る。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置し得る。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
【0017】
実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラおよび/または3Dカメラであり得る。例えば、図1Bは、計算システム1100、ならびにカメラ1200Aおよびカメラ1200B(その両方がカメラ1200の実施形態であり得る)を含むシステム1500A(システム1500の実施形態であり得る)を示している。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を記述する2D画像を含むまたは形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、または形成する3D画像情報を生成するように構成されている3Dカメラ(空間構造感知カメラまたは空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の位置など、カメラ1200Bに対する様々な位置のそれぞれの奥行き値を記述する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野または物体の表面のこれらの位置はまた、物理的位置と呼んでもよい。この実施例の奥行き情報は、物体が3次元(3D)空間の中で空間的にどのように配設されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野中にある物体の1つ以上の表面上の位置を記述する、点群を含んでもよく、またはそれを生成するために使用され得る。より具体的には、空間構造情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を記述し得る。
【0018】
実施形態では、システム1500が、カメラ1200の環境でロボットと様々な物体との間のロボット相互作用を促進するためのロボット操作システムであり得る。例えば、図1Cは、図1Aおよび図1Bのシステム1500/1500Aの実施形態であり得る、ロボット操作システム1500Bを示している。ロボット操作システム1500Bは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある1つ以上の物体、例えば、ボックス、木枠、ビン、またはその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、1つの位置から容器を拾い上げ、それらを別の位置に移動するように構成され得る。一部の事例では、ロボット1300は、容器または他の物体のグループが降ろされて、例えば、ベルトコンベヤーに移動されるといった、パレットから降ろす操作を実行するために使用され得る。一部の実装形態では、カメラ1200は、ロボット1300のロボットアーム3320など、ロボット1300に取り付けられてもよい。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫または他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。
【0019】
一実施形態では、図1A図1Cの計算システム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、またはロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器または他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成されてもよい。例えば、計算システム1100は、画像情報に基づいて運動計画を計算するように構成されてもよく、運動計画は、例えば、物体を掴むか、または他の方法でピックアップすることを意図し得る。計算システム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成し得る。
【0020】
実施形態では、計算システム1100は、視覚システムを形成しても、またはその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を記述する、または別の方法として、もしくは追加的に、カメラ1200が位置する環境を記述する、視覚情報を生成するシステムであり得る。視覚情報が、上で考察された3D画像情報、および/または2D画像情報、またはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、計算システム1100が、視覚システムを形成する場合、視覚システムは、上で考察されたロボット制御システムの一部であってもよく、またはロボット制御システムから分離し得る。視覚システムは、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を記述する、情報を出力するように構成され得る。情報は、視覚システムからこうした情報を受信し、情報に基づいて、運動計画を実行し、および/またはロボット相互作用移動コマンドを生成することができる、ロボット制御システムに出力され得る。視覚システムに関する詳細情報は、以下に詳しく説明されている。
【0021】
実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、および/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続によってカメラ1200ならびに/またはロボット1300と通信し得る。実施形態では、計算システム1100が、ネットワークを介してカメラ1200および/またはロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、またはインターネットなど、いかなるタイプおよび/または形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、またはSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用し得る。
【0022】
実施形態では、計算システム1100は、カメラ1200および/もしくはロボット1300と直接情報を伝達してもよく、または中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、図1Dは、計算システム1100の外部にあり得る非一時的コンピュータ可読媒体1400を含む、システム1500/1500A/1500Bの実施形態であってもよく、例えば、カメラ1200によって生成される画像情報を記憶するための外部バッファまたはリポジトリとして作用し得る、システム1500Cを示している。こうした一実施例では、計算システム1100は、非一時的コンピュータ可読媒体1400から、画像情報を検索するか、さもなければ受信することができる。非一時的コンピュータ可読媒体1400の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックを形成し得る。
【0023】
上述のように、カメラ1200は、3Dカメラおよび/または2Dカメラであり得る。2Dカメラは、カラー画像またはグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、またはいかなる他のタイプの3Dカメラであり得る。一部の事例では、2Dカメラおよび/または3Dカメラは、電荷結合素子(CCD)センサおよび/または相補型金属酸化膜半導体(CMOS)センサなど、イメージセンサを含み得る。実施形態では、3Dカメラは、レーザー、LIDARデバイス、赤外線デバイス、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダー検出器、または奥行き情報、または空間構造情報を取り込むように構成されている任意の他のデバイスを含み得る。
【0024】
上述のように、画像情報が、計算システム1100によって処理され得る。実施形態では、計算システム1100は、サーバー(例えば、1つ以上のサーバーブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピュータ装置、および/もしくは他の任意の他の計算システムを含んでもよく、またはそれらとして構成され得る。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一のコンピュータ装置(例えば、デスクトップコンピュータ)であってもよく、または複数のコンピュータ装置を含んでもよい。
【0025】
図2Aは、計算システム1100の実施形態を示すブロック図を提供する。この実施形態における計算システム1100は、少なくとも1つの処理回路1110、および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、および/またはオンボードサーバー)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に操作可能に結合された別個の/スタンドアロンコントローラに含まれてもよい。プロセッサは、プログラム命令を実装して、他の装置を制御/インターフェースし、それによって、計算システム1100にアクション、タスク、および/または操作を実行させ得る。実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、または任意の他の処理回路を含む。
【0026】
実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120が、上で考察された中間の非一時的コンピュータ可読媒体1400の代替または追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせなどの記憶装置であってもよく、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、または任意の他の記憶装置などであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成されている。一部の実例では、非一時的コンピュータ可読媒体1120は、物体認識操作を実行するために使用される1つ以上のモデルテンプレートを記憶し得る。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的または追加的に記憶し得る。
【0027】
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む、計算システム1100Aを描写する。通信インターフェース1130は、例えば、図1A図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1130は、図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1130が、ロボット制御システムと通信するように構成され得る。通信インターフェース1130はまた、通信構成要素または通信回路と呼ばれる場合があり例えば、有線または無線プロトコルによって通信を実行するように構成されている通信回路を含んでもよい。実施例として、通信回路が、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、またはそれらの組み合わせを含んでもよい。
【0028】
一実施形態では、図2Cに図示されるように、非一時的コンピュータ可読媒体1120は、本明細書に論じられる1つ以上のデータオブジェクトを記憶するように構成された記憶空間1122を含み得る。例えば、記憶空間は、モデルテンプレート、ロボットアーム移動コマンド、および計算システム1100Bがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
【0029】
実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される、1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、図2Dは、計算システム1100/1100A/1100Bの実施形態である、計算システム1100Cを示し、その中の処理回路1110は、物体認識モジュール1121、運動計画モジュール1129、および物体操作モジュール1126を含む、1つ以上のモジュールによってプログラムされる。運動計画モジュール1129(および計算システム1100Cに関連付けられた任意の他のモジュール)は、必要に応じて、軌道情報1128およびテンプレート情報1127にアクセスし得る。
【0030】
実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得および分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、および技術は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書で論じるように、物体認識およびリポジトリ認識の両方のために使用され得る。
【0031】
運動計画モジュール1129は、ロボットの移動を計画および実行するように構成され得る。例えば、運動計画モジュール1129は、個々の配置位置/配向を導出し、対応する運動計画、または物体を掴むおよび/もしくは移動させるためのそれらの組み合わせを計算してもよい。運動計画モジュール1129は、軌道情報1128にアクセスして更新し得る。軌道情報1128は、運動計画モジュール1129によってアクセス可能かつ更新可能である、事前に計画された初期軌道情報を含み得る。運動計画モジュールはまた、調整された軌道情報を記憶し得る。運動計画モジュール1129は、以下でより詳細に論じるように、物体テンプレート情報およびリポジトリテンプレート情報(ソースおよび宛先の両方)を含む、テンプレート情報1127にアクセスして更新し得る。ロボットアームの移動および軌道に関して本明細書で論じられる方法、システム、および技術は、運動計画モジュール1129によって実施され得る。モデルおよびテンプレートに関して本明細書で論じられる方法、システム、および技術は、運動計画モジュール1129によって実施され得る。
【0032】
物体操作モジュール1126は、例えば、物体の掴みおよび解除、ならびにこうした掴みおよび解除を補助および促進するためのロボットアームコマンドの実行である、ロボットアームの物体操作活動を計画および実行するように構成されてもよい。
【0033】
図2E図2Gおよび図3Aを参照すると、画像分析のために実施され得る物体認識モジュール1121に関連する方法が説明される。図2Eおよび図2Fは、画像分析方法と関連付けられた例示的な画像情報を示すが、図3Aは、画像分析方法と関連付けられた例示的なロボット環境を示す。計算システムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の位置を記述する点群を含んでもよく、またはそれを生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0034】
一例として、図2Eは、画像情報の第1のセット、より具体的には、2D画像情報2600を図示し、これは、上述のように、カメラ3200(図3Aに示されている)によって生成され、物体3530、3520、3510、および図3Aのリポジトリ3110/3120/3130/3140/3150を表すことができる。より具体的には、2D画像情報2600は、グレースケール、またはカラー画像であり得、カメラ3200の視点からの物体3530、3520、3510、およびリポジトリ3110/3120/3130/3140/3150の外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、または青のチャネル)に対応し得る。2D画像情報2600は、物体3530、3520、3510、およびリポジトリ3110/3120/3130/3140/3150のそれぞれのカメラ接面の外観を表し得る。図2Eの実施例では、2D画像情報2600は、カメラ3200によって画像化された物体のそれぞれの表面を表す、画像部分とも呼ばれる、それぞれの部分2000A/2000B/2000C/2000D/2550を含み得る。例えば、部分2000A/2000B/2000C/2000Dは、ボックスなどの物体を表してもよく、一方で、部分2550は、ボックスが積み重ねられるか、または置かれるパレットなどの一部分を表してもよい。図2Eでは、2D画像情報2600の各画像部分2000A/2000B/2000C/2000D/2550は、画像領域、すなわち、より具体的には、ピクセル領域(画像がピクセルによって形成される場合)であり得る。2D画像情報2600のピクセル領域内の各ピクセルは、座標[U、V]のセットによって記述される位置を有するものとして特徴付けられ得、図2Eおよび図2Fに示されるように、カメラ座標系または他の何らかの座標系に相対的な値を有し得る。ピクセルの各々はまた、0~255または0~1023の値などの、強度値を有してもよい。さらなる実施形態では、ピクセルの各々は、様々なフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)のピクセルに関連付けられた任意の追加情報を含んでもよい。
【0035】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像のすべてまたは一部分であってもよい。実施例では、計算システム1100は、対応する物体と関連付けられた画像情報のみを取得するように、2D画像情報2600から画像部分2000Aを抽出するように構成されてもよい。例えば、計算システム1100は、図2Fに示される2D画像情報2600および/または3D画像情報2700に基づいて画像セグメンテーション操作を実行することによって、画像部分2000Aを抽出し得る。一部の実装形態では、画像セグメンテーション操作は、物体の物理的エッジ(例えば、ボックスのエッジ)が2D画像情報2600の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3210)内の個々の物体を表すことに限定された画像部分(例えば、5610)を識別することを含み得る。
【0036】
図2Fは、画像情報が3D画像情報2700である、実施例を図示している。より具体的には、3D画像情報2700は、画像化された物体/リポジトリの1つ以上の表面(例えば、上部表面、または他の外側表面)上の様々な位置のそれぞれの奥行き値を示す、例えば、奥行きマップまたは点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、ボックスのエッジ)が3D画像情報2700の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3000A)内の個々の物体を表すことに限定された画像部分(例えば、2730)を識別することを含み得る。
【0037】
それぞれの奥行き値は、3D画像情報2700を生成するカメラ3200に対するものであってもよく、またはいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3210)の中にある物体の構造上の様々な位置に対するそれぞれの座標を含む、点群を含み得る。図2Fの実施例では、点群は、画像化された物体/リポジトリのそれぞれの表面上の位置を記述する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、または何らかの他の座標系に対する値を有してもよい。例えば、3D画像情報2700は、対応する物体(2000D)の表面上の物理的位置とも呼ばれる、位置2710~2710のセットのそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の部分2710を含み得る。さらに、3D画像情報2700は、第2の部分、第3の部分、および第4の部分2720、2730、および2740をさらに含み得る。次に、これらの部分は、それぞれ、物体2000B、2000A、および2000Cに対応する、それぞれ2720~2720、2730~2730、および2740~2740によって表され得る、位置のセットに対するそれぞれの奥行き値をさらに示し得る。位置2750~2750を含む第5の部分2750は、物体2550に対応してもよい。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第1のセットの一部分であってもよい。図2Eの実施例では、取得された3D画像情報2700が第1の物体を表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。
【0038】
図2Gは、物体リポジトリの3D画像情報3700の実施例を示している。3D画像情報3700は、リポジトリを表す第1の画像部分3710と、リポジトリ内に位置する物体を表す第2の画像部分3830とを有する点群を含んでもよい。図2Gは、例示のみを目的としており、本明細書の実施形態と一致するリポジトリ/物体は、多くの形態を取り得る。図2Gでは、3D画像情報は、カメラ3200が大きな角度なしにリポジトリの真正面に位置付けられている状態で、「正面」ビューで捕捉される。
【0039】
実施形態では、画像正規化操作は、画像情報を取得する一部として、計算システム1100によって実施され得る。画像正規化操作は、変換された画像または変換された画像部分を生成するために、カメラ3200によって生成された画像または画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、または2つの組み合わせを含み得る画像情報が、視点、物体姿勢、および照明条件において画像情報を変更させるように試みるために、画像正規化操作を受け得る場合である。こうした正規化は、以下でより詳細に論じるように、画像情報およびモデル(例えば、テンプレート)情報間のより正確な比較を容易にするために実施され得る。視点は、カメラ3200に対する物体の姿勢、および/またはカメラ3200が物体を表す画像を生成するときに、カメラ3200が物体を見ている角度を指し得る。
【0040】
例えば、画像情報は、標的リポジトリまたは物体がカメラ視野内にある、物体認識操作中に生成され得る。カメラ3200は、標的リポジトリまたは物体がカメラに対して特定の姿勢を有するときに、標的リポジトリまたは物体を表す画像情報を生成し得る。例えば、標的リポジトリまたは物体は、側面をカメラ3200の光学軸に対して垂直にする姿勢を有してもよい。こうした実施例では、カメラ3200によって生成される画像情報は、標的物体のビュー上の側面または頭部などの特定の視点を表し得る。一部の実例では、カメラの光学軸は、標的リポジトリまたは物体に対してある角度で構成されてもよい。こうした実例では、視点は、角度付けられた、または傾斜した視点であってもよい。一部の実例では、カメラ3200が物体認識操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、または他の照明条件を表し得る。
【0041】
実施形態では、画像正規化操作は、画像または画像部分を、モデルテンプレートの情報と関連付けられた視点および/または照明条件により良く一致させるように、カメラによって生成されるシーンの画像または画像部分を調整することを伴い得る。調整は、画像または画像部分を変換して、物体姿勢またはモデルテンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも1つに一致する変換された画像を生成することを伴い得る。
【0042】
視点調整は、画像がモデルテンプレート内の記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、および/またはシフトを伴い得る。処理は、例えば、画像の色、コントラスト、または照明を変更することを含み、シーンのワーピングは、画像のサイズ、寸法、または比率を変更することを含み得、画像のシフトは、画像の位置、配向、または回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、および/またはシフトを使用して、シーンの画像内の物体を、モデルテンプレートの視覚的記述情報に一致するか、またはそれにより良好に対応する配向および/またはサイズを有するように変更してもよい。モデルテンプレートが、一部の物体の正面ビュー(例えば、側面ビュー)を記述する場合、シーンの画像は、シーン内の物体の正面ビューも表すようにワーピングされ得る。
【0043】
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成されている、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを行わせるように構成されている、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを実行するものとして説明され得る。
【0044】
本開示の態様は、ロード/アンロード(移動)ゾーン内のロボットアームの選択および配置操作に関連している。ロボットアームは、ソースリポジトリから物体(例えば、ボックス、容器など)を掴み、その物体を宛先リポジトリに移動させるように構成され得る。実施形態では、移動操作は、画像分析および軌道計画によって支援され得る。実施形態では、画像分析は、モデルテンプレート比較によって支援され得る。
【0045】
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成されている、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを行わせるように構成されている、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを実行するものとして説明され得る。
【0046】
図3A図3Fは、ロボット軌道計画および実行が使用され得る例示的な環境を示している。
【0047】
図3Aは、計算システム1100およびロボット3300を含む、システム3000(図1A図1Dのシステム1000/1000A/1000B/1000Cの実施形態であり得る)を有する環境を描写する。ロボット3300は、ロボットアーム3320、エンドエフェクター装置3330、および1つ以上のカメラ(または光学認識デバイス)3310A/3310Bを含み得る。エンドエフェクター装置は、物体の相互作用のために構成されたグリッパー、吸引カップ、爪、把持具などの様々なロボットツールを含み得る。カメラ3310A/3310Bは、カメラ1200の実施形態であってもよく、カメラ視野のシーンを表す画像情報を生成するように構成されてもよい。システム3000は、リポジトリ3110、3120、3130、3140、および3150などのリポジトリ間で物体の移動を容易にするために構成された物体移動エリア3100内で操作するように構成されてもよい。システム3000は、物体移動エリア3100内のリポジトリ間の物体(例えば、ボックス、ビン、製造構成要素、部品、および/または他の物理的品目)の移動を計画、促進、および/または実行するように構成されている。
【0048】
図3Aに示すように、コンベヤタイプのソースリポジトリ3150は、例えば、物体を組織化または一時的に格納するために使用され得る、シェルフタイプのリポジトリ、ビンタイプのリポジトリ、または任意の他の適切なリポジトリであり得る、1つ以上の宛先リポジトリ3110~3140を有する物体移動エリア3100に、物体を運ぶことができる。シェルフタイプのリポジトリの実施例を、図3B図3C図3E、および図3Fに示している。例えば、1つ以上のシェルフは、ストレージシェルフ、製造シェルフなどを含み得る。一実施形態では、シェルフ領域内のシェルフは、シェルフ領域内またはシェルフ領域外に移動可能であってもよい。例えば、シェルフは、例えば、図3Cおよび図3Eに示すように、自動誘導車両(AGV)3900によって持ち上げられて、シェルフ領域内に搬送されてもよい。以下で詳細に論じるように、システム3000は、物体を宛先リポジトリの中または上に配置するように構成されたロボット3300を含んでもよく、ここで、物体は、コンベヤまたは別のシェルフなどのソースリポジトリからロボット3300によって取り出されてもよい。一部のシナリオでは、コンベヤタイプのリポジトリ3150上の物体は、例えば、図3Dに示すように、異なる物体移動領域、例えば、デパレタイズ領域3100Aから到着してもよい。デパレタイズ領域では、本明細書の実施形態と一致する別のロボットまたは計算システムは、パレット(例えば、ソースリポジトリ)から物体をピックアップし、物体をコンベヤ(例えば、宛先リポジトリ)上に配置し得る。したがって、同じ物理的構造は、コンテキストに応じて、ソースリポジトリおよび宛先リポジトリの両方として機能し得る。
【0049】
図3Bは、システム3000が操作し得る環境のさらなる態様を示している。図3Bに示すように、物体移動領域3100は、例えばソースリポジトリとして、コンベヤタイプのリポジトリ3150と、1つ以上のシェルフタイプのリポジトリ3110および3130と、1つ以上のビンタイプのリポジトリ3120および3140とを含み得る。物体3520および3510は、リポジトリ3150を介して物体移動領域3100内に到着し得る。一実施形態では、リポジトリ3110(記憶物体3530)およびリポジトリ3150は各々、ソースリポジトリ3610として機能してもよく、一方で、リポジトリ3130は、宛先リポジトリ3630として機能してもよい。さらなる実施形態では、これらのリポジトリの各々は、物体移動コンテキストに応じて、ソースリポジトリまたは宛先リポジトリのいずれか、またはその両方として機能し得る。リポジトリは、一部の物体を受容する宛先リポジトリとして機能してもよく、また、それらの同じ物体が取得され、後で新しいリポジトリに移動され得るソースリポジトリとして機能してもよい。
【0050】
図3Cは、システム3000が操作し得る環境のさらなる態様を示している。図3Cは、2つのコンベヤタイプのリポジトリ3150および3160を含む、物体移動領域3100を示している。実施形態では、第1のコンベヤタイプのリポジトリ3150は、ソースリポジトリとして機能してもよく、一方で、第2のコンベヤタイプのリポジトリ3160は、宛先リポジトリとして機能してもよい。
【0051】
図3Dは、システム3000が操作し得る環境のさらなる態様を示している。図3Dは、コンベヤタイプのリポジトリ3150によってそれら間の接続が提供される、複数の物体移動領域3100Aおよび3100Bを示している。コンベヤタイプのリポジトリ3150は、物体移動領域3100Aの宛先リポジトリ、および物体移動領域3100Bのソースリポジトリとして機能し得る。物体は、例えば、運搬トラック3800、または他の車両もしくは輸送方法(電車、出荷用容器など)によって、物体移動領域3100Aに送達されてもよい。したがって、ロボット3300Aは、例えば、デパレタイズプロセスを実行するように操作してもよく、物体を宛先リポジトリとしてのコンベヤタイプのリポジトリ3150に移動してもよい。ロボット3300Bは、物体移動エリア3100Bから物体を移動するために操作してもよい。図3Dはさらに、複数の自律走行地上車両(AGV)3900A/B/Cを示している。複数の自律走行地上車両(AGV)3900A/B/Cは、シェルフタイプのリポジトリ3610、3640、3650のうちの1つ以上を輸送するように構成されてもよく、それによって、1つの物体移動領域と別の物体移動領域との間の移動が可能となる。
【0052】
図3Eは、システム3000が操作し得る環境のさらなる態様を示している。具体的には、図3Eは、AGV3900Aによる移動のために位置付けられた物体3530を含む、シェルフタイプのリポジトリ3110を示している。
【0053】
図3Fは、システム3000が操作し得る環境のさらなる態様を示している。具体的には、図3Eは、複数のリポジトリシェルフ3615、3615に分割された、シェルフタイプのリポジトリ3110を示している。リポジトリシェルフ3615は各々、複数のリポジトリ区画、またはセル3612、3612、3612、および3612に分割された、ハウジングを有してもよい。シェルフタイプのリポジトリ3110では、各リポジトリセル3612は、1つ以上のセルレール36171~4を含む。実施形態では、区画またはセル3612は、レール36171~4によって画定されてもよい。
【0054】
本開示は、ソースリポジトリから宛先リポジトリへの物体の移動の実施、促進、および/または計画に関する。図4は、ソースリポジトリから宛先リポジトリへの物体の移動を実行、促進、および/または計画するための例示の方法4000の流れ図を示している。
【0055】
実施形態では、方法4000は、例えば、図2A図2D、または図3Aまたは3Cの計算システム1100によって、またはより具体的には、計算システム1100の少なくとも1つの処理回路1110によって行われてもよい。一部のシナリオでは、少なくとも1つの処理回路1100は、非一時的コンピュータ可読媒体(例えば、1120)上に記憶される命令を実行することによって、方法4000を行ってもよい。例えば、命令によって、処理回路1110に、方法4000を行い得る図2Dに示されたモジュールのうちの1つ以上を実行させてもよい。例えば、実施形態では、物体/リポジトリ認識、例えば、操作4004、4006、およびその他のものに関連するステップは、物体認識モジュール1121によって行われてもよい。例えば、実施形態では、運動および軌道計画、例えば、操作4002、4008、4012、およびその他のものに関連するステップは、運動計画モジュール1129によって行われてもよい。例えば、実施形態では、物体の配置および取り扱い、例えば、操作4010、4014、およびその他のものに関連するステップは、物体操作計画モジュール1126によって行われてもよい。一部の実施形態では、運動計画モジュール1129および物体操作計画モジュール1126は、運動および物体操作の両方を含む軌道を画定および/または計画するために、協働して操作してもよい。
【0056】
方法4000のステップは、特定のタスクを実行するための特定の順次ロボット軌道を達成するために採用されてもよい。一般的な概要として、方法4000は、システム3000に、ソースリポジトリから宛先リポジトリに物体を移動させるように操作してもよい。こうした移動操作は、操作中に発生する様々な操作に従って更新および/または精密化される、事前に計画された軌道によるロボット3300の操作を含み得る。
【0057】
例えば、ロボットシステムは、事前に計画された軌道を生成し得る。事前に計画された軌道は、リポジトリ検出操作(以下に記載される)または画像情報を利用する任意の他の操作とは独立して生成されてもよい。したがって、画像情報がない場合でも、計算システム3000は、シェルフ、コンベヤ、または他のソースもしくは宛先リポジトリのあり得る位置に関して、少なくとも初期段階でかつ事前に計画された軌道を生成するのに十分な情報を有し得る。一部の事例では、事前に計画された軌道は、エンドエフェクター装置が、シェルフの特定のセルから物体を正しく取り出し、および/または特定のセルに物体を置くことができることを確実にするほど十分に正確ではない場合があるが、粗い軌道は、エンドエフェクター装置がシェルフに近づくことを可能にするのに十分であり得る。
【0058】
事前に計画された軌道は、様々な理由から十分な正確さを欠く場合がある。一部の実施例では、シェルフリポジトリの場合、計算システムは、どのシェルフおよびセルが現在占有されているかについての情報を欠く場合がある。別の実施例では、AGV3900によって輸送されるモバイルシェルフリポジトリの場合、AGV3900は、シェルフを予期される正確な位置に配置できない場合がある。別の実施例では、AGV3900によって輸送されるモバイルシェルフリポジトリの場合、異なるインフレーション量のAGV3900タイヤは、シェルフリポジトリを予期された高さとは異なる高さで、またはシェルフリポジトリをある角度でもたらし得る。他の実施例では、例えば、コンベヤタイプのリポジトリに関して、物体は、異なる位置において、または異なる配向/ポーズ/姿勢/高さ/位置において、静止し得る。これらの実施例の各々は、網羅的ではないが、物体ソースまたは宛先が、正確には予期された位置に近くに位置するが、正確には位置していない状況を表す。したがって、予め計画された軌道を使用して、物体のピックアップまたは物体配置操作を完了するために、ソース/宛先および変更された軌道(例えば、物体認識操作に基づいて改変された)に近づくことが有利である。
【0059】
事前に計画された軌道は、リポジトリ検出操作および物体検出操作の結果に基づいて調整されてもよく、ここで、調整された軌道は、エンドエフェクター装置が、シェルフの特定のセルから物体を正しく取り出し、および/または特定のセル内に物体を置くことができることを確実にするのに十分に正確である。ロボットシステムは、以下でより詳細に論じるリポジトリ検出操作を実行するために、画像情報を使用し得る。リポジトリ検出操作は、ロボットアームに取り付けられ得るカメラをシェルフの前方に位置付けること、およびシェルフの少なくとも一部分を表す画像情報を生成することを伴い得る。リポジトリ検出操作は、画像情報を使用して、シェルフに関するより正確な情報を決定してもよく、この情報は、シェルフと相互作用するためのロボットの移動を制御するために使用されてもよい。実施形態では、リポジトリ検出操作はまた、物体配置を実行するロボットアーム上に配置されていないカメラ(例えば、移動領域全体に位置する静止カメラ、および/または別個の異なるロボットアーム上に位置するモバイルカメラ)によって捕捉された画像情報を使用してもよい。
【0060】
初期段階で事前に計画された軌道を生成し、その後に事前に計画された軌道の一部分を調整するプロセスは、ロボット処理の開始時間を改善し、ピック/プレース操作の信頼性および正確さを改善し、さらにロボットの移動の制御に関与する計算量を低減する技術的利点を提供する。例えば、事前に計画された軌道の使用によって、ロボットの移動がより早く開始されること(例えば、リポジトリ検出のための位置に移動すること)が可能になり、それによって、ソースリポジトリからの物体のロボット処理が早く開始されることが可能になり得る。さらに、軌道の一部分は、リポジトリ検出操作の結果に基づいて調整されてもよいが、粗い軌道の残りの部分は、変化しないままであってもよい。したがって、この残りの部分は、ソースリポジトリからさらなる物体を配置するように再利用され得る。事前に計画された軌道のこの部分の再利用は、ソースリポジトリから物体を除去し、それらを1つ以上の宛先リポジトリ上に配置するなど、ロボット処理操作に関与する計算の総量を低減し得る。
【0061】
方法4000では、ロボットシステムは、ロボットの移動を制御して、特定のソースリポジトリから物体を取り出し、および/または特定の宛先リポジトリに物体を配置するように構成および操作されてもよい。ロボットシステムは、ロボットの事前に計画された軌道もしくは予測軌道、またはより具体的には、エンドエフェクター装置の事前に計画された軌道もしくは予測軌道を調整するように構成されてもよく、ここで、調整された軌道は、エンドエフェクター装置がリポジトリから物体をピックアップし、および/または物体をリポジトリの上/内部に配置する、正確さおよび信頼性を改善する。事前に計画された軌道の調整は、リポジトリ/物体検出の実施に基づいてもよく、これは、画像情報を使用して、リポジトリの構造、リポジトリの位置、および/またはリポジトリ上の物体の位置をより正確に決定することを伴い得る。
【0062】
実施形態では、予測軌道は、ソースから物体をピックアップして、物体を宛先に送達するために、ロボットをソースと宛先との間で移動させる。実施形態では、予測軌道は、移動の一部として使用され得る。実施形態では、システム3000は、複数の異なる予測軌道を実行する能力を含み得る。予測軌道におけるロボット3300の移動は、本明細書では移動サイクルと呼んでもよい。
【0063】
方法4000の記述は、移動サイクルAおよび移動サイクルBを指す。これらのサイクルにおける移動は、カメラがリポジトリを表す画像情報を生成することができるように、カメラ(例えば、ロボットアームまたは他のカメラに取り付けられた手持ちカメラ)をリポジトリの前方にさらに位置付けるための移動を含んでもよく、ここで、画像情報は、リポジトリ/物体検出操作に使用される。
【0064】
図5Aおよび図5Bに示すサイクルAと呼ばれる1つのタイプの移動サイクルでは、物体移動領域3100内のロボット3300は、固定されたソースリポジトリ(例えば、コンベヤ)から物体を取り出し、それを1つのタイプの宛先リポジトリ上に配置し得る。移動サイクルAでは、固定されたソースリポジトリは、リポジトリ検出操作を必要としない。
【0065】
図5Aおよび図5Cに示すサイクルBと呼ばれる別のタイプの移動サイクルでは、ロボット3300は、モバイルソースリポジトリ(例えば、移動可能なシェルフ)から物体を取り出し、その物体をシェルフタイプの宛先リポジトリに移動し得る。したがって、移動サイクルBは、移動ソースリポジトリに対してロボット軌道を精密化するための追加のコマンドを含み得る。
【0066】
移動サイクルAおよびBは、例としてのみ提供される。ロボットは、ソースまたは宛先として機能する他のリポジトリ間で物体を移動することを含む、他の移動サイクルを有するように制御されてもよい。例えば、コンベヤタイプの宛先リポジトリは、拒絶領域または別の物体移動領域をもたらし得る。拒絶領域は、計算システムによって損傷された物体、または認識されない物体などの、拒絶された物体を一時的に記憶するための領域として使用され得る。例えば、ロボットは、こうした物体を、コンベヤタイプのソースリポジトリから直接的に、または別のシェルフタイプのソースリポジトリから、コンベヤタイプの宛先リポジトリに移動させ得る。一部の実例では、シェルフの一部またはすべては、1つ以上のAGVによって、シェルフ領域内またはシェルフ領域外に移動され得る。
【0067】
移動サイクルAおよびBの記述は、事前に計画された軌道を精密化、調整、および別の方法で修正するか、または新しい軌道を作成するために使用され得る、リポジトリ/物体検出操作を伴う操作の記述として理解されるべきである。ソースおよび宛先リポジトリの異なる組み合わせを必要とする移動サイクルは、本開示の範囲を逸脱することなく、本明細書に開示される異なる組み合わせおよび/または異なる順序の操作を必要とし得る。
【0068】
方法4000は、移動サイクルAおよび移動サイクルBの両方に関して具体的に以下に記載される。以下に記載されるように、移動サイクルA(図5Bに示す)、および移動サイクルB(図5Cに示す)は、いくつかの類似の操作を共有してもよい。以下の考察では、1つまたは他の移動サイクルに特有であり得る操作は、そのように説明される。しかしながら、方法4000のステップ、プロセス、および操作は、他の移動サイクルに等しく適用され得る。方法4000は、ロボットと通信するように構成された通信インターフェースを備える計算システムを介して実行され得る。ロボットは、エンドエフェクター装置を含むかまたはそれに取り付けられたロボットアームを有し、かつロボットアームに取り付けられたカメラを有する。計算システムは、本明細書で論じるように、ロボットが、ソースリポジトリ(例えば、コンベヤまたは第1のシェルフ)および宛先リポジトリ(例えば、第2のシェルフ、ビンなど)を含む物体移動領域内にあるときに、ソースリポジトリから宛先リポジトリに物体を移動するための方法ステップを実行するように構成されている、少なくとも1つの処理回路をさらに含み得る。
【0069】
方法4000は、計算システム(またはその処理回路)が、カメラを宛先リポジトリに向けさせる様式で、ロボットアームを宛先リポジトリに近づかせるための第1の宛先リポジトリアプローチコマンドを出力するように構成されている操作4002で始まるか、またはその操作を他の方法で含んでもよい。図5A図5B、および図5Cに示すように、計算システムは、例えば、宛先リポジトリアプローチ軌道、例えば、軌道A1またはB1を介して、ロボットアームを、カメラ(または複数のカメラ)が宛先リポジトリを画像化できる位置に移動させる第1の宛先リポジトリアプローチコマンドを出力する。この操作によって、計算システムは、宛先リポジトリのカメラ(または複数のカメラ)の使用を通して画像(例えば、画像情報)を取得し、それによって、将来のロボットアームアクションで使用するための宛先リポジトリについての情報を取得することが可能になり得る。宛先リポジトリアプローチ軌道は、ロボットアームが現在位置付けられている任意の位置/構成で開始するように計算されてもよい。第1の宛先リポジトリアプローチコマンドは、第1の宛先リポジトリアプローチ軌道に基づいて計算されてもよい。
【0070】
少なくとも1つの処理回路は、物体が送達される特定のリポジトリの撮像または画像情報を使用して、任意のリポジトリ検出操作または他の操作の結果に基づいていない様式で、第1の宛先リポジトリアプローチ軌道を計算するようにさらに構成され得る。第1の宛先リポジトリアプローチ軌道は、ロボットアームが宛先リポジトリに近づくために従うためのサブ軌道であり、第1の宛先リポジトリアプローチコマンドは、第1の宛先リポジトリアプローチ軌道に基づいて生成される。第1の宛先リポジトリアプローチ軌道は、物体移動領域内の宛先リポジトリ位置の推定された位置に基づいて計算されてもよい。実施形態では、推定された位置または第1の宛先リポジトリアプローチの軌道は、例えば、非モバイル宛先リポジトリ位置を含む実施形態では、コンピュータシステムのメモリに記憶されてもよい。実施形態では、同じ第1の宛先リポジトリアプローチ軌道は、改訂、調整、または変更することなく、メモリから複数回アクセスされて、分、時間、日、週、および/または月のスパンにわたる異なる時間で、複数の第1の宛先リポジトリアプローチコマンドを実行し得る。
【0071】
実施形態では、宛先リポジトリは、上述したように、一連のシェルフおよびセルを形成するフレームであり、物体移動領域、ならびに車両(例えば、AGV)による物体移動領域内の異なる位置との間で移動可能である。こうした状況では、少なくとも1つの処理回路は、車両が従う、または従うことが意図される車両軌道に基づいて、宛先リポジトリ位置の推定された位置を決定するようにさらに構成されている。
【0072】
方法4000は、計算システム(またはその処理回路)が、宛先リポジトリを記述する画像情報を受信する操作4004を含み得る。上述のように、画像情報は、第1の宛先リポジトリアプローチコマンドが実行され、かつカメラが宛先リポジトリを表示または画像化するために位置付けられた後に、カメラ(または複数のカメラ)によって生成または捕捉される。画像情報を受信することは、例えば、画像化されたリポジトリの空間構造情報(点群)の生成に関して、物体認識に関連する上述の方法または技術のうちのいずれかをさらに含み得る。
【0073】
実施形態では、ロボットアームは、その移動に拘束され得、したがって、画像情報を捕捉するときに、カメラを水平または頭部の視点で位置付けることができないことがあり、および/またはリポジトリ全体を捕捉するために、リポジトリから十分に離れてカメラを位置付けることができない場合がある。これは、ロボットアームの限定的な到達可能性および/またはロボットアームの周りの狭い間隔に起因し得る。結果として、画像情報は、一部のシナリオでは、シェルフを回転、傾斜、および/または角度のない様式で示し、および/またはシェルフの一部分のみを捕捉することができる。このような場合、画像情報は、上述したように、正規化され得る。
【0074】
実施形態では、方法4000は、計算システムが、画像情報に基づいて、宛先リポジトリの構造を記述するためのリポジトリ構造情報、宛先リポジトリの姿勢を記述するためのリポジトリ姿勢情報、または1つ以上の物体が宛先リポジトリ内に存在するかどうかを記述するためのリポジトリコンテンツ情報のうち少なくとも1つを決定する、リポジトリ検出操作を実行する操作4006を含む。リポジトリコンテンツ情報は、宛先リポジトリ内に存在する物体の姿勢およびタイプに関する情報をさらに含み得る。上述のように、宛先リポジトリの画像情報は、計算システムによって取得される。次に、計算システムは、画像情報を分析または処理して、リポジトリ構造情報、リポジトリ姿勢情報、および/またはリポジトリコンテンツ情報のうちの1つ以上を決定する。
【0075】
実施形態では、計算システムは、計算システムがまた、ソースリポジトリアプローチコマンド(操作4008)、および物体ピックアップコマンド(操作4010)のうちの1つのうちの少なくとも1つも実行している時間の間に、リポジトリ検出操作を実行し得る。上述したように、本明細書で論じる方法は、ロボットシステムをより速く、かつより遅延なく操作させることができる。したがって、計算システムは、ロボットアームが、リポジトリアプローチコマンドおよび物体ピックアップコマンドに関連付けられたサブ軌道を実行する間、リポジトリ検出操作4006に関連付けられた計算の一部またはすべてを実行し得る。したがって、ロボットアームは、記述された軌道を実行する間、一時停止する必要がない場合がある。
【0076】
画像情報は、カメラ視野内のリポジトリのすべてまたは少なくとも一部分を含み得る。計算システムは、画像情報を使用して、リポジトリ、および/またはリポジトリ上の物体の物理的構造をより正確に決定し得る。構造は、画像情報から直接的に決定されてもよく、および/またはカメラによって生成された画像情報を、例えば、モデルリポジトリテンプレートおよび/またはモデル物体テンプレートと比較することによって決定されてもよい。
【0077】
リポジトリ検出操作4006は、システム性能を改善するための様々な任意のステップ/および/または操作を含み得る。システム性能を改善するためのステップおよび/または操作について、以下に説明する。
【0078】
実施形態では、リポジトリ検出操作は、所定のリポジトリモード(本明細書ではテンプレートとも呼ぶ)で操作し得る。処理回路は、画像情報が、リポジトリ構造を記述する所定のリポジトリモデルと比較されるときに、所定のテンプレートマッチング条件を満たすかどうかを決定するように構成され得る。所定のテンプレートマッチング条件は、所定のリポジトリモデルと画像情報の一部分との間の閾値、可能性、または一致の程度を表す。所定のリポジトリモデルは、例えば、画像情報が比較されて、第2の画像情報内のリポジトリの存在、アライメント、および/または配向を決定し得る画像テンプレートであってもよい。図6に示すように、リポジトリ3110の構造を表す画像情報は、1つ以上の所定のリポジトリモデル6110および6111と比較されて、リポジトリのタイプを識別し、したがって、リポジトリのタイプに関連付けられた記憶されたリポジトリ構造情報にアクセスし得る。所定のリポジトリモデルとの比較により、以下でさらに論じるように、画像情報が所定のリポジトリモデルと整列するポイントで、所定の(例えば、既に処理された)テンプレート情報を使用することによって、処理回路が改良され、かつさらなる処理をスピードアップすることが可能になり得る。実施形態では、画像情報は、複数の所定のリポジトリモデルと比較されて、画像情報が所定のテンプレートマッチング条件を満たす、所定のリポジトリモデルを識別してもよい。処理回路は、画像情報が所定のテンプレートマッチング条件を満たすかどうか、どの程度満たすか、およびどのような様式で満たすかを示す、テンプレートマッチング情報を生成し得る。リポジトリ検出操作中に取得されたテンプレートマッチング情報は、後述するように、後の操作で、例えば、物体配置操作で使用され得る。
【0079】
実施形態では、リポジトリ検出操作4006は、例えば、テンプレートマッチングで使用され得る特徴の識別を含んでもよく、これには、リポジトリのテンプレートおよび/または標的物体のテンプレートに対する、画像情報の中の識別された特徴の比較を伴い得る。例えば、計算システムによって、標的物体がリポジトリの特定の領域/セルにあると決定される場合、そのセルに対応する特定の部分を抽出するために画像情報をトリミングし、テンプレートマッチングのために抽出された部分を使用するように試み得る。一部の実例では、こうした領域は、特定のリポジトリのセットアップに関する公知の情報に基づいて決定され得る。例えば、リポジトリがAGVによって領域内に輸送される場合、AGVの移動は、例えば、2cmの誤差の可能性を有し得る。この実施例では、AGVは、シェルフのすぐ下に留まることができる。したがって、AGVおよびリポジトリは、リポジトリの推定された位置から最大2cm左または2cm右に配置され得る。この予期される誤差は、物体またはセルが画像情報の中に現れる可能性が高い位置、すなわち、より具体的には、物体またはセルが現れる可能性が高い画像領域について、計算システムに予想を提供し得る。結果として、計算システムは、画像領域または部分を検索して、それが予期され得る画像特徴を検索し得る。計算システムが、AGVがその移動(例えば、2cm)の精度に関して誤差を有すると決定した場合、この可能性のある誤差を説明するために、画像特徴を検索する画像領域を広げることができる。例えば、検索領域を1つ以上の方向に2cmだけ広げてもよい。計算システムは、誤差に基づいて、カメラが画像情報を生成するときに、カメラとシェルフとの間の距離をさらに決定し得る。AGVが予期される位置と実際の位置との間に大量の誤差を有すると予期される場合、計算システムは、シェルフの関連するセルがカメラ視野内に入ることを確実にするように、カメラをシェルフから、かつAGVから離れて位置付けることができる。
【0080】
計算システムは、シェルフまたはシェルフ面の幾何学的形状の構造が、水平レベルなどの画像情報内に現れることを予期してもよく、計算システムは、そのレベルのエッジを表し得る直線を検索してもよい。計算システムは、(シェルフがソースシェルフである場合に)シェルフ上の特定の物体タイプの物体を予期している場合に、物体タイプに関連付けられたテンプレートに一致する画像機能を検索し得る。より具体的には、計算システムは、画像領域または部分を検索して、シェルフの幾何学的形状を表す特徴を検索し得る。テンプレートマッチングを実行するために、計算システムは、画像情報領域または部分中に現れるエッジまたは他の識別された特徴を、所定のリポジトリモデルのエッジにオーバーレイまたは整列しようとし得る。
【0081】
画像情報は、宛先リポジトリ上の複数の表面位置のそれぞれの奥行き値を記述し得る。複数の表面位置は、例えば、第2の表面位置よりもカメラに近い第1の表面位置を含み得る。処理回路は、画像情報が所定のテンプレートマッチング条件を満たすかどうかを決定する際に、奥行き値を使用するように構成され得る。例えば、画像情報と所定のリポジトリモデルとの間の一致のレベルまたは度合いは、第2の位置が所定のリポジトリモデルとどれだけ密接に一致するかよりも、第1の位置が所定のリポジトリモデルとどれだけ密接に一致するかにより重点を置くことができる。すなわち、カメラに近い位置は、カメラからさらに離れている位置よりも、一致プロセスに影響を与え得る。定義されたレベルまたは一致の度合いを超越することは、所定のテンプレートマッチング条件の全部または一部であってもよい。
【0082】
実施形態では、計算システムは、画像情報によって捕捉されたシーン内の特定の点または位置により高い信頼性または重要性を割り当ててもよく、かつテンプレートの一致を実行するときに、またはより一般的には、シェルフまたは標的物体の物理的構造を決定するときに、それらの点により重点を与えてもよい。点に割り当てられる信頼度は、カメラまでのその距離、および/または、点がカメラによって正面に見えるか、またはある角度で見えるかに基づいてもよい。例えば、その光軸がシェルフの前面または側面と斜めになるように、カメラがシェルフの前面に対してある角度にあった場合、シェルフ上のいくつかの点は、カメラとシェルフ上の他の点との間の距離に対して、カメラに近いものであってもよい。カメラに近いこれらの点には、より高い信頼度レベルを割り当てることができる。
【0083】
一部の実施形態では、様々な点における信頼度レベルは、カメラ角度に従って割り当てられてもよい。例えば、カメラは、第1の点のより正面からのビューを有してもよく、第2の点のより斜めまたは傾斜したビューを有してもよい。すなわち、シェルフの前面または側面の第1の点および周囲の部分は、カメラまたはその光学軸に対してより垂直であってもよく、一方で、シェルフの前面または側面の第2の点および周囲の部分は、より斜めで、カメラに対してより垂直でない場合がある。これらの実施例では、計算システムは、カメラに対するそのより垂直な視野角に基づいて第1の点に信頼度の増加を置いてもよく、一方で、第2の点は、カメラに対するそのより傾斜した視野角に基づいて信頼度の低下を有してもよい。一部の実例では、カメラ角度に基づく信頼度の相対的レベルは、逆転し得る。
【0084】
異なる信頼度レベルを有するこうした点が、テンプレートマッチングの一部であるか、またはテンプレートマッチングで使用される特徴を表す場合、計算システムは、特定のテンプレート特徴に一致するより高い信頼点に、より大きな重みを置いてもよく、テンプレート特徴に一致するより低い信頼点に、より小さな重みを置いてもよい。
【0085】
実施形態では、計算システムは、多層のアライメントで、階層的な様式でテンプレートマッチングを実行し得る。多層のアライメントは、画像情報と、異なるレベルの解像度または構造における1つ以上のモデルテンプレートとの間のアライメントを含み得る。例えば、アライメントの上位層は、1つ以上のモデルテンプレートと、画像情報の広範な特徴の間のアライメントを含んでもよく、一方で、アライメントの下位層は、1つ以上のモデルテンプレートと、画像情報のより具体的な特徴の間のアライメントを含んでもよい。3つのアライメント層が論じられているが、より多くの、またはより少ないアライメント層が、様々な実施形態で使用され得る。
【0086】
実施形態では、リポジトリ検出操作は、画像情報およびリポジトリモデルの広範な特徴に基づく、第1のアライメント層でのアライメントを含み得る。リポジトリ検出操作は、画像情報が、広範なリポジトリ構造要素を記述する第1のリポジトリモデル(第1のアライメント層)と整列する様式を決定することを含み得る。例えば、第1のリポジトリモデルは、リポジトリ構造のフレームを記述し得る。上述したように、処理回路は、所定のテンプレートマッチング条件に従って、画像情報に一致するリポジトリモデルを識別し得る。
【0087】
アライメントの最も高い第1の層は、誤差に対するより大きな公差を有し得るグローバルアライメントに使用され得、一方で、アライメントの次の層は、誤差の公差が最も低い場合がある、より精密化されたアライメントに使用され得る。第1の層のアライメントは、シェルフの構造のすべて、またはほとんどを表すテンプレートを伴い得る。第1の層のアライメントレベルでのリポジトリモデルは、一部の実例では、より低い量の詳細/粒度を有する高レベルのテンプレート(第1のリポジトリモデル)であってもよい。例えば、高レベルのテンプレートは、外側ビームまたはシェルフを形成する外壁などの特徴を記述し得る。アライメントの高レベル層では、計算システムは、画像情報内の点を、このテンプレートの特徴にオーバーレイしようとし得る。計算システムは、高レベルのテンプレートマッチングを実行して、画像情報の点を上記のテンプレートと整列させるように試みることができる。高レベルのテンプレートマッチングを使用して、そのハウジングの外縁または外壁などの、シェルフのグローバルな特徴を大まかに識別することができる。アライメントの高レベルの層は、例えば、こうしたグローバル特徴の推定された位置とその実際の位置との間の数センチメートルの誤差をもたらし得る(例えば、少ない詳細量を有する高レベルテンプレートを使用するため)が、この誤差は、計算システムが、シェルフのこれらのグローバル特徴との衝突を回避する安全マージンを有する軌道を計画することを可能にするために十分低い場合がある。
【0088】
処理回路は、画像情報が第1のリポジトリモデル(第1のアライメント層)と少なくとも部分的に整列する様式に基づいて、第2のアライメント層におけるより詳細な、またはより微細なリポジトリの構造要素を表す画像情報の一部分をさらに識別し得る。識別される画像情報の部分は、関心対象のリポジトリ部分を含み得る。第2のアライメント層の要素または特徴は、リポジトリのより小さく、より詳細な態様を表し得る。実施形態では、第2のアライメント層によって表される要素は、第1のアライメント層のサブ要素とみなされ得る。例えば、第1のアライメント層が、リポジトリのフレーム構造を含み得る場合、第2のアライメント層は、リポジトリのシェルフを含む場合がある。実施例では、第2のアライメント層は、リポジトリの特定のセクタまたは特定の領域を表す、要素を含み得る。実施例では、第2のアライメント層は、関心対象のセクタ(例えば、宛先セクタ)を含むリポジトリの層を表し得る。したがって、例えば、画像情報が、宛先セクタを有する宛先リポジトリの層を含む画像情報の一部分と、第1のリポジトリモデルと少なくとも部分的に整列する様式に基づく。
【0089】
処理回路は、関心対象の部分(例えば、宛先セクタ)を含む画像情報の一部分の識別後に、画像情報の部分が、第2のリポジトリモデルと少なくとも部分的に整列する様式をさらに決定してもよく、ここで、第2のリポジトリモデルは、リポジトリのより大きな詳細、より大きな解像度、および/またはより精巧な、もしくはより小さな特徴に関する情報を含む、第2のアライメント層を表す。実施例では、上述したように、第2のリポジトリモデルは、リポジトリの特定のセクタを表すことができる。
【0090】
実施形態では、アライメントの第2の層は、計算システムが、画像情報の一部分をズームインおよび抽出して、シェルフの特定の層に対応する画像情報の特定の部分に焦点を合わせ、画像情報のその部分を第2のリポジトリモデルと一致させることを試みることを伴い得る。計算システムがズーミング用に選択する部分は、第1のアライメント層におけるグローバルアライメントに基づいてもよい。すなわち、テンプレートマッチングの最上位層のグローバルアライメントは、画像情報が、どの部分の画像情報が、シェルフの層または特定のセルなどの特定の関心対象の部分に対応するかの表示を含む、リポジトリの様々な特徴に概ね整列するかの一般的な表示を、計算システムに提供し得る。グローバルアライメントは、何らかの誤差を含み得るが、抽出された部分に対して、関連する関心対象の部分を確実に捕捉するための十分な正確さを提供する。次に、計算システムは、画像情報の抽出された部分を使用して、第2のテンプレートと比較し、抽出された部分を第2のテンプレートと整列させようとし得る。このアライメントの第2の層は、より正確なテンプレートを含む場合があるため、および/または画像情報の他の部分における画像化ノイズの影響を低減する、シェルフの特定の層もしくはセルに焦点を合わせる画像情報のズームイン部分を伴い得るため、例えば、シェルフ上の特定の層または特定のレールなどの関心対象の特定部分の位置をより正確に決定することが可能になる。エンドエフェクター装置を使用して一対のレール上に位置している標的物体をピックアップする操作は、誤差に対する公差が低い場合があるため、エンドエフェクター装置とレールとの間の衝突を避けるためには、より高いレベルの正確さが必要とされ得る。
【0091】
実施形態では、階層は、テンプレートマッチングのためのアライメントの第3の層を含み得る。アライメントの第3の層は、第1のリポジトリモデルまたは第2のリポジトリモデルよりも、例えば、シェルフのレール構造などの、より詳細かつ/またはより具体的な構造に焦点を当てる第3のリポジトリモデルを伴い得、レール構造を第2のテンプレートよりもより正確に記述し得る。すなわち、アライメントの第3の層は、アライメントの第2のレベルの関心対象の部分内で識別された特定の特徴を識別し、かつそれと整列するために使用され得る。
【0092】
シェルフタイプのリポジトリが関与する実施形態では、計算システムは、レール構造に対応する画像情報の一部分を抽出し、レール構造を使用して、第3のテンプレートと比較し得る。例えば、計算システムは、第2のリポジトリモデルを使用して、画像情報のどの部分が、シェルフ上の一対のレールに対応するかを決定し得る。計算システムは、レールに対応する画像情報の一部分を抽出し、第3のリポジトリモデルと比較して、標的物体が位置する(または標的物体が配置される)一対のレールの物理的構造/レイアウトおよび物理的位置の、さらにより正確な決定を取得し得る。
【0093】
実施形態では、リポジトリ構造情報が確立された後、例えば、テンプレートマッチングを介して、リポジトリ姿勢情報が決定されてもよい。例えば、計算システムは、リポジトリが、例えば、真っ直ぐな方向ではなく、ある角度で位置付けられているか、または傾けられているかどうかを決定し得る。計算システムは、水平であると予想される特徴(例えば、シェルフ)を識別し、それらの特徴が配置される水平からの角度を決定し得る。
【0094】
リポジトリ構造情報およびリポジトリ姿勢情報が決定された後(例えば、シェルフ検出が修正されると)、計算システムは、(例えば、リポジトリコンテンツ情報を決定するために)リポジトリ上の標的物体を識別し得る。計算システムは、画像情報によって捕捉された標的物体が、指定された物体タイプに属するか、またはそれに関連付けられているかどうかを検証するように構成され得る。例えば、計算システムは、画像情報を使用して、物体の寸法を測定するか、または物体がリッドなどの予期される物理的特徴を有するかどうかを決定し得る。
【0095】
計算システムは、軌道計画操作に、より多くの軸整列した検出結果を提供するために、シェルフの回転または角度付けなどのアライメントを考慮し得る。リポジトリ検出操作4006の操作は、予め計画された軌道を更新するために使用されるものなどの、運動計画操作に対する物体の正確な表現を提供する必要があり得る。
【0096】
実施形態では、処理回路は、画像情報から、リポジトリを複数の領域に分割する、リポジトリの複数のエッジを検出するように構成され得る。処理回路は、複数の仮想バウンディングボックスを決定するようにさらに構成されてもよく、ここで、複数の仮想バウンディングボックスの各仮想バウンディングボックスは、複数のエッジのうちの1つを囲むか、または複数の領域のうちの1つを囲む。
【0097】
実施形態では、計算システムは、識別された標的物体を取り囲む仮想バウンディングボックスを生成し得る。物体は、バウンディングボックス内に完全に存在してもよい。したがって、運動計画が、エンドエフェクター装置とバウンディングボックスとの間の衝突を回避することができる場合、それはまた、エンドエフェクター装置が物体と衝突しないようにすることも確実にするであろう。バウンディングボックスは、物体に近づき、かつ掴み、バウンディングボックスを貫通して物体にさらに近接するための、ロボットの移動を簡素化し得る。
【0098】
一実施形態では、リポジトリ検出操作4006の操作は、シェルフまたはシェルフの一部の幾何学的形状の簡略化された表現として、様々なバウンディングボックスを生成し得る。バウンディングボックスは、標的セルまたは標的物体を表すための1つのバウンディングボックスを含んでもよく、ここで、バウンディングボックスは、エンドエフェクター装置が近づいて貫通することができる空間を表し、一方で、他のバウンディングボックスは、衝突のリスクを低減するために、エンドエフェクター装置が回避すべき(例えば、それらが占有され得る)領域を表し得る。
【0099】
バウンディングボックスは、シェルフのすべての領域を集合的に占有し得る。すなわち、バウンディングボックスは、シェルフによって占有される空間全体を占有し得る。バウンディングボックスは、エンドエフェクター装置またはロボットアームが回避すべき空間を識別してもよく、また、シェルフの幾何学的形状全体を提供するよりも、回避すべき空間を識別するより単純な方法であってもよいが、これは、運動計画を複雑にし、ならびに/または計算時間およびリソースを増加させ得る。
【0100】
実施形態では、リポジトリ検出操作4006は、リポジトリコンテンツ情報の一部として、標的物体が水平の配向に対してある角度にあるかどうかを決定し得る。こうした状況は、例えば、物体がレールの一方から旋回し、結果として、水平配向に対して傾斜した配向および/または角度付けされた姿勢の標的物体が生じるときに発生し得る。グリッパーがその底部から物体をピックアップしようとした場合に、傾斜した配向は、エンドエフェクター装置の一部分を物体の一部分と衝突させ得る。実施形態では、計算システムは、物体が、リポジトリコンテンツ情報の一部として、標的物体の下の空間に落ちたかどうかを決定し得る。こうした物体は、標的物体と、標的物体が配置されるレールとの間に位置してもよく、エンドエフェクター装置の少なくとも一部分の経路を遮ってもよい。
【0101】
実施形態では、画像ノイズは、エッジを正確に検出する計算システムの能力に影響を与え得る。画像ノイズによって引き起こされる問題を考慮するために、計算システムは、ピクセル強度のヒストグラムまたは奥行き値のヒストグラムなどの統計要素を使用して、画像情報内のエッジまたは特徴の位置を決定し得る。上述したように、画像情報は、標的リポジトリまたは物体を表すピクセルの座標および強度を示す、2D画像、奥行きマップ、または点群に捕捉されてもよい。画像ノイズの存在は、画素強度が強く明確なコントラストラインを欠いている可能性がある場合、エッジの決定を困難にし得る。例えば、ノイズは、エッジが近づくにつれてピクセル強度を徐々に変化させ得る。ヒストグラムまたは他の統計手法を使用することで、ノイズの多い画像中のエッジの正確な検出が許容される場合がある。例えば、計算システムは、ヒストグラムが画素強度の変曲点またはピークを示すエッジまたは位置に対応する、物理的エッジを決定し得る。
【0102】
実施形態では、リポジトリ検出操作4006は、欠落している画像情報を推定することによって、画像ノイズを補償し得る。例えば、計算システムが、リポジトリを表す2D画像または点群を使用する場合、2D画像または点群は、ノイズによる1つ以上の欠落部分を有し得る。リポジトリ検出操作4006は、例えば、補間または他の手段によって、ギャップを閉じるか、または埋めることによって、欠落している情報を推測するように構成され得る。
【0103】
一実施形態では、リポジトリ検出操作4006の操作は、ロボットアームまたは物体移動領域内のリポジトリの周りのきつい、もしくは混雑したレイアウト、またはロボットアームによる姿勢の到達可能性の制限に関係付けられる課題を克服するために使用され得る。例えば、物体移動領域では、第1のリポジトリは、ロボットアームと第2のリポジトリとの間に配置されてもよく、それは、ロボットアームのカメラが、第2のリポジトリの画像化に適した位置に到達することを困難にする。これらの制限は、カメラが、最適な配向または最適なカバレッジを有する画像情報を生成することを妨げる場合がある。画像情報が最適ではない角度または視点から捕捉される場合、本明細書で論じるような視点調整技術は、リポジトリ検出操作4006の間に使用され得る。
【0104】
リポジトリ検出操作4006の操作は、ロボットを誘導するために使用され得る、リポジトリの幾何学的形状の計算システムの理解を改良するために使用され得る。例えば、リポジトリのより精密化されたモデルまたはマップによって、システムは、ロボットをリポジトリとの衝突の前後に誘導することができる。一実施形態では、リポジトリ検出操作4006操作は、ロボットアームとリポジトリとの間の衝突を防止するために、リポジトリを囲むバッファ領域またはボリュームを計算してもよい。
【0105】
実施形態では、リポジトリ検出操作4006は、画像情報に基づいて、宛先リポジトリ内の宛先セクタが占有されていないか、または占有されているかどうかを決定することをさらに含んでもよい。宛先セクタ、例えば、物体が送達されることが意図される宛先リポジトリ内のセクタは、処理回路によって決定されてもよい。宛先セクタは、画像情報に基づいて、決定されたリポジトリ構造情報に基づいて選択され、動作計画に従って事前に画定され、および/または他の手段を介して決定されてもよい。リポジトリ検出操作中、処理回路は、宛先セクタが占有されているかどうかを決定するように構成され得る。占有されている場合、処理回路は、リポジトリ検出操作4006中に、代替的な宛先セクタを決定し得る。リポジトリ検出操作4006の操作は、物体が、通常、エンドエフェクター装置が物体をピックアップする位置を逸脱するかどうかをさらに検出し得る。こうした検出を使用して、物体をピックアップすることができるかどうか、または物体の位置によって、ロボットがピックアップすることを実行不可能にするかどうかを決定することができる。こうした状況では、リポジトリ検出操作4006の操作は、ピックアップ可能な物体が検出されなかったことを示し得る。
【0106】
一実施形態では、方法4000は、計算システムが、ロボットアームがソースリポジトリに近づくようにするための、ソースリポジトリアプローチコマンドを出力する操作4008を含む。ソースリポジトリアプローチコマンドは、カメラが宛先リポジトリを記述するための画像情報を生成した後に提供されてもよい。ソースリポジトリアプローチコマンドを実行すると、ロボットアームを、ソースリポジトリアプローチ軌道(例えば、A2、B2a/B2b)に沿って、例えば、図5Bに示すように、ソースリポジトリに近づくようにすることができる。ソースリポジトリアプローチ軌道は、第1の宛先リポジトリ軌道の終点で開始するように計算されてもよい。ソースリポジトリアプローチコマンドは、ソースリポジトリアプローチ軌道に基づいて計算されてもよい。
【0107】
実施形態では、ソースリポジトリアプローチコマンドは、第1の軌道部分および第2の軌道部分を有する、2つの部分の軌道を含む様式で生成され得る。ロボットによって実行されるときに、2つの部分軌道は、第1の期間の間に、第1の軌道部分の後に(例えば、B2aの終了時に)ソースリポジトリに向かってロボットアームの移動を一時停止させ、それに続く第2の期間(例えば、B2bの間)の間に、第2の軌道部分を実行するために移動を再開する。一時停止の間、例えば、第1の期間の間、カメラは、ソースリポジトリの画像情報の第2のセットを捕捉するように制御されてもよい。第2の画像情報は、以下で論じるように、第2のリポジトリ検出操作中に使用され得る。上述したように、B移動サイクルは、ソースリポジトリの位置、構造、姿勢、コンテンツ、またはその他の詳細が不明確である任意の時点で使用され得る。
【0108】
一実施形態では、方法4000は、計算システムが第2のリポジトリ検出操作を実行する操作4009を含む。第2のリポジトリ検出操作は、第1のリポジトリ検出操作4006としてみなされる操作4006と類似してもよい。第1のリポジトリ検出操作4006は、宛先リポジトリを記述するカメラによって捕捉された(第1の)画像情報を採用する。第2のリポジトリ検出操作4009では、計算システムは、ソースリポジトリアプローチコマンドの実行に続いて、ソースリポジトリのカメラによって捕捉された第2の画像情報を使用してもよい。第2の画像情報は、ソースリポジトリを記述する情報を含んでもよく、ソースリポジトリの構造を記述するためのソースリポジトリ構造情報、ソースリポジトリの姿勢を記述するためのソースリポジトリ姿勢情報、または1つ以上の物体がソースリポジトリ内に存在するかどうかを記述するためのソースリポジトリコンテンツ情報のうちの少なくとも1つを決定するために使用されてもよい。第2の画像情報は、物体がソースリポジトリ内にある間にピックアップされる物体に関連付けられた物体タイプまたは姿勢を記述する情報を含み得る。一部の実施形態では、第2の画像情報、物体姿勢情報および/またはソースリポジトリ情報のいずれかは、以下で論じるように、物体ピックアップ軌道を生成するために使用され得る。第2のリポジトリ検出操作4009を実行することは、ソースリポジトリが固定されていない環境で有利であり得る。
【0109】
実施形態では、第2のリポジトリ検出操作は、第1の期間(例えば、ソースリポジトリアプローチ軌道B2aの第1の部分の後の一時停止)の間、または第2の期間の間(例えば、ソースリポジトリアプローチ軌道B2bの第2の部分の間)のいずれかに実行されてもよい。このようにして、計算システムは、物体ピックアップ軌道の初期段階が実行される間に、物体ピックアップ軌道を修正するために使用され得る第2のリポジトリ検出操作の処理を実行することによって、時間を節約し得る。
【0110】
第2のリポジトリ検出操作4009は、上述のように、第1のリポジトリ検出操作4006のステップ、方法、および特徴のいずれかまたはすべてを、任意の組み合わせで含み得る。
【0111】
一実施形態では、方法4000は、計算システムが物体ピックアップコマンドを出力する操作4010を含む。物体ピックアップコマンドは、ロボットアームのエンドエフェクター装置に、ソースリポジトリから物体をピックアップさせる。物体ピックアップコマンドは、ソースリポジトリアプローチコマンドが実行され、かつロボットアームが、ソースリポジトリから物体をピックアップまたは捕捉する位置にある後に、実行され得る。図5Bに示すように、ロボットアームは、物体ピックアップコマンドを実行する際に、物体ピックアップ軌道、例えば、軌道A3またはB3に従ってもよい。ロボットアームが物体をピックアップまたは掴むために、従うための軌道である物体ピックアップ軌道は、例えば、ソースリポジトリアプローチ軌道の終点で開始するように計算されてもよい。物体ピックアップコマンドは、物体ピックアップ軌道に基づいて計算されてもよい。
【0112】
実施形態では、少なくとも1つの処理回路は、ソースリポジトリが移動領域内に固定される所定の位置に基づいて、ソースリポジトリアプローチ軌道(操作4008)、および物体ピックアップ軌道(操作4010)を計算するようにさらに構成されてもよい。こうしたアプローチは、ソースリポジトリが、移動領域内の所定の位置に固定されたときに発生し得る。ソースリポジトリの所定の位置は、例えば、コンピュータシステムに関連付けられたメモリデバイスに記憶されてもよい。
【0113】
実施形態では、物体ピックアップ軌道を計算するために所定の位置を使用する代わりに、計算システムは、第2のリポジトリ検出操作中に生成された情報を使用して、物体ピックアップ軌道を計算し得る。例えば、ソースリポジトリが移動領域内で固定されない状況では、第2の画像情報を使用して、物体ピックアップ軌道を計算することは、正確さにおいて利点を提供し得る。
【0114】
上述したように、一部の実施形態では、計算システムは、物体ピックアップコマンドを実行する前に、ソースリポジトリの第2の画像情報を捕捉し得る。こうした実施形態では、第2の画像情報(物体姿勢またはソースリポジトリについての情報を含む)を使用して、物体ピックアップコマンドを生成するための物体ピックアップ軌道を生成してもよい。上述のように、第2の画像情報は、移動サイクルBの一時停止中、すなわち、ソースリポジトリアプローチ軌道の第1の部分が実行された後に取得され得る。こうした実施形態では、第2の画像情報は、必要に応じて、初期段階で事前に計画された軌道から物体ピックアップ軌道の一部分を修正、もしくは変更するか、または新しい軌道を生成するために使用され得る。修正または変更された軌道の一部は、物体のピックアップのための操作を含む、物体ピックアップ軌道の終点部分であってもよい。したがって、物体ピックアップのための初期段階で事前に計画された軌道の第1の部分は、初期段階での事前計画に従って実施されてもよく、一方で、第1の部分の後に行われる、物体ピックアップのための初期段階で事前に計画された軌道の第2の部分は、第2の画像情報に従って、修正、改変、および/または変更されてもよい。実施形態では、初期段階で事前に計画された物体ピックアップ軌道の全体が、第2のリポジトリ検出操作に従って、修正、改変、または別の方法で調整されてもよい。
【0115】
実施形態では、方法4000は、計算システムが、物体ピックアップコマンドが実行された後に、ロボットアームを第2の時間で宛先リポジトリに近づくようにさせる第2の宛先リポジトリアプローチコマンドを出力する操作4012を含む。こうした状況では、ロボットアームは、ソースリポジトリからピックアップされた物体を運搬/輸送しながら、第2の宛先リポジトリに近づく。図5Bおよび図5Cに示すように、ロボットアームは、第2の宛先リポジトリアプローチコマンドを実行する際に、宛先リポジトリに近づくための軌道である、第2の宛先リポジトリアプローチ軌道、例えば、軌道A4、B4に従ってもよい。第2の宛先アプローチ軌道は、物体ピックアップ軌道の終点で開始するように計算されてもよい。第2の宛先リポジトリアプローチコマンドは、第2の宛先リポジトリアプローチ軌道に基づいて計算されてもよい。
【0116】
実施形態では、第2の宛先リポジトリアプローチコマンドは、リポジトリ検出操作に、および/または特定の宛先リポジトリから取得された任意の画像情報に基づく代わりに、リポジトリ検出操作中に生成された画像情報を使用せずに生成され得る。例えば、第2の宛先リポジトリアプローチコマンドは、第1の宛先リポジトリアプローチコマンドが生成されるのと同じまたは類似のタイプの情報、例えば、物体移動領域内の宛先リポジトリ位置についての推定された位置、宛先リポジトリ位置を示す車両軌道情報、記憶された軌道などに基づいて生成され得る。
【0117】
一実施形態では、方法4000は、計算システムが、エンドエフェクター装置に、物体を宛先リポジトリ内に配置させる物体配置コマンドを出力する操作4014を含む。物体配置コマンドは、第2の宛先リポジトリアプローチコマンドが、ロボットアームに宛先リポジトリに近づくようにさせた後に実行される。物体配置コマンドは、リポジトリ検出操作の結果に基づいて生成され、ここで、結果は、リポジトリ構造情報、リポジトリ姿勢情報、またはリポジトリコンテンツ情報のうちの少なくとも1つを含む。したがって、物体配置コマンドは、ロボットアームを、例えば、図5Bおよび図5Cに示すようなA5、B5などの物体配置軌道に従わせて、第1の宛先リポジトリアプローチの後にカメラによって捕捉された画像情報の分析に基づいて、物体を宛先リポジトリ内に配置させる。物体配置軌道は、例えば、第2の宛先リポジトリアプローチ軌道の終点で開始し得る。
【0118】
物体配置コマンドの生成は、いくつかの追加の制約および/または操作を受け得る。例えば、実施形態では、物体配置コマンドは、リポジトリ検出操作中に生成されたテンプレートマッチング情報に基づいて生成され得る。さらなる実施形態では、物体配置コマンドは、物体リポジトリ検出コマンドおよび階層的アライメントに関して上述したように、画像情報の部分が第2のリポジトリモデルと少なくとも部分的に整列する様式に基づいて生成され得る。さらなる実施形態では、物体配置コマンドは、物体リポジトリ検出コマンドに関して上述したように、複数のバウンディングボックスに基づいて生成され得る。
【0119】
実施形態では、少なくとも1つの処理回路は、ソースリポジトリアプローチコマンド、物体ピックアップコマンド、または第2の宛先リポジトリアプローチコマンドのうちの少なくとも1つが実行されている間(例えば、軌道A2/B2a/B2b、A3/B3、およびA4/B4)に、リポジトリ検出操作の結果に基づいて、物体配置コマンドを生成するための物体配置軌道〔例えば、A5またはB5]を計算するように構成されている。したがって、前述したように、処理回路は、効率を高めるために、ロボットアームが動いている期間中に、処理および/または計算を実行することができる。
【0120】
方法4000に関して上述したように、様々なサブ軌道は、初期段階で事前に計画された軌道の一部であってもよい。様々なサブ軌道は、例えば、初期段階で事前に計画された軌道から調整(例えば、改変または変更)されてもよい。軌道の調整は、例えば、軌道の他の部分を保持しながら、軌道の一部分のみを改変することを伴い得る。軌道の調整は、例えば、軌道全体を代替軌道で置き換えることによって、軌道を変更することを伴い得る。例えば、一実施形態では、上述した初期段階で事前に計画された軌道は、様々な推定された情報に基づいて生成され得る。一部の実例では、推定された情報は、ソースもしくは宛先リポジトリのモデル(例えば、CADモデル)、および/または標的物体のモデルを含み得る。例えば、宛先リポジトリのモデル、例えば、シェルフは、シェルフの中にある層の数を識別してもよく、シェルフの各層にあるセルの数を識別してもよく、またはより一般的には、シェルフの中にある物体配置位置、および/もしくはシェルの高さを識別してもよい。標的物体のモデルは、例えば、標的物体の形状および/またはサイズ(例えば、寸法)を記述し得る。
【0121】
一部の実例では、初期段階で事前に計画された軌道の計算における推定された情報は、シェルフタイプのリポジトリを移動領域のシェルフ領域内に輸送させたAGVの計画された経路に関する情報を含み得る。例えば、AGVは、特定の経路(例えば、フロアマーカーに基づく)に従うようにプログラムされてもよい。AGVのこの既知の経路は、AGVが停止した位置を示し得る。AGVの示された位置は、シェルフ領域内のシェルフの位置の推定値を提供し得る。一部の実装形態では、計算システムは、シェルフのどのセルがそれらの中に物体を配置したかを追跡してもよく、この情報を使用して、シェルフ内の特定のセルが空いているか、または占有されているかどうかを決定してもよい。
【0122】
計算システムは、様々な方法で、初期段階で事前に計画された軌道を決定または計算し得る。例えば、実施形態では、計算システムは、シェルフ領域内の物体の移動の一部として、初期段階で事前に計画された軌道を生成し得る。計算システムは、初期段階で事前に計画された軌道が、シェルフ領域内の他の物体を移動するために再使用され得るように、初期段階で事前に計画された軌道をキャッシュまたはその他の方法で記憶し得る。一実施形態では、計算システムは、シェルフのモデルに基づいて、シェルフの中にあるセル/区画の数、および区画の位置を決定し得る。計算システムは、ダミーの標的物体位置、およびダミーの物体を使用して、粗い軌道を生成し得る。
【0123】
実施形態では、計算システムが、例えば、ソースおよび宛先リポジトリの位置(固定された、または移動可能)を記述する初期情報に基づいて、前もって初期段階で事前に計画された軌道を生成した後、計算システムは、さらなる操作に基づいて、初期段階で事前に計画された軌道を調整し得る。例えば、計算システムは、リポジトリ検出操作4006の結果として、初期段階で事前に計画された軌道を調整し得る。一部の実装形態では、初期段階で事前に計画された軌道は、ソースまたは宛先リポジトリを記述することに関して、および/またはソースリポジトリ内に配置された物体を記述することに関して、一部の操作に対する初期情報の欠如および十分な正確さに基づいて生成され得る。これらの潜在的な不正確性は、例えば、エンドエフェクター装置を一般的にリポジトリに移動させるが、シェルフ上の間違った位置に移動する場合があり、ならびに/またはシェルフから物体をピックアップしたり、および/もしくはリポジトリ上に物体を配置する間違った配向(例えば、間違ったロール、ピッチ、またはヨー)を有する場合がある。したがって、計算システムは、初期段階で事前に計画された軌道、特に、エンドエフェクター装置の正確な移動を制御して、その上のリポジトリまたはその物体との緊密な相互作用を有する、初期段階で事前に計画された軌道の一部分を更新し得る。
【0124】
例えば、図5Bに示す移動サイクルAについて上述した軌道について、計算システムは、第1の宛先リポジトリアプローチコマンドおよびリポジトリ検出操作に続いて受信された画像情報の分析に基づいて、物体ピックアップ軌道、例えば、A5を生成するように、初期段階で事前に計画された軌道を調整してもよい。さらに、計算システムは、第1の宛先リポジトリアプローチ軌道、例えば、A1に到達するために、初期段階で事前に計画された軌道を更新する必要がない場合がある。なぜなら、このサブ軌道は、一般的に、リポジトリの前に、またはより具体的には、リポジトリの指定された位置(例えば、宛先シェルフのセル)の前に、カメラを配置するために使用され、初期段階で事前に計画された軌道は、そのような目的に対して十分な精度を提供するからである。計算システムは、例えば、宛先シェルフをシェルフ領域内に(例えば、2~3cmの誤差の範囲で)輸送するために使用されるAGVの位置に関する情報を有してもよく、この情報を使用して、宛先シェルフの一般的な位置を決定してもよい。この一般的な位置は、宛先シェルフの画像情報を生成することが、カメラを一般に宛先シェルフの前面に配置することによって達成され得るため、十分に正確であり得る。計算システムは、カメラを特定の位置または特定の配向に配置する必要がない場合がある。むしろ、カメラは、その位置が位置の閾値範囲内である限り、宛先リポジトリに関する関連情報を捕捉し得る。
【0125】
実施形態では、ソースリポジトリのアプローチ軌道および物体ピックアップ軌道(例えば、A2およびA3)は、ソースリポジトリの位置およびソースリポジトリ上の物体の位置が固定されているか、またはそうでない場合、制約されている可能性があるため、ソースリポジトリの位置およびソースリポジトリ上の物体の位置が十分に高いレベルの精度で計算システムによって知られ得るように、調整を必要としない場合がある。例えば、ソースリポジトリは、位置が固定されるように、フロアに締め付けられたコンベヤであってもよい。さらに、コンベヤは、コンベヤに沿って移動する物体を遮断するためのブロッカーを有してもよい。ブロッカーは、既知の位置を有してもよく、これは、コンベヤ上の物体の位置を正確に決定するために、計算システムによって使用されてもよい。したがって、計算システムは、コンベヤの軌道調整またはコンベヤ/物体検出を実行する必要がない場合がある。
【0126】
実施形態では、計算システムは、第2の宛先アプローチ軌道、例えば、A4を、初期段階で事前に計画された軌道から変化させないままにしてもよい。例えば、第2の宛先アプローチ軌道は、コンベヤから標的物体をピックアップした後に、エンドエフェクター装置を、宛先シェルフに近づかせ、かつその近傍に来るようにするために使用され得る。サブ軌道A4は、このアプローチに対して十分なレベルの精度を提供し得る。
【0127】
実施形態では、計算システムは、リポジトリ検出操作の結果に基づいて、物体配置軌道(例えば、軌道A5)に到達するように、初期段階で事前に計画された軌道を調整してもよい。物体配置軌道は、宛先リポジトリとの緊密な相互作用のために使用され、また、標的物体をリポジトリの特定の部分、例えば、シェルフの指定されたセルに正しく配置するために、エンドエフェクター装置についての高レベルの精度を必要とする場合がある。
【0128】
上述したように、初期段階で事前に計画された軌道は、宛先シェルフを記述する上で十分な正確さを欠くために、物体をシェルフ内に正しく配置するのに十分な精度を提供し得ない、推定された情報に基づいてもよい。したがって、計算システムは、調整された軌道が物体を宛先シェルフに正しく配置するための精度のレベルを達成し得るように、リポジトリ検出操作に基づいて、物体配置軌道に到達するように、初期段階で事前に計画された軌道を調整し得る。実施例として、物体配置軌道は、エンドエフェクター装置が、初期段階で事前に計画された軌道の対応する部分と比較して異なる終点位置を有するようにしてもよく、および/または初期段階で事前に計画された軌道の対応する部分と比較して、エンドエフェクター装置が、終点位置で異なる配向を有するようにしてもよい。したがって、実施形態では、ロボットが移動しているときに、ロボットは、第1の宛先リポジトリアプローチ軌道、ソースリポジトリアプローチ軌道、物体ピックアップ軌道、および第2の宛先アプローチ軌道として、初期段階で事前に計画された軌道に従うことができ、その後、初期段階で事前に計画された軌道の対応する部分と比較して調整される、物体配置軌道を実行し得る。
【0129】
様々な実施形態に関する追加の考察:
【0130】
実施形態1は、計算システム、計算システムによって実施される方法、または方法を実装させるための命令を含む非一時的コンピュータ可読媒体を含む。計算システムは、ロボットと通信するように構成された通信インターフェースと、少なくとも1つの処理回路と、を備える。ロボットは、エンドエフェクター装置を含むかまたはそれに取り付けられたロボットアームを有し、また、ロボットアームに取り付けられたカメラを有する。少なくとも1つの処理回路は、ロボットが、ソースリポジトリおよび宛先リポジトリを含む物体移動領域内にあるときに、ソースリポジトリから宛先リポジトリへと物体を移動するために、以下を実行するように構成されている。方法は、カメラを宛先リポジトリに向けさせる様式で、ロボットアームを宛先リポジトリに近づかせるための、第1の宛先リポジトリアプローチコマンドを出力することと、宛先リポジトリを記述するための画像情報を受信することであって、画像情報が、第1の宛先リポジトリアプローチコマンドが実行された後に、カメラによって生成されることと、画像情報に基づいて、宛先リポジトリの構造を記述するためのリポジトリ構造情報、宛先リポジトリの姿勢を記述するためのリポジトリ姿勢情報、または1つ以上の物体が宛先リポジトリ内に存在するかどうかを記述するためのリポジトリコンテンツ情報のうち少なくとも1つを決定する、リポジトリ検出操作を実行することと、カメラが宛先リポジトリを記述するための画像情報を生成した後に、ロボットアームをソースリポジトリに近づかせるための、ソースリポジトリアプローチコマンドを出力することと、ソースリポジトリアプローチコマンドが実行された後に、エンドエフェクター装置にソースリポジトリから物体をピックアップさせるための、物体ピックアップコマンドを出力することと、物体ピックアップコマンドが実行された後に、ロボットアームを宛先リポジトリに近づかせるための、第2の宛先リポジトリアプローチコマンドを出力することと、第2の宛先リポジトリアプローチコマンドが実行された後に、エンドエフェクター装置に物体を宛先リポジトリ内に配置させるための、物体配置コマンドを出力することであって、物体配置コマンドが、リポジトリ検出操作の結果に基づいて生成され、結果が、リポジトリ構造情報、リポジトリ姿勢情報、またはリポジトリコンテンツ情報のうちの少なくとも1つを含むことと、を含み得る。
【0131】
実施形態2は、少なくとも1つの処理回路が、ソースリポジトリアプローチコマンドまたは物体ピックアップコマンドのうちの少なくとも1つが実行されている間、画像情報に基づいてリポジトリ検出操作を実行するように構成されている、実施形態1に記載の特徴のすべてを含む。
【0132】
実施形態3は、少なくとも1つの処理回路が、ソースリポジトリアプローチコマンド、物体ピックアップコマンド、または第2の宛先リポジトリアプローチコマンドのうちの少なくとも1つが実行されている間、リポジトリ検出操作の結果に基づいて物体配置軌道を計算するように構成されており、物体配置軌道が、エンドエフェクター装置が物体を宛先リポジトリ内に配置するために従うための軌道であり、物体配置コマンドが、物体配置軌道に基づいて生成される、実施形態1または2に記載のいずれかの特徴のすべてを含む。
【0133】
実施形態4は、少なくとも1つの処理回路が、リポジトリ検出操作の結果に基づいていない様式で、第1の宛先リポジトリアプローチ軌道を計算するように構成されており、第1の宛先リポジトリアプローチ軌道が、ロボットアームが宛先リポジトリに近づくために従うためのものであり、第1の宛先リポジトリアプローチコマンドが、第1の宛先リポジトリアプローチ軌道に基づいて生成される、実施形態1~3に記載のいずれかの特徴を含む。
【0134】
実施形態5は、少なくとも1つの処理回路が、宛先リポジトリがシェルフのセットを形成するフレームであり、かつ車両によって移動領域内および外に移動可能であるときに、車両が従った、または従う予定の車両軌道に基づいて、宛先リポジトリ位置を決定するように構成されており、宛先リポジトリ位置が、移動領域内の宛先リポジトリについての推定された位置である、実施形態1~4に記載のいずれかの特徴を含む。
【0135】
実施形態6は、少なくとも1つの処理回路が、物体ピックアップコマンドが実行された後に従うべき第2の宛先リポジトリアプローチ軌道を計算するように構成されており、第2の宛先リポジトリアプローチ軌道が、リポジトリ検出操作の結果に基づいていない様式で計算され、物体配置軌道が、第2の宛先リポジトリアプローチ軌道の終点で開始するように計算される、実施形態1~5に記載のいずれかの特徴を含む。
【0136】
実施形態7は、少なくとも1つの処理回路が、ソースリポジトリが移動領域内の所定の位置に固定されるときに、ソースリポジトリが移動領域内で固定される所定の位置に基づいて、ソースリポジトリアプローチ軌道および物体ピックアップ軌道を計算するように構成されており、ソースリポジトリアプローチ軌道が、ロボットアームがソースリポジトリに近づくために従うための軌道であり、ソースリポジトリアプローチコマンドが、ソースリポジトリアプローチ軌道に基づいて生成され、物体ピックアップ軌道が、エンドエフェクター装置がソースリポジトリから物体をピックアップするために従うための軌道であり、物体ピックアップコマンドが、物体ピックアップ軌道に基づいて生成される、実施形態1~6に記載のいずれかの特徴を含む。
【0137】
実施形態8は、リポジトリ検出操作が、第1のリポジトリ検出操作であり、画像情報が、画像情報の第1のセットであり、少なくとも1つの処理回路が、ソースリポジトリが移動領域に固定されていないときに、以下のこと、すなわち、ソースリポジトリを記述するための画像情報の第2のセットを受信することであって、画像情報の第2のセットが、ソースリポジトリアプローチコマンドの実行中または実行後に、カメラによって生成される、受信することと、画像情報の第2のセットに基づいて、第2のリポジトリ検出操作を実行することと、第2のリポジトリ検出操作の結果に基づいて、物体ピックアップ軌道を計算することであって、物体ピックアップ軌道が、エンドエフェクター装置がソースリポジトリから物体をピックアップするために従うための軌道であり、物体ピックアップコマンドが、物体ピックアップ軌道に基づいて生成される、計算することと、を実行するように構成されている、実施形態1~7に記載のいずれかの特徴を含む。
【0138】
実施形態9は、少なくとも1つの処理回路が、画像情報の第2のセットに基づいて、物体がソースリポジトリ内にある間に物体に関連付けられた物体姿勢を決定することによって、第2のリポジトリ検出操作を実行するように構成されており、物体ピックアップコマンドが、物体姿勢に基づいて生成される、実施形態1~8に記載のいずれかの特徴を含む。
【0139】
実施形態10は、少なくとも1つの処理回路が、ロボットによって実行されたときに、ソースリポジトリに向かうロボットアームの移動を第1の期間中に一時停止させ、それに続く第2の期間中に再開させる様式で、ソースリポジトリアプローチコマンドを生成することと、第1の期間中に、画像情報の第2のセットがカメラによって生成されるようにすることと、第2の期間中に、第2のリポジトリ検出操作を実行することと、を行うように構成されている、実施形態1~9に記載のいずれかの特徴を含む。
【0140】
実施形態11は、少なくとも1つの処理回路が、画像情報がリポジトリ構造を記述する所定のリポジトリモデルと少なくとも部分的に整列する様式を決定することによって、リポジトリ検出操作を実行するように構成されており、物体配置コマンドが、画像情報が所定のリポジトリモデルと少なくとも部分的に整列する様式に基づいて生成される、実施形態1~10に記載のいずれかの特徴を含む。
【0141】
実施形態12は、少なくとも1つの処理回路が、画像情報がリポジトリ構造を記述する所定のリポジトリモデルと比較されるときに、所定のテンプレートマッチング条件を満たすかどうかを決定することによって、リポジトリ検出操作を実行するように構成されており、少なくとも1つの処理回路が、画像情報が所定のテンプレートマッチング条件を満たすという決定に応答して、所定のリポジトリモデルに基づいて物体配置コマンドを生成するように構成されている、実施形態1~11に記載のいずれかの特徴を含む。
【0142】
実施形態13は、画像情報が、宛先リポジトリ上の複数の表面位置についてのそれぞれの奥行き値を記述し、少なくとも1つの処理回路が、複数の表面位置がカメラに対する第2の表面位置よりも近い第1の表面位置を含むときに、画像情報と所定のリポジトリモデルとの間の一致のレベルを、第2の位置が所定のリポジトリモデルとどれだけ密接に一致するかよりも、第1の位置が所定のリポジトリモデルとどれだけ密接に一致するかにより重点を置く様式で、決定するように構成されている、実施形態1~12に記載のいずれかの特徴を含む。
【0143】
実施形態14は、少なくとも1つの処理回路が、物体が配置される宛先リポジトリ内の宛先セクタを決定するように構成されており、画像情報に基づいて、宛先セクタが占有されていないかどうかを決定することによって、リポジトリ検出操作を実行するように構成されている、実施形態1~13に記載のいずれかの特徴を含む。
【0144】
実施形態15は、少なくとも1つの処理回路が、物体が配置される宛先リポジトリ内の宛先セクタを決定するように構成されており、かつ画像情報がリポジトリ構造を記述する第1のリポジトリモデルと少なくとも部分的に整列する様式を決定することと、画像情報が第1のリポジトリモデルと少なくとも部分的に整列する様式に基づいて、宛先セクタを含む宛先リポジトリの少なくとも1層を表す画像情報の一部分を識別することと、画像情報の部分がリポジトリ構造の少なくとも1層を記述する第2のリポジトリモデルと少なくとも部分的に整列する様式を決定することと、によってリポジトリ検出操作を実行するように構成されており、物体配置コマンドが、画像情報の部分が第2のリポジトリモデルと少なくとも部分的に整列する様式に基づいて生成される、実施形態1~14に記載のいずれかの特徴を含む。
【0145】
実施形態16は、第1のリポジトリモデルが、リポジトリ構造のフレームを記述し、その結果、少なくとも1つの処理回路が、画像情報が第1のリポジトリモデルによって記述されるフレームと整列する様式を決定するように構成されている、実施形態1~15に記載のいずれかの特徴を含む。
【0146】
実施形態17は、少なくとも1つの処理回路が、画像情報から、宛先リポジトリを複数の領域に分割する宛先リポジトリの複数のエッジを検出することと、複数の仮想バウンディングボックスを決定することであって、複数の仮想バウンディングボックスの各仮想バウンディングボックスが、複数のエッジのうちの1つを囲むか、または複数の領域のうちの1つを囲む、決定することと、を行うように構成されており、物体配置コマンドが、複数の仮想バウンディングボックスに基づいて生成される、実施形態1~16に記載のいずれかの特徴を含む。
【0147】
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なるシーケンスで行われてもよく、追加、統合、または完全に省略し得ることも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実行するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。従って、添付の特許請求の範囲で定義されるような、発明の趣旨または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼし得る。
図1A
図1B
図1C
図1D
図2A
図2B
図2C
図2D
図2E
図2F
図2G
図3A
図3B
図3C
図3D
図3E
図3F
図4
図5A
図5B
図5C
図6