(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-30
(45)【発行日】2025-07-08
(54)【発明の名称】サーボシステムおよび処理方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20250701BHJP
B25J 9/22 20060101ALI20250701BHJP
G05B 19/4155 20060101ALI20250701BHJP
【FI】
B25J13/08 A
B25J9/22 A
G05B19/4155 S
(21)【出願番号】P 2021091183
(22)【出願日】2021-05-31
【審査請求日】2024-03-19
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】傅 健忠
(72)【発明者】
【氏名】青木 豪
(72)【発明者】
【氏名】長谷川 昂宏
(72)【発明者】
【氏名】長江 成典
(72)【発明者】
【氏名】香西 健太郎
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2021-058990(JP,A)
【文献】特開2012-125871(JP,A)
【文献】特開2014-035722(JP,A)
【文献】米国特許第8774967(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
G05B 19/18 ~ 19/416
19/42 ~ 19/46
(57)【特許請求の範囲】
【請求項1】
対象物を撮像して検出するセンサと、エンドエフェクタを備えるロボットとを有し、ビジュアルサーボを行うサーボシステムにおいて、
前記ロボットが初期姿勢から目標姿勢に至るまでの軌道であるサーボ軌道、および前記サーボ軌道の途中の時点であって前記ロボットのビジュアルサーボを開始する時点での前記ロボットの姿勢であるスタート姿勢を決定する処理装置と、
前記ロボットのコントローラと、を備え、
前記処理装置は、
前記ロボットの前記初期姿勢の情報と前記目標姿勢の情報とを取得する取得手段と、
1)前記スタート姿勢の複数の候補を決定し、2)前記複数の候補のいずれか1つを経由して前記初期姿勢から前記目標姿勢に前記ロボットの姿勢が変化する際の前記エンドエフェクタの複数の軌道を生成する計画手段と、
前記エンドエフェクタの複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補の中から、前記ビジュアルサーボの精度または速度に関する評価値の最も高い候補を前記サーボ軌道として決定し、当該サーボ軌道に対応するスタート姿勢の候補を前記スタート姿勢として決定する決定手段と、を有し、
前記コントローラは、
前記処理装置によって決定された前記サーボ軌道にしたがって前記ロボットの姿勢を変化させる制御を行うものであって、
前記ロボットの姿勢が前記初期姿勢から前記スタート姿勢に変化するまでの期間は、前記ビジュアルサーボを実行せずに前記ロボットの姿勢を制御し、前記ロボットの姿勢が前記スタート姿勢になった時点で前記ビジュアルサーボを開始することを特徴とするサーボシステム。
【請求項2】
前記計画手段は、前記初期姿勢と前記目標姿勢との間の姿勢の中から、前記スタート姿勢の複数の候補を決定する、
ことを特徴とする請求項1に記載のサーボシステム。
【請求項3】
前記サーボ軌道は、前記センサの軌道と、前記対象物の前記エンドエフェクタとの相対
的な位置変化の軌道と、前記センサが撮像する撮像画像における前記対象物の軌道との少なくともいずれかを含む、
ことを特徴とする請求項1または2に記載のサーボシステム。
【請求項4】
前記エンドエフェクタの複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補を生成し、前記サーボ軌道の複数の候補それぞれに従ったビジュアルサーボをシミュレーションするシミュレーション手段をさらに有し、
前記シミュレーション手段は、シミュレーション結果に基づき、前記サーボシステムの軌道の複数の候補のそれぞれを補正し、
前記決定手段は、補正された前記サーボ軌道の複数の候補の中から前記サーボ軌道を決定する、
ことを特徴とする請求項1から3のいずれか1項に記載のサーボシステム。
【請求項5】
前記コントローラは、第1のコントローラと第2のコントローラを有し、
前記第1のコントローラは、前記エンドエフェクタの複数の軌道のそれぞれに対応する前記エンドエフェクタの位置姿勢を決定し、
前記第2のコントローラは、前記第1のコントローラが決定した前記エンドエフェクタの位置姿勢を実現する前記ロボットの姿勢を制御し、
前記シミュレーション手段は、前記第1のコントローラをエミュレートする第3のコントローラと、前記第2のコントローラをエミュレートする第4のコントローラとを有し、前記3のコントローラおよび前記第4のコントローラを用いて、前記ビジュアルサーボをシミュレーションする、
ことを特徴とする請求項4に記載のサーボシステム。
【請求項6】
前記サーボ軌道の複数の候補のそれぞれを評価する評価手段をさらに有する、
ことを特徴とする請求項1から5のいずれか1項に記載のサーボシステム。
【請求項7】
前記評価手段は、前記サーボ軌道の複数の候補のそれぞれに従って前記ビジュアルサーボを実行した場合における、前記ロボットの移動に関するタスクスコアと前記対象物の検出に関するセンシングスコアとに基づき、前記サーボ軌道の複数の候補のそれぞれの評価値を算出する、
ことを特徴とする請求項6に記載のサーボシステム。
【請求項8】
前記タスクスコアは、前記ロボットの移動に要する時間と、前記ビジュアルサーボの終了時点の前記ロボットの姿勢と前記目標姿勢との差分との少なくともいずれかに基づくスコアである、
ことを特徴とする請求項7に記載のサーボシステム。
【請求項9】
前記サーボシステムは、前記対象物を検出可能であり、
前記センシングスコアは、ビジュアルサーボの実行中の、予想される無効な検出の総数と、前記サーボシステムが物体を検出可能な範囲である検出可能範囲と前記対象物との距離と、予想される検出誤差の総数との少なくともいずれかに基づくスコアである、
ことを特徴とする請求項7または8に記載のサーボシステム。
【請求項10】
前記予想される無効な検出の総数とは、前記センサが撮像を実行した回数のうち、前記センサの視野範囲または前記検出可能範囲に前記対象物の第1の割合以上が含まれないこと、前記センサが撮像する撮像画像において前記対象物の全体の第2の割合以上の領域に対して他の物体が重複していることとの少なくともいずれかが発生している数である、
ことを特徴とする請求項9に記載のサーボシステム。
【請求項11】
前記計画手段は、前記スタート姿勢の複数の候補を、所定の範囲内に位置する前記エンドエフェクタの複数の位置姿勢のそれぞれに対応する前記ロボットの複数の姿勢の中から決定する、
ことを特徴とする請求項1から10のいずれか1項に記載のサーボシステム。
【請求項12】
前記計画手段は、前記センサが撮像する際に前記センサと前記対象物との間に他の物体が配置されていない前記センサの複数の位置姿勢であって、かつ、前記センサの視野範囲に前記対象物が含まれる前記センサの複数の位置姿勢のそれぞれに対応する前記ロボットの複数の姿勢の中から、前記スタート姿勢の複数の候補を選択する、
ことを特徴とする請求項11に記載のサーボシステム。
【請求項13】
対象物を撮像して検出するセンサと、エンドエフェクタを備えるロボットとを有し、ビジュアルサーボを行うサーボシステムに関して、
前記ロボットが初期姿勢から目標姿勢に至るまでの軌道であるサーボ軌道、および前記サーボ軌道の途中の時点であって前記ロボットのビジュアルサーボを開始する時点での前記ロボットの姿勢であるスタート姿勢を決定する決定処理と、
決定された前記サーボ軌道にしたがって前記ロボットの姿勢を変化させる制御を行う制御処理と、を含む処理方法であって、
前記決定処理は、
前記ロボットの前記初期姿勢の情報と前記目標姿勢の情報とを取得する取得ステップと、
1)前記スタート姿勢の複数の候補を決定し、2)前記複数の候補のいずれか1つを経由して前記初期姿勢から前記目標姿勢に前記ロボットの姿勢が変化する際の前記エンドエフェクタの複数の軌道を生成する計画ステップと、
前記エンドエフェクタの複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補の中から、前記ビジュアルサーボの精度または速度に関する評価値の最も高い候補を前記サーボ軌道として決定し、当該サーボ軌道に対応するスタート姿勢の候補を前記スタート姿勢として決定する決定ステップと、を有し、
前記制御処理では、前記ロボットの姿勢が前記初期姿勢から前記スタート姿勢に変化するまでの期間は、前記ビジュアルサーボを実行せずに前記ロボットの姿勢を制御し、前記ロボットの姿勢が前記スタート姿勢になった時点で前記ビジュアルサーボを開始することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、サーボシステム、処理方法、およびプログラムに関する。
【背景技術】
【0002】
センサが取得する視覚的情報(画像)に基づき、ロボットの動作を制御するビジュアルサーボと呼ばれる技術がある。ロボットは、例えば、ビジュアルサーボを実行することにより、エンドエフェクタが把持する把持物体を、対象物の上に置くなどの処理を実現する。
【0003】
特許文献1では、ビジュアルサーボを行う場合におけるロボットの軌道を、カメラ(センサ)が取得した画像の特徴量などに基づき、算出する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
一方で、ビジュアルサーボでは、センサが取得する画像において把持物体や対象物が見切れてしまうことや、互いに重なり合ってしまうことがある。この点、特許文献1では、3次元空間における移動禁止領域を避けたロボットの軌道を算出することを開示しているのみで、センサが取得する画像において把持物体や対象物が見切れてしまうことや、互いに重なり合ってしまうことを考慮していない。このため、従来では、センサが取得した画像に把持物体や対象物のごく一部しか含まれていないことがあり、ビジュアルサーボの精度または/および速度が低下するという課題があった。
【0006】
そこで、本発明は、ビジュアルサーボの精度または速度を向上させる技術の提供を目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために本発明は、以下の構成を採用する。
【0008】
すなわち、本発明の一側面に係る処理装置は、対象物を撮像して検出するセンサと、エンドエフェクタを備えるロボットとを有し、ビジュアルサーボを行うサーボシステムにおいて、前記サーボシステムに関する少なくとも1つの軌道であるサーボ軌道、および前記ビジュアルサーボの開始時点の前記ロボットのスタート姿勢を決定する処理装置であって、前記ロボットの初期姿勢の情報と、前記ビジュアルサーボの終了時点の前記ロボットの目標姿勢の情報とを取得する取得手段と、1)前記スタート姿勢の複数の候補を決定し、2)前記複数の候補のいずれか1つを経由して前記初期姿勢から前記目標姿勢に前記ロボットの姿勢が変化する際の前記エンドエフェクタの複数の軌道を生成する計画手段と、前記エンドエフェクタの複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補の中から、前記ビジュアルサーボの精度または速度に関する評価値の最も高い候補を前記サーボ軌道として決定し、当該サーボ軌道に対応するスタート姿勢の候補を前記スタート姿勢として決定する決定手段を有する。
【0009】
このような構成によれば、ビジュアルサーボの開始時におけるロボットのスタート姿勢を、ユーザが手動で設定することなく決定できる。つまり、ユーザのビジュアルサーボに
おける負担が軽減できる。さらに、複数のサーボ軌道の候補の中から評価値が最も高い制御軌道がサーボ軌道として選択される。このため、サーボ軌道を、ロボットが動きやすい軌道、または/および、対象物を把握しやすい位置にセンサが移動するような軌道に決定できる。このため、例えば、対象物に把持物体を接続する動作を行うビジュアルサーボが失敗する確率を低減できる。つまり、ビジュアルサーボの精度を向上することができる。そして、ビジュアルサーボに要する時間を低減できる。
【0010】
上記の処理装置において、前記計画手段は、前記初期姿勢と前記目標姿勢の間の姿勢の中から、前記スタート姿勢の複数の候補を決定してもよい。初期姿勢と目標姿勢の間の姿勢とは、例えば、初期姿勢から目標姿勢にロボットの姿勢が変化するように計画手段が所定のアルゴリズムに従ってロボットの姿勢の変化を生成した場合に、当該変化において経由することになる姿勢である。このような構成によれば、スタート姿勢を経由する初期姿勢から目標姿勢への変化をより効率的な変化に決定することができるので、ロボットがより効率的に実現しやすい軌道にサーボ軌道をすることができる。
【0011】
上記の処理装置において、前記センサの軌道と、前記対象物の前記エンドエフェクタとの相対的な位置変化の軌道と、前記センサが撮像する撮像画像における前記対象物の軌道との少なくともいずれかを含んでいてもよい。
【0012】
上記の処理装置において、前記エンドエフェクタの複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補を生成し、前記サーボ軌道の複数の候補それぞれに従ったビジュアルサーボをシミュレーションするシミュレーション手段をさらに有し、前記シミュレーション手段は、シミュレーション結果に基づき、前記サーボシステムの軌道の複数の候補のそれぞれを補正し、前記決定手段は、補正された前記サーボ軌道の複数の候補の中から前記サーボ軌道を決定してもよい。このような構成によれば、ビジュアルサーボのシミュレーションの結果に基づきサーボ軌道を決定できるため、エンドエフェクタが現実的に移動することのできる軌道に対応するサーボ軌道を決定できる。つまり、エンドエフェクタに課せられる稼働制約を満たすようなサーボ軌道を決定できる。
【0013】
上記の処理装置において、前記サーボシステムは、第1のコントローラと第2のコントローラを有し、前記第1のコントローラは、前記エンドエフェクタの複数の軌道のそれぞれに対応する前記エンドエフェクタの位置姿勢を決定し、前記第2のコントローラは、前記第1のコントローラが決定した前記エンドエフェクタの位置姿勢を実現する前記ロボットの姿勢を制御し、前記シミュレーション手段は、前記第1のコントローラをエミュレートする第3のコントローラと、前記第2のコントローラをエミュレートする第4のコントローラを有し、前記3のコントローラおよび前記第4のコントローラを用いて、前記ビジュアルサーボをシミュレーションしてもよい。このような構成によれば、ロボットの姿勢を制御する第2のコントローラに応じたシミュレーションの結果に基づきサーボ軌道を決定できるため、ロボットが現実的に移動することのできる軌道に対応するサーボ軌道を決定できる。つまり、ロボットに課せられる稼働制約を満たすようなサーボ軌道を決定できる。
【0014】
上記の処理装置において、前記サーボ軌道の複数の候補のそれぞれを評価する評価手段をさらに有していてもよい。
【0015】
上記の処理装置において、前記評価手段は、前記サーボ軌道の複数の候補のそれぞれに従って前記ビジュアルサーボを実行した場合における、前記ロボットの移動に関するタスクスコアと前記対象物の検出に関するセンシングスコアとに基づき、前記サーボ軌道の複数の候補のそれぞれの評価値を算出してもよい。このような構成によれば、ロボットが移動しやすく、かつ、対象物の全体を検出(撮像)できるサーボ軌道を決定できる。
【0016】
上記の処理装置において、前記タスクスコアは、前記ロボットの移動に要する時間と、前記ビジュアルサーボの終了時点の前記ロボットの姿勢と前記目標姿勢との差分との少なくともいずれかに基づくスコアであってもよい。タスクスコアがロボットの移動に要する時間に基づくスコアであれば、より早くロボットが移動できるサーボ軌道を決定できる。タスクスコアがビジュアルサーボの終了時点のロボットの姿勢と目標姿勢との差分であれば、より目標姿勢の近くにロボットの姿勢を変化させることができるサーボ軌道を決定できる。
【0017】
上記の処理装置において、前記サーボシステムは、前記対象物を検出可能であり、前記センシングスコアは、ビジュアルサーボの実行中の、予想される無効な検出の総数と、前記サーボシステムが物体を検出可能な範囲である検出可能範囲と前記対象物との距離と、予想される検出誤差の総数との少なくともいずれかに基づくスコアであってもよい。このような構成によれば、対象物をより正確に検出(撮像)できるサーボ軌道を決定できる。
【0018】
上記の処理装置において、前記予想される無効な検出の総数とは、前記センサが撮像を実行した回数のうち、前記センサの視野範囲または前記検出可能範囲に前記対象物の第1の割合以上が含まれないこと、前記センサが撮像する撮像画像において前記対象物の全体の第2の割合以上の領域に対して他の物体が重複していることとの少なくともいずれかが発生している数であってもよい。このような構成によれば、撮像画像などにおいて、センサから検出(撮像)できない場所に対象物が位置してしまうこと、または、対象物の前に所定の割合以上他の物体が重なってしまうこと(オクルージョンが発生してしまうこと)の発生回数を低減できるので、対象物のうちの検出できる範囲が狭くなってしまうことを抑制できる。
【0019】
上記の処理装置において、前記計画手段は、前記スタート姿勢の複数の候補を、所定の範囲内に位置する前記エンドエフェクタの複数の位置姿勢のそれぞれに対応する前記ロボットの複数の姿勢の中から決定してもよい。このような構成によれば、例えば、ユーザは、任意の大きさの所定の範囲(例えば、球状の範囲)を指定するだけで、処理装置がスタート姿勢を決定できる。このため。ユーザの処理負担が少なく、処理装置が適切なスタート姿勢を決定できる。
【0020】
上記の処理装置において、前記計画手段は、前記センサが撮像する際に前記センサと前記対象物との間に他の物体が配置されていない前記センサの複数の位置姿勢であって、かつ、前記センサの視野範囲に前記対象物が含まれる前記センサの複数の位置姿勢のそれぞれに対応する前記ロボットの複数の姿勢の中から、前記スタート姿勢の複数の候補を選択してもよい。このような構成によれば、オクルージョンが発生せず、かつ、対象物の全体が撮像できるセンサの位置姿勢に対応するロボットの姿勢を、スタート姿勢として決定することができる。このため、ビジュアルサーボの開始時に、より正確に対象物を検出(撮像)できる位置姿勢にセンサを配置することができる。
【0021】
さらに、本発明は、上記処理装置と、前記エンドエフェクタを有するロボットと、前記対象物を撮像するセンサと、前記処理装置が決定した前記サーボ軌道に応じて前記ロボットを動作させるとともに、前記ロボットが前記スタート姿勢に変化すると前記ビジュアルサーボを開始させるコントローラと、を有することを特徴とするサーボシステムであってもよい。このような構成によれば、上記のように、処理装置が決定した適切なサーボ軌道に基づき、ロボットやセンサを用いてビジュアルサーボを実行することができる。
【0022】
本発明は、上記手段の少なくとも一部を有する装置として捉えてもよいし、電子機器や制御システム、情報処理システム、情報処理装置、サーボ装置、システムとして捉えても
よい。また、本発明は、上記処理の少なくとも一部を含む制御方法、処理方法、サーボ方法、生成方法として捉えてもよい。また、本発明は、かかる方法を実現するためのプログラムやそのプログラムを非一時的に記録した記録媒体(記憶媒体)として捉えることもできる。なお、上記手段および処理の各々は可能な限り互いに組み合せて本発明を構成することができる。
【発明の効果】
【0023】
本発明によれば、ビジュアルサーボの精度または速度が向上する。
【図面の簡単な説明】
【0024】
【
図1】
図1は、サーボシステムを表す外観図である。
【
図2】
図2Aは撮像画像を表す図であり、
図2Bは検出可能範囲を説明する図であり、
図2Cは候補範囲を説明する図である。
【
図3】
図3は、制御装置および処理装置の内部構成図である。
【
図4】
図4は、適正軌道の決定処理を示すフローチャートである。
【発明を実施するための形態】
【0025】
以下、本発明を実施するための実施形態について図面を用いて記載する。
【0026】
<適用例>
以下では、ビジュアルサーボを実行するサーボシステム1において、ビジュアルサーボを実行する前に、ビジュアルサーボの実行開始時点でのロボット10のスタート姿勢および、ビジュアルサーボを実行する場合のサーボシステム1の適正軌道(サーボ軌道;センサ20や対象物2などの軌道)決定する技術を説明する。具体的には、サーボシステム1は、スタート姿勢の複数の候補を生成する。また、サーボシステム1は、スタート姿勢の複数の候補のいずれかを経由して初期姿勢から予め設定された目標姿勢(ビジュアルサーボの終了時点での目標となるロボット10の姿勢)に変化するようにロボット10を動かした場合の適正軌道の候補を生成する。そして、サーボシステム1は、複数の適正軌道の候補の中から、これらの適正軌道の評価値に基づき、1つの適正軌道を選択する。これにより、1つの適正軌道が選択されて、また、当該適正軌道に対応するスタート姿勢が選択される。ここで、評価値は、ビジュアルサーボの精度または速度に関する評価値である。そして、評価値は、ロボット10の動きに関するタスクスコア、および、対象物2の検出に関するセンシングスコアに基づく値である。
【0027】
これによれば、ビジュアルサーボの開始時におけるロボット10のスタート姿勢を、ユーザが手動で設定することなく決定できる。つまり、ユーザのビジュアルサーボにおける負担が軽減できる。さらに、複数の適正軌道の候補の中から評価値が最も高い制御軌道が適正軌道として選択される。このため、適正軌道を、ロボット10が動きやすい軌道、または/および、対象物2を把握しやすい位置にセンサ20が移動するような軌道に決定できる。このため、例えば、対象物2に把持物体3を接続する動作を行うビジュアルサーボが失敗する確率を低減できる。つまり、ビジュアルサーボの精度を向上することができる。そして、ビジュアルサーボに要する時間を低減できる。
【0028】
<実施形態1>
以下、実施形態1に係るサーボシステム1を説明する。サーボシステム1は、ビジュアルサーボ(視覚的情報に基づくロボット10の動作)を実行する。実施形態1では、サーボシステム1は、ロボット10が把持する把持物体3を対象物2(目標物;所定の物体)に接続するようにロボット10の姿勢を制御することを、把持物体3および対象物2を撮像しながら実行する。なお、以下で「軌道」とは、物体が移動する軌道を示す際の一筆の線分であってもよいし、当該一筆の線分上のうちの複数の位置と移動順序を示す情報であ
ってもよい。また、本実施形態では、或る物体の軌道とは、当該物体が移動する際の位置および姿勢を示す。
【0029】
[サーボシステムの構成]
まず、
図1の構成図を参照して、サーボシステム1の構成を説明する。サーボシステム1は、ロボット10、センサ20、制御装置30、処理装置40を有する。また、サーボシステム1は、対象物2および把持物体3を有していると捉えることもできるし、対象物2および把持物体3を有していないと捉えることもできる。
【0030】
ロボット10は、自身の姿勢を変化させることによって、センサ20およびエンドエフェクタ11の位置姿勢を制御する。本実施形態では、ロボット10の姿勢とは、ロボット10のアームの関節の角度やエンドエフェクタ11の回転角度などを示すものである。このため、本実施形態では、ロボット10の姿勢と、エンドエフェクタ11の位置姿勢とは一対一で対応する。また、ロボット10の姿勢は、制御装置30によって制御される。ロボット10のアームの先端部分には、センサ20が設けられている。このため、ロボット10がセンサ20を有しているとみなしてもよい。なお、「位置姿勢」とは、本実施形態では、位置および姿勢であるが、技術的な矛盾が生じなければ、位置または姿勢であってもよい。また、「位置姿勢」は、或る物体の6次元情報(或る物体の3次元座標と、当該物体の3軸方向を表す情報)と捉えることもできる。
【0031】
ロボット10は、エンドエフェクタ11(把持部)と土台12を有する。エンドエフェクタ11は、把持物体3を把持する。土台12は、ロボット10の1つの端部の位置を固定する。なお、以下では、ビジュアルサーボの実行開始の時点のロボット10の姿勢を「スタート姿勢」と呼ぶ。また、ユーザが指定する姿勢であって、ビジュアルサーボの目標となるロボット10の姿勢を「目標姿勢」と呼ぶ。この目標姿勢は、ユーザが任意に設定する姿勢であるため、把持物体3が対象物2に接続している姿勢でなくともよい。
【0032】
センサ20は、対象物2や把持物体3を撮像して撮像画像を取得する。本実施形態では、センサ20と把持物体3との相対的な位置関係は、固定されている。このため、センサ20は、他の物体が把持物体3に重複しない限り、撮像可能な範囲である視野範囲(FOV;Field Of View)に把持物体3を含む。センサ20が撮像した撮像画像は、例えば、
図2Aに示すように、対象物2および把持物体3を含む。
【0033】
制御装置30は、センサ20から撮像画像を取得し、ロボット10の現在の姿勢の情報(モータの回転角の情報など)をロボット10から取得する。これにより、制御装置30は、撮像画像および撮像画像に対応するロボット10の姿勢に基づき、視野範囲のうち検出可能範囲60に配置された対象物2や把持物体3(これらの位置姿勢)を検出する。検出可能範囲60は、センサ20の視野範囲に依存するだけでなく、
図2Bに示すように、センサ20からの距離にも依存する範囲である。制御装置30は、例えば、2つの異なる位置姿勢からセンサ20が撮像した撮像画像の差分と、その2つの異なる位置姿勢に対応するロボット10の姿勢に基づき、対象物2および把持物体3の位置姿勢を検出できる。また、制御装置30は、ロボット10の姿勢を制御して、エンドエフェクタ11およびセンサ20の位置姿勢を制御する。これにより、制御装置30は、撮像画像において把持物体3を所望の位置に移動させるようなロボット10の制御を行う(ビジュアルサーボを行う)。
【0034】
処理装置40は、サーボシステム1がビジュアルサーボ(視覚的情報に基づくロボット10の動作)を実行する際における、ロボット10のスタート姿勢を決定する。また、処理装置40は、センサ20の軌道(センサ軌道)、対象物2のエンドエフェクタ11との相対的な位置変化を示す軌道(物体軌道)、および撮像画像における対象物2の視覚的特
徴の軌道(視覚的軌道)の1セットとするサーボシステム1の適正軌道(サーボ軌道)を決定する。ここで、対象物2の視覚的特徴とは、例えば、対象物2の1つの端、1つの隅、または中心位置である。サーボシステム1は、ロボット10のスタート姿勢からビジュアルサーボを開始して、適正軌道に従って、ロボット10を制御しながらビジュアルサーボを実行し続ける。
【0035】
[制御装置および処理装置の構成]
以下では、
図3を参照して、制御装置30および処理装置40の詳細な構成を説明する。制御装置30は、シミュレータ310とコントローラ320を有する。処理装置40は、入出力部410、計画部420、シミュレーション部430、評価部440を有する。
【0036】
シミュレータ310は、センサ20から取得した撮像画像、およびロボット10の姿勢に基づき、対象物2および把持物体3(対象物2などの位置姿勢)を検出(推定)する。
【0037】
コントローラ320は、エンドエフェクタ41の位置姿勢を制御するビジュアルコントローラと、ロボット10の位置姿勢を制御するロボットコントローラを含む。ビジュアルコントローラは、エンドエフェクタ11の軌道に対応するエンドエフェクタ11の姿勢位置を決定する。ロボットコントローラは、ビジュアルコントローラが決定したエンドエフェクタ11の姿勢位置の変化を実現するためのロボット10のモータ駆動のコマンドを出力する。
【0038】
なお、コントローラ320は、処理装置40から取得する適正軌道に基づき、ロボット10の姿勢を制御するコマンドを生成(出力)する。そして、コントローラ320は、ロボット10の姿勢がスタート姿勢から変化している期間において、センサ20が撮像を行うようにセンサ20にコマンドを出力する。このような処理により、コントローラ320は、ロボット10を適正軌道に基づき動かしながら、ロボット10の姿勢がスタート姿勢に変化すると、ビジュアルサーボを実行することができる。
【0039】
なお、対象物2が動く場合や、ユーザが設定した目標位置姿勢では対象物2と把持物体3とが接続できない場合(ビジュアルサーボとしての目標が達成できていない場合)には、ロボット10の動作を補正する必要がある。この場合には、コントローラ320は、対象物2の位置姿勢や、撮像画像における対象物2の位置などに基づき、ロボット10の動作を補正するように、ロボット10を制御するコマンドを生成してもよい。
【0040】
入出力部410は、ユーザ操作(ユーザ入力)を受け付ける(取得する)ユーザインターフェースである。ユーザは、入出力部410を介して、ロボット10の初期姿勢および目標姿勢を入力(設定)できる。また、ユーザは、入出力部410を介して、
図2Cに示すような、ビジュアルサーボの実行を開始する際のエンドエフェクタ11の位置姿勢の候補の範囲である候補範囲50(3次元空間における所定の範囲)を入力(設定)できる。さらに、ユーザは、入出力部410を介して、コントローラ320および仮想コントローラ431のパラメータ、対象物2および把持物体3の3次元モデル、ロボット10の動作制約などの情報を入力できる。また、ユーザは、入出力部410を介して、ロボット10が侵入することを禁止されている領域(移動禁止領域)の情報を入力できる。なお、本実施形態では、候補範囲50は、球状の領域であるとするが、任意の形状の領域であってよい。また、計画部420が、ロボット10の初期姿勢に対応するエンドエフェクタ11の位置と、ロボット10の目標姿勢に対応するエンドエフェクタ11の位置の中心を、中心点とするような所定の半径の球を候補範囲として決定してもよい。
【0041】
また、ユーザは、入出力部410を介して、対象物2が動くことが想定される場合(例えば、対象物2が一定の速度で回転するコンベア上に搭載されることが想定される場合)
には、対象物2の動き情報を入力することもできる。
【0042】
さらに、入出力部410は、処理装置40が決定した適正軌道(センサ軌道、物体軌道および視覚的軌道)の情報と、スタート姿勢の情報を制御装置30に出力する。
【0043】
計画部420は、候補範囲50の内部にエンドエフェクタ11が位置するような、スタート姿勢の複数の候補を複数の候補姿勢として決定する。なお、計画部420は、例えば、センサ20が撮像する撮像画像において対象物2と把持物体3とが重なり合わない(センサ20と対象物2との間に他の物体が存在しない)ようなロボット10の姿勢を候補姿勢として決定してもよい。または、計画部420は、対象物2および把持物体3の一部が視野範囲または/および検出可能範囲60の外に位置しないように、候補姿勢を決定してもよい。つまり、計画部420は、センサ20の視野範囲に対象物2が含まれるセンサ20の複数の位置姿勢のそれぞれに対応するロボット10の複数の姿勢の中から、スタート姿勢の複数の候補を選択してもよい。
【0044】
そして、計画部420は、複数の候補姿勢のいずれかを経由してロボット10の姿勢が初期姿勢から目標姿勢に変化する際のエンドエフェクタ11の複数の軌道(エフェクタ軌道)の候補を生成する。例えば、計画部420は、10個の候補姿勢を生成している場合には、ロボット10の姿勢が1つの候補姿勢を経由して初期姿勢から目標姿勢に変化する際のエンドエフェクタ11の軌道の候補を生成することを10回だけ繰り返す。なお、エフェクタ軌道の算出には、任意の経路計算アルゴリズムを用いることができる。
【0045】
シミュレーション部430は、複数のエフェクタ軌道の候補それぞれに対応する視覚的軌道の候補、物体軌道の候補およびセンサ軌道の候補(これら3種の軌道の候補を1つのセットとして「非制御軌道」と呼ぶ)を生成する。その後、シミュレーション部430は、それぞれの視覚的軌道の候補における複数の点を対象物2が通過するようなロボット10の動きを算出する(シミュレートする)。そして、シミュレーション部430は、シミュレーション結果に基づき、視覚的軌道の候補を補正する。例えば、シミュレーション部430は、ロボット10の動き制限により視覚的軌道の候補における複数の点を対象物2が通過することができない場合には、その複数の点の位置を補正する(位置ずらしをする)ことにより、視覚的軌道の候補を補正する。シミュレーション部430は、このような補正を、物体軌道の候補およびセンサ軌道の候補についても実行する。なお、以下では、補正された非制御軌道(視覚的軌道の候補、物体軌道の候補およびセンサ軌道の候補の1つのセット;適正軌道の候補)を「制御軌道」と呼ぶ。
【0046】
また、シミュレーション部430は、仮想コントローラ431を有する。仮想コントローラ431は、コントローラ320と同一の処理を実現するソフトウェア(コントローラ320のエミュレータ)であり、コントローラ320と同一のパラメータが設定されている。このため、仮想コントローラ431は、コントローラ320のビジュアルコントローラをエミュレートする(模倣する)仮想ビジュアルコントローラと、コントローラ320のビジュアルコントローラをエミュレートする(模倣する)仮想ロボットコントローラを有する。仮想ビジュアルコントローラは、複数のエフェクタ軌道のそれぞれに対応するエンドエフェクタ41の姿勢位置の変化を決定する。仮想ロボットコントローラは、仮想ビジュアルコントローラが決定したエンドエフェクタ41の姿勢位置の変化を実現するためのロボット10の姿勢を制御する。
【0047】
シミュレーション部430は、仮想ビジュアルコントローラおよび仮想ロボットコントローラを用いて、それぞれの視覚的軌道における複数の点を対象物2が通過するようなロボット10の動きをシミュレートする。このように仮想ビジュアルコントローラと仮想ロボットコントローラを用いることによれば、ロボット10が実現できないような動きを排
除できる。
【0048】
評価部440は、シミュレーション部430が生成した複数の制御軌道のそれぞれを評価する。具体的には、評価部440は、複数の制御軌道のそれぞれについて、ロボット10の移動に関するタスクスコアと、対象物2の検出に関するセンシングスコアに基づく評価値を算出する。このため、評価値は、ビジュアルサーボの精度または速度に関する値である。例えば、評価値は、タスクスコアが小さいほど大きく、センシングスコアが小さいほど大きい。なお、タスクスコアは、ロボット10が移動しやすい制御軌道ほど低い値をとり、または、ロボット10の姿勢を目的姿勢のより近くまで変化させることができる制御軌道ほど低い値をとれば、任意のスコアであってよい。また、センシングスコアは、対象物2の検出精度(実際の対象物2と検出結果との合致度)が高くなるほど、低い値をとれば、任意のスコアであってよい。
【0049】
タスクスコアは、例えば、シミュレートした場合のロボット10の最終的な姿勢と目標位置姿勢との誤差(最終姿勢誤差)と、制御軌道に従ってロボット10が移動する場合の総時間(移動総時間)との少なくともいずれかに基づく値である。タスクスコアは、例えば、最終姿勢誤差と移動総時間とを重み付きで加算した値、または最終姿勢誤差と移動総時間とを乗算した値などである。
【0050】
センシングスコアは、例えば、ビジュアルサーボの実行中の、予想される無効な検出の総数(無効検出総数)と、検出可能範囲60と対象物2との距離(物体距離)と、予想される検出誤差の総数(検出誤差総数)との少なくともいずれかに基づく値である。なお、物体距離は、ビジュアルサーボの実行中の検出可能範囲60の中心もしくは外周部と対象物2の中心もしくは外周部との距離の平均値、最頻値、中央値、最小値、もしくは最大値などであり得る。センシングスコアは、例えば、無効検出総数と物体距離と検出誤差総数とを重み付きで加算した値、または無効検出総数と物体距離と検出誤差総数とを乗算した値などである。
【0051】
無効検出総数は、例えば、センサ20が撮像を実行した回数のうち、検出可能範囲60または視野範囲に対象物2が含まれないこと、センサ20と対象物2との間に他の物体が配置されていること(オクルージョンが発生していること)のいずれかが発生している数である。また、無効検出総数は、センサ20が撮像を実行した回数のうち、検出可能範囲60または視野範囲に対象物2の第1の割合以上が含まれないこと、センサ20が撮像する撮像画像において対象物2の全体の第2の割合以上の領域に対して他の物体が重複していることのいずれかが発生している数であってもよい。例えば、或る物体が対象物2に重複していなければ対象物2のうち2cm2が撮像画像に写っている場合に、撮影画像において2cm2の60%(第2の割合)である1.2cm2以上、或る物体が対象物2に重複していれば、無効検出が発生しているといえる。なお、無効検出総数の代わりに、対象物2の全体の領域に対する、検出可能範囲60または視野範囲に含まれる当該領域の割合の平均値の逆数を用いてもよい。
【0052】
また、検出誤差は、例えば、2つの時点の撮像画像に対応する視覚的特徴の分散に基づく値である。具体的には、検出誤差は、2つの撮像画像を対象物2の表面に投影(射影)した画像の視覚的特徴の位置の分散に基づく値である。なお、これに限られず、検出誤差は、センサ20の検出精度(実際の対象物と検出した対象物との合致度)が低いほど、高くなる値であれば任意のものであってよい。
【0053】
また、制御装置30および処理装置40は、例えば、CPU(プロセッサ)、メモリ、ストレージなどを備えるコンピュータにより構成することができる。その場合、
図3に示す構成は、ストレージに格納されたプログラムをメモリにロードし、CPUが当該プログ
ラムを実行することによって実現されるものである。かかるコンピュータは、パーソナルコンピュータ、サーバコンピュータ、タブレット端末、スマートフォンのような汎用的なコンピュータでもよいし、オンボードコンピュータのように組み込み型のコンピュータでもよい。あるいは、
図3に示す構成の全部または一部を、ASICやFPGAなどで構成してもよい。あるいは、
図3に示す構成の全部または一部を、クラウドコンピューティングや分散コンピューティングにより実現してもよい。
【0054】
[適正軌道の決定処理]
続いて、処理装置40が実行する適正軌道の決定処理(決定方法)について、
図4のフローチャートを用いて説明する。
【0055】
ステップS1001において、入出力部410は、ユーザ定義情報を取得する。ユーザ定義情報は、3次元モデル(ロボット10、センサ20、対象物2、把持物体3、その他の外部環境のモデル)の情報、コントローラ320(ビジュアルコントローラおよびロボットコントローラ)のパラメータの情報、候補範囲50の大きさや形状の情報を含む。また、ユーザ定義情報は、例えば、上述したタスクスコアおよびセンシングスコアの算出方法を示す情報、動作制約(ロボット10、センサ20、および、その他の外部環境の制限)の情報、初期姿勢およびエフェクタ軌道を生成する際のジェネレータ(ソフトウェア)の情報を含む。
【0056】
ここで、ロボット10の動作制約とは、ロボット10の各関節の稼働可能角度、各関節の角度とエンドエフェクタ11との関係、各関節の変化速度や変化加速度、エンドエフェクタ11の移動可能範囲および、ロボット10のモータのトルクなどの条件である。センサ20の動作制約とは、センサ20の視野範囲(FOV)や、検出可能範囲60の条件である。
【0057】
ステップS1002において、計画部420は、スタート姿勢を生成する際のジェネレータを用いて、候補範囲50の内部にエンドエフェクタ11が位置するような、スタート姿勢の複数の候補を複数の候補姿勢として決定する。なお、計画部420は、さらに、ロボット10の初期姿勢と目標姿勢との間の姿勢の中から、候補範囲50の内部にエンドエフェクタ11が位置するような複数の候補姿勢を決定してもよい。また、計画部420は、例えば、3次元モデルの情報に基づき、センサ20が撮像する撮像画像において対象物2と把持物体3とが重なり合わないような(例えば、センサ20と対象物2との間に他の物体が配置されていないような)ロボット10の姿勢を候補姿勢として決定する。または、計画部420は、対象物2および把持物体3の全てが視野範囲や検出可能範囲60に位置するようなロボット10の姿勢を候補姿勢として決定する。さらに、計画部420は、動作制約の情報に基づき、ロボット10が変化することのできる姿勢に候補姿勢を限定することや、ロボット10が移動禁止領域に位置しない姿勢に候補姿勢を限定することを行ってもよい。
【0058】
ステップS1003において、計画部420は、エフェクタ軌道を生成する際のジェネレータを用いて、複数のエフェクタ軌道の候補を生成する。ここで、複数のエフェクタ軌道の候補のそれぞれは、複数の候補姿勢のいずれかを経由する初期姿勢から目標姿勢までのロボット10の姿勢の変化に対応するように生成される。また、計画部420は、例えば、動作制約の情報に基づき、ロボット10が移動禁止領域に移動しないように、複数のエフェクタ軌道の候補を生成する。なお、計画部420は、複数の候補姿勢を生成する前に、初期姿勢から目標姿勢までのロボット10の姿勢の変化に対応する複数のエフェクト軌道を生成してもよい。そして、計画部420は、当該複数のエフェクト軌道それぞれのうち、候補範囲内部50の内部にエンドエフェクタ11が位置するようなロボット10の姿勢を複数のスタート姿勢の候補(複数の候補姿勢)として決定してもよい。
【0059】
ステップS1004において、シミュレーション部430は、3次元モデルおよび制限条件の情報に基づき、複数のエフェクタ軌道のそれぞれに対応する複数の非制御軌道を生成する。そして、シミュレーション部430は、仮想コントローラ431を用いて、各非制御軌道のうち複数の点(複数の位置姿勢)をセンサ20や対象物2が通過するようなロボット10の動きをシミュレートする。
【0060】
ステップS1005において、シミュレーション部430は、複数の制御軌道を生成する。具体的には、シミュレーション部430は、複数の非制御軌道それぞれについて、S1004においてシミュレートしたロボット10の動きに対応するように、当該非制御軌道をそれぞれ補正して、当該非制御軌道に対応する制御軌道(適正軌道の候補)を生成する。
【0061】
ステップS1006において、評価部440は、複数の制御軌道のそれぞれを評価する。具体的には、評価部440は、複数の制御軌道それぞれに対して、上述したタスクスコアおよびセンシングスコアに基づく評価値を算出する。
【0062】
ステップS1007において、計画部420は、複数の制御軌道のうちの最も評価値の高い1つを適正軌道として選択する。なお、例えば、計画部420は、タスクスコアが第1の閾値よりも小さく、かつ、センシングスコアが第2の閾値よりも小さい制御軌道の中で、最も評価値の高い1つを適正軌道として選択してもよい。これによれば、タスクスコアとセンシングスコアが所定値よりも小さいことが担保できる。また、計画部420は、適正軌道に対応する候補姿勢(適正軌道に従ってサーボシステム1を実行した場合における、ビジュアルサーボの開始時点でのロボット10の姿勢)をスタート姿勢として選択する。
【0063】
このように、処理装置40は、適正軌道とスタート姿勢を生成(決定)する。これによれば、ビジュアルサーボの開始時におけるロボット10のスタート姿勢を、ユーザが手動で設定することなく決定できる。つまり、ユーザのビジュアルサーボにおける負担が軽減できる。そして、処理装置40は、オクルージョンが発生しない姿勢や、視野範囲や検出可能範囲60に対象物2が位置する姿勢を、スタート姿勢にすることができる。つまり、処理装置40は、ビジュアルサーボを行うにあたり好適なスタート姿勢を決定することができる。
【0064】
さらに、処理装置40は、複数の制御軌道の中から評価値が最も高い制御軌道を適正軌道として選択する。そして、評価値は、ビジュアルサーボの精度または/および速度に関する値である。このため、適正軌道を、ロボット10が動きやすい軌道、または/および、対象物2を把握しやすい位置にセンサ20が移動するような軌道にできる。つまり、対象物2に把持物体3を接続する動作を行うビジュアルサーボが失敗する確率を低減できる(ビジュアルサーボの精度が向上する)。そして、ビジュアルサーボに要する時間を低減できる。
【0065】
なお、上記では、サーボシステム1は、制御装置30において、2つの時点間の撮像画像に基づき、対象物2や把持物体3の位置姿勢を検出していたが、この限りではない。例えば、センサ20が3次元センサであり、センサ20自体が対象物2や把持物体3の位置姿勢を検出してもよい。
【0066】
また、本実施形態では、エフェクタ軌道やセンサ軌道などは、スタート姿勢を経由してロボット10の姿勢が初期姿勢から目標姿勢まで変化する際のエンドエフェクタ11やセンサ20の軌道であるとした。しかし、エフェクタ軌道やセンサ軌道などは、ロボット1
0の姿勢がスタート姿勢から目標姿勢まで変化する際のエンドエフェクタ11やセンサ20の軌道であってもよい。これは、ロボット10が初期姿勢からスタート姿勢に変化するまでの期間では、ビジュアルサーボが実行されないためである。
【0067】
また、適正軌道、制御軌道および非制御軌道において、センサ軌道の代わりに、当該センサ軌道に対応するエフェクタ軌道を用いてもよい。これは、本実施形態では、センサ20とエンドエフェクタ11との相対的な位置関係が固定されているためである。なお、センサ軌道の代わりに、ロボット10の姿勢変化を用いてもよい。
【0068】
さらに、対象物2がビジュアルサーボ中に動かない場合には、適正軌道、制御軌道および非制御軌道において、物体軌道は不要である。センサ軌道から、エンドエフェクタ11と対象物2との位置関係を算出可能であるためである。
【0069】
なお、撮像画像の2次元空間上において把持物体3を目的の位置姿勢に変化させるようなビジュアルサーボを行う場合には、適正軌道、制御軌道および非制御軌道において、上述のように視覚的軌道が必要である。一方で、3次元空間上において把持物体3を目的の位置姿勢に変化させるようなビジュアルサーボを行う場合には、適正軌道、制御軌道および非制御軌道において、視覚的軌道は必ずしも必要ではない。つまり、適正軌道(サーボ軌道)、制御軌道および非制御軌道は、サーボシステム1に関する少なくとも1つの構成(物体;部材)の軌道を含んでいれば、本実施形態と同様の効果を得る可能性がある。
【0070】
なお、実施形態に記載された事項のみによって特許請求の範囲の記載の解釈が限定されるものではない。特許請求の範囲の記載の解釈には、出願時の技術常識を考慮した、発明の課題が解決できることを当業者が認識できるように記載された範囲も含む。
【0071】
(付記1)
対象物(2)を撮像して検出するセンサ(20)と、エンドエフェクタ(11)を備えるロボット(10)とを有し、ビジュアルサーボを行うサーボシステム(1)において、
前記サーボシステム(1)に関する少なくとも1つの軌道であるサーボ軌道、および前記ビジュアルサーボの開始時点の前記ロボット(10)のスタート姿勢を決定する処理装置(40)であって、
前記ロボット(10)の初期姿勢の情報と、前記ビジュアルサーボの終了時点の前記ロボット(10)の目標姿勢の情報とを取得する取得手段(410)と、
1)前記スタート姿勢の複数の候補を決定し、2)前記複数の候補のいずれか1つを経由して前記初期姿勢から前記目標姿勢に前記ロボット(10)の姿勢が変化する際の前記エンドエフェクタ(11)の複数の軌道を生成する計画手段(420)と、
前記エンドエフェクタ(11)の複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補の中から、前記ビジュアルサーボの精度または速度に関する評価値の最も高い候補を前記サーボ軌道として決定し、当該サーボ軌道に対応するスタート姿勢の候補を前記スタート姿勢として決定する決定手段(420)と、
を有することを特徴とする処理装置(40)。
【0072】
(付記2)
対象物(2)を撮像して検出するセンサ(20)と、エンドエフェクタ(11)を備えるロボット(10)とを有し、ビジュアルサーボを行うサーボシステム(1)に関して、
前記サーボシステム(1)に関する少なくとも1つの軌道であるサーボ軌道、および前記ビジュアルサーボの開始時点の前記ロボット(10)のスタート姿勢を決定する処理方法であって、
前記ロボット(10)の初期姿勢の情報と、前記ビジュアルサーボの終了時点の前記ロボット(10)の目標姿勢の情報とを取得する取得ステップ(S1001)と、
1)前記スタート姿勢の複数の候補を決定し、2)前記複数の候補のいずれか1つを経由して前記初期姿勢から前記目標姿勢に前記ロボット(10)の姿勢が変化する際の前記エンドエフェクタ(11)の複数の軌道を生成する計画ステップ(S1002,S1003)と、
前記エンドエフェクタ(11)の複数の軌道のそれぞれに対応する前記サーボ軌道の複数の候補の中から、前記ビジュアルサーボの精度または速度に関する評価値の最も高い候補を前記サーボ軌道として決定し、当該サーボ軌道に対応するスタート姿勢の候補を前記スタート姿勢として決定する決定ステップ(S1007)と、
を有することを特徴とする処理方法。
【符号の説明】
【0073】
1:サーボシステム、2:対象物、3:把持物体、
10:ロボット、11:エンドエフェクタ、12:土台、
20:センサ、30:制御装置、40:処理装置、
310:シミュレータ、320:コントローラ、
410:入出力部、420:計画部、430:シミュレーション部、
431:仮想コントローラ、440:評価部