(57)【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
通信インターフェースであって、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、（ｉｉｉ）ロボット操作に使用されるコンベヤベルトと、通信するように構成されている、通信インターフェースと、
制御回路と、を備え、
前記制御回路は、前記ロボットアームが前記カメラ視野にあるとき、
前記ロボット操作を実行するために、前記ロボットアームの動作を制御するための動作コマンドを出力することであって、前記動作コマンドが、キャリブレーション情報に基づいていることと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、
（ｉ）前記コンピューティングシステムが前記コンベヤベルトと通信しているときに前記コンベヤベルトを停止させること、及び、
（ｉｉ）前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うように構成されている、コンピューティングシステム。
【請求項２】
前記第１のポーズが、前記第１の期間中に出力される第１の追加の動作コマンドと関連付けられ、
前記第１の追加の動作コマンドが、前記ロボットアームを前記第１のポーズに動かすように制御するための１つ以上の作動パラメーター値を有し、
前記参照画像が、前記第１の追加の動作コマンドの結果として、前記ロボットアームが前記第１のポーズにあるとき、前記カメラによって生成され、
前記第２の期間中に出力される前記追加の動作コマンドが、第２の追加の動作コマンドであり、また、前記１つ以上の作動パラメーター値も含む、請求項１に記載のコンピューティングシステム。
【請求項３】
前記検証記号のグループの各検証記号が、円形形状を有し、
前記第１の追加の動作コマンド及び前記第２の追加の動作コマンドの前記１つ以上の作動パラメーター値は、前記参照画像内及び前記検証画像内で、前記検証記号のグループが、偏心率を伴わずに、又は規定された偏心閾値未満であるそれぞれの量の偏心率を伴って現れるような様態で前記検証記号のグループを位置決めさせる、請求項２に記載のコンピューティングシステム。
【請求項４】
コンピューティングシステムであって、
通信インターフェースであって、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成されている、通信インターフェースと、
制御回路と、を備え、
前記制御回路は、前記ロボットアームが前記カメラ視野にあるとき、
ロボット操作を実行するために、前記ロボットアームの動作を制御するための動作コマンドを出力することであって、前記動作コマンドが、キャリブレーション情報に基づいていることと、
前記ロボットアームが第１のポーズを有するように制御するための第１の追加の動作コマンドの１つ以上の作動パラメーター値を判断することであって、前記第１のポーズが、前記検証記号のグループを、前記カメラに対して凹形である１つ以上の仮想球に対して接線方向に向くようにさせることと、
第１の期間中、前記１つ以上の作動パラメーター値を有する前記第１の追加の動作コマンドを出力することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが前記第１の追加の動作コマンドの結果として前記第１のポーズにあるとき、前記第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための第２の追加の動作コマンドを出力することであって、前記第２の追加の動作コマンドは、前記１つ以上の作動パラメーター値を有することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記第２の追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うように構成されている、コンピューティングシステム。
【請求項５】
前記検証記号のグループの少なくとも１つの検証記号が、円形リングとして形成されているとき、前記制御回路が、前記円形リングを識別することによって、前記参照画像内及び前記検証画像内の前記少なくとも１つの検証記号を識別するように構成されている、請求項１に記載のコンピューティングシステム。
【請求項６】
コンピューティングシステムであって、
通信インターフェースであって、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されていると共に、異なるそれぞれのサイズを有するそれぞれの円形リングとして形成されている検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成されている、通信インターフェースと、
制御回路と、を備え、
前記制御回路は、前記ロボットアームが前記カメラ視野にあるとき、
ロボット操作を実行するために、前記ロボットアームの動作を制御するための動作コマンドを出力することであって、前記動作コマンドが、キャリブレーション情報に基づいていることと、
参照画像を受信することであって、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記参照画像内の前記検証記号のグループを識別することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、前記参照画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記検証画像内の前記検証記号のグループを識別することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うように構成されている、コンピューティングシステム。
【請求項７】
前記制御回路が、前記ロボットアームの幾何学形状を記述する規定されたモデルに基づいて、前記参照画像内の前記検証記号のグループの少なくとも１つの検証記号を識別するように構成されている、請求項１に記載のコンピューティングシステム。
【請求項８】
前記制御回路が、
前記モデルに基づいて、前記少なくとも１つの検証記号が現れることが予想される前記参照画像内の領域を判断することと、
前記参照画像の前記領域内の前記少なくとも１つの検証記号を検索することと、を行うように構成されている、請求項７に記載のコンピューティングシステム。
【請求項９】
前記制御回路が、前記それぞれの偏差パラメーター値のグループ間の比較に基づいて、前記少なくとも１つの偏差パラメーター値に前記規定された偏差閾値を超過させるキャリブレーション誤差のタイプを判断するように構成されており、
前記キャリブレーション誤差のタイプは、前記キャリブレーション情報に対する精度の損失が前記ロボットにおける変化を表すかどうか、又は、前記精度の損失が前記カメラにおける変化を表すかどうかを示す、請求項１に記載のコンピューティングシステム。
【請求項１０】
前記制御回路は、前記それぞれの偏差パラメーター値のグループ全てが、前記規定された偏差閾値を超過しているかどうか、及び前記それぞれの偏差パラメーター値のグループが、規定された均一性閾値を超えて互いに異なるかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループが全て、前記規定された偏差閾値を超過し、かつ、前記規定された均一性閾値を超えて互いに異ならない、という判断に応答して、前記キャリブレーション誤差のタイプが、前記カメラにおける変化を表すキャリブレーション誤差であると判断することと、を行うように構成されている、請求項９に記載のコンピューティングシステム。
【請求項１１】
前記制御回路は、前記それぞれの偏差パラメーター値のグループのうちの１つ以上が、前記規定された偏差閾値を超過しないという判断、又は前記それぞれの偏差パラメーター値のグループが、前記規定された均一性閾値を超えて互いに異なるという判断に応答して、前記キャリブレーション誤差のタイプが、前記ロボットにおける変化を表すキャリブレーション誤差であると判断するようにさらに構成されている、請求項１０に記載のコンピューティングシステム。
【請求項１２】
前記キャリブレーション情報が、第１のキャリブレーション操作と関連付けられており、
前記更新されたキャリブレーション情報を生成するための前記キャリブレーション操作が、前記第１のキャリブレーション操作に続く第２のキャリブレーション操作であり、
前記制御回路が、規定されたトリガー条件に応答して、前記追加の動作コマンドを出力するように、かつ前記検証画像を受信するためのカメラコマンドを出力するように構成されており、
前記規定されたトリガー条件が、
前記第１のキャリブレーション操作以来経過している規定された期間、及び
前記コンピューティングシステムによって計画されず、かつ前記ロボット若しくは前記カメラへの変化をもたらす事象、
のうちの少なくとも１つを含む、請求項１に記載のコンピューティングシステム。
【請求項１３】
コンピューティングシステムであって、
通信インターフェースであって、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成されている、通信インターフェースと、
制御回路と、を備え、
前記複数のアーム部分が、前記ロボットのベースからロボットエンドエフェクタまでの一連のアーム部分として配置され、
前記制御回路は、
ロボット操作を実行するために、前記ロボットアームの動作を制御するための動作コマンドを出力することであって、前記動作コマンドが、キャリブレーション情報に基づいていることと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記検証記号のグループの第１の検証記号に関する偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することであって、前記偏差パラメーター値が、前記それぞれの偏差パラメーター値のグループの一つであることと、
前記複数のアーム部分の中から、前記第１の検証記号が配置されている第１のアーム部分を識別することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過しないという判断に応答して、前記キャリブレーション情報が、前記第１のアーム部分に関して、及び前記一連のアーム部分において前記第１のアーム部分に先行する少なくとも１つの追加のアーム部分に関して正確であると判断することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うように構成されている、コンピューティングシステム。
【請求項１４】
前記参照画像が、前記ロボットアームの前記第１のポーズと関連付けられた第１の参照画像であり、
前記検証画像が、前記第１のポーズと関連付けられた第１の検証画像であり、
前記参照画像座標のグループが、前記第１のポーズと関連付けられた第１の参照画像座標のグループであり、
前記検証画像座標のグループが、前記第１のポーズと関連付けられた第１の検証画像座標のグループであり、
前記制御回路が、
第２の参照画像座標のグループを判断することであって、前記第２の参照画像座標のグループが、第２の参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記第２の参照画像が、前記ロボットアームが第２のポーズにあるとき、前記カメラによって生成されることと、
前記第２の参照画像が生成されていることに続いて、前記ロボットアームを前記第２のポーズに動かすために前記ロボットアームを制御するためのさらなる動作コマンドを出力することと、
第２の検証画像を受信することであって、前記第２の検証画像がまた、前記検証記号のグループも表し、前記さらなる動作コマンドの結果として、前記ロボットアームが前記第２のポーズに動かされたとき、前記カメラによって生成されることと、
第２の検証画像座標のグループを判断することであって、前記第２の検証画像座標のグループが、前記第２の検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
を行うように構成されており、
前記それぞれの偏差パラメーター値のグループが、前記第２の参照画像座標のグループと前記第２の検証画像座標のグループとの間のそれぞれの偏差量にさらに基づいている、請求項１に記載のコンピューティングシステム。
【請求項１５】
内部に記憶された命令を有する、非一時的コンピューター可読媒体であって、コンピューティングシステムの制御回路によって実行されるとき、前記制御回路に、
キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を含み、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有するロボットと、（ｉｉｉ）ロボット操作に使用されるコンベヤベルトと、通信するように構成されており、前記動作コマンドが、前記ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、
（ｉ）前記コンピューティングシステムが前記コンベヤベルトと通信しているときに前記コンベヤベルトを停止させること、及び、
（ｉｉ）前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うようにさせる、非一時的コンピューター可読媒体。
【請求項１６】
コンピューティングシステムによって実行される方法であって、
前記コンピューティングシステムによって、キャリブレーション情報に基づく動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、（ｉｉｉ）ロボット操作に使用されるコンベヤベルトと、通信するように構成されており、前記動作コマンドが、前記ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
前記コンピューティングシステムによって、参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記コンピューティングシステムによって、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記コンピューティングシステムによって検証画像を受信することであって、前記検証画像が、前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成されることと、
前記コンピューティングシステムによって、検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記コンピューティングシステムによって、前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記コンピューティングシステムによって、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過することを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、
（ｉ）前記コンピューティングシステムが前記コンベヤベルトと通信しているときに前記コンベヤベルトを停止させること、及び、
（ｉｉ）前記コンピューティングシステムによって、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、を含む、方法。
【請求項１７】
内部に記憶された命令を有する、非一時的コンピューター可読媒体であって、コンピューティングシステムの制御回路によって実行されるとき、前記制御回路に、
キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームとを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
前記ロボットアームが第１のポーズを有するように制御するための第１の追加の動作コマンドの１つ以上の作動パラメーター値を判断することであって、前記第１のポーズが、前記検証記号のグループを、前記カメラに対して凹形である１つ以上の仮想球に対して接線方向に向くようにさせることと、
第１の期間中、前記１つ以上の作動パラメーター値を有する前記第１の追加の動作コマンドを出力することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが前記第１の追加の動作コマンドの結果として前記第１のポーズにあるとき、前記第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための第２の追加の動作コマンドを出力することであって、前記第２の追加の動作コマンドは、前記１つ以上の作動パラメーター値を有することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記第２の追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うようにさせる、非一時的コンピューター可読媒体。
【請求項１８】
コンピューティングシステムによって実行される方法であって、
前記コンピューティングシステムによって、キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームとを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
前記ロボットアームが第１のポーズを有するように制御するための第１の追加の動作コマンドの１つ以上の作動パラメーター値を判断することであって、前記第１のポーズが、前記検証記号のグループを、前記カメラに対して凹形である１つ以上の仮想球に対して接線方向に向くようにさせることと、
第１の期間中、前記１つ以上の作動パラメーター値を有する前記第１の追加の動作コマンドを出力することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが前記第１の追加の動作コマンドの結果として前記第１のポーズにあるとき、前記第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための第２の追加の動作コマンドを出力することであって、前記第２の追加の動作コマンドは、前記１つ以上の作動パラメーター値を有することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記第２の追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を含む、方法。
【請求項１９】
内部に記憶された命令を有する、非一時的コンピューター可読媒体であって、コンピューティングシステムの制御回路によって実行されるとき、前記制御回路に、
キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されていると共に、異なるそれぞれのサイズを有するそれぞれの円形リングとして形成されている検証記号のグループを備える、ロボットアームとを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
参照画像を受信することであって、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記参照画像内の前記検証記号のグループを識別することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、前記参照画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記検証画像内の前記検証記号のグループを識別することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うようにさせる、非一時的コンピューター可読媒体。
【請求項２０】
コンピューティングシステムによって実行される方法であって、
前記コンピューティングシステムによって、キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されていると共に、異なるそれぞれのサイズを有するそれぞれの円形リングとして形成されている検証記号のグループを備える、ロボットアームとを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであることと、
参照画像を受信することであって、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記参照画像内の前記検証記号のグループを識別することと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、前記参照画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
前記検証記号のグループを形成する前記それぞれの円形リングの前記異なるそれぞれのサイズに基づいて、前記検証画像内の前記検証記号のグループを識別することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、
前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を含む、方法。
【請求項２１】
内部に記憶された命令を有する、非一時的コンピューター可読媒体であって、コンピューティングシステムの制御回路によって実行されるとき、前記制御回路に、
キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであり、前記複数のアーム部分が、前記ロボットのベースからロボットエンドエフェクタまでの一連のアーム部分として配置されていることと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記検証記号のグループの第１の検証記号に関する偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することであって、前記偏差パラメーター値が、前記それぞれの偏差パラメーター値のグループの一つであることと、
前記複数のアーム部分の中から、前記第１の検証記号が配置されている第１のアーム部分を識別することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過しないという判断に応答して、前記キャリブレーション情報が、前記第１のアーム部分に関して、及び前記一連のアーム部分において前記第１のアーム部分に先行する少なくとも１つの追加のアーム部分に関して正確であると判断することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を行うようにさせる、非一時的コンピューター可読媒体。
【請求項２２】
コンピューティングシステムによって実行される方法であって、
前記コンピューティングシステムによって、キャリブレーション情報に基づいている動作コマンドを出力することであって、前記コンピューティングシステムが、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられている複数のアーム部分を備え、かつ前記複数のアーム部分のそれぞれのアーム部分上に配置されている検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成されており、前記動作コマンドが、ロボット操作を実行するために前記ロボットアームの動作を制御するためであり、前記複数のアーム部分が、前記ロボットのベースからロボットエンドエフェクタまでの一連のアーム部分として配置されていることと、
参照画像座標のグループを判断することであって、前記参照画像座標のグループが、参照画像内に前記検証記号のグループが現れるそれぞれの座標であり、前記参照画像が、前記検証記号のグループを表すための画像であり、かつ、前記ロボットアームが第１のポーズにあるとき、第１の期間中に前記カメラによって生成されることと、
前記第１の期間に続く第２の期間中に、前記ロボットアームを前記第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、
前記検証記号のグループを表すための追加画像であり、かつ、前記ロボットアームが、前記追加の動作コマンドの結果として、前記第１のポーズに動かされたとき、前記カメラによって生成される、検証画像を受信することと、
検証画像座標のグループを判断することであって、前記検証画像座標のグループが、前記検証画像内に前記検証記号のグループが現れるそれぞれの座標であることと、
前記参照画像座標のグループと前記検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、前記それぞれの偏差パラメーター値のグループが、前記検証記号のグループと関連付けられていることと、
前記検証記号のグループの第１の検証記号に関する偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することであって、前記偏差パラメーター値が、前記それぞれの偏差パラメーター値のグループの一つであることと、
前記複数のアーム部分の中から、前記第１の検証記号が配置されている第１のアーム部分を識別することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過しないという判断に応答して、前記キャリブレーション情報が、前記第１のアーム部分に関して、及び前記一連のアーム部分において前記第１のアーム部分に先行する少なくとも１つの追加のアーム部分に関して正確であると判断することと、
前記第１の検証記号に関する前記偏差パラメーター値が、前記規定された偏差閾値を超過するという判断に応答して、前記それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、前記規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、
を含む、方法。                                                                               
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０２０年１月２日出願の米国特許出願第１６／７３２，８３２号、発明の名称「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｖｅｒｉｆｙｉｎｇ  ａｎｄ  Ｕｐｄａｔｉｎｇ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」の一部継続であり、これは、２０１９年７月２９日出願の米国特許出願第１６／５２５，００４号、発明の名称「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｖｅｒｉｆｙｉｎｇ  ａｎｄ  Ｕｐｄａｔｉｎｇ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」の継続であり、これは、２０１９年３月２９日出願の米国特許出願第１６／３６９，６３０号、発明の名称「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｖｅｒｉｆｙｉｎｇ  ａｎｄ  Ｕｐｄａｔｉｎｇ  Ｃａｍｅｒａ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」の継続であり、その内容全体が、参照により本明細書に組み込まれる。本出願は、さらに、２０１９年１０月１８日出願の米国特許出願第６２／９１６，７９８号、発明の名称「Ｍｅｔｈｏｄ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｖｅｒｉｆｙｉｎｇ  Ｃａｌｉｂｒａｔｉｏｎ  ｆｏｒ  Ｒｏｂｏｔ  Ｃｏｎｔｒｏｌ」の利益を主張し、その内容全体がまた、参照により本明細書に組み込まれる。
【０００２】
本発明は、ロボット制御のためのキャリブレーション情報を検証及び更新するための方法並びに制御システムに関する。
【背景技術】
【０００３】
自動化がより一般的になるに従い、倉庫保管及び製造環境等、より多くの環境においてロボットが使用されている。例えば、ロボットは、倉庫において物品をパレットに積むか若しくはパレットから降ろすために、又は、工場においてコンベヤベルトから物体を持ち上げるために使用される場合がある。ロボットの移動は、一定である場合があり、又は、倉庫若しくは工場においてカメラによって撮影される画像等の入力に基づく場合がある。後者の状況では、カメラの特性を判断するために、かつ、カメラとロボットが位置する環境との間の関係を判断するために、キャリブレーション操作が実行されてもよい。キャリブレーション操作は、ロボットを制御するために使用されるキャリブレーション情報を生成することができる。いくつかの実施態様では、キャリブレーション操作は、人による手動操作を必要とする場合があり、人は、ロボットの動作を手動で制御するか、又は、カメラを手動で制御して、ロボットの画像を取り込むことができる。
【発明の概要】
【０００４】
本明細書における実施形態の一態様は、カメラキャリブレーション又は他のシステムキャリブレーションを検証すること等のロボット制御のためのキャリブレーション検証を実行することに関する。キャリブレーション検証は、通信インターフェース及び制御回路を備えるロボット制御システムによって実行することができる。通信インターフェースは、ベースと、その上に検証記号（ｖｅｒｉｆｉｃａｔｉｏｎ  ｓｙｍｂｏｌ）が配置されるロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成することができる。ロボット制御システムの制御回路は、ａ）第１のキャリブレーション操作を実行して（例えば、第１のカメラキャリブレーション）、キャリブレーション情報（例えば、カメラキャリブレーション情報）を判断することと、ｂ）通信インターフェースに第１の動作コマンドを出力することであって、通信インターフェースは、第１のキャリブレーション操作中又は後に、ロボットアームが検証記号をカメラ視野内の箇所に動作させるように、ロボットに第１の動作コマンドを通信するように構成され、その箇所が第１のキャリブレーション操作を検証するための１つ以上の参照箇所のうちの参照箇所である、第１の動作コマンドを出力することと、ｃ）通信インターフェースを介して、カメラから検証記号の画像を受信することであって、カメラは参照箇所において検証記号の画像を取り込むように構成され、画像は検証のための参照画像である、検証記号の画像を受信することと、ｄ）検証記号のための参照画像座標を判断することであって、参照画像座標は参照画像内に検証記号が現れる座標である、参照画像座標を判断することと、ｅ）通信インターフェースに、キャリブレーション情報に基づく第２の動作コマンドを出力することであって、通信インターフェースは、ロボットアームを動かし、ロボット操作を実行させるように、ロボットに第２の動作コマンドを通信するように構成される、第２の動作コマンドを出力することと、によって、キャリブレーション検証を実行するように構成することができる。
【０００５】
一実施形態において、制御回路は、ｆ）ロボット操作中に休止期間を検出することと、ｇ）通信インターフェースに第３の動作コマンドを出力することであって、通信インターフェースは、休止期間中にロボットアームが検証記号を少なくとも参照箇所に動かすように、ロボットに第３の動作コマンドを通信するように構成される、第３の動作コマンドを出力することと、ｈ）通信インターフェースを介して、カメラから検証記号の追加画像を受信することであって、カメラは休止期間中に少なくとも参照箇所において検証記号の追加画像を取り込むように構成され、追加画像は検証のための検証画像である、検証記号の追加画像を受信することと、ｉ）検証のために使用される検証画像座標を判断することであって、検証画像座標は検証画像内に検証記号が現れる座標である、検証画像座標を判断することと、ｊ）参照画像座標と検証画像座標との間の偏差量に基づいて、偏差パラメーター値を判断することであって、参照画像座標及び検証画像座標は両方とも参照箇所と関連付けられ、偏差パラメーター値は、通信インターフェースが通信するように構成されるカメラの第１のキャリブレーション操作以降の変化、又は通信インターフェースが通信するように構成されるカメラとロボットとの間の関係の第１のキャリブレーション操作以降の変化を示す、偏差パラメーター値を判断することと、ｋ）偏差パラメーター値が規定された閾値を超過するかどうかを判断することと、ｌ）偏差パラメーター値が規定された閾値を超過するという判断に応答して、第２のキャリブレーション操作（例えば、第２のカメラキャリブレーション操作）を実行し、更新されたキャリブレーション情報（例えば、更新されたカメラキャリブレーション情報）を判断することと、によって、キャリブレーション検証をさらに実行するように構成される。
【図面の簡単な説明】
【０００６】
本発明の上述の特徴、目的、及び利点、並びに他の特徴、目的、及び利点は、添付の図面に示されるような本発明の実施形態の以下の説明から明らかであろう。本明細書に組み込まれるとともに本明細書の一部をなす添付の図面はさらに、本発明の原理を説明するとともに、当業者が本発明を実施及び使用することを可能にする役割を果たす。図面は一定縮尺ではない。
【０００７】
【図１Ａ】本明細書の実施形態による、キャリブレーション情報の検証が実行されるシステムのブロック図を図示する。
【図１Ｂ】本明細書の実施形態による、キャリブレーション情報の検証が実行されるシステムのブロック図を図示する。
【図１Ｃ】本明細書の一実施形態による、キャリブレーションの検証を実行するように構成されるロボット制御システムのブロック図を図示する。
【図１Ｄ】本明細書の一実施形態による、カメラキャリブレーションが実行されるカメラのブロック図を図示する。
【図２】本明細書の一実施形態による、キャリブレーション操作から得られるキャリブレーション情報に基づいて、制御されているロボットを例示するシステムを図示する。
【図３】本明細書の一実施形態による、キャリブレーション操作を実行するためのシステムを図示する。
【図４Ａ】本明細書の一実施形態による、キャリブレーション情報の検証を実行するための方法を例示するフロー図を提供する。
【図４Ｂ】本明細書の一実施形態による、キャリブレーション情報の検証を実行するための方法を例示するフロー図を提供する。
【図５Ａ】本明細書の一実施形態による、検証記号がロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号が使用されるシステムを例示する。
【図５Ｂ】本明細書の一実施形態による、検証記号がロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号が使用されるシステムを例示する。
【図５Ｃ】本明細書の一実施形態による、例示的な検証記号を図示する。
【図６Ａ】本明細書の一実施形態による、検証記号のそれぞれの画像が取り込まれる参照箇所の実施例を図示する。
【図６Ｂ】本明細書の一実施形態による、検証記号のそれぞれの画像が取り込まれる参照箇所の実施例を図示する。
【図６Ｃ】本明細書の一実施形態による、検証記号のそれぞれの画像が取り込まれる参照箇所の実施例を図示する。
【図６Ｄ】本明細書の一実施形態による、検証記号のそれぞれの画像が取り込まれる参照箇所の実施例を図示する。
【図７Ａ】本明細書の一実施形態による、参照画像座標を判断する一実施例を図示する。
【図７Ｂ】本明細書の一実施形態による、検証画像座標を判断する一例を図示する。
【図８】本明細書の一実施形態による、キャリブレーション情報の検証のための例示的なタイムラインを例示する。
【図９】本明細書の一実施形態による、キャリブレーション情報の検証を実行するための例示的な方法を例示するフロー図を提供する。
【図１０Ａ】本明細書の一実施形態による、検証記号のグループがロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号のグループが使用されるシステムを例示する。
【図１０Ｂ】本明細書の一実施形態による、検証記号のグループがロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号のグループが使用されるシステムを例示する。
【図１０Ｃ】本明細書の一実施形態による、検証記号のグループがロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号のグループが使用されるシステムを例示する。
【図１１Ａ】本明細書の一実施形態による、検証記号のグループがロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号のグループが使用されるシステムを例示する。
【図１１Ｂ】本明細書の一実施形態による、検証記号のグループがロボット上に配置され、キャリブレーション情報の検証を実行するために検証記号のグループが使用されるシステムを例示する。
【図１１Ｃ】本明細書の一実施形態による、異なるそれぞれのサイズを有する検証記号のグループを例示する。
【図１２Ａ】本明細書の一実施形態による、キャリブレーション情報の検証を実行するための方法を例示するフロー図を提供する。
【図１２Ｂ】本明細書の一実施形態による、キャリブレーション情報の検証を実行するための方法を例示するフロー図を提供する。
【図１３Ａ】それぞれ、ロボットアームの第１のポーズと関連付けられる、参照画像及び検証画像を例示する。
【図１３Ｂ】それぞれ、ロボットアームの第１のポーズと関連付けられる、参照画像及び検証画像を例示する。
【図１４Ａ】それぞれ、ロボットアームの第２のポーズと関連付けられた参照画像及び検証画像を例示する。
【図１４Ｂ】それぞれ、ロボットアームの第２のポーズと関連付けられた参照画像及び検証画像を例示する。
【発明を実施するための形態】
【０００８】
以下の詳細な説明は、本質的に単に例示のものであり、本発明又は本発明の用途及び使用を限定することを意図するものではない。さらに、前出の技術分野、背景技術、発明の概要又は以下の詳細な説明において提示されるいかなる明示された又は暗示された理論によっても限定する意図はない。
【０００９】
本明細書に記載する実施形態は、倉庫、製造工場において、又は他の何らかの環境において使用されるロボット等、ロボットを制御するために使用されるキャリブレーション情報を検証及び／又は更新することに関する。より具体的には、キャリブレーション情報は、ロボット操作システムの制御を容易にするために実行されてもよく、システムキャリブレーションと呼ばれる場合があるキャリブレーション操作を実行することによって判断することができる。システムキャリブレーションは、カメラのキャリブレーション（カメラキャリブレーション若しくはカメラキャリブレーション操作と呼ばれる場合がある）、ロボットのキャリブレーション（ロボットキャリブレーションと呼ばれる場合がある）、ロボット操作システムの別の要素のキャリブレーション、又はそれらの任意の組み合わせを含むことができる。システムキャリブレーションは、例えば、ロボット制御システム（又は、ロボットコントローラーとも呼ばれる）によって実行されて、カメラによって取り込まれる（例えば、撮影される）画像に基づいて、ロボットを制御するロボット制御システムの能力を促進するキャリブレーション情報（例えば、カメラキャリブレーション情報）を生成することができる。例えば、ロボットは、倉庫において包装品を持ち上げるために使用される場合があり、そこでは、ロボットのロボットアーム又は他の構成要素の配置は、カメラによって取り込まれる包装品の画像に基づくことができる。その場合、キャリブレーション情報が、カメラキャリブレーション情報を含むと、カメラキャリブレーション情報は、例えば、ロボットのロボットアームに対する包装品の箇所及び向きを判断するために、包装品の画像とともに使用することができる。システムキャリブレーションが、カメラキャリブレーションを含む場合、カメラキャリブレーションは、カメラの固有パラメーター（内部パラメーターと呼ばれる場合もある）のそれぞれの推定値を判断することと、カメラとその外部環境との間の関係の推定値を判断することと、を含むことができる。カメラの固有パラメーターは、行列、ベクトル又はスカラー値等の１つ以上のパラメーター値を有することができる。さらに、固有パラメーターの例は、射影行列及びひずみパラメーターを含む。一例において、カメラキャリブレーションは、外部環境内の或る定位置（ｆｉｘｅｄ  ｐｏｓｉｔｉｏｎ）に対するカメラの位置を特定することを含むことができ、それは、カメラと外部環境内の定位置との間の関係を表す変換関数（ｔｒａｎｓｆｏｒｍａｔｉｏｎ  ｆｕｎｃｔｉｏｎ）として表すことができる。場合によっては、カメラキャリブレーションは、キャリブレーションパターンの助けを借りて実行することができ、キャリブレーションパターンは、キャリブレーションパターン上の規定された位置に配置されるパターン要素を有することができる。カメラはキャリブレーションパターンのパターン要素の画像（キャリブレーション画像とも呼ばれる）を取り込むことができ、カメラキャリブレーションは、パターン要素の画像をパターン要素の規定された位置と比較することに基づいて実行することができる。カメラキャリブレーションは、２０１９年３月７日出願の米��特許出願第１６／２９５，９４０号（整理番号ＭＪ００２１ＵＳ１）、発明の名称「ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＡＵＴＯＭＡＴＩＣ  ＣＡＭＥＲＡ  ＣＡＬＩＢＲＡＴＩＯＮ  ＦＯＲ  ＲＯＢＯＴ  ＣＯＮＴＲＯＬ」においてより詳細に論じられており、その内容全体が参照により本明細書に組み込まれる。
【００１０】
上記で言及されたように、本開示の一態様は、早期の時点において実行されたカメラキャリブレーション又は他のキャリブレーション操作が、後の時点において依然として正確であることを検証することに関する。早期の時点において実行されるカメラキャリブレーションは、カメラの固有パラメーター、又はその時点におけるカメラとその外部環境との間の関係等の、その時点のカメラの特性を反映するカメラキャリブレーション情報を生成することができる。場合によっては、カメラの特性が経時的に変化する場合があるため、早期のカメラキャリブレーションは経時的に精度を維持できなくなる場合がある。第１の例において、カメラの固有パラメーターが経時的に変化する場合がある。そのような変化は、例えば、温度変化によって引き起こされる場合があり、温度変化が、カメラのハウジング及び／又はレンズの形状を変更する。第２の例において、カメラとその外部環境との間の関係が経時的に変化する場合がある。例えば、カメラが、例えば、ロボットのベース、又は倉庫内の位置に対して位置又は向きを変える場合がある。そのような変化は、例えば、カメラを搭載するために使用される任意の構成要素を膨張若しくは収縮させる温度変化、カメラに衝突する人若しくは他の物体、カメラの外部環境（例えば、倉庫）内の振動、カメラの自らの重量に起因する力（すなわち、重力によって）、又は何らかの他の要因によって引き起こされる場合がある。これらの変化によって、カメラキャリブレーション情報又は他のキャリブレーション情報が古くなる場合があり、このカメラキャリブレーション情報又は他のキャリブレーション情報を使用して、後の時点においてロボットアーム又はロボットの他の構成要素を位置決めする結果として、誤差が生じる恐れがある。言い換えると、カメラに関連付けられる特性が経時的に変化しているが、そのような変化を反映するようにカメラキャリブレーション情報が更新されない場合には、ロボットは、古くなったか、又は別の事情で不正確なカメラキャリブレーション情報に基づいて動作する場合があり、それにより、ロボットの動作に望ましくない誤差を引き起こす恐れがある。カメラの１つ以上の特性に変化が生じ得る可能性に対処するために、ロボット制御システムが、カメラキャリブレーションからのカメラキャリブレーション情報が、もはや十分に正確ではないとき（又は、より一般的に、キャリブレーション操作からのキャリブレーション情報が、もはや十分に正確ではないとき）を検出する、検証を自動的に実行することができる。そのような条件を検出することにより、カメラの特性における変化、又はロボット操作システムのいくつかの他の要素に関する指標を提供し得る。その検証が、キャリブレーション情報がもはや十分に正確でないことを検出する場合、ロボット制御システムは、キャリブレーション操作を実行して、カメラ又はロボット操作システムの別の要素のより最新の単数又は複数の特性を反映することができる、更新されたキャリブレーション情報を判断することができる。更新されたキャリブレーション情報を使用して、ロボットアームの配置、又はロボットの動作の何らかの他の態様を制御することができる。したがって、キャリブレーション情報の自動検証及び／又はキャリブレーション情報の更新を実行して、カメラ又はロボット操作システムの任意の他の要素と関連付けられる１つ以上の特性についての正確な情報に基づいて、ロボットが動作することを確実にする。
【００１１】
本明細書の実施形態の一態様は、カメラによって取り込まれた参照画像とカメラによって取り込まれた検証画像とを比較することによって、カメラに関するキャリブレーション情報を検証することに関する。場合によっては、参照画像は、物体が早期の時点において特定の位置にあるときに取り込まれた物体の画像とすることができ、検証画像は、同じ位置において後の時点において取り込まれたその物体の画像とすることができる。検証は、偏差が或る特定の閾値を超過するか否か等の、参照画像と検証画像との間の偏差が大きすぎるか否かを判断することができる。いくつかの実施態様において、物体は検証記号とすることができる。より具体的には、ロボットアーム又はロボットの他の構成要素が、キャリブレーション情報を検証するために使用される検証記号を有することができる。参照画像及び検証画像はいずれも、検証記号を取り込むか、又は別の方法で含むことができ、ロボット制御システムは、参照画像内の検証記号の外観を検証画像内の検証記号の外観と比較することによって２つの画像を比較することができる。例えば、ロボット制御システムが、特定の時点においてキャリブレーション情報を生成するキャリブレーション操作を実行した後に、ロボット制御システムは、検証記号をカメラの視野（カメラのカメラ視野とも呼ばれる）内の１組の所定の箇所まで動かすように、ロボットアームを（例えば、動作コマンドを介して）制御することができ、これらの箇所は、検証のための１組の参照箇所として使用することができる。カメラは、１組の参照箇所において、検証記号のそれぞれの参照画像を取り込むことができる。場合によっては、参照画像は、キャリブレーション操作が実行された直後に取り込むことができる。ロボットアームの動作、又はより具体的には、ロボットアームを動作させるために使用される動作コマンドは、実行されたばかりのキャリブレーション操作からのキャリブレーション情報に基づくことができるか、又はキャリブレーション情報から独立していることができる。場合によっては、参照画像は、ロボットがロボット操作（ｒｏｂｏｔ  ｏｐｅｒａｔｉｏｎ）を開始する前に取り込むことができる。参照画像が取り込まれた後に、ロボットは、作業を実行するためにロボット操作を開始する準備ができたと見なすことができ、ロボット制御システムは、例えば、カメラによって次に取り込まれる画像に基づいて、ロボットアームの位置決めを制御することができる。
【００１２】
上記で言及されたように、参照画像は、次に取り込まれる検証画像と比較することができる。一実施形態において、検証画像は、ロボット制御システムによって検出される１つ以上の休止期間中に取り込むことができる。より具体的には、ロボット操作が開始すると、ロボットはロボット作業（ｒｏｂｏｔ  ｔａｓｋ）を実行し始めることができる（例えば、荷物又は他の物体との相互作用による）。ロボットがロボット操作を実行しているとき、ロボット制御システムは、ロボットに関する１つ以上の休止期間を検出することができる。場合によっては、休止期間は、ロボット操作中にロボットがロボット作業を実行していない期間とすることができる。場合によっては、ロボット制御システムは、ロボットが相互作用する必要がある物体を検出するか、又は別の方法で予測するのに基づいて、ロボット操作をスケジューリングすることができ、ロボットが相互作用する必要がある物体が存在しないことを検出するか、又は別の方法で予測するのに基づいて、休止期間を検出することができる。
【００１３】
休止期間（複数の場合もある）中に、ロボット制御システムは、ロボットアーム又はロボットの他の構成要素を（例えば、動作コマンドを介して）参照箇所まで動かし、各参照箇所において、それぞれの検証画像を（例えば、カメラコマンドを介して）取り込むように制御することができる。ロボットが、その上に配置される検証記号を有する場合、ロボット制御システムは、より具体的には、検証記号を参照箇所まで動かし、検証画像を取り込むようにロボットアームを制御することができる。その後、ロボット制御システムは、それぞれの参照箇所においてそれぞれの検証画像が対応する参照画像からどれだけ外れるかを判断することができる。場合によっては、検証画像とそれぞれの参照画像との間の偏差は、偏差パラメーターとして表すことができる。偏差パラメーターの値（偏差パラメーター値とも呼ばれる）が偏差パラメーターに関して規定された閾値（規定された偏差閾値と呼ばれる場合もある）を超過する場合には、ロボット制御システムは、さらなるキャリブレーション操作（例えば、さらなるカメラキャリブレーション）をさらに実行して、カメラに関する更新されたキャリブレーション情報（例えば、更新されたカメラキャリブレーション情報）を判断することができる。偏差パラメーターの値が規定された偏差閾値を超過するとき、この条件は、以前に生成されたキャリブレーション情報を使用すると、結果としてロボット操作に望ましくない量の誤差をもたらす恐れがあることを示し得る。したがって、場合によっては、さらなるキャリブレーション操作が実行される間、ロボット操作は中断又は停止される場合がある（中断は、別の休止期間と見なされてもよい）。さらなるキャリブレーション操作が完了した後に、新たな１組の参照画像を取り込むことができ、更新されたキャリブレーション情報を用いてロボット操作を継続することができる。後続の休止期間（複数の場合もある）中に、新たな１組の検証画像を取り込むことができ、ロボット制御システムは、新たな１組の参照画像を新たな１組の検証画像と比較することによって、さらなるキャリブレーション操作の検証を実行することができる。
【００１４】
上記で言及されたように、偏差パラメーターの値が規定された偏差閾値を超過する場合、ロボット制御システムは、さらなるキャリブレーション操作を実行することができる。偏差パラメーターの値が偏差閾値を超過しない場合には、ロボット制御システムがさらなるキャリブレーション操作を実行することなく、休止期間後にロボット操作を継続することができる。このシナリオにおいて、カメラは、後続の休止期間（複数の場合もある）中にそれぞれの参照箇所において新たな１組の検証画像を取り込むことができる。新たな１組の検証画像が取り込まれると、ロボット制御システムは、それぞれの参照箇所において新たな１組の検証画像がそれぞれの参照画像からどれだけ外れるかを判断することによって、キャリブレーション情報の検証を再び実行することができる。
【００１５】
上記で言及されたように、ロボットアームは、その上に配置される、リングパターン等の検証記号を有することができ、検証記号は、参照画像及び検証画像によって取り込まれる場合があるか、又は別の方法でそれらの画像内に含まれる場合がある。一実施形態において、ロボット制御システムは、参照画像内に検証記号が現れるそれぞれの位置に基づいて、かつ検証画像内に検証記号が現れるそれぞれの位置に基づいて、参照画像とそれぞれの検証画像との間の偏差を特定することができる。例えば、ロボット制御システムは、参照箇所ごとに参照画像座標を特定することができる。特定の箇所に関する参照画像座標は、検証記号がその参照箇所に配置されたときに取り込まれた参照画像内に検証記号が現れる座標とすることができる。より具体的には、参照画像座標は特定の参照箇所に関連付けることができ、その参照箇所に検証記号が配置されたときにカメラによって取り込まれた参照画像内に検証記号が現れる画像座標を指すことができる。上記の例において、画像座標は、ピクセル座標等の、画像内の座標を指す場合がある。ロボット制御システムが、その後の時点において、特定の参照箇所に検証記号を続いて配置し、対応する検証画像を取得すると、ロボット制御システムは、検証画像座標を判断することができる。また、検証画像座標も参照箇所に関連付けることができ、検証記号が参照箇所に配置されたときにカメラによって取り込まれた検証画像内に検証記号が現れる画像座標（例えば、ピクセル座標）を指すことができる。ロボット制御システムは、特定の参照箇所に関連付けられる参照画像座標を、同じ参照箇所に関連付けられる検証画像座標と比較することができる。この比較は、検証画像及び参照画像が取り込まれた参照箇所ごとに行うことができる。
【００１６】
一例において、参照画像内に検証記号が現れる参照画像座標は、参照画像内の検証記号の中心の座標とすることができる（参照画像内の検証記号の中心座標とも呼ばれる）。同様に、検証画像内に検証記号が現れる検証画像座標は、検証画像内の検証記号の中心の座標とすることができる（検証画像内の検証記号の中心座標とも呼ばれる）。対応する検証画像が取り込まれたときにロボットアーム及び／又は検証記号が位置した参照箇所ごとに、ロボット制御システムは、参照箇所に関連付けられる参照画像座標と、同じ参照箇所に関連付けられる検証画像座標との間の偏差を特定することができる。ロボットアーム及び／又は検証記号が複数の参照箇所に配置されてきた場合には、ロボット制御システムは、複数の参照箇所に関して、それぞれの参照画像座標とそれぞれの検証画像座標との間のそれぞれの偏差量を特定することができる。ロボット制御システムはさらに、参照箇所ごとの参照画像座標とそれぞれの検証画像座標との間のそれぞれの偏差量に基づいて、偏差パラメーターの値を特定することができる。
【００１７】
一例において、検証記号内の複数の形状のそれぞれの中心が同じ、又は実質的に同じ位置にあるように、検証記号は互いに同心である複数の形状を含むことができる。例えば、検証記号は、２つ以上の同心円を含むリングパターンとすることができる。場合によっては、検証記号の参照画像座標が参照画像内の検証記号の中心座標である場合には、ロボット制御システムは、参照画像内の複数の形状のそれぞれの中心座標に基づいて、検証記号の中心座標を特定することができ、特定の形状の中心座標は、その形状の中心の座標である。検証記号がリングパターンである場合には、参照画像内のリングパターンを形成する第１の円の中心座標と、リングパターンを形成する第２の円の中心座標との平均として、参照画像内のリングパターンの中心座標を特定することができる。同様に、検証画像内の検証記号の中心座標は、検証画像内の検証記号を形成する複数の形状のそれぞれの中心座標に基づいて特定することができる。場合によっては、複数の形状を用いて、検証記号を形成することにより、検証の精度を改善することができる。例えば、１つの画像内の複数の形状のそれぞれの中心座標を用いて、検証記号の中心座標を特定することにより、画像ノイズに対する検証のロバストネスを改善することができる。より具体的には、検証記号の画像が画像ノイズを含む場合には、画像ノイズによって、ロボット制御システムが検証記号の特定の形状の中心座標を検出する精度が低下する場合がある。しかしながら、その形状の中心座標が別の形状の中心座標と平均され、検証記号の中心座標が特定される場合には、平均した中心座標は、画像ノイズの影響を低減することができる。結果として、検証記号の中心座標を特定する際の精度を改善することができる。
【００１８】
一例において、検証記号はそれぞれ色が異なる複数の領域を有することができ、複数の領域のそれぞれの面積が、識別できる規定された比を有することができる。例えば、検証記号は、第１の色（例えば、黒）を有する第１の領域と、第２の色（例えば、白）を有する第２の領域とを有することができ、第１の領域の面積と第２の領域の面積との比が規定されるか、又は別の方法で既知である。識別できる比は、画像がキャリブレーションパターンのドット等の他の特徴を取り込むか、又は別の方法で含む場合には特に、画像内の検証記号を識別するのを容易にすることができる。例えば、検証記号を動かしているロボットアームが、ロボットアーム上に配置されるキャリブレーションパターンを有する場合もある。ロボット制御システムは、その比を用いて、検証記号と、キャリブレーションパターンのドットとを区別することができる。より具体的には、検証記号の複数の領域の面積の比が識別できる比として規定されるので、ロボット制御システムは、規定された比に基づいて、画像内の検証記号を識別することができる。画像内に現れる検証記号の識別中に、ロボット制御システムは、規定された比に基づいて、検証記号と、キャリブレーションパターン又は他の特徴とを区別することができる。場合によっては、検証記号は、それぞれ異なる色の複数の領域を有し、複数の領域のそれぞれの面積間に規定された比を有する画像の部分として、その画像内で識別することができる。ロボット制御システム又は他のシステム若しくはデバイスが、画像の特定の部分が、それぞれ色が異なる複数の領域を有しないと判断する場合には、又は複数の領域のそれぞれの面積が規定された比とは異なる比を有すると判断する場合には、ロボット制御システムは、画像の部分が検証記号でないと判断することができる。
【００１９】
一例において、ロボット制御システムは、ロボットの周囲の温度に基づいて、検証を実行することができる。例えば、ロボット制御システムは、温度に基づいて、規定された偏差閾値を調整する（すなわち、偏差閾値に関する新たな値を規定する）ことができる。例えば、或る材料が温度の影響を受けやすい場合があり、及び／又は温度に応じて膨張／収縮する場合があるので、温度はカメラ内、及び／又はロボット内の種々の部品に影響を及ぼす場合がある。温度の変化によって、カメラの固有パラメーター（複数の場合もある）が変化する場合があり、及び／又はカメラとその外部環境との間の関係が変化する場合がある。一実施形態において、偏差閾値は、温度が規定範囲外にあるときに第１の値を有するように設定することができ、一方、偏差閾値は、温度が規定範囲内にあるときに、第１の値より低い第２の値を有するように設定することができる。例えば、温度が規定された正常動作温度範囲内（例えば、室温の１０度以内に）あるとき、偏差閾値は、第１の値とすることができる。温度が正常動作温度範囲外にあるとき、偏差閾値は、第１の値より低い第２の値を有することができる。正常動作温度範囲外の温度では、カメラに、又はカメラと外部環境との関係に変化が生じる可能性が高くなる場合があり、それゆえ、以前に生成されたカメラキャリブレーション情報又は任意の他のキャリブレーション情報でロボットを動作させる際に誤差が生じる可能性が高くなる場合があるので、温度が正常動作範囲外にあるときに、さらなるキャリブレーション操作をより容易にトリガーするために、第２の値は第１の値より低くすることができる。
【００２０】
一実施形態において、キャリブレーション情報の検証は、単一の参照箇所にのみ頼る場合がある。代替的に、キャリブレーション情報の検証は、複数の参照箇所に頼ることができる。参照箇所は、カメラ視野内の任意の位置とすることができるか、又は特定の規定された位置とすることができる。例えば、参照箇所は、カメラに対して凹形である少なくとも１つの仮想球の表面上の位置として規定することができる。このシナリオにおける各参照箇所において、検証記号が、カメラに面するときに少なくとも１つの仮想球の表面に対して接線方向に位置決めされるように、検証記号を位置決めするようにロボットアームを制御することができる。この位置決めによれば、検証記号をカメラによって真正面から、より良好に撮影できるか、又は別の方法で取り込めるようになる場合がある（検証記号がカメラの真正面を向く）ので、検証記号の画像が、検証記号の斜視図ではなく、平面図に近くなる。例えば、検証記号がリングパターンである場合には、リングパターンを仮想球の表面に対して接線方向に位置決めすることによって、結果として生じるリングパターン画像が、楕円形に見えるのではなく、依然として円形に見えるようにすることができる。結果として生じる画像は、（リングパターンが画像内で楕円形に見えるシナリオに対して）少ない射影ひずみを示す場合があるか、又は全く射影ひずみを示さない場合がある。射影ひずみがないことは、リングパターンの中心座標の正確な特定を助長することができる。場合によっては、参照箇所は、カメラに対して全て凹形である複数の仮想球の中に分割することができる。複数の仮想球は共通の中心を共有することができ、異なるサイズとすることができ、それにより、各仮想球は、カメラからそれぞれ異なる距離を有する球面を有する。場合によっては、カメラは、全ての仮想球のための共通の中心とすることができる。
【００２１】
図１Ａは、自動カメラキャリブレーション及びカメラキャリブレーションの自動検証を実行するためのロボット操作システム１００（システム１００とも呼ばれる）のブロック図を例示する。以下の実施例のいくつかは、自動カメラキャリブレーションを実行することと、自動カメラキャリブレーションから判断されるカメラキャリブレーション情報を検証することと、を論じているが、これらの実施例は、より一般的には、任意のタイプの自動キャリブレーション操作、及び自動キャリブレーション操作から判断された任意のタイプのキャリブレーション情報を検証することに適用され得る。ロボット運用システム１００は、ロボット１５０と、ロボット制御システム１１０（ロボットコントローラーとも呼ばれる）と、カメラ１７０とを含む。一実施形態において、システム１００は倉庫内に、製造工場内に、又は他の施設内に位置することができる。ロボット制御システム１１０は、後にさらに詳細に論じられるカメラキャリブレーションを実行し、カメラキャリブレーション情報を特定するように構成することができ、カメラキャリブレーション情報は、倉庫内で荷物を持ち上げる等のロボット操作を実行するようにロボット１５０を制御するために後に使用される。ロボット制御システム１１０は、同じく後にさらに詳細に論じられるカメラキャリブレーション検証を実行し、カメラキャリブレーション情報が依然として十分に正確であるか否かを検証するようにさらに構成することができる。場合によっては、ロボット制御システム１１０は、カメラキャリブレーションを実行し、カメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット１５０を制御するように構成される。場合によっては、ロボット制御システム１１０は、ロボット１５０及びカメラ１７０と通信する単一のデバイス（例えば、単一のコンソール又は単一のコンピューター）を形成することができる。場合によっては、ロボット制御システム１１０は複数のデバイスを含むことができる。
【００２２】
場合によっては、ロボット制御システム１１０は、カメラキャリブレーション及び／又はカメラキャリブレーションの検証を実行する専用システムとすることができ、最新のカメラキャリブレーション情報を別の制御システム（別のコントローラーとも呼ばれる、図示せず）に通信することができ、その後、別の制御システムが、最新のカメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット１５０を制御する。ロボット１５０は、カメラ１７０によって取り込まれた画像に基づいて、かつカメラキャリブレーション情報に基づいて位置決めすることができる。より具体的には、ロボット制御システム１１０は、一実施形態において、画像に基づいて、かつカメラキャリブレーション情報に基づいて、動作コマンドを生成し、動作コマンドをロボット１５０に通信し、そのロボットアームの動作を制御するように構成することができる。場合によっては、ロボット制御システム１１０は、ロボット操作時の休止期間中にカメラキャリブレーションの検証を実行するように構成される。場合によっては、ロボット制御システム１１０は、ロボット１５０でロボット操作を実行している間に検証を実行するように構成される。
【００２３】
一実施形態において、ロボット制御システム１１０は、有線通信又はワイヤレス通信を介して、ロボット１５０及びカメラ１７０と通信するように構成することができる。例えば、ロボット制御システム１１０は、ＲＳ−２３２インターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、イーサネット（登録商標）インターフェース、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース、ＩＥＥＥ８０２．１１インターフェース又はそれらの任意の組み合わせを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。一実施形態において、ロボット制御システム１１０は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス等のローカルコンピューターバスを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。
【００２４】
一実施形態において、ロボット制御システム１１０は、ロボット１５０とは別に存在することができ、上記で論じられたワイヤレス接続又は有線接続を介して、ロボットと通信することができる。例えば、ロボット制御システム１１０は、有線接続又はワイヤレス接続を介してロボット１５０及びカメラ１７０と通信するように構成されるスタンドアローンコンピューターとすることができる。一実施形態において、ロボット制御システム１１０は、ロボット１５０と一体の構成要素とすることができ、上記で論じられたローカルコンピューターバスを介して、ロボット１５０の他の構成要素と通信することができる。場合によっては、ロボット制御システム１１０は、ロボット１５０のみを制御する専用制御システム（専用コントローラーとも呼ばれる）とすることができる。他の場合には、ロボット制御システム１１０は、ロボット１５０を含む、複数のロボットを制御するように構成することができる。一実施形態において、ロボット制御システム１１０、ロボット１５０及びカメラ１７０は同じ施設（例えば、倉庫）内に位置する。一実施形態において、ロボット制御システム１１０は、ロボット１５０及びカメラ１７０から遠隔とすることができ、ネットワーク通信（例えば、ローカルエリアネットワーク（ＬＡＮ）接続）を介して、ロボット１５０及びカメラ１７０と通信するように構成することができる。
【００２５】
一実施形態において、ロボット制御システム１１０は、カメラ１７０から、ロボット１５０上（例えば、ロボットのロボットアーム上）に配置されるキャリブレーションパターン１６０及び／又は検証記号１６５の画像を読み出す（ｒｅｔｒｉｅｖｅ）か、又は別の方法で受信するように構成することができる。場合によっては、ロボット制御システム１１０は、そのような画像を取り込むように、カメラ１７０を制御するように構成することができる。例えば、ロボット制御システム１１０は、カメラ１７０にカメラ１７０の視野（カメラ視野とも呼ばれる）の画像を取り込ませるカメラコマンドを生成し、有線接続又はワイヤレス接続を介して、カメラコマンドをカメラ１７０に通信するように構成することができる。同じコマンドによって、カメラ１７０に、ロボット制御システム１１０、又はより一般的には、ロボット制御システム１１０によってアクセス可能な記憶デバイスに画像を通信させることもできる。代替的には、ロボット制御システム１１０は、カメラコマンドを受信すると、カメラ１７０が取り込んだ画像（複数の場合もある）をロボット制御システム１１０に通信する別のカメラコマンドを生成することができる。一実施形態において、カメラ１７０は、ロボット制御システム１１０からのカメラコマンドを必要とすることなく、定期的に、又は規定されたトリガー条件に応答して、自らのカメラ視野内の画像を自動的に取り込むことができる。そのような実施形態において、カメラ１７０は、ロボット制御システム１１０からのカメラコマンドを用いることなく、ロボット制御システム１１０に、又はより一般的にはロボット制御システム１１０によってアクセス可能な記憶デバイスに画像を自動的に通信するように構成することもできる。
【００２６】
一実施形態において、ロボット制御システム１１０は、ロボット制御システム１１０によって生成され、有線接続又はワイヤレス接続を介してロボット１５０に通信される動作コマンドを介して、ロボット１５０の動作を制御するように構成することができる。ロボット１５０は、ロボット１５０上にキャリブレーションパターン１６０及び検証記号１６５の一方又は両方を有するように構成することができる。例えば、図１Ｂは、図１Ａのキャリブレーションパターン１６０が存在しない場合の、ロボット１５０上に検証記号１６５が配置されるロボット操作システム１００Ａを図示する。一例において、検証記号１６５は、ロボット１５０の一部とすることができ、ロボット１５０上に永久に配置することができる。例えば、検証記号１６５は、ロボット１５０上に永久に塗布することができるか、又はロボット１５０に永久に取り付けられるステッカー又はボードの一部とすることができる。別の例において、検証記号１６５は、ロボット１５０に着脱可能である別の構成要素とすることができる。検証記号１６５は、ロボット１５０上に永久に配置することができるか、又はロボット１５０に着脱可能である別の構成要素とすることができる。
【００２７】
一実施形態において、ロボット１５０を制御するためにシステム１００において使用される唯一の画像が、カメラ１７０によって取り込まれた画像である場合がある。別の実施形態において、システム１００は、複数のカメラを含むことができ、ロボット１５０は、複数のカメラからの画像によって制御することができる。
【００２８】
図１Ｂは、ロボット制御システム１１０がユーザーインターフェースデバイス１８０と通信する実施形態をさらに例示する。ユーザーインターフェースデバイス１８０は、ロボット１５０が位置する倉庫にいる従業員等の、ロボット１５０の運用者とのインターフェースを構成することができる。ユーザーインターフェースデバイス１８０は、ロボット１５０の運用に関連する情報を表示するユーザーインターフェースを提供する、例えば、タブレットコンピューター又はデスクトップコンピューターを含むことができる。上記で言及されたように、ロボット制御システム１１０は、偏差パラメーター値が規定された偏差閾値を超過する時点を検出するように構成することができる。一実施形態において、ユーザーインターフェースデバイス１８０は、偏差パラメーター値が規定された偏差閾値を超過することを運用者に通知する警報又は他の警告を与えることができる。
【００２９】
図１Ｃは、ロボット制御システム１１０のブロック図を図示する。ブロック図に示されるように、ロボット制御システム１１０は、制御回路１１１と、通信インターフェース１１３と、非一時的コンピューター可読媒体１１５（例えば、メモリ）とを含む。一実施形態において、制御回路１１１は１つ以上のプロセッサ、プログラマブル論理回路（ＰＬＣ）又はプログラマブル論理アレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又は任意の他の制御回路を含むことができる。
【００３０】
一実施形態において、通信インターフェース１１３は、図１Ａ又は図１Ｂのカメラ１７０及び図１Ａ又は図１Ｂのロボット１５０と通信するように構成される１つ以上の構成要素を含むことができる。例えば、通信インターフェース１１３は、有線プロトコル又はワイヤレスプロトコルを介して通信を実行するように構成される通信回路を含むことができる。一例として、通信回路は、ＲＳ−２３２ポートコントローラー、ＵＳＢコントローラー、イーサネットコントローラー、Ｂｌｕｅｔｏｏｔｈ（登録商標）コントローラー、ＰＣＩバスコントローラー、任意の他の通信回路、又はそれらの組み合わせを含むことができる。一実施形態において、制御回路１１１は、動作コマンド（例えば、モーター動作コマンド）を生成し、動作コマンドを通信インターフェース１１３に出力するように構成することができる。この実施形態において、通信インターフェース１１３は、ロボット１５０のロボットアーム又は他の構成要素の動作を制御するために、動作コマンドをロボット１５０に通信するように構成することができる。一実施形態において、制御回路１１１は、カメラコマンドを生成し、カメラコマンド（例えば、画像取り込みコマンド）を通信インターフェース１１３に出力するように構成することができる。この実施形態において、通信インターフェース１１３は、カメラの視野内の物体の画像を撮影するか、又は別の方法で取り込むようにカメラ１７０を制御するために、カメラコマンドをカメラ１７０に通信するように構成することができる。一実施形態において、通信インターフェース１１３は、カメラ１７０から画像又は他のデータを受信するように構成することができ、制御回路１１１は、通信インターフェース１１３から画像を受信するように構成することができる。
【００３１】
一実施形態において、非一時的コンピューター可読媒体１１５はコンピューターメモリを含むことができる。コンピューターメモリは、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、半導体集積メモリ（ｓｏｌｉｄ  ｓｔａｔｅ  ｉｎｔｅｇｒａｔｅｄ  ｍｅｍｏｒｙ）、及び／又はハードディスクドライブ（ＨＤＤ）を含むことができる。場合によっては、カメラキャリブレーションは、非一時的コンピューター可読媒体１１５上に記憶されるコンピューター実行可能命令（例えば、コンピューターコード）を通して実施することができる。そのような場合に、制御回路１１１は、コンピューター実行可能命令を実行し、カメラキャリブレーションの検証（例えば、図４Ａ、図４Ｂ、及び図９に例示されるステップ）を実行するように構成される１つ以上のプロセッサを含むことができる。
【００３２】
図１Ｄは、１つ以上のレンズ１７１と、イメージセンサー１７３と、通信インターフェース１７５と、を含むカメラ１７０のブロック図を図示する。通信インターフェース１７５は、図１Ａ、図１Ｂ、又は図１Ｃのロボット制御システム１１０と通信するように構成することができ、ロボット制御システム１１０の図１Ｃの通信インターフェース１１３に類似とすることができる。一実施形態において、１つ以上のレンズ１７１は、カメラ１７０の外部から到来している光をイメージセンサー１７３上に合焦することができる。一実施形態において、イメージセンサー１７３は、それぞれのピクセル強度値を介して画像を表すように構成されるピクセルのアレイを含むことができる。イメージセンサー１７３は、電荷結合素子（ＣＣＤ）センサー、相補型金属酸化膜半導体（ＣＭＯＳ）センサー、量子イメージセンサー（ＱＩＳ：ｑｕａｎｔａ  ｉｍａｇｅ  ｓｅｎｓｏｒ）又は任意の他のイメージセンサーを含むことができる。
【００３３】
上記で言及されたように、カメラによって取り込まれた画像に基づいて、ロボットの制御を助長するために、カメラキャリブレーションを実行することができる。例えば、図２は、ロボット操作システム２００（システム２００とも呼ばれる）を図示しており、そのシステムでは、画像を使用して、倉庫内の物体２９２を持ち上げる操作等の、ロボット操作を実行するようにロボット２５０を制御する。より具体的には、システム２００は、図１Ａのシステム１００の一実施形態とすることができ、カメラ２７０、ロボット２５０、及びロボット制御システム１１０を含む。カメラ２７０は、図１Ａ、図１Ｂ、又は図１Ｄのカメラ１７０の一実施形態とすることができ、ロボット２５０は、図１Ａ、又は図１Ｂのロボット１５０の一実施形態とすることができる。カメラ２７０は、倉庫内のコンベヤベルト２９３上に配置される物体２９２（例えば、出荷するための荷物）の画像を取り込むように構成することができ、ロボット制御システム１１０は、物体２９２を持ち上げるように、ロボット２５０を制御するように構成することができる。コンベヤベルト２９３上に１つ以上の物体が存在するとき、ロボット制御システム１１０は、物体を持ち上げるロボット２５０の動作をスケジューリングするように構成することができる。ロボット制御システム１１０は、場合によっては、コンベヤベルト２９３上に物体が存在しない時点、又はコンベヤベルト２９３上の、ロボット２５０の届く範囲内に物体が存在しない時点を検出することによって、ロボット操作のための休止期間を検出するように構成することができる。
【００３４】
図２の実施形態において、ロボット２５０は、ベース２５２と、ベース２５２に対して動作可能であるロボットアームと、を有することができる。より具体的には、ロボットアームは複数のリンク２５４Ａ〜２５４Ｅと、リンク２５４Ｅに取り付けられるロボットハンド２５５とを備えることができる。複数のリンク２５４Ａ〜２５４Ｅは互いに対して回動可能とすることができ、及び／又は互いに対して直線的に移動可能である直動リンク（ｐｒｉｓｍａｔｉｃ  ｌｉｎｋｓ）とすることができる。図２は、物体を持ち上げるために使用されるロボット２５０に関わるため、ロボットハンド２５５は、物体２９２を掴むために使用される把持部２５５Ａ及び２５５Ｂを含むことができる。一実施形態において、ロボット制御システム１１０は、リンク２５４Ａ〜２５４Ｅのうちの１つ以上を回動させる動作コマンドを通信するように構成することができる。動作コマンドは、モーター動作コマンド等のローレベルコマンド、又はハイレベルコマンドとすることができる。ロボット制御システム１１０からの動作コマンドがハイレベルコマンドである場合には、ロボット１５０は、ハイレベルコマンドをローレベルコマンドに変換するように構成することができる。
【００３５】
一実施形態において、カメラキャリブレーションから特定されるカメラキャリブレーション情報は、カメラ２７０とロボット２５０との間の関係、又はより具体的には、カメラ２７０と、ロボット２５０のベース２５２に対して静止しているワールド点（ｗｏｒｌｄ  ｐｏｉｎｔ）２９４との間の関係を記述する。ワールド点２９４は、ロボット２５０が位置する世界又は他の環境を表すことができ、ベース２５２に対して静止している任意の仮想点（ｉｍａｇｉｎａｒｙ  ｐｏｉｎｔ）とすることができる。言い換えると、カメラキャリブレーション情報は、カメラ２７０とワールド点２９４との間の関係を記述する情報を含むことができる。一実施形態において、その関係は、ワールド点２９４に対するカメラ２７０の位置と、ロボット２５０のための参照方向に対するカメラ２７０の向きとを指すことができる。カメラ２７０とワールド点２９４との間の上記の関係はカメラ−ワールド関係と呼ばれる場合があり、カメラ２７０とロボット２５０との間の関係を表すために使用することができる。場合によっては、カメラ−ワールド関係を用いて、カメラ２７０と物体２９２との間の関係（カメラ−物体関係とも呼ばれる）、及び物体２９２とワールド点２９４との間の関係（物体−ワールド関係とも呼ばれる）を特定することができる。カメラ−物体関係及び物体−ワールド関係を用いて、物体２９２を持ち上げるようにロボット２５０を制御することができる。
【００３６】
一実施形態において、カメラキャリブレーション情報は、カメラ２７０の固有パラメーターを記述することができ、固有パラメーターは、その値がカメラ２７０の位置及び向きから独立している任意のパラメーターとすることができる。固有パラメーターは、カメラの焦点距離、カメラのイメージセンサーのサイズ、又はカメラ２７０によって導入されるレンズひずみの影響等の、カメラ２７０の特性を特徴付けることができる。
【００３７】
ロボット３５０の一実施例の詳細な構造を示す一実施例が図３に図示され、図３は、カメラ３７０及びロボット３５０と通信するロボット制御システム１１０を含むロボット操作システム３００を図示する。カメラ３７０は、図１Ａ、図１Ｂ、図１Ｄ、又は図２のそれぞれカメラ１７０／２７０の一実施形態とすることができ、ロボット３５０は、図１Ａ、図１Ｂ、又は図２のそれぞれロボット１５０／２５０の一実施形態とすることができる。カメラ３７０は、カメラ視野３３０内の画像を取り込むことができる場合がある。ロボット３５０は、ベース３５２と、ベース３５２に対して移動可能であるロボットアームとを含むことができる。ロボットアームは、リンク３５４Ａ〜３５４Ｅ等の１つ以上のリンクと、ロボットハンド３５５とを含む。一実施形態において、リンク３５４Ａ〜３５４Ｅは互いに回動可能に取り付けることができる。例えば、リンク３５４Ａは、ジョイント３５６Ａを介して、ロボットベース３５２に回動可能に取り付けることができる。残りのリンク３５４Ｂ〜３５４Ｅは、ジョイント３５６Ｂ〜３５６Ｅを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース３５２を用いて、ロボット３５０を、例えば、取り付けフレーム又は取り付け面（例えば、倉庫の床）に取り付けることができる。一実施形態において、ロボット３５０は、リンク３５４Ａ〜３５４Ｅを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。例えば、モーターのうちの１つは、図３において破線矢印で示されるように、ジョイント３５６Ａ及びベース３０２に対して第１のリンク３５４Ａを回動させるように構成することができる。同様に、複数のモーターのうちの他のモーターも、リンク３５４Ｂ〜３５４Ｅを回動させるように構成することができる。複数のモーターはロボット制御システム１１０によって制御することができる。図３は、第５のリンク３５４Ｅ上に固定されるように配置されるロボットハンド３５５をさらに図示する。ロボットハンド３５５は、その上にキャリブレーションパターン３２０を有することができ、ロボット制御システム１１０がカメラ３７０を介してキャリブレーションパターン３２０の画像を取り込み、キャリブレーションパターン３２０の取り込まれた画像に基づいて、カメラキャリブレーションを実行できるようにする。例えば、ロボット制御システム１１０は、キャリブレーションパターン３２０の画像（キャリブレーション画像とも呼ばれる）を取り込むためにカメラ３７０が使用されているときに、キャリブレーションパターン３２０がカメラ視野３３０内に存在することができ、カメラ３７０から視認可能であるように、ロボットアームを動かすことができる。カメラキャリブレーションが実行された後に、ロボットハンド３５５を取り外し、後にさらに詳細に論じられるように、その上に配置される検証記号を有するロボットハンド等の別のロボットハンドと交換することができる。
【００３８】
上記で言及されたように、一実施形態によれば、キャリブレーション検証は、参照画像内に検証記号が現れる参照画像座標と、検証画像内に検証記号が現れる検証画像座標とを比較することを含むことができる。その比較は、検証画像座標と参照画像座標との間の偏差を判断することができ、その偏差を使用して、さらなるキャリブレーション操作を実行すべきかどうかを判断することができる。検証画像は、ロボット操作の休止期間中に取り込むことができる。図４Ａ及び図４Ｂは、一実施形態による、カメラキャリブレーションの検証のための方法４００を例示するフロー図を図示する。以下の実施形態のいくつかは、カメラキャリブレーションから判断されるカメラキャリブレーション情報を検証することを論じているが、方法４００は、ロボット操作システムのために実行される任意のキャリブレーション操作から判断されるキャリブレーション情報をより一般的に検証するために使用され得る。一実施形態において、方法４００は、ロボット制御システム１１０の制御回路１１１によって実行することができる。上記で言及されたように、ロボット制御システム１１０は、図１Ｃの通信インターフェース１１３を含むことができ、通信インターフェースは、図１Ａ又は図１Ｂのロボット１５０、及び図１Ａ、図１Ｂ、又は図１Ｄのカメラ１７０と通信するように構成される。一実施形態において、ロボットは、ベース（例えば、図２のベース２５２、又は図３のベース３５２）と、その上に検証記号が配置されるロボットアーム（例えば、図２又は図３のロボットアーム）と、を有することができ、ロボットアームは、ベースに対して動作可能である。
【００３９】
方法４００が実行される例示的な環境が、図５Ａ及び図５Ｂに図示されており、その図は、カメラ５７０及びロボット５５０と通信するロボット制御システム１１０を各々含む、ロボット操作システム５００／５００Ａを図示する。カメラ５７０は、図１、図２、又は図３のそれぞれカメラ１７０／２７０／３７０の一実施形態とすることができ、ロボット５５０は、図１Ａ、図１Ｂ、図２、又は図３のそれぞれロボット１５０／２５０／３５０の一実施形態とすることができる。ロボット５５０は、ベース５５２と、ベース５５２に対して動作可能であるロボットアーム（図５Ａ及び図５Ｂにおいて５５３と表示される）と、を含むことができる。ロボットアームは、リンク５５４Ａ〜リンク５５４Ｅ等の１つ以上のリンクを含む。リンク５５４Ａ〜５５４Ｅはまた、互いに動作可能に取り付けられたロボットアーム５５３のアーム部分の実施例であってもよい。一実施形態において、リンク５５４Ａ〜５５４Ｅは互いに回動可能に取り付けることができる。例えば、リンク５５４Ａは、ロボットベース５５２に回動可能に取り付けることができる。残りのリンク５５４Ｂ〜５５４Ｅは、複数のジョイントを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース５５２を用いて、ロボット５５２を、例えば、取り付けフレーム又は取り付け面（例えば、倉庫の床）に取り付けることができる。ロボット５５０は、図３のロボット３５０と同じように操作することができる。例えば、ロボット５５０は、互いに対してリンク５５４Ａ〜５５４Ｅを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。ロボットアームは、リンク５５４Ｅに取り付けられるロボットハンドをさらに含むことができる。例えば、図５Ａは、第１のロボットハンド５５５、第２のロボットハンド５５７、及び第３のロボットハンド５５９を図示し、各々第５のリンク５５４Ｅから着脱可能とすることができる。ロボットハンド５５５／５５７／５５９は、コンベヤベルト５７３から物体（例えば、５８２Ａ、５８２Ｂ、５８２Ｃ）を持ち上げるように構成される、例えば、把持部又は吸引デバイスを含むことができる。ロボットハンド５５５／５５７／５５９が第５のリンク５５４Ｅに取り付けられるとき、その取り付けは、混在するように行うことができる。その着脱は手動で、又は自動的に実行することができる。一例において、第５のリンク５５４Ｅは、図５Ａ及び図５Ｂに図示されるように、第１のロボットハンド５５５に取り付けることができ、ロボット制御システム１１０は、第５のリンク５５４Ｅに第１のロボットハンド５５５を解放させて、第５のリンク５５４Ｅを第２のロボットハンド５５７に取り付けるように、ロボット５５０を制御することができる。別の実施形態では、第５のリンク５５４Ｅは、ロボットハンド（例えば、ロボットハンド５５９）に永久に取り付けることができる。
【００４０】
一実施形態において、ロボット５５０は、その上に配置される検証記号５３０を有することができる。場合によっては、検証記号５３０はロボット５５０上に永久に配置することができる。場合によっては、検証記号５３０は、リンク５５４Ａ〜５５４Ｅのうちの１つ等のロボット５５０のロボットアーム上に、又はロボットハンド上に配置することができる。例えば、図５Ａは、第１のロボットハンド５５５及び第３のロボットハンド５５９上に配置される検証記号５３０を図示し、一方、図５Ｂは、リンク５５４Ｅ上に配置される検証記号５３０を図示する。検証記号５３０は、ロボット５５０上に直接塗布することができるか、又はステッカー又は平板等を介して、ロボット５５０に取り付けることができる。図５Ａに図示される実施例において、第２のロボットハンド５５７又は第３のロボットハンド５５９は、各々がその上に配置されるそれぞれキャリブレーションパターン５２０／５２７を有するので、カメラキャリブレーションを実行するために使用されてもよく、一方で、第１のロボットハンド５５５又は第３のロボットハンド５５９は、各々がその上に配置されるそれぞれ検証記号５３０を有するので、カメラキャリブレーションの検証を実行するために使用されてもよい。
【００４１】
図４Ａに戻ると、一実施形態において、方法４００は、ステップ４０１から開始することができ、そのステップでは、制御回路１１１が、第１のカメラキャリブレーションを実行して、カメラ（例えば、図１、図２、図３、又は図５のそれぞれカメラ１７０／２７０／３７０／５７０）と関連付けられるカメラキャリブレーション情報を判断する。より具体的には、カメラキャリブレーション情報は、カメラに関するカメラキャリブレーション値を含むことができる。この実施形態において、制御回路１１１は、キャリブレーションパターンの画像（キャリブレーション画像とも呼ばれる）に基づいて、第１のカメラキャリブレーションを実行することができる。
【００４２】
例えば、第１のキャリブレーションを実行するために、図５Ａのロボット５５０は、キャリブレーションパターン５２０を有する第２のロボットハンド５５７に、又はキャリブレーションパターン５２７を有する第３のロボットハンド５５９に取り付けることができる。図３は、第１のカメラキャリブレーションを実行することができる類似の環境を図示する。このステップ中に、カメラキャリブレーションを実行するためにそのキャリブレーションパターン３２０が使用される第１のロボットハンド５５５を、第５のリンク５５４Ｅから取り外すことができる。第１のカメラキャリブレーションは、ロボット操作を開始する前に実行することができる。例えば、ロボット操作は、第１のロボットハンド５５５がコンベヤベルト上の第１の物体５８２Ａと相互作用する等のロボット作業から開始することができる。第１のカメラキャリブレーション中に、ロボット５５０は第２のロボットハンド５５７を備えることができる。ロボット制御システム１１０は、キャリブレーションパターン５２０をカメラ５７０のカメラ視野５１０内の種々の位置に動かし、そのような位置においてキャリブレーションパターン５２０のそれぞれの画像を取り込むように、動作コマンドを介して、ロボット５５０のロボットアームを制御することができる。ロボット制御システム１１０は、キャリブレーションパターン５２０の取り込まれた画像に基づいて、第１のカメラキャリブレーションを実行し、カメラ５７０に関するカメラキャリブレーション情報を特定することができる。一例において、カメラキャリブレーション情報は、カメラ５７０とロボット５５０との間の関係を記述する情報を含むことができる。一例において、カメラキャリブレーション情報は、カメラ５７０の固有パラメーターを記述することができる。カメラキャリブレーションは、２０１９年３月７日出願の米国特許出願第１６／２９５，９４０号（整理番号ＭＪ００２１ＵＳ１）、発明の名称「ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＡＵＴＯＭＡＴＩＣ  ＣＡＭＥＲＡ  ＣＡＬＩＢＲＡＴＩＯＮ  ＦＯＲ  ＲＯＢＯＴ  ＣＯＮＴＲＯＬ」においてより詳細に論じられており、その内容全体が参照より本明細書に組み込まれる。
【００４３】
図４Ａに戻ると、方法４００は、ステップ４０３をさらに含むことができ、そのステップでは、制御回路１１１が、ロボット制御システム１１０の通信インターフェース１１３に第１の動作コマンドを出力することによって、第１のカメラキャリブレーション中又は後に、検証記号（例えば、図５の５３０）をカメラ（例えば、５７０）のカメラ視野（例えば、５１０）内の１つの箇所に動かすようにロボットアームを制御する。通信インターフェース１１３は、ロボットアームが、第１のカメラキャリブレーション中又は後に、検証記号（例えば、５３０）をカメラ視野（例えば、５１０）内のその位置に動かすために、ロボットに動作コマンドを通信するように構成することができる。また、動作コマンドによって、ロボットアームは、検証記号をカメラ（例えば、５７０）に面するように、又はより一般的には、カメラから視認可能であるように、検証記号を向けることができる。その位置は、第１のカメラキャリブレーションの検証のための１つ以上の参照箇所のうちの１つの参照箇所として使用することができる。例えば、検証プロセスが経時的に検証記号の画像を取得するとき、制御回路１１１は、１つ以上の位置を１つ以上の参照箇所として使用することができるように、検証記号（例えば、５３０）を同じ１つ以上の位置に絶えず位置決めするように、ロボットアームを制御することができる。さらに、ステップ４０５〜４５９に関して後に説明されるように、検証プロセスは、検証記号の後の画像を、第１のカメラキャリブレーションが実行された直後に得られた画像等の、検証記号（例えば、５３０）の１組の早期の画像と比較することができる。後の画像は検証画像として使用することができ、一方、後の画像が比較される画像は、参照画像として使用することができる。
【００４４】
ステップ４０５において、制御回路１１１が、通信インターフェース１１３を介して、カメラ（例えば、１７０／２７０／３７０／５７０）から検証記号（例えば、５３０）の画像を受信する（例えば、読み出す）ことができ、その画像は検証のための参照画像である。画像は、検証記号が参照箇所にあるか、又は参照箇所にあった間に、カメラによって取り込まれている場合がある。一実施形態において、最初に、通信インターフェース１１３がカメラから参照画像を受信することができ、その後、制御回路１１１が、通信インターフェース１１３から参照画像を受信することができる。一実施形態において、ステップ４０５は、制御回路１１１がカメラのためのカメラコマンドを生成することなく実行される。一実施形態において、ステップ４０５は、制御回路１１１がカメラコマンドを生成することと、通信インターフェース１１３を介してカメラにカメラコマンドを通信することとを含むことができる。カメラコマンドは、参照箇所において検証記号の画像を取り込むように、カメラを制御することができる。
【００４５】
図５Ａ〜図６Ｂは、ステップ４０３及びステップ４０５の態様を例示する。図５Ａの実施形態において、第１のカメラキャリブレーションが、例えば、第２のロボットハンド５５７を用いて実行された後に、第２のロボットハンド５５７を、その上に配置される検証記号５３０を有する第３のロボットハンド５５９と交換することができる。この例において、ロボット制御システム１１０は、検証記号５３０をカメラ５７０のカメラ視野５１０内の１つ以上の参照箇所に動かすように、ロボット５５０のロボットアームを（例えば、１つ以上の動作コマンドを介して）制御する。１つ以上の参照箇所は、カメラ視野５１０内の任意の位置を含むことができるか、又は後にさらに詳細に論じられるような、仮想球の表面上に配置される位置等の１組の１つ以上の特定の位置とすることができる。別の例では、図５Ｂの実施形態において、第１のカメラキャリブレーション中又は後に、ロボット制御システム１１０は、検証記号５３０をカメラ視野５１０内の１つ以上の参照箇所に動かすようにロボットアームを制御することができる。この例において、１つ以上の参照箇所は、第１のカメラキャリブレーション中に検証記号５３０が（キャリブレーションパターン５２０とともに）撮影された任意の位置を含むことができるか、又は第１のカメラキャリブレーションが実行された後に検証記号５３０が動かされた１組の１つ以上の特定の位置とすることができる。ロボット制御システム１１０は、第１のカメラキャリブレーションから得られるカメラキャリブレーション情報に基づいて、カメラ５７０からの指示によってこのステップにおいてロボット５５０のロボットアームの動作を制御することができるか、又はそのような指示を用いることなく動作を制御することができる。一実施形態において、参照箇所は、ローカル又はリモート記憶デバイス内に記憶され、読み出すことができる規定された位置とすることができる。参照箇所は、座標（例えば、直交座標）の形で、又はリンク５５４Ａ〜５５４Ｅを回動させるためのモーターコマンドとして、又は何らかの他の態様において記憶することができる。
【００４６】
一実施形態において、ロボットアームが検証記号（例えば、５３０）を動かす１つ以上の参照箇所は、複数の参照箇所を含むことができ、複数の参照箇所のそれぞれが、カメラに対して凹形である仮想球の表面上に配置される位置である。そのような実施形態において、制御回路１１１は、複数の参照箇所の各参照箇所において検証記号が仮想球の表面に対して接線方向に向くように動かすために、ロボットアームを制御するようにさらに構成することができる。例えば、図６Ａ、図６Ｂ、図６Ｃ、及び図６Ｄに例示されるように、ロボット制御システム１１０は、検証記号５３０を参照箇所６１０Ａ〜６１０Ｉに動かすように、ロボット５５０のロボットアームを制御することができ、参照箇所６１０Ａ〜６１０Ｉの各々においてそれぞれの参照画像を取り込むようにカメラ５７０を制御することができる。図６Ａ及び図６Ｂの参照箇所６１０Ａ〜６１０Ｉは、カメラ視野５１０内の複数の仮想球の中で分割することができる。参照箇所６１０Ａ及び６１０Ｂは第１の仮想球６２０の第１の球面６２１上に配置することができ、ここで、第１の球面６２１はカメラ視野５１０内にある。参照箇所６１０Ｃ、６１０Ｄ及び６１０Ｅは第２の仮想球６３０の第２の球面６３１上に配置することができ、ここで、第２の球面６３１はカメラ視野５１０内にある。参照箇所６１０Ｆ、６１０Ｇ、６１０Ｈ及び６１０Ｉは、第３の仮想球６４０の第３の球面６４１上に配置することができ、ここで、第３の球面６４１はカメラ視野５１０内にある。図６Ａ及び図６Ｂに例示されるように、第１の球面６２１、第２の球面６３１、及び第３の球面６４１はそれぞれ、カメラ５７０に対して凹形である。図６Ａ及び図６Ｂの実施例は、３つの球に基づく３つの球面を示すが、参照箇所を配置することができる異なる球面の数は、３つよりも多くすることも、３つよりも少なくすることもできる。一実施形態において、カメラ５７０は、仮想球６２０、６３０、６４０のそれぞれの中心に存在することができる。
【００４７】
一実施形態において、図６Ａ〜図６Ｄに示されるように、検証記号５３０が或る参照箇所に動かされるとき、ロボット制御システム１１０は、検証記号５３０を参照箇所が配置される球面に対して接線方向に位置決めするように、ロボット５５０のロボットアーム５５３を（例えば、動作コマンドを介して）制御することができる。例えば、図６Ａ及び図６Ｂは、参照箇所６１０Ｄにおいて第２の球面６３１に対して接線方向に向いている検証記号５３０を例示し、図６Ｃ及び図６Ｄは、参照箇所６１０Ｃにおいて第２の球面６３１に対して接線方向に向いている検証記号５３０を例示する。より具体的には、検証記号５３０は、平面（例えば、ステッカー）上に配置することができ、検証記号５３０の平面が、図６Ａ及び図６Ｂ内の参照箇所６１０Ｄにおいて第２の球面６３１に対して接線方向に向いていてもよく、図６Ｃ及び図６Ｄ内の参照箇所６１０Ｃにおいて第２の球面６３１に対して接線方向に向いていてもよい。一実施形態において、ロボットアーム５５３は、図６Ａ及び図６Ｂにおいて第１のポーズとすることができ、図６Ｃ及び図６Ｄにおいて第２のポーズとすることができる。ロボットアーム５５３のポーズは、例えば、ロボットアーム５５３のリンク又は他のアーム部分によって形成される形状、又はより一般的には幾何学形状を指し得る。例えば、ロボットアーム５５３のポーズは、ロボットアーム５５３のリンクが、ロボットアーム５５３の先行リンクに対して回動又は並進（例えば、伸長又は後退）した角度又は距離の特定の順列化を指し得る。一例として、図６Ａに図示される第１のポーズは、ロボットアーム５５３の一連のリンクの連続するリンクの間に形成される角度の第１の順列に対応し得るが、図６Ｃに図示される第２のポーズは、ロボットアーム５５３の一連のリンクの連続するリンクの間の角度の第２の順列に対応し得る。かかる例では、検証記号６３０の参照箇所６１０Ｄは、図６Ａに例示されるロボットアーム５５３のための第１のポーズと関連付けられてもよく、一方、検証記号６３０の参照箇所６１０Ｃは、図６Ｃに例示されるように、ロボットアーム５５３のための第２のポーズと関連付けられてもよい。
【００４８】
一実施形態において、制御回路１１１は、検証記号が参照箇所に動かされるときに、カメラの真正面を向くように検証記号（例えば、５３０）を動かすために、ロボットアームを制御するように構成される。例えば、図６Ａに例示されるように、ロボット制御システム１１０は、検証記号５３０が参照箇所６１０Ｄに動かされるときに、カメラ５７０の真正面を向くように検証記号５３０を動かすために、ロボット５５０のロボットアーム５５３を制御することができる。この例において、ロボット制御システム１１０は、検証記号５３０がカメラ５７０の真正面を向くように回動するように、ロボットハンド５５５を制御することができる。場合によっては、検証記号は、カメラ視野５１０において球面に対して接線方向に向くことによって、カメラ５７０の真正面を向くことができる。検証記号５３０がカメラ５７０の真正面を向くとき、カメラ５７０は、検証記号５３０を真正面から撮影できる場合があり、それにより、結果として生じる検証記号５３０の画像への斜視効果がないか、又は少ない。
【００４９】
一実施形態において、検証記号（例えば、５３０）は、第１の色を有する第１の領域と、第２の色を有する第２の領域とを含み、第１の領域の面積と第２の領域の面積との比が規定され、ロボット制御システム１１０の非一時的コンピューター可読媒体（例えば、記憶デバイス）上に記憶される。そのような実施形態において、制御回路１１１は、規定された比に基づいて、参照画像又は検証画像内の検証記号を識別するように構成することができる。例えば、図５Ｃに例示されるように、検証記号５３０は、リング状であり、第１の色を有する第１の領域５３１（例えば、黒色領域）を含むことができ、第１の領域５３１によって包囲され、第２の色を有する第２の領域５３３（例えば、白色領域）を含む。検証記号５３０内の黒色の第１の領域５３１の面積と白色の第２の領域５３３の面積との比は、識別できる規定値とすることができる。取り込まれた画像内の色を解析することによって、ロボット制御システム１１０は、その部分が円形領域を包囲するリング状領域であるかどうかを判断し、リング状領域の面積と円形領域の面積との間の比が規定された比に一致するかどうかを判断することによって、検証記号５３０に対応する画像の部分を識別できる場合がある。これにより、ロボット制御システム１１０が画像内に取り込まれた他の特徴から、検証記号５３０を区別することを可能にし得る。例えば、図５Ａに例示されるように、ロボット５５０は、キャリブレーションパターン５２７及び検証記号５３０の組み合わせを有する第３のロボットハンド５５９を利用するように設定することができる。この例において、参照画像は、検証記号５３０及びキャリブレーションパターン５２７の両方を示すことができる。この例において、キャリブレーションパターン５２７は、いかなるリングパターンも有しない場合があるか、又は上記で論じられた規定された比とは異なる比のリングパターンを有する場合がある。制御回路１１１は、参照画像の部分が第１の色を有する第１の画像領域を有するか、及び第２の色を有する第２の画像領域を有するかを判断し、第１の画像領域の面積と第２の画像領域の面積との比が規定された比に等しいか否かを判断することによって、参照画像のその部分が検証記号５３０であるか、キャリブレーションパターン５２７であるかを判断することができる。
【００５０】
場合によっては、ロボット制御システム１１０は、取り込まれた画像の特定の部分が第１の色を有する第１の領域を有するか、及び第２の色を有する第２の領域を有するかを判断し、第１の領域の面積と第２の領域の面積との比が規定された範囲内にあるか否かを判断することができる。一例において、規定された比が１．５である場合には、ロボット制御システム１１０は、特定の領域内の比が１．４〜１．６の範囲内に入る場合に、その特定の領域が検証記号５３０に対応すると判断することができる。第１の領域及び第２の領域の２つの色は黒及び白には限定されず、ロボット制御システム１１０によって識別可能である任意の２つの異なる色とすることができる。
【００５１】
一態様において、検証記号（例えば、５３０）は、互いに同心である第１の形状及び第２の形状を含むことができ、第１の形状及び第２の形状のそれぞれの中心が実質的に同じ位置にある。例えば、検証記号は円形リングとして形成することができ、円形リングは、互いに同心である第１の円及び第２の円を含む。より具体的には、図５Ｃに示されるように、検証記号５３０は、第１の形状５３５（例えば、外円）及び第２の形状５３７（例えば、内円）を含むことができる。第１の形状５３５の中心及び第２の形状５３７の中心が実質的に同じ位置にあるように、第１の形状５３５及び第２の形状５３７は互いに同心とすることができる。例えば、第１の形状５３５の中心が座標
【数１】
0006803633.tif 000002
にあり、第２の形状５３７の中心が座標
【数２】
0006803633.tif 000003
にある場合には、座標
【数３】
0006803633.tif 000004
及び座標
【数４】
0006803633.tif 000005
は、実質的に同じであるとすることができる。
【００５２】
図４Ａに戻ると、方法４００は、ステップ４０７をさらに含むことができ、そのステップでは、制御回路１１１が、検証記号に関する参照画像座標を判断し、参照画像座標は、参照画像内に検証記号（例えば、５３０）が現れる座標である。例えば、図６Ａに例示されるように、検証記号５３０の画像を参照箇所６１０Ｄにおいて取り込むことができ、参照画像として使用することができる。検証記号５３０は、特定の座標において参照画像内に現れることができ、その座標は参照画像座標と呼ばれる場合がある。
【００５３】
一実施形態において、上記で論じられたように、検証記号（例えば、５３０）は、互いに同心である第１の形状及び第２の形状を含むことができ、第１の形状及び第２の形状のそれぞれの中心が、実質的に同じ箇所にある。そのような実施形態において、制御回路１１１は、ステップ４０７において、参照画像内の第１の形状の中心の第１の座標を特定することと、参照画像内の第２の形状の中心の第２の座標を特定することと、参照画像内の第１の座標及び第２の座標の平均として参照画像座標を特定することとによって、そのような検証記号に関する参照画像座標を特定するように構成することができる。
【００５４】
例えば、図７Ａは、参照箇所のうちの参照箇所Ｎ（ただし、Ｎは整数）において取り込まれた参照画像７１０を示す。参照画像７１０は、検証部分７３０を含み、検証部分は、図５Ａ、図５Ｂ、又は図５Ｃの検証記号５３０を示す参照画像７１０内の画像部分である。図１Ａ又は図１Ｂのロボット制御システム１１０は、検証部分７３０から、図５Ｃの検証記号５３０の第１の形状５３５と同じ、又は実質的に同じである第１の形状７３５（例えば、外円）を識別するように構成することができる。ロボット制御システム１１０は、検証部分７３０から、図５Ｃの検証記号５３０の第２の形状５３７と同じ、又は実質的に同じである第２の形状７３７（例えば、内円）をさらに識別するように構成することができる。その後、参照箇所Ｎに関して、ロボット制御システム１１０は、参照画像７１０内に示される第１の形状７３５の中心の第１の座標
【数５】
0006803633.tif 000006
（すなわち、第１の形状７３５の中心座標）と、参照画像７１０内に示される第２の形状７３７の中心の第２の座標
【数６】
0006803633.tif 000007
（すなわち、第２の形状７３７の中心座標）とを判断することができる。参照画像７１０が参照箇所Ｎにある検証記号５３０に対応するとき、参照画像７１０に関する参照画像座標
【数７】
0006803633.tif 000008
を全体として判断するために、ロボット制御システム１１０は、以下のように、参照画像７１０内の第１の座標
【数８】
0006803633.tif 000009
及び第２の座標
【数９】
0006803633.tif 000010
の平均を計算することができる。
【数１０】
0006803633.tif 000011
【００５５】
一実施形態において、検証記号に関する参照画像座標は、その中心座標とすることができ、第１の形状７３５及び第２の形状７３５のそれぞれの中心座標に基づいて、検証記号５３０の中心座標を特定することは、画像ノイズに対する検証プロセスのロバストネスを改善することができる。例えば、画像ノイズは、第１の形状７３５に関する中心座標の決定に誤差を導入する場合があるが、第２の形状７３７に関する中心座標の特定に誤差を導入しない場合がある。場合によっては、第２の形状７３７が実際には第１の形状７３５と同じ中心位置を共有する場合があるが、画像ノイズによって、第２の形状７３７の中心座標が第１の形状７３５の中心座標とは異なるように画像内に現れる場合がある。このシナリオにおいて、検証記号５３０の中心座標として第２の形状７３７の中心座標を単に使用すると、結果として望ましくない誤差量が生じる場合がある。誤差量は、検証記号５３０の中心座標として、第１の形状７３５に関する中心座標と第２の形状７３７に関する中心座標との平均を使用することによって低減することができる。
【００５６】
一実施形態において、上記で論じられた１つ以上の参照箇所は、複数の参照画像座標にそれぞれ対応する複数の参照箇所とすることができる。この実施形態では、参照画像座標は複数の参照画像座標のうちの１つとすることができる。例えば、図６Ａ及び図６Ｂに例示されるように、検証記号５３０が動かされるか、又は別の方法で配置される、参照箇所６１０Ａ〜６１０Ｉ等の複数の参照箇所が存在する場合がある。検証記号５３０の参照箇所６１０Ａ〜６１０Ｉごとに、ロボット制御システム１１０は、その箇所において検証記号５３０の、カメラ５７０によって取り込まれたそれぞれの参照画像を読み出すか、又は別の方法で受信することができ、それぞれの参照画像内に検証記号５３０が現れる位置を示すそれぞれの参照画像座標を特定することができる。
【００５７】
図４Ａに戻ると、方法４００は、ステップ４０９をさらに含むことができ、そのステップでは、制御回路１１１が、キャリブレーション情報に基づいて、ロボット操作を実行するように、ロボットアームの動作を制御する。一実施形態において、このステップは、制御回路１１１が、カメラキャリブレーション情報に基づく第２の動作コマンドを生成することと、第２の動作コマンドを通信インターフェース１１３に出力することとを含むことができる。通信インターフェース１１３は、その後、ロボットアームの動作を制御するために、第２の動作コマンドをロボットに通信することができる。例えば、図５Ａに例示されるように、第１のカメラキャリブレーション後に、ロボット制御システム１１０は、物体５８２Ａ、５８２Ｂ、及び５８２Ｃを持ち上げる等の、ロボット作業を含むロボット操作を実行するように、ロボット５５０を制御する。ロボット５５０の動作は、第１のカメラキャリブレーションから得られるカメラキャリブレーション情報に基づくことができ、かつカメラ５７０によって取り込まれる物体５８２Ａ、５８２Ｂ、５８２Ｃの画像に基づくことができる。
【００５８】
ステップ４１１において、制御回路１１１がロボット操作中に休止期間を検出する。一態様において、ロボットの休止期間は、ロボット操作中にロボットがロボット作業を実行していない期間とすることができる。場合によっては、ロボット操作がコンベヤベルト５７３から物体を持ち上げることに基づく場合には、休止期間は、コンベヤベルト５７３上に物体が存在しないことに基づくことができる。より具体的には、コンベヤベルト５７３は、ロボットアーム５５３によって到達可能とすることができ、制御回路１１１は、コンベヤベルト５７３上に物体が存在しないこと、又はロボット５５０とコンベヤベルト５７３上の最も近い物体との間の距離が規定された距離閾値を超過することを検出することによって、休止期間を検出するように構成される。場合によっては、制御回路１１１は、休止期間が発生しようとしていることを示す信号を受信することができ、その信号は、ロボット操作を監視する別のデバイス又は構成要素から受信される場合がある。例えば、図５Ａに例示されるように、ロボット制御システム１１０は、第２の物体５８２Ｂと第３の物体５８２Ｃとの間に長い距離があるために、ロボット操作中に、第２の物体５８２Ｂを持ち上げることを含むロボット作業と、第３の物体５８２Ｃを持ち上げることを含むロボット作業との間に休止期間を検出することができる。この休止期間中、ロボット５５０が第２の物体５８２Ｂを持ち上げた後に、物体５８２Ｃはロボット５５０によってまだ到達可能でないので、ロボットは、ロボット作業を実行していない休止期間を有することができる。一例において、ロボット制御システム１１０は、コンベヤベルト５７３上の物体がロボット５５０によって到達可能でないときに、及び／又はロボット５５０とコンベヤベルト５７３上の上流の最も近い物体（例えば、第３の物体５８２Ｃ）との間の距離が或る特定の閾値を超過するとロボット制御システム１１０が判断するときに、休止期間を検出することができる。
【００５９】
図４Ａ及び図４Ｂに戻ると、方法４００はステップ４５１をさらに含むことができ、そのステップでは、制御回路１１１が、休止期間中に、検証記号５３０をステップ４０３において使用された（参照画像を取り込むために使用された）少なくとも参照箇所に動かすように、ロボットアーム５５３を制御する。一実施形態において、ステップ４５１は、制御回路１１１が第３の動作コマンドを生成することと、第３の動作コマンドを通信インターフェース１１３に出力することとを含むことができる。通信インターフェース１１３は、動作コマンドに基づいて、ロボットアーム５５３が動くように、第３の動作をロボットに通信するように構成することができる。場合によっては、第３の動作コマンドは、参照箇所に対応する１組の記憶されたモーターコマンドを含むことができる。場合によっては、第３の動作コマンドは、ステップ４０１からのカメラキャリブレーション情報に基づいて生成することができる。場合によっては、ステップ４５１の第３の動作コマンドは、ステップ４０１からのカメラキャリブレーション情報に頼らない。
【００６０】
ステップ４５３において、制御回路１１１が、休止期間中にカメラ（例えば、５７０）から検証記号（例えば、５３０）のさらなる画像を読み出すか、又は別の方法で受信し、さらなる画像は、検証のための検証画像であり、休止期間中の少なくとも参照箇所における検証記号の画像である。すなわち、参照箇所に関する検証画像は、検証記号（例えば、５３０）が参照箇所にあるか、又は参照箇所にあった間に取り込まれる。一実施形態において、ステップ４５３は、制御回路１１１が、検証画像を取り込むようにカメラ（例えば、５７０）を制御するカメラコマンドを生成することを含む。制御回路１１１は、通信インターフェース１１３にカメラコマンドを出力することができ、通信インターフェースがカメラコマンドをカメラ（例えば、５７０）に通信することができる。一実施形態において、ステップ４５１は、検証記号を複数の参照箇所に動かすようにロボットアームを制御することと、カメラによって取り込まれた複数のそれぞれの検証画像を受信することとを含むことができる。例えば、図６Ａ及び図６Ｂに例示されるように、休止期間中に、ロボット制御システム１１０は、検証記号５３０を参照箇所６１０Ａ〜６１０Ｉのうちの１つに動かし、その箇所における検証記号５３０の画像を検証画像として取り込むように、ロボット５５０のロボットアーム５５３を制御することができる。休止期間がまだ終わっていない場合、より具体的には、休止期間内に十分な長さの時間が残っている場合には、ロボット制御システム１１０は、検証記号５３０を参照箇所６１０Ａ〜６１０Ｉのうちの別の箇所に動かし、その他の箇所における検証記号５３０の画像を別の検証画像として取り込むように、ロボット５５０のロボットアーム５５３を制御することができる。休止期間が終了する場合には、ロボット制御システム１１０は、検証画像を取り込むのを中止することができる。その場合に、各休止期間中に、ロボット制御システム１１０は、検証記号５３０を参照箇所６１０Ａ〜６１０Ｉのうちの１つ以上に動かし、参照箇所６１０Ａ〜６１０Ｉの１つ以上のそれぞれの参照箇所において検証画像を取り込むように、ロボット５５０のロボットアーム５５３を制御することができる。
【００６１】
図４Ｂに戻ると、方法４００は、ステップ４５５をさらに含むことができ、そのステップでは、制御回路１１１が、検証のために使用される検証画像座標を判断し、検証画像座標は、検証画像内に検証記号が現れる座標である。検証記号（例えば、５３０）が複数の参照箇所（例えば、６１０Ａ〜６１０Ｉ）に動かされる場合には、カメラ（例えば、５７０）が複数の参照箇所にそれぞれ対応する複数の検証画像を取り込むことができ、制御回路１１１が、複数の検証画像にそれぞれ対応し、複数の参照箇所にそれぞれ対応する複数の検証画像座標を特定することができる。複数の検証画像は全て、カメラ（例えば、５７０）によって単一の休止期間において取り込まれる場合があるか（例えば、単一の休止期間が、ロボットアームが検証記号（例えば、５３０）を全ての参照箇所６１０Ａ〜６１０Ｉに動かすことができるほど十分に長い場合）、又は複数の異なる休止期間において取り込まれる場合がある（例えば、各休止期間が、ロボットアームが検証記号５３０を全ての参照箇所６１０Ａ〜６１０Ｉに動かすほど十分に長くない場合）。
【００６２】
一実施形態において、検証画像座標は、参照画像座標と同じようにして特定することができる。例えば、検証画像座標は検証記号（例えば、５３０）の中心座標とすることができ、検証画像（例えば、７６０）内の検証記号（例えば、５３０）の第１の形状の中心座標と、検証記号の第２の形状の中心座標との平均として特定することができる。例えば、図７Ｂは、参照箇所のうちの参照箇所Ｎにおいて取り込まれた検証画像７６０を示す。検証画像７６０は検証部分７８０を示し、その部分は、検証記号５３０を示す検証画像７６０内の画像部分である。ロボット制御システム１１０は、検証部分７８０から、図５Ｃの検証記号５３０の第１の形状５８５と同じ、又は実質的に同じである第１の形状７８５を識別することができる。ロボット制御システム１１０はさらに、検証部分７８０から、検証記号５３０の第２の形状５８７と同じ、又は実質的に同じである第２の形状７８７を識別することができる。さらに、ロボット制御システム１１０は、検証画像７６０の検証部分７８０内に示される第１の形状７８５の中心座標
【数１１】
0006803633.tif 000012
を判断し、検証画像７６０の検証部分７８０内に示される第２の形状７８７の中心座標
【数１２】
0006803633.tif 000013
を判断するように構成することができる。ロボット制御システム１１０はさらに、以下のように、検証画像座標７６０に関する検証画像座標
【数１３】
0006803633.tif 000014
を、検証画像７６０内の第１の形状７８５の中心座標と第２の形状７８７の中心座標との平均として判断することができる。
【数１４】
0006803633.tif 000015
【００６３】
図４Ｂに戻ると、方法４００は、ステップ４５７をさらに含むことができ、そのステップでは、制御回路１１１が、ステップ４０３の参照画像座標とステップ４５５の検証画像座標との間の偏差量に基づいて、偏差パラメーター値を判断し、参照画像座標及び検証画像座標は、両方とも参照箇所Ｎと関連付けられる。一例では、参照画像座標と検証画像座標との間の偏差は、参照画像座標と検証画像座標との間の距離であってもよい。例えば、参照箇所Ｎにおける参照画像座標が、
【数１５】
0006803633.tif 000016
として表され、参照箇所Ｎにおける検証画像座標が、
【数１６】
0006803633.tif 000017
として表されると仮定すると、参照箇所Ｎにおける偏差（例えば、距離）は、
【数１７】
0006803633.tif 000018
として表すことができる。
【００６４】
上記で論じられたように、１つ以上の参照箇所が複数の参照箇所である態様では、制御回路１１１は、複数の参照箇所にそれぞれ対応する複数の検証画像座標を特定するように構成することができ、上記で論じられた検証画像座標は複数の検証画像座標のうちの１つである。そのような態様において、偏差パラメーター値は、複数の参照箇所に関する、複数の参照画像座標と複数の検証画像座標との間のそれぞれの偏差量に基づき、それぞれの偏差量のうちの各偏差量は、（ａ）複数の参照箇所のそれぞれの参照箇所に対応する参照画像座標と、（ｂ）同じ参照箇所に対応する検証画像座標と、の間にある。複数の検証画像座標は、複数の検証画像内に検証記号が現れるそれぞれの座標とすることができ、上記で論じられた検証画像は複数の検証画像のうちの１つである。制御回路１１１は、１つの休止期間内に複数の検証画像の全てを取り込むように、カメラを制御するように構成することができ、及び／又は異なる休止期間内に複数の検証画像を取り込むように、カメラを制御するように構成することができる。
【００６５】
例えば、図６Ａ及び図６Ｂに示されるように、複数の参照箇所が存在するとき、ロボット制御システム１１０は、複数の参照箇所に対応する複数のそれぞれの参照画像座標を判断することができ、複数の参照箇所に対応する複数のそれぞれの検証画像座標を判断することができ、複数の参照画像座標と複数の検証画像座標との間のそれぞれの偏差量を判断することができる。偏差パラメーター値は、複数の参照画像座標と複数の検証画像座標との間のそれぞれの偏差量に基づくことができる。例えば、偏差パラメーターは、以下のように、それぞれの偏差量の平均とすることができる。
【数１８】
0006803633.tif 000019
【００６６】
上記の式において、Ｎは第Ｎの参照箇所を指すことができ、一方、Ｍは参照箇所の全数を指すことができる。
【００６７】
図４Ｂに戻ると、方法４００は、ステップ４５９をさらに含むことができ、そのステップでは、制御回路１１１が、偏差パラメーター値が規定された閾値（規定された偏差閾値と呼ばれる場合もある）を超過するかどうかを判断する。さらに、ステップ４６１において、制御回路１１１が、偏差パラメーター値が規定された閾値を超過すると判断するのに応答して、第２のカメラキャリブレーションを実行し、カメラに関する更新されたカメラキャリブレーション情報を特定することができる。例えば、規定された閾値を超過する偏差パラメーター値は、カメラのカメラキャリブレーション情報が古くなり、及び／又はロボット操作において望ましくない誤差量を生じさせる可能性が高いことを示す場合がある。それゆえ、偏差パラメーター値が規定された閾値を超過する場合には、カメラに関する第２のカメラキャリブレーションを実行して、カメラ（例えば、５７０）に関するカメラキャリブレーション情報を更新することができる。第２のカメラキャリブレーションは第１のカメラキャリブレーションと同じ技法を使用することができるが、カメラによって第１のカメラキャリブレーションより後に取り込まれた画像に基づくことができる。一例において、ステップ４５９が、偏差パラメーター値が規定された閾値を超過することを示す場合には、ロボット操作を中止又は中断することができ、その後、第２のカメラキャリブレーションを実行し始めることができ、第２のカメラキャリブレーションは、第２のカメラキャリブレーションのための画像を取り込むことによって開始することができる。第２のカメラキャリブレーションが完了し、カメラに関するカメラキャリブレーション情報が更新された後に、ロボット制御システム１１０は、更新されたカメラキャリブレーション情報を用いて、ロボット操作を再開することができる。
【００６８】
一実施形態において、制御回路１１１は、偏差パラメーター値が規定された閾値を超過しないと判断するのに応答して、さらなるカメラキャリブレーションを実行することなく（例えば、通信インターフェースを介してロボットに第４の動作コマンドを出力することによって）、休止期間後にロボット操作を継続するように、ロボットを制御するように構成することができる。そのような条件は、ステップ４０１からのカメラキャリブレーション情報が依然として十分に正確であること、及び望ましくない誤差量を受けることなく、ロボット操作が継続できることを示すことができる。
【００６９】
一実施形態において、制御回路１１１は、ロボットが位置する環境の温度を特定し、測定された温度に基づいて、規定された偏差閾値（偏差閾値を再規定するとも呼ばれる）又はカメラに関するカメラキャリブレーション情報の少なくとも一方を調整するように構成することができる。例えば、制御回路１１１は、温度を測定することによって、又は別のデバイス若しくは構成要素から温度データを受信することによって、環境の温度を特定することができる。そのような実施形態において、制御回路１１１は、測定された温度が規定範囲外にあるとき、規定された閾値を第１の値を有するように設定し、測定された温度が規定範囲内にあるとき、閾値を第１の値より低い第２の値を有するように設定することによって、測定された温度に基づいて、規定された閾値を調整するように構成することができる。例えば、過度に高い温度又は過度に低い温度は、カメラに変化を引き起こす場合がある。より具体的には、温度変化は、カメラの固有パラメーターに影響を及ぼす場合がある。例えば、カメラ内の構成要素は、温度が上昇するときに膨張し、温度が降下するときに収縮する場合があり、それがカメラの固有パラメーターに影響を及ぼす場合がある。それゆえ、温度又は温度変化の量に基づいて、規定された偏差閾値を調整することが有利な場合がある。例えば、温度が正常動作温度の範囲（例えば、周囲の室温に基づいて規定された範囲）内にあるとき、その温度はカメラに悪影響を及ぼさないので、規定された偏差閾値が下げられる場合がある。一方、温度が、正常動作温度の範囲外にあるとき、低温又は高温がカメラに悪影響を及ぼすので、偏差閾値が上げられる場合がある。代替の例において、偏差閾値は、さらなるカメラキャリブレーションをより頻繁にトリガーするために、温度が正常動作温度外にあるとき、より低くなるように規定することができる。この例において、偏差閾値は、温度が正常動作温度内にあるときに、さらなるカメラキャリブレーションをトリガーする頻度を下げるために、偏差閾値は、より高くなるように規定することができる。
【００７０】
図８は、カメラキャリブレーション及びカメラキャリブレーションの検証が実行される例示的なタイムライン８００を図示する。以下の実施例は、カメラキャリブレーションを検証することを論じているが、これらはより一般的に、ロボット操作システムのために実行される任意のタイプのキャリブレーション操作を検証することに適用され得る。ロボット操作開始前、図１Ａ又は図１Ｂのロボット制御システム１１０は、キャリブレーション期間８１１中に、第１のカメラキャリブレーションを実行して、カメラ（例えば、図５Ａ又は図５Ｂのカメラ５７０）に関するカメラキャリブレーション情報を判断する。第１のカメラキャリブレーションが完了した後に、ロボット制御システム１１０は、参照取得期間８１３中に、種々の参照箇所において検証記号（例えば、検証記号５３０）の参照画像を取り込み、それぞれの参照画像（例えば、図７Ａの参照画像７１０）内に検証記号が現れる参照画像座標を判断する。参照画像座標を特定すると、参照取得期間８１３後に、ロボット操作を開始することができる。
【００７１】
ロボット操作開始後、作業期間８１５中に、ロボット制御システム１１０は、１つの以上のロボット作業を実行するようにロボット（例えば、図５Ａ又は図５Ｂのロボット５５０）を制御し、それゆえ、一実施形態において、検証画像（例えば、図７Ｂの検証画像７６０）を収集できない場合がある。ロボット制御システム１１０は、作業期間８１５後にロボットがロボット作業を実行していない休止期間８１７を検出する。それゆえ、休止期間８１７中に、ロボット制御システム１１０は、参照箇所のうちの第１の組の１つ以上の参照箇所（例えば、６１０Ａ及び６１０Ｂ）においてそれぞれ、検証記号の１つ以上の検証画像を取り込む。休止期間８１７が終了した後、作業期間８１９中に、ロボット制御システム１１０は、１つ以上のロボット作業を実行するようにロボットを制御するのを再開し、それゆえ、検証画像を収集しない場合がある。ロボット制御システム１１０は、作業期間８１７後に、ロボットがロボット作業を実行していない休止期間８２１を検出する。休止期間８２１中に、ロボット制御システム１１０は、参照箇所のうちの第２の組の１つ以上の参照箇所（例えば、６１０Ｃ〜６１０Ｅ）においてそれぞれ、検証記号の１つ以上の検証画像を取り込む。休止期間８２１後、ロボット作業期間８２３中に、ロボット制御システム１１０は、１つ以上のロボット作業を実行するようにロボットを制御するのを再開し、それゆえ、検証画像を収集しない場合がある。ロボット制御システム１１０は、作業期間８２３後にロボットがロボット作業を実行していない休止期間８２５を検出する。休止期間８２５中に、ロボット制御システム１１０は、参照箇所のうちの第３の組の１つ以上の位置（例えば、６１０Ｆ〜６１０Ｉ）においてそれぞれ、検証記号の１つ以上の検証画像を取り込む。
【００７２】
休止期間８１７、８２１及び８２５中に取り込まれる検証画像（例えば、７６０）は、参照箇所のうちの異なるそれぞれの位置において取り込むことができる。例えば、第１の組、第２の組及び第３の組の１つ以上の位置は、互いに異なることができ、重ならないようにすることができる。さらに、休止期間８２５中に、ロボット制御システム１１０は、検証画像取り込みが完了したと判断することができ、それは、カメラキャリブレーションの検証のために十分な数の検証画像が取り込まれたことを示すことができる。一実施形態において、ロボット制御システム１１０は、全ての参照箇所（例えば、６１０Ａ〜６１０Ｉ）において検証画像が取り込まれた場合に、検証画像取り込みが完了したと判断することができる。一実施形態において、ロボット制御システム１１０は、検証画像の数が規定された目標総数に達した場合に、検証画像取り込みが完了したと判断することができる。
【００７３】
検証画像取り込みが完了したと判断すると、ロボット制御システム１１０は、それぞれの検証画像内に検証記号が現れる検証画像座標を特定する。その後、ロボット制御システム１１０は、参照画像座標からの検証画像座標のそれぞれの偏差量に基づいて、偏差パラメーター値を特定する。偏差パラメーターが規定された閾値を超過する場合には、ロボット制御システム１１０は、別のカメラキャリブレーションを実行する。しかしながら、この例では、偏差パラメーターは規定された閾値を超過せず、それゆえ、ロボット制御システム１１０は、さらなるカメラキャリブレーションを実行することなく、休止期間８２５後、作業期間８２７中にロボット作業を実行し続ける。
【００７４】
図９は、図８のタイムラインに関する検証プロセスを示す例示的なフロー図９００を図示する。ステップ９０１において、図１Ａ、図１Ｂ、又は図１Ｃのロボット制御システム１１０が、カメラ（例えば、図５Ａ又は図５Ｂのカメラ５７０）の第１のカメラキャリブレーションを実行して、カメラのカメラキャリブレーション情報を判断する。ステップ９０３において、ロボット制御システム１１０が、検証記号（例えば、図５Ａ又は図５Ｂの検証記号５３０）を参照箇所に動かすように、ロボット（例えば、図５Ａ又は図５Ｂのロボット５５０）を制御して、カメラを介して、それぞれの参照箇所において検証記号の参照画像（例えば、図７Ａの参照画像７１０）のそれぞれの事例を取り込む。ステップ９０５において、ロボット制御システム１１０が、第１のカメラキャリブレーションから得られるカメラキャリブレーション情報に基づいて、ロボットのロボット操作を開始する。
【００７５】
ステップ９０７において、ロボット制御システム１１０が、ロボット操作中に休止期間を検出する。ステップ９０９において、ロボット制御システム１１０が、休止期間中に検証記号（例えば、図５Ａ又は図５Ｂの検証記号５３０）を参照箇所のうちの１つ以上の参照箇所に動かすように、ロボット（例えば、図５Ａ又は図５Ｂのロボット５５０）を制御し、カメラを介して、参照箇所のうちの１つ以上の参照箇所においてそれぞれ１つ以上の検証画像（例えば、図７Ｂの検証画像７６０）を取り込む。場合によっては、ロボット制御システム１１０は、検証記号を、休止期間の持続時間が許すだけ多くの参照箇所に動かすようにロボットを制御することができる。ステップ９１１において、ロボット制御システム１１０が、取り込まれた検証画像の全数が規定された目標総数に達したか否かを判断する。取り込まれた検証画像の全数が目標総数に達していなかった場合には、ロボット制御システム１１０は、より多くの検証画像を取り込むために、ステップ９０７に戻ることによって、ロボット操作中に別の後続の休止期間を検出しようと試みる。
【００７６】
取り込まれた検証画像の全数が、目標総数に達していた場合には、ステップ９１３において、ロボット制御システム１１０は、参照画像（例えば、７１０）及び検証画像（例えば、７６０）に基づいて、カメラキャリブレーションの検証を実行する。カメラキャリブレーションの検証は、偏差パラメーターを生成する。ステップ９１５において、ロボット制御システム１１０が、偏差パラメーターが規定された閾値を超過するか否かを判断する。偏差パラメーターが閾値を超過していない場合には、ロボット制御システム１１０は、ステップ９１９において、取り込まれた検証画像の全数を０にリセットすることができ、休止期間後にロボット操作を継続することができ、その一方で、ステップ９０７に戻ることによって、新たな１組の検証画像を取り込むために別の休止期間を検出しようと試みる。
【００７７】
偏差パラメーターが閾値を超過する場合には、ロボット制御システム１１０は、ロボット操作を中止し、ステップ９１７において、第２のカメラキャリブレーションを実行することができる。９１７における第２のカメラキャリブレーション後に、ロボット制御システム１１０は、９２１において、取り込まれた検証画像の全数を０にリセットすることができる。ステップ９２１後に、そのフロー図はステップ９０３に戻ることができ、ロボット制御システム１１０が、検証記号（例えば、５３０）を参照箇所に動かすように、ロボット（例えば、５５０）を制御し、カメラ（例えば、５７０）を介して、それぞれの参照箇所において検証記号の新たな１組の参照画像（例えば、７１０）を取り込み、それにより、後の検証のために、新たな１組の参照画像を使用できるようになる。
【００７８】
上記で言及されたように、本開示の一態様は、図６Ａ〜図６Ｄのロボット５５０のロボットアーム５５３等のロボットアーム上の物理的位置に配置された、共通の検証記号（例えば、図６Ａ〜図６Ｄの検証記号５３０）を取り込むか、又はそれ以外の方法で表す両方の参照画像（例えば、図７Ａの参照画像７１０）及び検証画像（例えば、図７Ｂの検証画像７６０）を受信することを含む。一実施形態において、参照画像（例えば、７１０）は、早期の時点等の、第１の時点において生成され得、一方、検証画像（例えば、７６０）は、例えば、後の時点等の、第２の時点において生成される新しい画像であり得る。場合によっては、参照画像は、図１Ｃのロボット制御システム１１０等の、コンピューティングシステムによって生成される１つ以上のコマンド（又は、１つ以上の命令とも呼ばれる）に基づいて、生成されてもよい。場合によっては、１つ以上のコマンドは、動作コマンド及び／又はカメラコマンドを含むことができる。動作コマンドは、ロボットアームが検証記号を参照箇所に動かすためのものであり得る。例えば、動作コマンドは、ロボットアームに特定のポーズを採用させることができ、それによって検証記号が、ロボットアームの特定のポーズと関連付けられた参照箇所に動かされる。カメラコマンドは、図６Ａ〜図６Ｄのカメラ５７０等のカメラに、ロボットアームが特定のポーズにある間、及び／又は検証記号が特定のポーズと関連付けられた参照箇所にある間に参照画像を生成させるためのものであり得る。それゆえ、参照画像は、参照箇所に対応し得る。同様に、検証画像は、動作コマンド及び／又はカメラコマンド等の１つ以上のコマンドに基づいて生成されてもよく、これは、参照画像に関して上記で論じられる動作コマンド及び／又はカメラコマンドと同一又は類似していてもよい。検証画像に関する１つ以上のコマンドは、ロボット制御システム１１０等の参照画像を生成させた同じコンピューティングシステムによって、又は別のコンピューティングシステムによって生成することができる。この実施例において、検証画像を生成するための１つ以上のコマンドは、検証記号を再び参照箇所に動かすことができる。例えば、１つ以上のコマンドは、ロボットアームに、参照箇所と関連付けられる特定のポーズを再び採用させることができる。
【００７９】
上記の実施例において、検証画像を受信するコンピューティングシステムは、それを参照画像に対して比較して、キャリブレーション情報が依然として十分に正確であるかどうかを判断することができる。キャリブレーション情報は、ロボット操作システムに対して実行されるキャリブレーション操作によって判断され得る。システムキャリブレーションとも呼ばれ得るキャリブレーション操作は、カメラキャリブレーション、ロボットキャリブレーション、又はロボット操作システムの１つ以上の構成要素を制御するための任意の他のキャリブレーションを含むことができる。一実施形態において、キャリブレーション情報は、カメラキャリブレーション情報、ロボットキャリブレーション情報、又は任意の他のキャリブレーション情報を含むことができる。上記で論じられる比較は、例えば、参照画像内に検証記号が現れる箇所と、検証画像内に検証記号が現れる箇所との間の差に基づいている、偏差パラメーター値を判断することを含み得る。偏差パラメーター値が規定された偏差閾値（例えば、所定の偏差閾値）を超過する場合等、大きすぎる場合、コンピューティングシステムは、キャリブレーション情報がもはや十分に正確でないと判断することができる。そのような状況において、キャリブレーション情報は、ミスキャリブレーション又はミスアライメントを反映する、又は含むと称される場合がある。カメラキャリブレーション情報がミスキャリブレーション又はミスアライメントを含む場合、カメラの固有特性（例えば、投影特性又はレンズ歪み特性）を正確に記述することができなくなり、及び／又はカメラとその外部環境との間の関係（例えば、カメラとロボットのベースとの間の空間的関係）を正確に記述することができなる場合がある。ロボットキャリブレーション情報がミスキャリブレーション又はミスアライメントを含むとき、ロボットアーム又は他の構成要素を所望の箇所及び／又は向きに正確に動かすことに関して信頼できない可能性がある。
【００８０】
一実施形態において、上記の参照画像と検証画像とを比較する方法は、複数の検証記号を含むことができる。例えば、図１０Ａ〜図１０Ｃは、複数の検証記号５３０Ａ〜５３０Ｃのグループを図示する。より具体的には、検証記号のグループ５３０Ａ〜５３０Ｃは、ロボット操作システム５００の一実施形態とすることができる、ロボット操作システム５００Ａの一部であってもよい。ロボット操作システム５００Ａは、ロボット５５０Ａ（ロボット５５０の一実施形態であり得る）、カメラ視野５１０を有するカメラ５７０、及びロボットコントローラー１１０等のコンピューティングシステムを含み得る。ロボット５５０と同様に、ロボット５５０Ａは、互いに動作可能に取り付けられる複数のアーム部分を含む、ロボットアーム５５３を有する。例えば、複数のアーム部分は、リンク５５４Ａ〜５５４Ｅを含み得、リンク５５４Ｅに取り付けられるロボットハンド５５５等のロボットエンドエフェクタを含む。場合によっては、図１０Ａ〜図１０Ｃに図示されるように、複数のアーム部分が、ロボット５５０Ａのベース５５２からロボットエンドエフェクタ（例えば、ロボットハンド５５５）に直列に接続、又は別様に配置されてもよい。そのような場合、一連のアーム部分は、運動鎖を形成し得、その一連の特定のアーム部分の動作は、その特定のアーム部分の下流のいくつか又は全てのアーム部分の動作を引き起こし得る。特定のアーム部分の下流にあるアーム部分は、一連のアーム部分において特定のアーム部分に続くアーム部分を指し得る。例えば、リンク５５４Ｂ〜５５４Ｅ、及びロボットハンド５５５は、リンク５５４Ａの下流にあり得る。言い換えると、リンク５５４Ａは、リンク５５４Ｂ〜５５４Ｅの上流であり得、ロボットハンド５５５の上流であり得る。この実施例では、一連のアーム部分又はその部分集合内の各アーム部分は、一連のアーム部分においてアーム部分の直前にあるそれぞれのアーム部分に対して回動可能であり、伸縮可能であり、後退可能であり、又は別様に動作可能であり得る。例えば、リンク５５４Ｃは、リンク５５４Ｂに対して回動可能であり得、リンク５５４Ｂは、図１０Ａに図示される一連のアーム部分において、リンク５５４Ｃの直前にあるアーム部分であり得る。図１０Ａ〜図１０Ｃの実施例では、リンク５５４Ａ〜５５４Ｅ及びロボットハンド５５５は、ジョイント５５６Ａ〜５５６Ｄを介して互いに動作可能に取り付けることができる。
【００８１】
上記で論じられるように、ロボットアーム（例えば、５５３）は、異なるポーズに動かされてもよく、ポーズは、ロボットアームのアーム部分（例えば、リンク）によって形成される形状、又はより一般的には幾何学形状を指してもよい。例えば、図１０Ａ〜図１０Ｃは、ロボットアーム５５３に関する３つの異なるそれぞれのポーズを図示する。一実施形態において、図１０Ａ〜図１０Ｃにおけるロボット５５０Ａは、互いに対してリンク５５４Ａ〜５５４Ｅ及びロボットハンド５５５を回動させる、並進させる（例えば、伸縮若しくは後退させる）、又は別様に動かすように構成される１つ以上のアクチュエータ（例えば、モーター）を含むことができる。そのような実施形態において、図１０Ａ〜図１０Ｃのポーズの各々は、１つ以上のアクチュエータによって出力される動作の特定の順列と関連付けられ得る。例えば、順列は、ロボットアーム５５３の種々のアーム部分が、種々のアーム部分の直前のそれぞれのアーム部分に対して回動された角度値、及び／又は種々のアーム部分が、種々のアーム部分の直前のそれぞれのアーム部分に対して並進された距離を記述し得る。一例として、図１０Ａ〜図１０Ｃにおけるポーズは、それぞれ、リンク５５４Ａに対するリンク５５４Ｂの回動方向及び量、リンク５５４Ｂに対するリンク５５４Ｃの回動方向及び量、リンク５５４Ｃに対するリンク５５４Ｄの回動方向及び量、リンク５５４Ｄに対するリンク５５４Ｅの回動方向及び量、及びリンク５５４Ｅに対するロボットハンド５５５の方向及び回動を記述する５つの角度値の異なる順列と関連付けられ得る。
【００８２】
上記で言及されたように、図１０Ａ〜図１０Ｃは、ロボットアーム５５３の１つ以上のアーム部分上に配置される複数の検証記号５３０Ａ〜５３０Ｃのグループを図示する。より具体的には、検証記号５３０Ａは、リンク５５４Ｂ上に配置され得、一方で検証記号５３０Ｂは、リンク５５４Ｃ上に配置され得、検証記号５３０Ｃは、ロボットハンド５５５上に配置され得る。場合によっては、ロボット（例えば、ロボット５５０）は、任意の数の検証記号を有することができ、それらは、任意の方法でロボット上に配置されてもよい。例えば、検証記号５３０Ａ〜５３０Ｃは、ロボット５５０Ａ上のそれぞれの箇所にランダムに配置され得る。場合によっては、検証記号（例えば、５３０Ａ〜５３０Ｃ）の数及び相対配置は、１つ以上の規定された制約を受ける場合もある。例えば、それらの相対配置は、隣接する検証記号（例えば、５３０Ｂ及び５３０Ｃ）が、５ｃｍの規定された最小距離等の、規定された最小距離（記号間隔とも呼ばれる）によって区切されることを必要とする、規定された制約の対象となり得る。そのような制約は、コンピューティングシステム（例えば、ロボットコントローラー１１０）が、隣接する検証記号（例えば、５３０Ｃ）について特定の検証記号（例えば、５３０Ｂ）を混同する可能性を低減し得る。
【００８３】
図１１Ａ〜図１１Ｃは、複数の検証記号１１３０Ａ〜１１３０Ｃのグループを含む別の例を図示する。より具体的には、検証記号１１３０Ａ〜１１３０Ｃは、ロボット１１５０、カメラ視野１１１０を有するカメラ１１７０、及びロボットコントローラー１１０等のコンピューティングシステムを含むロボット操作システム１１００の一部であり得る。ロボット操作システム１１００及びカメラ１１７０は、例えば、各々が、ロボット操作システム５００及びカメラ５７０のそれぞれ一実施形態とすることができる。ロボット１１５０は、リンク１１５４Ａ〜１１５４Ｅ等の複数のアーム部分と、ロボットハンド１１５５（又は他のロボットエンドエフェクタ）と、を含むロボットアーム１１５３を有し得る。複数のアーム部分は、例えば、ジョイント１１５６Ａ〜１１５６Ｄを介して、互いに動作可能に取り付けられ得る。図１１Ａは、ロボットアーム１１５３が第１のポーズであることを示し、図１１Ｂは、ロボットアーム１１５３が第２のポーズであることを示す。図１０Ａ〜図１０Ｃと同様に、複数のアーム部分は、ロボット１１５０のベース１１５２からロボットハンド１１５５まで、直列に接続又は別様に配置されてもよい。一連のアーム部分は、運動鎖を形成し得、その運動鎖において、一連の一アーム部分の動作は、鎖内の下流のアーム部分に伝播し得る。図１１Ａに図示されるように、検証記号１１３０Ａはリンク１１５４Ｃ上に配置され得、一方、検証記号１１３０Ｂは、リンク１１５４Ｄ上に配置され得、検証記号１１３０Ｃは、ロボットハンド１１５５上に配置され得る。
【００８４】
一実施形態において、検証記号（例えば、５３０Ａ〜５３０Ｃ、又は１１３０Ａ〜１１３０Ｃ）のグループのうちの１つ以上の検証記号は、円形形状を有することができる。例えば、図１０Ａ〜図１０Ｃの検証記号５３０Ａ〜５３０Ｃ又は図１１Ａ〜図１１Ｃの検証記号１１３０Ａ〜１１３０Ｃの各々は、図５Ｃに関して上記で論じられるように、リングパターン、又はより具体的には円形リングであり得る。図５Ｃの例では、環パターンは、同心円領域（例えば、５３１及び５３３）又は同心円（例えば、５３５及び５３７）を有し得る。同心円形領域又は同心円形は、例えば、内円領域及び外円領域、又は内円並びに外円を含んでもよい。図１１Ｃに図示される実施例では、検証記号１１３０Ａは、一例では、半径ｒ１，１１３０Ａを有する内円及び半径ｒ２，１１３０Ａを有する外円を有する円形リングとして形成することができる。この実施例において、検証記号１１３０Ｂは、半径ｒ１，１１３０Ｂを有する内円及び半径ｒ２，１１３０Ｂを有する外円を有する別の円形リングであってもよい。検証記号１１３０Ｃはまた、半径ｒ１，１１３０Ｃを有する内円及び半径ｒ２，１１３０Ｃを有する外円を有する円形として成形されてもよい。
【００８５】
一実施形態において、検証記号（例えば、５３０Ａ〜５３０Ｃ、又は１１３０Ａ〜１１３０Ｃ）のグループは、異なるそれぞれのサイズを有するそれぞれの円形リングとして成形されてもよい。例えば、図１１Ｃに図示されるように、検証記号１１３０Ａ〜１１３０Ｃは、それぞれの外円領域又は外円について異なる半径を有し得る。すなわち、それらは、全てが互いに異なるｒ２，１１３０Ａ、ｒ２，１１３０Ｂ、及びｒ２，１１３０Ｃを有し得る。一実施形態において、検証記号１１３０Ａ〜１１３０Ｃのための円形リングは、それらの内円領域又は内円のそれぞれの半径と、それらの外円領域又は外円のそれぞれの半径との間に異なる比率を有することができる。すなわち、比ｒ２，１１３０Ａ／ｒ１，１１３０Ａ、比ｒ２，１１３０Ｂ／ｒ１，１１３０Ｂ、及び比ｒ２，１１３０Ｃ／ｒ１，１１３０Ｃは、全て互いに異なってよい。以下でより詳細に論じられるように、コンピューティングシステム（例えば、ロボット制御システム１１０）は、検証記号１１３０Ａ／１１３０Ｂ／１１３０Ｃを形成するそれぞれの円形リングのサイズに基づいて、及び／又は円形リングの内円の半径と円形リングの外円の半径との間のそれぞれの比に基づいて、検証記号１１３０Ａ／１１３０Ｂ／１１３０Ｃを識別するように構成されてもよい。
【００８６】
一実施形態において、検証記号（例えば、図１０Ａ〜図１０Ｃの５３０ａ〜５３０Ｃ、又は図１１Ａ〜図１１Ｂの１１３０Ａ〜１１３０Ｃ）の一部又は全ては、ロボットアーム（例えば、５３３又は１１３０）上に永久に取り付けられてもよく、又は別様に配置されてもよい。そのような実施形態は、カメラキャリブレーションを実行するために使用されるキャリブレーションパターン（例えば、図５Ａ及び図５Ｂの５２０）を含んでよく、これは、カメラキャリブレーションに関して十分に正確な結果を得るために、非常に複雑であるパターンを収容するのに十分な大きさ、及び／又は十分な数のパターン要素を収容するのに足りる大きさであるサイズを有する。しかしながら、キャリブレーションパターン（例えば、５２０）のかかる大きいサイズは、キャリブレーションパターン（例えば、５２０）の大きいサイズが、通常のロボット操作を妨害する可能性があるため、ロボットアームの永久部分又は別様に持続的な部分であるには大きすぎることになり得る。このような例では、キャリブレーションパターン５２０は、例えば、通常のロボット操作を再開する前に、ロボットアーム（例えば、５５３）から取り外されてもよい。この実施形態では、検証記号（例えば、５３０Ａ〜５３０Ｃ又は１１３０Ａ〜１１３０Ｃ）の一部又は全ては、キャリブレーションパターン（例えば、５２０）よりも複雑ではなく、及び／又は小さくてもよい。検証記号のより小さいサイズは、通常のロボット操作中に、それらがロボットアーム（例えば、５５３又は１１５３）上に留まることを可能にしてもよく、一方で、通常のロボット操作に干渉がない、又は最小限の干渉のみを提示してもよい。それゆえ、そのような例では、検証記号（例えば、５３０Ａ〜５３０Ｃ、又は１１３０Ａ〜１１３０Ｃ）の一部又は全ては、場合によっては、ロボットアーム（例えば、５３３又は１１３３）上に永久に、又は別様に持続的に配置され得る。そのような配置は、ロボットコントローラー又は他のコンピューティングシステムが、より頻繁に及び／又はより迅速にキャリブレーション検証を実行することができ、更新されたカメラキャリブレーションが判断される必要があるかどうかを評価することができるという利点を提供する。
【００８７】
図１２Ａ及び図１２Ｂは、カメラキャリブレーション情報等のキャリブレーション情報を検証するために、複数の検証記号を使用することに関する方法１２００を示す。一実施形態において、方法１２００は、図１０Ａ〜図１０Ｃ、又は図１１Ａ〜図１１Ｂのロボット制御システム１１０等の、コンピューティングシステムによって実行され、若しくはより具体的には、図１Ｃのロボット制御システム１１０の制御回路１１１等の、コンピューティングシステムの制御回路によって実行され得る。図１Ｃに示されるように、コンピューティングシステムは、それぞれカメラ視野５１０又は１１１０を有する、図１０Ａのカメラ５７０若しくは図１１Ａのカメラ１１７０等の、カメラ視野を有するカメラと通信するように構成される通信インターフェース１１３を含んでもよい。通信インターフェース１１３は、図１０Ａ〜図１０Ｃのロボット５５０Ａ、又は図１１Ａ〜図１１Ｃのロボット１１５０等の、ロボットと通信するようにさらに構成されてもよい。上記で言及されたように、ロボット５５０Ａ／１１５０は、互いに動作可能に取り付けられる複数のアーム部分を有するロボットアーム５５３／１１５３を含んでもよく、複数のアーム部分のそれぞれのアーム部分上に配置される検証記号のグループを含んでもよい。図１０Ａ〜図１０Ｃの実施例では、検証記号のグループは、リンク５５４Ｂ、リンク５５４Ｃ、及びロボットハンド５５５上にそれぞれ配置される、検証記号５３０Ａ〜５３０Ｃを含んでもよい。図１１Ａ〜図１１Ｃの実施例では、検証記号のグループは、リンク１１５４Ｃ、１１５４Ｄ、及びロボットハンド１１５５上にそれぞれ配置され得る、検証記号１１３０Ａ〜１１３０Ｃを含んでよい。
【００８８】
一実施形態において、方法１２００は、ステップ１２０１を含むことができ、ステップでは、ロボット制御システム又は他のコンピューティングシステムの制御回路１１１が、ロボット操作を実行するために、ロボットアーム（例えば、ロボットアーム５３３／１１５３）の動作を制御するための動作コマンドを出力する。動作コマンドは、例えば、キャリブレーション情報に基づいてもよい。カメラキャリブレーション情報等のキャリブレーション情報は、第１のカメラキャリブレーション等の、第１のキャリブレーション操作から判断され得る。場合によっては、ステップ１２０１は、ロボット操作を実行するために、制御回路１１１がロボットアームの動作を制御する、方法４００のステップ４０９と同一又は類似であり得る。例えば、ロボット操作は、倉庫内の箱又は他の物体を取り出すことを含む場合がある。この例において、制御回路１１１は、カメラ（例えば、図１０Ａ〜図１０Ｃのカメラ５７０、又は図１１Ａ〜図１１Ｂのカメラ１１７０）によって生成される箱の画像に基づいて、かつキャリブレーション情報、カメラと箱との間の空間関係、及び／又はロボット（例えば、ロボット５５０Ａ〜１１５０）と箱との間の空間関係に基づいて判断するように構成され得る。一実施形態において、方法１２００は、制御回路１１１が、キャリブレーション情報を判断するために第１のキャリブレーション操作を実行するステップを含むことができる。第１のキャリブレーション操作を実行するこのようなステップは、図４Ａの方法４００のステップ４０１と同様であり得、ステップ１２０１の前に実行され得る。一例として、第１のキャリブレーション操作は、カメラによって生成されるキャリブレーション画像に基づいて、カメラキャリブレーションパラメーターの推定値を判断することを含むカメラキャリブレーションであってもよい。
【００８９】
一実施形態において、方法１２００は、ステップ１２０３を含むことができ、そのステップでは、制御回路１１１又はコンピューティングシステムの他の構成要素が、参照画像座標のグループを判断する。参照画像座標のグループは、例えば、参照画像内に検証記号（例えば、５３０Ａ〜５３０Ｃ／１１３０Ａ〜１１３０Ｃ）のグループが現れるそれぞれの座標であり得、参照画像は、検証記号（例えば、５３０Ａ〜５３０Ｃ／１１３０Ａ〜１１３０Ｃ）のグループを表すための画像であり得る。一実施形態において、参照画像座標のグループを使用して、キャリブレーション情報を検証することができる。
【００９０】
例えば、図１３Ａは、図１１Ａの検証記号１１３０Ａ〜１１３０Ｃのグループを表す参照画像１１２０を図示する。図１３Ａの実施例では、参照画像座標のグループは、第１の参照画像座標、第２の参照画像座標、及び第３の参照画像座標を含み得る。かかる実施例では、第１の参照画像座標は、参照画像１１２０内に検証記号１１３０Ａが現れる箇所を識別することができ、第２の参照画像座標は、参照画像１１２０内に検証記号１１３０Ｂが現れる箇所を識別することができ、第３の参照画像座標は、参照画像１１２０内に検証記号１１３０Ｃが現れる箇所を識別することができる。より具体的な例では、第１の参照画像座標、第２の参照画像座標、及び第３の参照画像座標の各々は、画素座標［ｕ  ｖ］Ｔであってもよい。より具体的には、図１３Ａは、検証記号１１３０Ａ、１１３０Ｂ、及び１１３０Ｃの３つの参照画像座標を、それぞれ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃとして図示する。この実施例では、ラベルｒｅｆ＿Ｎ（例えば、ｒｅｆ＿１）は、ロボットアーム１１５３が、第１のポーズ（Ｎ＝１のとき）等の、Ｎ番目のポーズにあるときに生成される参照画像と関連付けられた座標を指し得る。以下でより詳細に論じられるように、図１３Ａの参照画像１１２０は、図１１Ａに示されるロボットアーム１１５３の例示的なポーズであり得る、第１のポーズに対応し得るか、又はより一般的に、第１のポーズと関連付けられ得る。異なるポーズは、検証記号１１３０Ａ〜１１３０Ｃをカメラ視野１１１０内のそれぞれの箇所の異なるグループにおいて配置することができる。例えば、図１１Ａのポーズは、検証記号１１３０Ａ〜１１３０Ｃを、それぞれ、３Ｄの箇所、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ａ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｂ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｃに配置し得る。このような例では、これらの３Ｄ箇所［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ａ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｂ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｃは、参照画像１１２０内の画素座標［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃに投影するか、又は別様にマッピングすることができる。一実施形態において、画素座標  ［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃの各々は、参照画像１１２０内にそのそれぞれの検証記号１１３０Ａ／１１３０Ｂ／１１３０Ｃが現れる中心を識別し得る。
【００９１】
一実施形態において、ステップ１２０３は、制御回路１１１が、ロボット制御システム１１０又は他のコンピューティングシステムの通信インターフェース１１３及び／又は非一時的コンピューター可読媒体１１５から参照画像（例えば、１１２０）を受信することを含むことができる。例えば、図１３Ａの参照画像１１２０は、ロボットアーム１１５３が、図１１Ａのポーズであるとき、カメラ１１７０によって生成され得る。コンピューティングシステム１１０は、通信インターフェース１１３を介してカメラ１１７０から参照画像１１２０を受信することができ、参照画像１１２０を非一時的コンピューター可読媒体１１５に記憶することができる。ステップ１２０３において、制御回路１１１は、一例において、非一時的コンピューター可読媒体１１５から参照画像１１２０を取得するか、又は別様に受信することができる。非一時的コンピューター可読媒体１１５はまた、検証画像（以下で論じられる）を記憶することができ、制御回路１１１は、非一時的コンピューター可読媒体１１５から検証画像を受信することができる。
【００９２】
一実施形態において、制御回路１１１は、ロボットアーム（例えば、１１５３）の幾何学形状を記述する規定されたモデルに基づいて、参照画像（例えば、１１２０）内の検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループの少なくとも１つの検証記号（例えば、１１３０Ａ）を識別するように構成することができる。例えば、規定されたモデルは、どのリンク、ロボットエンドエフェクタ、又は他のアーム部分がロボットアームを形成するか、それらのそれぞれのサイズ（例えば、長さ）、及びそれらがどのように接続されているか、を説明することができ、並びに／若しくはどのアーム部分が、その上に配置された少なくとも１つの検証記号（例えば、１１３０Ａ）を有するか、を記述することができる。そのような実施形態において、制御回路は、モデルに基づいて、少なくとも１つの検証記号が現れることが予想される参照画像（例えば、１１２０）内の領域を判断し、参照画像の領域内の少なくとも１つの検証記号（例えば、１１３０Ａ）を検索するように構成することができる。一実施形態において、モデルは、ロボットアーム（例えば、１１５３）上の検証記号（例えば、１１３０Ａ）の位置を記憶することができ、又はより一般的に記述することができる。検証記号の位置（記号位置とも呼ばれる）は、ロボットアーム（例えば、１１５３）上の検証記号のおおよその箇所であり得る。
【００９３】
例えば、参照画像（例えば、１１２０）が、参照画像と関連付けられたポーズ、又はより具体的には、参照画像内に現れるロボットアームのポーズを生成するために使用される動作コマンドの１つ以上のパラメーター値とともに記憶される場合、１つ以上のパラメーター値及びモデルは、ロボットアームが動作コマンドに従って動かされるとき、ロボットアーム（例えば、１１５３）のポーズを推定するために使用され得る。以下でより詳細に論じられるように、１つ以上のパラメーター値は、一実施形態において、ロボットアーム（例えば、１１５３）を動かすために使用される１つ以上のアクチュエータ（例えば、１つ以上のモーター）を制御するために使用される１つ以上のアクチュエータパラメーターに属し得る。推定されるポーズを使用して、ロボットアーム（例えば、１１５３）上の検証記号（例えば、１１３０Ａ）の箇所を推定することができ、推定される箇所を使用して、検証記号が参照画像（例えば、１１２０）内に現れる可能性が高い箇所を推定することができる。
【００９４】
上記の実施例では、制御回路１１１は、検証記号又は複数の検証記号が現れることが予想される参照画像（例えば、１１２０）の領域（複数の場合もある）に焦点を合わせるように構成され得る。かかる技術は、制御回路１１１が検証記号（例えば、１１３０Ａ〜１１３０Ｃ）について参照画像（例えば、１１２０）の全体を検索することを回避し、それゆえ参照画像（例えば、１１２０）内の検証記号（例えば、１１３０Ａ〜１１３０Ｃ）をより迅速に識別することを可能にし得る。上記の実施例におけるモデルはまた、検証画像内の検証記号を検索するために使用され得る（以下で論じられる）。
【００９５】
上記で言及されたように、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、一実施形態において、それぞれの円環として成形されてもよい。そのような実施形態では、制御回路１１１は、検証記号を形成する円形リングを識別することによって、参照画像（例えば、１１２０）内の検証記号（例えば、１１３０Ａ）を認識するか、又はそうでなければ識別するように構成することができる。検証記号のグループが、図１１Ｃに関して、上記に示されるように、異なるそれぞれのサイズを有するそれぞれの円形リングとして成形される場合、制御回路１１１は、検証記号を形成するそれぞれの円形リングのサイズ（例えば、半径ｒ２，１１３０Ａ）に基づいて、検証記号（例えば、１１３０Ａ）を識別するように構成することができる。場合によっては、検証記号（例えば、１１３０Ａ）が少なくとも第１の円形領域若しくは第１の円形及び第２の円形領域若しくは第２の円形を有する円形リングとして成形される場合、制御回路１１１は、第１の円形領域若しくは第１の円形の半径と第２の円形領域若しくは第２の円形の半径との間の比に基づいて、検証記号を識別するように構成することができる。例えば、制御回路１１１は、円形リングを識別し、リングが、比ｒ２，１１３０Ａ／ｒ１，１１３０Ａを有することを確認することに基づいて、検証記号１１３０Ａを識別するように構成することができる。
【００９６】
上記でさらに言及されたように、ステップ１２０３の参照画像（例えば、図１３Ａの１１２０）は、ロボットアーム（例えば、１１５３）が、図１１Ａに図示されるポーズ等の、第１のポーズにあるとき、カメラ（例えば、図１１Ａの１１７０）によって生成され得る。参照画像は、第１の期間中、又はより一般的には、第１の時点でカメラによって生成され得る。第１の期間は、参照画像を生成するために使用される、又は別様に関連付けられる期間（例えば、ミリ秒、秒、又は分の期間）を指してもよい。例えば、第１の期間は、参照画像を取り込むためのカメラ動作用の時間を含んでよく、いくつかの例では、検証記号をカメラ視野内に位置決めするためのロボット動作のための時間をさら含んでよい。場合によっては、参照画像が生成される第１の期間は、例えば、ステップ１２０１及び／又はステップ１２０３の数時間、数日、又は数週間前であってもよい。一実施形態において、コンピューティングシステム、又はより具体的には、ステップ１２０１及び１２０３を実行する制御回路１１１は、参照画像（例えば、１１２０）を生成することに非関与であり得る。一実施形態において、コンピューティングシステム、又はより具体的には、ステップ１２０１及び１２０３を実行する制御回路１１１は、参照画像（例えば、１１２０）の生成に関与することができる。例えば、コンピューティングシステムは、ステップ１２０１及び／又は１２０３に先行するステップにおいて、ロボットアーム（例えば、１１５３）を第１のポーズに動作させるための第１の期間中に動作コマンドを出力し得る。そのような例において、この先行するステップは、方法１２００の一部であり得る。第１のポーズは、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループを、上記で論じられた箇所［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ａ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｂ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｃ等の、第１のポーズと関連付けられたそれぞれの箇所の第１のグループに動かされ得る。場合によっては、このようなステップは、図４Ａのステップ４０３と同様であってもよい。上記の例では、コンピューティングシステム、又はより具体的には、制御回路１１１は、このステップにおいて、カメラコマンドをさらに出力することができ、これにより、ロボットアーム（例えば、１１５３）が第１のポーズにある間に、カメラ（例えば、１１７０）に参照画像（例えば、１１２０）を生成させる。一実施形態において、コンピューティングシステムは、参照画像（例えば、１１２０）を、カメラから受信し、かつ参照画像を、図１Ｃの非一時的コンピューター可読媒体１１５又は別の非一時的コンピューター可読媒体に記憶することができる。場合によっては、コンピューティングシステムは、ロボットアーム（例えば、１１５３）が第１のポーズに戻ること、及び／又は検証記号（例えば、１１３０Ａ〜１１３０Ｃ）をそれぞれの箇所の第１のグループに戻すことを可能にする情報を、さらに記憶してもよい。例えば、コンピューティングシステムは、それぞれの箇所の第１のグループを記憶し得るか、又はより具体的に、それらの３Ｄ座標を記憶し得、及び／若しくはロボットアーム（例えば、１１５３）を第１のポーズに動かすための動作コマンドのパラメーター値を記憶し得る。一実施形態において、座標及び／又は動作コマンドは、記憶された情報を上記で論じられた参照画像（例えば、１１２０）と関連付ける態様で、非一時的コンピューター可読媒体１１５内に記憶することができる。
【００９７】
一実施形態において、ロボットアームを第１のポーズに動かすために上記で論じられた動作コマンドは、ロボットアーム（例えば、１１５３）の動作を記述する１つ以上のパラメーター値を含むことができる。上記で言及されたように、場合によっては、１つ以上のパラメーター値は、ロボットアーム（例えば、１１５３）のために動作を作成する１つ以上のアクチュエータを制御する１つ以上のアクチュエータパラメーターに属し得る。そのような場合、１つ以上のパラメーター値は、１つ以上のアクチュエータパラメーター値（ロボットジョイント値とも呼ばれる）と呼ばれることができる。例えば、１つ以上のアクチュエータパラメーター値は、例えば、互いに対するロボットアームのアーム部分のそれぞれの回動量、互いに対するアーム部分のそれぞれの箇所及び／又は向き、並びに／若しくはアーム部分を接続するジョイントのそれぞれの箇所（例えば、１１５６Ａ〜１１５６Ｄ）を記述し得る。例えば、動作コマンドの１つ以上のアクチュエータパラメーター値は、それぞれの角度値を記述することができ、それによってロボット１１５０内のモーターが、それらの直前のアーム部分に対して種々のアーム部分（例えば、リンク１１５４Ａ〜１１５４Ｅ、及びロボットハンド１１５５）を回動させる。
【００９８】
一実施形態において、上記で論じられた動作コマンドは、任意のパラメーター値（複数の場合もある）（例えば、ランダムなパラメーター値（複数の場合もある））を有し得、動作コマンドによって引き起こされる第１のポーズは、任意のポーズであり得る。一実施形態において、上記で論じられた動作コマンドは、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）の一部又は全てが、参照画像（例えば、１１２０）内に所望の外観を有することを可能にする動作コマンドであってもよい。例えば、上記で論じられたように、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループの一部又は全ては、同心円形領域又は同心円によって形成されるリング形状等の、円形形状を有し得る。かかる一例では、検証記号のうちの少なくとも１つ（例えば、１１３０Ａ）が、カメラ（例えば、１１７０）に対してある特定の向きにあるとき、少なくとも１つの検証記号（例えば、１１３０Ａ）は、完全に円形に見えるのではなく、得られた参照画像において楕円形に見えることがある。楕円形の外観は、不正確なキャリブレーション検証をもたらす可能性がある。例えば、検証記号１１３０Ａに関する参照画像座標が、参照画像内に記号の中心が現れる箇所である場合、この参照画像座標は、参照画像内に検証記号１１３０Ａが楕円形に現れるときを、正確に判断することがより困難であり得る。さらに、参照画像内の検証記号１１３０Ａを識別する（例えば、参照画像内の他の特徴から検証記号１１３０Ａを区別する）ことが、参照画像内のリングパターンを識別することと、リングパターンが、記号と関連付けられた同心円間の特定の比（例えば、検証記号１１３０Ａと関連付けられた比ｒ２，１１３０Ａ／ｒ１，１１３０Ａ）を有することを検証することと、に依存する場合、この識別は、リングパターンが参照画像内に楕円形に見えるとき、正確に実行することがより困難であり得る。それゆえ、制御回路１１１が、参照画像を生成することと関連付けられた動作コマンドを出力することを含む場合、制御回路１１１は、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループを参照画像内に完全に又は実質的に円形に見えるような態様で、位置決めさせる動作コマンドを生成することを試みることができる。
【００９９】
一例として、制御回路１１１は、ロボットアーム（例えば、１１５３）を、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループが、カメラ（例えば、１１７０）に真正面を向くポーズに動作させる、動作コマンドを生成することができる。例えば、ポーズは、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループのうちの少なくとも１つの検証記号を、カメラ（例えば、１１７０）に対して凹形である仮想球の表面に対して接線方向に向くようにさせてもよい。図１１Ａでは、ロボットアーム１１５３のための図示されたポーズが、検証記号１１３０Ａ及び検証記号１１３０Ｂに、カメラ１７０に対して凹形である仮想球１１２１の表面に対して接線方向にあるそれぞれの向きを有することをもたらし得、及び検証記号１１３０Ｃに、カメラ１１７０に対してもまた凹形である仮想球１１２３の表面に対して接線方向になる向きを有することを可能にし得る。上記で論じられた第１のポーズであり得る、かかるポーズにおいて、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、参照画像（例えば、１１２０）内にそれぞれの円形形状として現れ得る。より具体的には、かかる実施例における検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、参照画像内に偏心率を伴わずに現れるように、又は規定された偏心率閾値未満であるそれぞれの量の偏心率で現れるような態様で位置決めされ得る。上記の実施例において、想像される円１１２１及び１１２３は、カメラ（例えば、１１７０）に中心を置くことができる。一実施形態において、制御回路１１１は、ランダムな動作コマンドを生成し、ランダムな動作コマンドを通して検索して、検証記号のグループについて上記で論じられた向きを生成することができるものを見出すように構成されてもよい。見出された動作コマンドは、参照画像（例えば、１１２０）を生成するために、制御回路１１１によって出力することができる。
【０１００】
図１２Ａ〜図１２Ｂに戻ると、一実施形態における方法１２００は、ステップ１２０５を含み、そのステップでは、制御回路１１１は、図１０Ａ又は図１１Ａに図示される第１のポーズ等の、第１のポーズに動かすように、ロボットアームを制御するための動作コマンドを出力し、第１のポーズは、上記で論じられたように、第１の期間中に参照画像（例えば、１１２０）が生成されるポーズである。場合によっては、動作コマンドは、通信インターフェース１１３を介してロボット（例えば、５５０Ａ／１１５０）に出力することができる。一実施形態において、ステップ１２０５における動作コマンドは、ステップ１２０１の動作コマンドに加えてあるため、追加の動作コマンドと称することができる。追加の動作コマンドは、第１の期間に続く、第２の期間、又はより一般的には、第２の時点の間に出力され得る。第２の期間は、検証画像を生成するために使用される、又は別様に関連付けられる期間（例えば、ミリ秒、秒、又は分の期間）を指し得る。例えば、第２の期間は、検証記号をカメラ視野内に位置決めするロボット動作のための時間及び／又は検証画像を取り込むためのカメラ操作のための時間を含み得る。場合によっては、第２の期間（又はより一般的には、第２の時点）は、第１の期間（又はより一般的には、第１の時点）に数時間、数日、又は数週間にわたって続いてもよい。以下でより詳細に論じられるように、追加の動作コマンドを使用して、第２の期間中に検証画像を生成することができる。一実施形態において、追加の動作コマンドは、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループがカメラ（例えば、１１７０）に真正面を向くポーズ（例えば、図１１Ａの第１のポーズ）にロボットアーム（例えば、１１５３）を動かすことができる。例えば、検証記号のグループは、カメラに対して凹形である１つ以上の仮想球に対して接する、それぞれの向きを有し得る。かかるポーズでは、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、検証画像（例えば、図１３Ｂの１１６０）内にそれぞれ円形形状として現れ得る。
【０１０１】
一実施形態において、方法１２００が、上記で論じられたように、第１の期間中に参照画像を生成するための動作コマンドを出力するステップを含む場合、第１の期間中に参照画像を生成するための動作コマンドは、第１の追加の動作コマンドであってもよく、一方で第２の期間中に検証画像を生成するためのステップ１２０５における動作コマンドは、第２の追加の動作コマンドであってもよい。場合によっては、第１の追加の動作コマンドは、より早い動作コマンドであってもよく、一方で第２の追加の動作コマンドは、より遅い動作コマンドであってもよい。場合によっては、第１の追加の動作コマンドは、第１のポーズに動くようにロボットアームを制御するための１つ以上のアクチュエータパラメーター値（又はロボットジョイント値）を有することができ、第２の追加の動作コマンドはまた、１つ以上のアクチュエータパラメーター値を有することができる。より具体的には、第１の追加の動作コマンド及び第２の追加の動作コマンドは、同じアクチュエータパラメーター値を有し得る。一例として、ロボット（例えば、１１５０）が、種々のアーム部分（例えば、リンク１１５４Ａ〜１１５４Ｅ、及びロボットハンド１１５５）を互いに対して回動させる複数のモーターを含む場合、１つ以上のアクチュエータパラメーター値は、複数のモーターによってどの程度の回動が出力されるかを制御する複数のそれぞれの角度値を含み得る。この実施例では、第１の追加の動作コマンド及び第２の追加の動作コマンドは、両方とも、複数のモーターによってどの程度の回動が出力されるかを制御する、同一の複数のそれぞれの角度値を含んでよい。
【０１０２】
一実施形態において、第１の追加の動作コマンド及び／又は第２の追加の動作コマンドは、図４Ａのステップ４１１に関して上記で論じられたアイドル期間等の、それぞれのアイドル期間中に出力することができる。場合によっては、キャリブレーション情報が、キャリブレーション操作を実行することによって判断される場合、第１の追加の動作コマンドは、キャリブレーション操作が実行された直後、又はキャリブレーション操作に続く最も早いアイドル期間中に出力され得る。いくつかの状況において、第２の追加の動作コマンドは、キャリブレーション操作が実行されてからの規定された期間が経過すること、ロボットを含む衝突事象、又はカメラとロボット又はその一部との間の変位若しくはミスアライメントの可能性をもたらし得る任意の他の事象（例えば、地震等の天災）等の、規定されたトリガー条件、若しくはいくつかの他のトリガー条件に応答し得る。検証画像を生成することが、制御回路１１１がカメラコマンドを出力することを含む場合、いくつかの例において、カメラコマンドはまた、規定されたトリガー条件に応答して出力され得る。
【０１０３】
一実施形態において、ロボットアーム（例えば、１１５３）に関するステップ１２０５の第１のポーズは、上記で論じられたように、ロボットアーム上に配置される検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループに関するそれぞれの参照箇所の特定のグループと関連付けられ得る。例えば、それぞれの参照箇所のグループは、３Ｄ箇所［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ａ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｂ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｃであり得る。参照画像（例えば、１１２０）が生成されるとき、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、第１のポーズと関連付けられたそれぞれの参照箇所のグループに位置し得る。ステップ１２０５において、追加の動作コマンドがロボットアームを第１のポーズに戻す場合、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、参照箇所のグループ（例えば、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ａ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｂ、［ｘｒｅｆ＿１  ｙｒｅｆ＿１  ｚｒｅｆ＿１］Ｔ１１３０Ｃ）に戻り得る。かかる実施例では、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループは、参照画像（例えば、１１２０）が生成されるとき、それぞれの参照箇所のグループに配置することができ、検証画像（例えば、１１６０）が生成されるとき、再びそれぞれの参照箇所のグループに配置することができる。
【０１０４】
図１２Ａ〜図１２Ｂに戻ると、一実施形態における方法１２００は、ステップ１２０７を含むことができ、そのステップでは、制御回路１１１が、図１３Ｂにおける検証画像１１６０等の検証画像を受信する。上記で言及されたように、参照画像（例えば、１１６０）は、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループを表すための画像であり得る。この実施例では、検証画像（例えば、１１６０）は、検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループもまた表すためのさらなる画像であってもよく、図１１Ａに図示される第１のポーズ等の、ステップ１２０５の追加の動作コマンドの結果として、ロボットアーム（例えば、１１５３）が第１のポーズに動かされたときに生成されてもよい。
【０１０５】
一実施形態において、方法１２００は、ステップ１２０９を含むことができ、そのステップでは、制御回路１１１が、検証画像座標のグループを判断する。この実施形態では、検証画像座標のグループは、検証画像（例えば、図１３Ｂの１１６０）内に検証記号（例えば、１１３０Ａ〜１１３０Ｃ）のグループが現れる、それぞれの座標であり得る。一実施形態において、検証画像座標のグループは、カメラキャリブレーション情報等の、キャリブレーション情報を検証するためのものであり得る。ステップ１２０３における参照画像座標についての上述の論考と同様に、一例における検証画像座標のグループは、第１の検証画像座標、第２の検証画像座標、及び第３の検証画像座標を含んでよい。より具体的な例では、第１の検証画像座標、第２の検証画像座標、及び第３の検証画像座標の各々は、例えば、そのそれぞれの検証記号の中心を識別するピクセル座標であり得る。例えば、図１３Ｂは、３つの検証画像座標、又はより具体的に、ピクセル座標［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ａ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｂ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｃを図示し、検証画像１１６０内に検証記号１１３０Ａ〜１１３０Ｃのそれぞれの中心が現れる。参照画像座標の論考と同様に、ラベルｖｅｒｉｆｙ＿Ｎ（例えば、ｖｅｒｉｆｙ＿１）は、ロボットアームが第１のポーズ（Ｎ＝１）等の、Ｎ番目のポーズにあるときに生成される検証画像と関連付けられた座標を指し得る。
【０１０６】
一実施形態において、制御回路１１１は、複数の参照画像及び複数の検証画像（例えば、５つの参照画像及び５つの検証画像）について、複数回ステップ１２０３〜１２０９を実行することができる。複数の参照画像及び複数の検証画像は、複数のそれぞれのポーズに対応し得る。例えば、図１０Ａ〜図１０Ｃは、ロボットアーム５５３のための一連の３つのポーズを図示する。この例では、ロボットコントローラー１１０又は任意の他のコンピューティングシステムの制御回路１１１は、図１０Ａに示されるような、第１のポーズと両方が関連付けられた第１の参照画像及び第１の検証画像を受信し得、図１０Ｂに示されるような、第２のポーズ両方が関連付けられた第２の参照画像及び第２の検証画像、並びに図１０Ｃに示されるような、第３のポーズと両方が関連付けられた第３の参照画像及び第３の検証画像を受信し得る。別の例では、図１３Ａの参照画像１１２０は、第１の参照画像であってもよく、図１３Ｂの検証画像１１６０は、第１の検証画像であってもよく、これらの両方が、ロボットアーム１１５３について図１１Ａに図示される第１のポーズと関連付けられてもよい。この例において、制御回路１１１は、図１４Ａの第２の参照画像１１２２、及び図１４Ｂの第２の検証画像１１６２をさらに受信することができ、これらの両方が、図１１Ｂに図示される第２のポーズと関連付けられてもよい。この実施例では、図１３Ａの参照画像座標［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃは、第１の参照画像座標のグループであってもよく、一方で図１３Ｂの検証画像座標［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ａ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｂ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｃは、第１の検証画像座標のグループであってもよい。この実施例の制御回路１１１は、さらに、図１４Ａの第２の参照画像１１２２の第２の参照画像座標のグループ［ｕｒｅｆ＿２  ｖｒｅｆ＿２］Ｔ１１３０Ａ、［ｕｒｅｆ＿２  ｖｒｅｆ＿２］Ｔ１１３０Ｃを判断し、図１４Ｂの第２の検証画像１１６２の第２の検証画像座標のグループ［ｕｖｅｒｉｆｙ＿２  ｖｖｅｒｉｆｙ＿２］Ｔ１１３０Ａ、［ｕｖｅｒｉｆｙ＿２  ｖｖｅｒｉｆｙ＿２］Ｔ１１３０Ｂ、［ｕｖｅｒｉｆｙ＿２  ｖｖｅｒｉｆｙ＿２］Ｔ１１３０Ｃを判断するように構成され得る。上記の実施例において、制御回路１１１は、いくつかの例において、ロボットアーム（例えば、１１５３）を複数のそれぞれのポーズに動かすための異なるそれぞれの動作コマンドを出力するように構成することができ、複数の参照画像及び／又は複数の検証画像は、複数のそれぞれのポーズと関連付けられる。
【０１０７】
図１２Ａ〜図１２Ｂに戻ると、一実施形態において、方法１２００は、ステップ１２１１を含んでよく、ここで、制御回路１１１は、参照画像座標のグループ（例えば、図１３Ａの［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂ、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃ  ）と検証画像座標のグループ（例えば、図１３Ｂの［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ａ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｂ、［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｃ）との間のそれぞれの偏差量に基づく、それぞれの偏差パラメーター値のグループを判断する。例えば、図１３Ａ及び図１３Ｂの文脈におけるそれぞれの偏差パラメーター値のグループは、第１の偏差パラメーター値、第２の偏差パラメーター値、及び第３の偏差パラメーター値を含んでよい。第１の偏差パラメーター値は、参照画像１１２０内の検証記号１１３０Ａについての第１の参照画像座標［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａと、検証画像１１６０内の検証記号１１３０Ａについての第１の検証画像座標［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ａとの間の偏差量に基づいてもよい。例えば、第１の偏差パラメーター値は、図４Ｂのステップ４５７に関して上記で論じられたように、第１の参照画像座標と第１の検証画像座標との間の距離に等しく、又はより一般的に距離に基づいてもよい。同様に、第２の偏差パラメーター値は、参照画像１１２０内の検証記号１１３０Ｂについての第２の参照画像座標［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｂと、検証画像１１６０内の検証記号１１３０Ｂについての第２の検証画像座標［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｂとの間の偏差量に基づいて（例えば、等しくとも）よい。さらに、第３の偏差パラメーター値は、参照画像１１２０内の検証記号１１３０Ｃについての第３の参照画像座標［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ｃと、検証画像１１６０内の検証記号１１３０Ｃについての第３の検証画像座標［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ｃとの間の偏差量に基づいてもよい。上記の実施例において、それぞれの偏差パラメーター値のグループは、検証記号１１３０Ａ〜１１３０Ｃのグループと関連付けられる。すなわち、第１の偏差パラメーター値は、検証記号１１３０Ａと関連付けられ、一方で第２の偏差パラメーター値は、検証記号１１３０Ｂと関連付けられ、第３の偏差パラメーター値は、検証記号１１３０Ｃと関連付けられる。
【０１０８】
一実施形態において、それぞれの偏差パラメーター値のグループのいくつか又は全ては、参照画像及び検証画像の単一の対に上基づいてもよく、これらの両方が、ロボットアームのための共通のポーズと関連付けられてもよい。例えば、上記で論じられた第１の偏差パラメーター値は、検証記号１１３０Ａと関連付けられてもよく、参照画像１１２０及び検証画像１１６０の単一の対に基づいてもよく、これらの両方が、図１１Ａのポーズ等の、共通のポーズと関連付けられる。
【０１０９】
一実施形態において、それぞれの偏差パラメーター値のグループのいくつか又は全ては、それぞれの参照画像及びそれぞれの検証画像の複数の対に基づいてもよく、各対は、ロボットアームのための複数のポーズのそれぞれのポーズと関連付けられる。一例として、検証記号１１３０Ａと関連付けられる上記で論じられた第１の偏差パラメーター値は、（図１３Ａ及び図１３Ｂの）参照画像１１２０及び検証画像１１６０の第１の対、並びに（図１４Ａ及び図１４Ｂの）参照画像１１２２及び検証画像１１６２の第２の対に基づいてもよい。第１の対は、図１１Ａの第１のポーズと関連付けられてもよく、一方、第２の対は、図１１Ｂの第２のポーズと関連付けられてもよい。より具体的には、この例における第１の偏差パラメーター値は、［ｕｒｅｆ＿１  ｖｒｅｆ＿１］Ｔ１１３０Ａと［ｕｖｅｒｉｆｙ＿１  ｖｖｅｒｉｆｙ＿１］Ｔ１１３０Ａ（第１のポーズと関連付けられる）との間の偏差量（例えば、距離）に基づき得、［ｕｒｅｆ＿２  ｖｒｅｆ＿２］Ｔ１１３０Ａと［ｕｖｅｒｉｆｙ＿２  ｖｖｅｒｉｆｙ＿２］Ｔ１１３０Ａ（第２のポーズと関連付けられる）との間の偏差量に基づくことができる。一例において、第１の偏差パラメーター値は、２つの偏差量の平均に等しくてもよく、又はそれに基づいてもよい。より一般的に、この実施例におけるそれぞれの偏差パラメーター値のグループは、（第１のポーズと関連付けられる）第１の参照画像座標のグループと第１の検証画像座標のグループとの間のそれぞれの偏差量に基づいてもよく、さらに、（第２のポーズと関連付けられる）第２の参照画像座標のグループと第２の検証画像座標のグループとの間のそれぞれの偏差量にさらに基づいてもよい。
【０１１０】
場合によっては、第１の参照画像内の参照画像座標及び第２の参照画像内の参照画像座標は、上記で論じられた２つの参照画像１１２０、１１２２等の、１組の参照画像内に共通の検証記号（例えば、１１３０Ａ）が現れる箇所を示す１組の参照画像座標の一部であり得る。この実施例における参照画像の組及び参照画像座標の組は、それぞれ、図１１Ａ及び図１１Ｂにおける２つのポーズ等の、ロボットアーム（例えば、１１５３）のためのそれぞれのポーズの組に対応し得る。同様に、第１の検証画像内の検証画像座標及び第２の検証画像内の検証画像座標は、上記で論じられた検証画像１１６０、１１６２等の、検証画像の組内に検証記号が現れる箇所を示す検証画像座標の組の一部であり得る。検証画像の組及び検証画像座標の組はまた、ポーズの組に対応し得る。このような場合において、検証記号と関連付けられる偏差パラメーター値は、参照画像座標の組と検証画像座標の組との間のそれぞれの偏差量に基づいてもよい。
【０１１１】
図１２Ａ〜図１２Ｂに戻ると、方法１２００は、ステップ１２１３を含むことができ、そのステップでは、制御回路１１１が、それぞれの偏差パラメーター値のグループの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断する。場合によっては、ステップ１２１３は、図４Ｂのステップ４５９と同様であり得る。一実施形態において、ステップ１２１３は、それぞれの偏差パラメーター値のグループの各偏差パラメーター値が、それぞれの偏差閾値を超過しているかどうかを判断することを含むことができる。例えば、制御回路１１１は、検証記号１１３０Ａと関連付けられた偏差パラメーター値が、規定された偏差閾値を超過したかどうか、検証記号１１３０Ｂと関連付けられた偏差パラメーター値が、規定された偏差閾値を超過したかどうか、及び／又は検証記号１１３０Ｃと関連付けられた偏差パラメーター値が、規定された偏差閾値を超過したかどうかを判断することができる。場合によっては、それぞれの偏差閾値は、同じ値を有することができ、それゆえ、検証記号のための共通の偏差閾値を形成することができるか、又は異なる値を有することができる。
【０１１２】
一実施形態において、方法は、ステップ１２１５を含んでもよく、そのステップにおいて、制御回路１１１は、それぞれの偏差パラメーター値のグループの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するという判断に応答して、（ａ）それぞれの偏差パラメーター値のグループの少なくとも１つが、規定された偏差閾値を超過するという通知を出力すること、及び、（ｂ）更新されたキャリブレーション情報（例えば、更新されたキャリブレーション情報）を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することができる。例えば、ステップ１２１５は、ロボットコントローラー１１０と通信する電子ディスプレイ等の、ユーザーインターフェースデバイスに通知を出力することを含み得る。電子ディスプレイは、例えば、少なくとも１つの偏差パラメーター値、又は少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過することの指標を表示し得る。一実施形態において、ステップ１２１５におけるキャリブレーション操作を実行することは、図４Ｂにおけるステップ４６１と同様又は同一であってもよい。一実施形態において、ステップ１２０１のキャリブレーション情報が、第１のキャリブレーション操作を実行することによって判断される場合、ステップ１２１５のキャリブレーション操作は、第１のキャリブレーション操作に続く、第２のキャリブレーション操作であり得る。
【０１１３】
一実施形態において、規定された偏差閾値を超過する少なくとも１つの偏差パラメーター値は、カメラ（例えば、図１１Ａ〜図１１Ｂの１１７０）への変化及び／又はカメラの環境若しくはロボット操作システム（例えば、１１００）への変化があることを示すことができる。場合によっては、カメラへの変化は、例えば、カメラのレンズ又はカメラのイメージセンサーが、温度変化又は物理的損傷に起因して、形状又はサイズが変化した場合等の、内部変化であってもよい。場合によっては、カメラへの変化は、カメラ（例えば、１７０）が装着される箇所への変化、例えば、カメラが装着される構造（例えば、天井）内の振動に起因する等の変化を含み得る。場合によっては、カメラの環境における又はロボット操作システムに対する変化は、ロボットが装着される構造（例えば床）における振動に起因する等の、ロボット（例えば、１１５０）のベース（例えば、１１５２）の位置又は向きの変化を含み得る。場合によっては、カメラの環境又はロボット操作システムへの変化は、ロボットアームのアーム部分間（例えば、ロボットアーム１１５３のリンク１１５４Ａ〜１１５４Ｅ間）、又はアーム部分自体の関係における変化であり得る。例えば、アーム部分（例えば、リンク１１５４Ｄ又はロボットハンド１１５５）のうちの１つは、コンピューティングシステム１１０によって計画されていなかった事象に起因して、湾曲又は別様に変形若しくは損傷する場合がある。計画外の事象は、衝突事象、又はロボット（例えば、１１５０）若しくはロボット操作システムの他の要素における、変化の可能性につながり得るいくつかの他の予想外の事象であり得る。上記で論じられたキャリブレーション検証は、カメラ（例えば、１１７０）への変化及び／又はカメラの環境若しくはロボット操作システム１１００への変化を検出するための、迅速かつ効率的な技術を提供し得る。例えば、カメラ（例えば、１１７０）及び／又はロボット（例えば、１１５０）における変化は、参照画像座標（複数の場合もある）と対応する検証画像座標（複数の場合もある）とを比較して、それらの間の差異を判断することによって検出され得る。多くの場合、このような比較は、コンピューティングシステム１１０の計算リソースに大きな需要をかけることなく行うことができる。例えば、比較は、限られた量のプロセッサ実行時間及び／又は限られた量のメモリのみを取得する計算で行うことができる。それゆえ、比較は、計算効率的な態様で、キャリブレーション情報の精度の正確な監視を容易にすることができる。
【０１１４】
一実施形態において、規定された偏差閾値を超過する少なくとも１つの偏差パラメーター値は、第１のカメラキャリブレーションからのカメラキャリブレーション情報が、もはや十分に正確でないカメラキャリブレーション誤差等の、キャリブレーション誤差があることを示し得る。一実施形態において、方法１２００は、制御回路１１１が、少なくとも１つの偏差パラメーター値に、規定された偏差閾値を超過させるキャリブレーション誤差のタイプ（ミスアライメントのタイプとも呼ばれる）を判断することを含むことができる。キャリブレーション誤差のタイプは、例えば、キャリブレーション情報（例えば、カメラキャリブレーション情報）に対する精度の損失が、ロボットへの変化によって引き起こされるかどうか、又は別様にロボットへの変化を表すものによって引き起こされるかどうか、又は精度の損失が、カメラへの変化によって引き起こされるかどうか、又は別様にカメラへの変化を表すものによって引き起こされるかどうかを示し得る。例えば、カメラ（例えば、１１７０）への変化は、上記で論じられたように、カメラへの内部変化及び／又はカメラが装着される箇所への変化を含んでもよい。ロボットへの変化は、上記で論じられたように、ロボット（例えば、１１５０）のベース（例えば、１１５２）の箇所又は向きへの変化、ロボットアーム（例えば、１１５３）のアーム部分間の関係への変化、及び／若しくはアーム部分自体への変化を含み得る。
【０１１５】
一実施形態において、キャリブレーション誤差のタイプの判断は、それぞれの偏差パラメーター値のグループ間の比較に基づくことができ、より具体的には、それぞれの偏差パラメーター値のグループが、実質的に均一な態様で規定された偏差閾値を超過するかどうかに基づくことができる。例えば、異なる検証記号（例えば、１１３０Ａ〜１１３０Ｃ）と関連付けられる偏差パラメーター値のグループが、全て規定された偏差閾値を超過し、実質的に均一な態様で行う場合、制御回路１１１は、精度の損失が、カメラ（例えば、１１７０）によって、又はより具体的には、カメラへの変化によって引き起こされると判断することができる。これは、参照画像又は検証画像における検証記号（例えば、１１３０Ａ〜１１３０Ｃ）の各々の外観が、内部特性及び／又はカメラ（例えば、１１７０）の位置決めに依存するためである。より具体的には、参照画像又は検証画像内の検証記号（例えば、１１３０Ａ〜１１３０Ｃ）の参照画像座標及び検証画像座標は、全て、内部特性又はカメラの位置決めに依存し得る。それゆえ、内部特性又はカメラ（例えば、１１７０）の位置決めへの変化は、多くの場合、全ての検証記号（例えば、１１３０Ａ〜１１３０Ｃ）に関するそれぞれの偏差パラメーター値に、影響を及ぼし得、より具体的には、多くの場合、実質的に均一な態様で全ての偏差パラメーター値を増加させ得る。比較すると、アーム部分等のロボット（例えば、１１５０）の一部に損傷、誤動作、又は他の変化がある場合、ロボットの他の部分が全て全く同じように変化する（例えば、損傷又は全ての誤動作）可能性は低い。それゆえ、少なくとも１つの偏差パラメーター値が規定された偏差閾値を上回るであろうロボットの一部に変化がある場合、偏差パラメーター値のグループの他の偏差パラメーター値は、規定された偏差閾値を下回ったままであってもよく、又は偏差パラメーター値のグループは、全て規定された偏差閾値を超過し得るが、不均一な態様で行う。それゆえ、一実施形態では、異なる検証記号（例えば、１１３０Ａ〜１１３０Ｃ）と関連付けられたそれぞれの偏差パラメーター値のグループのうちの少なくとも１つが、規定された偏差閾値を超過するが、それぞれの偏差パラメーター値のグループが全て、実質的に均一な態様で規定された偏差閾値を超過しない場合、制御回路１１１は、精度の損失がロボット（例えば、１１５０）、又はより具体的にはロボットへの変化によって引き起こされると判断することができる。
【０１１６】
一実施形態において、制御回路１１１は、偏差パラメーター値のグループが、全て実質的に均一な態様で規定された偏差閾値を超過するかどうかを評価するために、規定された均一性閾値を使用することができる。例えば、制御回路１１１は、偏差パラメーター値のうちの少なくとも１つが、規定された偏差閾値を超過するかどうかを判断し得、偏差パラメーター値間（又はそれらが規定された偏差閾値を超過するそれぞれの量間）の差異が、規定された均一性閾値内にあるかどうかをさらに判断し得る。均一性閾値は、（例えば、ロボット操作システムの現在の動作条件に基づいて）動的に規定することができるか、又はあらかじめ規定することができる。規定された均一性閾値を使用する例として、制御回路１１１が、検証記号１１３０Ａ〜１１３０Ｃに関するそれぞれの偏差パラメーター値が、全て規定された偏差閾値を超過するが、検証記号１１３０Ｃと関連付けられた偏差パラメーター値が、規定された均一性閾値を超えて検証記号１１３０Ａと関連付けられた偏差パラメーター値と異なる、及び／又は規定された均一性閾値を超えて検証記号１１３０Ｂと関連付けられた偏差パラメーター値と異なると判断する場合、制御回路１１１は、少なくともロボットハンド１１５５又は検証記号１１３０Ｃが配置される他のアーム部分における変化等の、ロボット１１５０の変化によって精度の損失が引き起こされると判断することができる。上記の例において、制御回路１１１は、偏差パラメーター値を直接比較している。他の実施例において、制御回路１１１は、偏差パラメーター値が、規定された偏差閾値を超過するそれぞれの量、及びそれらのそれぞれの量が規定された均一性閾値を超えて異なるかどうかを比較することができる。別の実施例では、制御回路１１１が、偏差パラメーター値のグループの第１の偏差パラメーター値が規定された偏差閾値を超過するが、偏差パラメーター値のグループのうちの１つ以上が、規定された偏差閾値を超過しないと判断する場合、制御回路１１１はまた、キャリブレーション誤差（ミスアライメントとも呼ばれる）が、第１の偏差パラメーター値と関連付けられた検証記号がその上に配置されるアーム部分等の、ロボット（例えば、１１５０）への変化によって引き起こされると判断し得る。別の実施例において、制御回路１１１が、偏差パラメーター値のグループが、全て規定された偏差閾値を超過し、それらが規定された均一性閾値を超えて互いに異なることがないと判断する場合、次いで、制御回路１１１は、キャリブレーション誤差が、カメラ（例えば、１１７０）の変化によって引き起こされると判断することができる。
【０１１７】
場合によっては、ロボットコントローラー１１０又は他のコンピューティングシステムの制御回路１１１は、図１１Ａ及び図１１Ｂのコンベヤベルト１１７３等の、コンベヤベルトと通信することができる。そのような場合では、制御回路１１１は、少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過すると判断することに応答して、コンベア１１７３ベルトを停止させるように構成することができる。コンベヤベルト１１７３を停止することは、不正確なキャリブレーション情報に基づいて、ロボットアーム１１５３が、コンベヤベルト１１７３上の物体と望ましくない相互作用を有することを防止し得る。
【０１１８】
一実施形態において、制御回路１１１は、キャリブレーション情報が、特定のアーム部分（例えば、検証記号１１３０Ａが配置されるリンク１１５４Ｃ、又は検証記号１１３０Ｂが配置されるリンク１１５４Ｄ、又は検証記号１１３０Ｃが配置されるロボットハンド１１５５）に対して十分に正確である場合、キャリブレーション情報もまた、その特定のアーム部分の上流にある１つ以上のアーム部分に対して十分に正確であることを判断するように構成することができる。上記で言及されたように、複数のアーム部分は、ロボットのベースからロボットエンドエフェクタまで、一連のアーム部分として配置され得る。前者のアーム部分が一連のアーム部分において後者のアーム部分に先行する場合、アーム部分は、別のアーム部分の上流であってもよい。例えば、図１１Ａ〜図１１Ｂのリンク１１５４Ｄは、リンク１１５４Ｅ及びロボットハンド１１５５の上流であり得る。一例において、制御回路１１１が、キャリブレーション情報（例えば、カメラキャリブレーション情報）が、例えば、ロボットハンド１１５５に対して十分に正確であると判断する場合、キャリブレーションが、リンク１１５４Ｅ、１１５４Ｄ、１１５４Ｃ、１１５４Ｂ、及び１１５４Ａ等の、上流アーム部分に対して十分に正確であると判断することができる。この例において、制御回路１１１は、アーム部分上に配置された検証記号と関連付けられた偏差パラメーター値が、規定された偏差閾値を下回る場合、キャリブレーション情報が、アーム部分にとって十分に正確であると判断することができる。一実施形態において、制御回路１１１が、そのアーム部分についてキャリブレーション情報が十分に正確でないように、特定のアーム部分についてキャリブレーション誤差があると判断する場合、制御回路１１１は、いくつか又は全ての下流アーム部分についてキャリブレーション誤差があると判断することができる。例えば、制御回路１１１が、リンク１１５４Ｄ等の特定のロボット部分についてキャリブレーション情報が十分に正確でないと判断する場合、制御回路１１１は、リンク１１５４Ｅ及びロボットハンド１１５５等の下流アーム部分についてキャリブレーション情報が十分に正確でないと判断することができる。
【０１１９】
一実施形態において、ステップ１２０３〜１２１５等の方法１２００の１つ以上のステップは、ユーザーコマンドに応答して、ロボットコントローラー１１０又は他のコンピューティングシステムによって実行することができる。例えば、ユーザー（例えば、システムオペレータ）は、ステップ１２０３〜１２１５を含むキャリブレーション検証操作を手動でトリガーすることができる。一実施形態において、ステップ１２０３〜１２１５は、休止期間中に実行され得る。休止期間は、例えば、コンベヤベルト又はパレットから物体を持ち上げる等のロボット操作が実行されていない期間であり得る。一実施形態において、ステップ１２０３〜１２１５等の方法１２００の１つ以上のステップは、規定されたトリガー条件に応答して、ロボットコントローラー１１０又は他のコンピューティングシステムによって実行することができる。上記で論じられたように、トリガー条件は、例えば、ロボット（例えば、１１５０）を含む衝突、地震又は他の天災等の、計画外の事象を含み得、これは、ロボット（例えば、１１５０）及び／又はカメラ（例えば、１１７０）における変化をもたらし得る。場合によっては、トリガー条件は、ステップ１２０１のキャリブレーション情報を判断するために使用されるキャリブレーション操作等の、より早いキャリブレーション操作の後に経過する特定の期間を含むことができる。このような例において、先のキャリブレーション操作は、第１のキャリブレーション操作であってもよく、一方でステップ１２１５のキャリブレーション操作は、第２のキャリブレーション操作であってもよい。
【０１２０】
種々の実施形態のさらなる論考
実施形態Ａ１は、ベースと、その上に配置される検証記号を有するロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成される通信インターフェースを備えるロボット制御システムに関連する。ロボット制御システムは、第１のカメラキャリブレーション（又は、より一般的に、キャリブレーション操作）を実行して、カメラと関連付けられるカメラキャリブレーション情報（又は、より一般的に、ロボット制御システムと関連付けられるキャリブレーション情報）を判断するように構成される制御回路をさらに備える。制御回路は、ａ）通信インターフェースを介して、ロボットに第１の動作コマンドを出力することによって、第１のカメラキャリブレーション中又は後に、検証記号をカメラ視野内の箇所に動かすようにロボットアームを制御することであって、その箇所は、第１のカメラキャリブレーションの検証のための１つ以上の参照箇所のうちの参照箇所である、ロボットアームを制御することと、ｂ）通信インターフェースを介して、カメラから検証記号の画像を受信することであって、カメラは参照箇所において検証記号の画像を取り込むように構成され、画像は検証のための参照画像である、検証記号の画像を受信することと、ｃ）検証のための参照画像座標を判断することであって、参照画像座標は参照画像内に検証記号が現れる座標である、参照画像座標を判断することと、ｄ）通信インターフェースを介して、ロボットにカメラキャリブレーション情報に基づく第２の動作コマンドを出力することによって、カメラキャリブレーション情報に基づいて、ロボット操作を実行するようにロボットアームの動作を制御することと、ｅ）ロボット操作中に休止期間を検出することと、ｆ）通信インターフェースを介して、ロボットに第３の動作コマンドを出力することによって、休止期間中に、検証記号を少なくとも参照箇所に動かすようにロボットアームを制御することと、ｇ）休止期間中に、通信インターフェースを介して、カメラから検証記号のさらなる画像を受信することであって、カメラは少なくともその参照箇所において検証記号のさらなる画像を取り込むように構成され、さらなる画像は検証のための検証画像である、検証記号のさらなる画像を受信することと、ｈ）検証のために使用される検証画像座標を判断することであって、検証画像座標は検証画像内に検証記号が現れる座標である、検証画像座標を判断することと、ｉ）参照画像座標と検証画像座標との間の偏差量に基づいて、偏差パラメーター値を判断することであって、参照画像座標及び検証画像座標は両方ともその参照箇所に関連付けられ、偏差パラメーター値は、第１のカメラキャリブレーション以降のカメラの変化、又は第１のカメラキャリブレーション以降のカメラとロボットとの間の関係の変化を示す、偏差パラメーター値を判断することと、ｉ）偏差パラメーター値が規定された閾値を超過するかどうかを判断することと、ｊ）偏差パラメーター値が規定された閾値を超過すると判断することに応答して、第２のカメラキャリブレーションを実行して、更新されたカメラキャリブレーション情報を判断すること（又は、より一般的に、第２のキャリブレーション操作を実行して、更新されたキャリブレーション情報を判断すること）と、を行うように、さらに構成される。
【０１２１】
実施形態Ａ２は、実施形態Ａ１のロボット制御システムを含み、制御回路は、偏差パラメーター値が規定された閾値を超過しないという判断に応答して、通信インターフェースを介して、ロボットに第４の動作コマンドを出力することによって、さらなるカメラキャリブレーションを実行することなく、休止期間後にロボット操作を継続するように、ロボットを制御するように構成される。
【０１２２】
実施形態Ａ３は、実施形態Ａ１又はＡ２のロボット制御システムを含み、１つ以上の参照箇所は、複数の参照画像座標にそれぞれ対応する複数の参照箇所であり、参照画像座標は、複数の参照画像座標のうちの１つである。この実施形態では、制御回路は、複数の参照箇所にそれぞれ対応する複数の検証画像座標を判断するようにさらに構成され、検証画像座標は、複数の検証画像座標のうちの１つであり、偏差パラメーター値は、複数の参照箇所に関する複数の参照画像座標と複数の検証画像座標との間のそれぞれの偏差量に基づき、それぞれの偏差量のうちの各偏差量は、（ａ）複数の参照箇所のそれぞれの参照箇所に対応する参照画像座標と、（ｂ）同じ参照箇所に対応する検証画像座標と、の間にある。
【０１２３】
実施形態Ａ４は、実施形態Ａ３のロボット制御システムを含み、複数の検証画像座標は、複数の検証画像内に検証記号が現れるそれぞれの座標であり、検証画像は、複数の検証画像のうちの１つであり、制御回路は、カメラを制御して、休止期間内に複数の検証画像の全てを取り込むように構成される。
【０１２４】
実施形態Ａ５は、実施形態Ａ３のロボット制御システムを含み、複数の検証画像座標は、複数の検証画像内に検証記号が現れるそれぞれの座標であり、検証画像は、複数の検証画像のうちの１つであり、制御回路は、カメラを制御して、異なる休止期間内に複数の検証画像を取り込むように構成され、休止期間は、異なる休止期間のうちの１つである。
【０１２５】
実施形態Ａ６は、実施形態Ａ１〜Ａ５のいずれか１つのロボット制御システムを含み、検証記号は、第１の色を有する第１の領域と、第２の色を有する第２の領域とを含み、第１の領域の面積と第２の領域の面積との比が規定され、規定された比としてロボット制御システムの記憶デバイス上に記憶される。
【０１２６】
実施形態Ａ７は、実施形態Ａ６のロボット制御システムを含み、制御回路は、規定された比に基づいて、参照画像又は検証画像内の検証記号を識別するように構成される。
【０１２７】
実施形態Ａ８は、実施形態Ａ７のロボット制御システムを含み、ロボットアームは、その上に配置されるキャリブレーションパターンを有し、参照画像は、検証記号及びキャリブレーションパターンを含み、制御回路は、参照画像の部分が、第１の色を有する第１の画像領域を有するか、及び第２の色を有する第２の画像領域を有するかどうかを判断し、第１の画像領域の面積と第２の画像領域の面積との比が規定された比に等しいかどうかを判断することによって、参照画像の部分が検証記号であるか、又はキャリブレーションパターンであるかを判断するように構成される。
【０１２８】
実施形態Ａ９は、実施形態Ａ１〜Ａ８のいずれか１つのロボット制御システムを含み、検証記号は、互いに同心である第１の形状及び第２の形状を含み、第１の形状及び第２の形状のそれぞれの中心は、実質的に同じ箇所である。
【０１２９】
実施形態Ａ１０は、実施形態Ａ９のロボット制御システムを含み、制御回路は、ａ）参照画像内の第１の形状の中心の第１の座標を判断することと、ｂ）参照画像内の第２の形状の中心の第２の座標を判断することと、ｃ）参照画像内の第１の座標及び第２の座標の平均として参照画像座標を判断することとによって、参照画像座標を判断するように構成される。この実施形態では、制御回路は、ｄ）検証画像内の第１の形状の中心の第１の座標を特定することと、ｅ）検証画像内の第２の形状の中心の第２の座標を特定することと、ｆ）検証画像内の第１の座標及び第２の座標の平均として検証画像座標を特定することとによって、検証画像座標を特定するように構成される。
【０１３０】
実施形態Ａ１１は、実施形態Ａ１〜Ａ１０のいずれか１つのロボット制御システムを含み、制御回路は、円形リングを識別することによって、参照画像又は検証画像内の検証記号を識別するように構成され、検証記号は円形リングとして形成される。
【０１３１】
実施形態Ａ１２は、実施形態Ａ１〜Ａ１１のいずれか１つのロボット制御システムを含み、制御回路は、ロボットが位置する環境の温度を判断し、測定された温度に基づいて、規定された閾値又はキャリブレーション情報のうちの少なくとも一方を調整するようにさらに構成される。
【０１３２】
実施形態Ａ１３は、実施形態Ａ１２のロボット制御システムを含み、制御回路は、温度が規定範囲外にあるとき、規定された閾値を第１の値を有するように設定し、温度が規定範囲内にあるとき、閾値を第１の値より低い第２の値を有するように設定することによって、温度に基づいて、規定された閾値を調整するように構成される。
【０１３３】
実施形態Ａ１４は、実施形態Ａ１〜Ａ１３のいずれか１つのロボット制御システムを含み、制御回路がロボットアームを介して検証記号を動かすように構成される１つ以上の参照箇所は、カメラに対して凹形である球の表面上に配置される複数の参照箇所を含む。
【０１３４】
実施形態Ａ１５は、実施形態Ａ１４のロボット制御システムを含み、制御回路は、複数の参照箇所の各参照箇所において検証記号が球の表面に対して接線方向に向くように動かすために、ロボットアームを制御するようにさらに構成される。
【０１３５】
実施形態Ａ１６は、実施形態Ａ１〜Ａ１５のいずれか１つのロボット制御システムを含み、制御回路は、検証記号が参照箇所に動かされるときに、カメラの真正面を向くように検証記号を動かすために、ロボットアームを制御するように構成される。
【０１３６】
実施形態Ａ１７は実施形態Ａ１〜Ａ１６のいずれか１つのロボット制御システムを含み、制御回路は、ロボット操作中にロボットがロボット作業を実行していない期間を検出することによって、ロボット操作の休止期間を検出するように構成される。
【０１３７】
実施形態Ａ１８は、実施形態Ａ１７のロボット制御システムを含み、制御回路は、ロボットアームによって到達可能であるコンベヤベルト上の物体と相互作用するように、ロボットアームを制御するように構成され、制御回路は、コンベヤベルト上に物体がないことを検出することによって、又はロボットと、コンベヤベルト上の最も近い物体との間の距離が規定された距離閾値を超過することを検出することによって、休止期間を検出するように構成される。
【０１３８】
実施形態Ｂ１は、通信インターフェース及び制御回路を備えるコンピューティングシステムに関する。通信インターフェースは、（ｉ）カメラ視野を有するカメラと、（ｉｉ）互いに動作可能に取り付けられる複数のアーム部分を備え、かつ複数のアーム部分のそれぞれのアーム部分上に配置される検証記号のグループを備える、ロボットアームを有する、ロボットと、通信するように構成される。制御回路は、ロボットアームがカメラ視野にあるとき、ロボット操作を実行するために、ロボットアームの動作を制御するための動作コマンドを出力することであって、動作コマンドが、キャリブレーション情報に基づいている、出力することと、参照画像座標のグループを判断することであって、参照画像座標のグループが、参照画像内に検証記号のグループが現れるそれぞれの座標であり、参照画像が、検証記号のグループを表すための画像であり、ロボットアームが第１のポーズにあるとき、第１の期間中にカメラによって生成される、判断することと、第１の期間に続く第２の期間中に、ロボットアームを第１のポーズに動かすように制御するための追加の動作コマンドを出力することと、検証記号のグループを表すための追加画像であり、かつ前記ロボットアームが、追加の動作コマンドの結果として、第１のポーズに動かされたとき、カメラによって生成される、検証画像を受信することと、検証画像座標のグループを判断することであって、検証画像座標のグループが、検証画像内に検証記号のグループが現れるそれぞれの座標である、判断することと、参照画像座標のグループと検証画像座標のグループとの間のそれぞれの偏差量に基づいている、それぞれの偏差パラメーター値のグループを判断することであって、それぞれの偏差パラメーター値のグループが、検証記号のグループと関連付けられている、判断することと、それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、それぞれの偏差パラメーター値のグループのうちの少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するという判断に応答して、それぞれの偏差パラメーター値のグループのうちの少なくとも１つが、規定された偏差閾値を超過するという通知を出力すること、及び、更新されたキャリブレーション情報を判断するためにキャリブレーション操作を実行すること、のうちの少なくとも１つを実行することと、を行うように構成される。制御回路は、例えば、非一時的コンピューター可読媒体上で命令を実行することによって、方法を実行することができる。
【０１３９】
実施形態Ｂ２は、実施形態Ｂ１に記載のコンピューティングシステムを含み、第１のポーズは、第１の期間中に出力される第１の追加の動作コマンドと関連付けられ、第１の追加の動作コマンドが、ロボットアームを第１のポーズに動かすように制御するための１つ以上の作動パラメーター値を有し、参照画像が、第１の追加の動作コマンドの結果として、ロボットアームが第１のポーズにあるとき、カメラによって生成される。さらにこの実施形態において、第２の期間中に出力される追加の動作コマンドが、第２の追加の動作コマンドであり、また１つ以上の作動パラメーター値も含む。
【０１４０】
実施形態Ｂ３は、実施形態Ｂ２のコンピューティングシステムを含み、検証記号のグループの各検証記号は、円形形状を有し、第１の追加の動作コマンド及び第２の追加の動作コマンドの１つ以上の作動パラメーター値は、参照画像内及び検証画像内で、検証記号のグループが、偏心率を伴わずに、又は規定された偏心閾値未満であるそれぞれの量の偏心率を伴って現れるような様態で検証記号のグループを位置決めさせる。
【０１４１】
実施形態Ｂ４は、実施形態Ｂ１〜Ｂ３のいずれか１つのコンピューティングシステムを含み、制御回路は、検証記号のグループの各検証記号をカメラに真正面を向くように動かす、追加の動作コマンドに対する１つ以上の作動パラメーター値を判断するように構成される。
【０１４２】
実施形態Ｂ５は、実施形態Ｂ４のコンピューティングシステムを含み、１つ以上の作動パラメーター値は、検証記号のグループを、カメラに対して凹形である１つ以上の仮想球に対して接線方向に向くようにさせる。
【０１４３】
実施形態Ｂ６は、実施形態Ｂ１〜Ｂ５のいずれか１つのコンピューティングシステムを含み、検証記号のグループの少なくとも１つの検証記号が、円形リングとして形成されているとき、制御回路は、円形リングを識別することによって、参照画像内及び検証画像内の少なくとも１つの検証記号を識別するように構成される。
【０１４４】
実施形態Ｂ７は、実施形態Ｂ６のコンピューティングシステムを含み、検証記号のグループが、異なるそれぞれのサイズを有するそれぞれの円形リングとして形成されているとき、制御回路は、少なくとも１つの検証記号を形成するそれぞれの円形リングのサイズに基づいて、少なくとも１つの検証記号を識別するように構成される。
【０１４５】
実施形態Ｂ８は、実施形態Ｂ１〜Ｂ７のいずれか１つのコンピューティングシステムを含み、制御回路は、ロボットアームの幾何学形状を記述する規定されたモデルに基づいて、参照画像内の検証記号のグループの少なくとも１つの検証記号を識別するように構成される。
【０１４６】
実施形態Ｂ９は、実施形態Ｂ８のコンピューティングシステムを含み、制御回路は、モデルに基づいて、少なくとも１つの検証記号が現れることが予想される参照画像内の領域を判断し、参照画像の領域内の少なくとも１つの検証記号を検索するように構成される。
【０１４７】
実施形態Ｂ１０は、実施形態Ｂ１〜Ｂ９のいずれか１つのコンピューティングシステムを含み、制御回路は、それぞれの偏差パラメーター値のグループ間の比較に基づいて、少なくとも１つの偏差パラメーター値に規定された偏差閾値を超過させるキャリブレーションエラーのタイプを判断するように構成されており、キャリブレーションエラーのタイプは、キャリブレーション情報に対する精度の損失がロボットにおける変化を表すかどうか、又は精度の損失が、カメラにおける変化を表すかどうかを示す。
【０１４８】
実施形態Ｂ１１は、実施形態Ｂ１０のコンピューティングシステムを含み、制御回路は、それぞれの偏差パラメーター値のグループ全てが、規定された偏差閾値を超過しているかどうか、及びそれぞれの偏差パラメーターのグループが、規定された均一性閾値を超えて互いに異なるかどうかを判断するように構成される。本実施形態における制御回路は、それぞれの偏差パラメーター値のグループが全て、規定された偏差閾値を超過し、かつ規定された均一性閾値を超えて互いに異なることはないという判断に応答して、キャリブレーション誤差のタイプが、カメラにおける変化を表すキャリブレーション誤差であると判断するように構成される。
【０１４９】
実施形態Ｂ１２は、実施形態Ｂ１１のコンピューティングシステムを含み、制御回路は、それぞれの偏差パラメーター値のグループのうちの１つ以上が、規定された偏差閾値を超過しないという判断、又はそれぞれの偏差パラメーター値のグループが、規定された均一性閾値を超えて互いに異なるという判断に応答して、キャリブレーション誤差のタイプが、ロボットにおける変化を表すキャリブレーション誤差であると判断するようにさらに構成される。
【０１５０】
実施形態Ｂ１３は、実施形態Ｂ１〜Ｂ１２のいずれか１つのコンピューティングシステムを含む。この実施形態において、キャリブレーション情報は、第１のキャリブレーション操作と関連付けられ、更新されたキャリブレーション情報を生成するためのキャリブレーション操作は、第１のキャリブレーション操作に続く第２のキャリブレーション操作であり、制御回路は、規定されたトリガー条件に応答して、追加の動作コマンドを出力するように、かつ検証画像を受信するためのカメラコマンドを出力するように構成される。規定されたトリガー条件は、第１のキャリブレーション操作以来経過する規定された期間、又はコンピューティングシステムによって計画されず、かつロボット若しくはカメラに変化をもたらす事象、のうちの少なくとも１つを含む。
【０１５１】
実施形態Ｂ１４は、実施形態Ｂ１〜Ｂ１３のいずれか１つのコンピューティングシステムを含み、複数のロボットアーム部分が、ロボットのベースからロボットエンドエフェクタまでの一連のアーム部分として配置されているとき、制御回路が、検証記号のグループの第１の検証記号に関する偏差パラメーター値が、規定された偏差閾値を超過するかどうかを判断することと、複数のアーム部分の中から、第１の検証記号が配置されている第１のアーム部分を識別することと、第１の検証記号に関する偏差パラメーター値が、規定された偏差閾値を超過しないという判断に応答して、キャリブレーション情報が、第１のアーム部分に関して、及び一連のアーム部分において第１のアーム部分に先行する少なくとも１つの追加のアーム部分に関して正確であると判断することと、を行うように構成される。
【０１５２】
実施形態Ｂ１５は、実施形態Ｂ１〜Ｂ１４のいずれか１つのコンピューティングシステムを含み、コンピューティングシステムが、ロボット操作に使用されるコンベヤベルトと通信するとき、制御回路は、少なくとも１つの偏差パラメーター値が、規定された偏差閾値を超過するという判断に応答して、コンベヤベルトを停止させるように構成される。
【０１５３】
実施形態Ｂ１６は、実施形態Ｂ１〜Ｂ１５のいずれか１つのコンピューティングシステムを含み、参照画像は、ロボットアームの第１のポーズと関連付けられた第１の参照画像であり、検証画像は、第１のポーズと関連付けられた第１の検証画像であり、参照画像座標のグループは、第１のポーズと関連付けられた第１の参照画像座標のグループであり、検証画像座標のグループは、第１のポーズと関連付けられた第１の検証画像座標のグループである。本実施形態では、制御回路は、第２の参照画像座標のグループを判断することであって、第２の参照画像座標のグループが、第２の参照画像内に検証記号のグループが現れるそれぞれの座標であり、第２の参照画像が、ロボットアームが第２のポーズにあるとき、カメラによって生成される、判断することと、第２の参照画像が生成されていることに続いて、ロボットアームを第２のポーズに動かすためにロボットアームを制御するためのさらなる動作コマンドを出力することと、第２の検証画像を受信することであって、第２の検証画像がまた、検証記号のグループもまた表し、さらなる動作コマンドの結果として、ロボットアームが第２のポーズに動かされたとき、カメラによって生成される、受信することと、第２の検証画像座標のグループを判断することであって、第２の検証画像座標のグループが、第２の検証画像内に検証記号のグループが現れるそれぞれの座標である、判断することと、を行うように構成される。この実施形態において、それぞれの偏差パラメーター値のグループは、第２の参照画像座標のグループと第２の検証画像座標のグループとの間のそれぞれの偏差量にさらに基づく。
【０１５４】
種々の実施形態を上述してきたが、これらの実施形態は、限定としてではなく本発明の単なる説明及び例として提示されていることを理解すべきである。形式及び細部における種々の変更は本発明の趣旨及び範囲から逸脱することなく本発明内で行うことができることは当業者には明らかであろう。したがって、本発明の範囲（ｂｒｅａｄｔｈ  ａｎｄ  ｓｃｏｐｅ）は、上述の例示的な実施形態のいずれかによって限定されるべきではなく、添付の特許請求の範囲及びそれらの均等物によってのみ規定されるべきである。本明細書において論考された各実施形態、及び本明細書において引用された各引用文献の各特徴は、他の任意の実施形態の特徴と組み合わせて用いることができることも理解されるであろう。本明細書において論考された全ての特許及び刊行物は、引用することによりその全体が本明細書の一部をなす。
【要約】
【課題】キャリブレーション検証のためのコンピューティングシステム及び方法を提示する。
【解決手段】コンピューティングシステムは、第１のキャリブレーション操作を実行することと、検証記号を参照箇所に動かすように、ロボットアームを制御することと、を行うように構成される。ロボット制御システムはさらに、カメラから、検証記号の参照画像を受信し、検証記号に関する参照画像座標を判断する。ロボット制御システムはさらに、休止期間中に、検証記号を再び参照箇所に動かすようにロボットアームを制御し、検証記号の追加画像を受信し、検証画像座標を判断する。ロボット制御システムは、参照画像座標及び検証画像座標に基づいて偏差パラメーター値を判断し、及び偏差パラメーター値が規定された閾値を超過するかどうかを判断し、閾値を超過する場合には第２のキャリブレーション操作を実行する。
【選択図】図１２Ａ【図１Ａ】
0006803633.tif 000020
【図１Ｂ】
0006803633.tif 000021
【図１Ｃ】
0006803633.tif 000022
【図１Ｄ】
0006803633.tif 000023
【図２】
0006803633.tif 000024
【図３】
0006803633.tif 000025
【図４Ａ】
0006803633.tif 000026
【図４Ｂ】
0006803633.tif 000027
【図５Ａ】
0006803633.tif 000028
【図５Ｂ】
0006803633.tif 000029
【図５Ｃ】
0006803633.tif 000030
【図６Ａ】
0006803633.tif 000031
【図６Ｂ】
0006803633.tif 000032
【図６Ｃ】
0006803633.tif 000033
【図６Ｄ】
0006803633.tif 000034
【図７Ａ】
0006803633.tif 000035
【図７Ｂ】
0006803633.tif 000036
【図８】
0006803633.tif 000037
【図９】
0006803633.tif 000038
【図１０Ａ】
0006803633.tif 000039
【図１０Ｂ】
0006803633.tif 000040
【図１０Ｃ】
0006803633.tif 000041
【図１１Ａ】
0006803633.tif 000042
【図１１Ｂ】
0006803633.tif 000043
【図１１Ｃ】
0006803633.tif 000044
【図１２Ａ】
0006803633.tif 000045
【図１２Ｂ】
0006803633.tif 000046
【図１３Ａ】
0006803633.tif 000047
【図１３Ｂ】
0006803633.tif 000048
【図１４Ａ】
0006803633.tif 000049
【図１４Ｂ】
0006803633.tif 000050