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

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

▶ オムロン株式会社の特許一覧

<>
  • 特許-制御装置、制御方法、プログラム 図1
  • 特許-制御装置、制御方法、プログラム 図2
  • 特許-制御装置、制御方法、プログラム 図3
  • 特許-制御装置、制御方法、プログラム 図4
  • 特許-制御装置、制御方法、プログラム 図5
  • 特許-制御装置、制御方法、プログラム 図6
  • 特許-制御装置、制御方法、プログラム 図7
  • 特許-制御装置、制御方法、プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】制御装置、制御方法、プログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240528BHJP
【FI】
B25J13/08 A
【請求項の数】 15
(21)【出願番号】P 2020204430
(22)【出願日】2020-12-09
(65)【公開番号】P2022091542
(43)【公開日】2022-06-21
【審査請求日】2023-10-10
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】殿谷 徳和
(72)【発明者】
【氏名】松本 慎也
【審査官】尾形 元
(56)【参考文献】
【文献】特開2020-28957(JP,A)
【文献】特開2017-77600(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
3次元センサを有するロボットの制御装置であって、
前記3次元センサが計測する領域である探索領域と、前記探索領域を計測するために前記ロボットが移動することを許可された領域であるフリー領域とを設定する設定手段と、
前記フリー領域内を移動するように前記ロボットの動作を制御することによって、前記探索領域を計測する前記3次元センサを移動させる動作制御手段と、
を有することを特徴とする制御装置。
【請求項2】
前記設定手段は、ユーザ操作により前記制御装置に入力された情報に基づき前記フリー領域を設定する、
ことを特徴とする請求項1に記載の制御装置。
【請求項3】
前記設定手段は、ユーザが予めロボットを動かした領域を含むように、前記フリー領域を設定する、
ことを特徴とする請求項1または2に記載の制御装置。
【請求項4】
前記設定手段は、前記ロボットが配置される領域に基づき、前記フリー領域を設定する、
ことを特徴とする請求項1から3のいずれか1項に記載の制御装置。
【請求項5】
前記設定手段は、前記ロボット以外の物体が配置された領域を含まないように、前記フリー領域を設定する、
ことを特徴とする請求項1から4のいずれか1項に記載の制御装置。
【請求項6】
前記設定手段は、前記ロボットが移動することが予め禁止された領域を含まないように、前記フリー領域を設定する、
ことを特徴とする請求項1から5のいずれか1項に記載の制御装置。
【請求項7】
前記設定手段は、前記ロボットの可動範囲に基づき前記フリー領域を設定する、
ことを特徴とする請求項1から6のいずれか1項に記載の制御装置。
【請求項8】
前記設定手段は、前記3次元センサの計測スペックに基づき前記フリー領域を設定する、
ことを特徴とする請求項1から7のいずれか1項に記載の制御装置。
【請求項9】
前記3次元センサの計測スペックは、前記3次元センサから計測可能な最短距離の情報を含み、
前記設定手段は、前記ロボットの可動範囲を前記最短距離の長さ分だけ広げた領域を含むように、前記フリー領域を設定する、
ことを特徴とする請求項8に記載の制御装置。
【請求項10】
前記3次元センサの計測スペックは、前記3次元センサから計測可能な最長距離の情報を含み、
前記設定手段は、前記ロボットの可動範囲を前記最長距離の長さ分だけ広げた領域のうち前記フリー領域を含まない領域を前記探索領域として設定する、
ことを特徴とする請求項9に記載の制御装置。
【請求項11】
前記設定手段は、前記3次元センサが前記探索領域を計測した結果に基づき、前記フリー領域を更新し、
前記動作制御手段は、前記設定手段が更新したフリー領域内を移動するように前記ロボットの動作を制御することによって、前記探索領域を計測する前記3次元センサを移動させる、
ことを特徴とする請求項1から10のいずれか1項に記載の制御装置。
【請求項12】
前記フリー領域若しくは前記探索領域を表示する表示手段をさらに有する、
ことを特徴とする請求項1から11のいずれか1項に記載の制御装置。
【請求項13】
前記設定手段は、前記フリー領域を含まないように前記探索領域を設定する、
ことを特徴とする請求項1から12のいずれか1項に記載の制御装置。
【請求項14】
3次元センサを有するロボットの制御方法であって、
前記3次元センサが計測する領域である探索領域と、前記探索領域を計測するために前記ロボットが移動することを許可された領域であるフリー領域とを設定する設定ステップと、
前記フリー領域内を移動するように前記ロボットの動作を制御することによって、前記探索領域を計測する前記3次元センサを移動させる動作制御ステップと、
を有することを特徴とする制御方法。
【請求項15】
請求項14に記載の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御方法、プログラムに関する。
【背景技術】
【0002】
従来、物を製造する現場などにおいて、製造の安全性を図るために、或る領域内の物体の領域(干渉領域)を予め把握することが行われている。
【0003】
特許文献1では、ロボット制御装置は、ロボットに設けられた深度センサ(3次元センサ)が物体の表面上の各点の深度データを取得することにより、物体の領域(干渉領域)を判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-089728号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、ロボット制御装置が、ロボットの姿勢を変更することにより、深度センサの位置を変更しながら深度データを取得することが開示されている。そして、ロボット制御装置は、深度データに基づき物体の領域(干渉領域)を判定している。しかしながら、深度センサの位置を決定する方法の記載がない。
【0006】
また、周辺の構造物に対して、ロボットが動き出す際の初期段階において、各軸のアームが動作してよい三次元空間を把握した上で、ロボットが構造物にぶつからないような動作プログラムを、専門スキルを有するシステムエンジニアが予め作成することがある。さらに、熟練工のノウハウ(事前の情報)や知識のない作業員は、ロボットを動かすにあたり、ロボットを初期に動作させてよい空間が視覚的に分からない。このため、このような作業員がロボットを動かすと、周辺の物体にロボットが衝突してしまう可能性がある。また、三次元シミュレータ上でロボットの動作を設定(生成)する際にも、ロボットが動作可能な範囲が可視化されていないので、専門スキルが必要である。
【0007】
このため、専門スキルを有する者による作業がなければ、干渉領域を判定する際に、ロボットや深度センサが物体に衝突してしまう可能性があり、安全性に課題があった。
【0008】
そこで、本発明は、専門スキルを有する者による作業がなくても、安全性高く、3次元センサを用いて物体の領域を判定することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために本発明は、以下の構成を採用する。
【0010】
すなわち、本発明の一側面に係る3次元センサを有するロボットの制御装置は、前記3次元センサが計測する領域である探索領域と、前記探索領域を計測するために前記ロボットが移動することを許可された領域であるフリー領域とを設定する設定手段と、前記フリー領域内を移動するように前記ロボットの動作を制御することによって、前記探索領域を計測する前記3次元センサを移動させる動作制御手段と、を有することを特徴とする制御装置である。
【0011】
このような構成によれば、フリー領域という安全な範囲内をロボットが動きながら探索領域を計測することができるため、安全性高く、3次元センサを用いて探索領域を計測すること(干渉領域を判定すること)ができる。また、フリー領域が設定されれば、フリー領域の内部(フリー領域内)でしかロボットは動かない。このため、専門スキルを有する者が、ロボットの制御プログラムを予め作成したり、または、ロボットを手動で動かしながら探索領域を計測したりする必要がない。つまり、本構成によれば、専門スキルを有する者の作業がなくとも、3次元センサを用いて探索領域を計測することができる。
【0012】
上記制御装置において、前記設定手段は、ユーザ操作により前記制御装置に入力された情報に基づき前記フリー領域を設定してもよい。これによれば、ユーザが所望する領域をフリー領域に設定することができる。また、ユーザが自由にフリー領域を変更(修正)することもできる。
【0013】
上記制御装置において、前記設定手段は、ユーザが予めロボットを動かした領域を含むように、前記フリー領域を設定してもよい。これによれば、実際に動かした領域を含むようにフリー領域が設定できるため、ユーザは直感的にフリー領域を設定することができる。
【0014】
上記制御装置において、前記設定手段は、前記ロボットが配置される領域に基づき、前記フリー領域を設定してもよい。これによれば、例えば、ロボットの周囲をフリー領域に設定できるため、ロボットが移動する可能性が高い適切な範囲をフリー領域に設定することができる。
【0015】
上記制御装置において、前記設定手段は、前記ロボット以外の物体が配置された領域を含まないように、前記フリー領域を設定してもよい。これによれば、ロボットが、ロボット以外の物体が配置された領域に移動してしまうことを防げるので、より安全に探索領域の計測が可能になる。
【0016】
上記制御装置において、前記設定手段は、前記ロボットが移動することが予め禁止された領域を含まないように、前記フリー領域を設定してもよい。これによれば、移動することが予め禁止された領域に、ロボットが移動してしまうことを防げるので、より安全に探索領域の計測が可能になる。
【0017】
上記制御装置において、前記設定手段は、前記ロボットの可動範囲に基づき前記フリー領域を設定してもよい。これによれば、ロボットが移動し得る最大限の範囲をフリー領域に設定することができるので、3次元センサは、より柔軟な位置から探索領域を計測することができる。これにより、探索領域の計測の精度が向上する。
【0018】
上記制御装置において、前記設定手段は、前記3次元センサの計測スペックに基づき前記フリー領域を設定してもよい。
【0019】
上記制御装置において、前記3次元センサの計測スペックは、前記3次元センサから計測可能な最短距離の情報を含み、前記設定手段は、前記ロボットの可動範囲を前記最短距離の長さ分だけ広げた領域を含むように、前記フリー領域を設定してもよい。
【0020】
上記制御装置において、前記3次元センサの計測スペックは、前記3次元センサから計測可能な最長距離の情報を含み、前記設定手段は、前記ロボットの可動範囲を前記最長距離の長さ分だけ広げた領域のうち前記フリー領域を含まない領域を前記探索領域として設定してもよい。これによれば、3次元センサが計測することのできない領域が探索領域に含まれることを防げるので、より効率的に探索領域の計測が可能になる。
【0021】
上記制御装置において、前記設定手段は、前記3次元センサが前記探索領域を計測した結果に基づき、前記フリー領域を更新し、前記動作制御手段は、前記設定手段が更新したフリー領域内を移動するように前記ロボットの動作を制御することによって、前記探索領域を計測する前記3次元センサを移動させてもよい。これによれば、安全な領域であると判定されるたびにフリー領域を広くできるので、初期状態で安全な領域が不明である場合でも安全に探索領域を計測することができる。そして、フリー領域を徐々に広くすることによって、徐々に広い範囲を計測することができるようになるので、結果として、広い範囲の探索領域を計測することができる。
【0022】
上記制御装置において、前記フリー領域若しくは前記探索領域を表示する表示手段をさらに有していてもよい。これによれば、ユーザは、直感的に、計測(探索)の対象となる領域(探索領域)または/およびロボットが移動する可能性のある領域(フリー領域)を把握することができる。すると、ユーザは、表示された探索領域または/およびフリー領域を、容易に、より適切な大きさ、範囲および位置に修正することもできる。従って、適切な探索領域を計測するために、より安全なフリー領域を設定することが容易になるので、より安全性高く、3次元センサを用いて探索領域の計測をすることができる。
【0023】
上記制御装置において、前記設定手段は、前記フリー領域を含まないように前記探索領域を設定してもよい。
【0024】
上記制御装置と探索領域を計測する3次元センサとを有することを特徴とするロボット。であってもよい。
【0025】
本発明は、上記手段の少なくとも一部を有する装置として捉えてもよいし、電子機器や制御システム、探索システム、探索装置として捉えてもよい。また、本発明は、上記処理の少なくとも一部を含むロボットの制御方法、設定方法、探索方法として捉えてもよい。また、本発明は、かかる方法を実現するためのプログラムやそのプログラムを非一時的に記録した記録媒体として捉えることもできる。なお、上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0026】
本発明によれば、専門スキルを有する者による作業がなくても、安全性高く、3次元センサを用いて物体の領域を判定することができる。
【図面の簡単な説明】
【0027】
図1図1は、実施形態1に係る探索システムを説明する図である。
図2図2は、実施形態1に係る制御装置の内部構成を説明する図である。
図3図3は、実施形態1に係る干渉領域の判定のフローチャートである。
図4図4Aは実施形態1に係るUIの表示を説明する図であり、図4Bは実施形態1に係るフリー領域等の設定を説明する図である。
図5図5は、実施形態1に係るフリー領域等の設定を説明する図である。
図6図6Aおよび図6Bは、実施形態1に係るフリー領域等の設定を説明する図である。
図7図7Aおよび図7Bは、実施形態1に係るフリー領域等の設定を説明する図である。
図8図8は、実施形態1に係るフリー領域等の設定を説明する図である。
【発明を実施するための形態】
【0028】
以下、本発明を実施するための実施形態について図面を用いて記載する。
【0029】
<適用例>
以下では、制御装置30を有する探索システム1を説明する。探索システム1は、3次元センサ20により複数の計測位置から探索領域50を計測(探索)することによって、探索領域50において物体の配置された領域(干渉領域)を判定する。このとき、3次元センサ20を有するロボット10は、予め設定したフリー領域70の外部に移動しないように動いて、探索領域50を計測(探索)する。干渉領域が判定されれば、例えば、ロボット10は、干渉領域を避けることにより、フリー領域70に加えて、探索領域50内部を物体に衝突しないように移動することができる。また、ロボット10以外の装置も、同様に、探索領域50内部を物体に衝突しないように移動することができる。なお、計測位置とは、3次元センサ20の3次元座標および姿勢(光軸方向)を示す。
【0030】
これによれば、フリー領域70という安全な範囲内をロボット10が動きながら探索領域50を計測することができるため、安全性高く、3次元センサ20を用いて物体の領域(干渉領域)を判定することができる。
【0031】
<実施形態1>
[探索システムの構成]
実施形態1に係る探索システム1を、図1のシステム構成図を用いて説明する。探索システム1は、ロボット10、3次元センサ20、制御装置30、制御サーバ40を有する。
【0032】
ロボット10は、自らの姿勢を変化させることによって、3次元センサ20を移動させる。ロボット10は、例えば、垂直多関節ロボット、移動機構ロボット、パラレルリンクロボット、直動機構ロボットなど任意のタイプのロボットであり得る。本実施形態では、ロボット10は、複数の関節を有するアームを備えており、各関節の角度を制御することによって3次元センサ20の位置(姿勢)を制御する多関節ロボットである。各関節部は、モータにより駆動されてアームを回転させる駆動軸を備えている。
【0033】
また、ロボット10は、制御装置30によって設定されたフリー領域70の内部のみを移動することができる。つまり、フリー領域70は、探索領域50を計測するためにロボット10(3次元センサ20)が移動することを許可された領域(移動してもよい領域)である。このため、フリー領域70の内部以外(外部)には、ロボット10は移動することができない。
【0034】
3次元センサ20は、探索領域50を計測(探索)して、探索領域50の3次元情報(点群データ)を取得する。3次元センサ20は、ロボット10のアームの先端に設けられている。このため、ロボット10が3次元センサ20を有しているとみなしてもよい。3次元センサ20は、例えば、深度情報を取得する深度センサ、または距離画像を取得する距離画像センサである。互いに異なる複数の計測位置から探索領域50を計測(探索)することを3次元センサ20が繰り返し実行することによって、探索領域50における干渉領域が判定可能になる。なお、3次元センサ20は、カメラ(撮像部)を備えていてもよく、3次元情報を取得することのみならず、2次元画像を撮像(取得)可能であってもよい。また、3次元センサ20は、探索領域50に光を照射して照明する照射部や、画像を投影するプロジェクタを有していてもよい。
【0035】
ここで、3次元センサ20は、3次元センサ20から探索領域50における対象物までの距離が取得できればよいため、アクティブ方式とパッシブ方式のいずれのセンサであってもよい。ここで、アクティブ方式とは、3次元センサ20から投影した光を対象物にあてて、当該対象物での反射光を受光して距離を取得する方式である。一方、パッシブ方式
とは、自然光や他の照明によって照らされた対象物からの光を受光して距離を取得する方式である。ここで、アクティブ方式として、例えば、赤外光をプロジェクタが対象物に照射し、当該対象物にて反射した赤外光をカメラが受光することで、三角測量の原理により当該対象物までの距離を取得する方法(スポット法;TOF)を用いてもよい。また、アクティブ方式として、例えば、パターン画像をプロジェクタが対象物に照射し、当該対象物に映し出されたパターン画像をカメラが撮像することで、撮像したパターン画像の歪みに応じて当該対象物までの距離を取得する方法を用いてもよい。また、パッシブ方式として、互いに異なる2点の位置から対象物を撮像して、2つの撮像画像の差分から距離を取得する方法を用いてもよい。
【0036】
制御装置30は、ロボット10および3次元センサ20を制御する。制御装置30は、ロボット10の姿勢(動き;アームの関節の角度)を制御することにより、3次元センサ20の計測位置(姿勢;視点)を制御する。また、制御装置30は、3次元センサ20の計測のタイミングを制御する。さらに、3次元センサ20が計測した結果に基づき、干渉領域を判定することもできる。
【0037】
制御サーバ40は、ネットワーク60を介して、複数の制御装置30を制御する。制御サーバ40は、制御装置30が有する構成要素の全部または一部を有していてもよい。例えば、制御サーバ40は、後述する設定部300および表示部309を有していて、フリー領域70および探索領域50を設定する処理のみを行うものであってもよい。
【0038】
[制御装置の構成]
図2の構成図を参照して、制御装置30の内部構成を説明する。制御装置30は、設定部300、制御部301、記憶部302、マップ取得部303、領域判定部304、位置決定部305、経路生成部306、動作制御部307、センサ制御部308、表示部309を有する。
【0039】
設定部300は、探索領域50やフリー領域70を設定する。設定部300は、計測の対象の領域であると判定した領域を探索領域50として設定する。設定部300は、物体の領域ではないため、ロボット10を動かしてもよいと判定した領域をフリー領域70として設定する。なお、設定部300によるフリー領域70や探索領域50の設定の処理(設定の方法)については、後述にて詳細に説明する。
【0040】
なお、フリー領域70および探索領域50を設定する際に、ロボット10が自由に動いてしまうと、ロボット10が物体に接触する可能性がある。このため、フリー領域70および探索領域50が設定される前には、ユーザが直接的にロボット10を動かさない限り、ロボット10は動かない。つまり、フリー領域70および探索領域50を初めて設定する際には、3次元センサ20による計測結果は用いられずに、フリー領域70および探索領域50が設定される。
【0041】
制御部301は、記憶部302に記憶されたプログラムに従って、制御装置30の各構成要素を制御する。なお、制御部301の処理は、制御サーバ40が実行してもよい。
【0042】
記憶部302は、各構成要素が動作するための情報を記憶する。記憶部302は、例えば、探索領域50やフリー領域70を特定する情報(位置や大きさ、形状などを示す情報)を記憶する。なお、探索領域50およびフリー領域70は複数個ずつ存在していてもよく、記憶部302は、複数の探索領域50および複数のフリー領域70を特定する情報を記憶していてもよい。また、記憶部302は、3次元センサ20の計測スペック(計測可能な距離の範囲、視野角度など)や、ロボット10のスペック(アームの関節の可動範囲、関節の回転可能速度など)を記憶する。なお、これらの情報は、制御装置30に対して
ユーザが予め設定可能である。
【0043】
さらに、記憶部302は、探索領域50における各点(ボクセル;ポイントクラウドなどの三次元情報)の3次元センサ20による計測状況(探索状況)を示すマップ情報を記憶する。ここで、探索領域50における各点は、それぞれ異なる領域(例えば、立方体または三次元のメッシュ)に対応している。例えば、探索領域50における各点は、それぞれ対応する領域の中心の点(重心)である。記憶部302は、探索領域50における各点に対応する領域について、物体が存在するか否かを判定できている領域である既知領域と、物体が存在するか判定できていない領域である未知領域とのいずれかを示すマップ情報を記憶する。ここで、マップ情報では、既知領域は、物体が存在すると判定された領域である物体領域と、物体が存在しないと判定された領域である空領域のいずれかを示す。つまり、マップ情報は、探索領域50における各点が、物体が存在する点と物体が存在しないと点と物体が存在するか否かが不明である点とのいずれに該当するかを示しているといえる。
【0044】
マップ取得部303は、3次元センサ20が計測した結果(計測結果;探索結果)に基づき、上述したマップ情報を生成または更新をする。ここで、3次元センサ20が、複数の計測位置から探索領域50を(複数の計測範囲を)計測して、マップ取得部303は、その計測結果に基づき、マップ情報を生成(更新)する。
【0045】
ここで、マップ取得部303は、例えば、センサ座標系(3次元センサ20の座標系)で定義された物体の表面上の各点の3次元情報(深度データ)を、計測位置に基づく座標変換によって、ロボット座標系(ロボット10の座標系)で定義される3次元位置情報に変換する。このことにより、マップ取得部303は、深度データが示す物体の、ロボット座標系での位置を判定できる。ここで、様々な計測位置において3次元センサ20が探索領域50を計測すれば、様々な深度データが取得できるため、探索領域50の各点(各領域)における物体の有無の信頼度が向上する。そして、マップ取得部303は、この信頼度に基づき、各点に対応する領域が未知領域と物体領域と空領域とのいずれに該当するかを決定(判定)できる。
【0046】
領域判定部304は、3次元センサ20の計測結果(探索結果)に基づき、干渉領域を判定する(決定する)。具体的には、領域判定部304は、マップ情報に基づき、物体領域から構成される領域を干渉領域として判定する。
【0047】
位置決定部305は、3次元センサ20が計測する際の複数の計測位置(移動位置;3次元座標および姿勢)を決定する。位置決定部305は、計測位置の複数の候補を決定しておき、複数の候補の中から、3次元センサ20が移動する(ロボット10が3次元センサ20を移動させる)ことが可能な候補のみを計測位置として選択することもできる。ここで、3次元センサ20の計測位置は、3次元センサ20の高さや3次元センサ20の光軸の向き(方向)の情報などにより特定できる。また、3次元センサ20の計測位置は、ロボット10の姿勢により特定できる。なお、3次元センサ20の計測位置(位置)とロボット10の姿勢との対応は、いわゆるキャリブレーション処理によって予め計測(決定)されているものとする。
【0048】
経路生成部306(経路決定部)は、位置決定部305が決定した複数の計測位置の間で3次元センサ20を移動させるための、ロボット10の移動経路を生成(決定)する。例えば、経路生成部306は、複数の計測位置の全てに3次元センサ20を移動させるために要する時間が最も短いような、移動経路を決定する。
【0049】
動作制御部307は、3次元センサ20を複数の計測位置に移動させるように、ロボッ
ト10の動作を制御する。これにより、動作制御部307は、3次元センサ20が計測する範囲(計測範囲)を、当該複数の計測位置に対応する範囲に移動させる。ここで、動作制御部307は、経路生成部306が決定した移動経路に従ってロボット10の姿勢を制御して、3次元センサ20の位置(座標および姿勢)を制御する。
【0050】
センサ制御部308は、3次元センサ20を制御する。センサ制御部308は、例えば、ロボット10が3次元センサ20を計測位置に移動させたタイミングで、3次元センサ20が計測するように制御する。また、センサ制御部308は、3次元センサ20が照明部を有する場合には、照明部の発光量(明るさ)などを制御することもできる。
【0051】
表示部309は、ロボット10、探索領域50およびフリー領域70を3次元的に表示する(図4B参照)。なお、表示部309は、探索領域50およびフリー領域70のうちいずれか一方のみを表示してもよい。探索領域50およびフリー領域70のうちいずれか一方のみを表示することによれば、他方の領域が表示されることによって、確認したい領域の視認が阻害されることが防げる。ここで、ユーザは、表示部309に表示されたUI(ユーザインタフェース)を用いて、不図示の操作部材(例えば、マウス、キーボード、または/およびタッチパネル)を介して、探索領域50やフリー領域70を設定することができる。表示部309は、表示パネル(ディスプレイ)に画像を表示するものであってもよいし、スクリーンに画像を投影するプロジェクタであってもよい。このように、探索領域50およびフリー領域70が3次元的に表示されることによれば、ユーザは、直感的に、計測(探索)の対象となる領域(探索領域50)およびロボット10が移動する可能性のある領域(フリー領域70)を把握することができる。すると、ユーザは、表示された探索領域50およびフリー領域70を、不図示の操作部材を介して、容易に、より適切な大きさ、範囲および位置に修正することもできる。従って、適切な探索領域50を計測するために、より安全なフリー領域70を設定することが容易になるので、より安全性高く、3次元センサ20を用いて物体の領域(干渉領域)を判定することができる。また、探索領域50とフリー領域70をユーザが把握できれば、これらの領域以外の領域については探索には用いられないと考えられるため、例えば、ロボット10のための電源や周辺機器を設置できる位置などをユーザは把握できる。
【0052】
また、制御装置30は、例えば、CPU(プロセッサ)、メモリ、ストレージなどを備えるコンピュータにより構成することができる。その場合、図2に示す構成は、ストレージに格納されたプログラムをメモリにロードし、CPUが当該プログラムを実行することによって実現されるものである。かかるコンピュータは、パーソナルコンピュータ、サーバコンピュータ、タブレット端末、スマートフォンのような汎用的なコンピュータでもよいし、オンボードコンピュータのように組み込み型のコンピュータでもよい。あるいは、図2に示す構成の全部または一部を、ASICやFPGAなどで構成してもよい。あるいは、図2に示す構成の全部または一部を、クラウドコンピューティングや分散コンピューティングにより実現してもよい。
【0053】
[干渉領域の判定処理]
図3を参照して、制御装置30が干渉領域を判定する処理を説明する。図3は、干渉領域の判定処理のフローチャートである。なお、図3のフローチャートの各処理は、制御部301が記憶部302に記憶されたプログラムを実行して、自身により、または各構成要素を制御することにより実現される。
【0054】
ステップS1001において、制御部301は、ロボット10のCAD(Computer-Aided Design)情報を記憶部302から取得する。そして、制御部301は、図4Aに示すように、このCAD情報に基づきロボット10を3次元的に描画(表現)してUI上(表示部309)に表示する。これによって、ユーザは、ロボット10
の配置を明確に把握することができる。なお、このとき、制御部301は、ロボット10と3次元センサ20とを3次元的に描画(表現)して表示部309に表示してもよい。また、制御部301は、制御サーバ40などの外部装置から、ロボット10のCAD情報を取得してもよい。
【0055】
ステップS1002において、設定部300は、フリー領域70を設定する。ステップS1003において、設定部300は、探索領域50を設定する。なお、ステップS1002とステップS1003の処理の詳細は、後述にて詳細に説明する。
【0056】
ステップS1004において、表示部309は、ロボット10(および3次元センサ20)を3次元的に描画したUI上に、フリー領域70と探索領域50をさらに描画して表示する。なお、当然であるが、UI上に表示されたロボット10、フリー領域70および探索領域50の間の位置関係は、実際のこれらの間の位置関係と同様である。このとき、例えば、ユーザ操作に応じて、フリー領域70や探索領域50の大きさ、位置を調整可能であってもよい。なお、表示部309は、探索領域50およびフリー領域70のうちいずれか一方のみを表示してもよい。
【0057】
ステップS1005において、位置決定部305は、フリー領域70の内部において3次元センサ20の計測位置(3次元座標および姿勢)を決定する。このとき、位置決定部305は、直前の計測位置の隣接位置を今回の計測位置として決定してもよいし、多くの未知領域が計測できるような計測位置を決定してもよい。つまり、位置決定部305は、フリー領域70の内部であれば、任意に計測位置を決定してよい。
【0058】
ステップS1006において、動作制御部307は、位置決定部305が決定した計測位置に3次元センサ20(ロボット10)を移動させる。ここでは、動作制御部307は、フリー領域70の外部に移動しないようにロボット10を移動させる(フリー領域70内を移動するようにロボット10の動作を制御する)。
【0059】
ステップS1007において、センサ制御部308は、3次元センサ20を制御して、移動後の計測位置で探索領域50を計測する。これにより、3次元センサ20は、探索領域50の3次元情報(点群データ)を取得できる。3次元センサ20は、制御装置30に3次元情報を出力する。
【0060】
ステップS1008において、マップ取得部303は、3次元センサ20による探索領域50の計測結果である3次元情報(点群データ)と計測位置の情報とに基づき、マップ情報を更新(生成)する。
【0061】
ステップS1009において、制御部301は、探索領域50の内部を十分に計測できたか否かを判定する。具体的には、制御部301は、マップ情報における未知領域の数が閾値Th以下であるか否かを判定する。未知領域の数が閾値Th以下であれば、探索領域50を十分に計測できたと判定できるため、干渉領域を判定するためのステップS1010に進む。一方で、未知領域の数が閾値Thよりも大きければ、探索領域50を十分に計測できていないと判定できるため、ステップS1005に戻る。
【0062】
なお、ステップS1009において、制御部301は、所定回数以上の計測を行ったか否かによって、探索領域50の内部を十分に計測できたか否かを判定してもよい。この場合、3次元センサ20が所定回数以上、探索領域50を計測している場合にはステップS1010に進み、そうでない場合にはステップS1005に進む。
【0063】
ステップS1010において、領域判定部304は、マップ情報に基づき、物体が配置
された領域である干渉領域を判定する。具体的には、領域判定部304は、マップ情報に基づき、全ての物体領域から構成される領域を干渉領域として判定する。
【0064】
[フリー領域および探索領域の設定について]
以下では、ステップS1002およびS1003にて行われる、フリー領域70と探索領域50の設定処理(設定方法)について詳細に説明する。
【0065】
(ユーザの入力による設定)
まず、設定部300は、フリー領域70と探索領域50を、ユーザの入力(ユーザ操作)に応じて設定することができる。具体的には、ステップS1001の処理が終了すると、図4Aに示すように、ロボット10と3次元センサ20がUI上に表示されるため、ユーザは、この情報を参照して、UI上でフリー領域70と探索領域50の情報を入力する。
【0066】
ここで、例えば、ユーザは、フリー領域70と探索領域50のUI上の座標(例えば、2点以上の頂点の座標)を入力することによって、フリー領域70と探索領域50の情報を入力してもよい。または、ユーザは、図4Bに示すように表示されたUI上で、マウスなどを用いて、フリー領域70と探索領域50の初期データを拡大/縮小させたり移動させたりすることによって、フリー領域70と探索領域50の情報を入力してもよい。このとき、設定部300は、フリー領域70と探索領域50を拡大/縮小させたり移動させたりすることを、ユーザがしやすいようにするとよい。例えば、設定部300は、ロボット10に外接する最小の円柱形状の領域を、フリー領域70の初期データとして設定してもよい。なお、設定部300は、所定の領域における、探索領域50をフリー領域70以外の全ての領域に設定してもよい。
【0067】
また、設定部300は、ユーザが上記のUI上において任意にフリーハンドで描いた領域を、フリー領域70や探索領域50に設定してもよい。設定部300は、ユーザが上記のUI上において単位ボクセルを積み上げた領域を、フリー領域70や探索領域50に設定してもよい。さらに、ユーザが別途、フリー領域70や探索領域50を示すCAD情報を用意しておき、当該CAD情報を制御装置30に入力することで、設定部300は、当該CAD情報が示すようなフリー領域70や探索領域50を設定してもよい。
【0068】
なお、このとき、ユーザは、フリー領域70と探索領域50の形状を任意の形状(球、円柱、円錐、多角柱、多角錘、直方体、任意の多面体などの形状)にすることを選択できてもよい。設定部300は、選択された形状に、フリー領域70と探索領域50の形状を変更する。なお、フリー領域70の形状と探索領域50の形状とは、同一であってもよいし、異なっていてもよい。
【0069】
(周辺情報に基づく設定)
設定部300は、ロボット10のCAD情報と、そのロボット10の周辺の物体の情報(周辺情報;周辺の物体のCAD情報)に基づき、フリー領域70と探索領域50を設定してもよい。ここで、周辺の物体とは、例えば、ケーブル、先端治具、またはエンドエフェクタなどのロボット以外の物体である。例えば、設定部300は、周辺情報が示す物体のそれぞれの領域が外側から接するような(物体のそれぞれの領域に接し、かつ、これらの物体の領域を含まないような)任意の形状の領域であって、ロボット10の配置された位置を含むような領域(中心とする領域)をフリー領域70として設定してもよい。図5に示す例のように、設定部300は、物体501と物体502に接するように、直方体形状のフリー領域70を設定してもよい。このとき、設定部300は、物体501と物体502が外側から接するようにフリー領域70を設定する場合に、複数の形状(例えば、円柱、球および直方体)のうち最もフリー領域70の体積が大きくなる形状を、フリー領域
70の形状に設定(決定)してもよい。そして、設定部300は、フリー領域70と周辺情報が示す物体の領域以外の領域を、探索領域50に設定してもよい。
【0070】
なお、ロボット10が移動する(動く)ことを禁じる領域(禁止領域)をユーザが予め入力(設定)していれば、設定部300は、禁止領域を含まないように、フリー領域70と探索領域50を設定してもよい。例えば、網で囲まれた領域や、ガラスなどが設置された領域など、3次元センサ20が計測しにくい領域を含むように禁止領域が入力されていると、より安全なロボット10の移動が可能になる。また、3次元センサ20が探索領域を、精度高く計測することが可能になる。
【0071】
(ロボットの可動範囲に基づく設定)
設定部300は、ロボット10の可動範囲の設定に基づき、フリー領域70および探索領域50を設定してもよい。具体的には、設定部300は、図6Aに示すように、ロボット10のアームの設定により、ロボット10の可動範囲(物理的または性能的に動くことが可能な範囲)をフリー領域70として設定してもよい。なお、ロボット10のアームの長さや各関節(軸)の可動角度などに応じて、ロボット10の可動範囲が特定できる。このとき、設定部300は、フリー領域70を除く領域を、探索領域50を設定してもよい。
【0072】
(3次元センサの計測スペックに基づく設定)
設定部300は、ロボット10の可動範囲の設定と3次元センサ20の計測スペックに基づき、フリー領域70および探索領域50を設定してもよい。3次元センサ20の計測スペックは、3次元センサ20によって計測可能な範囲(計測可能な距離の範囲や視野角度など)の情報を含む。ここで、3次元センサ20は、図6Bに示すように、3次元センサ20から第1の距離D1(計測可能な距離の範囲の最短距離)の位置(至近位置)と、第2の距離D2(計測可能な距離の範囲の最長距離)の位置(遠方位置)との間の領域601のみを計測することができる。ここで、例えば、第1の距離D1は30cmであり、第2の距離D2は100cmであり得る。
【0073】
そこで、設定部300は、図6Bに示すように、ロボット10の可動範囲(図6A参照)を第1の距離D1の長さ分だけ広げた領域をフリー領域70として設定してもよい。つまり、ロボット10の可動範囲が球状であれば、可動範囲の半径よりも第1の距離D1だけ長い半径の球が、フリー領域70として設定される。そして、設定部300は、図6Bに示すように、ロボット10の可動範囲域(図6A参照)を第2の距離D2の長さ分だけ広げた領域のうち(つまり、3次元センサ20によって計測可能な範囲のうち)、フリー領域70を除いた領域を、探索領域50として設定してもよい。
【0074】
なお、図7Aに示すように複数の3次元センサ21~23をロボット10が有する場合がある。この場合には、設定部300は、3次元センサ21~23の全ての計測スペックに基づき、フリー領域70または/および探索領域50を設定する。例えば、設定部300は、ロボット10の可動範囲をフリー領域70に設定してもよい。また、設定部300は、3次元センサ21~23の少なくもいずれかによって計測できる領域から、フリー領域70を除いた領域を探索領域50として設定してもよい。
【0075】
(ユーザが動かした範囲に基づく設定)
また、設定部300は、図7Bに示すように、ユーザがロボット10を直接動かした領域を、フリー領域70として設定してもよい。これは、いわゆるダイレクトティーチングと呼ばれる技術を用いて実現できる。このように設定することによれば、ユーザが直感的にフリー領域70を設定することができる。このとき、設定部300は、所定の領域(例えば、ユーザが予め入力した領域)のうち、フリー領域70以外の領域を探索領域50と
して設定してもよい。また、設定部300は、上述のようにユーザがロボット10を動かした領域を第2の距離D2分だけ広げた領域から、フリー領域70を除いた領域を探索領域50として設定してもよい。
【0076】
(マップ情報に基づく設定)
また、設定部300は、マップ情報に基づき、フリー領域70を設定(更新)してもよい。なお、設定部300は、フリー領域70を更新するとともに、更新されたフリー領域70を含まないように探索領域50を更新してもよい。例えば、設定部300は、上述のいずれかの方法によって初期のフリー領域70を設定した後に、ステップS1008においてマップを更新するごとに、または、所定の回数の計測をするごとに、フリー領域70を更新してもよい。具体的には、設定部300は、図8に示すように、マップ情報が示す現在のフリー領域70に接する空領域(物体が存在しないと判定された領域)と現在のフリー領域70とを含む領域を、新たなフリー領域71として設定してもよい。これによれば、フリー領域70を徐々に広くできるため、3次元センサ20によって物理的に計測できる領域(範囲)を広くすることができる。
【0077】
なお、設定部300がフリー領域70または/および探索領域50を更新する必要はなく、不図示の更新部(動作記録部)がフリー領域70または/および探索領域50を更新してもよい。つまり、設定部300がフリー領域70および探索領域50を3次元センサ20の計測結果を用いずに設定し、その後、更新部がフリー領域70および探索領域50を3次元センサ20の計測結果を用いて更新してもよい。
【0078】
なお、上記、フリー領域70および探索領域50を設定する複数の方法を説明したが、これらの方法は任意に組み合わされてもよい。例えば、設定部300は、ユーザが入力した領域から、禁止領域を除いた領域を、フリー領域70に設定してもよい。また、例えば、設定部300は、ロボット10の可動範囲とユーザが入力した領域との重複領域(重複範囲)を、フリー領域70に決定してもよい。つまり、上記した方法で決定した複数のフリー領域における重複領域を、新たなフリー領域70として決定(更新)してもよい。
【0079】
このように、フリー領域70を予め設定しておき、フリー領域70の外に出ないように(フリー領域70の内部で動作するように)ロボット10を制御することによれば、探索領域50を計測する際に、安全にロボット10を動かすことができる。
【0080】
なお、上記では、フリー領域70は、探索領域50を計測する際に一緒に計測される可能性はあるが、3次元センサ20によって直接的には計測されない。このため、マップ情報においてフリー領域70に対応する各点は未知領域として示されている可能性が高い。従って、マップ取得部303は、探索領域50の計測前または計測後に、フリー領域70に対応するマップ情報の各点を空領域(既知領域)として設定してもよい。また、マップ取得部303は、探索領域50の計測前または計測後に、フリー領域70に対応するマップ情報の各点がフリー領域70を示すように設定してもよい。
【0081】
また、本実施形態では、表示部309は、表示パネルなどに画像を表示するとして説明したが、HMD(ヘッドマウントディスプレイ)を有し、HMDに画像を表示してもよい。そして、表示部309(HMD)は、ロボット10、探索領域50およびフリー領域70を表すVR画像(全天球画像)を表示してもよい。なお、VR画像は、ステップS1001~S1004において、ロボット10、探索領域50およびフリー領域70がVR空間上に配置されることによって生成可能である。このとき、ロボット10の周辺の物体などもVR空間上に配置されるようにVR画像が生成されると、VR画像を見た際に、フリー領域などと他の物体との位置関係をユーザが把握できる。そして、表示部309(制御部301)は、表示部309の姿勢の変化に応じて、VR画像のうちの表示する領域を変
化させる。これによって、ユーザは、探索領域50およびフリー領域70をより正確に把握することができる。
【0082】
なお、表示部309(HMD)は、VR画像の代わりに、AR画像を表示してもよい。つまり、ユーザは表示部309を介して現実空間が視認可能であり、表示部309(HMD)は、この現実空間に対して、ロボット10、探索領域50およびフリー領域70を表すAR画像が重畳するような表示をしてもよい。なお、AR画像は、上記のVR画像と同様の方法によって生成可能である。そして、表示部309(制御部301)は、表示部309の姿勢の変化に応じて、AR画像のうちの表示する領域を変化させる。これによれば、ユーザは、フリー領域70などとともに現実空間を視認することができるので、VR画像よりもさらに正確に(分かりやすく)、探索領域50およびフリー領域70を把握することができる。
【0083】
従って、ユーザは、VR画像またはAR画像により探索領域50およびフリー領域70を正確に把握できれば、表示された探索領域50およびフリー領域70を、不図示の操作部材を介して、容易に、より適切な大きさ、範囲および位置に修正(設定)することができる。このため、適切な探索領域50を計測するために、より安全なフリー領域70を設定することが容易になるので、より安全性高く、3次元センサ20を用いて物体の領域(干渉領域)を判定することができる。
【0084】
なお、実施形態に記載された事項のみによって特許請求の範囲の記載の解釈が限定されるものではない。特許請求の範囲の記載の解釈には、出願時の技術常識を考慮した、発明の課題が解決できることを当業者が認識できるように記載された範囲も含む。
【0085】
(付記1)
3次元センサ(20)を有するロボット(10)の制御装置(30)であって、
前記3次元センサ(20)が計測する領域である探索領域(50)と、前記探索領域(50)を計測するために前記ロボット(10)が移動することを許可された領域であるフリー領域(70)とを設定する設定手段(300)と、
前記フリー領域(70)の外部に前記ロボット(10)が移動しないように、前記探索領域(50)を計測する前記3次元センサ(20)を移動させる動作制御手段(307)と、
を有することを特徴とする制御装置(30)。
【0086】
(付記2)
3次元センサ(20)を有するロボット(10)の制御方法であって、
前記3次元センサ(20)が計測する領域である探索領域(50)と、前記探索領域(50)を計測するために前記ロボット(10)が移動することを許可された領域であるフリー領域(70)とを設定する設定ステップ(S1002,S1003)と、
前記フリー領域の外部に前記ロボット(10)が移動しないように、前記探索領域(50)を計測する前記3次元センサ(20)を移動させる動作制御ステップ(S1006)と、
を有することを特徴とする制御方法。
【符号の説明】
【0087】
1:探索システム、10:ロボット、20:3次元センサ、30:制御装置、
40:制御サーバ、50:探索領域、60:ネットワーク、70:フリー領域、
300:設定部、301:制御部、302:記憶部、303:マップ取得部、
304:領域判定部、305:位置決定部、306:経路生成部、307:動作制御部、308:センサ制御部、309:表示部
図1
図2
図3
図4
図5
図6
図7
図8