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

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

▶ ファナック株式会社の特許一覧

特開2023-79994動的物体までの最小距離の効果的な計算方法
<>
  • 特開-動的物体までの最小距離の効果的な計算方法 図1
  • 特開-動的物体までの最小距離の効果的な計算方法 図2
  • 特開-動的物体までの最小距離の効果的な計算方法 図3
  • 特開-動的物体までの最小距離の効果的な計算方法 図4A
  • 特開-動的物体までの最小距離の効果的な計算方法 図4B
  • 特開-動的物体までの最小距離の効果的な計算方法 図4C
  • 特開-動的物体までの最小距離の効果的な計算方法 図4D
  • 特開-動的物体までの最小距離の効果的な計算方法 図5
  • 特開-動的物体までの最小距離の効果的な計算方法 図6
  • 特開-動的物体までの最小距離の効果的な計算方法 図7
  • 特開-動的物体までの最小距離の効果的な計算方法 図8A
  • 特開-動的物体までの最小距離の効果的な計算方法 図8B
  • 特開-動的物体までの最小距離の効果的な計算方法 図9A
  • 特開-動的物体までの最小距離の効果的な計算方法 図9B
  • 特開-動的物体までの最小距離の効果的な計算方法 図9C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023079994
(43)【公開日】2023-06-08
(54)【発明の名称】動的物体までの最小距離の効果的な計算方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20230601BHJP
   B25J 19/06 20060101ALI20230601BHJP
   G01B 11/00 20060101ALI20230601BHJP
