(57)【要約】      （修正有）【課題】カメラキャリブレーションを更新するためのロボット制御システム及び方法を提供する。【解決手段】ロボット制御システムが、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、ロボット操作のために第１の動作コマンドを出力する。第１のカメラキャリブレーションの後、第２の動作コマンドを出力してカメラ視野内でキャリブレーションパターンを動かし、１つ以上のキャリブレーション画像を受け取りキャリブレーション画像を追加する。取り込まれた画像セットにおけるキャリブレーション画像に基づいて第２のカメラキャリブレーションを実行して、更新されたカメラキャリブレーション情報を特定して、カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差が、規定された閾値を超えるか否かを判断して、偏差が規定された閾値を超えた場合、通知信号を出力する。【選択図】図７Ａ
2020172015.tif 000002
【特許請求の範囲】
【請求項１】
ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、
を備え、該制御回路は、
第１のカメラキャリブレーションを実行して、前記カメラに関連するカメラキャリブレーション情報を特定することと、
前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第１の動作コマンドを前記ロボットに出力することにより、ロボット操作を実行するように、前記カメラキャリブレーション情報に基づいて前記ロボットアームの動作を制御することと、
前記第１のカメラキャリブレーションの後、前記通信インターフェースを介して、第２の動作コマンドを前記ロボットに出力することにより、前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすように、前記ロボットアームを制御することと、
前記通信インターフェースを介して前記カメラから１つ以上のキャリブレーション画像を受け取り、該１つ以上のキャリブレーション画像は、前記カメラ視野内の前記１つ以上の場所においてそれぞれ取り込まれることと、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第２のカメラキャリブレーションを実行し、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記偏差が規定された閾値を超えるか否かを判断することと、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を行うように構成される、ロボット制御システム。
【請求項２】
前記第２のカメラキャリブレーションは、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合のみ実行される、請求項１に記載のロボット制御システム。
【請求項３】
前記制御回路は、前記取り込まれた画像セットに、或る数の直近で取り込まれた１つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新するように更に構成され、
前記第２のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、請求項１に記載のロボット制御システム。
【請求項４】
前記制御回路は、前記ロボット操作中に休止期間を検出し、前記ロボットアームが、前記休止期間中に前記１つ以上の場所に前記キャリブレーションパターンを動かすように制御されるように、前記休止期間中に前記第２の動作コマンドを出力するように更に構成され、
前記１つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記１つ以上の場所で取り込まれる、請求項１に記載のロボット制御システム。
【請求項５】
前記休止期間は第１の休止期間であり、前記制御回路は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行することと、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、ｂ）更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を行うように更に構成される、請求項４に記載のロボット制御システム。
【請求項６】
前記休止期間は第１の休止期間であり、前記制御回路は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第２の休止期間における前記残りの時間中に前記第２のカメラキャリブレーションを実行することと、
を行うように更に構成される、請求項４に記載のロボット制御システム。
【請求項７】
前記制御回路は、前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから１つ以上の後続する追加のキャリブレーション画像を受け取り、該１つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の後続する追加の場所においてそれぞれ取り込まれることと、ｂ）前記１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される、請求項６に記載のロボット制御システム。
【請求項８】
前記制御回路は、
前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加し、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、
前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像の各画像が追加された後、該取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数を超えたという判断に応じて、前記取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することと、
を行うように更に構成され、
前記第２のカメラキャリブレーションは、前記取り込まれた画像セットに前記１つ以上の追加の画像が追加された後に、該取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される、請求項１に記載のロボット制御システム。
【請求項９】
前記カメラキャリブレーション情報及び前記更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む、請求項１に記載のロボット制御システム。
【請求項１０】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第１の動作コマンドを前記ロボットに出力して、前記ロボットアームがロボット操作を実行するように動くようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第１のカメラキャリブレーションの後、第２の動作コマンドを前記ロボットに出力して、前記ロボットアームが、前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラから１つ以上のキャリブレーション画像を受け取り、該１つ以上のキャリブレーション画像は、前記カメラ視野内の前記１つ以上の場所においてそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記ロボット制御システムにより、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第２のカメラキャリブレーションを実行し、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項１１】
前記方法は、
前記取り込まれた画像セットに、或る数の直近で取り込まれた１つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新すること、
を更に含み、
前記第２のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、請求項１０に記載の方法。
【請求項１２】
前記方法は、
前記ロボット操作中に休止期間を検出すること、
を更に含み、
前記第２の動作コマンドは、前記ロボットに出力されて、前記ロボットアームが、前記休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすようにし、
前記１つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記１つ以上の場所において取り込まれる、請求項１０に記載の方法。
【請求項１３】
前記休止期間は第１の休止期間であり、前記方法は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行することと、
を更に含む、請求項１２に記載の方法。
【請求項１４】
前記休止期間は第１の休止期間であり、前記方法は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、更新された取り込まれた画像セットを生成するように、前記１つ以上の追加の画像を追加することにより、かつ、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を更に含む、請求項１２に記載の方法。
【請求項１５】
前記休止期間は第１の休止期間であり、前記方法は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第２の休止期間における前記残りの時間中に前記第２のカメラキャリブレーションを実行することと、
を更に含む、請求項１２に記載の方法。
【請求項１６】
前記方法は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、前記第２の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから１つ以上の後続する追加のキャリブレーション画像を受け取り、該１つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の後続する追加の場所においてそれぞれ取り込まれることと、前記１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を更に含む、請求項１２に記載の方法。
【請求項１７】
ロボット制御システムの制御回路によって実行されるときに、前記制御回路に、
第１のカメラキャリブレーションを実行させて、カメラキャリブレーション情報を特定する命令であって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成された通信インターフェースを備える、命令と、
前記カメラキャリブレーション情報に基づく第１の動作コマンドを、前記通信インターフェースを介して前記ロボットに出力させて、前記ロボットアームがロボット操作を実行するように動くようにする命令と、
前記通信インターフェースを介して第２の動作コマンドを前記ロボットに出力させて、前記ロボットアームが前記カメラ視野内の１つ以上の場所まで前記キャリブレーションパターンを動かすようにする命令と、
前記通信インターフェースから１つ以上のキャリブレーション画像を受け取らせる命令であって、前記通信インターフェースは、前記カメラから前記１つ以上のキャリブレーション画像を受け取るように構成され、該１つ以上のキャリブレーション画像は、前記カメラ視野内の前記１つ以上の場所においてそれぞれ取り込まれる、命令と、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加させる命令と、
前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第２のカメラキャリブレーションを実行させる命令であって、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する、命令と、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めさせる命令と、
前記偏差が規定された閾値を超えるか否かを判断させる命令と、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力させる命令と、
を記憶している、非一時的コンピューター可読媒体。
【請求項１８】
前記命令は、前記ロボット制御システムの前記制御回路によって実行されるときに、更に、前記制御回路に、前記取り込まれた画像セットに、或る数の直近で取り込まれた１つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新させ、
前記第２のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、
請求項１７に記載の非一時的コンピューター可読媒体。
【請求項１９】
前記命令は、更に、前記ロボット制御システムの前記制御回路によって実行されるときに、前記制御回路に、前記ロボット操作中に休止期間を検出させ、
前記通信インターフェースは、前記第２の動作コマンドを前記ロボットに通信して、前記ロボットアームが、前記休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすようにし、
前記１つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記１つ以上の場所において取り込まれる、請求項１７に記載の非一時的コンピューター可読媒体。
【請求項２０】
前記休止期間は第１の休止期間であり、前記命令は、前記ロボット制御システムの前記制御回路によって実行されるときに、更に、前記制御回路に、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断させ、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出させ、
前記第２の休止期間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断させ、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行させ、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取らせ、該１つ以上の追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれ、ｂ）更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新させ、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機させる、
請求項１９に記載の非一時的コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御のためのカメラキャリブレーションを更新する方法及び制御システムに関する。
【背景技術】
【０００２】
自動化がより一般的になるに従い、倉庫保管及び製造環境等、より多くの環境においてロボットが使用されている。例えば、ロボットは、倉庫において物品をパレットに積むか若しくはパレットから降ろすために、又は、工場においてコンベヤベルトから物体を持ち上げるために使用される場合がある。ロボットの移動は、一定である場合があり、又は、倉庫若しくは工場においてカメラによって撮影される画像等の入力に基づく場合がある。後者の状況では、カメラの特性を求めるために、かつ、カメラとロボットが位置する環境との関係を求めるために、キャリブレーション（較正）が行われる場合がある。キャリブレーションは、カメラキャリブレーションと呼ばれる場合があり、カメラによって取り込まれた画像に基づいてロボットを制御するために使用されるカメラキャリブレーション情報を生成することができる。いくつかの実施態様では、カメラキャリブレーションは、人による手動操作を必要とする場合があり、人は、ロボットの移動を手動で制御するか、又は、カメラを手動で制御して、ロボットの画像を取り込むことができる。
【発明の概要】
【０００３】
本明細書における実施形態の一態様は、ロボット制御のためのカメラキャリブレーションを更新することに関する。カメラキャリブレーション更新は、通信インターフェース及び制御回路を備えるロボット制御システムによって実行することができる。通信インターフェースは、ベースと、その上にキャリブレーションパターンが配置されるロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成することができる。ロボット制御システムの制御回路は、ａ）第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、ｂ）カメラキャリブレーション情報に基づく第１の動作コマンドを、通信インターフェースを介してロボットに出力して、ロボットアームがロボット操作を実行するように動くようにし、ｃ）第１のカメラキャリブレーションの後、第２の動作コマンドを、通信インターフェースを介してロボットに出力して、ロボットアームが、カメラ視野内の１つ以上の場所までキャリブレーションパターンを動かすようにし、ｄ）カメラから１つ以上のキャリブレーション画像を受け取り、１つ以上のキャリブレーション画像は、カメラ視野内の１つ以上の場所においてそれぞれ取り込まれ、ｅ）１つ以上のキャリブレーション画像を、キャリブレーション情報を含む取り込まれた画像セットに追加し、ｆ）取り込まれた画像セットにおけるキャリブレーション画像に基づいて第２のカメラキャリブレーションを実行し、第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力し、ｇ）カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差を求め、ｈ）偏差が規定された閾値を超えたか否かを判断し、ｉ）偏差が規定された閾値を超えたという判断に応じて、偏差が規定された閾値を超えたことを示す通知信号を出力するように構成することができる。
【０００４】
本発明の上述の特徴、目的、及び利点、並びに他の特徴、目的、及び利点は、添付の図面に示されるような本発明の実施形態の以下の説明から明らかであろう。本明細書に組み込まれるとともに本明細書の一部をなす添付の図面は更に、本発明の原理を説明するとともに、当業者が本発明を実施及び使用することを可能にする役割を果たす。図面は一定縮尺ではない。
【図面の簡単な説明】
【０００５】
【図１Ａ】本明細書の実施形態による、カメラキャリブレーションの更新が実行されるロボット運用システムのブロック図である。
【図１Ｂ】本明細書の実施形態による、カメラキャリブレーションの更新が実行されるロボット運用システムのブロック図である。
【図１Ｃ】本明細書の一実施形態による、カメラキャリブレーションの更新を実行するように構成されるロボット制御システムのブロック図である。
【図１Ｄ】本明細書の一実施形態による、カメラキャリブレーションが実行されるカメラのブロック図である。
【図２】本明細書の一実施形態による、カメラキャリブレーションから得られるカメラキャリブレーション情報に基づいて制御されるロボットを例示するロボット運用システムを示す図である。
【図３】本明細書の一実施形態による、カメラキャリブレーションを実行するロボット運用システムを示す図である。
【図４Ａ】本発明の一実施形態による、カメラキャリブレーションを実行し更新する方法例を示すフロー図である。
【図４Ｂ】本発明の一実施形態による、カメラキャリブレーションを実行し更新する方法例を示すフロー図である。
【図５Ａ】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【図５Ｂ】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【図６Ａ】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【図６Ｂ】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【図７Ａ】本明細書の一実施形態による、キャリブレーションパターンのそれぞれのキャリブレーション画像が取り込まれるときにキャリブレーションパターンが位置する参照箇所の例を示す図である。
【図７Ｂ】本明細書の一実施形態による、キャリブレーションパターンのそれぞれのキャリブレーション画像が取り込まれるときにキャリブレーションパターンが位置する参照箇所の例を示す図である。
【図８】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新する時系列例を示す図である。
【図９】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するフロー図例である。
【図１０】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新する時系列例を示す図である。
【図１１】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するフロー図例である。
【発明を実施するための形態】
【０００６】
以下の詳細な説明は、本質的に単に例示のものであり、本発明又は本発明の用途及び使用を限定することを意図するものではない。さらに、前出の技術分野、背景技術、発明の概要又は以下の詳細な説明において提示されるいかなる明示された又は暗示された理論によっても限定する意図はない。
【０００７】
本明細書に記載する実施形態は、倉庫、製造工場において、又は他の何らかの環境において使用されるロボット等、ロボットを制御するために使用されるカメラのキャリブレーションを更新することに関する。キャリブレーションは、カメラキャリブレーションと呼ばれる場合があり、例えば、ロボット制御システム（ロボットコントローラーとも呼ぶ）が、カメラによって取り込まれる（例えば、撮影される）画像に基づいてロボットを制御するロボット制御システムの能力を促進するカメラキャリブレーション情報を生成するために実施することができる。例えば、ロボットは、倉庫において包装品を持ち上げるために使用される場合があり、そこでは、ロボットのロボットアーム又は他の構成要素の配置は、カメラによって取り込まれる包装品の画像に基づくことができる。その場合、カメラキャリブレーション情報は、例えば、ロボットのロボットアームに対する包装品の位置及び向きを求めるために、包装品の画像とともに使用することができる。カメラキャリブレーションは、例えば、カメラの固有パラメーター（内部パラメーターと呼ばれる場合もある）のそれぞれの推定値、及び／又はカメラとその外部環境との間の関係の推定値等のキャリブレーションパラメーターのそれぞれの値を特定することを伴うことができる。カメラの固有パラメーターは、行列、ベクトル又はスカラー値等の１つ以上のパラメーター値を有することができる。さらに、固有パラメーターの例は、射影行列及びひずみパラメーターを含む。一例において、カメラキャリブレーションは、外部環境内の或る定位置に対するカメラの位置を特定することを伴うことができ、それは、カメラと外部環境内の定位置との間の関係を表す変換関数（transformation function）として表すことができる。場合によっては、カメラキャリブレーションは、キャリブレーションパターンの助けを借りて実行することができ、キャリブレーションパターンは、キャリブレーションパターン上の規定された場所に配置されるパターン要素を有することができる。カメラはキャリブレーションパターンのパターン要素の画像（キャリブレーション画像とも呼ばれる）を取り込むことができ、カメラキャリブレーションは、パターン要素の画像をパターン要素の規定された場所と比較することに基づいて実行することができる。カメラキャリブレーションは、２０１９年３月７日に出願の「METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED ON IMAGES FROM A CAMERA」と題する米国特許出願第１６／２９５，９４０号（以下で「出願ＭＪ００２１ＵＳ１と呼ばれる」）においてより詳細に論じられており、その内容全体が引用することにより本明細書の一部をなす。
【０００８】
上記で言及されたように、本開示の一態様は、後の時点において依然として正確であるカメラキャリブレーション情報を得るために、早期の時点において実行されたカメラキャリブレーションを更新することに関する。早期の時点において実行されるカメラキャリブレーションは、カメラの固有パラメーター、又はその時点におけるカメラとその外部環境との間の関係等の、その時点のカメラの特性を反映するカメラキャリブレーション情報を生成することができる。場合によっては、カメラの特性が経時的に変化する場合があるため、早期のカメラキャリブレーションは経時的に精度を維持できなくなる場合がある。第１の例において、カメラの固有パラメーターが経時的に変化する場合がある。そのような変化は、例えば、温度変化によって引き起こされる場合があり、温度変化が、カメラのハウジング及び／又はレンズの形状を変更する。第２の例において、カメラとその外部環境との間の関係が経時的に変化する場合がある。例えば、カメラが、例えば、ロボットのベース、又は倉庫内の場所に対して位置又は向きを変える場合がある。そのような変化は、例えば、カメラを搭載するために使用される任意の構成要素を膨張又は収縮させる温度変化、カメラに衝突する人又は他の物体、カメラの外部環境（例えば、倉庫）内の振動、カメラの自らの重量に起因する力（すなわち、重力によって）、又は何らかの他の要因によって引き起こされる場合がある。これらの変化によって、時間が経過するにつれてカメラキャリブレーション情報が古くなる場合があり、このカメラキャリブレーション情報を用いて、後の時点においてロボットアーム又はロボットの他の構成要素を位置決めする結果として、誤差が生じる恐れがある。言い換えると、カメラに関連付けられる特性が経時的に変化しているが、そのような変化を反映するようにカメラキャリブレーション情報が更新されない場合には、ロボットは、古くなったか、又は別の事情で不正確なカメラキャリブレーション情報に基づいて動作する場合があり、それにより、ロボットの操作に望ましくない誤差を引き起こす恐れがある。カメラの１つ以上の特性の変化が発生し得る可能性に対処するために、ロボット制御システムは、より最近のキャリブレーション画像に基づき更新されたカメラキャリブレーション情報を自動的に特定することができる。場合によっては、ロボット制御システムは、或る特定の数の直近のキャリブレーション画像を特定するスライド窓として作用する、取り込まれた画像セットを維持することができ、スライド窓におけるキャリブレーション画像は、カメラキャリブレーションを更新するために、かつ、更新されたカメラキャリブレーション情報を生成するために使用される。一実施形態では、更新されたカメラキャリブレーション情報を使用して、カメラの特性の変化、又はカメラとその外部環境との関係の変化を検出する検証を実行することができる。この変化は、例えば、短期間にわたりキャリブレーション情報の著しい変化を検出することによって検出することができる。いくつかの実施態様では、この検出により、カメラの特性が過度に急速に及び／又は過度に劇的に変化する場合に通知信号を発生させることができる。こうした変化は、場合によっては、カメラの望ましくない状態又はカメラの外部環境を反映する可能性がある。通知信号は、例えば、ユーザーインターフェースデバイス（例えば、ラップトップ）に通信することができ、ユーザーインターフェースデバイスは、ロボットオペレーター又は他のユーザーに、こうした望ましくない状況の存在の可能性を警告することができる。
【０００９】
本明細書の実施形態の一態様は、キャリブレーションパターンの画像である可能性がある、より最近に取り込まれたキャリブレーション画像に基づき、後続するカメラキャリブレーション（後のカメラキャリブレーションとも呼ばれる）を実行することにより第１のカメラキャリブレーションを更新することに関する。場合によっては、後続するカメラキャリブレーションは、第１のカメラキャリブレーションより最近である十分な数のキャリブレーション画像がカメラによって取り込まれた場合に、実行することができる。例えば、後続するカメラキャリブレーションが実行される前にキャリブレーション画像の数が目標数に達している必要がある場合がある。目標数は、ロボット制御システムに提供された規定値とすることができ、又は、ロボット制御システムにより動的に決定される規定値とすることができる。場合によっては、後続するカメラキャリブレーションは、規定数の直近で取り込まれた画像を維持する取り込まれた画像セットを使用することができる。こうした場合、ロボット制御システム又は別の場所に記憶することができる取り込まれた画像セットは、直近で取り込まれたキャリブレーション画像を追加し、等しい数の最も古いキャリブレーション画像を廃棄する、スライド窓として作用することができ、その結果、後続するカメラキャリブレーションは、更新されたカメラキャリブレーション情報を提供するように、規定数の直近で取り込まれたキャリブレーション画像を使用する。
【００１０】
一実施形態では、カメラの特性又はその外部環境の変化の検出は、第１のカメラキャリブレーションからのカメラキャリブレーション情報を、後続するカメラキャリブレーションからのカメラキャリブレーション情報と比較することによって実行することができる。比較は、例えばロボット制御システム（ロボットコントローラーとも呼ばれる）によって実行することができ、ロボット制御システムは、後続するカメラキャリブレーションからのカメラキャリブレーション情報が、第１のカメラキャリブレーションのカメラキャリブレーション情報から、望ましくない量だけ及び／又は望ましくない割合で外れる場合に、通知信号を出力することができる。場合によっては、第１のカメラキャリブレーションは、ロボット操作を開始する前に、カメラに対するカメラキャリブレーション情報を特定するために実行される初期カメラキャリブレーションとすることができる。一例では、第１のカメラキャリブレーションは、初期動作コマンドを介してカメラの視野（カメラのカメラ視野とも呼ぶ）内でキャリブレーションパターンを参照箇所まで動かすようにロボットを制御し、それぞれの参照箇所でキャリブレーションパターンの初期キャリブレーション画像を取り込み、初期キャリブレーション画像に基づいて第１のカメラキャリブレーションを実行することによって、実行することができる。参照箇所の場所は、ランダムに選択することができ、又は定義する（例えば、手動で定義するか、又はロボット制御システムによって動的に計算する）ことができる。
【００１１】
第１のカメラキャリブレーションの後、ロボットは、第１のカメラキャリブレーションから特定されたカメラキャリブレーション情報に基づいてロボットを動かすことにより、ロボット操作を実行することができる。ロボット操作中、カメラ視野内のそれぞれの場所で、カメラにより更なるキャリブレーション画像が取り込まれ、取り込まれた画像セットに追加される。上記で言及されたように、後続するカメラキャリブレーションは、場合によっては、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合（これは、十分な数の最近のキャリブレーション画像が確実なカメラキャリブレーションのために利用可能であることを示すことができる）にのみ実行することができる。場合によっては、目標数は、カメラキャリブレーションを確実に更新するために最小数のキャリブレーション画像を示す可能性がある。一実施形態では、ロボット制御システムは、初期カメラキャリブレーション、又はより一般的には第１のカメラキャリブレーションを実行した後、それに続いて、キャリブレーション画像を受け取り、それらを取り込まれた画像セットに配置することができる。したがって、取り込まれた画像セットにおけるキャリブレーション画像を使用して、後続するカメラキャリブレーション、又はより一般的には第２のカメラキャリブレーションを実行することができ、第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する。一実施形態では、第１のカメラキャリブレーションからのカメラキャリブレーション情報と第２のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。偏差量が規定された閾値を超えた場合、偏差量が規定された閾値（偏差閾値とも呼ぶことができる）を超えたことを示す通知信号が出力される。一実施形態では、偏差量が規定された閾値を超えることは、ロボット操作が確実に実行されていない可能性があること、及び／又はオペレーター若しくは他のユーザーに対して通知する必要があることを示すことができる。したがって、偏差量が規定された閾値を超えた場合、ロボット操作を停止させるか又は一時停止させて、ロボット操作中におけるロボットタスクの望ましくない誤差を防止することができ、及び／又はユーザーインターフェースデバイスに通知を出力することができる。一方で、偏差量が規定された閾値を超えない場合、キャリブレーションパターンの新たなキャリブレーション画像を取り込みながら、ロボット操作を継続することができる。
【００１２】
ロボットの特徴又は構成に応じて、キャリブレーション画像は、ロボット操作の休止期間中にのみ取り込むことができ、又は、休止期間を使用することなく（例えば、ロボットが物体を持ち上げている期間中に）取り込むことができる。一実施形態では、休止期間は、ロボットが、ロボット操作中にロボットタスクが課されていない期間とすることができる。一例では、休止期間は、ロボットタスクが実行されている間に定期的にカメラに面していないロボットの部分の上にキャリブレーションパターンが配置される状況に対して、使用することができる。こうした例では、休止期間を利用して、カメラに面するようにキャリブレーションパターンを動かし、カメラを介してキャリブレーションパターンを取り込むことができる。別の例では、例えば、ロボットがロボットタスクを実行している間に定期的にカメラに面する可能性があるロボットの部分の上にキャリブレーションパターンが配置される可能性がある状況に対して、休止期間をスキップすることができる。
【００１３】
一実施形態では、キャリブレーション画像が休止期間中にのみ取り込まれる場合、第２のカメラキャリブレーションもまた、休止期間中にのみ完了することができる。内容全体が引用することにより本明細書の一部をなす、２０１９年３月７日に出願され、「METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED ON IMAGES FROM A CAMERA」と題する米国特許出願第１６／２９５，９４０号（整理番号ＭＪ００２１ＵＳ１）においてより詳細に論じられているように、第２のカメラキャリブレーションを完了することは、例えば、そのキャリブレーション画像に基づいて固有パラメーターを求めるように、及び／又はカメラをその外部環境に関連付けるキャリブレーション画像に基づき変換関数を求めるように、計算を実行することを含むことができる。場合によっては、第２のカメラキャリブレーションを完了するための計算又は他のステップは、少なくとも規定されたキャリブレーション期間程度の長さである休止期間中にのみ実行することができる。規定されたキャリブレーション期間は、第２のカメラキャリブレーションを完了するために必要な時間（例えば、計算を実行するために必要な時間）を示すことができる。休止期間の時間の量が、規定されたキャリブレーション期間より短い場合、第２のカメラキャリブレーションを完了することに関与する計算又は他のステップは、後続する休止期間まで延期することができる。場合によっては、計算が後続する休止期間まで延期される場合、現休止期間を依然として使用して、更なるキャリブレーション画像を取り込むようにカメラを制御することができ、その結果、計算が後続する期間において実行されるとき、計算は、現休止期間からのより最近に取り込まれたキャリブレーション画像を用いて実行される。
【００１４】
図１Ａは、自動カメラキャリブレーション及びカメラキャリブレーションの自動更新を実行するロボット運用システム１００（システム１００とも呼ばれる）のブロック図を示す。ロボット運用システム１００は、ロボット１５０と、ロボット制御システム１１０（ロボットコントローラーとも呼ばれる）と、カメラ１７０とを含む。一実施形態において、システム１００は倉庫内に、製造工場内に、又は他の施設内に位置することができる。ロボット制御システム１１０は、後に更に詳細に論じられるカメラキャリブレーションを実行し、カメラキャリブレーション情報を特定するように構成することができ、カメラキャリブレーション情報は、倉庫内で荷物を持ち上げる等のロボット操作を実行するようにロボット１５０を制御するために後に使用される。ロボット制御システム１１０は、同じく後に更に詳細に論じられるカメラキャリブレーションを更新し、カメラキャリブレーション情報が過度に又は過度に急速に変化している状況（それは、カメラ１７０又はその外部環境の望ましくない状態を示す可能性がある）を検出するように、更に構成することができる。場合によっては、ロボット制御システム１１０は、カメラキャリブレーションを実行し、カメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット１５０を制御するように構成される。場合によっては、ロボット制御システム１１０は、ロボット１５０及びカメラ１７０と通信する単一のデバイス（例えば、単一のコンソール又は単一のコンピューター）を形成することができる。場合によっては、ロボット制御システム１１０は複数のデバイスを含むことができる。
【００１５】
場合によっては、ロボット制御システム１１０は、カメラキャリブレーション及び／又はカメラキャリブレーションの更新を実行する専用システムとすることができ、最新のカメラキャリブレーション情報を別の制御システム（別のコントローラーとも呼ばれる、図示せず）に通信することができ、その後、別の制御システムが、最新のカメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット１５０を制御する。ロボット１５０は、カメラ１７０によって取り込まれた画像に基づいて、かつカメラキャリブレーション情報に基づいて位置決めすることができる。より具体的には、ロボット制御システム１１０は、一実施形態において、画像に基づいて、かつカメラキャリブレーション情報に基づいて、動作コマンドを生成し、動作コマンドをロボット１５０に通信し、そのロボットアームの動作を制御するように構成することができる。場合によっては、ロボット制御システム１１０は、ロボット操作時の休止期間中にカメラキャリブレーションの更新を実行するように構成される。場合によっては、ロボット制御システム１１０は、ロボット１５０でロボット操作を実行している間に更新を実行するように構成される。
【００１６】
一実施形態において、ロボット制御システム１１０は、有線通信又はワイヤレス通信を介して、ロボット１５０及びカメラ１７０と通信するように構成することができる。例えば、ロボット制御システム１１０は、ＲＳ−２３２インターフェース、ユニバーサルシリアルバス（ＵＳＢ）インターフェース、イーサネットインターフェース、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース、ＩＥＥＥ８０２．１１インターフェース又はその任意の組み合わせを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。一実施形態において、ロボット制御システム１１０は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス等のローカルコンピューターバスを介して、ロボット１５０及び／又はカメラ１７０と通信するように構成することができる。
【００１７】
一実施形態において、ロボット制御システム１１０は、ロボット１５０とは別に存在することができ、上記で論じられたワイヤレス接続又は有線接続を介して、ロボットと通信することができる。例えば、ロボット制御システム１１０は、有線接続又はワイヤレス接続を介してロボット１５０及びカメラ１７０と通信するように構成されるスタンドアローンコンピューターとすることができる。一実施形態において、ロボット制御システム１１０は、ロボット１５０と一体の構成要素とすることができ、上記で論じられたローカルコンピューターバスを介して、ロボット１５０の他の構成要素と通信することができる。場合によっては、ロボット制御システム１１０は、ロボット１５０のみを制御する専用制御システム（専用コントローラーとも呼ばれる）とすることができる。他の場合には、ロボット制御システム１１０は、ロボット１５０を含む、複数のロボットを制御するように構成することができる。一実施形態において、ロボット制御システム１１０、ロボット１５０及びカメラ１７０は同じ施設（例えば、倉庫）内に位置する。一実施形態において、ロボット制御システム１１０は、ロボット１５０及びカメラ１７０から遠隔とすることができ、ネットワーク通信（例えば、ローカルエリアネットワーク（ＬＡＮ）接続）を介して、ロボット１５０及びカメラ１７０と通信するように構成することができる。
【００１８】
一実施形態において、ロボット制御システム１１０は、カメラ１７０から、ロボット１５０上（例えば、ロボットのロボットアーム上）に配置されるキャリブレーションパターン１６０の画像を引き出すか、又は別の方法で受信するように構成することができる。場合によっては、ロボット制御システム１１０は、そのような画像を取り込むように、カメラ１７０を制御するように構成することができる。例えば、ロボット制御システム１１０は、カメラ１７０にカメラ１７０の視野（カメラ視野とも呼ばれる）の画像を取り込ませるカメラコマンドを生成し、有線接続又はワイヤレス接続を介して、カメラコマンドをカメラ１７０に通信するように構成することができる。同じコマンドによって、カメラ１７０に、ロボット制御システム１１０、又はより一般的には、ロボット制御システム１１０によってアクセス可能な記憶デバイスに画像を通信させることもできる。代替的には、ロボット制御システム１１０は、カメラコマンドを受信すると、カメラ１７０が取り込んだ画像（複数の場合もある）をロボット制御システム１１０に通信する別のカメラコマンドを生成することができる。一実施形態において、カメラ１７０は、ロボット制御システム１１０からのカメラコマンドを必要とすることなく、定期的に、又は規定されたトリガー条件に応答して、自らのカメラ視野内の画像を自動的に取り込むことができる。そのような実施形態において、カメラ１７０は、ロボット制御システム１１０からのカメラコマンドを用いることなく、ロボット制御システム１１０に、又はより一般的にはロボット制御システム１１０によってアクセス可能な記憶デバイスに画像を自動的に通信するように構成することもできる。
【００１９】
一実施形態において、ロボット制御システム１１０は、ロボット制御システム１１０によって生成され、有線接続又はワイヤレス接続を介してロボット１５０に通信される動作コマンドを介して、ロボット１５０の動作を制御するように構成することができる。ロボット１５０は、ロボット１５０上にキャリブレーションパターン１６０を有するように構成することができる。例えば、キャリブレーションパターン１６０は、ロボット１５０上に永久的に配置することができ、又は、ロボット１５０に着脱可能である別の構成要素とすることができる。
【００２０】
一実施形態において、ロボット１５０を制御するためにシステム１００において使用される唯一の画像が、カメラ１７０によって取り込まれた画像である場合がある。別の実施形態において、システム１００は、複数のカメラを含むことができ、ロボット１５０は、複数のカメラからの画像によって制御することができる。
【００２１】
図１Ｂは、ロボット１５０と、ロボット制御システム１１０と、カメラ１７０と、ユーザーインターフェースデバイス１８０とを備えるロボット運用システム１００Ａを示す。ロボット１５０は、ロボット１５０上に配置されたキャリブレーションパターンを有することができる。場合によっては、ロボット運用システム１００Ａは、初期カメラキャリブレーション、又はより一般的には第１のカメラキャリブレーションを実行して初期カメラキャリブレーション情報を得ることができ、初期カメラキャリブレーション情報は、基準カメラキャリブレーション情報として作用することができる。ロボット運用システム１００Ａは、その後、経時的に更なるカメラキャリブレーションを実行して、更新されたカメラキャリブレーション情報を得ることができる。ロボット運用システム１００Ａは、更新されたカメラキャリブレーション情報と基準カメラキャリブレーション情報との間の偏差量が規定された閾値を超えるか否かをモニタリングすることができる。偏差量が、ロボット操作中に規定された閾値を超えると判断された場合、ロボット制御システム１１０は、ユーザーインターフェースデバイス１８０に通知信号を出力することができる。ユーザーインターフェースデバイス１８０は、ロボット１５０が位置する倉庫にいる従業員等の、ロボット１５０の運用者とのインターフェースを構成することができる。ユーザーインターフェースデバイス１８０は、ロボット１５０の運用に関連する情報を表示するユーザーインターフェースを提供する、例えば、タブレットコンピューター又はデスクトップコンピューターを含むことができる。一例では、ユーザーインターフェースデバイス１８０は、オペレーターに対して、偏差量が規定された閾値を越えていることを通知する警報又は他の警告を与えることができる。通知信号は、例えば、カメラ１７０の特性が過度に若しくは過度に迅速に変化しているか、又はカメラ１７０とロボット１５０との間の関係が過度に若しくは過度に迅速に変化している望ましくない状況を反映することができる。
【００２２】
図１Ｃは、ロボット制御システム１１０のブロック図を示す。ブロック図に示されるように、ロボット制御システム１１０は、制御回路１１１と、通信インターフェース１１３と、非一時的コンピューター可読媒体１１５（例えば、メモリ）とを含む。一実施形態において、制御回路１１１は１つ以上のプロセッサ、プログラマブル論理回路（ＰＬＣ）又はプログラマブル論理アレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又は任意の他の制御回路を含むことができる。
【００２３】
一実施形態において、通信インターフェース１１３は、図１Ａ又は図１Ｂのカメラ１７０及び図１Ａ又は図１Ｂのロボット１５０と通信するように構成される１つ以上の構成要素を含むことができる。例えば、通信インターフェース１１３は、有線プロトコル又はワイヤレスプロトコルを介して通信を実行するように構成される通信回路を含むことができる。一例として、通信回路は、ＲＳ−２３２ポートコントローラー、ＵＳＢコントローラー、イーサネットコントローラー、Ｂｌｕｅｔｏｏｔｈ（登録商標）コントローラー、ＰＣＩバスコントローラー、任意の他の通信回路、又はその組み合わせを含むことができる。
【００２４】
一実施形態において、非一時的コンピューター可読媒体１１５はコンピューターメモリを含むことができる。コンピューターメモリは、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、半導体集積メモリ（solid state integrated memory）、及び／又はハードディスクドライブ（ＨＤＤ）を含むことができる。場合によっては、カメラキャリブレーションは、非一時的コンピューター可読媒体１１５上に記憶されるコンピューター実行可能命令（例えば、コンピューターコード）を通して実施することができる。そのような場合に、制御回路１１１は、コンピューター実行可能命令を実行し、カメラキャリブレーションの更新（例えば、図４Ａ、図４Ｂ、図９及び図１１に示されるステップ）を実行するように構成される１つ以上のプロセッサを含むことができる。
【００２５】
図１Ｄは、１つ以上のレンズ１７１と、イメージセンサー１７３と、通信インターフェース１７５とを含むカメラ１７０のブロック図を示す。通信インターフェース１７５は、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０と通信するように構成することができ、ロボット制御システム１１０の図１Ｃの通信インターフェース１１３に類似とすることができる。一実施形態において、１つ以上のレンズ１７１は、カメラ１７０の外部から到来している光をイメージセンサー１７３上に合焦することができる。一実施形態において、イメージセンサー１７３は、それぞれのピクセル強度値を介して画像を表すように構成されるピクセルのアレイを含むことができる。イメージセンサー１７３は、電荷結合素子（ＣＣＤ）センサー、相補型金属酸化膜半導体（ＣＭＯＳ）センサー、量子イメージセンサー（ＱＩＳ：quanta image sensor）又は任意の他のイメージセンサーを含むことができる。
【００２６】
上記で言及されたように、カメラによって取り込まれた画像に基づいて、ロボットの制御を助長するために、カメラキャリブレーションを実行することができる。例えば、図２はロボット運用システム２００（システム２００とも呼ばれる）を示しており、そのシステムでは、画像を用いて、倉庫内の物体２９２を持ち上げる操作等の、ロボット操作を実行するようにロボット２５０を制御する。より具体的には、システム２００は、図１Ａのシステム１００の一実施形態とすることができ、カメラ２７０、ロボット２５０及びロボット制御システム１１０を含む。カメラ２７０は、図１Ａ、図１Ｂ又は図１Ｄのカメラ１７０の一実施形態とすることができ、ロボット２５０は、図１Ａ又は図１Ｂのロボット１５０の一実施形態とすることができる。カメラ２７０は、倉庫内のコンベヤベルト２９３上に配置される物体２９２（例えば、出荷するための荷物）の画像を取り込むように構成することができ、ロボット制御システム１１０は、物体２９２を持ち上げるように、ロボット２５０を制御するように構成することができる。コンベヤベルト２９３上に１つ以上の物体が存在するとき、ロボット制御システム１１０は、物体を持ち上げるロボット２５０の動作をスケジューリングするように構成することができる。ロボット制御システム１１０は、場合によっては、コンベヤベルト２９３上に物体が存在しない時点、又はコンベヤベルト２９３上の、ロボット２５０の届く範囲内に物体が存在しない時点を検出することによって、ロボット操作のための休止期間を検出するように構成することができる。
【００２７】
図２の実施形態において、ロボット２５０は、ベース２５２と、ベース２５２に対して移動可能であるロボットアームとを有することができる。より具体的には、ロボットアームは複数のリンク２５４Ａ〜２５４Ｅと、リンク２５４Ｅに取り付けられるロボットハンド２５５とを備えることができる。複数のリンク２５４Ａ〜２５４Ｅは互いに対して回動可能とすることができ、及び／又は互いに対して直線的に移動可能である直動リンク（prismatic links）とすることができる。図２は、物体を持ち上げるために使用されるロボット２５０を伴うので、ロボットハンド２５５は、物体２９２を掴むために使用されるグリッパー２５５Ａ及び２５５Ｂを含むことができる。一実施形態において、ロボット制御システム１１０は、リンク２５４Ａ〜２５４Ｅのうちの１つ以上を回動させる動作コマンドを通信するように構成することができる。動作コマンドは、モーター動作コマンド等のローレベルコマンド、又はハイレベルコマンドとすることができる。ロボット制御システム１１０からの動作コマンドがハイレベルコマンドである場合には、ロボット１５０は、ハイレベルコマンドをローレベルコマンドに変換するように構成することができる。
【００２８】
一実施形態において、カメラキャリブレーションから特定されるカメラキャリブレーション情報は、カメラ２７０とロボット２５０との間の関係、又はより具体的には、カメラ２７０と、ロボット２５０のベース２５２に対して静止している世界点（world point）２９４との間の関係を記述する。世界点２９４は、ロボット２５０が位置する世界又は他の環境を表すことができ、ベース２５２に対して静止している任意の仮想点とすることができる。言い換えると、カメラキャリブレーション情報は、カメラ２７０と世界点２９４との間の関係を記述する情報を含むことができる。一実施形態において、その関係は、世界点２９４に対するカメラ２７０の場所と、ロボット２５０のための参照方向に対するカメラ２７０の向きとを指すことができる。カメラ２７０と世界点２９４との間の上記の関係はカメラ−世界関係と呼ばれる場合があり、カメラ２７０とロボット２５０との間の関係を表すために使用することができる。場合によっては、カメラ−世界関係を用いて、カメラ２７０と物体２９２との間の関係（カメラ−物体関係とも呼ばれる）、及び物体２９２と世界点２９４との間の関係（物体−世界関係とも呼ばれる）を特定することができる。カメラ−物体関係及び物体−世界関係を用いて、物体２９２を持ち上げるようにロボット２５０を制御することができる。
【００２９】
一実施形態において、カメラキャリブレーション情報は、カメラ２７０の固有パラメーターを記述することができ、固有パラメーターは、その値がカメラ２７０の場所及び向きから独立している任意のパラメーターとすることができる。固有パラメーターは、カメラの焦点距離、カメラのイメージセンサーのサイズ、又はカメラ２７０によって導入されるレンズひずみの影響等の、カメラ２７０の特性を特徴付けることができる。
【００３０】
例示的なロボット３５０の詳細な構造を示す一例が図３に示され、図３は、カメラ３７０及びロボット３５０と通信するロボット制御システム１１０を含むロボット運用システム３００を示す。カメラ３７０は、図１Ａ、図１Ｂ、図１Ｄ又は図２のそれぞれカメラ１７０／２７０の一実施形態とすることができ、ロボット３５０は、図１Ａ、図１Ｂ又は図２のそれぞれロボット１５０／２５０の一実施形態とすることができる。カメラ３７０は、カメラ視野３３０と呼ばれる場合もあるカメラ３７０の視野内の画像（例えば、キャリブレーション画像）を取り込むことができる場合がある。ロボット３５０は、ベース３５２と、ベース３５２に対して移動可能であるロボットアームとを含むことができる。ロボットアームは、リンク３５４Ａ〜３５４Ｅ等の１つ以上のリンクを含む。一実施形態において、リンク３５４Ａ〜３５４Ｅは互いに回動可能に取り付けることができる。例えば、リンク３５４Ａは、ジョイント３５６Ａを介して、ロボットベース３５２に回動可能に取り付けることができる。残りのリンク３５４Ｂ〜３５４Ｅは、ジョイント３５６Ｂ〜３５６Ｅを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース３５２を用いて、ロボット３５０を、例えば、取付フレーム又は取付面（例えば、倉庫の床）に取り付けることができる。一実施形態において、ロボット３５０は、リンク３５４Ａ〜３５４Ｅを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。例えば、モーターのうちの１つは、図３において破線矢印で示されるように、ジョイント３５６Ａ及びベース３０２に対して第１のリンク３５４Ａを回動させるように構成することができる。同様に、複数のモーターのうちの他のモーターも、リンク３５４Ｂ〜３５４Ｅを回動させるように構成することができる。複数のモーターはロボット制御システム１１０によって制御することができる。図３は、第５のリンク３５４Ｅ上に固定されるように配置されるロボットハンド３５５を更に示す。ロボットハンド３５５は、その上にキャリブレーションパターン３２０を有することができ、ロボット制御システム１１０がカメラ３７０を介してキャリブレーションパターン３２０の画像を取り込み、キャリブレーションパターン３２０の取り込まれた画像に基づいて、カメラキャリブレーションを実行できるようにする。例えば、ロボット制御システム１１０は、キャリブレーションパターン３２０の画像（キャリブレーション画像とも呼ばれる）を取り込むときに、キャリブレーションパターン３２０がカメラ視野３３０内に存在することができ、カメラ３７０から視認可能であるように、ロボットアームを動かすことができる。ロボットハンド３５５は、取り外し可能かつ別のロボットハンドと交換可能とすることができる。
【００３１】
上記で言及されたように、本出願の一態様は、第１のカメラキャリブレーション（例えば、初期カメラキャリブレーション）の後にキャリブレーションパターン（キャリブレーション画像と呼ばれる場合もある）の画像を取り込み続けることと、より最近に取り込まれたキャリブレーション画像に基づいて更なるカメラキャリブレーション（例えば、後続するカメラキャリブレーション）を実行することとに関する。場合によっては、より最近に取り込まれたキャリブレーション画像は、取り込まれた画像セットに追加することができ、取り込まれた画像セットは、規定数の直近で取り込まれたキャリブレーション画像に割り当てる（map）スライド窓として作用することができ、その結果、追加のカメラキャリブレーションは、規定数の直近で取り込まれたキャリブレーション画像に基づくことができる。
【００３２】
図４Ａ及び図４Ｂは、カメラキャリブレーションを更新する方法４００のステップ例を示すフロー図を提供する。一実施形態において、方法４００は、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０の図１Ｃの制御回路１１１によって実行することができる。上記で言及されたように、ロボット制御システム１１０は、図１Ｃの制御回路１１１と通信インターフェース１１３とを備えることができ、通信インターフェース１１３は、図１Ａ又は図１Ｂのロボット１５０、及びカメラ視野を有する図１Ａ、図１Ｂ又は図１Ｄのカメラ１７０と通信するように構成されている。ロボット１５０は、ベース（例えば、図２のベース２５２又は図３のベース３５２）と、ベースに対して移動可能なロボットアーム（例えば、図２又は図３のロボットアーム）とを有することができ、ロボットアームの上に、キャリブレーションパターン（例えば、図１Ａ又は図１Ｂのキャリブレーションパターン１６０又は図３のキャリブレーションパターン３２０）を配置することができる。
【００３３】
一実施形態において、方法４００はステップ４０１で開始することができ、そのステップでは、制御回路１１１は、第１のカメラキャリブレーションを実行して、カメラ（例えば、１７０）に対するカメラキャリブレーション情報を特定する。制御回路１１１は、キャリブレーションパターンの画像（キャリブレーション画像とも呼ぶ）に基づき第１のカメラキャリブレーションを実行することができる。一態様では、第１のカメラキャリブレーションは、カメラ視野内でキャリブレーションパターンを第１の組の１つ以上の場所まで動かすようにロボットアームを制御し、通信インターフェース（例えば、通信インターフェース１１３）を介してカメラ（例えば、カメラ１７０）から第１の組の１つ以上のキャリブレーション画像を受け取り、カメラ（例えば、カメラ１７０）は、キャリブレーションパターンが第１の組の１つ以上の場所にあるか又はあった間にそれぞれ第１の組の１つ以上のキャリブレーション画像を取り込むように構成され、第１の組の１つ以上のキャリブレーション画像に基づいて第１のカメラキャリブレーションを実行することによって、実行することができる。第１の組の１つ以上の場所は、ランダムに選択することができ、又は、規定する（例えば、手動で規定するか、又はロボット制御システムによって動的に計算する）ことができる。カメラキャリブレーションは、内容全体が引用することにより本明細書の一部をなす、２０１９年３月７日に出願され、「METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED ON IMAGES FROM A CAMERA」と題する米国特許出願第１６／２９５，９４０号（整理番号ＭＪ００２１ＵＳ１）においてより詳細に論じられている。
【００３４】
方法４００のステップ４０１及び他のステップが実行される例示的な環境が図５Ａ及び図５Ｂに示されており、その図は、一態様による、カメラ５７０及びロボット５５０と通信するロボット制御システム１１０を含むロボット運用システム５００を示す。カメラ５７０は、図１、図２又は図３のそれぞれカメラ１７０／２７０／３７０の一実施形態とすることができ、ロボット５５０は、図１、図２又は図３のそれぞれロボット１５０／２５０／３５０の一実施形態とすることができる。ロボット５５０は、ベース５５２と、ベース５５２に対して移動可能であるロボットアームとを含むことができる。ロボットアームは、リンク５５４Ａ〜リンク５５４Ｅ等の１つ以上のリンクを含む。一実施形態において、リンク５５４Ａ〜５５４Ｅは互いに回動可能に取り付けることができる。例えば、リンク５５４Ａは、ロボットベース５５２に回動可能に取り付けることができる。残りのリンク５５４Ｂ〜５５４Ｅは、複数のジョイントを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース５５２を用いて、ロボット５５０を、例えば、取付フレーム又は取付面（例えば、倉庫の床）に取り付けることができる。ロボット５５０は、ロボット３５０と同じように操作することができる。例えば、ロボット５５０は、リンク５５４Ａ〜５５４Ｅを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。第５のリンク５５４Ｅに、ロボットハンド５５５を固定して配置することができ、ロボットハンド５５５の上にキャリブレーションパターン５２０を配置することができる。図５Ａは、ロボット操作中にロボット５５０がロボットタスクを実行している（例えば、第１の物体５８２Ａを持ち上げている）間に、ロボットハンド５５５が様々な方向に動く可能性があり、かつロボットタスクを実行するためにカメラ５７０から離れる方向に回動する可能性があるため、キャリブレーションパターン５２０がカメラ５７０に定期的に面していない可能性がある一実施形態を示す。後に更に詳細に論じられるように、こうした実施形態は、キャリブレーションパターン５２０の画像（キャリブレーションパターン５２０のキャリブレーション画像とも呼ぶ）を取り込むように、カメラ５７０に面するようにキャリブレーションパターン５２０を回動させるために、休止期間（例えば、ロボット５５０が物体を持ち上げるように要求されないとき）まで、待機することができる。例えば、図５Ｂは、ロボット５５０が、ロボット５５０がロボットタスクを実行していない休止期間中、カメラ５７０がキャリブレーションパターン５２０のキャリブレーション画像を取り込むのを可能にするために、カメラ５７０に面するようにキャリブレーションパターン５２０を動かすことができる状況を示す。図５Ｂにおいて、ロボット５５０は、物体５８２Ａ及び５８２Ｂの持ち上げをすでに終了している可能性があり、一方、物体５８２Ｃとロボット５５０のロボットハンド５５５との間の距離は規定された閾値を超える可能性がある。
【００３５】
上記で言及されたように、場合によっては、制御回路１１１は、図１又は図６のカメラ１７０／６７０をそれぞれ制御して、休止期間を使用することなくキャリブレーション画像を取り込むことができる。こうした状況の一例は図６Ａ及び図６Ｂに示されており、図６Ａ及び図６Ｂは、方法４００のステップ４０１及び他のステップを実行することができる別の環境例を提供する。図６Ａ及び図６Ｂは、カメラ６７０及びロボット６５０と通信するロボット制御システム１１０を備えるロボット運用システム６００（システム６００とも呼ぶ）を示す。図６Ａは、システム６００の側面図であり、図６Ｂは、システム６００の上面図である。カメラ６７０は、図１、図２又は図３それぞれのカメラ１７０／２７０／３７０の一実施形態とすることができ、ロボット６５０は、図１、図２又は図３それぞれのロボット１５０／２５０／３５０の一実施形態とすることができる。ロボット６５０は、ベース６５２と、ベース６５２に対して可動のロボットアームとを備えることができる。ロボットアームは、リンク６５４Ａ〜リンク６５４Ｅ等の１つ以上のリンクを含む。一実施形態では、リンク６５４Ａ〜６５４Ｅは、互いに回動可能に取り付けることができる。例えば、リンク６５４Ａは、ロボットベース６５２に回動可能に取り付けることができる。残りのリンク６５４Ｂ〜６５４Ｅは、複数のジョイントを介して互いに回動可能に取り付けることができる。一実施形態では、ベース６５２を使用して、ロボット６５０を、例えば取付枠又は取付面に取り付けることができる。ロボット６５０は、ロボット３５０と同様に操作することができる。
【００３６】
図６Ａ及び図６Ｂの実施形態において、キャリブレーションパターン６２０は、ロボット６５０が物体６８２と相互作用することによってロボットタスクを実行している間であっても、常にカメラ６７０に向かって上方に面しているリンク６５４Ｅの部分に配置されている。一例では、物体は、パレットの上に積まれるか又パレットから降ろされる包装品（すなわち、パレットに載せられるか又はパレットから降ろされる包装品）とすることができる。ロボット６５０は、物体６８２を積み重ねるか又は積重ねから取り出すように構成されたデパレタイザーロボットとすることができ、したがって、図６Ｂに示されるように、物体６８２と相互作用することによってロボットタスクを実行している間に、キャリブレーションパターン６２０をカメラ６７０に面した状態にしておくことができる。キャリブレーションパターン６２０は、ロボット６５０がロボット操作に従事しており休止していないときであっても、カメラ６７０に面しているため、ロボット制御システム１１０は、休止期間を使用することなくカメラ６７０を介してキャリブレーション画像を取り込むようにカメラ６７０を制御することができる。
【００３７】
一実施形態において、ステップ４０１の第１のカメラキャリブレーションは、例えば、図１、図５Ａ、図５Ｂ、図６Ａ又は図６Ｂのキャリブレーションパターン５２０／６２０を使用することによって、実行することができる。場合によっては、第１のカメラキャリブレーションは、ロボット操作を開始する前に実行される初期カメラキャリブレーションとすることができる。代替的には、第１のカメラキャリブレーションは、ロボット操作中に実行することができる。ロボット制御システム１１０は、キャリブレーションパターン（例えば、５２０/６２０）を図５Ａ、図５Ｂ、図６Ａ又は図６Ｂそれぞれのカメラ５７０／６７０の視野５１０／６１０（カメラ視野とも呼ぶ）内の様々な場所まで（例えば、動作コマンドを介して）動かすように、かつこうした場所でキャリブレーションパターン５２０／６２０の画像（キャリブレーションパターン５２０／６２０のキャリブレーション画像と呼ぶことができる）を取り込むように、例えばロボット５５０／６５０のロボットアームを制御することができる。その後、ロボット制御システム１１０は、キャリブレーションパターン５２０／６２０のキャリブレーション画像に基づき、カメラ（例えば、５７０／６７０）のためのカメラキャリブレーション情報を特定するように、第１のカメラキャリブレーションを実行することができる。ロボット制御システム１１０は、カメラ５７０／６７０とカメラ５７０／６７０のカメラキャリブレーション情報とに基づいて動くように、ロボット５５０／６５０を制御することができる。カメラキャリブレーション情報の精度は、ロボット５５０／６５０の動作の精度に影響を与える可能性がある。このため、ロボット制御システム１１０は、カメラ５７０／６７０を介して経時的に新たなキャリブレーション画像を取り込むようにカメラ５７０／６７０を制御することができ、そこでは、新たなキャリブレーション画像は、第１のカメラキャリブレーションを実行するために使用されたキャリブレーション画像より最近である。新たなキャリブレーション画像を使用して、最新であるカメラキャリブレーション情報をもたらすことができる、更なるカメラキャリブレーションを実行することができる。
【００３８】
図４Ａに戻ると、方法４００はステップ４０３を更に含むことができ、そのステップでは、制御回路１１１は、カメラキャリブレーション情報に基づき、例えば、カメラキャリブレーション情報に基づく第１の動作コマンドを、通信インターフェース（例えば、１１３）を介してロボット（例えば、５５０／６５０）に出力することによって、ロボット操作を実行するようにロボットアームの動作を制御する。例えば、制御回路１１１は、カメラキャリブレーション情報に基づく第１の動作コマンドを通信インターフェース（例えば、１１３）に出力することができ、通信インターフェース（例えば、１１３）は、ロボットアームがロボット操作（例えば、コンベヤベルトから物体を持ち上げること）を実行するように動くようにする第１の動作コマンドを、ロボットに通信するように構成されている。
【００３９】
ステップ４０５において、制御回路１１１は、第１のカメラキャリブレーションの後、通信インターフェースを介して第２の動作コマンドをロボットに出力すること等により、カメラ視野（例えば、５１０／６１０）内で１つ以上の場所までキャリブレーションパターン（例えば、５２０／６２０）を動かすように、ロボットアームを制御する。例えば、第１のカメラキャリブレーションの後、制御回路１１１は、第２の動作コマンドを通信インターフェース１１３に出力することができ、通信インターフェース１１３は、ロボットアームがカメラ視野（例えば、５１０／６１０）内の１つ以上の場所までキャリブレーションパターンを動かすようにする第２の動作コマンドをロボットに通信するように構成されている。１つ以上の場所は、ランダムに選択することができ、又は規定された場所とすることができる。制御回路１１１は、さらに、キャリブレーションパターン（例えば、５２０／６２０）を１つ以上の場所の各々において、キャリブレーションパターンがカメラ（例えば、５７０／６７０）に可視であるように向けるように、ロボットアームを制御することができる。
【００４０】
ステップ４０７において、制御回路１１１は、通信インターフェース（例えば、１１３）を介してカメラ（例えば、１７０／５７０／６７０）から１つ以上のキャリブレーション画像を受け取り、１つ以上のキャリブレーション画像は、それぞれ、キャリブレーションパターン（例えば、５２０／６２０）が１つ以上のそれぞれの場所にあるときにカメラ（例えば、１７０／５７０／６７０）によって取り込まれる（これは、１つ以上のキャリブレーション画像が１つ以上の場所においてそれぞれ取り込まれていると言うこともできる）。例えば、制御回路１１１は、通信インターフェース１１３から、１つ以上のキャリブレーション画像を受け取ることができ、通信インターフェース１１３は、カメラ１７０から１つ以上のキャリブレーション画像を受け取るように構成され、１つ以上のキャリブレーション画像は、キャリブレーションパターンが、カメラ視野内の１つ以上の場所それぞれにあるときにそれぞれ取り込まれる。１つ以上のキャリブレーション画像の各画像は、１つ以上の場所のそれぞれの場所において取り込むことができる。場合によっては、制御回路１１１は、通信インターフェース１１３を使用して、カメラ１７０から１つ以上のキャリブレーション画像を引き出すことができる。場合によっては、ステップ４０７は、制御回路１１１がカメラコマンドを生成し、通信インターフェース１１３を介してカメラコマンドをカメラ１７０に通信することを含むことができ、カメラコマンドにより、カメラ１７０は、１つ以上のキャリブレーション画像を取り込み、及び／又は、取り込んだ１つ以上の画像を通信インターフェース１１３に戻すように通信する。他の場合では、カメラは、１つ以上のキャリブレーション画像を、周期的に又はトリガー条件に応じて自動的に取り込み、１つ以上のキャリブレーション画像を通信インターフェース１１３に又は通信インターフェース１１３によってアクセス可能な記憶デバイスに自動的に通信することができる。
【００４１】
例えば、図５Ｂに示されるように、ロボット制御システム１１０の制御回路は、カメラ視野５１０内の１つ以上の場所までキャリブレーションパターン５２０を動かすようにロボット５５０のロボットアームを制御することができ、その結果、ロボット制御システム１１０は、カメラ５７０を介して、キャリブレーションパターン５２０が１つ以上の場所それぞれにあることに対応して１つ以上のそれぞれのキャリブレーション画像を取り込むことができる。場合によっては、１つ以上の場所は複数の場所とすることができる。こうした場合、キャリブレーションパターン５２０が第１の場所にある間にカメラによってキャリブレーション画像が取り込まれた後、ロボット制御システム１１０は、キャリブレーションパターン５２０を第２の場所まで動かし、キャリブレーションパターン５２０が第２の場所にある間に別のキャリブレーション画像を取り込むことができる。キャリブレーション画像が取り込まれているとき、ロボット制御システム１１０は、キャリブレーションパターン５２０がカメラ５７０に面するように、キャリブレーションパターン５２０を動かすようにロボット５５０を制御することができる。例えば、ロボット制御システム１１０は、キャリブレーションパターン５２０がカメラ５７０に可視であるようにキャリブレーションパターン５２０を向けるように、ロボット５５０を制御することができる。
【００４２】
図４Ａに戻ると、方法４００は、ステップ４０９を更に含むことができ、そのステップでは、制御回路１１１は、キャリブレーション画像を含む取り込まれた画像セットに１つ以上のキャリブレーション画像を追加する。一実施形態において、取り込まれた画像セットは、例えば、非一時的コンピューター可読媒体１１５又は他の任意の記憶デバイスに記憶された１組の画像とすることができる。
【００４３】
場合によっては、取り込まれた画像セットは、固定サイズを有することができ、例えば、特定の最大数のキャリブレーション画像を含むことができる。例えば、固定サイズは２７とすることができ、それにより、取り込まれた画像セットは、２７個の直近で取り込まれたキャリブレーション画像等、厳密に２７個のキャリブレーション画像を保持する。取り込まれた画像セットに対する固定サイズは、２７以外の固定値に設定することができることが理解される。カメラキャリブレーションは、取り込まれた画像セットにおける画像のうちにいくつか又は全てを使用して実行することができる。こうしたシナリオでは、取り込まれた画像セットは、規定数の直近で取り込まれた画像をカバーするようにスライドするスライド窓として作用することができる。
【００４４】
場合によっては、取り込まれた画像セットは、ゼロのサイズから開始することができ、キャリブレーション画像がセットに追加されるに従いサイズを増大させることができる。例えば、取り込まれた画像セットは、ステップ４０１において第１のカメラキャリブレーションが実行された後にリセットすることができる。取り込まれた画像セットは、キャリブレーション画像の全てをセットから除去する（例えば、削除する）ことによってリセットすることができ、その結果、ステップ４０９の開始時、取り込まれた画像セットはゼロのサイズを有する。この場合、取り込まれた画像セットは、キャリブレーション画像が追加されるに従いサイズを増大させることができ、取り込まれた画像セットにおけるキャリブレーション画像の総数を制限する規定された最大サイズ（例えば、２７個のキャリブレーション画像）を有することができる。規定された最大サイズは、一実施形態では、後述される目標数に等しい可能性がある。例えば、目標数は、確実なカメラキャリブレーションを実行するためのキャリブレーション画像の最小数を示すことができる。目標数は、手動で又は動的に規定される値とすることができ、したがって、規定された目標数と呼ぶことができる。状況によっては、取り込まれた画像セットは、取り込まれた画像セットが規定最大サイズに達するまでカメラキャリブレーションを実行するために使用されない。取り込まれた画像セットが最大サイズに達すると、制御回路１１１は、セットにおける複数の最も古いキャリブレーション画像を、同数の直近のキャリブレーション画像が追加されたときに廃棄することができ、その結果、取り込まれた画像セットは、規定数の直近で取り込まれた画像を取り込むスライド窓として作用する。一実施形態では、制御回路１１１は、ステップ４０９の間等、取り込まれた画像セットにキャリブレーション画像が追加される度に、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数と等しいか否かを判断することができる。
【００４５】
方法４００は、ステップ４１１を更に含むことができ、そのステップでは、制御回路１１１は、取り込まれた画像セットにおけるキャリブレーション画像に基づいて第２のカメラキャリブレーションを実行し、第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する。例えば、ロボット制御システム１１０が第１のカメラキャリブレーションを実行した後、ロボット制御システム１１０は、或る期間にわたりキャリブレーション画像の取込みを継続するようにカメラ（例えば、５７０／６７０）を制御することができ、これらの取り込まれたキャリブレーション画像を取り込まれた画像セットに追加することができ、取り込まれた画像セットは、複数の直近で取り込まれたキャリブレーション画像を含むことができる。そして、ロボット制御システム１１０は、取り込まれた画像セットにおけるキャリブレーション画像に基づいて、第２のカメラキャリブレーションを実行することができる。第２のカメラキャリブレーションは、第１のカメラキャリブレーションに続くため、後続するカメラキャリブレーションと呼ぶことができる。
【００４６】
一実施形態において、第２のカメラキャリブレーションは、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数（例えば、２７個のキャリブレーション画像）に達したときにのみ実行することができる。例えば、規定された目標数は、初期カメラキャリブレーションに続く各カメラキャリブレーションに対して、又はより一般的には第１のカメラキャリブレーションに続く各カメラキャリブレーションに対して、十分な数のキャリブレーション画像を使用することができることを確実にするように、規定することができる。例えば、規定された目標数は、高精度を達成するように各カメラキャリブレーションに対して使用されるべきキャリブレーション画像の最小数を表すことができる。
【００４７】
一実施形態において、制御回路１１１は、取り込まれた画像セットに、或る数の、カメラ（例えば、１７０／５７０／６７０）によって直近で取り込まれた１つ以上のキャリブレーション画像を追加し、取り込まれた画像セットから、等しい数の、カメラ（例えば、１７０／５７０／６７０）によって最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように構成される。これは、例えば、取り込まれた画像セットにおけるキャリブレーション画像の数が、例えば目標数によって特定されるように、その最大サイズ又は固定サイズに等しい場合に起こる可能性があり、その結果、最新のキャリブレーション画像がセットにおける最も古いキャリブレーション画像に置き換わる。こうした実施形態では、第２のカメラキャリブレーションが実行されるとき、取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい。一実施形態では、制御回路１１１は、いずれのキャリブレーション画像が取り込まれた画像セットにあるかを特定するリストを記憶することができる。例えば、リストは、取り込まれた画像セットにおけるそれぞれのキャリブレーション画像の画像識別子（例えば、ファイル名）を含むことができる。キャリブレーション画像が取り込まれた画像セットに追加されると、制御回路１１１は、キャリブレーション画像の画像識別子をリストに追加するように構成することができ、それにより、取り込まれた画像セットにキャリブレーション画像を有効に追加することができる。この例では、制御回路１１１はまた、リストから、取り込まれた画像セットにおける最も古いキャリブレーション画像に対応する別の画像識別子を除去することもでき、それにより、取り込まれた画像セットから最も古いキャリブレーション画像を有効に除去することができる。
【００４８】
上記で言及されたように、制御回路１１１は、ロボット操作中に休止期間を検出し、ロボットアームが、休止期間中に１つ以上の場所にキャリブレーションパターン（例えば、１６０／５２０／６２０）を動かすように制御されるように、休止期間中に第２の動作コマンドを出力するように構成することができ、１つ以上のそれぞれのキャリブレーション画像は、休止期間中に１つ以上の場所で取り込まれる。例えば、図５Ａに示されるように、ロボット制御システム１１０は、第２の物体５８２Ｂと第３の物体５８２Ｃとの間に大きい間隙があるため、第２の物体５８２Ｂに関連するロボットタスクと第３の物体５８２Ｃに関連するロボットタスクとの間の休止期間を検出することができる。一例では、ロボット制御システム１１０は、コンベヤベルト５７３上の上流のいずれの物体もロボット５５０によって到達可能ではない、及び／又はロボット制御システム１１０が、ロボット５５０とコンベヤベルト５７３上の上流の最も近い物体（例えば、第３の物体５８２Ｃ）との間の距離が特定の閾値を超える休止期間を検出することができる。図５Ｂに示されるように、ロボット制御システム１１０は、休止期間中にキャリブレーションパターン５２０を或る場所まで動かし、休止期間中にその場所でキャリブレーション画像（例えば、第１のキャリブレーション画像）を取り込むように、ロボット５５０のロボットアームを制御することができる。休止期間に更なる時間が残っている場合、ロボット制御システム１１０は、キャリブレーションパターン５２０を別の場所まで動かすようにロボット５５０のロボットアームを制御し、別のキャリブレーション画像（例えば、第２のキャリブレーション画像）を取り込むようにカメラ５７０を制御することができる。ロボットアームは、キャリブレーションパターン５２０を場所の各々においてカメラ５７０に可視であるように向けるように制御することができる。
【００４９】
一実施形態において、上記休止期間は第１の休止期間とすることができ、制御回路１１１は、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断するように構成することができる。こうした実施形態では、制御回路１１１は、第１の休止期間の後、ロボット操作中に第２の休止期間を検出するように構成することができ、第２の休止期間が規定されたキャリブレーション期間以上の長さであるか否かを判断するように更に構成することができる。一実施形態において、規定されたキャリブレーション期間は、第２のカメラキャリブレーションを完了するために必要な時間の量を示すことができる。上述したように、第２のカメラキャリブレーションを完了することは、カメラの固有パラメーター、及び／又はカメラとロボットとの間の関係を記述する変換関数（例えば、行列）を求めるように計算を実行することを含むことができる。規定されたキャリブレーション期間は、こうした計算を実行するために必要な時間の量を示すことができる。第２の休止期間が規定されたキャリブレーション期間以上の長さであるとの判断に応じて、制御回路１１１は、第２の休止期間において第２のカメラキャリブレーションを完了するように構成することができる。
【００５０】
一方、第２の休止期間が規定されたキャリブレーション期間より短いという判断に応じて、制御回路１１１は、第２のカメラキャリブレーションの完了を後続する（例えば、第３の）休止期間まで延期するように構成することができる。場合によっては、第２の休止期間中はそれ以上のキャリブレーション画像は取り込まれない。他の場合では、制御回路１１１は、第２の休止期間における残りの量の時間中、通信インターフェース１１３を介してカメラ（例えば、１７０／５７０／６７０）から１つ以上の追加のキャリブレーション画像を受け取る（例えば、引き出す）ことができ、カメラ（例えば、１７０／５７０／６７０）は、（例えば、カメラコマンドに応じて）第２のカメラキャリブレーションのために第２の休止期間から最近のキャリブレーション画像を提供するように、カメラ視野（例えば、５１０／６１０）内の１つ以上の追加の場所において１つ以上の追加のキャリブレーション画像をそれぞれ取り込むように構成される。制御回路１１１は、１つ以上の追加の画像を取り込まれた画像セットに追加することにより、かつ、更新された取り込まれた画像セットを生成するように、カメラ（例えば、１７０／５７０／６７０）によって最も古くに取り込まれた等しい数の１つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することができる。制御回路１１１は、更新された取り込まれた画像セットを用いて第２のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することができる。
【００５１】
上記で言及されたように、キャリブレーション画像が取り込まれ、取り込まれた画像セットに追加されるに従い、取り込まれた画像セットのサイズが増大する可能性がある。取り込まれた画像セットのサイズが、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が上述した規定された目標数に等しいことを示す場合、第２のカメラキャリブレーションに対して、取り込まれた画像セットにおいて十分な数のキャリブレーション画像が利用可能である。一実施形態において、第２のカメラキャリブレーションを完了することは、第２のカメラキャリブレーションに対して上述した計算又は他のステップを実行することを含むことができ、これらの計算又は他のステップは、少なくとも規定されたキャリブレーション期間に等しい量の時間を必要とする可能性がある。このため、この実施形態において、第２のカメラキャリブレーションを完了するために、少なくとも規定されたキャリブレーション期間程度の長さである休止期間が必要とされる。したがって、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達したと判断した後、後続する（例えば、第３の）休止期間が規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム１１０は、後続する休止期間中に第２のカメラキャリブレーションを実行することができる。
【００５２】
一方、後続する（例えば、第３の）休止期間が規定されたキャリブレーション期間より短い場合、ロボット制御システム１１０は、後続する休止期間中に第２のカメラキャリブレーションを完了しないように判断することができ、代わりに、後続する（例えば、第３の）休止期間中に追加のキャリブレーション画像を取り込むことができる。そして、取り込まれた画像セットは、取り込まれた画像セットに追加のキャリブレーション画像を追加することにより、かつ、取り込まれた画像セットから等しい数の最も古いキャリブレーション画像（すなわち、最も古くに取り込まれたキャリブレーション画像）を除去することにより更新され、その結果、更新された取り込まれた画像セットは、規定された目標数に等しい、同じサイズを維持する。ロボット制御システム１１０が、規定されたキャリブレーション期間以上の長さの持続時間を有する別の（例えば、第４の）休止期間を検出すると、ロボット制御システム１１０は、その（例えば、第４の）休止期間中に第２のカメラキャリブレーションを完了することができる。
【００５３】
一例として、規定された目標数が１０であると想定すると、取り込まれた画像セットＳのサイズは、１０個以下のキャリブレーション画像に限定することができる。この例では、１０個のキャリブレーション画像Ｉ１〜Ｉ１０がカメラによって取り込まれ、ここで、Ｉ１は最も早い時期に取り込まれ、Ｉ１０は直近で取り込まれる。取り込まれた画像セットＳに１０個の画像を追加することができる。２つの追加のキャリブレーション画像Ｉ１１及びＩ１２が取り込まれる場合、以下に示されるように、２つの追加のキャリブレーション画像Ｉ１１及びＩ１２は取り込まれた画像セットＳに追加され、最も早い時期に取り込まれた２つのキャリブレーション画像Ｉ１及びＩ２が、取り込まれた画像セットＳから除去され、更新された取り込まれた画像セットＳが生成される。
取り込まれた画像セットＳ＝［Ｉ１，Ｉ２，Ｉ３，Ｉ４，Ｉ５，Ｉ６，Ｉ７，Ｉ８，Ｉ９，Ｉ１０］
追加のキャリブレーション画像＝［Ｉ１１，Ｉ１２］
更新された取り込まれた画像セットＳ＝［Ｉ３，Ｉ４，Ｉ５，Ｉ６，Ｉ７，Ｉ８，Ｉ９，Ｉ１０，Ｉ１１，Ｉ１２］
【００５４】
一実施形態において、上述した休止期間は、第１の休止期間とすることができ、制御回路１１１は、第１の休止期間の後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断するように構成することができる。こうした実施形態では、制御回路１１１は、第２の休止期間を待機することができ、その結果、カメラ（例えば、１７０／５７０／６７０）を介して更なるキャリブレーション画像を取り込み、通信インターフェース１１３を介して制御回路１１１に通信することができる。より具体的には、制御回路１１１は、第１の休止期間に続く第２の休止期間を検出し、第２の休止期間中に通信インターフェース１１３を介してカメラ１７０／５７０／６７０から１つ以上の追加のキャリブレーション画像を受け取るように構成することができ、カメラ１７０／５７０／６７０は、キャリブレーションパターンが、カメラ視野５１０／６１０内の１つ以上の追加の場所にそれぞれ配置されたときに１つ以上の追加のキャリブレーション画像を取り込むように構成されている。制御回路１１１は、更新された取り込まれた画像セットを生成するように、取り込まれた画像セットに１つ以上の追加のキャリブレーション画像を追加するように構成することができる。第２の休止期間において、取り込まれた画像セットに１つ以上の追加のキャリブレーション画像が追加されて、更新された取り込まれた画像セットが生成された後、制御回路１１１は、更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したか否かを判断するように更に構成することができる。更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したという判断に応じて、制御回路１１１は、第２の休止期間における残りの時間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断するように構成することができる。制御回路１１１は、第２の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第２のカメラキャリブレーションを実行することができる。第２の休止期間における残りの時間が規定されたキャリブレーション期間より短い場合、制御回路１１１は、第２のカメラキャリブレーションの完了を後続する休止期間まで延期することができ、第２の休止期間における残りの時間を使用して、追加のキャリブレーション画像を取り込むようにカメラを制御し、又はより一般的には、カメラ１７０／５７０／６７０から追加のキャリブレーション画像を受け取ることができる。
【００５５】
一実施形態において、ロボット制御システム１１０の制御回路１１１は、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断した場合、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達するまで、休止期間又は後続する休止期間（複数の場合もある）の間であっても、カメラ（例えば、１７０／５７０／６７０）を制御して、更なるキャリブレーション画像を取り込み（又は、より一般的には、カメラ１７０／５７０／６７０から更なるキャリブレーション画像を受け取り）、それらを取り込まれた画像セットに追加し続けることができる。
【００５６】
一例では、図５Ａ又は図５Ｂにおいて、ロボット制御システム１１０が、第２の休止期間中にカメラ５７０を介して追加のキャリブレーション画像を取り込み、取り込まれた画像セットに追加のキャリブレーション画像を追加して、更新された取り込まれた画像セットを生成すると、更新された取り込まれた画像セットにおけるキャリブレーション画像の総数は、第２の休止期間が終了する前に、規定された目標数に達する可能性がある。こうしたシナリオでは、ロボット制御システム１１０は、第２の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるか否かを判断することにより、第２の休止期間において第２のカメラキャリブレーションを実行するために十分な時間が残っているか否かを判断することができる。第２の休止期間における残りの時間が、規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム１１０は、第２の休止期間における残りの時間の間に、第２のカメラキャリブレーションを実行することができる。
【００５７】
一方、第２の休止期間における残りの時間が規定されたキャリブレーション期間より短いという判断に応じて、制御回路１１１は、第２の休止期間における残りの時間中に、通信インターフェース１１３を介してカメラ５７０から１つ以上の後続する追加のキャリブレーション画像を受け取るように更に構成することができ、カメラ５７０は、カメラ視野５１０内の１つ以上の後続する追加の場所において１つ以上の後続する追加のキャリブレーション画像をそれぞれ取り込むように構成されている。制御回路１１１は、１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ最も古くに取り込まれた、取り込まれた画像セットにおける等しい数のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように更に構成することができる。制御回路１１１は、更新された取り込まれた画像セットを用いて第２のカメラキャリブレーションを完了するように、後続する休止期間まで待機するように構成することができる。例えば、追加のキャリブレーション画像が、第２の休止期間が終了する前に、更新された取り込まれた画像セットにおける更新画像の総数を規定された目標数にするように取り込まれる場合、第２の休止期間における残りの時間は、規定されたキャリブレーション期間より短い可能性がある。そして、ロボット制御システム１１０は、第２のカメラキャリブレーションの完了を後続する（例えば、第３の）休止期間まで延期することができ、代わりに、第２の休止期間の残りの時間を使用して、より最近のキャリブレーション画像を取り込むことができる。取り込まれた画像セットは、取り込まれた画像セットにより最近のキャリブレーション画像を追加することにより、かつ等しい数の最も古いキャリブレーション画像を除去することにより、更新される。ロボット制御システム１１０は、第２の休止期間の後、規定されたキャリブレーション期間以上の長さの後続する休止期間を検出すると、この後続する休止期間の間に第２のカメラキャリブレーションを実行することができる。
【００５８】
一実施形態では、制御回路１１１は、取り込まれた画像セットに新たな構成画像が追加される度に、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断するように構成することができる。取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるという判断に応じて、制御回路１１１は、取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持するように構成することができる。
【００５９】
図４Ｂに戻ると、方法４００はステップ４５１を更に含むことができ、そのステップでは、制御回路１１１は、（第１のカメラキャリブレーションから生成された）カメラキャリブレーション情報と（第２のカメラキャリブレーションから生成された）更新されたカメラキャリブレーション情報との偏差量を求める。例えば、偏差量は、第１のカメラキャリブレーションと第２のカメラキャリブレーションとの間でカメラ５７０／６７０にどれくらいの偏差があったかを示すことができる。一実施形態では、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む。例えば、偏差量は、第１のカメラキャリブレーションから得られる第１の組のキャリブレーションパラメーター値と第２のカメラキャリブレーションから得られる第２の組のキャリブレーションパラメーター値との差に基づくことができる。一例として、キャリブレーションパラメーターは、例えば、ひずみパラメーター、射影行列、及び／又はカメラ（例えば、５７０／６７０）とロボット（例えば、５５０／６５０）との関係を記述する変換関数とすることができる。こうした例では、カメラキャリブレーション情報は、キャリブレーションパラメーターに対して第１のキャリブレーションパラメーター値又は第１の組のキャリブレーションパラメーター値を示すことができ、更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対して第２のキャリブレーションパラメーター値又は第２の組のキャリブレーションパラメーター値を示すことができる。カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差量は、第１のキャリブレーションパラメーター値と第２のキャリブレーションパラメーター値との差に基づくか、又は、第１の組のキャリブレーションパラメーター値と第２の組のキャリブレーションパラメーター値との間のそれぞれの差に基づくことができる。別の例では、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパターン５２０／６２０のパターン要素のそれぞれの座標に基づくことができる。こうした例では、偏差量は、パターン要素が第１のカメラキャリブレーションに対して得られるキャリブレーション画像に現れる１組の座標と、パターン要素が第２のカメラキャリブレーションによって得られるキャリブレーション画像に現れる１組の座標との全体的な差に基づくことができる。
【００６０】
図４Ｂに戻ると、方法４００はステップ４５３を更に含むことができ、そのステップでは、制御回路１１１は、偏差量が規定された閾値（規定された偏差閾値とも呼ぶことができる）を超えるか否かを判断する。例えば、制御回路１１１は、偏差量を規定された偏差閾値と比較して、偏差が規定された閾値を超えるか否かを判断することができる。一実施形態では、規定された偏差閾値は、上述した更新されたカメラキャリブレーション情報が、上述したカメラキャリブレーション情報（例えば、基準カメラキャリブレーション情報）に対して過度に変化した場合を示すことができる。例えば、基準カメラキャリブレーション情報と更新されたキャリブレーション情報との間の大きい変化は、温度が管理されておらず、温度変化がカメラキャリブレーション情報に著しい変化をもたらしている外部環境等、又は、カメラ（例えば、１７０／５７０／６７０）が取付構造体に確実に取り付けられておらず、外力によってもたらされるカメラの移動が、カメラキャリブレーション情報の著しい変化をもたらしている状況等、カメラ（例えば、１７０／５７０／６７０）における外部環境の望ましくない状態を反映する可能性がある。一実施形態では、規定された偏差閾値は、更新されたカメラキャリブレーション情報が、カメラキャリブレーション情報（例えば、基準カメラキャリブレーション情報）から過度に急速に変化した場合を示すことができる。例えば、ユーザーが、カメラ（例えば、１７０／５７０／６７０）又はロボット（例えば、１５０／５５０／６５０）にぶつかり、カメラ又はロボットのいずれかの位置を急にずらした場合、この急なずれは、カメラキャリブレーション情報における急なかつ著しい変化に反映される可能性がある。こうした実施形態において、規定された偏差閾値は、規定された変化率である値を有することができる。
【００６１】
方法４００は、ステップ４５５を更に含むことができ、そのステップでは、制御回路１１１は、偏差量が規定された閾値を超えたという判断に応じて、偏差量が規定された閾値を超えたことを示す通知信号を出力する。一実施形態において、通知は、ユーザーインターフェースデバイス１８０等のユーザーインターフェースデバイスに出力することができる。一実施形態において、規定された閾値は、カメラの周囲の環境における温度に基づいて調整することができる。例えば、温度が、規定された正常動作温度範囲内（例えば、室温の１０度以内）であるとき、規定された閾値は第１の値を有するように規定することができる。温度が、正常動作温度範囲外である場合、規定された閾値は、第１の値より低い第２の値であるように規定することができる。
【００６２】
一実施形態において、規定された閾値を超える偏差量は、カメラ５７０／６７０に関連する特性が初期状態から過度に外れた可能性があるため、ロボット操作が継続する場合、望ましくない誤差が発生する可能性があることを示すことができる。したがって、制御回路１１１は、偏差量が規定された閾値を超えることを示す通知信号を出力し、その結果、ロボット５５０／６５０のオペレーターは、ロボット操作が継続する前に偏差に対処することができる。一方、偏差量が規定された閾値を超えない場合、制御回路１１１は、通知信号を出力することなくロボット操作を継続することができる。さらに、偏差量が規定された閾値を超えない場合、制御回路１１１は、（例えば、取り込まれた画像セットから全ての画像を除去することにより）取り込まれた画像セットをリセットし、別の（例えば、第３の）カメラキャリブレーションに対して使用されるように新たなキャリブレーション画像の取込みを開始することができる。
【００６３】
一実施形態において、ロボットアームがキャリブレーション画像を取り込むようにキャリブレーションパターン（例えば、５２０／６２０）を動かす１つ以上の場所は、複数の場所を含むことができ、複数の場所の各々は、カメラ（例えば、５７０／６７０）に対して凹形である仮想球の表面上に配置された場所である。こうした実施形態において、制御回路１１１は、キャリブレーションパターン（例えば、５２０／６２０）を、複数の場所の各場所において仮想球の表面に対して接するように動かすように、ロボットアームを制御するように更に構成することができる。例えば、図７Ａ及び図７Ｂに示されるように、ロボット制御システム１１０は、キャリブレーションパターン５２０を場所７１０Ａ〜７１０Ｉまで動かし、場所７１０Ａ〜７１０Ｉの各々においてそれぞれのキャリブレーション画像を取り込むように、ロボット５５０のロボットアームを制御することができる。場所７１０Ａ〜７１０Ｉは、カメラ５７０の視野５１０内の複数の仮想球の間で分割することができる。例えば、場所７１０Ａ及び７１０Ｂは、第１の仮想球７２０の第１の球面７２１上に配置することができ、場所７１０Ａ及び７１０Ｂを含む第１の球面７２１は、カメラ５７０の視野５１０内に（部分的に又は完全に）ある。別の例として、場所７１０Ｃ、７１０Ｄ及び７１０Ｅは、第２の仮想球７３０の第２の球面７３１上に配置することができ、場所７１０Ｃ、７１０Ｄ及び７１０Ｅを含む第２の球面７３１は視野５１０内にある。更なる例において、場所７１０Ｆ、７１０Ｇ、７１０Ｈ及び７１０Ｉは、第３の仮想球７４０の第３の球面７４１上に配置することができ、場所７１０Ｆ、７１０Ｇ、７１０Ｈ及び７１０Ｉを含む第３の球面７４１は、視野５１０内にある。図７Ａ及び図７Ｂに示されるように、第１の球面７２１、第２の球面７３１及び第３の球面７４１は、それぞれ、カメラ５７０に対して凹形である。図７Ａ及び図７Ｂにおける例は、３つの球に基づく３つの球面を示すが、場所を配置することができる異なる球面の数は、３つより多くすることも少なくすることもできる。一実施形態において、カメラ５７０は、仮想球７２０、７３０及び７４０の各々の中心とすることができる。
【００６４】
一実施形態において、図７Ａ及び図７Ｂに示されるように、キャリブレーションパターン５２０が或る場所まで動かされると、ロボット制御システム１１０は、その場所が配置されている球面に対して接するようにキャリブレーションパターン５２０を位置決めするように、ロボット５５０のロボットアームを制御することができる。例えば、図７Ｂは、キャリブレーションパターン５２０が、場所７１０Ｄにおいて第２の球面７３１に対して接することを示す。より詳細には、キャリブレーションパターン５２０は、平坦面上に（例えば、ステッカー上に）配置することができ、キャリブレーションパターン５２０の平坦面は、場所７１０Ｄにおいて第２の球面７３１に対して接することができる。
【００６５】
一実施形態において、制御回路１１１は、キャリブレーションパターン（例えば、５２０）が或る場所まで動かされると、キャリブレーションパターン（例えば、５２０）を、カメラの真正面を向くように動かすように、ロボットアームを制御するように構成される。例えば、図７Ａに示されるように、ロボット制御システム１１０は、キャリブレーションパターン５２０が場所７１０Ｄまで動かされるとき、キャリブレーションパターン５２０をカメラ５７０の真正面を向くように動かすように、ロボット５５０のロボットアームを制御することができる。この例において、ロボット制御システム１１０は、キャリブレーションパターン５２０がカメラ５７０の真正面を向くように回動するように、ロボットハンド５５５を制御することができる。場合によっては、キャリブレーションパターン５２０は、カメラの視野５１０において球面（例えば、第１の球面７２１、第２の球面７３１、第３の球面７４１）に対して接することにより、カメラ５７０の真正面を向くことができる。キャリブレーションパターン５２０がカメラ５７０の真正面を向くと、カメラ５７０は、キャリブレーションパターン５２０を正面から撮影することができる可能性があり、その結果、キャリブレーションパターン５２０の結果として得られる画像において斜視効果（perspective effect）がないか又は少なくなる。
【００６６】
図８は、カメラキャリブレーション更新プロセスが実行される例示的な時系列８００を示す。一実施形態において、時系列８００は、図５Ａ及び図５Ｂのシステム５００によって実行される操作に関連することができる。時系列８００は、キャリブレーション期間８１１で開始することができ、それは、ロボット操作が開始する前に発生することができる。例えば、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０は、第１のカメラキャリブレーションを実行して、カメラ５７０に対するカメラキャリブレーション情報を特定することができる。第１のカメラキャリブレーションが完了した後、ロボット操作はロボットタスク期間８１３で開始する。
【００６７】
ロボットタスク期間８１３中、ロボット制御システム１１０は、１つ以上のロボットタスクを実行するように（図５Ａ及び図５Ｂからの）ロボット５５０を制御することができる。図５Ａ及び図５Ｂに関して上記で言及されたように、システム５００は、ロボットタスク期間８１３中にいかなるキャリブレーション画像も取り込むことができない可能性があり、休止期間が検出されるまで、キャリブレーション画像を取り込むのを待機しなければならない可能性がある。
【００６８】
図８に示されるように、ロボット制御システム１１０は、タスク期間８１３の後、ロボット５５０がロボットタスクを実行していない休止期間８１５を検出することができる。休止期間８１５中、ロボット制御システム１１０は、カメラ５７０を介して、１つ以上の場所において（例えば、第１の組の６つの場所において）それぞれ、図５Ａ及び図５Ｂのキャリブレーションパターン５２０の１つ以上のキャリブレーション画像を取り込み、取り込まれた画像セットにこれらのキャリブレーション画像を追加する。図８の例において、キャリブレーション画像Ｉ１〜Ｉ６は、休止期間８１５中に取り込まれ、取り込まれた画像セットＳに追加される。
【００６９】
期間８１５が終了した後、タスク期間８１７の間、ロボット制御システム１１０は、１つ以上のロボットタスクを実行するようにロボット５５０の制御を再開する。タスク期間８１７中、システム５００は、いかなるキャリブレーション画像も取り込むことができない可能性がある。キャリブレーション期間８１７の後、ロボット制御システム１１０は、この例では、ロボット５５０がロボットタスクを実行していない休止期間８１９を検出する。休止期間８１９の間、ロボット制御システム１１０は、他の第２の組の４つの場所においてそれぞれ、キャリブレーションパターン５２０のキャリブレーション画像Ｉ７〜Ｉ１０を取り込む。取り込まれた画像Ｉ７〜Ｉ１０は、取り込まれた画像セットＳに追加される。その結果、取り込まれた画像セットＳは、第２の休止期間８１９の後、Ｉ１〜Ｉ１０を含む。一実施形態において、規定された目標数は１０に等しい場合がある。取り込まれた画像セットＳは、このとき、１０個のキャリブレーション画像を有するため、ロボット制御システム１１０は、第２のカメラキャリブレーションを実行する用意ができている可能性がある。しかしながら、この第２のカメラキャリブレーションは、第２の休止期間８１９がすでに経過し又は略経過している可能性があるため、後続する休止期間（例えば、８２７）まで延期することができる。
【００７０】
休止期間８１９の後、ロボット制御システム１１０は、ロボットタスク期間８２１中に１つ以上のロボットタスクを実行するようにロボット５５０の制御を再開する。ロボットタスク期間後、ロボット制御システム１１０は、ロボット５５０がロボットタスクを実行していない休止期間８２３を検出することができる。ロボット制御システム１１０は、さらに、休止期間８２３が規定されたキャリブレーション期間より短いと判断し、したがって、休止期間８２３中に第２のカメラキャリブレーションを完了するために計算又は他のステップを実行しないと決定する。代わりに、ロボット制御システム１１０は、第２のカメラキャリブレーションを完了するために後続する休止期間（例えば、休止期間８２７）を待機することができる。場合によっては、ロボット制御システム１１０は、それ以上キャリブレーション画像を取り込むことなく、休止期間８２３が経過するのを可能にすることができる。代替的に、図８に示されるように、ロボット制御システム１１０は、休止期間８２３中に追加のキャリブレーション画像Ｉ１１及びＩ１２を取り込み、取り込まれた画像セットＳにそれらを追加することができる。取り込まれた画像セットＳにおけるキャリブレーション画像の総数が、キャリブレーション画像の１０という規定された目標数にすでに達しているため、ロボット制御システム１１０は、取り込まれた画像セットＳから、取り込まれた画像セットＳにおける等しい数の最も古いキャリブレーション画像を除去することができる。より具体的には、この実施形態において、ロボット制御システム１１０は、取り込まれた画像セットＳにキャリブレーション画像Ｉ１１及びＩ１２の２つの新たに取り込まれた事例が追加されたため、取り込まれた画像セットＳからキャリブレーション画像の２つの最も古い事例Ｉ１及びＩ２を除去することができる。その結果、取り込まれた画像セットＳは、このとき、キャリブレーション画像Ｉ３〜Ｉ１２を含む。
【００７１】
図８に示されるように、休止期間８２３にロボットタスク期間８２５が続き、その後、別の休止期間８２７が続くことができる。ロボット制御システム１１０は、この休止期間８２７が、規定されたキャリブレーション期間以上の長さの持続時間を有すると判断することができ、したがって、休止期間８２７中に第２のカメラキャリブレーションを完了するために必要な計算又は他のステップを実行するように決定する。休止期間８２７中、ロボット制御システム１１０は、第２のカメラキャリブレーションを実行して、取り込まれた画像セットにおけるキャリブレーション画像に基づいて、更新されたカメラキャリブレーション情報を特定する。この例において、第２のカメラキャリブレーションは、取り込まれた画像セットに含まれるキャリブレーション画像Ｉ３〜Ｉ１２に基づいて実行される。第２のカメラキャリブレーションが完了した後、ロボット制御システム１１０は、第１のカメラキャリブレーションからのカメラキャリブレーション情報と第２のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求める。この例において、偏差量が規定された閾値を超えないため、ロボット制御システム１１０は、タスク期間８２９中にロボットタスクを実行することにより、ロボット操作を継続することができる。
【００７２】
図９は、図４Ａ、図４Ｂ、図５Ａ、図５Ｂ及び図８に対して上記で論じられた特徴を反映するカメラキャリブレーション更新プロセスを示すフロー図例９００を示す。フロー図９００のステップは、例えば、図５Ａ及び図５Ｂのシステム５００によって実行することができる。ステップ９０１において、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０は、図５Ａ及び図５Ｂのカメラ５７０の第１のカメラキャリブレーションを実行して、カメラ５７０のカメラキャリブレーション情報を特定する。第１のカメラキャリブレーションの後、ロボット制御システム１１０は、第１のカメラキャリブレーションの後にロボット操作を開始することができる。
【００７３】
ステップ９０３において、ロボット制御システム１１０は、上記で論じられたように、ロボット操作中に休止期間を検出する。ステップ９０５において、休止期間中、ロボット制御システム１１０は、カメラ５７０の図５Ａ及び図５Ｂのカメラ視野５１０内の１つ以上の場所まで、図５Ａ及び図５Ｂのキャリブレーションパターン５２０を動かすように、図５Ａ及び図５Ｂのロボット５５０を制御し、１つ以上の場所においてカメラ５７０を介して１つ以上のそれぞれのキャリブレーション画像を取り込む。取り込まれたキャリブレーション画像は、取り込まれた画像セットに追加することができる。一実施形態において、取り込まれた画像セットは、ステップ９０５の開始時、取り込まれたキャリブレーション画像のゼロ事例を有することができ、したがって、ステップ９０５の開始時はゼロのサイズを有することができる。
【００７４】
ステップ９０７において、ロボット制御システム１１０は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したか否かを判断する。取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達した場合、ロボット制御システム１１０は、ステップ９０９において、休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるか否かを判断する。規定されたキャリブレーション期間は、追加のカメラキャリブレーション（例えば、第２のカメラキャリブレーション）を完了するために必要な時間の量を示すことができる。休止期間における残りの時間が規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム１１０は、ステップ９１９において、追加のカメラキャリブレーションを実行する。
【００７５】
ステップ９０９に戻ると、休止期間における残りの時間が規定されたキャリブレーション期間より短い場合、ロボット制御システム１１０は、その期間において追加のカメラキャリブレーションを完了しない。代わりに、ステップ９１１において、休止期間における残りの時間中に、ロボット制御システム１１０は、カメラ５７０を介して、新たなキャリブレーション画像を取り込み、取り込まれた画像セットにこれらの新たなキャリブレーション画像を追加することにより、かつ、等しい数の、カメラ５７０によって最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持することにより、取り込まれた画像セットを更新する。ロボット制御システム１１０は、９１１の後に休止期間が終わった後にロボットタスクの実行を再開することができる。
【００７６】
ステップ９１３において、ロボット制御システム１１０は、ロボット操作中に追加の休止期間を検出しようとする。追加の休止期間が検出されると、ロボット制御システム１１０は、ステップ９１５において、追加の休止期間が規定されたキャリブレーション期間以上の長さであるか否かを判断することができる。追加の休止期間が規定されたキャリブレーション期間より短い場合、ロボット制御システム１１０は、ステップ９１７において、カメラ５７０を介して、新たなキャリブレーション画像を取り込み、取り込まれた画像セットにこれらの新たなキャリブレーション画像を追加することにより、かつ、等しい数の、カメラ５７０によって最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持することにより、取り込まれた画像セットを更新する。ロボット制御システム１１０は、ステップ９１３に戻り、キャリブレーション期間以上の長さである持続時間を有する後続する休止期間を待機することができる。
【００７７】
ステップ９０７に戻ると、ロボット制御システム１１０は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が目標数に達していないと判断した場合、ステップ９２１においてロボット操作中に追加の休止期間を検出しようとする。追加の休止期間が検出されると、ロボット制御システム１１０は、カメラ５７０のカメラ視野５１０内の１つ以上の場所において１つ以上のキャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加することができる。
【００７８】
ステップ９２５において、ロボット制御システム１１０は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したか否かを再び判断することができる。ステップ９２５において、ロボット制御システム１１０は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達していないと判断した場合、ステップ９２１に戻り、更なるキャリブレーション画像を取り込むために、後続する休止期間を待機することができる。ロボット制御システム１１０が、ステップ９２５において、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したと判断した場合、プロセスは、ステップ９１５に進むことができ、ロボット制御システム１１０は、追加の休止期間における残りの時間が、規定されたキャリブレーション期間以上の長さであるか否かを判断する。
【００７９】
ステップ９１５において、ロボット制御システム１１０が、現休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであると判断した場合、プロセスはステップ９１９に進むことができる。ステップ９１９において、ロボット制御システム１１０は、追加のカメラキャリブレーション（例えば、第２のカメラキャリブレーション）を実行する。
【００８０】
ロボット制御システム１１０は、ステップ９１９において追加のキャリブレーションを実行した後、ステップ９２７において、第１のカメラキャリブレーションのカメラキャリブレーション情報と追加のキャリブレーションの更新されたカメラキャリブレーション情報との間の偏差量を求め、偏差量が規定された閾値を超えたか否かを判断することができる。偏差量が規定された閾値を超えた場合、ロボット制御システム１１０は、ステップ９２９において（例えば、ユーザーインターフェースデバイス１８０に）通知を出力する。場合によっては、ロボット制御システム１１０は、こうした判断に応じてロボット操作を停止又は一時停止することができる。一方、偏差量が規定された閾値を超えない場合、ロボット制御システム１１０は、ステップ９３２において、取り込まれた画像セットをリセットすることができ、ステップ９０３に戻って、キャリブレーション画像の新たな組を取り込むために休止期間を検出する。
【００８１】
図６Ａ及び図６Ｂに関して上記で言及されたように、本開示のいくつかの実施形態は、休止期間を使用することなく、又は休止期間があるか否かに関わらず、キャリブレーション画像を取り込むことができる。図１０は、こうした実施形態に対する例示的な時系列１０００を示す。時系列１０００は、図６Ａ及び図６Ｂのシステム６００に対するシナリオ例を反映することができる。時系列１０００はキャリブレーション期間１０１１で開始することができ、それは、ロボット操作が開始する前に発生することができる。キャリブレーション期間１０１１において、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０は、第１のカメラキャリブレーションを実行して、図６Ａのカメラ６７０に対するカメラキャリブレーション情報を特定することができる。
【００８２】
第１のカメラキャリブレーションが完了した後、ロボット操作は、タスク期間１０１３で開始する。ロボット操作中、ロボット制御システム１１０は、ロボット６５０が休止期間１０１５、１０１９、１０２３中にロボットタスクを実行しない一方で、タスク期間１０１３、１０１７、１０２１及び１０２５中にロボットタスクを実行するように、図６Ａ及び図６Ｂのロボット６５０を制御する。
【００８３】
例示的な時系列１０００において、ロボット制御システム１１０は、休止期間中にキャリブレーション画像を取り込むために休止期間を待機する必要はない。上記で論じられたように、図６Ａ及び図６Ｂのキャリブレーションパターン６２０は、ロボット６５０がロボットタスクを実行している間であっても、定期的にカメラ６７０に面しているように、ロボット６５０の上に配置されているため、ロボット制御システム１１０は、ロボット操作中はいつでもキャリブレーション画像を取り込むことができる。したがって、期間１０３１中、ロボット制御システム１１０は、キャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加する。期間１０３１は、ロボットタスク期間（複数の場合もある）のみ、休止期間（複数の場合もある）のみ、又はそれらの任意の組合せを含むことができる。期間１０３１中、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム１１０は、第２のカメラキャリブレーションを実行して、取り込まれたキャリブレーション画像に基づき、更新されたカメラキャリブレーション情報を特定する。さらに、ロボット制御システム１１０は、第１のカメラキャリブレーションからのカメラキャリブレーション情報と第２のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例において、偏差量が規定された閾値を超えないため、ロボット制御システム１１０は、取り込まれた画像セットにおいて全てのキャリブレーション画像を除去することにより、取り込まれた画像セットをリセットし、期間１０３３に進む。別の実施形態において、ロボット制御システム１１０は、期間１０３１においてリセットを実行せず、その結果、取り込まれた画像セットは、規定された数の直近で取り込まれたキャリブレーション画像を使用して後続する（例えば、第３の）カメラキャリブレーションを実行する、スライド窓として作用することができる。
【００８４】
期間１０３３中、ロボット制御システム１１０は、別の組のキャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加する。期間１０３１と同様に、期間１０３３は、ロボットタスク期間（複数の場合もある）のみ、休止期間（複数の場合もある）のみ、又はそれらの組合せを含むことができる。取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム１１０は、別の（例えば、第３の）カメラキャリブレーションを実行して、期間１０３３からの取り込まれたキャリブレーション画像に基づいて更新されたカメラキャリブレーション情報を特定する。ロボット制御システム１１０は、第１のカメラキャリブレーションからのカメラキャリブレーション情報と期間１０３３の第３のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例では、偏差量が規定された閾値を超えないため、ロボット制御システム１１０は、取り込まれた画像セットにおいてキャリブレーション画像を除去することにより、取り込まれた画像セットをリセットし、期間１０３５に進む。
【００８５】
期間１０３５中、ロボット制御システム１１０は、別の組のキャリブレーション画像を取り込み、キャリブレーションされた画像セットに取り込まれたキャリブレーション画像を追加する。取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム１１０は、更に別の（例えば、第４の）カメラキャリブレーションを実行して、取り込まれたキャリブレーション画像に基づいて更新されたカメラキャリブレーション情報を特定する。ロボット制御システム１１０は、第１のカメラキャリブレーションからのカメラキャリブレーション情報と第４のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例において、偏差量が規定された閾値を超えるため、ロボット制御システム１１０は、閾値を越えているという通知信号を出力する。
【００８６】
図１１は、図６Ａ、図６Ｂ及び図１０に対して上記に論じられたプロセスに関するカメラキャリブレーションのカメラキャリブレーション更新プロセスを示すフロー図例１１００を示す。ステップ１１０１において、図１Ａ、図１Ｂ又は図１Ｃのロボット制御システム１１０は、第１のカメラキャリブレーションを実行する。ステップ１１０３において、ロボット制御システム１１０は、図６Ａ及び図６Ｂのキャリブレーションパターン６２０を動かすように図６Ａ及び図６Ｂのロボット６５０を制御し、カメラ６７０の図６Ａ及び図６Ｂのカメラ視野６１０内のそれぞれの場所において図６Ａのカメラ６７０を介してキャリブレーション画像を取り込む。ステップ１１０５において、ロボット制御システム１１０は、取り込まれたキャリブレーション画像の数が規定された目標数に達したか否かを判断する。取り込まれたキャリブレーション画像の数が規定された目標数に達していない場合、プロセスはステップ１１０３に戻り、ロボット制御システム１１０は、それぞれの場所において更なるキャリブレーション画像を取り込み続ける。
【００８７】
ステップ１１０５で続けて、取り込まれたキャリブレーション画像の数が目標数に達した場合、プロセスはステップ１１０７に進み、ロボット制御システム１１０は、追加のカメラキャリブレーション（例えば、第２のカメラキャリブレーション）を実行して、更新されたカメラキャリブレーション情報を特定する。ロボット制御システム１１０がステップ１１０７において追加のキャリブレーションを実行した後、ロボット制御システム１１０は、ステップ１１０９において、第１のカメラキャリブレーションのカメラキャリブレーション情報と追加のカメラキャリブレーションの更新されたカメラキャリブレーション情報との間の偏差量を求め、偏差量が規定された閾値を超えるか否かを判断する。偏差量が規定された閾値を超えた場合、ロボット制御システム１１０は、ステップ１１１１において通知信号を出力する。場合によっては、ロボット制御システム１１０は、こうした判断に応じてロボット操作を停止又は一時停止することができる。一方、偏差量が規定された閾値を超えない場合、ロボット制御システム１１０は、ステップ１１１３において、取り込まれたキャリブレーション画像をリセットすることができ、ステップ１１０３に戻って、新たな組のキャリブレーション画像を取り込むために休止期間を検出する。一実施形態において、リセットステップ１１１３を省略することができる。
【００８８】
様々な実施形態の更なる検討
実施形態１は、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースを備えるロボット制御システムに関する。ロボット制御システムは、ａ）第１のカメラキャリブレーションを実行して、カメラに関連するカメラキャリブレーション情報を特定することと、ｂ）通信インターフェースを介して、カメラキャリブレーション情報に基づく第１の動作コマンドをロボットに出力することにより、ロボット操作を実行するように、カメラキャリブレーション情報に基づいてロボットアームの動作を制御することと、ｃ）第１のカメラキャリブレーションの後、通信インターフェースを介して、第２の動作コマンドをロボットに出力することにより、カメラ視野内の１つ以上の場所にキャリブレーションパターンを動かすように、ロボットアームを制御することと、ｄ）通信インターフェースを介してカメラから１つ以上のキャリブレーション画像を受け取り、１つ以上のキャリブレーション画像は、１つ以上の場所においてそれぞれ取り込まれるとこと、ｅ）キャリブレーション画像を含む取り込まれた画像セットに１つ以上のキャリブレーション画像を追加することと、ｆ）取り込まれた画像セットにおけるキャリブレーション画像に基づいて第２のカメラキャリブレーションを実行し、第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、ｇ）カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差を求めることと、ｈ）偏差が規定された閾値を超えるか否かを判断することと、ｉ）偏差が規定された閾値を超えたという判断に応じて、偏差が規定された閾値を超えたことを示す通知信号を出力することとを行うように構成される、制御回路を更に含む。
【００８９】
実施形態２は、実施形態１のロボット制御システムを含み、第２のカメラキャリブレーションは、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合のみ実行される。
【００９０】
実施形態３は、実施形態１又は２のロボット制御システムを含み、制御回路は、取り込まれた画像セットに、或る数の直近で取り込まれた１つ以上のキャリブレーション画像を追加し、取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように更に構成され、第２のカメラキャリブレーションが実行されるとき、取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい。
【００９１】
実施形態４は、実施形態１〜３のいずれか１つのロボット制御システムを含み、制御回路は、ロボット操作中に休止期間を検出し、ロボットアームが、休止期間中に１つ以上の場所にキャリブレーションパターンを動かすように制御されるように、休止期間中に第２の動作コマンドを出力するように更に構成され、１つ以上のそれぞれのキャリブレーション画像は、休止期間中に１つ以上の場所で取り込まれる。
【００９２】
実施形態５は、実施形態４のロボット制御システムを含み、休止期間は第１の休止期間であり、制御回路は、ａ）取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、ｂ）第１の休止期間の後、ロボット操作中に第２の休止期間を検出することと、ｃ）第２の休止期間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、ｄ）第２の休止期間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第２の休止期間中に第２のカメラキャリブレーションを実行することと、ｅ）第２の休止期間が規定されたキャリブレーション期間より短いという判断に応じて、ｅ−ａ）第２の休止期間中に通信インターフェースを介してカメラから１つ以上の追加のキャリブレーション画像を受け取ることであって、１つ以上の追加のキャリブレーション画像は、カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれる、受け取ることと、ｅ−ｂ）更新された取り込まれた画像セットを生成するように、１つ以上の追加の画像を追加することにより、かつ、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することと、ｅ−ｃ）更新された取り込まれた画像セットを用いて第２のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される。
【００９３】
実施形態６は、実施形態４のロボット制御システムを含み、休止期間は第１の休止期間であり、制御回路は、ａ）休止期間の後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、ｂ）第１の休止期間に続く第２の休止期間を検出することと、ｃ）第２の休止期間中に通信インターフェースを介してカメラから１つ以上の追加のキャリブレーション画像を受け取ることであって、１つ以上の追加のキャリブレーション画像は、カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれる、受け取ることと、ｄ）更新された取り込まれた画像セットを生成するように、取り込まれた画像セットに１つ以上の追加のキャリブレーション画像を追加することと、ｅ）更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したか否かを判断することと、ｆ）取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したという判断に応じて、第２の休止期間における残りの時間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、ｇ）第２の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第２の休止期間における残りの時間中に第２のカメラキャリブレーションを実行することとを行うように更に構成される。
【００９４】
実施形態７は、実施形態６のロボット制御システムを含み、制御回路は、第２の休止期間における残りの時間が規定されたキャリブレーション期間より短いという判断に応じて、ａ）第２の休止期間における残りの時間中に通信インターフェースを介してカメラから１つ以上の後続する追加のキャリブレーション画像を受け取り、１つ以上の後続する追加のキャリブレーション画像は、カメラ視野内の１つ以上の後続する追加の場所においてそれぞれ取り込まれることと、ｂ）１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することと、ｃ）更新された取り込まれた画像セットを用いて第２のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される。
【００９５】
実施形態８は、実施形態１〜７のいずれか１つのロボット制御システムを含み、制御回路は、ａ）通信インターフェースを介してカメラから１つ以上の追加のキャリブレーション画像を受け取り、取り込まれた画像セットに１つ以上の追加のキャリブレーション画像を追加し、１つ以上の追加のキャリブレーション画像は、カメラ視野内の１つ以上の追加の場所においてそれぞれ取り込まれることと、ｂ）取り込まれた画像セットに１つ以上の追加のキャリブレーション画像の各画像が追加された後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断することと、ｃ）取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えたという判断に応じて、取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することとを行うように更に構成され、第２のカメラキャリブレーションは、取り込まれた画像セットに１つ以上の追加の画像が追加された後に、取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される。
【００９６】
実施形態９は、実施形態１〜８のいずれか１つのロボット制御システムを含み、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む。
【００９７】
種々の実施形態を上述してきたが、これらの実施形態は、限定としてではなく本発明の単なる説明及び例として提示されていることを理解すべきである。形式及び細部における種々の変更は本発明の趣旨及び範囲から逸脱することなく本発明内で行うことができることは当業者には明らかであろう。したがって、本発明の範囲（breadth and scope）は、上述の例示的な実施形態のいずれかによって限定されるべきではなく、添付の特許請求の範囲及びそれらの均等物によってのみ規定されるべきである。本明細書において論考された各実施形態、及び本明細書において引用された各引用文献の各特徴は、他の任意の実施形態の特徴と組み合わせて用いることができることも理解されるであろう。本明細書において論考された全ての特許及び刊行物は、引用することによりその全体が本明細書の一部をなす。
【図１Ａ】
2020172015.tif 000003
【図１Ｂ】
2020172015.tif 000004
【図１Ｃ】
2020172015.tif 000005
【図１Ｄ】
2020172015.tif 000006
【図２】
2020172015.tif 000007
【図３】
2020172015.tif 000008
【図４Ａ】
2020172015.tif 000009
【図４Ｂ】
2020172015.tif 000010
【図５Ａ】
2020172015.tif 000011
【図５Ｂ】
2020172015.tif 000012
【図６Ａ】
2020172015.tif 000013
【図６Ｂ】
2020172015.tif 000014
【図７Ａ】
2020172015.tif 000015
【図７Ｂ】
2020172015.tif 000016
【図８】
2020172015.tif 000017
【図９】
2020172015.tif 000018
【図１０】
2020172015.tif 000019
【図１１】
2020172015.tif 000020
【手続補正書】
【提出日】令和2年5月22日(2020.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、
を備え、該制御回路は、
第１のカメラキャリブレーションを実行して、前記カメラに関連するカメラキャリブレーション情報を特定することと、
前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいて生成されて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記第１のカメラキャリブレーションの後、前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを出力することであって、前記第２の動作コマンドは、前記第１の休止期間中に前記通信インターフェースに出力され、前記通信インターフェースが、当該第２の動作コマンドを前記ロボットに出力し、前記ロボットアームが、前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすように、制御されることと、
前記通信インターフェースを介して１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記第１の休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して１つ以上の追加のキャリブレーション画像を受け取ることであって、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記更新された取り込まれた画像セットにおけるキャリブレーション画像に基づいて、前記第２の休止期間における前記残りの時間中に前記第２のカメラキャリブレーションを実行することであって、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記偏差が規定された閾値を超えるか否かを判断することと、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を行うように構成される、ロボット制御システム。
【請求項２】
前記第２のカメラキャリブレーションは、前記更新された取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達した場合のみ実行される、請求項１に記載のロボット制御システム。
【請求項３】
前記取り込まれた画像セットに追加された前記１つ以上の追加のキャリブレーション画像は、或る数の直近で取り込まれた１つ以上のキャリブレーション画像であり、
前記制御回路は、前記更新された取り込まれた画像セットを生成するために、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去するように更に構成され、
前記第２のカメラキャリブレーションが実行されるとき、前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数は、前記規定された目標数に等しい、請求項１に記載のロボット制御システム。
【請求項４】
ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、
を備え、該制御回路は、
第１のカメラキャリブレーションを実行して、前記カメラに関連するカメラキャリブレーション情報を特定することと、
前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいて生成されて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記第１のカメラキャリブレーションの後、前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを出力することであって、前記第２の動作コマンドは、前記第１の休止期間中に前記通信インターフェースに出力され、前記通信インターフェースが、当該第２の動作コマンドを前記ロボットに出力し、前記ロボットアームが、前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすように、制御されることと、
前記通信インターフェースを介して１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行することであって、前記第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間にそれぞれ取り込まれることと、ｂ）更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記偏差が規定された閾値を超えるか否かを判断することと、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を行うように構成される、ロボット制御システム。
【請求項５】
前記制御回路は、前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから１つ以上の後続する追加のキャリブレーション画像を受け取り、該１つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の１つ以上の後続する追加の場所においてそれぞれ取り込まれることと、ｂ）前記１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される、請求項１に記載のロボット制御システム。
【請求項６】
前記制御回路は、
前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像の各画像が追加された後、該取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数を超えるか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数を超えたという判断に応じて、前記取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することと、
を行うように更に構成され、
前記第２のカメラキャリブレーションは、前記取り込まれた画像セットに前記１つ以上の追加の画像が追加された後に、該取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される、請求項１に記載のロボット制御システム。
【請求項７】
前記カメラキャリブレーション情報及び前記更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む、請求項１に記載のロボット制御システム。
【請求項８】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定することであって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいていて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第１のカメラキャリブレーションの後、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを前記第１の休止期間中に前記ロボットに出力することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記ロボット制御システムにより、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行することであって、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項９】
前記方法は、
前記取り込まれた画像セットに、或る数の直近で取り込まれた１つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新すること、
を更に含み、
前記第２のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、前記規定された目標数に等しい、請求項８に記載の方法。
【請求項１０】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定することであって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいていて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第１のカメラキャリブレーションの後、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを前記第１の休止期間中に前記ロボットに出力することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出することと、
前記第２の休止期間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取り、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれることと、ｂ）更新された取り込まれた画像セットを生成するように、前記１つ以上の追加の画像を追加することにより、かつ、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットにおけるキャリブレーション画像を用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することであって、前記第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項１１】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定することであって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいていて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第１のカメラキャリブレーションの後、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを前記第１の休止期間中に前記ロボットに出力することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記第１の休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取ることであって、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、前記第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記更新された取り込まれた画像セットにおけるキャリブレーション画像に基づいて、前記第２の休止期間における前記残りの時間中に前記第２のカメラキャリブレーションを実行することであって、前記第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項１２】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第１のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定することであって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力することであって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいていて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力することと、
前記ロボット操作中に第１の休止期間を検出することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第１のカメラキャリブレーションの後、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所に前記キャリブレーションパターンを動かすための第２の動作コマンドを前記第１の休止期間中に前記ロボットに出力することと、
前記ロボット制御システムにより、前記通信インターフェースを介して、１つ以上のキャリブレーション画像を受け取ることであって、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加することと、
前記第１の休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第１の休止期間に続く第２の休止期間を検出することと、
前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取ることであって、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから１つ以上の後続する追加のキャリブレーション画像を受け取り、該１つ以上の後続する追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の後続する追加の場所にある間に、前記カメラによってそれぞれ取り込まれることと、ｂ）前記１つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、ｃ）前記更新された取り込まれた画像セットにおけるキャリブレーション画像を用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することであって、前記第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項１３】
ロボット制御システムの制御回路によって実行されるときに、前記制御回路に、
第１のカメラキャリブレーションを実行させて、カメラキャリブレーション情報を特定する命令であって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成された通信インターフェースを備える、命令と、
前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力させる命令であって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいて生成されて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力する、命令と、
前記ロボット操作中に第１の休止期間を検出させる命令と、
前記第１の休止期間中に前記通信インターフェースを介して第２の動作コマンドを前記ロボットに出力させて、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所まで前記キャリブレーションパターンを動かすようにする命令と、
前記通信インターフェースから１つ以上のキャリブレーション画像を受け取らせる命令であって、前記通信インターフェースは、前記カメラから前記１つ以上のキャリブレーション画像を受け取るように構成され、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれる、命令と、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加させる命令と、
前記第１の休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断させる命令と、
前記第１の休止期間に続く第２の休止期間を検出させる命令と、
前記第２の休止期間中に前記通信インターフェースを介して１つ以上の追加のキャリブレーション画像を受け取らせる命令であって、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれる、命令と、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加のキャリブレーション画像を追加させる命令と、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断させる命令と、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第２の休止期間における残りの時間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断させる命令と、
前記第２の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記更新された取り込まれた画像セットにおけるキャリブレーション画像に基づいて、前記第２の休止期間における前記残りの時間中に前記第２のカメラキャリブレーションを実行させる命令であって、該第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する、命令と、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めさせる命令と、
前記偏差が規定された閾値を超えるか否かを判断させる命令と、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力させる命令と、
を記憶している、非一時的コンピューター可読媒体。
【請求項１４】
前記取り込まれた画像セットに追加された前記１つ以上の追加のキャリブレーション画像は、或る数の直近で取り込まれた１つ以上のキャリブレーション画像であり、
前記命令は、前記制御回路によって実行されるときに、更に、前記制御回路に、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去させ、
前記第２のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、前記規定された目標数に等しい、
請求項１３に記載の非一時的コンピューター可読媒体。
【請求項１５】
ロボット制御システムの制御回路によって実行されるときに、前記制御回路に、
第１のカメラキャリブレーションを実行させて、カメラキャリブレーション情報を特定する命令であって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成された通信インターフェースを備える、命令と、
前記ロボットアームの動作を制御してロボット操作を実行するための第１の動作コマンドを出力させる命令であって、前記第１の動作コマンドは、前記カメラキャリブレーション情報に基づいて生成されて前記通信インターフェースに出力され、前記通信インターフェースが、当該第１の動作コマンドを前記ロボットに出力する、命令と、
前記ロボット操作中に第１の休止期間を検出させる命令と、
前記第１の休止期間中に前記通信インターフェースを介して第２の動作コマンドを前記ロボットに出力させて、前記ロボットアームが前記第１の休止期間中に前記カメラ視野内の１つ以上の場所まで前記キャリブレーションパターンを動かすようにする命令と、
前記通信インターフェースから１つ以上のキャリブレーション画像を受け取らせる命令であって、前記通信インターフェースは、前記カメラから前記１つ以上のキャリブレーション画像を受け取るように構成され、該１つ以上のキャリブレーション画像は、前記第１の休止期間中に前記キャリブレーションパターンが前記カメラ視野内の前記１つ以上の場所にある間に、前記カメラによってそれぞれ取り込まれる、命令と、
キャリブレーション画像を含む取り込まれた画像セットに前記１つ以上のキャリブレーション画像を追加させる命令と、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断させる命令と、
前記第１の休止期間の後、前記ロボット操作中に第２の休止期間を検出させる命令と、
前記第２の休止期間が、第２のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断させる命令と、
前記第２の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて、前記第２の休止期間中に前記第２のカメラキャリブレーションを実行させる命令であって、前記第２のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する、命令と、
前記第２の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、ａ）前記第２の休止期間中に前記通信インターフェースを介して前記カメラから１つ以上の追加のキャリブレーション画像を受け取らせ、該１つ以上の追加のキャリブレーション画像は、前記キャリブレーションパターンが前記カメラ視野内の１つ以上の追加の場所にある間に、前記カメラによってそれぞれ取り込まれ、ｂ）更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記１つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた１つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新させ、ｃ）前記更新された取り込まれた画像セットを用いて前記第２のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機させる、命令と、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めさせる命令と、
前記偏差が規定された閾値を超えるか否かを判断させる命令と、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力させる命令と、
を記憶している、非一時的コンピューター可読媒体。
【外国語明細書】
2020172015.tif 000021
2020172015.tif 000022
2020172015.tif 000023
2020172015.tif 000024
2020172015.tif 000025
2020172015.tif 000026
2020172015.tif 000027
2020172015.tif 000028
2020172015.tif 000029
2020172015.tif 000030
2020172015.tif 000031
2020172015.tif 000032
2020172015.tif 000033
2020172015.tif 000034
2020172015.tif 000035
2020172015.tif 000036
2020172015.tif 000037
2020172015.tif 000038
2020172015.tif 000039
2020172015.tif 000040
2020172015.tif 000041
2020172015.tif 000042
2020172015.tif 000043
2020172015.tif 000044
2020172015.tif 000045
2020172015.tif 000046
2020172015.tif 000047
2020172015.tif 000048
2020172015.tif 000049
2020172015.tif 000050
2020172015.tif 000051
2020172015.tif 000052
2020172015.tif 000053
2020172015.tif 000054
2020172015.tif 000055
2020172015.tif 000056
2020172015.tif 000057
2020172015.tif 000058
2020172015.tif 000059
2020172015.tif 000060
2020172015.tif 000061
2020172015.tif 000062
2020172015.tif 000063
2020172015.tif 000064
2020172015.tif 000065
2020172015.tif 000066
2020172015.tif 000067
2020172015.tif 000068
2020172015.tif 000069
2020172015.tif 000070
2020172015.tif 000071
2020172015.tif 000072
2020172015.tif 000073
2020172015.tif 000074
2020172015.tif 000075
2020172015.tif 000076
2020172015.tif 000077
2020172015.tif 000078
2020172015.tif 000079
2020172015.tif 000080
2020172015.tif 000081
2020172015.tif 000082
2020172015.tif 000083
2020172015.tif 000084
2020172015.tif 000085
2020172015.tif 000086
2020172015.tif 000087
2020172015.tif 000088
2020172015.tif 000089
2020172015.tif 000090
2020172015.tif 000091