(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】制御装置、ロボット、制御方法、プログラム
(51)【国際特許分類】
B25J 19/06 20060101AFI20240409BHJP
【FI】
B25J19/06
(21)【出願番号】P 2020174750
(22)【出願日】2020-10-16
【審査請求日】2023-08-08
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】殿谷 徳和
(72)【発明者】
【氏名】松本 慎也
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2004-188562(JP,A)
【文献】特開2016-99257(JP,A)
【文献】特開2019-155535(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
探索領域を計測する3次元センサが設けられたロボットの制御装置であって、
前記探索領域の各範囲の位置に基づき、当該各範囲を計測するための前記3次元センサの複数の計測位置を決定する位置決定手段と、
前記ロボットを動かすことにより前記複数の計測位置のそれぞれに前記3次元センサを移動させるように制御する動作制御手段と、
前記複数の計測位置のそれぞれにおいて前記3次元センサが計測した結果に基づき、前記探索領域における物体の領域を判定する領域判定手段と、
を有することを特徴とする制御装置。
【請求項2】
前記探索領域の各範囲は、前記探索領域を分割した範囲である、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記探索領域の各範囲は、直方体形状、球体形状、円柱状、または多角形状の範囲である、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項4】
前記探索領域の各範囲は、所定の軸方向に前記探索領域をスライスした複数枚の平面を、格子状に分割した範囲である、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項5】
前記位置決定手段は、前記探索領域の各範囲の所定の位置が、前記複数の計測位置のうち対応する計測位置にお
ける前記3次元センサの視野に含まれるように、前記3次元センサの前記複数の計測位置を決定する、
ことを特徴とする請求項1から4のいずれか1項に記載の制御装置。
【請求項6】
前記位置決定手段は、前記探索領域の各範囲の前記所定の位置を中心として、所定の長さを半径とする球面上または円周上に、前記3次元センサの前記複数の計測位置を決定する、
ことを特徴とする請求項5に記載の制御装置。
【請求項7】
前記探索領域の形状は、直方体形状であり
前記位置決定手段は、前記探索領域の1つの面と前記3次元センサの光軸が直交し、前記探索領域における各範囲の所定の位置からの距離が所定の長さである位置を前記3次元センサの計測位置として決定する、
ことを特徴とする請求項1から5のいずれか1項に記載の制御装置。
【請求項8】
前記所定の位置は、重心である、
ことを特徴とする請求項5から7のいずれか1項に記載の制御装置。
【請求項9】
前記複数の計測位置の間で前記3次元センサを移動させるために、前記ロボットを移動させる経路を決定する経路決定手段をさらに有する、
ことを特徴とする請求項1から8のいずれか1項に記載の制御装置。
【請求項10】
前記経路決定手段は、前記複数の計測位置のうちの第1の計測位置から前記3次元センサを移動させる場合には、前記3次元センサが前記第1の計測位置に移動する時点より前に移動する計測位置のいずれでもない計測位置のうち、前記第1の計測位置から最も短い時間または移動量で前記3次元センサが移動できる計測位置に移動するように前記経路を決定する、
ことを特徴とする請求項9に記載の制御装置。
【請求項11】
前記位置決定手段は、前記複数の計測位置に、計測位置に対応する前記ロボットの姿勢が逆運動学によって決定できない計測位置が含まれている場合には、逆運動学によって決定することができる前記ロボットの姿勢に対応する位置に当該計測位置を変更する、
ことを特徴とする請求項1から10のいずれか1項に記載の制御装置。
【請求項12】
前記位置決定手段は、前記複数の計測位置に前記3次元センサを配置する場合に、前記3次元センサの視野が所定の量以上、互いに重なりあう2つの計測位置がある場合には、いずれか一方の計測位置を前記複数の計測位置から除外する、
ことを特徴とする請求項1から11のいずれか1項に記載の制御装置。
【請求項13】
前記3次元センサの動作を制御するセンサ制御手段をさらに有する、
ことを特徴とする請求項1から12のいずれか1項に記載の制御装置。
【請求項14】
前記センサ制御手段は、前記3次元センサが前記複数の計測位置の間を移動する期間であっても、前記3次元センサが前記探索領域を計測するように制御する、
ことを特徴とする請求項13に記載の制御装置。
【請求項15】
前記3次元センサは、2次元画像を撮像する撮像手段を有しており、前記2次元画像を用いて前記探索領域を計測し、
前記センサ制御手段は、前記複数の計測位置の少なくともいずれかの計測位置において前記3次元センサが撮像した2次元画像において、所定の範囲外の輝度の画素の数が所定数以上である場合には、当該2次元画像の取得時点から、前記3次元センサが有する照明の照度と前記撮像手段の露光時間と前記撮像手段のゲインとの少なくともいず
れかの値を変更して、当該計測位置において前記3次元センサが計測するように制御する、
ことを特徴とする請求項13または14に記載の制御装置。
【請求項16】
前記3次元センサは、2次元画像を撮像する撮像手段を有しており、前記2次元画像を用いて前記探索領域を計測し、
前記位置決定手段は、前記複数の計測位置の少なくともいずれかの計測位置において前
記3次元センサが撮像した2次元画像において、所定の範囲外の輝度の画素が所定数以上である場合には当該計測位置を変更する、
ことを特徴とする請求項1から15のいずれか1項に記載の制御装置。
【請求項17】
請求項1から16のいずれか1項に記載の制御装置と、
探索領域を計測する3次元センサと、
を有することを特徴とするロボット。
【請求項18】
探索領域を計測する3次元センサが設けられたロボットの制御方法であって、
前記探索領域の各範囲の位置に基づき、当該各範囲を計測するための前記3次元センサの複数の計測位置を決定する位置決定ステップと、
前記ロボットを動かすことにより前記複数の計測位置のそれぞれに前記3次元センサを移動させるように制御する動作制御ステップと、
前記複数の計測位置のそれぞれにおいて前記3次元センサが計測した結果に基づき、前記探索領域における物体の領域を判定する領域判定ステップと、
を有することを特徴とする制御方法。
【請求項19】
請求項18に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、ロボット、制御方法、プログラムに関する。
【背景技術】
【0002】
従来、物を製造する現場などにおいて、ロボットなどが動くことが可能な範囲を予め設定しておき、その範囲をロボットが動くことによってロボットの安全な動作が実現されている。
【0003】
特許文献1には、ロボットが周辺機器などの物体と干渉しないように、ロボットの動作範囲を設定するロボット制御装置が開示されている。特許文献1では、ロボット制御装置は、ロボットに設けられた深度センサ(3次元センサ)が物体の表面上の各点の深度データを取得することにより、物体の領域(干渉領域)を判定している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、ロボットの姿勢を変更することにより、深度センサの位置を変更しながら深度データを取得することが開示されている。しかしながら、深度センサの位置を決定する方法の記載がないため、例えば、深度データの取得具合をユーザが確認しながら、当該ユーザが深度センサの位置を決定する必要がある。このため、物体の領域(干渉領域)を判定するために、ユーザに負荷がかかっていた。
【0006】
そこで、本発明は、ロボットなどが物体と干渉しないように当該物体の領域を判定する技術において、ユーザの負荷を減少させることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために本発明は、以下の構成を採用する。
【0008】
すなわち、本発明の一側面に係る探索領域を計測する3次元センサが設けられたロボットの制御装置は、前記探索領域の各範囲の位置に基づき、当該各範囲を計測するための前記3次元センサの複数の計測位置を決定する位置決定手段と、前記ロボットを動かすことにより前記複数の計測位置のそれぞれに前記3次元センサを移動させるように制御する動作制御手段と、前記複数の計測位置のそれぞれにおいて前記3次元センサが計測した結果に基づき、前記探索領域における物体の領域を判定する領域判定手段と、を有することを特徴とする制御装置である。
【0009】
上記構成によれば、探索領域を計測するための3次元センサの計測位置を決定するための、ユーザの入力(設定)が不要になる。このため、探索領域における物体の領域を判定するためのユーザの負荷が減少する。なお、計測位置とは、3次元センサの3次元座標および姿勢(光軸方向)を示す。
【0010】
上記制御装置において、前記探索領域の各範囲は、前記探索領域を分割した範囲であってもよい。また、前記探索領域の各範囲は、直方体形状、球体形状、円柱状、または多角形状であってもよい。さらに、前記探索領域の各範囲は、所定の軸方向に前記探索領域を
スライスした複数枚の平面を、格子状に分割した範囲であってもよい。
【0011】
上記制御装置において、前記位置決定手段は、前記探索領域の各範囲の所定の位置が、前記複数の計測位置のうち対応する計測位置において前記3次元センサの視野に含まれるように前記3次元センサの前記複数の計測位置を決定してもよい。これによれば、探索領域の各範囲を確実に計測することができるので、各範囲を詳細に計測できる結果、より正確に物体の領域を判定することが可能になる。
【0012】
上記制御装置において、前記位置決定手段は、前記探索領域の各範囲の前記所定の位置を中心として、所定の長さを半径とする球面上または円周上に、前記3次元センサの前記複数の計測位置を決定してもよい。これによれば、探索領域の各範囲を同じ距離で異なる位置から、複数回計測することができるので、これらの計測結果からより正確に物体の領域を判定することが可能になる。
【0013】
上記制御装置において、前記探索領域の形状は、直方体形状であり前記位置決定手段は、前記探索領域の1つの面と前記3次元センサの光軸が直交し、前記探索領域における各範囲の所定の位置からの距離が所定の長さである位置を前記3次元センサの計測位置として決定してもよい。これによれば、探索領域の各範囲を1回のみ計測することができるので、より高速に物体の領域を判定することが可能になる。例えば、物体が平面上に広がっていると事前に想定できる場合に、この処理は有効である。
【0014】
上記制御装置において、前記所定の位置は、重心であってもよい。例えば、重心を基準として探索領域の各範囲を計測すれば、重心は各範囲の特徴を示すような代表的な位置であるから、より正確に当該範囲を計測することが可能になる。
【0015】
上記制御装置において、前記複数の計測位置の間で前記3次元センサを移動させるために、前記ロボットを移動させる経路を決定する経路決定手段をさらに有してもよい。
【0016】
上記制御装置において、前記経路決定手段は、前記複数の計測位置のうちの第1の計測位置から前記3次元センサを移動させる場合には、前記3次元センサが前記第1の計測位置に移動する時点より前に移動する計測位置のいずれでもない計測位置のうち、前記第1の計測位置から最も短い時間または移動量で前記3次元センサが移動できる計測位置に移動するように前記経路を決定してもよい。これによれば、2つの計測位置の間を素早く移動することができるので、探索領域の計測をより高速に行うことができる。
【0017】
上記制御装置において、前記位置決定手段は、前記複数の計測位置に、計測位置に対応する前記ロボットの姿勢が逆運動学によって決定できないような計測位置が含まれている場合には、逆運動学によって決定することができる前記ロボットの姿勢に対応する位置に当該計測位置を変更してもよい。これによれば、ロボットを移動させることができない位置に移動させようとする不要な処理がなくなるので、より効率的に探索領域の計測が可能になる。
【0018】
上記制御装置において、前記位置決定手段は、前記複数の計測位置に前記3次元センサを配置する場合に、前記3次元センサの視野が所定の量以上、互いに重なりあう2つの計測位置がある場合には、いずれか一方の計測位置を前記複数の計測位置から除外してもよい。これによれば、重複する計測結果を取得する可能性を低減できるため、より効率的な探索領域の計測が可能になる。
【0019】
上記制御装置において、前記3次元センサの動作を制御するセンサ制御手段をさらに有していてもよい。
【0020】
上記制御装置において、前記センサ制御手段は、前記3次元センサが前記複数の計測位置の間を移動する期間であっても、前記3次元センサが前記探索領域を計測するように制御してもよい。これによれば、探索領域を多くの位置から計測することができるので、より高精度に探索領域を計測することが可能になる。
【0021】
上記制御装置において、前記3次元センサは、2次元画像を撮像する撮像手段を有しており、前記2次元画像を用いて前記探索領域を計測し、前記センサ制御手段は、前記複数の計測位置の少なくともいずれかの計測位置において前記3次元センサが撮像した2次元画像において、所定の範囲外の輝度の画素の数が所定数以上である場合には、当該2次元画像の取得時点から、前記3次元センサが有する照明の照度と前記撮像手段の露光時間と前記撮像手段のゲインとの少なくともいずかの値を変更して、当該計測位置において前記3次元センサが計測するように制御してもよい。これによれば、黒つぶれやハレーションを抑えることにより3次元計測の精度が向上するので、より高精度に探索領域を計測することができる。
【0022】
上記制御装置において、前記3次元センサは、2次元画像を撮像する撮像手段を有しており、前記2次元画像を用いて前記探索領域を計測し、前記位置決定手段は、前記複数の計測位置の少なくともいずれかの計測位置において前記3次元センサが撮像した2次元画像において、所定の範囲外の輝度の画素が所定数以上である場合には当該計測位置を変更してもよい。これによれば、黒つぶれやハレーションを抑えた2次元画像を撮像することが可能になるので、より高精度に探索領域を計測することができる。
【0023】
上記制御装置を有し、さらに探索領域を計測する3次元センサと、を有することを特徴とするロボットであってもよい。
【0024】
本発明は、上記手段の少なくとも一部を有する装置として捉えてもよいし、電子機器や制御システム、探索システム、探索装置として捉えてもよい。また、本発明は、上記処理の少なくとも一部を含むロボットの制御方法、領域判定方法、探索方法として捉えてもよい。また、本発明は、かかる方法を実現するためのプログラムやそのプログラムを非一時的に記録した記録媒体として捉えることもできる。なお、上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0025】
本発明によれば、ロボットなどが物体と干渉しないように当該物体の領域を判定する技術において、ユーザの負荷を減少させることができる。
【図面の簡単な説明】
【0026】
【
図1】
図1は、実施形態1に係る探索システムを説明する図である。
【
図2】
図2は、実施形態1に係る制御装置の内部構成を説明する図である。
【
図3】
図3Aおよび
図3Bは、実施形態1に係る計測位置の決定を説明する図である。
【
図4】
図4Aおよび
図4Bは、実施形態1に係る計測位置の決定を説明する図である。
【
図5】
図5は、実施形態1に係る干渉領域の判定処理のフローチャートである。
【
図6】
図6は、変形例1に係る干渉領域の判定処理のフローチャートである。
【発明を実施するための形態】
【0027】
以下、本発明を実施するための実施形態について図面を用いて記載する。
【0028】
<適用例>
以下では、制御装置30を有する探索システム1を説明する。探索システム1は、3次元センサ20により複数の計測位置(視点)から探索領域50を計測(探索)することによって、探索領域50において物体の配置された領域(干渉領域)を判定する。干渉領域が判定されれば、例えば、ロボット10は、干渉領域を避けることにより、探索領域50内部を物体に衝突しないように移動することができる。また、ロボット10以外の装置も、同様に、探索領域50内部を物体に衝突しないように移動することができる。ここで、探索システム1は、探索領域50を分割した領域の位置に基づき、複数の計測位置を決定する。このため、ユーザが手動で複数の計測位置を設定することに起因する負担を軽減することができる。ここで、計測位置とは、3次元センサ20の3次元座標および姿勢(光軸方向)を示す。
【0029】
<実施形態1>
[探索システムの構成]
実施形態1に係る探索システム1を、
図1のシステム構成図を用いて説明する。探索システム1は、ロボット10、3次元センサ20、制御装置30、制御サーバ40を有する。
【0030】
ロボット10は、自らの姿勢を変化させることによって、3次元センサ20を移動させる。ロボット10は、例えば、垂直多関節ロボット、移動機構ロボット、パラレルリンクロボット、直動機構ロボットなど任意のタイプのロボットであり得る。本実施形態では、ロボット10は、複数の関節を有するアームを備えており、各関節の角度を制御することによって3次元センサ20の位置(姿勢)を制御する多関節ロボットである。各関節部は、モータにより駆動されてアームを回転させる駆動軸を備えている。
【0031】
3次元センサ20は、探索領域50を計測(探索)して、探索領域50の3次元情報(点群データ)を取得する。3次元センサ20は、ロボット10のアームの先端に設けられている。このため、ロボット10が3次元センサ20を有しているとみなしてもよい。3次元センサ20は、例えば、深度情報を取得する深度センサ、または距離画像を取得する距離画像センサである。互いに異なる複数の計測位置から探索領域50を計測(探索)することを3次元センサ20が繰り返し実行することによって、探索領域50における干渉領域が判定可能になる。なお、3次元センサ20は、カメラ(撮像部)を備えていてもよく、3次元情報を取得することのみならず、2次元画像を撮像(取得)可能であってもよい。また、3次元センサ20は、探索領域50に光を照射して照明する照射部や、画像を投影するプロジェクタを有していてもよい。
【0032】
ここで、3次元センサ20は、3次元センサ20から探索領域50における対象物までの距離が取得できればよいため、アクティブ方式とパッシブ方式のいずれのセンサであってもよい。ここで、アクティブ方式とは、3次元センサ20から投影した光を対象物にあてて、当該対象物での反射光を受光して距離を取得する方式である。一方、パッシブ方式とは、自然光や他の照明によって照らされた対象物からの光を受光して距離を取得する方式である。ここで、アクティブ方式として、例えば、赤外光をプロジェクタが対象物に照射し、当該対象物にて反射した赤外光をカメラが受光することで、三角測量の原理により当該対象物までの距離を取得する方法(スポット法;TOF)を用いてもよい。また、アクティブ方式として、例えば、パターン画像をプロジェクタが対象物に照射し、当該対象物に映し出されたパターン画像をカメラが撮像することで、撮像したパターン画像の歪みに応じて当該対象物までの距離を取得する方法を用いてもよい。また、パッシブ方式として、互いに異なる2点の位置から対象物を撮像して、2つの撮像画像の差分から距離を取得する方法を用いてもよい。
【0033】
制御装置30は、ロボット10および3次元センサ20を制御する。制御装置30は、ロボット10の姿勢(動き;アームの関節の角度)を制御することにより、3次元センサ20の計測位置(姿勢;視点)を制御する。また、制御装置30は、3次元センサ20の計測のタイミングを制御する。さらに、3次元センサ20が計測した結果に基づき、干渉領域を判定することもできる。
【0034】
制御サーバ40は、ネットワーク60を介して、複数の制御装置30を制御する。制御サーバ40は、制御装置30が有する構成要素の全部または一部を有していてもよい。
【0035】
[制御装置の構成]
図2の構成図を参照して、制御装置30の内部構成を説明する。制御装置30は、制御部301、記憶部302、マップ取得部303、領域判定部304、位置決定部305、経路生成部306、動作制御部307、センサ制御部308を有する。
【0036】
制御部301は、記憶部302に記憶されたプログラムに従って、制御装置30の各構成要素を制御する。なお、制御部301の処理は、制御サーバ40が実行してもよい。
【0037】
記憶部302は、各構成要素が動作するための情報を記憶する。記憶部302は、例えば、探索領域50の位置や大きさ、形状を示す情報を記憶する。また、記憶部302は、3次元センサ20のスペック(計測可能な距離の範囲、視野角度など)や、ロボット10のスペック(アームの関節の可動範囲、関節の回転可能速度など)を記憶する。なお、これらの情報は、制御装置30に対してユーザが予め設定可能である。
【0038】
さらに、記憶部302は、探索領域50における各点(ボクセル)の3次元センサ20による計測状況(探索状況)を示すマップ情報を記憶する。ここで、探索領域50における各点は、それぞれ異なる領域(例えば、立方体)に対応している。例えば、探索領域50における各点は、それぞれ対応する領域の中心の点(重心)である。記憶部302は、探索領域50における各点に対応する領域について、物体が存在するか否かを判定できている領域である既知領域と、物体が存在するか判定できていない領域である未知領域とのいずれかを示すマップ情報を記憶する。ここで、マップ情報では、既知領域は、物体が存在すると判定された領域である物体領域と、物体が存在しないと判定された領域である空領域のいずれかを示す。つまり、マップ情報は、探索領域50における各点が、物体が存在する点と物体が存在しないと点と物体が存在するか否かが不明である点とのいずれに該当するかを示しているといえる。
【0039】
マップ取得部303は、3次元センサ20が計測した結果(計測結果;探索結果)に基づき、上述したマップ情報を生成または更新をする。ここで、3次元センサ20が、複数の計測位置から探索領域50を計測して、マップ取得部303は、その計測結果に基づき、マップ情報を生成(更新)する。
【0040】
ここで、マップ取得部303は、例えば、センサ座標系(3次元センサ20の座標系)で定義された物体の表面上の各点の3次元情報(深度データ)を、計測位置に基づく座標変換によって、ロボット座標系(ロボット10の座標系)で定義される3次元位置情報に変換する。このことにより、マップ取得部303は、深度データが示す物体の、ロボット座標系での位置を判定できる。ここで、様々な計測位置において3次元センサ20が探索領域50を計測すれば、様々な深度データが取得できるため、探索領域50の各点(各領域)における物体の有無の信頼度が向上する。そして、マップ取得部303は、この信頼度に基づき、各点に対応する領域が未知領域と物体領域と空領域とのいずれに該当するかを決定(判定)できる。
【0041】
領域判定部304は、3次元センサ20の計測結果(探索結果)に基づき、干渉領域を判定する(決定する)。具体的には、領域判定部304は、マップ情報に基づき、物体領域から構成される領域を干渉領域として判定する。
【0042】
位置決定部305は、3次元センサ20が計測する際に配置される位置である複数の計測位置(移動位置)を決定する。位置決定部305は、計測位置の複数の候補を決定しておき、複数の候補の中から、3次元センサ20が移動する(ロボット10が3次元センサ20を移動させる)ことが可能な候補のみを計測位置として選択することもできる。ここで、3次元センサ20の計測位置は、3次元センサ20の高さや3次元センサ20の光軸の向き(方向)の情報などにより特定できる。また、3次元センサ20の計測位置は、ロボット10の姿勢により特定できる。なお、3次元センサ20の位置とロボット10の姿勢との対応は、いわゆるキャリブレーション処理によって予め計測(決定)されているものとする。
【0043】
経路生成部306(経路決定部)は、位置決定部305が決定した複数の計測位置の間で3次元センサ20を移動させるための、ロボット10の移動経路を生成(決定)する。例えば、経路生成部306は、複数の計測位置の全てに3次元センサ20を移動させるために要する時間が、最も短い移動経路を決定する。
【0044】
動作制御部307は、3次元センサ20を複数の計測位置に移動させるように、ロボット10を制御する。ここで、動作制御部307は、経路生成部306が決定した移動経路に従ってロボット10の姿勢を制御して、3次元センサ20の位置を制御する。
【0045】
センサ制御部308は、3次元センサ20を制御する。センサ制御部308は、例えば、ロボット10が3次元センサ20を計測位置に移動させたタイミングで、3次元センサ20が計測するように制御する。また、センサ制御部308は、3次元センサ20が照明部を有する場合には、照明部の発光量(明るさ)などを制御することもできる。
【0046】
また、制御装置30は、例えば、CPU(プロセッサ)、メモリ、ストレージなどを備えるコンピュータにより構成することができる。その場合、
図2に示す構成は、ストレージに格納されたプログラムをメモリにロードし、CPUが当該プログラムを実行することによって実現されるものである。かかるコンピュータは、パーソナルコンピュータ、サーバコンピュータ、タブレット端末、スマートフォンのような汎用的なコンピュータでもよいし、オンボードコンピュータのように組み込み型のコンピュータでもよい。あるいは、
図2に示す構成の全部または一部を、ASICやFPGAなどで構成してもよい。あるいは、
図2に示す構成の全部または一部を、クラウドコンピューティングや分散コンピューティングにより実現してもよい。
【0047】
[3次元センサの位置決定処理]
以下、
図3Aの概要図を用いて、位置決定部305が3次元センサ20の計測位置を決定する処理(位置決定処理)を説明する。なお、
図3A~
図4Bでは、ロボット10と3次元センサ20と探索領域50の一部とを図示している。本実施形態では、探索領域50を複数に分割した領域(分割領域)のそれぞれに対して、3次元センサ20が計測(探索)を行う。位置決定部305は、分割領域それぞれの位置に基づき、3次元センサ20の複数の計測位置を決定する。具体的には、位置決定部305は、分割領域(分割領域の所定の位置)それぞれが、複数の計測位置のうち対応する計測位置において3次元センサ20の視野に含まれるように、複数の計測位置を決定する。ここで、例えば、探索領域50は、各辺が1mの立方体(直方体)である。また、分割領域は、例えば、探索領域50を6
3=216個に分割した立方体(直方体)であり、マップ情報が示す1つの点に対応する領域よりも十分に大きい。なお、探索領域50や分割領域の大きさや形状は、上記に限
らず任意であってよい。例えば、探索領域50の各範囲は、直方体形状、球体形状、円柱状、または多角形状であってよい。また、分割領域の大きさや形状は、記憶部302が予め記憶しておいてもよいし、位置決定部305が探索領域50の大きさや形状に基づき決定してもよい。
【0048】
図3Aは、探索領域50を分割した1つの分割領域51を計測するための3次元センサ20の計測位置を説明する図である。本実施形態では、位置決定部305は、分割領域51の任意の点(本実施形態では、重心)を中心として、半径Rとする球面上の複数の位置を、分割領域51を計測するための複数の計測位置として決定する。また、このとき、位置決定部305は、3次元センサ20の光軸上に、分割領域51の重心が位置するように3次元センサ20の計測位置を制御する。ここで、1つの分割領域51に対して、例えば、100点の計測位置が決定される。なお、位置決定部305は、例えば、分割領域51を計測するための複数の計測位置のうち隣接するもの同士の間隔が所定の長さになるように、複数の計測位置を決定する。また、半径Rは、3次元センサ20からの計測可能距離の範囲(例えば、30cm~90cm)に含まれる距離であり、例えば、計測可能距離の範囲の中央の値(例えば、60cm)である。なお、計測可能距離の情報は、ユーザの入力または3次元センサ20からの入力により、記憶部302が記憶している。
【0049】
なお、位置決定部305は、探索領域50を分割した複数の分割領域のそれぞれについて、分割領域51と同様に、複数の計測位置を決定する。
【0050】
また、分割領域51の重心を中心として、半径Rとする球面上の複数の位置を、分割領域51を計測するための複数の計測位置として決定する必要はない。例えば、
図3Bのように、分割領域51の1つの面(例えば、分割領域の各面のうちロボット10に最も近い面)の重心を中心として、半径Rとする球面上の複数の位置を、分割領域51を計測するための複数の計測位置として決定してもよい。言い換えると、位置決定部305は、
図4Aに示すように、探索領域50を或る軸上(或る軸方向)にスライスして、スライスした複数枚の平面を格子状に分割した領域52ごとに計測位置を決定してもよい。
【0051】
このように、本実施形態では、位置決定部305は、各分割領域が球状に広がっていると想定して、半径Rとする球面上の複数の位置を複数の計測位置として決定する。しかし、位置決定部305は、分割領域51を中心として、半径Rとするような、或る面(例えば、探索領域50のいずれかの面や水平面)に平行な円周上の複数の位置を複数の計測位置として決定してもよい。このような場合には、位置決定部305は、各分割領域が円柱状に広がっていると想定して計測位置を決定している。また、
図4Bに示すように、位置決定部305は、探索領域50の1つの面と3次元センサ20の光軸が直交し、分割領域51の重心(または分割領域51の1つの面の重心)からの距離が長さRである位置を3次元センサ20の計測位置として決定してもよい。このように決定すれば、各分割領域に対して1回のみ計測が行われるため、物体が平面状に広がっていると想定できる場合に、少ない動作回数で効率よく探索領域50を計測することが可能となる。
【0052】
[干渉領域の判定処理]
図5を参照して、制御装置30が干渉領域を判定する処理を説明する。
図5は、干渉領域の判定処理のフローチャートである。なお、
図5のフローチャートの各処理は、制御部301が記憶部302に記憶されたプログラムを実行して、自身により、または各構成要素を制御することにより実現される。
【0053】
ステップS1001において、制御部301は、記憶部302から探索領域50の範囲(大きさ、位置)を示す情報を取得する。なお、制御部301は、記憶部302から探索領域50の範囲を示す情報を取得するのではなく、ユーザの入力によって探索領域50の
範囲を示す情報を取得してもよい。
【0054】
ステップS1002において、位置決定部305は、上記のように、探索領域50を分割した分割領域のそれぞれの位置に基づき、複数の計測位置を決定する。ここで、位置決定部305は、3次元センサ20の視野(視野範囲)が所定の量以上、互いに重なりあう2つの計測位置が複数の計測位置に含まれている場合には、いずれか一方の計測位置を複数の計測位置から除外するようにするとよい。ここで、視野は、3次元センサ20の位置を頂点として、光軸方向を高さ方向とするように円錐状に広がっている。2つの視野の重なりは、例えば、2つの視野に含まれる分割領域の重複度合いである。これによれば、3次元センサ20によって、重複する情報を取得しないようにできるため、効率的に探索領域50を計測することができる。
【0055】
ステップS1003において、位置決定部305は、3次元センサ20を複数の計測位置に配置する場合のロボット10の姿勢を決定する。ここで、ロボット10の姿勢は、3次元センサ20の計測位置から、既知の逆運動学(IK;Inverse Kinematics)を幾何学的に解くことによって決定(算出)可能である。
【0056】
なお、位置決定部305は、位置決定部305が決定した複数の計測位置のうち、逆運動学によってロボット10の姿勢が決定できない計測位置がある場合には、当該計測位置を削除(除外)してもよい。または、位置決定部305は、逆運動学によってロボット10の姿勢が決定できない計測位置がある場合には、当該計測位置を中心とする所定の距離(例えば、1cm)の範囲内で、逆運動学によってロボット10の姿勢が決定できる位置に当該計測位置を変更してもよい。このとき、位置決定部305は、3次元センサ20の光軸上に位置する(計測の対象となる)分割領域が、変更の前後で異ならないように計測位置を変更する。
【0057】
ステップS1004において、経路生成部306は、位置決定部305が決定した複数の計測位置に3次元センサ20が移動することができるように、ロボット10の移動の経路を生成(決定)する。移動の経路は、例えば、複数の計測位置に対して3次元センサ20が移動する順番を示す情報を含む。経路生成部306は、例えば、移動に要する時間を低減させるために、複数の計測位置のうちロボット10(ロボット10の中心やアームの土台部分)から最も遠い位置を、最初に移動する計測位置として決定する。また、経路生成部306は、例えば、第1の計測位置から他の計測位置に移動する場合には、候補の計測位置のうち、第1の計測位置から最も短い時間または移動量(距離)で移動することができる第2の計測位置を決定する。ここで、経路生成部306は、第1の計測位置に移動する時点より前に3次元センサ20が移動する計測位置のいずれかではない計測位置を、上記の候補の計測位置に決定する。経路生成部306は、第2の計測位置を、3次元センサ20が第1の計測位置の次に移動する計測位置として決定する。これにより、複数の計測位置の間の3次元センサ20の移動時間を短縮することができる。なお、ロボット10は、アームの複数の関節を同時に動かすことで3次元センサ20を移動させるため、2つの位置の間の距離と、当該2つの位置の間の移動時間は必ずしも比例しない。
【0058】
ステップS1005において、動作制御部307は、経路生成部306が生成した経路に従ってロボット10を移動させて、位置決定部305が決定した複数の計測位置のいずれかに3次元センサ20を移動させる。
【0059】
ステップS1006において、センサ制御部308は、3次元センサ20を制御して、移動後の計測位置で探索領域50を計測する。これにより、3次元センサ20は、探索領域50の3次元情報(点群データ)を取得できる。3次元センサ20は、制御装置30に3次元情報を出力する。
【0060】
ステップS1007において、制御部301は、位置決定部305が決定した複数の計測位置の全てで、3次元センサ20が計測を行ったか否かを判定する。複数の計測位置の全てで3次元センサ20が計測を行った場合にはステップS1008に進む。複数の計測位置のいずれかで3次元センサ20が計測を行っていない場合にはステップS1005に進む。なお、制御部301は、複数の計測位置の全てで3次元センサ20が計測を行ったか否かを判定するのではなく、例えば、分割領域のそれぞれに対して所定数以上の計測位置で計測を行ったか否かを判定してもよい。
【0061】
ステップS1008において、マップ取得部303は、複数の計測位置における3次元センサ20による探索領域50の計測結果である3次元情報(点群データ)と複数の計測位置の情報とに基づき、マップ情報を生成する。ここで、生成されたマップ情報において未知領域を示す範囲(領域)がある場合には、制御部301は、当該未知領域が既知領域に変化するまで、ステップS1002~S1008の処理を繰り返し実行するようにしてもよい。
【0062】
ステップS1009において、領域判定部304は、マップ情報に基づき、物体が配置された領域である干渉領域を判定する。具体的には、領域判定部304は、マップ情報に基づき、全ての物体領域から構成される領域を干渉領域として判定する。
【0063】
なお、センサ制御部308は、複数の計測位置において計測を行うことに加えて、複数の計測位置の間を移動する期間(ステップS1005において3次元センサ20が移動している期間)においても3次元センサ20が計測を行うようにしてもよい。例えば、センサ制御部308は、位置決定部305が決定した2つの計測位置を3次元センサ20が移動している期間において、所定の時間(例えば、0.5秒)ごとに、3次元センサ20による計測を行ってもよい。また、センサ制御部308は、位置決定部305が決定した2つの計測位置を3次元センサ20が移動している期間において、所定の距離(例えば、1
cm)移動するごとに、3次元センサ20による計測を行ってもよい。これによれば、3次元センサ20が多くの3次元情報を取得できるようになるため、領域判定部304は、精度高く干渉領域を判定することが可能になる。
【0064】
このように、本実施形態に係る制御装置30は、探索領域50における各分割領域を計測するために、各分割領域の位置に基づき、3次元センサ20の複数の計測位置を決定する。つまり、ユーザが計測位置を入力することなく、複数の計測位置を決定することができる。従って、干渉領域を判定するために、ユーザが行う処理量を低減することができる。
【0065】
[変形例1]
上述したように、探索領域50の3次元情報を取得するために、3次元センサ20が有するカメラにより撮像した2次元画像を用いる場合がある。このような場合には、探索領域50の2次元画像にハレーションまたは黒つぶれが生じていると、3次元センサ20による探索領域50の計測結果にノイズが生じやすい。そこで、本変形例では、2次元画像にハレーションまたは黒つぶれが生じるような状態であれば、探索システム1は、そのような状態を解消するように3次元センサ20の位置または状態を制御する。なお、本変形例では、3次元センサ20が2次元画像を撮像するためのカメラ(撮像部)を有しているものとして説明する。
【0066】
図6を参照して、本変形例に係る制御装置30が干渉領域を判定する処理を説明する。
図6は、干渉領域の判定処理のフローチャートである。なお、
図6のフローチャートの各処理は、制御部301が記憶部302に記憶されたプログラムを実行して、自身により、
または各構成要素を制御することにより実現される。また、実施形態1と同様のステップについては、同じ番号を付し、詳細な説明は省略する。
【0067】
ステップS2001において、センサ制御部308は、3次元センサ20を制御して、移動された計測位置において探索領域50の2次元画像を撮像(取得)する。
【0068】
ステップS2002において、センサ制御部308は、撮像した2次元画像の輝度が所定の範囲外(例えば、0~255の値によって輝度値を表す場合に輝度値が10以下または240以上)であるか否かを判定する。具体的には、センサ制御部308は、例えば、0~255の値によって輝度値を表す場合に、輝度値が10以下または240以上である範囲の画素の数が所定数以上であるか否かを判定する。2次元画像の輝度が所定の範囲外であれば、ステップS2003に進む。2次元画像の輝度が所定の範囲以内であれば、ステップS1006に進む。なお、上述した所定の範囲外の輝度は、黒つぶれまたはハレーションが存在すると判定できる範囲であれば、任意の範囲であってもよい。
【0069】
なお、ステップS2002では、センサ制御部308は、黒つぶれとハレーションとの存在を判定すること行っているが、黒つぶれとハレーションのいずれかのみの存在を判定してもよい。つまり、センサ制御部308は、輝度値が10以下の画素の数が所定数以上であるか否かを判定してもよいし、輝度値が240以上の画素の数が所定数以上であるか否かを判定してもよい。
【0070】
ステップS2003において、位置決定部305は、2次元画像にハレーションまたは黒つぶれがあると判定できるため、当該計測位置を中心とする所定の距離の範囲内で当該計測位置を変更する。このとき、位置決定部305は、3次元センサ20の光軸上に位置する(計測の対象となる)分割領域が、変更の前後で異ならないように計測位置を変更する。そして、動作制御部307は、変更した計測位置に3次元センサ20を移動させる。また、ステップS2003において、センサ制御部308は、上記の3次元センサ20の移動とともに、または移動とは別に、3次元センサ20を制御してもよい。具体的には、センサ制御部308は、3次元センサ20の照明部の照度とカメラの露光時間とカメラのゲインとの少なくともいずかの値を、直前のステップS2001の時点から変更してもよい。また、センサ制御部308は、3次元センサ20の照明部の照明時間を変更してもよい。ステップS2003の処理が終了すると、ステップS2001に進み、再度、2次元画像の撮像が行われる。
【0071】
このように制御が行われれば、より適切な状況下で3次元センサ20が探索領域50を計測することができるため、より精度良い計測が可能になる。このため、より高精度に干渉領域を判定することが可能になる。
【0072】
なお、実施形態に記載された事項のみによって特許請求の範囲の記載の解釈が限定されるものではない。特許請求の範囲の記載の解釈には、出願時の技術常識を考慮した、発明の課題が解決できることを当業者が認識できるように記載された範囲も含む。
【0073】
(付記1)
探索領域を計測する3次元センサ(20)が設けられたロボット(10)の制御装置(30)であって、
前記探索領域(50)の各範囲の位置に基づき、当該各範囲を計測するための前記3次元センサ(20)の複数の計測位置を決定する位置決定手段(305)と、
前記ロボット(10)を動かすことにより前記複数の計測位置のそれぞれに前記3次元センサ(20)を移動させるように制御する動作制御手段(307)と、
前記複数の計測位置のそれぞれにおいて前記3次元センサ(20)が計測した結果に基
づき、前記探索領域(50)における物体の領域を判定する領域判定手段(304)と、を有することを特徴とする制御装置(30)。
【0074】
(付記2)
探索領域を計測する3次元センサ(20)が設けられたロボット(10)の制御方法であって、
前記探索領域(50)の各範囲の位置に基づき、当該各範囲を計測するための前記3次元センサ(20)の複数の計測位置を決定する位置決定ステップ(S1002)と、
前記ロボット(10)を動かすことにより前記複数の計測位置のそれぞれに前記3次元センサ(20)を移動させるように制御する動作制御ステップ(S1005)と、
前記複数の計測位置のそれぞれにおいて前記3次元センサ(20)が計測した結果に基づき、前記探索領域(50)における物体の領域を判定する領域判定ステップ(S1009)と、
を有することを特徴とする制御方法。
【符号の説明】
【0075】
1:探索システム、10:ロボット、20:3次元センサ、30:制御装置、
40:制御サーバ、50:探索領域、60:ネットワーク
301:制御部、302:記憶部、303:マップ取得部、304:領域判定部、
305:位置決定部、306:経路生成部、307:動作制御部、
308:センサ制御部