(57)【要約】【課題】ロボットと周辺機器などの障害物とが干渉しないための該ロボットの動作範囲を自動で設定できるようにする。【解決手段】ロボット制御装置１０は、ロボット１１の所定の部分からロボット１１の周辺に存る物体２０の表面上の任意の複数点までの深度を示す深度データ群を取得する深度取得部１３と、所定の部分の３次元位置情報を取得するロボット位置取得部１４と、上記の深度データ群と３次元位置情報とを用いて、ロボット１１の設置位置を原点とする上記複数点の３次元位置情報からなる深度マップ情報を生成する深度マップ生成部１５と、深度マップ情報から物体２０が占める範囲を推定し、この範囲をロボット１１の干渉領域とする干渉領域設定部１６と、を備える。【選択図】図１
2018089728.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御するロボット制御装置であって、
前記ロボットの所定の部分から前記ロボットの周辺に存在する物体の表面上の任意の複数点までの深度を示す深度データ群を取得する深度取得部と、
前記所定の部分の３次元位置情報を取得するロボット位置取得部と、
前記深度データ群と前記所定の部分の前記３次元位置情報とを用いて、前記ロボットの設置位置を原点とする前記複数点の３次元位置情報からなる深度マップ情報を生成する深度マップ生成部と、
前記深度マップ情報から前記物体が占める範囲を推定し、該範囲を前記ロボットの干渉領域として設定する干渉領域設定部と、
を備えたロボット制御装置。
【請求項２】
前記干渉領域設定部は、前記深度マップ情報から前記物体の形状を推定し、該形状を簡略化された形に変換し、該簡略化された形が占める範囲を前記ロボットの干渉領域として設定するようになされた、請求項１に記載のロボット制御装置。
【請求項３】
前記所定の部分に着脱可能に取付けられていて、前記深度を測定する深度センサを備えた、請求項１又は２に記載のロボット制御装置。
【請求項４】
前記ロボット制御装置は、前記深度センサが取付けられた前記ロボットの姿勢を変更するように前記ロボットを動作させる度に前記深度マップ情報を生成するようになされており、
前記干渉領域設定部は、前記ロボットの姿勢ごとに生成された前記深度マップ情報から、前記干渉領域となる範囲を設定するようになされた、請求項３に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットが干渉する可能性のある領域（以下、干渉領域と称す）を設定する機能を備えたロボット制御装置に関する。
【背景技術】
【０００２】
生産現場において、ロボットを用いて、加工素材を工作機械に供給したり、加工後の完成品を工作機械から取出したりする場合には、ロボットを工作機械の近くに設置し、さらにロボットの周囲に安全柵を設置している。この場合、ユーザは、ロボット制御装置に接続された教示操作盤などを使って実際にロボットを操作して、ロボットのアーム部やハンド部などが安全柵から出ないような作業動作をロボットに教示している。ユーザは、このような教示作業や、オフラインプログラミングによりロボットの動作プログラムを作成してロボット制御装置に記憶している。
【０００３】
しかしながら、ロボット自体は、ロボットの周辺に置かれた構造物の情報、すなわち、安全柵や、ベルトコンベアなどの周辺機器がロボットの周辺に存在することを認識できない。そのため、ユーザの教示作業中あるいはロボットの動作プログラムの実行中に、ユーザの操作ミスやプログラムミスによりロボットが周辺機器などと干渉し、周辺機器やロボットが破損してしまうことがある。この結果、破損した周辺機器やロボットが復旧するまで生産が停止するため、生産性が著しく低下する。
そこで、ロボットが動作できる範囲（以下、動作範囲と呼ぶ。）をロボット制御装置に事前に設定しておき、設定された動作領域をロボットが逸脱する場合には該ロボットを停止させて、ロボットと周辺機器との干渉を未然に防ぐことが行われている。この種の方法（以下、背景技術１と呼ぶ。）は特許文献１などに開示される。
【０００４】
また、障害物を検知するセンサをロボットに装着しておき、ロボットが動作プログラムを実行している時に上記センサが障害物を検知した場合、障害物が排除されるまでロボットを停止させるといった方法も行われている。この種の方法（以下、背景技術２と呼ぶ。）は特許文献２などに開示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１３６１２３号公報
【特許文献２】特開２００３−１３６４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、背景技術１においては、周辺機器の位置情報に応じてロボットの動作範囲をユーザがロボット制御装置に事前に入力する必要がある。この場合、一般的にユーザによってロボットからの位置を測定してロボット制御装置に記憶させることになるため、手間がかかる。また、ロボットの動作範囲を設定する際には、安全のためにマージンなどを多めにとる傾向がある。そのため、見たところロボットは障害物から未だ遠くに位置しているのにも関わらず、前述のマージンの影響によりロボットが停止してしまうという問題が発生する。特に、加工素材を工作機械に供給したり、加工後の完成品を工作機械から取出したりするのをロボットにより行う場合には、周辺機器が密に配置されることが多いため、上記の問題が顕著になりやすい。
さらに、ユーザが周辺機器の配置を変更したときは、それに応じてロボットの動作範囲を改めて設定する必要があるので、手間がかかりやすい。
【０００７】
これに対し、背景技術２においては、ロボットの動作範囲をロボット制御装置に事前に入力する必要がないので、前述のような問題点を生じない。しかし、背景技術２の場合は、障害物を検知するセンサをロボットごとに装着しておく必要があるので、費用が膨大になってしまう。
【０００８】
そこで本発明は、上述のような実状に鑑み、ロボットと周辺機器などの障害物とが干渉しないための該ロボットの動作範囲を自動で設定できるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、ロボットの動作を制御するロボット制御装置であって、
ロボットの所定の部分から該ロボットの周辺に存在する物体の表面上の任意の複数点までの深度を示す深度データ群を取得する深度取得部と、
所定の部分の３次元位置情報を取得するロボット位置取得部と、
深度データ群と所定の部分の３次元位置情報とを用いて、ロボットの設置位置を原点とする前記複数点の３次元位置情報からなる深度マップ情報を生成する深度マップ生成部と、
深度マップ情報から物体が占める範囲を推定し、該範囲をロボットの干渉領域として設定する干渉領域設定部と、
を備えた、ロボット制御装置が提供される。
【発明の効果】
【００１０】
上記の一態様によれば、ロボットと周辺機器などの障害物とが干渉しないための該ロボットの動作範囲を自動で設定することができる。
【００１１】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【００１２】
【図１】一実施形態のロボット制御装置の機能を説明するための機能ブロック図である。
【図２】一実施形態による干渉領域設定フローの模式図である。
【図３】別の実施形態による干渉領域設定フローの模式図である。
【発明を実施するための形態】
【００１３】
次に、本発明の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【００１４】
図１は、一実施形態のロボット制御装置の機能を説明するための機能ブロック図である。本実施形態のロボット制御装置１０は、ロボット１１の動作を制御する装置であって、深度取得部１３と、ロボット位置取得部１４と、深度マップ生成部１５と、干渉領域設定部１６とを備える。
ロボット１１の一例は、例えば垂直多関節ロボット、移動機構ロボット、パラレルリンクロボット、直動機構ロボットなど任意のタイプのロボットを含む。
【００１５】
深度取得部１３は、ロボット１１における所定の部分から該ロボット１１の周辺に存在する物体（不図示）の表面上の任意の複数点までの深度（即ち、奥行き）を示す深度データ群を取得するようになされている。ここでいう物体は、ロボット１１の周辺に置かれた構造物、例えば、ベルトコンベアなどの周辺機器や、安全柵などである。
前述した深度データ群は、ロボット１１の周辺に在る物体の表面に対してマトリクス状に定義される複数点のそれぞれについての深度データの集合であり、このような深度データ群は、深度を測定する公知の深度センサを用いて取得されうる。
このような深度センサ１２は、ロボット１１の干渉領域を設定するときのみ、前述したロボット１１における所定の部分に取付けられるのが好ましい。この所定の部分は、ロボット１１の先端部、例えばロボットアーム部の先端におけるツールや把持ハンドなどを着脱可能な手首フランジ部でありうる。
【００１６】
ロボット位置取得部１４は、前述したロボット１１の所定の部分の３次元位置情報を取得するようになされている。この３次元位置情報は、ロボット１１が置かれた実空間におけるロボット１１の所定の部分の３次元位置に関する情報である。
例えば、ロボット１１が多関節ロボットの場合、多関節ロボットの各関節部は、サーボモータ（不図示）により駆動されてロボットアーム部を回転させる駆動軸を備えている。ロボット位置取得部１４は、それら駆動軸に配置されたパルスコーダなどの位置検出器からロボット１１の各駆動軸の回転位置（角度）を読取り、これら回転角度と各ロボットアーム部の既知の設定寸法とから、ロボットアーム部の先端部の位置を取得できる。
ここで取得されるロボット１１の所定の部分の位置情報、例えばロボットアーム先端部の位置情報は、ロボット１１の設置位置を原点とする座標系（以下、ロボット座標系と呼ぶ。）で定義される３次元位置情報である。上記の設置位置は、例えばロボット１１を工場に設置する場合、工場の床面におけるロボット１１が固定された部分の位置である。
【００１７】
深度マップ生成部１５は、前述のような深度データ群とロボット１１の３次元位置情報とを用いて深度マップ情報を生成するようになされている。この深度マップ情報は、前述した物体の表面に対してマトリクス状に定義される複数点の３次元位置情報からなる。これら３次元位置情報は、深度センサ１２により取得された物体の表面上の各点の深度データを、ロボット１１の設置位置を原点とする３次元位置に変換したものである。つまり、深度センサ１２を原点とする座標系（以下、センサ座標系と呼ぶ。）で定義された物体の表面上の各点の深度データが、座標変換によって、ロボット座標系で定義される３次元位置情報に変換されている。
【００１８】
干渉領域設定部１６は、前述の深度マップ情報を受取り、この深度マップ情報から、ロボット１１の周辺の物体が占める範囲を検索し、この範囲をロボット１１の干渉領域として設定するようになされている。干渉領域設定部１６は、検索された範囲以外の領域をロボット１１の動作許可領域として設定するようにしてもよい。
【００１９】
さらに、本実施形態のロボット制御装置１０は、記憶部１７や指令部１８などをさらに備えているのが好ましい。
記憶部１７には、前述のように設定された干渉領域や、ロボット１１の動作プログラムや、深度センサ１２のロボット１１への取付位置に関する情報（以下、センサ取付位置情報と称す）などが記憶される。
指令部１８は、ロボット１１の干渉領域の設定を開始する指令を深度取得部１３やロボット１１に出力することができる。さらに、指令部１８は、設定された干渉領域を考慮しつつ、ロボット１１の動作プログラムに基づく動作指令をロボット１１に送出するようになされている。
【００２０】
例えばロボット１１が多関節ロボットの場合、ロボット制御装置１０は、多関節ロボットの各軸を駆動するサーボモータ（不図示）をフィードバック制御することにより多関節ロボットのアーム部を動作させるようになっている。
指令部１８は、予め作成された動作プログラムに従ってロボット１１を動作させる指令を生成してサーボモータに出力する。あるいは、指令部１８は、ロボット制御装置に接続された教示操作盤からの動作指令をサーボモータに出力する。このとき、設定された干渉領域にロボット１１が侵入しそうな位置指令値が出力されたならば、指令部１８はサーボモータを停止または減速する指令を出力する。
【００２１】
なお、上述したロボット制御装置１０は、バスを介して互いに接続された、記憶部、ＣＰＵ（control processing unit）、および通信部などを備えたコンピュータシステムを用いて構成されうる。該記憶部は、ＲＯＭ（read only memory)やＲＡＭ（random access memory）などである、また、上述のロボット制御装置１０が有する深度取得部１３、ロボット位置取得部１４、深度マップ生成部１５、干渉領域設定部１６、等の機能や動作は、ＲＯＭに記憶されたプログラムがＣＰＵにより実行されることよって達成されうる。
【００２２】
図２は、上述したロボット制御装置１０による干渉領域設定フローの一実施例を模式的に示した図である。但し、ロボット１１の干渉領域の設定を開始するにあたって、前述したロボット１１の先端部に深度センサ１２が取付けられているものとする。
【００２３】
干渉領域の設定を開始させると、まず、ステップＳ１１において、深度取得部１３が、ロボット１１の周辺に存在する物体の表面上の複数点に関する深度データ群を深度センサ１２によって取得する。
深度データ群は、上記の物体の表面に対してマトリクス状に定義された複数点のそれぞれについての深度データの集合であり、例えば、図２に示されるような画像（所謂、深度画像）３１として取得されうる。深度画像３１のＺ方向（図面に直交する方向）が深度を指しており、深度画像３１を構成する複数点が深度の深浅に応じて濃淡を変えて表示される。但し、図２においては、理解を容易にする為、白、黒、ドットパターン、斜線などが描かれた丸を用いて、深度画像３１を構成する複数点を模式的に示している。例えば、白丸の方が黒丸よりも深度は浅い。
【００２４】
さらに、上記ステップＳ１１において、ロボット位置取得部１４が、ロボット１１の位置情報を取得する。ここで取得されるロボット１１の位置情報は、深度センサ１２が取付けられたロボット１１の先端部の位置情報である。この先端部の位置情報は、ロボット１１を停止させた状態で取得される。
【００２５】
次のステップＳ１２においては、深度マップ生成部１５が、前述のように取得された深度データ群とロボット１１の位置情報とを用いて深度マップ情報を生成する。具体的には、深度マップ生成部１５は、センサ座標系で定義された物体の表面上の各点の深度データを、座標変換によって、ロボット座標系で定義される３次元位置情報に変換することにより、深度マップ情報を生成する。深度マップ情報は、前述の深度データ群と同じように、深度画像として取得されるのが好ましい。図２に示される深度画像３２もまた、理解を容易にする為、深度画像３２を構成する複数点を模式的に示している。例えば、白丸の方が黒丸よりも深度は浅い。
【００２６】
なお、前述のように深度マップ情報を生成する際には、ロボット１１の先端部における深度センサ１２の取付位置や深度センサ１２の設計寸法などに関する情報（以下、センサ取付位置情報と呼ぶ。）を考慮することが好ましい。所定の外形形状を有する深度センサ１２をロボット１１の先端部の外側に取付ける場合には、深度センサ１２が深度を測定するときの基準点が、上記ステップＳ１１において取得されるロボット１１の先端部の位置と一致しないことがある。このため、センサ取付位置情報から、深度センサ１２の測定基準点とロボット１１の先端部の位置との相関位置を求めておき、この相関位置も前述の深度データ群及びロボット１１の位置情報とともに考慮して、深度マップ情報を生成するのが好ましい。センサ取付位置情報は既知の値であるため、事前にロボット制御装置１０の記憶部１７に記憶しておくことができる。深度マップ生成部１５は、深度マップ情報を生成するときに記憶部１７から読みだして使用するのが好ましい。
【００２７】
続いて、ステップＳ１３において、干渉領域設定部１６が、前述の深度マップ情報に基づき、ロボット１１の干渉領域を設定する。このとき、前述の深度マップ情報から、ロボット１１の周辺に存在する物体が占める範囲を検索し、この範囲が、ロボット１１の干渉領域として設定される。
【００２８】
このステップＳ１３においては、前述の深度マップ情報から、ロボット１１の周辺に存在する物体の形状を推定し、この形状を簡略化された形に変換し、簡略化された形が占める範囲をロボット１１の干渉領域として設定するのが好ましい。例えば、図２に示されるような円筒形の干渉領域３３が設定される。勿論、干渉領域３３の形状は円筒形に限られない。
【００２９】
以上の処理フローにより干渉領域の設定が終了する。設定された干渉領域の情報はロボット制御装置１０内の記憶部１７に記憶される。記憶された干渉領域情報は、ロボット１１の動作プログラム実行時や教示作業時においてロボット１１の動作範囲を規制するのに利用されることになる。
【００３０】
以上に説明したような一実施形態のロボット制御装置１０によれば、次のような効果が得られる。
ロボット１１の所定の部分、例えば手首フランジ部といったロボットアームの先端部に深度センサ１２を取付け、深度センサ１２から、ロボット１１の周辺に存在する物体２０の表面までの深度データ群を取得することができる。さらに、深度センサ１２が取付けられたロボット１１の所定の部分の３次元位置情報を基に、深度センサ１２により取得された深度データ群を、ロボット１１の設置位置を原点とする３次元位置情報に変換することにより、深度マップ情報を生成することができる。このような深度マップ情報に基づき、ロボット１１の干渉領域を設定することができる。つまり、ロボット１１と周辺機器などの障害物とが干渉しないための該ロボット１１の動作範囲を自動で設定することができる。
【００３１】
さらに、生成される深度マップ情報はロボット１１から見た周辺機器などの実際の物体の形に沿った三次元情報であるため、このような深度マップ情報から設定される干渉領域の形はユーザが想定しやすい形になる。この結果、ロボットの教示操作がより容易になる。
さらに、周辺機器の位置が変わった場合には、再度、干渉領域設定フローを記述したプログラムを実行すれば、干渉領域の再設定が済むため、ユーザの作業削減につながる。
干渉範囲の再設定のときのみ深度センサ１２を利用すればよいため、深度センサ１２は一つ有ればよい。深度センサ１２を使いまわすことができるので、コストの削減につながる。
【００３２】
（他の実施形態）
上述した一実施形態のロボット制御装置１０による干渉領域設定フローは、ロボット１１を任意の一姿勢で停止させて行われている。しかしながら、ロボット１１と干渉する可能性のある物体がロボット１１の周辺に広範囲に存在する場合には、一回の干渉領域設定フローのみによって、そのような物体が占める範囲を干渉領域として設定するのは難しい。また、ロボット１１の周辺に在る物体の形状が複雑な形の集合である場合においても、一回の干渉領域設定フローのみで干渉領域を定めるのは難しい。このような場合、上述した干渉領域設定フローは複数回行われるのが好ましい。
【００３３】
図３は、そのような複数回の干渉領域設定フローを実施する例を模式的に示した図である。
まず、ロボット制御装置１０はロボット１１を、図３に実線で示されるようなロボット姿勢（以下、第一姿勢と呼ぶ。）にして停止させる。次いで、ロボット制御装置１０は、第一姿勢をとったロボット１１の先端部に装着されている深度センサ１２によって、この深度センサ１２から物体２０の表面上の複数点までの深度データ群、例えば深度画像３１Ａを取得する。さらに、ロボット制御装置１０は、深度画像３１Ａの情報と、第一姿勢でのロボット１１の先端部の位置情報と、センサ取付位置情報とを用いて、第一姿勢での深度マップ情報、例えば深度画像３２Ａを生成する。
第一姿勢での深度マップ情報を生成した後、ロボット制御装置１０はロボット１１を、図３に二点鎖線で示されるようなロボット姿勢（以下、第二姿勢と呼ぶ。）にして停止させる。次いで、ロボット制御装置１０は、第二姿勢をとったロボット１１の先端部に装着されている深度センサ１２によって、この深度センサ１２から物体２０の表面上の複数点までの深度データ群、例えば深度画像３１Ｂを取得する。さらに、ロボット制御装置１０は、深度画像３１Ｂの情報と、第二姿勢でのロボット１１の先端部の位置情報と、センサ取付位置情報とを用いて、第二姿勢での深度マップ情報、例えば深度画像３２Ｂを生成する。
【００３４】
さらに、深度マップ生成部１５は、ロボット１１の姿勢ごとに生成された深度画像３２Ａ、３２Ｂの情報を重ねあわせて、広範囲に存在する物体２０の全てが含まれる深度画像３４を生成する。勿論、ロボット１１の姿勢の変更回数は２回に限られない。その後、干渉領域設定部１６は、生成された深度画像３４から、ロボット１１の干渉領域となる範囲を設定する。
以上の事により、広範囲に存在する物体が占める範囲を干渉領域として設定することができる。特に、物体２０の周囲に複数の深度センサを設置する必要がなく、一つの深度センサ１２をロボット１１に取付け、ロボット１１の姿勢を変え、各姿勢ごとに生成された深度マップ情報を一つの深度マップ情報に統合することにより、障害物の場所を設定することができる。
【００３５】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【００３６】
また、本発明の目的を達成するために、以下のような発明の態様とその効果を提供することができる。
例えば、本発明の第一態様として、ロボット１１の動作を制御するロボット制御装置１０であって、ロボット１１の所定の部分からロボット１１の周辺に存在する物体２０の表面上の任意の複数点までの深度を示す深度データ群を取得する深度取得部１３と、ロボット１１の所定の部分の３次元位置情報を取得するロボット位置取得部１４と、上記の深度データ群と上記所定の部分の３次元位置情報とを用いて、ロボット１１の設置位置を原点とする上記複数点の３次元位置情報からなる深度マップ情報を生成する深度マップ生成部１５と、その深度マップ情報から物体２０が占める範囲を推定し、この範囲をロボット１１の干渉領域として設定する干渉領域設定部１６とを備えた、ロボット制御装置１０が提供される。
上記第一態様によれば、ロボットと周辺機器などの障害物とが干渉しないための該ロボットの動作範囲を自動で設定することができる。
第二態様としては、上記第一態様のロボット制御装置１０であって、干渉領域設定部１６は、深度マップ情報から物体２０の形状を推定し、該形状を簡略化された形に変換し、該簡略化された形が占める範囲をロボット１１の干渉領域として設定するようになされた、ロボット制御装置１０が提供される。
上記第二態様によれば、ロボット１１の干渉領域として設定される物体２０の形を、簡略化された形に変換しているため、記憶部に記憶させるデータ量を削減できる。さらに、干渉領域を基にロボット１１を動作させるときの処理速度を向上させ、ノイズも低減させることができる。
第三態様としては、上記第一態様又は第二態様のロボット制御装置１０であって、ロボット１１の前記所定の部分に着脱可能に取付けられていて前記深度を測定する深度センサ１２を備えた、ロボット制御装置１０が提供される。
上記第三態様によれば、ロボット１１の干渉領域の設定時にのみ深度センサ１２をロボット１１に取付けて、干渉領域の設定フローを実行することができる。
第四態様としては、上記第三態様のロボット制御装置１０であって、ロボット制御装置１０は、深度センサ１２が取付けられたロボット１１の姿勢を変更するようにロボット１１を動作させる度に前記深度マップ情報を生成するようになされ、干渉領域設定部１６は、ロボット１１の姿勢ごとに生成された前記深度マップ情報から、ロボット１１の干渉領域となる範囲を設定するようになされた、ロボット制御装置１０が提供される。
上記の第四態様によれば、広範囲に存在する物体２０が占める範囲をロボット１１の干渉領域として設定することができる。
【符号の説明】
【００３７】
１０    ロボット制御装置
１１    ロボット
１２    深度センサ
１３    深度取得部
１４    ロボット位置取得部
１５    深度マップ生成部
１６    干渉領域設定部
１７    記憶部
１８    指令部
２０    物体
３３    干渉領域
３１、３１Ａ、３２Ａ、３１Ｂ、３２Ｂ、３４    深度画像
【図１】
2018089728.tif 000003
【図２】
2018089728.tif 000004
【図３】
2018089728.tif 000005