【FI】
B25J13/08 A
B25J19/06
G01B11/00 H
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022086929
(22)【出願日】2022-05-27
(31)【優先権主張番号】17/456,771
(32)【優先日】2021-11-29
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【弁理士】
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】キアーラ タリニャーニ ランディ
(72)【発明者】
【氏名】リン シェン-チュン
(72)【発明者】
【氏名】加藤 哲朗
【テーマコード(参考)】
2F065
3C707
【Fターム(参考)】
2F065AA04
2F065AA06
2F065AA12
2F065AA31
2F065AA53
2F065BB15
2F065DD16
2F065FF04
2F065JJ26
2F065QQ08
2F065QQ23
2F065QQ24
2F065QQ25
2F065QQ29
2F065QQ33
3C707AS06
3C707KS12
3C707KS36
3C707KT02
3C707KT06
3C707MS05
3C707MS27
(57)【要約】
【課題】ロボットからロボット作業空間内の動的物体までの最小距離を計算する方法及びシステムを提供する。
【解決手段】この方法は1つ又は複数の3次元カメラからの画像を使用し、物体のエッジが各画像で検出されてロボット及び背景が結果として得られる画像から取り去られ、物体のエッジ画素だけが残される。そして奥行き値が物体のエッジ画素に重ね合わせられて、エッジ画素とロボットアーム上の制御点の間だけに対して距離計算が行われる。物体の遮蔽を解決するのに2つ以上のカメラが使用されることがあり、各カメラの最小距離が独立して算出されて、カメラの最小距離のうちの最大値が実際の結果として使用される。多数のカメラを使用しても計算負荷を大幅に増やすことにはならず、カメラを互いに対して較正する必要はない。
【選択図】図5
【特許請求の範囲】
【請求項1】
ロボットの作業空間において前記ロボットから障害物までの最小距離を計算する方法であって、
3次元カメラから前記作業空間の画像を提供することと、
プロセッサ及びメモリを有するコンピュータを用いて、前記画像に対してエッジフィルタ処理を行い、前記作業空間内の物のエッジを規定する画素のみを有するエッジ画像を得ることと、
前記エッジ画像から前記ロボット及び背景物を取り去り、動的物体のエッジ画素画像を得ることと、
前記動的物体のエッジ画素画像内の各画素に奥行き値を割り当てて最終画像を作成することであって、前記奥行き値は前記カメラにより提供された前記画像における奥行きデータから取られる、作成することと、
前記最終画像内の各画素から前記ロボット上の複数の制御点のそれぞれまでの距離を算出することと、
前記算出された距離からロボット・障害物間最小距離を求めることと、
を含む、方法。
【請求項2】
前記エッジ画像から前記ロボットを取り去ることは、順運動学の計算に基づいてロボット関節位置データを用いてロボット姿勢を求めることと、前記ロボット姿勢を画像座標系におけるロボットアームのそれぞれの位置及び方位へ置き換えることと、前記エッジ画像から前記ロボットアームのそれぞれを取り去ることと、を含む、請求項1に記載の方法。
【請求項3】
前記エッジ画像から前記背景物を取り去ることは、前記作業空間に動的物体が存在しないことがわかっている、以前撮影された背景参照画像を準備することと、前記背景参照画像に対してエッジフィルタ処理を行って背景参照エッジ画像を作成し、前記エッジ画像から前記背景参照エッジ画像を取り去ることと、を含む、請求項1に記載の方法。
【請求項4】
各画素に前記奥行き値を割り当てる前に前記奥行きデータを穴埋めすることであって、前記画像内の前記奥行きデータが欠損している画素にあらかじめ規定された隣接距離以内で前記カメラに最も近い前記奥行き値を有する画素に基づいて前記奥行き値を割り当てることを含む、穴埋めすることをさらに含む、請求項1に記載の方法。
【請求項5】
前記最終画像内の画素の個数があらかじめ規定された閾値より大きいかどうかを判定することと、前記画素の前記個数が前記閾値より大きい場合に前記最終画像内の各画素から前記ロボット上の前記複数の制御点のそれぞれまでの前記距離を算出することと、前記最終画像内の前記画素の前記個数が前記あらかじめ規定された閾値以下である場合に前記作業空間内に障害物は存在しないと判定することと、をさらに含む、請求項1に記載の方法。
【請求項6】
前記最終画像内の各画素から前記ロボット上の前記複数の制御点のそれぞれまでの前記距離を算出することは遮蔽確認を行うことを含み、前記遮蔽確認は、前記カメラから前記画素までの距離が前記カメラから前記制御点までの距離より小さい場合に肯定的となる、請求項1に記載の方法。
【請求項7】
前記遮蔽確認が肯定的な場合、前記画素から前記制御点までの前記距離をカメラ結像面に平行な平面へ投影される距離として算出する、請求項6に記載の方法。
【請求項8】
前記遮蔽確認が肯定的ではない場合、前記画素から前記制御点までの前記距離を座標公式における差分の平方和を用いて実際の3次元距離として算出する、請求項6に記載の方法。
【請求項9】
前記ロボット上の前記制御点のそれぞれは、ロボットアームの外面上の点において、前記ロボットアームの運動軸線に沿って、又は関節中心において規定される、請求項1に記載の方法。
【請求項10】
1つ又は複数の追加の3次元カメラから前記作業空間の同時画像を提供することであって、前記カメラのそれぞれは前記作業空間の周縁部付近の異なる場所に置かれる、提供することと、前記追加のカメラのそれぞれからの前記画像からロボット・障害物間最小距離を求めることと、前記求められたロボット・障害物間最小距離のうち最大のものを選択してロボット運動プログラミングで使用することと、をさらに含む、請求項1に記載の方法。
【請求項11】
ロボット制御装置で前記ロボット・障害物間最小距離を衝突防止ロボット運動計画アルゴリズムにおいて使用することをさらに含む、請求項1に記載の方法。
【請求項12】
前記コンピュータは前記ロボット制御装置である、請求項11に記載の方法。
【請求項13】
ロボットの作業空間において前記ロボットから障害物までの最小距離を計算する方法であって、
複数の3次元(3D)カメラのそれぞれから前記作業空間の同時画像を提供することと、
プロセッサ及びメモリを有するコンピュータを用いて、前記画像のそれぞれに対してエッジフィルタ処理を行い、前記作業空間内の物のエッジを規定する画素のみを有するエッジ画像を得ることと、
前記エッジ画像のそれぞれから前記ロボット及び背景物を取り去り、動的物体のエッジ画素画像を得ることと、
前記動的物体のエッジ画素画像のそれぞれの中の各画素に奥行き値を割り当てて最終画像を作成することであって、前記奥行き値は前記カメラにより提供された前記画像における奥行きデータから取られる、作成することと、
前記最終画像のそれぞれの中の画素の個数があらかじめ規定された閾値以上である場合に前記最終画像内の各画素から前記ロボット上の複数の制御点のそれぞれまでの距離を算出することと、
前記算出された距離から前記カメラのそれぞれに対するロボット・障害物間最小距離を求めることと、
前記求められたロボット・障害物間最小距離のうち最大のものを選択してロボット運動プログラミングで使用することと
すべての前記最終画像の中の前記画素の前記個数が前記あらかじめ規定された閾値より小さい場合に前記作業空間内に障害物は存在しないと判定することと、
を含む、方法。
【請求項14】
前記最終画像内の各画素から前記ロボット上の前記複数の制御点のそれぞれまでの前記距離を算出することは遮蔽確認を行うことを含み、前記遮蔽確認は、前記カメラから前記画素までの距離が前記カメラから前記制御点までの距離より小さい場合に肯定的となり、前記遮蔽確認が肯定的である場合、前記画素から前記制御点までの前記距離はカメラ結像面に平行な平面へ投影される距離として算出される、請求項13に記載の方法。
【請求項15】
ロボットの作業空間において前記ロボットから障害物までの最小距離を計算するシステムであって、
それぞれが前記作業空間の同時画像を提供する1つ又は複数の3次元(3D)カメラと、
プロセッサ及びメモリを有する、前記1つ又は複数のカメラと通信を行うコンピュータであって、
前記画像のそれぞれに対してエッジフィルタ処理を行い、前記作業空間内の物のエッジを規定する画素のみを有するエッジ画像を得ることと、
前記エッジ画像のそれぞれから前記ロボット及び背景物を取り去り、動的物体のエッジ画素画像を得ることと、
前記動的物体のエッジ画素画像のそれぞれの中の各画素に奥行き値を割り当てて最終画像を作成することであって、前記奥行き値は前記カメラにより提供された前記画像における奥行きデータから取られる、作成することと、
前記最終画像のそれぞれの中の画素の個数があらかじめ規定された閾値以上である場合に前記最終画像内の各画素から前記ロボット上の複数の制御点のそれぞれまでの距離を算出することと、
前記算出された距離から前記カメラのそれぞれに対するロボット・障害物間最小距離を求めることと、
2つ以上のカメラが使用される場合に、前記求められたロボット・障害物間最小距離のうち最大のものを選択して使用することと、
すべての前記最終画像の中の前記画素の前記個数が前記あらかじめ規定された閾値より小さい場合に前記作業空間内に障害物は存在しないと判定することと、
を行うよう構成される前記コンピュータと、
を備える、システム。
【請求項16】
前記コンピュータは、各画素に前記奥行き値を割り当てる前に前記奥行きデータを穴埋めすることであって、前記画像内の前記奥行きデータが欠損している画素にあらかじめ規定された隣接距離以内で前記カメラに最も近い前記奥行き値を有する画素に基づいて前記奥行き値を割り当てることを含む、穴埋めすることをさらに行うよう構成される、請求項15に記載のシステム。
【請求項17】
前記最終画像内の各画素から前記ロボット上の前記複数の制御点のそれぞれまでの前記距離を算出することは遮蔽確認を行うことを含み、前記遮蔽確認は、前記カメラから前記画素までの距離が前記カメラから前記制御点までの距離より小さい場合に肯定的となり、前記遮蔽確認が肯定的である場合、前記画素から前記制御点までの前記距離はカメラ結像面に平行な平面へ投影される距離として算出される、請求項15に記載のシステム。
【請求項18】
前記1つ又は複数のカメラは前記作業空間の周縁部付近にあり、前記カメラのそれぞれからの前記画像は前記カメラが略水平方向に向けられて撮影される、請求項15に記載のシステム。
【請求項19】
前記コンピュータと通信を行い、前記ロボット・障害物間最小距離を衝突防止ロボット運動計画アルゴリズムにおいて使用するよう構成されるロボット制御装置をさらに備える、請求項15に記載のシステム。
【請求項20】
前記コンピュータは、前記ロボット・障害物間最小距離を衝突防止ロボット運動計画アルゴリズムにおいて使用するよう構成されるロボット制御装置である、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、産業用ロボットの運動制御での物体検出の分野に関し、より詳細には、ロボットとロボット作業空間に存在する動的物体の間の最小距離を1つ又は複数の3次元カメラからの画像を用いて計算する方法に関し、この方法では物体のエッジが各画像で検出されてロボット及び背景が結果として得られる画像から取り去られ、奥行き値が残りの物体のエッジ画素に重ね合わせられて、物体のエッジ画素とロボットアーム上の制御点の間だけに対して距離計算が行われる。
【背景技術】
【0002】
様々な製造、組み立て、及び材料移動の操作を行うのに産業用ロボットが使用されるのはよく知られている。多くのロボット作業空間の環境には障害物が存在し、ロボットの運動する経路内にも存在しうる。障害物は機械や什器などの永続的な構造物でありえて、その静的な性質のためにロボットにより容易に回避可能である。また、障害物は、ロボット作業空間の中へ、又は作業空間内を通って無作為に動く動的物体でありうる。動的物体はロボット制御装置によりリアルタイムで計算の対象とされる必要があり、ロボットは動作を行いながら物体を回避する必要がある。ロボットと障害物の衝突は絶対に回避されなければならない。
【0003】
カメラ画像に基づいて動的物体を検出する先行技術の手法が当技術分野で知られているが、こうした既知の手法はかなりの制約を受ける。既知の一手法では、多数の奥行きセンサを使ってロボット作業空間内の任意の物体の外面を規定する点群を作成し、ロボットの各運動時間ステップにおいて点群中の点とロボットアームの間の最小距離を算出する。しかし、点群中の点の個数のために、こうした計算は極めて計算負荷が高く、時間がかかる。
【0004】
点群ベースの物体距離手法に内在する不利益のため、他の手法が開発されてきた。単一カメラによる奥行き空間法(single-camera depth space approach)が知られており、障害物点とロボット制御点の間の距離は奥行き画像から計算される。しかし、ロボットよりもカメラに近い障害物では、障害物の奥行きの程度は未知であり、障害物の後ろの遮蔽される空間は占有されているとみなされる。これによって最小距離が大幅に過小評価されることにつながることがあり、占有すらされていない物体空間の周りをロボットアームが不必要に大きく運動してしまいかねない。
【0005】
単一カメラによる奥行き空間法の制約を克服するため、遮蔽の問題を解決するよう設計された多重センサ法が開発された。この方法では、主センサが空間的な奥行きグリッドを構築するのに使用されて、他のセンサは奥行きグリッド内の障害物の後ろの遮蔽されたセルを確認するために使用される。この方法は点群法(point cloud approach)より計算負荷が低いが、多くの制御点を有する大きなロボット及び多くのセルを奥行きグリッド中に有する大きな作業空間に対してはなおも長い計算時間が必要になりうる。さらに、この方法では3D奥行きグリッドの構築時に誤差が生じやすく、こうした誤差を最小化するためにカメラ/センサを互いに対して正確に調節する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述した状況を踏まえて、ロボットとロボット作業空間内の動的物体の間の最小距離を計算する改善された方法が必要とされている。
【課題を解決するための手段】
【0007】
本開示の教示に従い、ロボットからロボット作業空間内の動的物体までの最小距離を計算する方法及びシステムが記載され、示される。この方法は1つ又は複数の3次元カメラからの画像を使用し、物体のエッジが各画像で検出されてロボット及び背景が結果として得られる画像から取り去られ、物体のエッジ画素だけが残される。そして奥行き値が物体のエッジ画素に重ね合わせられて、物体のエッジ画素とロボットアーム上の制御点の間だけに対して距離計算が行われる。物体の遮蔽を解決するのに2つ以上のカメラが使用されることがあり、各カメラの最小距離が独立して算出されて、カメラの最小距離のうちの最大のものが実際の結果として使用される。多数のカメラを使用しても計算負荷を大幅に増やすことにはならず、カメラを互いに対して較正する必要はない。
【0008】
本開示の機器及び方法の更なる特徴は以下の説明及び添付の請求項を添付の図面と併用することで明らかとなるであろう。
【図面の簡単な説明】
【0009】
図1】人間が産業用ロボット作業空間を占有している例であり、ロボット・物体間の衝突を確実に防止するために行われる必要がある最小距離の計算を例証している。
図2】当技術分野で知られる、ロボットと物体の間の最小距離を計算する単一カメラによる奥行き空間法を示す。
図3】当技術分野で知られる、ロボットと物体の間の最小距離を計算する多重センサ奥行き空間法(multi-sensor depth space technique)を示す。
図4A】ロボットと障害物の間の最小距離を計算するのに使用され、最終的に奥行き情報を用いた障害物のエッジ検出に至る、本開示の実施形態に係る一連の画像を示す。
図4B】ロボットと障害物の間の最小距離を計算するのに使用され、最終的に奥行き情報を用いた障害物のエッジ検出に至る、本開示の実施形態に係る一連の画像を示す。
図4C】ロボットと障害物の間の最小距離を計算するのに使用され、最終的に奥行き情報を用いた障害物のエッジ検出に至る、本開示の実施形態に係る一連の画像を示す。
図4D】ロボットと障害物の間の最小距離を計算するのに使用され、最終的に奥行き情報を用いた障害物のエッジ検出に至る、本開示の実施形態に係る一連の画像を示す。
図5】ロボットと障害物の間の最小距離を計算するための方法とデータの流れを表す、本開示の実施形態に係るフローチャート図である。
図6】ロボットと障害物の間の最小距離を計算するための多重カメラシステム(multi-camera system)を示す上面図であり、各カメラは本開示の実施形態に係る図5の計算方法を独立して適用する。
図7図6の多重カメラシステムを用いてロボットと障害物の間の最小距離を計算する方法を表す、本開示の実施形態に係るフローチャート図である。
図8A】実際の測定値に密接に相関するロボット・障害物間最小距離を求めるために、本開示の実施形態に係る図6のシステム及び図7の方法がどのように適用されるかを表す、異なる視点を有する2つのカメラで同時に撮影された場面を示す。
図8B】実際の測定値に密接に相関するロボット・障害物間最小距離を求めるために、本開示の実施形態に係る図6のシステム及び図7の方法がどのように適用されるかを表す、異なる視点を有する2つのカメラで同時に撮影された場面を示す。
図9A】3つの異なる障害物の状況と、各状況でその結果もたらされる本開示の実施形態に係る3つのカメラによるシステムを用いた最小距離の計算を示す。
図9B】3つの異なる障害物の状況と、各状況でその結果もたらされる本開示の実施形態に係る3つのカメラによるシステムを用いた最小距離の計算を示す。
図9C】3つの異なる障害物の状況と、各状況でその結果もたらされる本開示の実施形態に係る3つのカメラによるシステムを用いた最小距離の計算を示す。
【発明を実施するための形態】
【0010】
ロボット作業空間内の動的物体までの最小距離の計算を対象とした、本開示の実施形態の以下の説明は本質的に例示に過ぎず、開示される機器及び手法、又はそれらの適用や使用を制限することはまったく意図していない。
【0011】
様々な製造、組み立て、及び材料移動の操作を行うのに産業用ロボットが使用されるのはよく知られている。多くのロボット作業空間の環境には障害物が存在し、時にはロボットの運動する経路内にも存在しうる。つまり、予防的な運動計画なしには、ロボットがロボットの現在位置から目的地の位置まで動く際に、ロボットのある部分が障害物のある部分に衝突しうる、あるいは近くになりうる。障害物は機械や什器、テーブルなどの固定された構造物でありえて、障害物は人やフォークリフト、他の機械などの動的な(移動する)物体でありえる。ロボットが何らかの障害物と衝突するのを回避しながら目的地の位置までの経路をツールが辿るように、ロボットの運動を算出するための手法が当技術分野で開発されてきた。しかし、動的物体の場合は、衝突防止運動計画に必要となる、物体の場所を求めて物体からロボットまでの最小距離をリアルタイムで算出することは、常に困難であった。
【0012】
ロボット・物体間の距離を算出する一手法には、ロボット上の制御点を規定し、すべての時間ステップにおけるロボットの姿勢に基づいて制御点の3次元(3D)座標を計算して、障害物点からロボット制御点までの距離を算出することが含まれる。障害物は、センサデータに由来する点群により、又は以下でさらに論じられる他の手法により規定可能である。
【0013】
図1は、人間が産業用ロボット作業空間を占有している例であり、ロボット・物体間の衝突を確実に防止するために行われる必要がある最小距離の計算を例証している。図1で、ロボット100は作業空間内で動作している。複数の制御点(102~106など)はロボット100上で規定される。制御点102~106はロボットの骨格の重要な点(例えば、関節中心やアームの中心線に沿った点など)において規定されうる、あるいは、制御点は実際のアームの形状の外面上で規定されうる。人間130は、ロボット100が動作している作業空間の一部を占有している。人間130は、作業空間の中へ入る、作業空間の周辺を動く、又は作業空間から外へ動くことのできる動的物体を表現している。ロボット100と人間130の間の最小距離をすべての時間ステップにおいて求めることは、衝突のないロボット経路を計画するのに不可欠である。
【0014】
ロボット・障害物間最小距離を求めるための一手法は、多数のセンサを作業空間の周りに置いて、センサデータから障害物を規定する点群を構築することである。そして、点群中の点からロボット制御点までの3D距離が計算される。こうした距離のいくつかが図1において110で示される線により示され、これらの線から最小距離が特定される。点群手法は、正確なロボット・障害物間最小距離の結果をもたらすことができる。しかし、障害物の点群は典型的には数千もの3D点を含み、点群中の各点を各ロボット制御点に対して確認する必要があるので、点群最小距離の計算は非常に計算負荷が高い。この理由から、他の最小距離計算方法が開発されてきた。こうした他の方法に内在する一つの問題は、図1では距離140として示される、任意の単一視点から求められる、障害物とロボット制御点の間の見かけの最小の距離は実際の3D距離よりも大幅に小さくなりうることである。この影響は以下でさらに論じられる。
【0015】
図2は、当技術分野で知られる、ロボットと物体の間の最小距離を計算する単一カメラによる奥行き空間法を示す。1つの3Dカメラ200がカメラ中心点202により表現されている。カメラ200は結像面210を有し、結像面内の各画素は結像面空間内で座標(px、py)を有する。カメラ200は3Dカメラであるため、各画素は奥行き又は距離の値dも有する。図2に描かれる奥行き空間法を用いて、カメラ200は連続する一連の画像を提供し、各画像が分析されて、ロボットによる衝突防止戦略が必要になりうる障害物が検出される。以下の説明では、図2のカメラ200は図1に示された場面の画像を提供していると考えること。
【0016】
図2のカメラ200は、障害物点220及び障害物点230を検出する。障害物点220は人間130の腕又は手の上の点でありうる。障害物点230は図1の背景にある何か他の物体の上の点でありうる。また、制御点240も示されており、制御点240は図1のロボット100上の制御点102~106のうちの一つでありうる。距離値d4を含む、制御点240の場所は、既知のロボット運動学及び作業空間座標系に対するカメラの空間的な較正から求めることができる。距離値d2から、障害物点220が制御点240よりもカメラ200にずっと近いことがわかる。しかし、カメラ200は障害物を「透視する」ことはできないので、障害物点220の後ろにどれだけの空間が占有されているかはわからない。この影響は遮蔽(occlusion)として知られる。したがって、障害物点220を表す画素に対して、奥行きd2より大きいすべての奥行き値は占有されたものとみなす必要がある。占有された空間は線222により示される。
【0017】
障害物点220の3D座標は、結像面210内の対応する画素の場所、カメラ較正パラメータ、及び距離d2に基づいて求めることができる。制御点240の3D座標は、前述したように既知である。したがって、距離は障害物点220と制御点240の間で算出することができる。しかし、算出された距離が障害物点220で検出される物体とロボットの間の最小距離である保証はない。それどころか、遮蔽と線222に沿った任意の、又はすべての点が占有されている可能性のために、物体と制御点240の間の最悪の場合の最小距離を制御点240と線222の間の最小距離として計算する必要があり、この最小距離は線222に対して垂直な線に沿って存在する。この最小距離は矢印224により示される、カメラ結像面210に平行な平面へ投影された距離である。
【0018】
障害物点230は、カメラで測定された距離d3を有し、この距離は制御点240までの距離d4より大きい。したがって、障害物点230の場合、線232により示される遮蔽される空間は、制御点240より先にあるため、最小距離の計算に影響を及ぼさない。それゆえ、障害物点230から制御点240までの距離は、各点の実際の3D座標に基づいて(x、y、z座標での差分の平方和を用いて)計算することができる。矢印234により示される結果として得られる距離は、障害物点230で検出される物体とロボット上の制御点240の間の正確な最小距離である。
【0019】
図2は、ロボットと障害物の間の最小距離を計算する単一カメラによる奥行き空間法の欠点を示す。つまり、ロボットからカメラ200までの距離よりもカメラ200により近い物体の最小距離は、遮蔽のために最悪の場合の想定を用いて算出する必要がある。これは、図2で矢印224により示される距離(最悪の場合の最小距離)が障害物点220と制御点240の間の実際の距離よりもずっと小さいということで明らかである。最悪の場合に想定されるロボット・障害物間最小距離を用いて、ロボット制御装置は、ロボットが障害物点220を回避するため、不必要に自身の経路からかなり外れてしまう経路を算出することになる。
【0020】
図3は、当技術分野で知られる、ロボットと物体の間の最小距離を計算する多重センサ奥行き空間法を示す。図3に示される多重センサ奥行き空間法は、前述の単一カメラによる奥行き空間法の欠点を克服するために開発された。
【0021】
図3の左側には、図2の単一カメラによる奥行き空間の配置が再び描かれている。ここには、前述した結像面210、障害物点220、230、及び制御点240が含まれている。図3の右側には、多重センサ拡張が示されている。(図2からの)カメラ200が左に示されている。カメラ200は今度は主カメラであり、少なくとも1つの追加のカメラ又はセンサ300が提供される。ここでの説明のために、この追加のカメラはカメラ300と呼ばれ、カメラ200に対して前述したように結像面及び距離測定能力の両方を有すると仮定される。
【0022】
多重センサ奥行き空間法では、ロボット作業空間内の障害物による実際の空間的な占有を判定することで遮蔽問題を克服するため、奥行きグリッドマップ310が構築される。奥行きグリッドマップ310は、カメラ中心点202から放射される先細形状の六面体の3D体積グリッドである。カメラ200(主カメラ)からのデータが、奥行きグリッドマップ310の全体的なセル構造を構築するのに使用される。奥行きグリッドマップ310のセル構造は、カメラ200からのすべての画像に対して一定に保たれ、奥行きグリッドマップ310は好ましくは実質的にロボット作業空間の可動範囲全体を網羅する。
【0023】
カメラ200からの各カメラ画像に対して、障害物点が前述したように特定される。そして、各障害物点は奥行きグリッドマップ310内の対応する占有されたセルに割り当てられる。例えば、障害物点220は、奥行きグリッドマップ310内の占有されたセル320に対応する。セル320は、カメラ200から障害物点220までの距離d2に基づいて占有されたことがわかる。多重センサ奥行き空間法では、カメラ300(第2カメラ/センサ)からのデータが、占有されたセル(カメラ200からは遮蔽されている)の「後ろにある」セルが障害物により遮蔽されているかどうかを判定するのに使用される。セル330及びセル340は、カメラ200から見て占有されたセル320の「後ろにある」。したがって、カメラ300からのデータは、セル330、340が実際には障害物により占有されているかどうかを判定するために使用される。例えば、障害物点220がほとんど奥行きのない薄い物体上にある場合は、セル330、340は空いている。奥行きグリッドマップ310内のすべてのセルは、このようにして占有されているか、空いているかを判定される
【0024】
奥行きグリッドマップ310内のセルの占有状態が判定されると、ロボット・障害物間最小距離を、ロボット上の各制御点から奥行きグリッドマップ310内の占有された各セルまでの距離を計算することで算出することができる。この多重センサ奥行き空間法は、追加のセンサからのデータを用いることで遮蔽問題をほぼ克服する。しかし、大きい作業空間に対して、奥行きグリッドマップ310(実際には図3に示されるよりずっと細かく、数千の画素を有する画像に基づいている)は数十万のグリッドセルを容易に含みうる。それゆえ、結果としてロボット制御点までの最小距離の計算は計算負荷が法外に高くなりうる。
【0025】
本開示は、単一カメラによる奥行き空間法の遮蔽問題及び多重センサ奥行き空間法の計算の複雑度の問題を克服するために開発された手法について記載する。本開示は、ロボットと物体の間の最小距離を計算する方法について記載し、この方法は評価の必要がある点の個数を劇的に削減し、単一カメラ構成、又は多数のカメラによる構成のいずれかに適用することができる。この方法は、以下の図に対して説明される。
【0026】
図4A図4Dは、ロボットと障害物の間の最小距離を計算するのに使用され、最終的に奥行き情報を用いた障害物のエッジ検出に至る、本開示の実施形態に係る一連の画像を示す。図4A図4Dの画像処理ステップは、開示される効率的な最小距離計算手法の基盤を提供する。
【0027】
図4Aは、開示される処理ステップのいずれよりも前におけるロボット作業空間402のカメラ画像400を示す。画像400は、当技術分野で知られている、前述した種類の3Dカメラからのデジタル画像である。画像400は、制御装置420、パイプ422、ドア424、床426などの背景物体と共にロボット410を含む。また、画像400は、物体432を保持して作業空間402に入った人間430も含む。人間430及び物体432は、ロボット410が検出、回避する必要のある障害物を表現している。
【0028】
図4Bは、ロボット410が「取り去られた」(デジタル的に削除された)画像440を示す。人間430及び物体432は、図を明確にするために、単純に画像440から省かれている。ロボット410は床426へ固定される基部と、そのすべてが作業空間402を動き回るいくつかのロボットアームを有する。(CADモデルからの、又は幾何学的プリミティブを用いて近似された)既知のロボットアーム形状及び制御装置420でわかっているロボットの姿勢データ(関節位置)を用いて、画像440内のロボットアームの位置を各画像時間ステップにおいて算出することができる。ロボット410を含む、計算して求められる画素は、白い空間442により示されるように、画像440から取り去られている。画像440内のロボットアームの位置は、カメラの位置及び姿勢があらかじめ作業空間座標系に対して較正されている限り算出することができて、ロボット運動学及びアーム形状は前述したように与えられる。ロボット410を取り去ることで、動的物体(障害物)に関連しない画素を除去する更なる処理を行う画像440が簡単になる。
【0029】
別の実施形態では、画像400は分析されて、ロボット410の認識可能な構成要素(アーム、関節、アームエンドツール)が検出され、ロボット410の画像400で視認できるそれらの部品のみが取りされられて画像440が作られる。この手法は、カメラとロボット410の間にある動的物体の一部分を意図せず取り去ることを防ぐ。
【0030】
図4Cは、背景物体420~426のエッジの画素のみを含む画像450を示す。背景物体420~426は移動しない。この事実を使って、別の画像処理ステップで背景物体420~426を除去することができる。(障害物がない)画像440などの画像、あるいは障害物がなくロボット400が異なる位置にある多数の画像を処理して、背景物体420~426のエッジを含む画素を検出することができる。結果は画像450として記憶されて、開示の方法において更なる画像処理に使用することができる。
【0031】
開示の方法の一実施形態では、エッジ画素のみを含む中間画像を作るためにエッジフィルタ処理が画像400(図4A)に対して行われ、ロボット及び背景物体はエッジのみの中間画像から取り去られる。他の実施形態では、エッジフィルタ処理ステップは、ロボットを取り去った後などのプロセス内の異なる点において行われることがある。
【0032】
図4Dは、人間430及び物体432のエッジ画素のみを含む画像460を示す。画像460は、原画像400から始めて、エッジフィルタ処理を行って第1処理画像でエッジ画素のみを残し、前述したようにロボットのエッジ画素(図4B)及び背景物体のエッジ画素(図4C)を取り去ることで、画像460が作られる。画像460は作業空間402内の動的物体(すなわち、ロボットと背景以外の物、つまり潜在的障害物)のエッジ画素のみを含む。画像460内の画素のそれぞれは、画像400を撮影した3Dカメラにより与えられる奥行き値を有する。画像460の画素奥行きデータにおける「穴」(3Dカメラ画像において一部の画素は、前方の物体の周辺の奥行き信号がしばしば遮断されるために、奥行きデータが欠けていることがある)は、隣接画素での(カメラからの)最小の奥行きを用いて埋めることができて、これにより、奥行き値を背景からではなく動的物体から確実に取ることができる。
【0033】
前述した画像処理及び分析に基づいて、画像460内の各画素は結像面におけるx座標及びy座標と、カメラからの奥行き値を有し、それゆえ各画素は作業空間座標系内でのその画素の3D座標により表すことができる。ロボット制御点の3D座標は、図2に対して前述したように既知である。したがって、画像460内の画素のそれぞれとロボット制御点の間の3D距離を算出することができる。しかし、画像460内の画素(動的物体、つまり人間430及び物体432を表す)がロボットよりもカメラにより近い場合、3D距離が物体430、432とロボットの間の最小距離になるという保証はない。それどころか、遮蔽と、物体430、432の後ろで任意の、又はすべての点が占有されるために、最悪の場合の物体430~432とロボット制御点の間の最小(最短)距離は、図2に関して記載されたように、カメラ結像面に平行な平面へ投影された距離として計算する必要がある。この最悪の場合は、カメラからの物体430、432の画素までの距離がロボット制御点からカメラまでの距離より小さい場合のみに、遮蔽に基づいた距離計算が適用される。それ以外の場合は、各画素から各ロボット制御点への実際の3D距離の計算が使用される。
【0034】
図5は、ロボットと障害物の間の最小距離を計算するための方法とデータの流れを表す、本開示の実施形態に係るフローチャート図500である。3Dカメラ502が左に示されており、線504ですべてのカメラ時間間隔において新しい画像を提供する。カメラ時間間隔又は時間ステップは、毎秒10~30フレームの範囲などの任意の適切なフレームレートに基づきうる。また、より高い、又はより低いフレームレートを使用することもできる。線504上の画像は2つの平行なトラック、すなわち、カラー画像510を用いる画素処理(上側)トラックと奥行き画像520を用いる奥行き処理(下側)トラックで処理される。
【0035】
カラー画像510を用いてエッジフィルタ処理が図形512において行われて、中間処理画像が作られる。前述したように、エッジフィルタ処理により、カラー画像510の画像内容のエッジ画素のみを含むバージョンが作られる。図形514において、中間処理画像に対してロボット及び背景が取り去られて、処理後の最終画素画像が作られる。ロボット及び背景は、前述したようにそれぞれ図4B及び図4Cで示されたように取り去られる。処理後の最終画素画像は、カラー画像510にあった任意の動的物体(つまり、ロボット及び背景が除去された後に残ったもの)のエッジ画素のみを含む。処理後の最終画像の例が図4Dで示されている。
【0036】
奥行き画像520を用いて、奥行き穴埋めフィルタ処理が図形522で行われる。図形522における奥行き穴埋めフィルタステップは、奥行きデータが欠けている画素に奥行き値を提供する。これは、前方の物体が近隣の画素の背景物体からの奥行き信号を遮断することで生じうる。奥行きデータの穴は、隣接画素における(カメラからの)最小奥行き値を用いて埋められ、これにより、奥行き値をドアや壁などの背景物体ではなく前方にある動的物体から確実に取ることができる。
【0037】
障害物のエッジ画素奥行き画像530が、ロボット及び背景が取り去られた後の処理後の最終画素画像(図形514)と奥行き穴埋めフィルタ処理後の画素奥行きデータ(図形522)から作成される。障害物のエッジ画素奥行き画像530はカラー画像510からの障害物(動的物体)のエッジを表す画素のみを含み、奥行き画像520から与えられる各画素の奥行きデータを有する。前述した図4Dは、障害物のエッジ画素奥行き画像530を表している。
【0038】
判断記号540において、障害物のエッジ画素奥行き画像530があらかじめ規定された閾値を超える画素数を含むかどうかが判定される。カメラ画像内に動的物体が存在しないとしても、図5の画像処理ステップは障害物のエッジ画素奥行き画像530に少数の「ノイズ」画素を生じる可能性が高い。判断記号540での閾値確認は、画像内(及びロボット作業空間内)に動的物体が実際に存在するかどうかを判定することを意図している。つまり、十数個か二十数個の画素だけが障害物のエッジ画素奥行き画像530に残っている場合は、画像内に動的物体が存在しない可能性が高い。その一方で、数百個か数千個の画素が障害物のエッジ画素奥行き画像530に残っており、図4Dにあるような特徴的な形状を規定している場合は、これは明らかに画像内の実物体を表現している。判断記号540における閾値確認は、画像内の単なる「ノイズ」画素と実物体とを区別するよう任意の適切な方法で設計することができる。判断記号540において閾値を上回らない場合、これは画像内に動的物体が存在しないことを示し、プロセスは線504でのカメラ502からの次の画像の受信へと戻る。
【0039】
判断記号540において閾値を上回る場合、これは画像内に動的物体が存在することを示し、図形550において障害物のエッジ画素奥行き画像530内の各画素から各ロボット制御点までの距離が計算される。カメラから障害物のエッジ画素奥行き画像530内の画素までの距離がカメラからロボット制御点までの距離より小さい場合、図形550における計算は前述の遮蔽の想定に基づく。カメラから障害物のエッジ画素奥行き画像530内の画素までの距離がカメラからロボット制御点までの距離より大きい場合、図形550における計算は画素の座標から制御点の座標までの実際の3D距離に基づく。
【0040】
遮蔽のない状況(物体からカメラまでよりもロボットがカメラにより近い場合)では、図形550における3D距離の計算は、まず障害物のエッジ画素奥行き画像530内の各画素を画像座標系(結像面でのx/yに奥行きを加えたもの)から前述され、図示されたロボット作業空間座標系へと置き換えることで行われる。作業空間座標系におけるロボット制御点の座標は、やはり前述したように、ロボットの姿勢から既にわかっている。そして、障害物のエッジ画素奥行き画像530内の画素から制御点までの実際の3D距離の計算が3次元での座標の差分の平方和を用いて行われる。
【0041】
遮蔽された状況(カメラから物体よりもロボットがカメラから遠い場合)では、図形550における距離の計算は、障害物のエッジ画素奥行き画像530内の画素の後ろにあるすべての空間が物体により占有されていると仮定して行われる。したがって、距離は、前述したようにカメラ結像面に平行な平面における画素から制御点までの見かけの距離として計算される。
【0042】
図形560において、動的物体からロボットまでの最小距離が図形550での(すべての画素及び制御点に対する)距離計算の最小値として提供される。図形560における最小距離が閾値より小さい場合、ロボット制御装置は、ロボット運動プログラムの衝突を確実に防止する計算に、動的物体の存在を含める。ロボット制御装置は、一つの最小距離だけでなくより多くのデータを考慮することがある。例えば、最小距離が閾値より小さい場合、ロボット制御装置は、衝突防止の計算を行う際に、ロボット上の任意の点から特定の距離以内にあるすべての障害物の画素を考慮に入れることがある。動的物体からロボットまでの最小距離(及び、場合によっては他の画素からロボットまでの距離データ)が図形560において提供され、プロセスは線504でのカメラ502からの次の画像の受信へと戻る。
【0043】
図5の方法は、図4の制御装置420などのロボット制御装置自体の上で行われうる、あるいは画像処理及び最小距離計算用に提供される独立したコンピュータ上で行われうる。制御装置420は、当技術分野で知られるように、ロボット関節運動指令を算出する。独立したコンピュータがロボット・障害物間最小距離を算出するのに使用される場合、最小距離ベクトル(及び、場合によっては他の画素とロボットの間の距離データ)を各画像ステップにおいてロボット制御装置へ与えることができて、その結果、制御装置は与えられたロボット・障害物間最小距離に基づいて衝突防止の検討も含めて関節運動の計算を実行することができる。
【0044】
図4A図4Dの連続した画像処理及び図5のフローチャート図500は、いずれもロボット作業空間の画像を提供する単一の3Dカメラに基づいている。同じ手法を、以下に記載するように多重カメラシステムに適用することができる。
【0045】
図6は、ロボットと障害物の間の最小距離を計算するための多重カメラシステムを示す上面図であり、各カメラは本開示の実施形態に係る図5の計算方法を独立して適用する。図5の方法は、未知の物体又は動的物体がロボット作業空間へ入ってきた場合にエッジ画素のみを計算に用いてロボット・障害物間最小距離の効果的で効率的な計算を提供する。しかし、単一のカメラでは遮蔽はなおも問題となりえて、カメラに実際の3Dロボット・障害物間距離よりもずっと小さい、見かけの(控えめの、最悪の場合の)ロボット・障害物間距離を算出させてしまう。
【0046】
図6は、図4及び図5の手法を多数のカメラへと非常に単純に拡大して、遮蔽された状況での最小距離の精度を向上させることのできる方法を示す。ロボット600は前述したように作業空間内で動作する。3Dカメラ610、610、630は作業空間の周縁部付近に配置されて、異なる視点の画像を提供する。作業空間へ入る動的物体(人々、フォークリフトなど)は床の上を移動する可能性が高いので、カメラ610~630は典型的には略水平に向けられる、つまり、カメラが水平から±20°以内のベクトルへ向けられ、カメラ結像面は垂直から±20°以内のベクトルへ向けられる。
【0047】
カメラ610、620、630はハードウェア接続又は無線でコンピュータ640と通信を行う。コンピュータ640は画像処理及び最小距離の計算を行って、最小距離の結果を、当技術分野で知られる方法でロボット600と通信を行ってロボット600を制御する制御装置650へ提供する。あるいは、コンピュータ640は取り除かれることがあり、制御装置650はカメラ610、620、630からの画像を受信して、自分で画像処理及び最小距離の計算を行う。
【0048】
カメラ610、620、630のそれぞれは、特定のカメラから生じる三角形で示されている視野を有する。カメラ610は視野612を有し、カメラ620は視野622を有し、カメラ630は視野632を有する。視野612、622、632は、図6では明確化のためにそれぞれ2回ラベルが付けられている。動的物体640(人)がロボット作業空間へ入り、視野612、622、632のすべての内側にいる。物体640は、それぞれのカメラの視野内に視野方向に沿った遮蔽領域を作り出す。遮蔽領域614は視野612(カメラ610)内で物体640の視野方向に作り出され、遮蔽領域624は視野622(カメラ620)内で物体640の視野方向に作り出され、遮蔽領域634(非常に小さい)は視野632(カメラ630)内で物体640の視野方向に作り出される。
【0049】
図4及び図5に対して前述したエッジ画素距離計算法を用いて、ロボット・障害物間最小距離をカメラ610、620、630のそれぞれに対して算出することができる。まず、カメラ610及びカメラ610の視野612について検討する。ロボット600からカメラ610までよりも、物体640はカメラ610により近い。それゆえ、遮蔽された状況が存在し、物体640が遮蔽領域614を占有していると想定する必要がある。図5に対する前述した画像処理ステップの後に、カメラ610は、線616とラベルが付けられた、遮蔽に基づいたロボット・障害物間最小距離を算出する。
【0050】
今度は、カメラ620及びカメラ620の視野622について検討する。ロボット600からカメラ620までよりも、物体640はカメラ620により近い。それゆえ、遮蔽された状況が存在し、物体640が遮蔽領域624を占有していると想定する必要がある。図5に対する前述した画像処理ステップの後に、カメラ620は、線626とラベルが付けられた、遮蔽に基づいたロボット・障害物間最小距離を算出する。
【0051】
今度は、カメラ630及びカメラ630の視野632について検討する。カメラ630からロボット600までよりも、物体640はカメラ630からより遠い。それゆえ、遮蔽された状況は存在せず、遮蔽領域634は最小距離の計算で使用されない。その代わりに、カメラ630に対してはエッジ画素とロボット制御点の間の実際の3D距離が算出されて、最小距離の計算で使用される。図5に対する前述した画像処理ステップの後に、カメラ630は、線636とラベルが付けられた、実際のロボット・障害物間最小距離を算出する。
【0052】
3つのカメラすべてに対する計算の後には、ロボット・障害物間最小距離616がカメラ610に対して存在し、ロボット・障害物間最小距離626がカメラ620に対して存在し、ロボット・障害物間最小距離636がカメラ630に対して存在する。この時点で、3つの最小距離のうち最大のものを実際の値として問題なく選ぶことができるが、これは、異なる観測点から見た場合の実際の3D距離はそうした観測値のうちの最大のものよりも決して小さくならないからである。この事実は、最小距離616及び626が人為的に小さくなる遮蔽の想定で明らかになる。それゆえ、最小距離636が3つのカメラの中で最も正確な値として選択され、この距離が制御装置650によるロボット衝突防止運動計画の計算で使用される値である。
【0053】
図7は、図6の多重カメラシステムを用いてロボットと障害物の間の最小距離を計算する方法を表す、本開示の実施形態に係るフローチャート図700である。ステップ710において、カメラ1として識別される第1の3Dカメラから画像フレームが得られる。前述したように、図7(及び前述した図6の)のカメラのそれぞれはあるフレームレート、通常は1秒あたり多くのフレームで画像の連続した流れを提供する。図形712において、エッジフィルタ処理が画像に適用されて、その結果、エッジ画素のみを有する中間処理画像が得られる。図形714において、ロボット及び静的な背景が図形712の中間処理画像から取り去られ、その結果、前述したように動的物体のエッジのみを含む画像が得られる。図形716において、(カメラからの)奥行きデータが動的物体のエッジ画像に残る物体画素に適用される。奥行きデータを動的物体のエッジ画像に適用した後に、図形718において、ロボット制御点に対する物体エッジ画素の最小距離が、真の3D距離として、又は前述した遮蔽の想定に基づいて算出される。図形718での最小距離の計算により、現在の画像フレームに対するカメラ1からの最小距離値が提供され、この値は図6に描かれている距離616と一致する。
【0054】
ステップ720において、カメラ2として識別される第2の3Dカメラから画像フレームが得られる。カメラ2からの画像は図形722~728において処理され、現在の画像フレームに対するカメラ2からの最小距離値を提供する距離計算が図形728において行われ、この値は図6に描かれている距離626と一致する。
【0055】
ステップ730において、カメラNとして識別される次の3Dカメラから画像フレームが得られる。カメラNからの画像は図形732~738において処理され、現在の画像フレームに対するカメラNからの最小距離値を提供する距離計算が図形738において行われる。Nの値が3の場合、図形738で算出される距離は図6の距離636と一致する。
【0056】
図形740において、図形718、728、738で算出された最小距離のうち最大のものが現在のカメラ画像時間ステップでのロボット・障害物間最小距離を最も正確に表現しているものとして選択される。図6に関して前述したように、複数のカメラのうちの一部から算出された最小距離は遮蔽の想定のために人為的に小さくなることがあり、多数のカメラから算出された最大の最小距離が最も正確な値であることがわかっている。
【0057】
図7の多重カメラによる方法は、2つ以上の任意の複数の数のカメラに適用することができる。カメラの台数が多いほど(図形740での)、最終的な最小距離値はより正確になる。図7の方法でカメラの台数を増やしても計算負荷の増加は最小限であり、これは各カメラの最小距離が独立して並列的に算出されて、最終的には単純に最大値の選択が必要になる(図形740)だけとなるからである。これは、多数のカメラにより3D奥行きグリッドが作り出され、異なるカメラからのデータの相互関係にまつわる複雑な計算が伴う、図3で示される前述の先行技術の方法とは対照的である。
【0058】
さらに、図6及び図7の本開示の手法では、カメラがロボット作業空間座標系に対して較正されることだけが必要となる。本開示の方法ではカメラを互いに対して較正する必要はないが、これはささいな運動ではなく、正確に行われなければ図3に示される奥行きグリッドで誤差が生じる。
【0059】
図8A及び図8Bは、実際の測定値に密接に相関するロボット・障害物間最小距離を求めるために、本開示の実施形態に係る図6のシステム及び図7の方法がどのように適用されるかを表す、異なる視点を有する2つのカメラで同時に撮影された場面を示す。図8Aは、図示されていない第1カメラから撮影されたロボット作業空間の画像を表す。ロボット800は、制御装置810により制御されて作業空間内で動作している。また、物体830を保持している人820を含む動的物体が作業空間内に存在する。図8Bは、図示されていない第2カメラから撮影された画像内のロボット作業空間を表す。ロボット800、制御装置810、人820、及び物体830も図8Bの画像内に見える。図8A及び図8Bは、実質的に同時に、つまり2つのカメラが同じフレームレートで動作する直近のカメラ時間ステップにおいて、図7の方法を用いて処理することができるように異なるカメラを用いて撮影された2つの画像を表している。
【0060】
図8A及び図8Bは、図6のシステム及び図7の方法の2つのカメラの場合の例を示す。図8Aでは、床の上の人820及びロボット800の位置から、ロボット800から第1カメラまでよりも人820及び物体830は第1カメラにより近いことが明らかである。したがって、遮蔽された状況が存在し、第1カメラから見て人820及び物体830の「後ろにある」空間は占有されたと想定する必要がある。図4の画像処理手法及び図5の方法を第1カメラに適用することで、遮蔽に基づいたロボット・障害物間最小距離が線840で示されるように特定される。最小距離の線840はカメラ結像面に平行な平面内で測定される。
【0061】
図8Bで、人820及び物体830は第2カメラから、第2カメラからロボット800までとほぼ同じ距離にある。したがって、遮蔽があったとしてもわずかである。図4の画像処理手法及び図5の方法を第2カメラに適用することで、ロボット・障害物間最小距離が線850で示されるように特定される。最小距離の線850がカメラ結像面に平行な平面内と実際の3D作業空間座標内のどちらで測定されているに関わらず、線850の長さは線840の長さよりかなり長くなる。
【0062】
図7の方法を用いて、図8A及び図8Bに描かれた場面に対するロボット・障害物間最小距離は、第1カメラと第2カメラにより特定された2つの最小距離のうちのより大きな方である線850(図8B)として選択される。
【0063】
図9A図9Cは、3つの異なる障害物の状況と、各状況でその結果もたらされる本開示の実施形態に係る3つのカメラによるシステムを用いた最小距離の計算を示す。同時に異なるカメラにより撮影された同じ場面の画像である図8A/8Bとは異なり、図9A図9Cは異なる時刻に撮影された同じカメラからの3つの異なる画像を示し、動的物体は場面ごとに新しい場所へと動く。作業空間の周囲でのカメラの場所に対する障害物の場所の関係が各カメラの算出された最小距離に影響を与えることを示すために、図9A図9Cのそれぞれは別々に論じられる。それぞれの状況において、実際のシステムテストでの距離値が各カメラに対して列挙されている。
【0064】
カメラ910は、図9A図9Cに描かれるように、作業空間の「前方中央」に置かれる。つまり、図9A図9Cは、カメラ910の視点から示されている。図9A図9Cに描かれているように、カメラ920は作業空間の「後方左」に置かれ、カメラ930は作業空間の右側中央に置かれる。図9A図9Cのそれぞれにおいて、制御装置902を伴うロボット900は作業空間内で動作する。ロボット900は、図9A図9Cのそれぞれにおいて同じ姿勢で描かれている。人940は物体950を保持していて、人940及び物体950はロボット900に対する潜在的障害物を表現しており、人940及び物体950は作業空間の中へ、作業空間の外へ、作業空間の周辺を動くことができるという点で動的である。
【0065】
図9Aでは、人940は作業空間の「前方左」にいて、自身の腕を基本的に水平にして作業空間の中心へと突き出しながら物体950を保持している。この状況ではカメラ910はロボット900までよりも物体950にずっと近いので、カメラ910は間違いなく遮蔽された状況にある。しかし、物体950とロボット900の間には横方向と垂直方向にかなりの距離があるので、カメラ910は約69センチメートル(cm)の遮蔽に基づいたロボット・障害物間最小距離を認識する。また、カメラ920もロボット900までよりも物体950により近いので、カメラ920は遮蔽された状況にある。遮蔽の想定と、物体950とロボット900の相対的位置のために、カメラ920は約39cmの遮蔽に基づいたロボット・障害物間最小距離を認識する。カメラ930は物体950までよりもロボット900により近いので、カメラ930は遮蔽された状況にはない。それゆえ、カメラ930は、物体950のエッジ画素及びロボット900上の制御点の実際の3D座標に基づいてロボット・障害物間最小距離を算出する。実際の3D座標を用いて、カメラ930は約82cmのロボット・障害物間最小距離を算出する。図7の方法によれば、3つのカメラの最小距離のうち最大のものが最も正確なものとして選択される。したがって、カメラ930からの82cmの最小距離が選択される。この最小距離値は、好ましくは図9Aの状況に対して実際の作業空間に配置されたモーションキャプチャシステムにより測定された81cmの最小距離と同等である。
【0066】
図9Bでは、人940は作業空間の前方、中心より左にいて、自身の腕を基本的に水平にして作業空間の中心へと突き出しながら物体950をいまだに保持している。この状況ではカメラ910はロボット900までよりも物体950にずっと近いので、カメラ910はいまだに遮蔽された状況にある。物体950とロボット900の間の横方向と垂直方向の距離はここでは図9Aにおけるよりも小さく、カメラ910は約35センチメートル(cm)の遮蔽に基づいたロボット・障害物間最小距離を認識する。また、カメラ920もロボット900までよりも物体950により近いので、カメラ920は遮蔽された状況にある。遮蔽の想定と、物体950とロボット900の相対的位置のために、カメラ920は約35cmのロボット・障害物間最小距離も認識する。カメラ930は物体950までよりもロボット900により近いので、カメラ930は今もなお遮蔽された状況にはない。それゆえ、カメラ930は、物体950のエッジ画素及びロボット900上の制御点の実際の3D座標に基づいてロボット・障害物間最小距離を算出し、この距離は約83cmである。図7の方法によれば、3つのカメラの最小距離のうち最大のものが最も正確なものとして選択され、カメラ930から83cmの最小距離となる。この最小距離値は、好ましくは図9Bの状況に対して実際の作業空間内にあるモーションキャプチャシステムにより測定された89cmの最小距離と同等である。
【0067】
図9Cでは、人940は作業空間の左側に沿って後方を向いていて、自身の腕を基本的に水平にして作業空間の中心へと突き出しながら物体950をいまだに保持している。この状況では、カメラ910は物体950及びロボット900からほぼ同じ距離にあるので、カメラ910は遮蔽された状況にあるかもしれないし、ないかもしれない。図4に示される画像処理手法及び図5の方法を用いて、物体950のエッジ画素からカメラまでの距離がロボットアーム上の制御点からカメラまでの距離より小さい場合は、遮蔽が想定される。適切な計算(遮蔽に基づいた投影、又は真の3D距離のいずれか)を用いて、カメラ910は約78cmのロボット・障害物間最小距離を算出する。図9Cでは、カメラ920は間違いなく遮蔽された状況にある。遮蔽の想定と、物体950とロボット900の相対的位置のために、カメラ920は約20cmの遮蔽に基づいたロボット・障害物間最小距離を認識する。図9Cでは、カメラ930は物体950までよりもロボット900により近いので、カメラ930は今もなお遮蔽された状況にはない。それゆえ、カメラ930は、物体950のエッジ画素及びロボット900上の制御点の実際の3D座標に基づいてロボット・障害物間最小距離を算出し、この距離は約77cmである。図7の方法によれば、3つのカメラの最小距離のうち最大のものが最も正確なものとして選択され、カメラ910から78cmの最小距離となる。この最小距離値は、好ましくは図9Cの状況に対して実際の作業空間内にあるモーションキャプチャシステムにより測定された78cmの最小距離と同等である。
【0068】
図9A図9Cの前述の説明は、図6のシステム及び図7の方法が、3つのカメラを用いて迅速で確実に正確な最小距離を求めるために、現実世界のロボット・障害物間の状況にどのように適用されるかを示すために提供される。議論のために、人940及び物体950が作業空間の右側前方にいる場合は、カメラ920は最大の(かつ、最も正確な)最小距離をもたらす可能性が高くなる。
【0069】
前述したように、図9A図9Cでは、制御装置902はカメラ910、920、930から画像を受信し、画像処理のすべてと、図4図9に関して前述した距離計算ステップを実行することができる。あるいは、画像処理のすべてと距離計算ステップを実行するために独立したコンピュータが提供されることがあり、その結果、動的物体が作業空間に存在するかどうかが判定され、存在する場合はロボット・障害物間最小距離がいくつであるかが求められる。いずれの場合も、動的物体が存在する場合は、ロボット・障害物間最小距離は制御装置902により使用されて、衝突防止戦略がロボット900に必要かどうかが判定される。
【0070】
前述の説明を通して、様々なコンピュータ及び制御装置が記載され、暗示された。これらのコンピュータ及び制御装置のソフトウェアアプリケーション及びモジュールは、プロセッサ及びメモリモジュールを有する1つ又は複数のコンピュータ装置上で実行されることを理解されたい。特に、これには前述したように図6のロボット制御装置650及びコンピュータ640(使用される場合)のそれぞれのプロセッサが含まれる。具体的には、制御装置650及び/又はコンピュータ640(使用される場合)のプロセッサは、前述の開示を通して記載された方法で、1つ又は複数のカメラからの画像に対して画像処理ステップを実行してロボット・障害物間最小距離を算出するよう構成される。同じことが図4図8図9に描かれたロボット制御装置にも当てはまり、この制御装置は独立したコンピュータを用いて、又は用いずに開示された計算を実行するのに使用可能である。
【0071】
上記で概説したように、ロボット作業空間内の動的物体までの最小距離を計算するための開示された手法は、先行技術の方法に対してかなりの利点を提供する。物体のエッジ画素を検出するための開示された画像処理ステップは、遮蔽が存在する、しないに関わらず、カメラに対する最小距離ベクトルの効率的な特定を提供する。多数のカメラを並列計算で組み合わせることで、正確な最小距離を迅速に、かつ先行技術の方法における時間がかかって誤差が生じやすいカメラの較正と3D奥行きグリッド計算を行うことなしに検出できる。
【0072】
ロボット作業空間内の動的物体までの最小距離を計算するための方法及びシステムの多数の好ましい態様及び実施形態が上で記載されたが、当業者はそれらに対する変更、置換、追加、及び副結合を認識するであろう。それゆえ、以下の添付の請求項及び今後導入される請求項は、すべてのそのような変更、置換、追加、及び副結合は請求項の真の趣旨及び範囲内であるので、そのような変更、置換、追加、及び副結合を含むと解釈されることを意図している。
図1
図2
図3
図4A
図4B
図4C
図4D
図5
図6
図7
図8A
図8B
図9A
図9B
図9C
【外国語明細書】