(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024088632
(43)【公開日】2024-07-02
(54)【発明の名称】ロボット制御のためのカメラキャリブレーションを更新する方法及び制御システム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240625BHJP
G06T 7/80 20170101ALI20240625BHJP
【FI】
B25J13/08 A
G06T7/80
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024030521
(22)【出願日】2024-02-29
(62)【分割の表示】P 2020119914の分割
【原出願日】2019-07-16
(31)【優先権主張番号】16/383,389
(32)【優先日】2019-04-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ラッセル イスラム
(72)【発明者】
【氏名】シュタオ イエ
(72)【発明者】
【氏名】ローゼン,ダイナコフ
(57)【要約】 (修正有)
【課題】カメラキャリブレーションを更新するためのロボット制御システム及び方法が提示される。
【解決手段】本方法は、ロボット制御システムが、第1のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定することと、ロボット操作のためにカメラキャリブレーション情報に基づいて第1の動作コマンドを出力することとを含む。本方法は、第1のカメラキャリブレーションの後、第2の動作コマンドを出力してカメラ視野内でキャリブレーションパターンを動かすことと、1つ以上のキャリブレーション画像を受け取ることと、取り込まれた画像セットに1つ以上のキャリブレーション画像を追加することとを更に含む。
【選択図】
図7A
【特許請求の範囲】
【請求項1】
ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、
を備え、該制御回路は、
第1のカメラキャリブレーションを実行して、前記カメラに関連するカメラキャリブレーション情報を特定することと、
前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第1の動作コマンドを前記ロボットに出力することにより、ロボット操作を実行するように、前記カメラキャリブレーション情報に基づいて前記ロボットアームの動作を制御することと、
前記第1のカメラキャリブレーションの後、前記通信インターフェースを介して、第2の動作コマンドを前記ロボットに出力することにより、前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすように、前記ロボットアームを制御することと、
前記通信インターフェースを介して前記カメラから1つ以上のキャリブレーション画像を受け取り、該1つ以上のキャリブレーション画像は、前記カメラ視野内の前記1つ以上の場所においてそれぞれ取り込まれることと、
キャリブレーション画像を含む取り込まれた画像セットに前記1つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、該第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記偏差が規定された閾値を超えるか否かを判断することと、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を行うように構成される、ロボット制御システム。
【請求項2】
前記第2のカメラキャリブレーションは、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合のみ実行される、請求項1に記載のロボット制御システム。
【請求項3】
前記制御回路は、前記取り込まれた画像セットに、或る数の直近で取り込まれた1つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新するように更に構成され、
前記第2のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、請求項1に記載のロボット制御システム。
【請求項4】
前記制御回路は、前記ロボット操作中に休止期間を検出し、前記ロボットアームが、前記休止期間中に前記1つ以上の場所に前記キャリブレーションパターンを動かすように制御されるように、前記休止期間中に前記第2の動作コマンドを出力するように更に構成され、
前記1つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記1つ以上の場所で取り込まれる、請求項1に記載のロボット制御システム。
【請求項5】
前記休止期間は第1の休止期間であり、前記制御回路は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第1の休止期間の後、前記ロボット操作中に第2の休止期間を検出することと、
前記第2の休止期間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間中に前記第2のカメラキャリブレーションを実行することと、
前記第2の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、a)前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、b)更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、c)前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を行うように更に構成される、請求項4に記載のロボット制御システム。
【請求項6】
前記休止期間は第1の休止期間であり、前記制御回路は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第1の休止期間に続く第2の休止期間を検出することと、
前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第2の休止期間における残りの時間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間における前記残りの時間中に前記第2のカメラキャリブレーションを実行することと、
を行うように更に構成される、請求項4に記載のロボット制御システム。
【請求項7】
前記制御回路は、前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、a)前記第2の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから1つ以上の後続する追加のキャリブレーション画像を受け取り、該1つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の後続する追加の場所においてそれぞれ取り込まれることと、b)前記1つ以上の後続する追加のキャリブレーション画像を追加することに
より、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、c)前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される、請求項6に記載のロボット制御システム。
【請求項8】
前記制御回路は、
前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加し、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像の各画像が追加された後、該取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数を超えたという判断に応じて、前記取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することと、
を行うように更に構成され、
前記第2のカメラキャリブレーションは、前記取り込まれた画像セットに前記1つ以上の追加の画像が追加された後に、該取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される、請求項1に記載のロボット制御システム。
【請求項9】
前記カメラキャリブレーション情報及び前記更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む、請求項1に記載のロボット制御システム。
【請求項10】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第1のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第1の動作コマンドを前記ロボットに出力して、前記ロボットアームがロボット操作を実行するように動くようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第1のカメラキャリブレーションの後、第2の動作コマンドを前記ロボットに出力して、前記ロボットアームが、前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラから1つ以上のキャリブレーション画像を受け取り、該1つ以上のキャリブレーション画像は、前記カメラ視野内の前記1つ以上の場所においてそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記1つ以上のキャリブレーション画像を追加することと、
前記ロボット制御システムにより、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、該第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【請求項11】
前記方法は、
前記取り込まれた画像セットに、或る数の直近で取り込まれた1つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新すること、
を更に含み、
前記第2のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、請求項10に記載の方法。
【請求項12】
前記方法は、
前記ロボット操作中に休止期間を検出すること、
を更に含み、
前記第2の動作コマンドは、前記ロボットに出力されて、前記ロボットアームが、前記休止期間中に前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすようにし、
前記1つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記1つ以上の場所において取り込まれる、請求項10に記載の方法。
【請求項13】
前記休止期間は第1の休止期間であり、前記方法は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第1の休止期間の後、前記ロボット操作中に第2の休止期間を検出することと、
前記第2の休止期間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間中に前記第2のカメラキャリブレーションを実行することと、
を更に含む、請求項12に記載の方法。
【請求項14】
前記休止期間は第1の休止期間であり、前記方法は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第1の休止期間の後、前記ロボット操作中に第2の休止期間を検出することと、
前記第2の休止期間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、更新された取り込まれた画像セットを生成するように、前記1つ以上の追加の画像を追加することにより、かつ、等しい数の最も古くに取り込まれた1つ以上のキャリブレーシ
ョン画像を除去することにより、前記取り込まれた画像セットを更新することと、前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を更に含む、請求項12に記載の方法。
【請求項15】
前記休止期間は第1の休止期間であり、前記方法は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第1の休止期間に続く第2の休止期間を検出することと、
前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第2の休止期間における残りの時間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間における前記残りの時間中に前記第2のカメラキャリブレーションを実行することと、
を更に含む、請求項12に記載の方法。
【請求項16】
前記方法は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
第1の休止期間に続く第2の休止期間を検出することと、
前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第2の休止期間における残りの時間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、前記第2の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから1つ以上の後続する追加のキャリブレーション画像を受け取り、該1つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の後続する追加の場所においてそれぞれ取り込まれることと、前記1つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、
前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を更に含む、請求項12に記載の方法。
【請求項17】
ロボット制御システムの制御回路によって実行されるときに、前記制御回路に、
第1のカメラキャリブレーションを実行させて、カメラキャリブレーション情報を特定する命令であって、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成された通信インターフェースを備える、命令と、
前記カメラキャリブレーション情報に基づく第1の動作コマンドを、前記通信インターフェースを介して前記ロボットに出力させて、前記ロボットアームがロボット操作を実行するように動くようにする命令と、
前記通信インターフェースを介して第2の動作コマンドを前記ロボットに出力させて、前記ロボットアームが前記カメラ視野内の1つ以上の場所まで前記キャリブレーションパターンを動かすようにする命令と、
前記通信インターフェースから1つ以上のキャリブレーション画像を受け取らせる命令であって、前記通信インターフェースは、前記カメラから前記1つ以上のキャリブレーション画像を受け取るように構成され、該1つ以上のキャリブレーション画像は、前記カメラ視野内の前記1つ以上の場所においてそれぞれ取り込まれる、命令と、
キャリブレーション画像を含む取り込まれた画像セットに前記1つ以上のキャリブレーション画像を追加させる命令と、
前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第2のカメラキャリブレーションを実行させる命令であって、該第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する、命令と、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めさせる命令と、
前記偏差が規定された閾値を超えるか否かを判断させる命令と、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力させる命令と、
を記憶している、非一時的コンピューター可読媒体。
【請求項18】
前記命令は、前記ロボット制御システムの前記制御回路によって実行されるときに、更に、前記制御回路に、前記取り込まれた画像セットに、或る数の直近で取り込まれた1つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新させ、
前記第2のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、
請求項17に記載の非一時的コンピューター可読媒体。
【請求項19】
前記命令は、更に、前記ロボット制御システムの前記制御回路によって実行されるときに、前記制御回路に、前記ロボット操作中に休止期間を検出させ、
前記通信インターフェースは、前記第2の動作コマンドを前記ロボットに通信して、前記ロボットアームが、前記休止期間中に前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすようにし、
前記1つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記1つ以上の場所において取り込まれる、請求項17に記載の非一時的コンピューター可読媒体。
【請求項20】
前記休止期間は第1の休止期間であり、前記命令は、前記ロボット制御システムの前記
制御回路によって実行されるときに、更に、前記制御回路に、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断させ、
前記第1の休止期間の後、前記ロボット操作中に第2の休止期間を検出させ、
前記第2の休止期間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断させ、
前記第2の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間中に前記第2のカメラキャリブレーションを実行させ、
前記第2の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、a)前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取らせ、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれ、b)更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新させ、c)前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機させる、
請求項19に記載の非一時的コンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御のためのカメラキャリブレーションを更新する方法及び制御システムに関する。
【背景技術】
【0002】
自動化がより一般的になるに従い、倉庫保管及び製造環境等、より多くの環境においてロボットが使用されている。例えば、ロボットは、倉庫において物品をパレットに積むか若しくはパレットから降ろすために、又は、工場においてコンベヤベルトから物体を持ち上げるために使用される場合がある。ロボットの移動は、一定である場合があり、又は、倉庫若しくは工場においてカメラによって撮影される画像等の入力に基づく場合がある。後者の状況では、カメラの特性を求めるために、かつ、カメラとロボットが位置する環境との関係を求めるために、キャリブレーション(較正)が行われる場合がある。キャリブレーションは、カメラキャリブレーションと呼ばれる場合があり、カメラによって取り込まれた画像に基づいてロボットを制御するために使用されるカメラキャリブレーション情報を生成することができる。いくつかの実施態様では、カメラキャリブレーションは、人による手動操作を必要とする場合があり、人は、ロボットの移動を手動で制御するか、又は、カメラを手動で制御して、ロボットの画像を取り込むことができる。
【発明の概要】
【0003】
本明細書における実施形態の一態様は、ロボット制御のためのカメラキャリブレーションを更新することに関する。カメラキャリブレーション更新は、通信インターフェース及び制御回路を備えるロボット制御システムによって実行することができる。通信インターフェースは、ベースと、その上にキャリブレーションパターンが配置されるロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成することができる。ロボット制御システムの制御回路は、a)第1のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、b)カメラキャリブレーション情報に基づく第1の動作コマンドを、通信インターフェースを介してロボットに出力して、ロボットアームがロボット操作を実行するように動くようにし、c)第1のカメラキャリブレーションの後、第2の動作コマンドを、通信インターフェースを介してロボットに出力して、ロボットアームが、カメラ視野内の1つ以上の場所までキャリブレーションパターンを動かすようにし、d)カメラから1つ以上のキャリブレーション画像を受け取り、1つ以上のキャリブレーション画像は、カメラ視野内の1つ以上の場所においてそれぞれ取り込まれ、e)1つ以上のキャリブレーション画像を、キャリブレーション情報を含む取り込まれた画像セットに追加し、f)取り込まれた画像セットにおけるキャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力し、g)カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差を求め、h)偏差が規定された閾値を超えたか否かを判断し、i)偏差が規定された閾値を超えたという判断に応じて、偏差が規定された閾値を超えたことを示す通知信号を出力するように構成することができる。
【0004】
本発明の上述の特徴、目的、及び利点、並びに他の特徴、目的、及び利点は、添付の図面に示されるような本発明の実施形態の以下の説明から明らかであろう。本明細書に組み込まれるとともに本明細書の一部をなす添付の図面は更に、本発明の原理を説明するとともに、当業者が本発明を実施及び使用することを可能にする役割を果たす。図面は一定縮尺ではない。
【図面の簡単な説明】
【0005】
【
図1A】本明細書の実施形態による、カメラキャリブレーションの更新が実行されるロボット運用システムのブロック図である。
【
図1B】本明細書の実施形態による、カメラキャリブレーションの更新が実行されるロボット運用システムのブロック図である。
【
図1C】本明細書の一実施形態による、カメラキャリブレーションの更新を実行するように構成されるロボット制御システムのブロック図である。
【
図1D】本明細書の一実施形態による、カメラキャリブレーションが実行されるカメラのブロック図である。
【
図2】本明細書の一実施形態による、カメラキャリブレーションから得られるカメラキャリブレーション情報に基づいて制御されるロボットを例示するロボット運用システムを示す図である。
【
図3】本明細書の一実施形態による、カメラキャリブレーションを実行するロボット運用システムを示す図である。
【
図4A】本発明の一実施形態による、カメラキャリブレーションを実行し更新する方法例を示すフロー図である。
【
図4B】本発明の一実施形態による、カメラキャリブレーションを実行し更新する方法例を示すフロー図である。
【
図5A】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【
図5B】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【
図6A】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【
図6B】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するロボット運用システム例を示す図である。
【
図7A】本明細書の一実施形態による、キャリブレーションパターンのそれぞれのキャリブレーション画像が取り込まれるときにキャリブレーションパターンが位置する参照箇所の例を示す図である。
【
図7B】本明細書の一実施形態による、キャリブレーションパターンのそれぞれのキャリブレーション画像が取り込まれるときにキャリブレーションパターンが位置する参照箇所の例を示す図である。
【
図8】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新する時系列例を示す図である。
【
図9】本発明の一実施形態による、休止期間中にカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するフロー図例である。
【
図10】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新する時系列例を示す図である。
【
図11】本発明の一実施形態による、ロボットタスク期間、休止期間又はそれらの組合せにおいてカメラキャリブレーションが実行される、カメラキャリブレーションを実行し更新するフロー図例である。
【発明を実施するための形態】
【0006】
以下の詳細な説明は、本質的に単に例示のものであり、本発明又は本発明の用途及び使
用を限定することを意図するものではない。さらに、前出の技術分野、背景技術、発明の概要又は以下の詳細な説明において提示されるいかなる明示された又は暗示された理論によっても限定する意図はない。
【0007】
本明細書に記載する実施形態は、倉庫、製造工場において、又は他の何らかの環境において使用されるロボット等、ロボットを制御するために使用されるカメラのキャリブレーションを更新することに関する。キャリブレーションは、カメラキャリブレーションと呼ばれる場合があり、例えば、ロボット制御システム(ロボットコントローラーとも呼ぶ)が、カメラによって取り込まれる(例えば、撮影される)画像に基づいてロボットを制御するロボット制御システムの能力を促進するカメラキャリブレーション情報を生成するために実施することができる。例えば、ロボットは、倉庫において包装品を持ち上げるために使用される場合があり、そこでは、ロボットのロボットアーム又は他の構成要素の配置は、カメラによって取り込まれる包装品の画像に基づくことができる。その場合、カメラキャリブレーション情報は、例えば、ロボットのロボットアームに対する包装品の位置及び向きを求めるために、包装品の画像とともに使用することができる。カメラキャリブレーションは、例えば、カメラの固有パラメーター(内部パラメーターと呼ばれる場合もある)のそれぞれの推定値、及び/又はカメラとその外部環境との間の関係の推定値等のキャリブレーションパラメーターのそれぞれの値を特定することを伴うことができる。カメラの固有パラメーターは、行列、ベクトル又はスカラー値等の1つ以上のパラメーター値を有することができる。さらに、固有パラメーターの例は、射影行列及びひずみパラメーターを含む。一例において、カメラキャリブレーションは、外部環境内の或る定位置に対するカメラの位置を特定することを伴うことができ、それは、カメラと外部環境内の定位置との間の関係を表す変換関数(transformation function)として表すことができる。
場合によっては、カメラキャリブレーションは、キャリブレーションパターンの助けを借りて実行することができ、キャリブレーションパターンは、キャリブレーションパターン上の規定された場所に配置されるパターン要素を有することができる。カメラはキャリブレーションパターンのパターン要素の画像(キャリブレーション画像とも呼ばれる)を取り込むことができ、カメラキャリブレーションは、パターン要素の画像をパターン要素の規定された場所と比較することに基づいて実行することができる。カメラキャリブレーションは、2019年3月7日に出願の「METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED ON IMAGES FROM A CAMERA」と題する米国特許出願第16/295,940号(以下で「出願MJ0021US1と呼ばれる」)においてより詳細に論じられており、その内容全体が引用することにより本明細書の一部をなす。
【0008】
上記で言及されたように、本開示の一態様は、後の時点において依然として正確であるカメラキャリブレーション情報を得るために、早期の時点において実行されたカメラキャリブレーションを更新することに関する。早期の時点において実行されるカメラキャリブレーションは、カメラの固有パラメーター、又はその時点におけるカメラとその外部環境との間の関係等の、その時点のカメラの特性を反映するカメラキャリブレーション情報を生成することができる。場合によっては、カメラの特性が経時的に変化する場合があるため、早期のカメラキャリブレーションは経時的に精度を維持できなくなる場合がある。第1の例において、カメラの固有パラメーターが経時的に変化する場合がある。そのような変化は、例えば、温度変化によって引き起こされる場合があり、温度変化が、カメラのハウジング及び/又はレンズの形状を変更する。第2の例において、カメラとその外部環境との間の関係が経時的に変化する場合がある。例えば、カメラが、例えば、ロボットのベース、又は倉庫内の場所に対して位置又は向きを変える場合がある。そのような変化は、例えば、カメラを搭載するために使用される任意の構成要素を膨張又は収縮させる温度変化、カメラに衝突する人又は他の物体、カメラの外部環境(例えば、倉庫)内の振動、カメラの自らの重量に起因する力(すなわち、重力によって)、又は何らかの他の要因によ
って引き起こされる場合がある。これらの変化によって、時間が経過するにつれてカメラキャリブレーション情報が古くなる場合があり、このカメラキャリブレーション情報を用いて、後の時点においてロボットアーム又はロボットの他の構成要素を位置決めする結果として、誤差が生じる恐れがある。言い換えると、カメラに関連付けられる特性が経時的に変化しているが、そのような変化を反映するようにカメラキャリブレーション情報が更新されない場合には、ロボットは、古くなったか、又は別の事情で不正確なカメラキャリブレーション情報に基づいて動作する場合があり、それにより、ロボットの操作に望ましくない誤差を引き起こす恐れがある。カメラの1つ以上の特性の変化が発生し得る可能性に対処するために、ロボット制御システムは、より最近のキャリブレーション画像に基づき更新されたカメラキャリブレーション情報を自動的に特定することができる。場合によっては、ロボット制御システムは、或る特定の数の直近のキャリブレーション画像を特定するスライド窓として作用する、取り込まれた画像セットを維持することができ、スライド窓におけるキャリブレーション画像は、カメラキャリブレーションを更新するために、かつ、更新されたカメラキャリブレーション情報を生成するために使用される。一実施形態では、更新されたカメラキャリブレーション情報を使用して、カメラの特性の変化、又はカメラとその外部環境との関係の変化を検出する検証を実行することができる。この変化は、例えば、短期間にわたりキャリブレーション情報の著しい変化を検出することによって検出することができる。いくつかの実施態様では、この検出により、カメラの特性が過度に急速に及び/又は過度に劇的に変化する場合に通知信号を発生させることができる。こうした変化は、場合によっては、カメラの望ましくない状態又はカメラの外部環境を反映する可能性がある。通知信号は、例えば、ユーザーインターフェースデバイス(例えば、ラップトップ)に通信することができ、ユーザーインターフェースデバイスは、ロボットオペレーター又は他のユーザーに、こうした望ましくない状況の存在の可能性を警告することができる。
【0009】
本明細書の実施形態の一態様は、キャリブレーションパターンの画像である可能性がある、より最近に取り込まれたキャリブレーション画像に基づき、後続するカメラキャリブレーション(後のカメラキャリブレーションとも呼ばれる)を実行することにより第1のカメラキャリブレーションを更新することに関する。場合によっては、後続するカメラキャリブレーションは、第1のカメラキャリブレーションより最近である十分な数のキャリブレーション画像がカメラによって取り込まれた場合に、実行することができる。例えば、後続するカメラキャリブレーションが実行される前にキャリブレーション画像の数が目標数に達している必要がある場合がある。目標数は、ロボット制御システムに提供された規定値とすることができ、又は、ロボット制御システムにより動的に決定される規定値とすることができる。場合によっては、後続するカメラキャリブレーションは、規定数の直近で取り込まれた画像を維持する取り込まれた画像セットを使用することができる。こうした場合、ロボット制御システム又は別の場所に記憶することができる取り込まれた画像セットは、直近で取り込まれたキャリブレーション画像を追加し、等しい数の最も古いキャリブレーション画像を廃棄する、スライド窓として作用することができ、その結果、後続するカメラキャリブレーションは、更新されたカメラキャリブレーション情報を提供するように、規定数の直近で取り込まれたキャリブレーション画像を使用する。
【0010】
一実施形態では、カメラの特性又はその外部環境の変化の検出は、第1のカメラキャリブレーションからのカメラキャリブレーション情報を、後続するカメラキャリブレーションからのカメラキャリブレーション情報と比較することによって実行することができる。比較は、例えばロボット制御システム(ロボットコントローラーとも呼ばれる)によって実行することができ、ロボット制御システムは、後続するカメラキャリブレーションからのカメラキャリブレーション情報が、第1のカメラキャリブレーションのカメラキャリブレーション情報から、望ましくない量だけ及び/又は望ましくない割合で外れる場合に、通知信号を出力することができる。場合によっては、第1のカメラキャリブレーションは
、ロボット操作を開始する前に、カメラに対するカメラキャリブレーション情報を特定するために実行される初期カメラキャリブレーションとすることができる。一例では、第1のカメラキャリブレーションは、初期動作コマンドを介してカメラの視野(カメラのカメラ視野とも呼ぶ)内でキャリブレーションパターンを参照箇所まで動かすようにロボットを制御し、それぞれの参照箇所でキャリブレーションパターンの初期キャリブレーション画像を取り込み、初期キャリブレーション画像に基づいて第1のカメラキャリブレーションを実行することによって、実行することができる。参照箇所の場所は、ランダムに選択することができ、又は定義する(例えば、手動で定義するか、又はロボット制御システムによって動的に計算する)ことができる。
【0011】
第1のカメラキャリブレーションの後、ロボットは、第1のカメラキャリブレーションから特定されたカメラキャリブレーション情報に基づいてロボットを動かすことにより、ロボット操作を実行することができる。ロボット操作中、カメラ視野内のそれぞれの場所で、カメラにより更なるキャリブレーション画像が取り込まれ、取り込まれた画像セットに追加される。上記で言及されたように、後続するカメラキャリブレーションは、場合によっては、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合(これは、十分な数の最近のキャリブレーション画像が確実なカメラキャリブレーションのために利用可能であることを示すことができる)にのみ実行することができる。場合によっては、目標数は、カメラキャリブレーションを確実に更新するために最小数のキャリブレーション画像を示す可能性がある。一実施形態では、ロボット制御システムは、初期カメラキャリブレーション、又はより一般的には第1のカメラキャリブレーションを実行した後、それに続いて、キャリブレーション画像を受け取り、それらを取り込まれた画像セットに配置することができる。したがって、取り込まれた画像セットにおけるキャリブレーション画像を使用して、後続するカメラキャリブレーション、又はより一般的には第2のカメラキャリブレーションを実行することができ、第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する。一実施形態では、第1のカメラキャリブレーションからのカメラキャリブレーション情報と第2のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。偏差量が規定された閾値を超えた場合、偏差量が規定された閾値(偏差閾値とも呼ぶことができる)を超えたことを示す通知信号が出力される。一実施形態では、偏差量が規定された閾値を超えることは、ロボット操作が確実に実行されていない可能性があること、及び/又はオペレーター若しくは他のユーザーに対して通知する必要があることを示すことができる。したがって、偏差量が規定された閾値を超えた場合、ロボット操作を停止させるか又は一時停止させて、ロボット操作中におけるロボットタスクの望ましくない誤差を防止することができ、及び/又はユーザーインターフェースデバイスに通知を出力することができる。一方で、偏差量が規定された閾値を超えない場合、キャリブレーションパターンの新たなキャリブレーション画像を取り込みながら、ロボット操作を継続することができる。
【0012】
ロボットの特徴又は構成に応じて、キャリブレーション画像は、ロボット操作の休止期間中にのみ取り込むことができ、又は、休止期間を使用することなく(例えば、ロボットが物体を持ち上げている期間中に)取り込むことができる。一実施形態では、休止期間は、ロボットが、ロボット操作中にロボットタスクが課されていない期間とすることができる。一例では、休止期間は、ロボットタスクが実行されている間に定期的にカメラに面していないロボットの部分の上にキャリブレーションパターンが配置される状況に対して、使用することができる。こうした例では、休止期間を利用して、カメラに面するようにキャリブレーションパターンを動かし、カメラを介してキャリブレーションパターンを取り込むことができる。別の例では、例えば、ロボットがロボットタスクを実行している間に定期的にカメラに面する可能性があるロボットの部分の上にキャリブレーションパターンが配置される可能性がある状況に対して、休止期間をスキップすることができる。
【0013】
一実施形態では、キャリブレーション画像が休止期間中にのみ取り込まれる場合、第2のカメラキャリブレーションもまた、休止期間中にのみ完了することができる。内容全体が引用することにより本明細書の一部をなす、2019年3月7日に出願され、「METHOD
AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED
ON IMAGES FROM A CAMERA」と題する米国特許出願第16/295,940号(整理番号MJ0021US1)においてより詳細に論じられているように、第2のカメラキャリブレーションを完了することは、例えば、そのキャリブレーション画像に基づいて固有パラメーターを求めるように、及び/又はカメラをその外部環境に関連付けるキャリブレーション画像に基づき変換関数を求めるように、計算を実行することを含むことができる。場合によっては、第2のカメラキャリブレーションを完了するための計算又は他のステップは、少なくとも規定されたキャリブレーション期間程度の長さである休止期間中にのみ実行することができる。規定されたキャリブレーション期間は、第2のカメラキャリブレーションを完了するために必要な時間(例えば、計算を実行するために必要な時間)を示すことができる。休止期間の時間の量が、規定されたキャリブレーション期間より短い場合、第2のカメラキャリブレーションを完了することに関与する計算又は他のステップは、後続する休止期間まで延期することができる。場合によっては、計算が後続する休止期間まで延期される場合、現休止期間を依然として使用して、更なるキャリブレーション画像を取り込むようにカメラを制御することができ、その結果、計算が後続する期間において実行されるとき、計算は、現休止期間からのより最近に取り込まれたキャリブレーション画像を用いて実行される。
【0014】
図1Aは、自動カメラキャリブレーション及びカメラキャリブレーションの自動更新を実行するロボット運用システム100(システム100とも呼ばれる)のブロック図を示す。ロボット運用システム100は、ロボット150と、ロボット制御システム110(ロボットコントローラーとも呼ばれる)と、カメラ170とを含む。一実施形態において、システム100は倉庫内に、製造工場内に、又は他の施設内に位置することができる。ロボット制御システム110は、後に更に詳細に論じられるカメラキャリブレーションを実行し、カメラキャリブレーション情報を特定するように構成することができ、カメラキャリブレーション情報は、倉庫内で荷物を持ち上げる等のロボット操作を実行するようにロボット150を制御するために後に使用される。ロボット制御システム110は、同じく後に更に詳細に論じられるカメラキャリブレーションを更新し、カメラキャリブレーション情報が過度に又は過度に急速に変化している状況(それは、カメラ170又はその外部環境の望ましくない状態を示す可能性がある)を検出するように、更に構成することができる。場合によっては、ロボット制御システム110は、カメラキャリブレーションを実行し、カメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット150を制御するように構成される。場合によっては、ロボット制御システム110は、ロボット150及びカメラ170と通信する単一のデバイス(例えば、単一のコンソール又は単一のコンピューター)を形成することができる。場合によっては、ロボット制御システム110は複数のデバイスを含むことができる。
【0015】
場合によっては、ロボット制御システム110は、カメラキャリブレーション及び/又はカメラキャリブレーションの更新を実行する専用システムとすることができ、最新のカメラキャリブレーション情報を別の制御システム(別のコントローラーとも呼ばれる、図示せず)に通信することができ、その後、別の制御システムが、最新のカメラキャリブレーション情報に基づいて、ロボット操作を実行するように、ロボット150を制御する。ロボット150は、カメラ170によって取り込まれた画像に基づいて、かつカメラキャリブレーション情報に基づいて位置決めすることができる。より具体的には、ロボット制御システム110は、一実施形態において、画像に基づいて、かつカメラキャリブレーション情報に基づいて、動作コマンドを生成し、動作コマンドをロボット150に通信し、
そのロボットアームの動作を制御するように構成することができる。場合によっては、ロボット制御システム110は、ロボット操作時の休止期間中にカメラキャリブレーションの更新を実行するように構成される。場合によっては、ロボット制御システム110は、ロボット150でロボット操作を実行している間に更新を実行するように構成される。
【0016】
一実施形態において、ロボット制御システム110は、有線通信又はワイヤレス通信を介して、ロボット150及びカメラ170と通信するように構成することができる。例えば、ロボット制御システム110は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェース、イーサネットインターフェース、Bluetooth(登録商標)インターフェース、IEEE802.11インターフェース又はその任意の組み合わせを介して、ロボット150及び/又はカメラ170と通信するように構成することができる。一実施形態において、ロボット制御システム110は、ペリフェラルコンポーネントインターコネクト(PCI)バス等のローカルコンピューターバスを介して、ロボット150及び/又はカメラ170と通信するように構成することができる。
【0017】
一実施形態において、ロボット制御システム110は、ロボット150とは別に存在することができ、上記で論じられたワイヤレス接続又は有線接続を介して、ロボットと通信することができる。例えば、ロボット制御システム110は、有線接続又はワイヤレス接続を介してロボット150及びカメラ170と通信するように構成されるスタンドアローンコンピューターとすることができる。一実施形態において、ロボット制御システム110は、ロボット150と一体の構成要素とすることができ、上記で論じられたローカルコンピューターバスを介して、ロボット150の他の構成要素と通信することができる。場合によっては、ロボット制御システム110は、ロボット150のみを制御する専用制御システム(専用コントローラーとも呼ばれる)とすることができる。他の場合には、ロボット制御システム110は、ロボット150を含む、複数のロボットを制御するように構成することができる。一実施形態において、ロボット制御システム110、ロボット150及びカメラ170は同じ施設(例えば、倉庫)内に位置する。一実施形態において、ロボット制御システム110は、ロボット150及びカメラ170から遠隔とすることができ、ネットワーク通信(例えば、ローカルエリアネットワーク(LAN)接続)を介して、ロボット150及びカメラ170と通信するように構成することができる。
【0018】
一実施形態において、ロボット制御システム110は、カメラ170から、ロボット150上(例えば、ロボットのロボットアーム上)に配置されるキャリブレーションパターン160の画像を引き出すか、又は別の方法で受信するように構成することができる。場合によっては、ロボット制御システム110は、そのような画像を取り込むように、カメラ170を制御するように構成することができる。例えば、ロボット制御システム110は、カメラ170にカメラ170の視野(カメラ視野とも呼ばれる)の画像を取り込ませるカメラコマンドを生成し、有線接続又はワイヤレス接続を介して、カメラコマンドをカメラ170に通信するように構成することができる。同じコマンドによって、カメラ170に、ロボット制御システム110、又はより一般的には、ロボット制御システム110によってアクセス可能な記憶デバイスに画像を通信させることもできる。代替的には、ロボット制御システム110は、カメラコマンドを受信すると、カメラ170が取り込んだ画像(複数の場合もある)をロボット制御システム110に通信する別のカメラコマンドを生成することができる。一実施形態において、カメラ170は、ロボット制御システム110からのカメラコマンドを必要とすることなく、定期的に、又は規定されたトリガー条件に応答して、自らのカメラ視野内の画像を自動的に取り込むことができる。そのような実施形態において、カメラ170は、ロボット制御システム110からのカメラコマンドを用いることなく、ロボット制御システム110に、又はより一般的にはロボット制御システム110によってアクセス可能な記憶デバイスに画像を自動的に通信するように構成することもできる。
【0019】
一実施形態において、ロボット制御システム110は、ロボット制御システム110によって生成され、有線接続又はワイヤレス接続を介してロボット150に通信される動作コマンドを介して、ロボット150の動作を制御するように構成することができる。ロボット150は、ロボット150上にキャリブレーションパターン160を有するように構成することができる。例えば、キャリブレーションパターン160は、ロボット150上に永久的に配置することができ、又は、ロボット150に着脱可能である別の構成要素とすることができる。
【0020】
一実施形態において、ロボット150を制御するためにシステム100において使用される唯一の画像が、カメラ170によって取り込まれた画像である場合がある。別の実施形態において、システム100は、複数のカメラを含むことができ、ロボット150は、複数のカメラからの画像によって制御することができる。
【0021】
図1Bは、ロボット150と、ロボット制御システム110と、カメラ170と、ユーザーインターフェースデバイス180とを備えるロボット運用システム100Aを示す。ロボット150は、ロボット150上に配置されたキャリブレーションパターンを有することができる。場合によっては、ロボット運用システム100Aは、初期カメラキャリブレーション、又はより一般的には第1のカメラキャリブレーションを実行して初期カメラキャリブレーション情報を得ることができ、初期カメラキャリブレーション情報は、基準カメラキャリブレーション情報として作用することができる。ロボット運用システム100Aは、その後、経時的に更なるカメラキャリブレーションを実行して、更新されたカメラキャリブレーション情報を得ることができる。ロボット運用システム100Aは、更新されたカメラキャリブレーション情報と基準カメラキャリブレーション情報との間の偏差量が規定された閾値を超えるか否かをモニタリングすることができる。偏差量が、ロボット操作中に規定された閾値を超えると判断された場合、ロボット制御システム110は、ユーザーインターフェースデバイス180に通知信号を出力することができる。ユーザーインターフェースデバイス180は、ロボット150が位置する倉庫にいる従業員等の、ロボット150の運用者とのインターフェースを構成することができる。ユーザーインターフェースデバイス180は、ロボット150の運用に関連する情報を表示するユーザーインターフェースを提供する、例えば、タブレットコンピューター又はデスクトップコンピューターを含むことができる。一例では、ユーザーインターフェースデバイス180は、オペレーターに対して、偏差量が規定された閾値を越えていることを通知する警報又は他の警告を与えることができる。通知信号は、例えば、カメラ170の特性が過度に若しくは過度に迅速に変化しているか、又はカメラ170とロボット150との間の関係が過度に若しくは過度に迅速に変化している望ましくない状況を反映することができる。
【0022】
図1Cは、ロボット制御システム110のブロック図を示す。ブロック図に示されるように、ロボット制御システム110は、制御回路111と、通信インターフェース113と、非一時的コンピューター可読媒体115(例えば、メモリ)とを含む。一実施形態において、制御回路111は1つ以上のプロセッサ、プログラマブル論理回路(PLC)又はプログラマブル論理アレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は任意の他の制御回路を含むことができる。
【0023】
一実施形態において、通信インターフェース113は、
図1A又は
図1Bのカメラ170及び
図1A又は
図1Bのロボット150と通信するように構成される1つ以上の構成要素を含むことができる。例えば、通信インターフェース113は、有線プロトコル又はワイヤレスプロトコルを介して通信を実行するように構成される通信回路を含むことができる。一例として、通信回路は、RS-232ポートコントローラー、USBコントローラ
ー、イーサネットコントローラー、Bluetooth(登録商標)コントローラー、PCIバスコントローラー、任意の他の通信回路、又はその組み合わせを含むことができる。
【0024】
一実施形態において、非一時的コンピューター可読媒体115はコンピューターメモリを含むことができる。コンピューターメモリは、例えば、ダイナミックランダムアクセスメモリ(DRAM)、半導体集積メモリ(solid state integrated memory)、及び/又
はハードディスクドライブ(HDD)を含むことができる。場合によっては、カメラキャリブレーションは、非一時的コンピューター可読媒体115上に記憶されるコンピューター実行可能命令(例えば、コンピューターコード)を通して実施することができる。そのような場合に、制御回路111は、コンピューター実行可能命令を実行し、カメラキャリブレーションの更新(例えば、
図4A、
図4B、
図9及び
図11に示されるステップ)を実行するように構成される1つ以上のプロセッサを含むことができる。
【0025】
図1Dは、1つ以上のレンズ171と、イメージセンサー173と、通信インターフェース175とを含むカメラ170のブロック図を示す。通信インターフェース175は、
図1A、
図1B又は
図1Cのロボット制御システム110と通信するように構成することができ、ロボット制御システム110の
図1Cの通信インターフェース113に類似とすることができる。一実施形態において、1つ以上のレンズ171は、カメラ170の外部から到来している光をイメージセンサー173上に合焦することができる。一実施形態において、イメージセンサー173は、それぞれのピクセル強度値を介して画像を表すように構成されるピクセルのアレイを含むことができる。イメージセンサー173は、電荷結合素子(CCD)センサー、相補型金属酸化膜半導体(CMOS)センサー、量子イメージセンサー(QIS:quanta image sensor)又は任意の他のイメージセンサーを含むこ
とができる。
【0026】
上記で言及されたように、カメラによって取り込まれた画像に基づいて、ロボットの制御を助長するために、カメラキャリブレーションを実行することができる。例えば、
図2はロボット運用システム200(システム200とも呼ばれる)を示しており、そのシステムでは、画像を用いて、倉庫内の物体292を持ち上げる操作等の、ロボット操作を実行するようにロボット250を制御する。より具体的には、システム200は、
図1Aのシステム100の一実施形態とすることができ、カメラ270、ロボット250及びロボット制御システム110を含む。カメラ270は、
図1A、
図1B又は
図1Dのカメラ170の一実施形態とすることができ、ロボット250は、
図1A又は
図1Bのロボット150の一実施形態とすることができる。カメラ270は、倉庫内のコンベヤベルト293上に配置される物体292(例えば、出荷するための荷物)の画像を取り込むように構成することができ、ロボット制御システム110は、物体292を持ち上げるように、ロボット250を制御するように構成することができる。コンベヤベルト293上に1つ以上の物体が存在するとき、ロボット制御システム110は、物体を持ち上げるロボット250の動作をスケジューリングするように構成することができる。ロボット制御システム110は、場合によっては、コンベヤベルト293上に物体が存在しない時点、又はコンベヤベルト293上の、ロボット250の届く範囲内に物体が存在しない時点を検出することによって、ロボット操作のための休止期間を検出するように構成することができる。
【0027】
図2の実施形態において、ロボット250は、ベース252と、ベース252に対して移動可能であるロボットアームとを有することができる。より具体的には、ロボットアームは複数のリンク254A~254Eと、リンク254Eに取り付けられるロボットハンド255とを備えることができる。複数のリンク254A~254Eは互いに対して回動可能とすることができ、及び/又は互いに対して直線的に移動可能である直動リンク(prismatic links)とすることができる。
図2は、物体を持ち上げるために使用されるロボ
ット250を伴うので、ロボットハンド255は、物体292を掴むために使用されるグリッパー255A及び255Bを含むことができる。一実施形態において、ロボット制御システム110は、リンク254A~254Eのうちの1つ以上を回動させる動作コマンドを通信するように構成することができる。動作コマンドは、モーター動作コマンド等のローレベルコマンド、又はハイレベルコマンドとすることができる。ロボット制御システム110からの動作コマンドがハイレベルコマンドである場合には、ロボット150は、ハイレベルコマンドをローレベルコマンドに変換するように構成することができる。
【0028】
一実施形態において、カメラキャリブレーションから特定されるカメラキャリブレーション情報は、カメラ270とロボット250との間の関係、又はより具体的には、カメラ270と、ロボット250のベース252に対して静止している世界点(world point)
294との間の関係を記述する。世界点294は、ロボット250が位置する世界又は他の環境を表すことができ、ベース252に対して静止している任意の仮想点とすることができる。言い換えると、カメラキャリブレーション情報は、カメラ270と世界点294との間の関係を記述する情報を含むことができる。一実施形態において、その関係は、世界点294に対するカメラ270の場所と、ロボット250のための参照方向に対するカメラ270の向きとを指すことができる。カメラ270と世界点294との間の上記の関係はカメラ-世界関係と呼ばれる場合があり、カメラ270とロボット250との間の関係を表すために使用することができる。場合によっては、カメラ-世界関係を用いて、カメラ270と物体292との間の関係(カメラ-物体関係とも呼ばれる)、及び物体292と世界点294との間の関係(物体-世界関係とも呼ばれる)を特定することができる。カメラ-物体関係及び物体-世界関係を用いて、物体292を持ち上げるようにロボット250を制御することができる。
【0029】
一実施形態において、カメラキャリブレーション情報は、カメラ270の固有パラメーターを記述することができ、固有パラメーターは、その値がカメラ270の場所及び向きから独立している任意のパラメーターとすることができる。固有パラメーターは、カメラの焦点距離、カメラのイメージセンサーのサイズ、又はカメラ270によって導入されるレンズひずみの影響等の、カメラ270の特性を特徴付けることができる。
【0030】
例示的なロボット350の詳細な構造を示す一例が
図3に示され、
図3は、カメラ370及びロボット350と通信するロボット制御システム110を含むロボット運用システム300を示す。カメラ370は、
図1A、
図1B、
図1D又は
図2のそれぞれカメラ170/270の一実施形態とすることができ、ロボット350は、
図1A、
図1B又は
図2のそれぞれロボット150/250の一実施形態とすることができる。カメラ370は、カメラ視野330と呼ばれる場合もあるカメラ370の視野内の画像(例えば、キャリブレーション画像)を取り込むことができる場合がある。ロボット350は、ベース352と、ベース352に対して移動可能であるロボットアームとを含むことができる。ロボットアームは、リンク354A~354E等の1つ以上のリンクを含む。一実施形態において、リンク354A~354Eは互いに回動可能に取り付けることができる。例えば、リンク354Aは、ジョイント356Aを介して、ロボットベース352に回動可能に取り付けることができる。残りのリンク354B~354Eは、ジョイント356B~356Eを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース352を用いて、ロボット350を、例えば、取付フレーム又は取付面(例えば、倉庫の床)に取り付けることができる。一実施形態において、ロボット350は、リンク354A~354Eを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。例えば、モーターのうちの1つは、
図3において破線矢印で示されるように、ジョイント356A及びベース302に対して第1のリンク354Aを回動させるように構成することができる。同様に、複数のモーターのうちの他のモーターも、リンク354B~354Eを回動させるように構成することができる。複数のモー
ターはロボット制御システム110によって制御することができる。
図3は、第5のリンク354E上に固定されるように配置されるロボットハンド355を更に示す。ロボットハンド355は、その上にキャリブレーションパターン320を有することができ、ロボット制御システム110がカメラ370を介してキャリブレーションパターン320の画像を取り込み、キャリブレーションパターン320の取り込まれた画像に基づいて、カメラキャリブレーションを実行できるようにする。例えば、ロボット制御システム110は、キャリブレーションパターン320の画像(キャリブレーション画像とも呼ばれる)を取り込むときに、キャリブレーションパターン320がカメラ視野330内に存在することができ、カメラ370から視認可能であるように、ロボットアームを動かすことができる。ロボットハンド355は、取り外し可能かつ別のロボットハンドと交換可能とすることができる。
【0031】
上記で言及されたように、本出願の一態様は、第1のカメラキャリブレーション(例えば、初期カメラキャリブレーション)の後にキャリブレーションパターン(キャリブレーション画像と呼ばれる場合もある)の画像を取り込み続けることと、より最近に取り込まれたキャリブレーション画像に基づいて更なるカメラキャリブレーション(例えば、後続するカメラキャリブレーション)を実行することとに関する。場合によっては、より最近に取り込まれたキャリブレーション画像は、取り込まれた画像セットに追加することができ、取り込まれた画像セットは、規定数の直近で取り込まれたキャリブレーション画像に割り当てる(map)スライド窓として作用することができ、その結果、追加のカメラキャ
リブレーションは、規定数の直近で取り込まれたキャリブレーション画像に基づくことができる。
【0032】
図4A及び
図4Bは、カメラキャリブレーションを更新する方法400のステップ例を示すフロー図を提供する。一実施形態において、方法400は、
図1A、
図1B又は
図1Cのロボット制御システム110の
図1Cの制御回路111によって実行することができる。上記で言及されたように、ロボット制御システム110は、
図1Cの制御回路111と通信インターフェース113とを備えることができ、通信インターフェース113は、
図1A又は
図1Bのロボット150、及びカメラ視野を有する
図1A、
図1B又は
図1Dのカメラ170と通信するように構成されている。ロボット150は、ベース(例えば、
図2のベース252又は
図3のベース352)と、ベースに対して移動可能なロボットアーム(例えば、
図2又は
図3のロボットアーム)とを有することができ、ロボットアームの上に、キャリブレーションパターン(例えば、
図1A又は
図1Bのキャリブレーションパターン160又は
図3のキャリブレーションパターン320)を配置することができる。
【0033】
一実施形態において、方法400はステップ401で開始することができ、そのステップでは、制御回路111は、第1のカメラキャリブレーションを実行して、カメラ(例えば、170)に対するカメラキャリブレーション情報を特定する。制御回路111は、キャリブレーションパターンの画像(キャリブレーション画像とも呼ぶ)に基づき第1のカメラキャリブレーションを実行することができる。一態様では、第1のカメラキャリブレーションは、カメラ視野内でキャリブレーションパターンを第1の組の1つ以上の場所まで動かすようにロボットアームを制御し、通信インターフェース(例えば、通信インターフェース113)を介してカメラ(例えば、カメラ170)から第1の組の1つ以上のキャリブレーション画像を受け取り、カメラ(例えば、カメラ170)は、キャリブレーションパターンが第1の組の1つ以上の場所にあるか又はあった間にそれぞれ第1の組の1つ以上のキャリブレーション画像を取り込むように構成され、第1の組の1つ以上のキャリブレーション画像に基づいて第1のカメラキャリブレーションを実行することによって、実行することができる。第1の組の1つ以上の場所は、ランダムに選択することができ、又は、規定する(例えば、手動で規定するか、又はロボット制御システムによって動的
に計算する)ことができる。カメラキャリブレーションは、内容全体が引用することにより本明細書の一部をなす、2019年3月7日に出願され、「METHOD AND DEVICE FOR PERFORMING AUTOMATIC CAMERA CALIBRATION TO CONTROL A ROBOT BASED ON IMAGES FROM A CAMERA」と題する米国特許出願第16/295,940号(整理番号MJ0021US1)においてより詳細に論じられている。
【0034】
方法400のステップ401及び他のステップが実行される例示的な環境が
図5A及び
図5Bに示されており、その図は、一態様による、カメラ570及びロボット550と通信するロボット制御システム110を含むロボット運用システム500を示す。カメラ570は、
図1、
図2又は
図3のそれぞれカメラ170/270/370の一実施形態とすることができ、ロボット550は、
図1、
図2又は
図3のそれぞれロボット150/250/350の一実施形態とすることができる。ロボット550は、ベース552と、ベース552に対して移動可能であるロボットアームとを含むことができる。ロボットアームは、リンク554A~リンク554E等の1つ以上のリンクを含む。一実施形態において、リンク554A~554Eは互いに回動可能に取り付けることができる。例えば、リンク554Aは、ロボットベース552に回動可能に取り付けることができる。残りのリンク554B~554Eは、複数のジョイントを介して、互いに回動可能に取り付けることができる。一実施形態において、ベース552を用いて、ロボット550を、例えば、取付フレーム又は取付面(例えば、倉庫の床)に取り付けることができる。ロボット550は、ロボット350と同じように操作することができる。例えば、ロボット550は、リンク554A~554Eを回動させることによってロボットアームを動かすように構成される複数のモーターを含むことができる。第5のリンク554Eに、ロボットハンド555を固定して配置することができ、ロボットハンド555の上にキャリブレーションパターン520を配置することができる。
図5Aは、ロボット操作中にロボット550がロボットタスクを実行している(例えば、第1の物体582Aを持ち上げている)間に、ロボットハンド555が様々な方向に動く可能性があり、かつロボットタスクを実行するためにカメラ570から離れる方向に回動する可能性があるため、キャリブレーションパターン520がカメラ570に定期的に面していない可能性がある一実施形態を示す。後に更に詳細に論じられるように、こうした実施形態は、キャリブレーションパターン520の画像(キャリブレーションパターン520のキャリブレーション画像とも呼ぶ)を取り込むように、カメラ570に面するようにキャリブレーションパターン520を回動させるために、休止期間(例えば、ロボット550が物体を持ち上げるように要求されないとき)まで、待機することができる。例えば、
図5Bは、ロボット550が、ロボット550がロボットタスクを実行していない休止期間中、カメラ570がキャリブレーションパターン520のキャリブレーション画像を取り込むのを可能にするために、カメラ570に面するようにキャリブレーションパターン520を動かすことができる状況を示す。
図5Bにおいて、ロボット550は、物体582A及び582Bの持ち上げをすでに終了している可能性があり、一方、物体582Cとロボット550のロボットハンド555との間の距離は規定された閾値を超える可能性がある。
【0035】
上記で言及されたように、場合によっては、制御回路111は、
図1又は
図6のカメラ170/670をそれぞれ制御して、休止期間を使用することなくキャリブレーション画像を取り込むことができる。こうした状況の一例は
図6A及び
図6Bに示されており、
図6A及び
図6Bは、方法400のステップ401及び他のステップを実行することができる別の環境例を提供する。
図6A及び
図6Bは、カメラ670及びロボット650と通信するロボット制御システム110を備えるロボット運用システム600(システム600とも呼ぶ)を示す。
図6Aは、システム600の側面図であり、
図6Bは、システム600の上面図である。カメラ670は、
図1、
図2又は
図3それぞれのカメラ170/270/370の一実施形態とすることができ、ロボット650は、
図1、
図2又は
図3それぞれのロボット150/250/350の一実施形態とすることができる。ロボット65
0は、ベース652と、ベース652に対して可動のロボットアームとを備えることができる。ロボットアームは、リンク654A~リンク654E等の1つ以上のリンクを含む。一実施形態では、リンク654A~654Eは、互いに回動可能に取り付けることができる。例えば、リンク654Aは、ロボットベース652に回動可能に取り付けることができる。残りのリンク654B~654Eは、複数のジョイントを介して互いに回動可能に取り付けることができる。一実施形態では、ベース652を使用して、ロボット650を、例えば取付枠又は取付面に取り付けることができる。ロボット650は、ロボット350と同様に操作することができる。
【0036】
図6A及び
図6Bの実施形態において、キャリブレーションパターン620は、ロボット650が物体682と相互作用することによってロボットタスクを実行している間であっても、常にカメラ670に向かって上方に面しているリンク654Eの部分に配置されている。一例では、物体は、パレットの上に積まれるか又パレットから降ろされる包装品(すなわち、パレットに載せられるか又はパレットから降ろされる包装品)とすることができる。ロボット650は、物体682を積み重ねるか又は積重ねから取り出すように構成されたデパレタイザーロボットとすることができ、したがって、
図6Bに示されるように、物体682と相互作用することによってロボットタスクを実行している間に、キャリブレーションパターン620をカメラ670に面した状態にしておくことができる。キャリブレーションパターン620は、ロボット650がロボット操作に従事しており休止していないときであっても、カメラ670に面しているため、ロボット制御システム110は、休止期間を使用することなくカメラ670を介してキャリブレーション画像を取り込むようにカメラ670を制御することができる。
【0037】
一実施形態において、ステップ401の第1のカメラキャリブレーションは、例えば、
図1、
図5A、
図5B、
図6A又は
図6Bのキャリブレーションパターン520/620を使用することによって、実行することができる。場合によっては、第1のカメラキャリブレーションは、ロボット操作を開始する前に実行される初期カメラキャリブレーションとすることができる。代替的には、第1のカメラキャリブレーションは、ロボット操作中に実行することができる。ロボット制御システム110は、キャリブレーションパターン(例えば、520/620)を
図5A、
図5B、
図6A又は
図6Bそれぞれのカメラ57
0/670の視野510/610(カメラ視野とも呼ぶ)内の様々な場所まで(例えば、動作コマンドを介して)動かすように、かつこうした場所でキャリブレーションパターン520/620の画像(キャリブレーションパターン520/620のキャリブレーション画像と呼ぶことができる)を取り込むように、例えばロボット550/650のロボットアームを制御することができる。その後、ロボット制御システム110は、キャリブレーションパターン520/620のキャリブレーション画像に基づき、カメラ(例えば、570/670)のためのカメラキャリブレーション情報を特定するように、第1のカメラキャリブレーションを実行することができる。ロボット制御システム110は、カメラ570/670とカメラ570/670のカメラキャリブレーション情報とに基づいて動くように、ロボット550/650を制御することができる。カメラキャリブレーション情報の精度は、ロボット550/650の動作の精度に影響を与える可能性がある。このため、ロボット制御システム110は、カメラ570/670を介して経時的に新たなキャリブレーション画像を取り込むようにカメラ570/670を制御することができ、そこでは、新たなキャリブレーション画像は、第1のカメラキャリブレーションを実行するために使用されたキャリブレーション画像より最近である。新たなキャリブレーション画像を使用して、最新であるカメラキャリブレーション情報をもたらすことができる、更なるカメラキャリブレーションを実行することができる。
【0038】
図4Aに戻ると、方法400はステップ403を更に含むことができ、そのステップでは、制御回路111は、カメラキャリブレーション情報に基づき、例えば、カメラキャリ
ブレーション情報に基づく第1の動作コマンドを、通信インターフェース(例えば、113)を介してロボット(例えば、550/650)に出力することによって、ロボット操作を実行するようにロボットアームの動作を制御する。例えば、制御回路111は、カメラキャリブレーション情報に基づく第1の動作コマンドを通信インターフェース(例えば、113)に出力することができ、通信インターフェース(例えば、113)は、ロボットアームがロボット操作(例えば、コンベヤベルトから物体を持ち上げること)を実行するように動くようにする第1の動作コマンドを、ロボットに通信するように構成されている。
【0039】
ステップ405において、制御回路111は、第1のカメラキャリブレーションの後、通信インターフェースを介して第2の動作コマンドをロボットに出力すること等により、カメラ視野(例えば、510/610)内で1つ以上の場所までキャリブレーションパターン(例えば、520/620)を動かすように、ロボットアームを制御する。例えば、第1のカメラキャリブレーションの後、制御回路111は、第2の動作コマンドを通信インターフェース113に出力することができ、通信インターフェース113は、ロボットアームがカメラ視野(例えば、510/610)内の1つ以上の場所までキャリブレーションパターンを動かすようにする第2の動作コマンドをロボットに通信するように構成されている。1つ以上の場所は、ランダムに選択することができ、又は規定された場所とすることができる。制御回路111は、さらに、キャリブレーションパターン(例えば、520/620)を1つ以上の場所の各々において、キャリブレーションパターンがカメラ(例えば、570/670)に可視であるように向けるように、ロボットアームを制御することができる。
【0040】
ステップ407において、制御回路111は、通信インターフェース(例えば、113)を介してカメラ(例えば、170/570/670)から1つ以上のキャリブレーション画像を受け取り、1つ以上のキャリブレーション画像は、それぞれ、キャリブレーションパターン(例えば、520/620)が1つ以上のそれぞれの場所にあるときにカメラ(例えば、170/570/670)によって取り込まれる(これは、1つ以上のキャリブレーション画像が1つ以上の場所においてそれぞれ取り込まれていると言うこともできる)。例えば、制御回路111は、通信インターフェース113から、1つ以上のキャリブレーション画像を受け取ることができ、通信インターフェース113は、カメラ170から1つ以上のキャリブレーション画像を受け取るように構成され、1つ以上のキャリブレーション画像は、キャリブレーションパターンが、カメラ視野内の1つ以上の場所それぞれにあるときにそれぞれ取り込まれる。1つ以上のキャリブレーション画像の各画像は、1つ以上の場所のそれぞれの場所において取り込むことができる。場合によっては、制御回路111は、通信インターフェース113を使用して、カメラ170から1つ以上のキャリブレーション画像を引き出すことができる。場合によっては、ステップ407は、制御回路111がカメラコマンドを生成し、通信インターフェース113を介してカメラコマンドをカメラ170に通信することを含むことができ、カメラコマンドにより、カメラ170は、1つ以上のキャリブレーション画像を取り込み、及び/又は、取り込んだ1つ以上の画像を通信インターフェース113に戻すように通信する。他の場合では、カメラは、1つ以上のキャリブレーション画像を、周期的に又はトリガー条件に応じて自動的に取り込み、1つ以上のキャリブレーション画像を通信インターフェース113に又は通信インターフェース113によってアクセス可能な記憶デバイスに自動的に通信することができる。
【0041】
例えば、
図5Bに示されるように、ロボット制御システム110の制御回路は、カメラ視野510内の1つ以上の場所までキャリブレーションパターン520を動かすようにロボット550のロボットアームを制御することができ、その結果、ロボット制御システム110は、カメラ570を介して、キャリブレーションパターン520が1つ以上の場所
それぞれにあることに対応して1つ以上のそれぞれのキャリブレーション画像を取り込むことができる。場合によっては、1つ以上の場所は複数の場所とすることができる。こうした場合、キャリブレーションパターン520が第1の場所にある間にカメラによってキャリブレーション画像が取り込まれた後、ロボット制御システム110は、キャリブレーションパターン520を第2の場所まで動かし、キャリブレーションパターン520が第2の場所にある間に別のキャリブレーション画像を取り込むことができる。キャリブレーション画像が取り込まれているとき、ロボット制御システム110は、キャリブレーションパターン520がカメラ570に面するように、キャリブレーションパターン520を動かすようにロボット550を制御することができる。例えば、ロボット制御システム110は、キャリブレーションパターン520がカメラ570に可視であるようにキャリブレーションパターン520を向けるように、ロボット550を制御することができる。
【0042】
図4Aに戻ると、方法400は、ステップ409を更に含むことができ、そのステップでは、制御回路111は、キャリブレーション画像を含む取り込まれた画像セットに1つ以上のキャリブレーション画像を追加する。一実施形態において、取り込まれた画像セットは、例えば、非一時的コンピューター可読媒体115又は他の任意の記憶デバイスに記憶された1組の画像とすることができる。
【0043】
場合によっては、取り込まれた画像セットは、固定サイズを有することができ、例えば、特定の最大数のキャリブレーション画像を含むことができる。例えば、固定サイズは27とすることができ、それにより、取り込まれた画像セットは、27個の直近で取り込まれたキャリブレーション画像等、厳密に27個のキャリブレーション画像を保持する。取り込まれた画像セットに対する固定サイズは、27以外の固定値に設定することができることが理解される。カメラキャリブレーションは、取り込まれた画像セットにおける画像のうちにいくつか又は全てを使用して実行することができる。こうしたシナリオでは、取り込まれた画像セットは、規定数の直近で取り込まれた画像をカバーするようにスライドするスライド窓として作用することができる。
【0044】
場合によっては、取り込まれた画像セットは、ゼロのサイズから開始することができ、キャリブレーション画像がセットに追加されるに従いサイズを増大させることができる。例えば、取り込まれた画像セットは、ステップ401において第1のカメラキャリブレーションが実行された後にリセットすることができる。取り込まれた画像セットは、キャリブレーション画像の全てをセットから除去する(例えば、削除する)ことによってリセットすることができ、その結果、ステップ409の開始時、取り込まれた画像セットはゼロのサイズを有する。この場合、取り込まれた画像セットは、キャリブレーション画像が追加されるに従いサイズを増大させることができ、取り込まれた画像セットにおけるキャリブレーション画像の総数を制限する規定された最大サイズ(例えば、27個のキャリブレーション画像)を有することができる。規定された最大サイズは、一実施形態では、後述される目標数に等しい可能性がある。例えば、目標数は、確実なカメラキャリブレーションを実行するためのキャリブレーション画像の最小数を示すことができる。目標数は、手動で又は動的に規定される値とすることができ、したがって、規定された目標数と呼ぶことができる。状況によっては、取り込まれた画像セットは、取り込まれた画像セットが規定最大サイズに達するまでカメラキャリブレーションを実行するために使用されない。取り込まれた画像セットが最大サイズに達すると、制御回路111は、セットにおける複数の最も古いキャリブレーション画像を、同数の直近のキャリブレーション画像が追加されたときに廃棄することができ、その結果、取り込まれた画像セットは、規定数の直近で取り込まれた画像を取り込むスライド窓として作用する。一実施形態では、制御回路111は、ステップ409の間等、取り込まれた画像セットにキャリブレーション画像が追加される度に、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数と等しいか否かを判断することができる。
【0045】
方法400は、ステップ411を更に含むことができ、そのステップでは、制御回路111は、取り込まれた画像セットにおけるキャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力する。例えば、ロボット制御システム110が第1のカメラキャリブレーションを実行した後、ロボット制御システム110は、或る期間にわたりキャリブレーション画像の取込みを継続するようにカメラ(例えば、570/670)を制御することができ、これらの取り込まれたキャリブレーション画像を取り込まれた画像セットに追加することができ、取り込まれた画像セットは、複数の直近で取り込まれたキャリブレーション画像を含むことができる。そして、ロボット制御システム110は、取り込まれた画像セットにおけるキャリブレーション画像に基づいて、第2のカメラキャリブレーションを実行することができる。第2のカメラキャリブレーションは、第1のカメラキャリブレーションに続くため、後続するカメラキャリブレーションと呼ぶことができる。
【0046】
一実施形態において、第2のカメラキャリブレーションは、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数(例えば、27個のキャリブレーション画像)に達したときにのみ実行することができる。例えば、規定された目標数は、初期カメラキャリブレーションに続く各カメラキャリブレーションに対して、又はより一般的には第1のカメラキャリブレーションに続く各カメラキャリブレーションに対して、十分な数のキャリブレーション画像を使用することができることを確実にするように、規定することができる。例えば、規定された目標数は、高精度を達成するように各カメラキャリブレーションに対して使用されるべきキャリブレーション画像の最小数を表すことができる。
【0047】
一実施形態において、制御回路111は、取り込まれた画像セットに、或る数の、カメラ(例えば、170/570/670)によって直近で取り込まれた1つ以上のキャリブレーション画像を追加し、取り込まれた画像セットから、等しい数の、カメラ(例えば、170/570/670)によって最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように構成される。これは、例えば、取り込まれた画像セットにおけるキャリブレーション画像の数が、例えば目標数によって特定されるように、その最大サイズ又は固定サイズに等しい場合に起こる可能性があり、その結果、最新のキャリブレーション画像がセットにおける最も古いキャリブレーション画像に置き換わる。こうした実施形態では、第2のカメラキャリブレーションが実行されるとき、取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい。一実施形態では、制御回路111は、いずれのキャリブレーション画像が取り込まれた画像セットにあるかを特定するリストを記憶することができる。例えば、リストは、取り込まれた画像セットにおけるそれぞれのキャリブレーション画像の画像識別子(例えば、ファイル名)を含むことができる。キャリブレーション画像が取り込まれた画像セットに追加されると、制御回路111は、キャリブレーション画像の画像識別子をリストに追加するように構成することができ、それにより、取り込まれた画像セットにキャリブレーション画像を有効に追加することができる。この例では、制御回路111はまた、リストから、取り込まれた画像セットにおける最も古いキャリブレーション画像に対応する別の画像識別子を除去することもでき、それにより、取り込まれた画像セットから最も古いキャリブレーション画像を有効に除去することができる。
【0048】
上記で言及されたように、制御回路111は、ロボット操作中に休止期間を検出し、ロボットアームが、休止期間中に1つ以上の場所にキャリブレーションパターン(例えば、160/520/620)を動かすように制御されるように、休止期間中に第2の動作コマンドを出力するように構成することができ、1つ以上のそれぞれのキャリブレーション
画像は、休止期間中に1つ以上の場所で取り込まれる。例えば、
図5Aに示されるように、ロボット制御システム110は、第2の物体582Bと第3の物体582Cとの間に大きい間隙があるため、第2の物体582Bに関連するロボットタスクと第3の物体582Cに関連するロボットタスクとの間の休止期間を検出することができる。一例では、ロボット制御システム110は、コンベヤベルト573上の上流のいずれの物体もロボット550によって到達可能ではない、及び/又はロボット制御システム110が、ロボット550とコンベヤベルト573上の上流の最も近い物体(例えば、第3の物体582C)との間の距離が特定の閾値を超える休止期間を検出することができる。
図5Bに示されるように、ロボット制御システム110は、休止期間中にキャリブレーションパターン520を或る場所まで動かし、休止期間中にその場所でキャリブレーション画像(例えば、第1のキャリブレーション画像)を取り込むように、ロボット550のロボットアームを制御することができる。休止期間に更なる時間が残っている場合、ロボット制御システム110は、キャリブレーションパターン520を別の場所まで動かすようにロボット550のロボットアームを制御し、別のキャリブレーション画像(例えば、第2のキャリブレーション画像)を取り込むようにカメラ570を制御することができる。ロボットアームは、キャリブレーションパターン520を場所の各々においてカメラ570に可視であるように向けるように制御することができる。
【0049】
一実施形態において、上記休止期間は第1の休止期間とすることができ、制御回路111は、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断するように構成することができる。こうした実施形態では、制御回路111は、第1の休止期間の後、ロボット操作中に第2の休止期間を検出するように構成することができ、第2の休止期間が規定されたキャリブレーション期間以上の長さであるか否かを判断するように更に構成することができる。一実施形態において、規定されたキャリブレーション期間は、第2のカメラキャリブレーションを完了するために必要な時間の量を示すことができる。上述したように、第2のカメラキャリブレーションを完了することは、カメラの固有パラメーター、及び/又はカメラとロボットとの間の関係を記述する変換関数(例えば、行列)を求めるように計算を実行することを含むことができる。規定されたキャリブレーション期間は、こうした計算を実行するために必要な時間の量を示すことができる。第2の休止期間が規定されたキャリブレーション期間以上の長さであるとの判断に応じて、制御回路111は、第2の休止期間において第2のカメラキャリブレーションを完了するように構成することができる。
【0050】
一方、第2の休止期間が規定されたキャリブレーション期間より短いという判断に応じて、制御回路111は、第2のカメラキャリブレーションの完了を後続する(例えば、第3の)休止期間まで延期するように構成することができる。場合によっては、第2の休止期間中はそれ以上のキャリブレーション画像は取り込まれない。他の場合では、制御回路111は、第2の休止期間における残りの量の時間中、通信インターフェース113を介してカメラ(例えば、170/570/670)から1つ以上の追加のキャリブレーション画像を受け取る(例えば、引き出す)ことができ、カメラ(例えば、170/570/670)は、(例えば、カメラコマンドに応じて)第2のカメラキャリブレーションのために第2の休止期間から最近のキャリブレーション画像を提供するように、カメラ視野(例えば、510/610)内の1つ以上の追加の場所において1つ以上の追加のキャリブレーション画像をそれぞれ取り込むように構成される。制御回路111は、1つ以上の追加の画像を取り込まれた画像セットに追加することにより、かつ、更新された取り込まれた画像セットを生成するように、カメラ(例えば、170/570/670)によって最も古くに取り込まれた等しい数の1つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することができる。制御回路111は、更新された取り込まれた画像セットを用いて第2のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することがで
きる。
【0051】
上記で言及されたように、キャリブレーション画像が取り込まれ、取り込まれた画像セットに追加されるに従い、取り込まれた画像セットのサイズが増大する可能性がある。取り込まれた画像セットのサイズが、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が上述した規定された目標数に等しいことを示す場合、第2のカメラキャリブレーションに対して、取り込まれた画像セットにおいて十分な数のキャリブレーション画像が利用可能である。一実施形態において、第2のカメラキャリブレーションを完了することは、第2のカメラキャリブレーションに対して上述した計算又は他のステップを実行することを含むことができ、これらの計算又は他のステップは、少なくとも規定されたキャリブレーション期間に等しい量の時間を必要とする可能性がある。このため、この実施形態において、第2のカメラキャリブレーションを完了するために、少なくとも規定されたキャリブレーション期間程度の長さである休止期間が必要とされる。したがって、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達したと判断した後、後続する(例えば、第3の)休止期間が規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム110は、後続する休止期間中に第2のカメラキャリブレーションを実行することができる。
【0052】
一方、後続する(例えば、第3の)休止期間が規定されたキャリブレーション期間より短い場合、ロボット制御システム110は、後続する休止期間中に第2のカメラキャリブレーションを完了しないように判断することができ、代わりに、後続する(例えば、第3の)休止期間中に追加のキャリブレーション画像を取り込むことができる。そして、取り込まれた画像セットは、取り込まれた画像セットに追加のキャリブレーション画像を追加することにより、かつ、取り込まれた画像セットから等しい数の最も古いキャリブレーション画像(すなわち、最も古くに取り込まれたキャリブレーション画像)を除去することにより更新され、その結果、更新された取り込まれた画像セットは、規定された目標数に等しい、同じサイズを維持する。ロボット制御システム110が、規定されたキャリブレーション期間以上の長さの持続時間を有する別の(例えば、第4の)休止期間を検出すると、ロボット制御システム110は、その(例えば、第4の)休止期間中に第2のカメラキャリブレーションを完了することができる。
【0053】
一例として、規定された目標数が10であると想定すると、取り込まれた画像セットSのサイズは、10個以下のキャリブレーション画像に限定することができる。この例では、10個のキャリブレーション画像I1~I10がカメラによって取り込まれ、ここで、I1は最も早い時期に取り込まれ、I10は直近で取り込まれる。取り込まれた画像セットSに10個の画像を追加することができる。2つの追加のキャリブレーション画像I11及びI12が取り込まれる場合、以下に示されるように、2つの追加のキャリブレーション画像I11及びI12は取り込まれた画像セットSに追加され、最も早い時期に取り込まれた2つのキャリブレーション画像I1及びI2が、取り込まれた画像セットSから除去され、更新された取り込まれた画像セットSが生成される。
取り込まれた画像セットS=[I1,I2,I3,I4,I5,I6,I7,I8,I9,I10]
追加のキャリブレーション画像=[I11,I12]
更新された取り込まれた画像セットS=[I3,I4,I5,I6,I7,I8,I9,I10,I11,I12]
【0054】
一実施形態において、上述した休止期間は、第1の休止期間とすることができ、制御回路111は、第1の休止期間の後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断するように構成することができる。こうした実施形態では、制御回路111は、第2の休止期間を待機することができ、その
結果、カメラ(例えば、170/570/670)を介して更なるキャリブレーション画像を取り込み、通信インターフェース113を介して制御回路111に通信することができる。より具体的には、制御回路111は、第1の休止期間に続く第2の休止期間を検出し、第2の休止期間中に通信インターフェース113を介してカメラ170/570/670から1つ以上の追加のキャリブレーション画像を受け取るように構成することができ、カメラ170/570/670は、キャリブレーションパターンが、カメラ視野510/610内の1つ以上の追加の場所にそれぞれ配置されたときに1つ以上の追加のキャリブレーション画像を取り込むように構成されている。制御回路111は、更新された取り込まれた画像セットを生成するように、取り込まれた画像セットに1つ以上の追加のキャリブレーション画像を追加するように構成することができる。第2の休止期間において、取り込まれた画像セットに1つ以上の追加のキャリブレーション画像が追加されて、更新された取り込まれた画像セットが生成された後、制御回路111は、更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したか否かを判断するように更に構成することができる。更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したという判断に応じて、制御回路111は、第2の休止期間における残りの時間が、第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断するように構成することができる。制御回路111は、第2の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第2のカメラキャリブレーションを実行することができる。第2の休止期間における残りの時間が規定されたキャリブレーション期間より短い場合、制御回路111は、第2のカメラキャリブレーションの完了を後続する休止期間まで延期することができ、第2の休止期間における残りの時間を使用して、追加のキャリブレーション画像を取り込むようにカメラを制御し、又はより一般的には、カメラ170/570/670から追加のキャリブレーション画像を受け取ることができる。
【0055】
一実施形態において、ロボット制御システム110の制御回路111は、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断した場合、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達するまで、休止期間又は後続する休止期間(複数の場合もある)の間であっても、カメラ(例えば、170/570/670)を制御して、更なるキャリブレーション画像を取り込み(又は、より一般的には、カメラ170/570/670から更なるキャリブレーション画像を受け取り)、それらを取り込まれた画像セットに追加し続けることができる。
【0056】
一例では、
図5A又は
図5Bにおいて、ロボット制御システム110が、第2の休止期間中にカメラ570を介して追加のキャリブレーション画像を取り込み、取り込まれた画像セットに追加のキャリブレーション画像を追加して、更新された取り込まれた画像セットを生成すると、更新された取り込まれた画像セットにおけるキャリブレーション画像の総数は、第2の休止期間が終了する前に、規定された目標数に達する可能性がある。こうしたシナリオでは、ロボット制御システム110は、第2の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるか否かを判断することにより、第2の休止期間において第2のカメラキャリブレーションを実行するために十分な時間が残っているか否かを判断することができる。第2の休止期間における残りの時間が、規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム110は、第2の休止期間における残りの時間の間に、第2のカメラキャリブレーションを実行することができる。
【0057】
一方、第2の休止期間における残りの時間が規定されたキャリブレーション期間より短いという判断に応じて、制御回路111は、第2の休止期間における残りの時間中に、通
信インターフェース113を介してカメラ570から1つ以上の後続する追加のキャリブレーション画像を受け取るように更に構成することができ、カメラ570は、カメラ視野510内の1つ以上の後続する追加の場所において1つ以上の後続する追加のキャリブレーション画像をそれぞれ取り込むように構成されている。制御回路111は、1つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ最も古くに取り込まれた、取り込まれた画像セットにおける等しい数のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように更に構成することができる。制御回路111は、更新された取り込まれた画像セットを用いて第2のカメラキャリブレーションを完了するように、後続する休止期間まで待機するように構成することができる。例えば、追加のキャリブレーション画像が、第2の休止期間が終了する前に、更新された取り込まれた画像セットにおける更新画像の総数を規定された目標数にするように取り込まれる場合、第2の休止期間における残りの時間は、規定されたキャリブレーション期間より短い可能性がある。そして、ロボット制御システム110は、第2のカメラキャリブレーションの完了を後続する(例えば、第3の)休止期間まで延期することができ、代わりに、第2の休止期間の残りの時間を使用して、より最近のキャリブレーション画像を取り込むことができる。取り込まれた画像セットは、取り込まれた画像セットにより最近のキャリブレーション画像を追加することにより、かつ等しい数の最も古いキャリブレーション画像を除去することにより、更新される。ロボット制御システム110は、第2の休止期間の後、規定されたキャリブレーション期間以上の長さの後続する休止期間を検出すると、この後続する休止期間の間に第2のカメラキャリブレーションを実行することができる。
【0058】
一実施形態では、制御回路111は、取り込まれた画像セットに新たな構成画像が追加される度に、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断するように構成することができる。取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるという判断に応じて、制御回路111は、取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持するように構成することができる。
【0059】
図4Bに戻ると、方法400はステップ451を更に含むことができ、そのステップでは、制御回路111は、(第1のカメラキャリブレーションから生成された)カメラキャリブレーション情報と(第2のカメラキャリブレーションから生成された)更新されたカメラキャリブレーション情報との偏差量を求める。例えば、偏差量は、第1のカメラキャリブレーションと第2のカメラキャリブレーションとの間でカメラ570/670にどれくらいの偏差があったかを示すことができる。一実施形態では、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む。例えば、偏差量は、第1のカメラキャリブレーションから得られる第1の組のキャリブレーションパラメーター値と第2のカメラキャリブレーションから得られる第2の組のキャリブレーションパラメーター値との差に基づくことができる。一例として、キャリブレーションパラメーターは、例えば、ひずみパラメーター、射影行列、及び/又はカメラ(例えば、570/670)とロボット(例えば、550/650)との関係を記述する変換関数とすることができる。こうした例では、カメラキャリブレーション情報は、キャリブレーションパラメーターに対して第1のキャリブレーションパラメーター値又は第1の組のキャリブレーションパラメーター値を示すことができ、更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対して第2のキャリブレーションパラメーター値又は第2の組のキャリブレーションパラメーター値を示すことができる。カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差量は、第1のキャリブレーションパラメーター値と第2のキャリブレーションパラメーター値との差に基づくか、又は、第1の組のキャリブレーショ
ンパラメーター値と第2の組のキャリブレーションパラメーター値との間のそれぞれの差に基づくことができる。別の例では、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパターン520/620のパターン要素のそれぞれの座標に基づくことができる。こうした例では、偏差量は、パターン要素が第1のカメラキャリブレーションに対して得られるキャリブレーション画像に現れる1組の座標と、パターン要素が第2のカメラキャリブレーションによって得られるキャリブレーション画像に現れる1組の座標との全体的な差に基づくことができる。
【0060】
図4Bに戻ると、方法400はステップ453を更に含むことができ、そのステップでは、制御回路111は、偏差量が規定された閾値(規定された偏差閾値とも呼ぶことができる)を超えるか否かを判断する。例えば、制御回路111は、偏差量を規定された偏差閾値と比較して、偏差が規定された閾値を超えるか否かを判断することができる。一実施形態では、規定された偏差閾値は、上述した更新されたカメラキャリブレーション情報が、上述したカメラキャリブレーション情報(例えば、基準カメラキャリブレーション情報)に対して過度に変化した場合を示すことができる。例えば、基準カメラキャリブレーション情報と更新されたキャリブレーション情報との間の大きい変化は、温度が管理されておらず、温度変化がカメラキャリブレーション情報に著しい変化をもたらしている外部環境等、又は、カメラ(例えば、170/570/670)が取付構造体に確実に取り付けられておらず、外力によってもたらされるカメラの移動が、カメラキャリブレーション情報の著しい変化をもたらしている状況等、カメラ(例えば、170/570/670)における外部環境の望ましくない状態を反映する可能性がある。一実施形態では、規定された偏差閾値は、更新されたカメラキャリブレーション情報が、カメラキャリブレーション情報(例えば、基準カメラキャリブレーション情報)から過度に急速に変化した場合を示すことができる。例えば、ユーザーが、カメラ(例えば、170/570/670)又はロボット(例えば、150/550/650)にぶつかり、カメラ又はロボットのいずれかの位置を急にずらした場合、この急なずれは、カメラキャリブレーション情報における急なかつ著しい変化に反映される可能性がある。こうした実施形態において、規定された偏差閾値は、規定された変化率である値を有することができる。
【0061】
方法400は、ステップ455を更に含むことができ、そのステップでは、制御回路111は、偏差量が規定された閾値を超えたという判断に応じて、偏差量が規定された閾値を超えたことを示す通知信号を出力する。一実施形態において、通知は、ユーザーインターフェースデバイス180等のユーザーインターフェースデバイスに出力することができる。一実施形態において、規定された閾値は、カメラの周囲の環境における温度に基づいて調整することができる。例えば、温度が、規定された正常動作温度範囲内(例えば、室温の10度以内)であるとき、規定された閾値は第1の値を有するように規定することができる。温度が、正常動作温度範囲外である場合、規定された閾値は、第1の値より低い第2の値であるように規定することができる。
【0062】
一実施形態において、規定された閾値を超える偏差量は、カメラ570/670に関連する特性が初期状態から過度に外れた可能性があるため、ロボット操作が継続する場合、望ましくない誤差が発生する可能性があることを示すことができる。したがって、制御回路111は、偏差量が規定された閾値を超えることを示す通知信号を出力し、その結果、ロボット550/650のオペレーターは、ロボット操作が継続する前に偏差に対処することができる。一方、偏差量が規定された閾値を超えない場合、制御回路111は、通知信号を出力することなくロボット操作を継続することができる。さらに、偏差量が規定された閾値を超えない場合、制御回路111は、(例えば、取り込まれた画像セットから全ての画像を除去することにより)取り込まれた画像セットをリセットし、別の(例えば、第3の)カメラキャリブレーションに対して使用されるように新たなキャリブレーション画像の取込みを開始することができる。
【0063】
一実施形態において、ロボットアームがキャリブレーション画像を取り込むようにキャリブレーションパターン(例えば、520/620)を動かす1つ以上の場所は、複数の場所を含むことができ、複数の場所の各々は、カメラ(例えば、570/670)に対して凹形である仮想球の表面上に配置された場所である。こうした実施形態において、制御回路111は、キャリブレーションパターン(例えば、520/620)を、複数の場所の各場所において仮想球の表面に対して接するように動かすように、ロボットアームを制御するように更に構成することができる。例えば、
図7A及び
図7Bに示されるように、ロボット制御システム110は、キャリブレーションパターン520を場所710A~710Iまで動かし、場所710A~710Iの各々においてそれぞれのキャリブレーション画像を取り込むように、ロボット550のロボットアームを制御することができる。場所710A~710Iは、カメラ570の視野510内の複数の仮想球の間で分割することができる。例えば、場所710A及び710Bは、第1の仮想球720の第1の球面721上に配置することができ、場所710A及び710Bを含む第1の球面721は、カメラ570の視野510内に(部分的に又は完全に)ある。別の例として、場所710C、710D及び710Eは、第2の仮想球730の第2の球面731上に配置することができ、場所710C、710D及び710Eを含む第2の球面731は視野510内にある。更なる例において、場所710F、710G、710H及び710Iは、第3の仮想球740の第3の球面741上に配置することができ、場所710F、710G、710H及び710Iを含む第3の球面741は、視野510内にある。
図7A及び
図7Bに示されるように、第1の球面721、第2の球面731及び第3の球面741は、それぞれ、カメラ570に対して凹形である。
図7A及び
図7Bにおける例は、3つの球に基づく3つの球面を示すが、場所を配置することができる異なる球面の数は、3つより多くすることも少なくすることもできる。一実施形態において、カメラ570は、仮想球720、730及び740の各々の中心とすることができる。
【0064】
一実施形態において、
図7A及び
図7Bに示されるように、キャリブレーションパターン520が或る場所まで動かされると、ロボット制御システム110は、その場所が配置されている球面に対して接するようにキャリブレーションパターン520を位置決めするように、ロボット550のロボットアームを制御することができる。例えば、
図7Bは、キャリブレーションパターン520が、場所710Dにおいて第2の球面731に対して接することを示す。より詳細には、キャリブレーションパターン520は、平坦面上に(例えば、ステッカー上に)配置することができ、キャリブレーションパターン520の平坦面は、場所710Dにおいて第2の球面731に対して接することができる。
【0065】
一実施形態において、制御回路111は、キャリブレーションパターン(例えば、520)が或る場所まで動かされると、キャリブレーションパターン(例えば、520)を、カメラの真正面を向くように動かすように、ロボットアームを制御するように構成される。例えば、
図7Aに示されるように、ロボット制御システム110は、キャリブレーションパターン520が場所710Dまで動かされるとき、キャリブレーションパターン520をカメラ570の真正面を向くように動かすように、ロボット550のロボットアームを制御することができる。この例において、ロボット制御システム110は、キャリブレーションパターン520がカメラ570の真正面を向くように回動するように、ロボットハンド555を制御することができる。場合によっては、キャリブレーションパターン520は、カメラの視野510において球面(例えば、第1の球面721、第2の球面731、第3の球面741)に対して接することにより、カメラ570の真正面を向くことができる。キャリブレーションパターン520がカメラ570の真正面を向くと、カメラ570は、キャリブレーションパターン520を正面から撮影することができる可能性があり、その結果、キャリブレーションパターン520の結果として得られる画像において斜視効果(perspective effect)がないか又は少なくなる。
【0066】
図8は、カメラキャリブレーション更新プロセスが実行される例示的な時系列800を示す。一実施形態において、時系列800は、
図5A及び
図5Bのシステム500によって実行される操作に関連することができる。時系列800は、キャリブレーション期間811で開始することができ、それは、ロボット操作が開始する前に発生することができる。例えば、
図1A、
図1B又は
図1Cのロボット制御システム110は、第1のカメラキャリブレーションを実行して、カメラ570に対するカメラキャリブレーション情報を特定することができる。第1のカメラキャリブレーションが完了した後、ロボット操作はロボットタスク期間813で開始する。
【0067】
ロボットタスク期間813中、ロボット制御システム110は、1つ以上のロボットタスクを実行するように(
図5A及び
図5Bからの)ロボット550を制御することができる。
図5A及び
図5Bに関して上記で言及されたように、システム500は、ロボットタスク期間813中にいかなるキャリブレーション画像も取り込むことができない可能性があり、休止期間が検出されるまで、キャリブレーション画像を取り込むのを待機しなければならない可能性がある。
【0068】
図8に示されるように、ロボット制御システム110は、タスク期間813の後、ロボット550がロボットタスクを実行していない休止期間815を検出することができる。休止期間815中、ロボット制御システム110は、カメラ570を介して、1つ以上の場所において(例えば、第1の組の6つの場所において)それぞれ、
図5A及び
図5Bのキャリブレーションパターン520の1つ以上のキャリブレーション画像を取り込み、取り込まれた画像セットにこれらのキャリブレーション画像を追加する。
図8の例において、キャリブレーション画像I
1~I
6は、休止期間815中に取り込まれ、取り込まれた画像セットSに追加される。
【0069】
期間815が終了した後、タスク期間817の間、ロボット制御システム110は、1つ以上のロボットタスクを実行するようにロボット550の制御を再開する。タスク期間817中、システム500は、いかなるキャリブレーション画像も取り込むことができない可能性がある。キャリブレーション期間817の後、ロボット制御システム110は、この例では、ロボット550がロボットタスクを実行していない休止期間819を検出する。休止期間819の間、ロボット制御システム110は、他の第2の組の4つの場所においてそれぞれ、キャリブレーションパターン520のキャリブレーション画像I7~I10を取り込む。取り込まれた画像I7~I10は、取り込まれた画像セットSに追加される。その結果、取り込まれた画像セットSは、第2の休止期間819の後、I1~I10を含む。一実施形態において、規定された目標数は10に等しい場合がある。取り込まれた画像セットSは、このとき、10個のキャリブレーション画像を有するため、ロボット制御システム110は、第2のカメラキャリブレーションを実行する用意ができている可能性がある。しかしながら、この第2のカメラキャリブレーションは、第2の休止期間819がすでに経過し又は略経過している可能性があるため、後続する休止期間(例えば、827)まで延期することができる。
【0070】
休止期間819の後、ロボット制御システム110は、ロボットタスク期間821中に1つ以上のロボットタスクを実行するようにロボット550の制御を再開する。ロボットタスク期間後、ロボット制御システム110は、ロボット550がロボットタスクを実行していない休止期間823を検出することができる。ロボット制御システム110は、さらに、休止期間823が規定されたキャリブレーション期間より短いと判断し、したがって、休止期間823中に第2のカメラキャリブレーションを完了するために計算又は他のステップを実行しないと決定する。代わりに、ロボット制御システム110は、第2のカメラキャリブレーションを完了するために後続する休止期間(例えば、休止期間827)
を待機することができる。場合によっては、ロボット制御システム110は、それ以上キャリブレーション画像を取り込むことなく、休止期間823が経過するのを可能にすることができる。代替的に、
図8に示されるように、ロボット制御システム110は、休止期間823中に追加のキャリブレーション画像I
11及びI
12を取り込み、取り込まれた画像セットSにそれらを追加することができる。取り込まれた画像セットSにおけるキャリブレーション画像の総数が、キャリブレーション画像の10という規定された目標数にすでに達しているため、ロボット制御システム110は、取り込まれた画像セットSから、取り込まれた画像セットSにおける等しい数の最も古いキャリブレーション画像を除去することができる。より具体的には、この実施形態において、ロボット制御システム110は、取り込まれた画像セットSにキャリブレーション画像I
11及びI
12の2つの新たに取り込まれた事例が追加されたため、取り込まれた画像セットSからキャリブレーション画像の2つの最も古い事例I
1及びI
2を除去することができる。その結果、取り込まれた画像セットSは、このとき、キャリブレーション画像I
3~I
12を含む。
【0071】
図8に示されるように、休止期間823にロボットタスク期間825が続き、その後、別の休止期間827が続くことができる。ロボット制御システム110は、この休止期間827が、規定されたキャリブレーション期間以上の長さの持続時間を有すると判断することができ、したがって、休止期間827中に第2のカメラキャリブレーションを完了するために必要な計算又は他のステップを実行するように決定する。休止期間827中、ロボット制御システム110は、第2のカメラキャリブレーションを実行して、取り込まれた画像セットにおけるキャリブレーション画像に基づいて、更新されたカメラキャリブレーション情報を特定する。この例において、第2のカメラキャリブレーションは、取り込まれた画像セットに含まれるキャリブレーション画像I
3~I
12に基づいて実行される。第2のカメラキャリブレーションが完了した後、ロボット制御システム110は、第1のカメラキャリブレーションからのカメラキャリブレーション情報と第2のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求める。この例において、偏差量が規定された閾値を超えないため、ロボット制御システム110は、タスク期間829中にロボットタスクを実行することにより、ロボット操作を継続することができる。
【0072】
図9は、
図4A、
図4B、
図5A、
図5B及び
図8に対して上記で論じられた特徴を反映するカメラキャリブレーション更新プロセスを示すフロー図例900を示す。フロー
図900のステップは、例えば、
図5A及び
図5Bのシステム500によって実行することができる。ステップ901において、
図1A、
図1B又は
図1Cのロボット制御システム110は、
図5A及び
図5Bのカメラ570の第1のカメラキャリブレーションを実行して、カメラ570のカメラキャリブレーション情報を特定する。第1のカメラキャリブレーションの後、ロボット制御システム110は、第1のカメラキャリブレーションの後にロボット操作を開始することができる。
【0073】
ステップ903において、ロボット制御システム110は、上記で論じられたように、ロボット操作中に休止期間を検出する。ステップ905において、休止期間中、ロボット制御システム110は、カメラ570の
図5A及び
図5Bのカメラ視野510内の1つ以上の場所まで、
図5A及び
図5Bのキャリブレーションパターン520を動かすように、
図5A及び
図5Bのロボット550を制御し、1つ以上の場所においてカメラ570を介して1つ以上のそれぞれのキャリブレーション画像を取り込む。取り込まれたキャリブレーション画像は、取り込まれた画像セットに追加することができる。一実施形態において、取り込まれた画像セットは、ステップ905の開始時、取り込まれたキャリブレーション画像のゼロ事例を有することができ、したがって、ステップ905の開始時はゼロのサイズを有することができる。
【0074】
ステップ907において、ロボット制御システム110は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したか否かを判断する。取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達した場合、ロボット制御システム110は、ステップ909において、休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるか否かを判断する。規定されたキャリブレーション期間は、追加のカメラキャリブレーション(例えば、第2のカメラキャリブレーション)を完了するために必要な時間の量を示すことができる。休止期間における残りの時間が規定されたキャリブレーション期間以上の長さである場合、ロボット制御システム110は、ステップ919において、追加のカメラキャリブレーションを実行する。
【0075】
ステップ909に戻ると、休止期間における残りの時間が規定されたキャリブレーション期間より短い場合、ロボット制御システム110は、その期間において追加のカメラキャリブレーションを完了しない。代わりに、ステップ911において、休止期間における残りの時間中に、ロボット制御システム110は、カメラ570を介して、新たなキャリブレーション画像を取り込み、取り込まれた画像セットにこれらの新たなキャリブレーション画像を追加することにより、かつ、等しい数の、カメラ570によって最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持することにより、取り込まれた画像セットを更新する。ロボット制御システム110は、911の後に休止期間が終わった後にロボットタスクの実行を再開することができる。
【0076】
ステップ913において、ロボット制御システム110は、ロボット操作中に追加の休止期間を検出しようとする。追加の休止期間が検出されると、ロボット制御システム110は、ステップ915において、追加の休止期間が規定されたキャリブレーション期間以上の長さであるか否かを判断することができる。追加の休止期間が規定されたキャリブレーション期間より短い場合、ロボット制御システム110は、ステップ917において、カメラ570を介して、新たなキャリブレーション画像を取り込み、取り込まれた画像セットにこれらの新たなキャリブレーション画像を追加することにより、かつ、等しい数の、カメラ570によって最も古くに取り込まれたキャリブレーション画像を除去して、取り込まれた画像セットにおけるキャリブレーション画像の総数を規定された目標数で維持することにより、取り込まれた画像セットを更新する。ロボット制御システム110は、ステップ913に戻り、キャリブレーション期間以上の長さである持続時間を有する後続する休止期間を待機することができる。
【0077】
ステップ907に戻ると、ロボット制御システム110は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が目標数に達していないと判断した場合、ステップ921においてロボット操作中に追加の休止期間を検出しようとする。追加の休止期間が検出されると、ロボット制御システム110は、カメラ570のカメラ視野510内の1つ以上の場所において1つ以上のキャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加することができる。
【0078】
ステップ925において、ロボット制御システム110は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したか否かを再び判断することができる。ステップ925において、ロボット制御システム110は、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達していないと判断した場合、ステップ921に戻り、更なるキャリブレーション画像を取り込むために、後続する休止期間を待機することができる。ロボット制御システム110が、ステップ925において、取り込まれた画像セット内の取り込まれたキャリブレーション画像の総数が規定された目標数に達したと判断した場合、プロセスは、ステップ
915に進むことができ、ロボット制御システム110は、追加の休止期間における残りの時間が、規定されたキャリブレーション期間以上の長さであるか否かを判断する。
【0079】
ステップ915において、ロボット制御システム110が、現休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであると判断した場合、プロセスはステップ919に進むことができる。ステップ919において、ロボット制御システム110は、追加のカメラキャリブレーション(例えば、第2のカメラキャリブレーション)を実行する。
【0080】
ロボット制御システム110は、ステップ919において追加のキャリブレーションを実行した後、ステップ927において、第1のカメラキャリブレーションのカメラキャリブレーション情報と追加のキャリブレーションの更新されたカメラキャリブレーション情報との間の偏差量を求め、偏差量が規定された閾値を超えたか否かを判断することができる。偏差量が規定された閾値を超えた場合、ロボット制御システム110は、ステップ929において(例えば、ユーザーインターフェースデバイス180に)通知を出力する。場合によっては、ロボット制御システム110は、こうした判断に応じてロボット操作を停止又は一時停止することができる。一方、偏差量が規定された閾値を超えない場合、ロボット制御システム110は、ステップ932において、取り込まれた画像セットをリセットすることができ、ステップ903に戻って、キャリブレーション画像の新たな組を取り込むために休止期間を検出する。
【0081】
図6A及び
図6Bに関して上記で言及されたように、本開示のいくつかの実施形態は、休止期間を使用することなく、又は休止期間があるか否かに関わらず、キャリブレーション画像を取り込むことができる。
図10は、こうした実施形態に対する例示的な時系列1000を示す。時系列1000は、
図6A及び
図6Bのシステム600に対するシナリオ例を反映することができる。時系列1000はキャリブレーション期間1011で開始することができ、それは、ロボット操作が開始する前に発生することができる。キャリブレーション期間1011において、
図1A、
図1B又は
図1Cのロボット制御システム110は、第1のカメラキャリブレーションを実行して、
図6Aのカメラ670に対するカメラキャリブレーション情報を特定することができる。
【0082】
第1のカメラキャリブレーションが完了した後、ロボット操作は、タスク期間1013で開始する。ロボット操作中、ロボット制御システム110は、ロボット650が休止期間1015、1019、1023中にロボットタスクを実行しない一方で、タスク期間1013、1017、1021及び1025中にロボットタスクを実行するように、
図6A及び
図6Bのロボット650を制御する。
【0083】
例示的な時系列1000において、ロボット制御システム110は、休止期間中にキャリブレーション画像を取り込むために休止期間を待機する必要はない。上記で論じられたように、
図6A及び
図6Bのキャリブレーションパターン620は、ロボット650がロボットタスクを実行している間であっても、定期的にカメラ670に面しているように、ロボット650の上に配置されているため、ロボット制御システム110は、ロボット操作中はいつでもキャリブレーション画像を取り込むことができる。したがって、期間1031中、ロボット制御システム110は、キャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加する。期間1031は、ロボットタスク期間(複数の場合もある)のみ、休止期間(複数の場合もある)のみ、又はそれらの任意の組合せを含むことができる。期間1031中、取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム110は、第2のカメラキャリブレーションを実行して、取り込まれたキャリブレーション画像に基づき、更新されたカメラキャリブレーション情報を特定する。
さらに、ロボット制御システム110は、第1のカメラキャリブレーションからのカメラキャリブレーション情報と第2のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例において、偏差量が規定された閾値を超えないため、ロボット制御システム110は、取り込まれた画像セットにおいて全てのキャリブレーション画像を除去することにより、取り込まれた画像セットをリセットし、期間1033に進む。別の実施形態において、ロボット制御システム110は、期間1031においてリセットを実行せず、その結果、取り込まれた画像セットは、規定された数の直近で取り込まれたキャリブレーション画像を使用して後続する(例えば、第3の)カメラキャリブレーションを実行する、スライド窓として作用することができる。
【0084】
期間1033中、ロボット制御システム110は、別の組のキャリブレーション画像を取り込み、取り込まれた画像セットに取り込まれたキャリブレーション画像を追加する。期間1031と同様に、期間1033は、ロボットタスク期間(複数の場合もある)のみ、休止期間(複数の場合もある)のみ、又はそれらの組合せを含むことができる。取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム110は、別の(例えば、第3の)カメラキャリブレーションを実行して、期間1033からの取り込まれたキャリブレーション画像に基づいて更新されたカメラキャリブレーション情報を特定する。ロボット制御システム110は、第1のカメラキャリブレーションからのカメラキャリブレーション情報と期間1033の第3のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例では、偏差量が規定された閾値を超えないため、ロボット制御システム110は、取り込まれた画像セットにおいてキャリブレーション画像を除去することにより、取り込まれた画像セットをリセットし、期間1035に進む。
【0085】
期間1035中、ロボット制御システム110は、別の組のキャリブレーション画像を取り込み、キャリブレーションされた画像セットに取り込まれたキャリブレーション画像を追加する。取り込まれた画像セットにおける取り込まれたキャリブレーション画像の数が規定された目標数に達すると、ロボット制御システム110は、更に別の(例えば、第4の)カメラキャリブレーションを実行して、取り込まれたキャリブレーション画像に基づいて更新されたカメラキャリブレーション情報を特定する。ロボット制御システム110は、第1のカメラキャリブレーションからのカメラキャリブレーション情報と第4のカメラキャリブレーションからの更新されたカメラキャリブレーション情報との間の偏差量を求めることができる。この例において、偏差量が規定された閾値を超えるため、ロボット制御システム110は、閾値を越えているという通知信号を出力する。
【0086】
図11は、
図6A、
図6B及び
図10に対して上記に論じられたプロセスに関するカメラキャリブレーションのカメラキャリブレーション更新プロセスを示すフロー図例1100を示す。ステップ1101において、
図1A、
図1B又は
図1Cのロボット制御システム110は、第1のカメラキャリブレーションを実行する。ステップ1103において、ロボット制御システム110は、
図6A及び
図6Bのキャリブレーションパターン620を動かすように
図6A及び
図6Bのロボット650を制御し、カメラ670の
図6A及び
図6Bのカメラ視野610内のそれぞれの場所において
図6Aのカメラ670を介してキャリブレーション画像を取り込む。ステップ1105において、ロボット制御システム110は、取り込まれたキャリブレーション画像の数が規定された目標数に達したか否かを判断する。取り込まれたキャリブレーション画像の数が規定された目標数に達していない場合、プロセスはステップ1103に戻り、ロボット制御システム110は、それぞれの場所において更なるキャリブレーション画像を取り込み続ける。
【0087】
ステップ1105で続けて、取り込まれたキャリブレーション画像の数が目標数に達した場合、プロセスはステップ1107に進み、ロボット制御システム110は、追加のカメラキャリブレーション(例えば、第2のカメラキャリブレーション)を実行して、更新されたカメラキャリブレーション情報を特定する。ロボット制御システム110がステップ1107において追加のキャリブレーションを実行した後、ロボット制御システム110は、ステップ1109において、第1のカメラキャリブレーションのカメラキャリブレーション情報と追加のカメラキャリブレーションの更新されたカメラキャリブレーション情報との間の偏差量を求め、偏差量が規定された閾値を超えるか否かを判断する。偏差量が規定された閾値を超えた場合、ロボット制御システム110は、ステップ1111において通知信号を出力する。場合によっては、ロボット制御システム110は、こうした判断に応じてロボット操作を停止又は一時停止することができる。一方、偏差量が規定された閾値を超えない場合、ロボット制御システム110は、ステップ1113において、取り込まれたキャリブレーション画像をリセットすることができ、ステップ1103に戻って、新たな組のキャリブレーション画像を取り込むために休止期間を検出する。一実施形態において、リセットステップ1113を省略することができる。
【0088】
様々な実施形態の更なる検討
実施形態1は、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースを備えるロボット制御システムに関する。ロボット制御システムは、a)第1のカメラキャリブレーションを実行して、カメラに関連するカメラキャリブレーション情報を特定することと、b)通信インターフェースを介して、カメラキャリブレーション情報に基づく第1の動作コマンドをロボットに出力することにより、ロボット操作を実行するように、カメラキャリブレーション情報に基づいてロボットアームの動作を制御することと、c)第1のカメラキャリブレーションの後、通信インターフェースを介して、第2の動作コマンドをロボットに出力することにより、カメラ視野内の1つ以上の場所にキャリブレーションパターンを動かすように、ロボットアームを制御することと、d)通信インターフェースを介してカメラから1つ以上のキャリブレーション画像を受け取り、1つ以上のキャリブレーション画像は、1つ以上の場所においてそれぞれ取り込まれるとこと、e)キャリブレーション画像を含む取り込まれた画像セットに1つ以上のキャリブレーション画像を追加することと、f)取り込まれた画像セットにおけるキャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、g)カメラキャリブレーション情報と更新されたカメラキャリブレーション情報との間の偏差を求めることと、h)偏差が規定された閾値を超えるか否かを判断することと、i)偏差が規定された閾値を超えたという判断に応じて、偏差が規定された閾値を超えたことを示す通知信号を出力することとを行うように構成される、制御回路を更に含む。
【0089】
実施形態2は、実施形態1のロボット制御システムを含み、第2のカメラキャリブレーションは、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合のみ実行される。
【0090】
実施形態3は、実施形態1又は2のロボット制御システムを含み、制御回路は、取り込まれた画像セットに、或る数の直近で取り込まれた1つ以上のキャリブレーション画像を追加し、取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新するように更に構成され、第2のカメラキャリブレーションが実行されるとき、取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい。
【0091】
実施形態4は、実施形態1~3のいずれか1つのロボット制御システムを含み、制御回
路は、ロボット操作中に休止期間を検出し、ロボットアームが、休止期間中に1つ以上の場所にキャリブレーションパターンを動かすように制御されるように、休止期間中に第2の動作コマンドを出力するように更に構成され、1つ以上のそれぞれのキャリブレーション画像は、休止期間中に1つ以上の場所で取り込まれる。
【0092】
実施形態5は、実施形態4のロボット制御システムを含み、休止期間は第1の休止期間であり、制御回路は、a)取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、b)第1の休止期間の後、ロボット操作中に第2の休止期間を検出することと、c)第2の休止期間が、第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、d)第2の休止期間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第2の休止期間中に第2のカメラキャリブレーションを実行することと、e)第2の休止期間が規定されたキャリブレーション期間より短いという判断に応じて、e-a)第2の休止期間中に通信インターフェースを介してカメラから1つ以上の追加のキャリブレーション画像を受け取ることであって、1つ以上の追加のキャリブレーション画像は、カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれる、受け取ることと、e-b)更新された取り込まれた画像セットを生成するように、1つ以上の追加の画像を追加することにより、かつ、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することと、e-c)更新された取り込まれた画像セットを用いて第2のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される。
【0093】
実施形態6は、実施形態4のロボット制御システムを含み、休止期間は第1の休止期間であり、制御回路は、a)休止期間の後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、b)第1の休止期間に続く第2の休止期間を検出することと、c)第2の休止期間中に通信インターフェースを介してカメラから1つ以上の追加のキャリブレーション画像を受け取ることであって、1つ以上の追加のキャリブレーション画像は、カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれる、受け取ることと、d)更新された取り込まれた画像セットを生成するように、取り込まれた画像セットに1つ以上の追加のキャリブレーション画像を追加することと、e)更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したか否かを判断することと、f)取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したという判断に応じて、第2の休止期間における残りの時間が、第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、g)第2の休止期間における残りの時間が規定されたキャリブレーション期間以上の長さであるという判断に応じて、第2の休止期間における残りの時間中に第2のカメラキャリブレーションを実行することとを行うように更に構成される。
【0094】
実施形態7は、実施形態6のロボット制御システムを含み、制御回路は、第2の休止期間における残りの時間が規定されたキャリブレーション期間より短いという判断に応じて、a)第2の休止期間における残りの時間中に通信インターフェースを介してカメラから1つ以上の後続する追加のキャリブレーション画像を受け取り、1つ以上の後続する追加のキャリブレーション画像は、カメラ視野内の1つ以上の後続する追加の場所においてそれぞれ取り込まれることと、b)1つ以上の後続する追加のキャリブレーション画像を追加することにより、かつ、取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、取り込まれた画像セットを更新することと、c)更新された取り込まれた画像セットを用いて第2のカメラキャリブレーションを完了するために、規定されたキャリブレーション期間以上の長さである後続する
休止期間まで待機することとを行うように更に構成される。
【0095】
実施形態8は、実施形態1~7のいずれか1つのロボット制御システムを含み、制御回路は、a)通信インターフェースを介してカメラから1つ以上の追加のキャリブレーション画像を受け取り、取り込まれた画像セットに1つ以上の追加のキャリブレーション画像を追加し、1つ以上の追加のキャリブレーション画像は、カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、b)取り込まれた画像セットに1つ以上の追加のキャリブレーション画像の各画像が追加された後、取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断することと、c)取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えたという判断に応じて、取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することとを行うように更に構成され、第2のカメラキャリブレーションは、取り込まれた画像セットに1つ以上の追加の画像が追加された後に、取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される。
【0096】
実施形態9は、実施形態1~8のいずれか1つのロボット制御システムを含み、カメラキャリブレーション情報及び更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む。
【0097】
種々の実施形態を上述してきたが、これらの実施形態は、限定としてではなく本発明の単なる説明及び例として提示されていることを理解すべきである。形式及び細部における種々の変更は本発明の趣旨及び範囲から逸脱することなく本発明内で行うことができることは当業者には明らかであろう。したがって、本発明の範囲(breadth and scope)は、
上述の例示的な実施形態のいずれかによって限定されるべきではなく、添付の特許請求の範囲及びそれらの均等物によってのみ規定されるべきである。本明細書において論考された各実施形態、及び本明細書において引用された各引用文献の各特徴は、他の任意の実施形態の特徴と組み合わせて用いることができることも理解されるであろう。本明細書において論考された全ての特許及び刊行物は、引用することによりその全体が本明細書の一部をなす。
【手続補正書】
【提出日】2024-03-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有するカメラと通信するように構成された通信インターフェースと、
制御回路と、
を備え、該制御回路は、
第1のカメラキャリブレーションを実行して、前記カメラに関連するカメラキャリブレーション情報を特定することと、
前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第1の動作コマンドを前記ロボットに出力することにより、ロボット操作を実行するように、前記カメラキャリブレーション情報に基づいて前記ロボットアームの動作を制御することと、
前記第1のカメラキャリブレーションの後、前記通信インターフェースを介して、第2の動作コマンドを前記ロボットに出力することにより、前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすように、前記ロボットアームを制御することと、
前記通信インターフェースを介して前記カメラから1つ以上のキャリブレーション画像を受け取り、該1つ以上のキャリブレーション画像は、前記カメラ視野内の前記1つ以上の場所においてそれぞれ取り込まれることと、
キャリブレーション画像を含む取り込まれた画像セットに前記1つ以上のキャリブレーション画像を追加することと、
前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、該第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記偏差が規定された閾値を超えるか否かを判断することと、
前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を行うように構成される、ロボット制御システム。
【請求項2】
前記第2のカメラキャリブレーションは、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達した場合のみ実行される、請求項1に記載のロボット制御システム。
【請求項3】
前記制御回路は、前記取り込まれた画像セットに、或る数の直近で取り込まれた1つ以上のキャリブレーション画像を追加し、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新するように更に構成され、
前記第2のカメラキャリブレーションが実行されるとき、前記取り込まれた画像セットにおけるキャリブレーション画像の総数は、規定された目標数に等しい、請求項1に記載のロボット制御システム。
【請求項4】
前記制御回路は、前記ロボット操作中に休止期間を検出し、前記ロボットアームが、前記休止期間中に前記1つ以上の場所に前記キャリブレーションパターンを動かすように制御されるように、前記休止期間中に前記第2の動作コマンドを出力するように更に構成され、
前記1つ以上のそれぞれのキャリブレーション画像は、前記休止期間中に前記1つ以上の場所で取り込まれる、請求項1に記載のロボット制御システム。
【請求項5】
前記休止期間は第1の休止期間であり、前記制御回路は、
前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達したと判断することと、
前記第1の休止期間の後、前記ロボット操作中に第2の休止期間を検出することと、
前記第2の休止期間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間中に前記第2のカメラキャリブレーションを実行することと、
前記第2の休止期間が前記規定されたキャリブレーション期間より短いという判断に応じて、a)前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、b)更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加の画像を追加することにより、かつ、前記取り込まれた画像セットから、等しい数の最も古くに取り込まれた1つ以上のキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、c)前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することと、
を行うように更に構成される、請求項4に記載のロボット制御システム。
【請求項6】
前記休止期間は第1の休止期間であり、前記制御回路は、
前記休止期間の後、前記取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数に達していないと判断することと、
前記第1の休止期間に続く第2の休止期間を検出することと、
前記第2の休止期間中に前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
更新された取り込まれた画像セットを生成するように、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加することと、
前記更新された取り込まれた画像セットにおけるキャリブレーション画像の総数が前記規定された目標数に達したか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数に達したという判断に応じて、前記第2の休止期間における残りの時間が、前記第2のカメラキャリブレーションを完了するために必要な時間の量を示す規定されたキャリブレーション期間以上の長さであるか否かを判断することと、
前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間以上の長さであるという判断に応じて、前記第2の休止期間における前記残りの時間中に前記第2のカメラキャリブレーションを実行することと、
を行うように更に構成される、請求項4に記載のロボット制御システム。
【請求項7】
前記制御回路は、前記第2の休止期間における前記残りの時間が前記規定されたキャリブレーション期間より短いという判断に応じて、a)前記第2の休止期間における前記残りの時間中に前記通信インターフェースを介して前記カメラから1つ以上の後続する追加のキャリブレーション画像を受け取り、該1つ以上の後続する追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の後続する追加の場所においてそれぞれ取り込まれることと、b)前記1つ以上の後続する追加のキャリブレーション画像を追加することに
より、かつ、前記取り込まれた画像セットにおける、等しい数の最も古くに取り込まれたキャリブレーション画像を除去することにより、前記取り込まれた画像セットを更新することと、c)前記更新された取り込まれた画像セットを用いて前記第2のカメラキャリブレーションを完了するために、前記規定されたキャリブレーション期間以上の長さである後続する休止期間まで待機することとを行うように更に構成される、請求項6に記載のロボット制御システム。
【請求項8】
前記制御回路は、
前記通信インターフェースを介して前記カメラから1つ以上の追加のキャリブレーション画像を受け取り、前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像を追加し、該1つ以上の追加のキャリブレーション画像は、前記カメラ視野内の1つ以上の追加の場所においてそれぞれ取り込まれることと、
前記取り込まれた画像セットに前記1つ以上の追加のキャリブレーション画像の各画像が追加された後、該取り込まれた画像セットにおけるキャリブレーション画像の総数が規定された目標数を超えるか否かを判断することと、
前記取り込まれた画像セットにおけるキャリブレーション画像の前記総数が前記規定された目標数を超えたという判断に応じて、前記取り込まれた画像セットから最も古くに取り込まれたキャリブレーション画像を除去することと、
を行うように更に構成され、
前記第2のカメラキャリブレーションは、前記取り込まれた画像セットに前記1つ以上の追加の画像が追加された後に、該取り込まれた画像セットの全てのキャリブレーション画像を用いて実行される、請求項1に記載のロボット制御システム。
【請求項9】
前記カメラキャリブレーション情報及び前記更新されたカメラキャリブレーション情報は、キャリブレーションパラメーターに対するそれぞれの値を含む、請求項1に記載のロボット制御システム。
【請求項10】
カメラキャリブレーションを更新する方法であって、
ロボット制御システムにより、第1のカメラキャリブレーションを実行してカメラキャリブレーション情報を特定し、前記ロボット制御システムは、ベースと上にキャリブレーションパターンが配置されているロボットアームとを有するロボットと通信し、カメラ視野を有しかつ前記カメラキャリブレーション情報に関連するカメラと通信するように構成される通信インターフェースを備えることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラキャリブレーション情報に基づく第1の動作コマンドを前記ロボットに出力して、前記ロボットアームがロボット操作を実行するように動くようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記第1のカメラキャリブレーションの後、第2の動作コマンドを前記ロボットに出力して、前記ロボットアームが、前記カメラ視野内の1つ以上の場所に前記キャリブレーションパターンを動かすようにすることと、
前記ロボット制御システムにより、前記通信インターフェースを介して、前記カメラから1つ以上のキャリブレーション画像を受け取り、該1つ以上のキャリブレーション画像は、前記カメラ視野内の前記1つ以上の場所においてそれぞれ取り込まれることと、
前記ロボット制御システムにより、キャリブレーション画像を含む取り込まれた画像セットに前記1つ以上のキャリブレーション画像を追加することと、
前記ロボット制御システムにより、前記取り込まれた画像セットにおける前記キャリブレーション画像に基づいて第2のカメラキャリブレーションを実行し、該第2のカメラキャリブレーションは、更新されたカメラキャリブレーション情報を出力することと、
前記ロボット制御システムにより、前記カメラキャリブレーション情報と前記更新されたカメラキャリブレーション情報との間の偏差を求めることと、
前記ロボット制御システムにより、前記偏差が規定された閾値を超えるか否かを判断することと、
前記ロボット制御システムにより、前記偏差が前記規定された閾値を超えたという判断に応じて、該偏差が該規定された閾値を超えたことを示す通知信号を出力することと、
を含む、方法。
【手続補正書】
【提出日】2024-04-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
カメラキャリブレーションを更新する方法であって、
キャリブレーションパターンが配置されたロボットと通信することと、
前記ロボットの少なくとも一部が動いていない或いは動く予定のない休止期間を判断することと、
前記休止期間中に、前記キャリブレーションパターンを表す1つ以上のキャリブレーション画像を取得することと、
前記1つ以上のキャリブレーション画像に基づいてキャリブレーション操作を実行することと、を含み、
前記キャリブレーション操作は、更新されたキャリブレーション情報を出力する、方法。
【請求項2】
コンピューティングシステムにより、前記キャリブレーションパターンを1つ以上の場所に移動させる或いは向かわせるための1つ以上の動作コマンドを出力することをさらに含む、請求項1に記載の方法。
【請求項3】
前記1つ以上の場所が前記キャリブレーション情報に基づいている、請求項2に記載の方法。
【請求項4】
前記1つ以上の場所がロボットタスクに基づいている、請求項2に記載の方法。
【請求項5】
前記休止期間中に、前記キャリブレーションパターンを表す前記1つ以上のキャリブレーション画像を取り込むことを含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記休止期間は、ロボットタスクを実行するための1つ以上の動作コマンドが出力されない期間である、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記キャリブレーション操作が前記休止期間中に実行される、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記キャリブレーション操作が前記ロボットの動作中に実行される、請求項1~6のいずれか一項に記載の方法。
【請求項9】
請求項1~8のいずれか一項に記載の方法をコンピューティングシステムに実施させるように構成された1つ以上のプロセッサと、
前記1つ以上のキャリブレーション画像を受信するように構成された1つ以上の通信インターフェースと、
を含むコンピューティングシステム。
【請求項10】
1つ以上のプロセッサによって実行されるときに、請求項1~8のいずれか一項に記載の方法をコンピューティングシステムに実施させるためのプロセッサ命令を記憶している、有形、非一時的コンピューター可読媒体。
【外国語明細書】