(57)【要約】【課題】人等の障害物がロボット本体に接近したときの安全性を確保しつつ、生産効率の低下を抑える。【解決手段】距離センサ４は、ロボット本体２の表面に取り付けられ、その表面に対して概ね法線方向に位置する人等の障害物までの距離Ｌを検出可能である。衝突防止コントローラ８は、距離Ｌの検出結果に応じて、人等との衝突を回避するようにロボット本体２を動作させるための指令をロボットコントローラ５に送る。衝突防止コントローラ８は、人等のロボット本体２に対する接近の程度を判定するための複数の閾値Ｔ１，Ｔ２，Ｔ３（Ｔ１＞Ｔ２＞Ｔ３）を記憶している。Ｌ≦Ｔ１の場合は低速で動作をさせるための指令が、Ｌ≦Ｔ２の場合は退避させつつ作業を継続させるための指令が、Ｌ≦Ｔ３の場合は停止させるための指令が、衝突防止コントローラ８からロボットコントローラ５に対して送られ、指令に基づいてロボット本体２が動作する。【選択図】図１
2018103345.tif 000002
【特許請求の範囲】
【請求項１】
ロボット本体と、
前記ロボット本体の動作を制御し、作業を行わせる制御部と、
前記ロボット本体又はそれに装着されるツールの表面に取り付けられ、その表面に対して概ね法線方向に位置する障害物までの距離を検出可能な少なくとも１つの検出部と、
前記検出部の検出結果に応じて、前記障害物との衝突を回避するように前記ロボット本体を動作させるための指令を前記制御部に送る衝突防止制御部と、
を備え、
前記衝突防止制御部は、前記障害物の前記ロボット本体又は前記ツールに対する接近の程度を判定するための複数の閾値を記憶しており、
前記衝突防止制御部は、
前記検出部の検出結果が第１閾値以下である場合、前記検出部の検出結果が前記第１閾値を上回る場合よりも低速で前記ロボット本体の動作を行わせるための指令である低速動作指令を送り、
前記検出部の検出結果が前記第１閾値よりも小さい第２閾値以下である場合、前記ロボット本体を前記障害物から遠ざける方向に退避させつつ前記作業を継続させるための指令である退避動作指令、又は、前記ロボット本体の動作を停止させるための指令である停止指令、のうちの何れか一方を送り、
前記検出部の検出結果が前記第２閾値よりも小さい第３閾値以下である場合、前記退避動作指令又は前記停止指令のうちの何れか他方を送る
ことを特徴とするロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、
前記衝突防止制御部は、前記制御部が備える演算部を用いて制御を行うことを特徴とするロボットシステム。
【請求項３】
請求項１又は２に記載のロボットシステムであって、
前記ロボット本体を前記退避動作させるときに前記ロボット本体及び前記ツールを移動可能な、又は移動不能な空間を包括的に含む第１判定空間と、
前記ロボット本体又は前記ツールに設定された代表点を包含し、当該代表点とともに移動する第２判定空間と、
が定められており、
前記制御部は、前記第２判定空間が前記第１判定空間の中に含まれる範囲で、又は前記第２判定空間が前記第１判定空間と重ならない範囲で、前記ロボット本体に前記退避動作させることを特徴とするロボットシステム。
【請求項４】
請求項１から３までの何れか一項に記載のロボットシステムであって、
前記制御部は、入力された動作プログラムに記述される１以上の動作ステップに従って前記ロボット本体を動作させることが可能に構成され、
前記動作プログラムには、前記退避動作を許可又は禁止する記述を含めることが可能に構成されており、
前記制御部は、前記退避動作を禁止する記述よりも後、かつ、前記退避動作を許可する記述よりも前にある前記動作ステップを実行する場合、前記ロボット本体の前記退避動作は行わないことを特徴とするロボットシステム。
【請求項５】
請求項１から４までの何れか一項に記載のロボットシステムであって、
前記制御部は、前記退避動作指令が解除された後に、過去に行われた前記退避動作による位置のズレを解消するように前記ロボット本体を動作させることを特徴とするロボットシステム。
【請求項６】
請求項１から５までの何れか一項に記載のロボットシステムであって、
前記制御部は、前記ロボット本体を前記退避動作させる場合には、指定された前記ロボット本体の目標位置に対し、当該ロボット本体を前記障害物から遠ざける方向への補正値を加算して前記目標位置を更新し、この更新後の目標位置に到達するように前記ロボット本体を制御することを特徴とするロボットシステム。
【請求項７】
請求項１から６までの何れか一項に記載のロボットシステムであって、
前記制御部は、前記検出部の検出結果の経時変化に基づいて、前記ロボット本体を退避動作させる速度を制御することを特徴とするロボットシステム。
【請求項８】
請求項１から７までの何れか一項に記載のロボットシステムであって、
前記衝突防止制御部は、前記第１閾値より小さい値である１つ又は複数の更なる閾値を記憶しており、
前記制御部は、
前記検出部の検出結果がより小さい前記閾値を下回るほど、前記ロボット本体の動作の速度がより低速となるように、前記ロボット本体を制御することを特徴とするロボットシステム。
【請求項９】
請求項１から８までの何れか一項に記載のロボットシステムであって、
前記衝突防止制御部は、
前記低速動作指令を送った後に、前記検出部の検出結果が前記第１閾値を上回った場合に、当該低速動作指令を解除し、
前記退避動作指令又は前記停止指令のうちの何れか一方を送った後に、前記検出部の検出結果が前記第２閾値を上回った場合に、当該一方の指令を解除し、
前記退避動作指令又は前記停止指令のうちの何れか他方を送った後に、前記検出部の検出結果が前記第３閾値を上回った場合に、当該他方の指令を解除することを特徴とするロボットシステム。
【請求項１０】
請求項１から９までの何れか一項に記載のロボットシステムであって、
前記検出部が前記距離を繰り返して検出するタイミング、又は、前記検出部の検出に用いる検出光の波長を変更可能に構成されていることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人と協働可能なロボットシステムに関する。
【背景技術】
【０００２】
近年、人と協働可能なロボットシステムの技術が注目されており、具体的には、例えば生産ラインで人と並んで組立作業を行う等のロボット装置の開発が進められている。特許文献１は、この種のロボット装置を開示する。この特許文献１のロボット装置は、ロボットとしてのマニピュレータと、人等の障害物のマニピュレータ可動領域近傍への侵入を監視する侵入検知手段と、マニピュレータの動作を制御する制御手段と、を備えた構成となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０８００２号公報
【０００４】
この特許文献１のロボット装置では、マニピュレータの可動領域を包括し可動領域よりも広い領域である警戒領域への人等の障害物の侵入が検知された場合には、制御手段を制御することによりマニピュレータの動作を減速させる、としている。また、マニピュレータの可動領域内への人等の障害物の侵入が検知されるとともにマニピュレータと障害物との距離が所定の距離以下となったときには、制御手段を制御することによりマニピュレータの動作を停止させる、としている。
【０００５】
これにより、人がマニピュレータの可動領域よりも広い警戒領域に侵入した場合には、マニピュレータの動作速度を減速し、警戒領域の中でも人とマニピュレータとの距離が所定の距離以下となるところまで人がマニピュレータに近づいた場合には、マニピュレータを停止し、ロボット装置の人への脅威を低減している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の構成では、ロボット装置の人への脅威がとりわけ問題とならないような場合にも、マニピュレータの動作速度を減速し又は停止するため、マニピュレータが頻繁に減速・停止してしまい、生産効率が低下するという問題があった。
【０００７】
本発明は以上の事情に鑑みてされたものであり、その目的は、人等の障害物がロボット本体に接近したときの安全性を確保しつつ生産効率の低下を抑えることができるロボットシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の解決しようとする課題は以上の如くであり、次にこの課題を解決するための手段とその効果を説明する。
【０００９】
本発明の観点によれば、以下の構成のロボットシステムが提供される。即ち、このロボットシステムは、ロボット本体と、制御部と、少なくとも１つの検出部と、衝突防止制御部と、を備える。前記制御部は、前記ロボット本体の動作を制御し、作業を行わせる。前記検出部は、前記ロボット本体又はそれに装着されるツールの表面に取り付けられ、その表面に対して概ね法線方向に位置する障害物までの距離を検出可能である。前記衝突防止制御部は、前記検出部の検出結果に応じて、前記障害物との衝突を防止するように前記ロボット本体を動作させるための指令を前記制御部に送る。前記衝突防止制御部は、前記障害物の前記ロボット本体又は前記ツールに対する接近の程度を判定するための複数の閾値を記憶している。前記衝突防止制御部は、前記検出部の検出結果が第１閾値以下である場合、前記検出部の検出結果が第１閾値を上回る場合よりも低速で前記ロボット本体の動作を行わせるための指令である低速動作指令を送る。前記衝突防止制御部は、前記検出部の検出結果が前記第１閾値よりも小さい第２閾値以下である場合、前記ロボット本体を前記障害物から遠ざける方向に退避させつつ前記作業を継続させるための指令である退避動作指令、又は、前記ロボット本体の動作を停止させるための指令である停止指令、のうちの何れか一方を送る。前記衝突防止制御部は、前記検出部の検出結果が前記第２閾値よりも小さい第３閾値以下の場合、前記退避動作指令又は前記停止指令のうちの何れか他方を送る。
【００１０】
これにより、障害物としての人等がロボット本体やツールに接近したときの安全性を確保しつつ、生産効率の低下を抑えることができる。
【発明の効果】
【００１１】
本発明によれば、人等の障害物がロボット本体に接近したときの安全性を確保しつつ、生産効率の低下を抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るロボットシステムの全体的な構成を示す模式図。
【図２】衝突防止コントローラの主要な構成を示すブロック図。
【図３】衝突防止コントローラに記憶される複数の閾値に基づく判定内容を説明する図。
【図４】ロボットコントローラの主要な構成を示すブロック図。
【図５】ロボットコントローラに記憶される動作プログラムの記述を例示する図。
【図６】実現可能な退避動作を取得するためにロボットコントローラで行われる空間的判断を模式的に説明する図。
【図７】衝突防止コントローラで行われる処理を示すフローチャート。
【図８】衝突防止指令に関連してロボットコントローラで行われる処理を示すフローチャート。
【発明を実施するための形態】
【００１３】
次に、図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るロボットシステム１の全体的な構成を示す模式図である。
【００１４】
図１に示すロボットシステム１は、本実施形態に係るロボットシステムであり、ロボット本体２を人と協働可能なように制御するものである。本実施形態のロボットシステム１は、例えば輸送機械や電気機器等の工業製品を製造する工場に設置される。工場に設けられた製造ラインには、ベルトコンベヤやローラコンベヤ等の搬送装置が設置されており、当該搬送装置により、未完成のワークが支持台等に載置された状態で上流側から下流側に向かって流れてくる。この搬送装置の側には、複数のロボット本体２が上流側から下流側に向かって並んで配置されている。それぞれのロボット本体２は、部品の組付けや溶接や塗装等の予め定められた作業を未完成のワークに対して施す。本実施形態では、工場の製造ラインにおいて、ロボット本体２の作業領域の近傍に（例えば、隣接して）人の作業領域が配置されている箇所もある。即ち、製造ラインでロボット本体２が人と並んで組付け等の作業を行う場合もある。これにより、例えば、マニュアル通りの動作で済む機械的作業はロボット本体２が分担し、人手でないと難しい繊細な作業は人が分担することとすることにより、効率的にワークを完成させることができる。
【００１５】
ただし、ロボット本体２と人とが協働して作業を行う場合、人の安全面の対策を十分に行うことが必要となる。一般的に、ロボット本体２の人への脅威を低減するためには、仮にロボット本体２が人に接触しても大きな被害が生じないようにするために、ロボット本体２の動作速度を安全な速度まで落とすことが考えられる。しかしながら、ロボット本体２の動作速度を不要不急の場合にも低速化すると、生産効率がかえって低下してしまう。このような点を考慮して、本実施形態のロボットシステム１では、従来では両立が難しかった安全性の確保と生産効率の向上とを両立するための特有の制御を行っている。ロボットシステム１で行われる制御の内容については、後に詳述する。
【００１６】
図１に示すように、ロボットシステム１は、ロボット本体２と、エンドエフェクタ（ツール）３と、複数の距離センサ４と、ロボットコントローラ（制御部）５と、衝突防止コントローラ（衝突防止制御部）８と、を主として備える。
【００１７】
ロボット本体２は、公知の産業用多関節ロボットであり、複数の関節を有する多関節アーム１１を有している。各関節にはアクチュエータが備えられている。これらのアクチュエータに加えられる駆動力が調整されることにより、各アームが所望の速度で所望の角度だけ回動するようになっている。これにより、ロボット本体２に所望の動作を行わせることができる。
【００１８】
エンドエフェクタ３は、ワークに直接働きかける機能を有する部分（ツール）であり、多関節アーム１１の先端部に装着される。装着されるエンドエフェクタ３としては種々のものが考えられるが、例えばグリッパや多指ハンド等とすることができる。電動モータや制御装置等からエンドエフェクタ３に繋がる配線やチューブ等が、多関節アーム１１の長手方向に沿って配索されている。これにより、エンドエフェクタ３に駆動力や電気的な信号が伝達されるようになっている。
【００１９】
本実施形態の距離センサ４は、ロボット本体２の表面、及び当該ロボット本体２に装着されるエンドエフェクタ３の表面の複数箇所に取り付けられるセンサである。本実施形態では、複数の光電センサをアレイ状に配置したフレキシブルプリント基板を、ロボット本体２の表面、及び当該ロボット本体２に装着されるエンドエフェクタ３の表面に貼り付けることにより、多数の距離センサ４，４，・・・がロボット本体２及びエンドエフェクタ３に取り付けられている。
【００２０】
本実施形態において、個々の距離センサ４は光電センサとして構成されており、投光部と、受光部と、を有する。この光電センサの投光部から可視光線や赤外線等の光（適宜の波長を有する検出光）が照射され、人等の障害物（検出物体）の表面で反射した光が受光部で受光されて、受光した光の量等に応じてセンサ出力値が得られる。この距離の検出は、十分に短い時間間隔をおいて繰り返し行われる。また、投光部が検出光を照射する方向は、設置場所におけるロボット本体２又はエンドエフェクタ３の表面に対してほぼ垂直となっている。
【００２１】
距離センサ４の検出結果（センサ出力値）は変換装置７に入力されて、適宜の信号処理がされることにより、距離センサ４の表面から、当該表面に対して概ね法線方向に位置する人等の障害物までの距離を示す信号（以下、距離信号と称する場合がある。）に変換される。変換装置７が出力した距離信号は、衝突防止コントローラ８に入力される。
【００２２】
衝突防止コントローラ８は、入力された距離信号に応じて、ロボット本体２と、人等の障害物と、の衝突を防止するための適宜の指令信号（衝突防止指令信号）をロボットコントローラ５に対して出力する。
【００２３】
ロボット本体２及びエンドエフェクタ３は、配線等を介して、又は通信ネットワークを介してロボットコントローラ５に接続されている。ロボットコントローラ５は、配線等を介して、又は通信ネットワークを介して衝突防止コントローラ８に接続されている。
【００２４】
ロボットコントローラ５はコンピュータとして構成されており、ＣＰＵ（演算部）、ＲＯＭ、ＲＡＭ等を備える。また、前記ＲＯＭには、ロボット本体２及びエンドエフェクタ３を制御データ（例えば、数値データ）に基づいて動作させるための適宜の動作プログラムが記憶（格納）されている。このソフトウェアとハードウェアとの協働により、ロボットコントローラ５を、ロボット本体２の多関節アーム１１の各関節に設けられるアクチュエータやエンドエフェクタ３を適宜に動作させ、予め定められた作業をロボット本体２に行わせるための指令信号を送る指令部として機能させることが可能となっている。
【００２５】
衝突防止コントローラ８は、ロボットコントローラ５と同様にコンピュータとして構成されており、ＣＰＵ（演算部）、ＲＯＭ、ＲＡＭ等を備える。前記ＲＯＭには、入力された距離信号に応じて、人等の障害物とロボット本体２（エンドエフェクタ３）との接近の程度を判断し、衝突を防止するための衝突防止動作指令信号をロボットコントローラ５に送るための適宜のプログラムが記憶されている。このソフトウェアとハードウェアとの協働により、衝突防止コントローラ８を、ロボット本体２に人等の障害物との衝突を防止する動作を行わせるための衝突防止動作指令信号をロボットコントローラ５に送る指令部として機能させることが可能となっている。
【００２６】
以下では、衝突防止コントローラ８に備えられる各構成について、図２を参照して詳細に説明する。図２は、衝突防止コントローラ８の主要な構成を示すブロック図である。
【００２７】
衝突防止コントローラ８は、距離信号取得部８３、閾値記憶部８４、接近距離判定部８５、衝突防止指令生成部８７、衝突防止指令送信部８８、及び距離情報送信部９１等を備える。
【００２８】
距離信号取得部８３は、複数の距離センサ４のそれぞれが距離の検出を行った結果として得られた距離信号を取得する。
【００２９】
距離情報送信部９１は、距離信号取得部８３が取得した距離信号（言い換えれば、それぞれの距離センサ４の検出結果）をロボットコントローラ５に送信する。
【００３０】
閾値記憶部８４は、人等の障害物のロボット本体２（又はエンドエフェクタ３）に対する接近の程度を判定するために用いられる複数の閾値を記憶するメモリである。本実施形態では、第１閾値Ｔ１と、当該第１閾値Ｔ１よりも小さい第２閾値Ｔ２と、第２閾値Ｔ２よりも小さい第３閾値Ｔ３と、が閾値記憶部８４に記憶されている。
【００３１】
図３を参照して、各閾値Ｔ１，Ｔ２，Ｔ３について具体的に説明する。図３は、衝突防止コントローラ８に記憶される複数の閾値Ｔ１，Ｔ２，Ｔ３の判定内容を説明する図である。本実施形態の３つの閾値Ｔ１，Ｔ２，Ｔ３は、何れも、距離センサ４が人等の障害物からの反射波を検出可能な限界距離よりも短い距離となるように設定される。上述したように、第１閾値Ｔ１よりも第２閾値Ｔ２が小さくなっており、第２閾値Ｔ２よりも第３閾値Ｔ３が小さくなっている（Ｔ１＞Ｔ２＞Ｔ３）。従って、これらの閾値Ｔ１，Ｔ２，Ｔ３は、人等の障害物とロボット本体２とが衝突する危険性の大小を判定するためのものということができる。
【００３２】
接近距離判定部８５は、距離信号取得部８３で取得した距離信号から得られる、人等のロボット本体２に対する接近の程度を段階的に判定するものである。より具体的には、接近距離判定部８５は、人等のロボット本体２（又はエンドエフェクタ３）に対する接近距離Ｌと、上記の３つの閾値Ｔ１，Ｔ２，Ｔ３との大小関係を判定する。
【００３３】
衝突防止指令生成部８７は、接近距離判定部８５での判定結果に応じて、ロボット本体２（又はエンドエフェクタ３）と人等との衝突を防止するための適宜の動作をロボット本体２に行わせるための衝突防止指令信号を生成する。
【００３４】
以下、具体的に説明する。接近距離判定部８５での判定の結果、人等のロボット本体２（又はエンドエフェクタ３）に対する接近距離Ｌが第１閾値Ｔ１を上回っている場合、人等とロボット本体２とが衝突（接触）する可能性について殆ど考慮する必要がない。そのため、この場合には、衝突防止指令生成部８７は衝突防止指令信号を生成しない。
【００３５】
接近距離判定部８５での判定の結果、接近距離Ｌが第１閾値Ｔ１以下である場合、ロボット本体２が人等とある程度近いことに配慮して、衝突防止指令生成部８７は、ロボット本体２の動作（作業）を通常（即ち、接近距離Ｌが第１閾値Ｔ１を上回っている場合）よりも低速で行わせるための指令である低速動作指令信号を生成する。
【００３６】
接近距離判定部８５での判定の結果、接近距離Ｌが第２閾値Ｔ２以下である場合、ロボット本体２が人等の障害物と衝突する可能性が多少大きくなるので、衝突防止指令生成部８７は、ロボット本体２を人等から遠ざける方向に退避させつつ作業を継続させるための指令である退避動作指令信号を生成する。
【００３７】
接近距離判定部８５での判定の結果、接近距離Ｌが第３閾値Ｔ３以下である場合、人等の障害物とロボット本体２とが相当に近づいており、衝突する危険性が高いと言える。そのため、この場合には、衝突防止指令生成部８７は、ロボット本体２の動作を停止させるための指令である停止指令信号を生成する。
【００３８】
衝突防止指令送信部８８は、衝突防止指令生成部８７で生成された衝突防止指令信号（具体的には、低速動作指令信号、退避動作指令信号、及び／又は停止指令信号）をロボットコントローラ５に送信する。
【００３９】
なお、上述した低速動作指令信号、退避動作指令信号、及び停止指令信号は、ロボットコントローラ５に対して択一的に送信されるものではなく、適宜組み合わせて送信され得る。例えば、接近距離Ｌが第２閾値Ｔ２以下である場合は、ロボットコントローラ５に対して、低速動作指令信号及び退避動作指令信号の２つが送信される。また、接近距離Ｌが第３閾値Ｔ３以下である場合は、ロボットコントローラ５に対して、低速動作指令信号、退避動作指令信号及び停止指令信号の３つが送信される。
【００４０】
以下では、ロボットコントローラ５に備えられる各構成について、図４等を参照して詳細に説明する。図４は、ロボットコントローラ５の主要な構成を示すブロック図である。図５は、ロボットコントローラ５に記憶される動作プログラムを例示する図である。
【００４１】
ロボットコントローラ５は、図４に示すように、動作プログラム記憶部５１、衝突防止指令受信部５２、空間判定部５３、退避補正値算出部５５、目標位置更新部５６、距離推移記憶部５７、動作速度制御部５８、制御信号送信部５９、衝突防止制御部６０、距離情報受信部６４、及び退避許可／禁止判定部６５等を備える。
【００４２】
動作プログラム記憶部５１は、ロボット本体２に行わせる１以上の動作ステップが記述された動作プログラムを記憶するものである。動作プログラム記憶部５１から読み出された動作プログラムが実行されることにより、予め定められた作業をロボット本体２に行わせることができる。
【００４３】
ところで、本実施形態では上述のとおりロボット本体２に退避動作を行わせながら作業を継続する場合があるが、ロボット本体２が行う動作には、作業の目的等に応じて、多少の位置ズレが許容されるものと、そうでないものとが存在する。この点、本実施形態では、ロボット本体２の位置のズレを許容する作業と、そうでない作業と、を動作プログラムにおいて区別して記述することが可能となっている。
【００４４】
図５に示す動作プログラムの例では、ロボット本体２の位置のズレを許容できない動作ステップ（例えば、ピックアンドプレース動作を記述する一連の動作ステップ）の直前に、退避動作の禁止（ＥＶＡＳＩＯＮ＿ＥＮＤ）が記述されている。また、ロボット本体２の位置のズレが許容できない作業を記述する一連の動作ステップの直後に、退避動作の許可（ＥＶＡＳＩＯＮ＿ＳＴＡＲＴ）が記述されている。これにより、ロボット本体２の位置のズレが許容できない作業と、許容できる作業とを、プログラム上で明示することができる。
【００４５】
衝突防止指令受信部５２は、衝突防止コントローラ８から送信される衝突防止指令信号を受信する。
【００４６】
衝突防止制御部６０は、衝突防止指令受信部５２が受信した衝突防止指令信号に基づいて、ロボット本体２を人等の障害物と衝突しないように動作させるための制御を行う。ロボット本体２が行う衝突防止動作には、ロボット本体２を通常時よりも低速で動作させる「低速動作」と、ロボット本体２を人等の障害物から遠ざける方向に退避（移動）させつつ作業を継続させる「退避動作」と、ロボット本体２本体の動作を停止させる「停止」と、がある。衝突防止制御部６０は、衝突防止指令受信部５２が受信した指令信号の種類（低速動作指令信号、退避動作指令信号、又は停止指令信号）に応じて、ロボット本体２を適宜動作させる。
【００４７】
退避許可／禁止判定部６５は、ロボット本体２に退避動作をさせることが動作プログラム上で許可されているか否かを判定するものである。退避許可／禁止判定部６５は、動作プログラム記憶部５１に記憶されている動作プログラムを参照して、これからロボット本体２に行わせようとしている動作を記述している動作ステップにおいて、退避動作が許可されているか否かを判定する。図５の例でいうと、退避動作を禁止する記述（ＥＶＡＳＩＯＮ＿ＥＮＤ）よりも後、かつ、退避動作を許可する記述（ＥＶＡＳＩＯＮ＿ＳＴＡＲＴ）よりも前にある動作ステップを実行しようとする場合、退避許可／禁止判定部６５は、退避動作が禁止されていると判断する。
【００４８】
空間判定部５３は、後述の退避補正値算出部５５が計算した退避補正値等に基づいて、ロボット本体２に退避動作をさせることが空間的に可能か否かを判定するものである。空間判定部５３は、第１判定空間Ｓ１と、第２判定空間Ｓ２と、を用いて、ロボット本体２に無理のない退避動作を行わせることが可能か否か（具体的には、ロボット本体２の周囲に常にマージンを確保しながら退避動作させることが可能か否か）を判定する。
【００４９】
空間判定部５３が行う判定の内容について、図６を参照してより詳細に説明する。図６は、実現可能な退避動作を取得するためにロボットコントローラ５で行われる空間的判断を模式的に説明する図である。
【００５０】
第１判定空間Ｓ１は、ロボット本体２を退避動作させるときにロボット本体２及びエンドエフェクタ３を移動可能な空間を包括的に含む仮想的な空間であり、計算により定められる。第１判定空間Ｓ１は、例えば直方体状の空間として求められる。
【００５１】
第２判定空間Ｓ２は、ロボット本体２及びエンドエフェクタ３に設定された代表点を包含し、当該代表点とともに移動する仮想的な空間である。第２判定空間Ｓ２は、例えば代表点を中心とした球状又は円柱状の空間として求められる。この代表点は、例えば多関節アーム１１の各関節と、エンドエフェクタ３と、にそれぞれ設定することができる。
【００５２】
本実施形態の空間判定部５３は、第２判定空間Ｓ２を常に第１判定空間Ｓ１の中に含めた（第１判定空間Ｓ１の外にはみ出ない）状態でロボット本体２に退避動作を行わせることが可能か否かを、３次元でのシミュレーションを行うことにより判定する。シミュレーションの結果、第２判定空間Ｓ２を常に第１判定空間Ｓ１の中に含めた状態でロボット本体２に退避動作を行わせることが可能であった場合に限り、空間判定部５３は、退避動作が可能であると判定する。
【００５３】
目標位置取得部５４は、動作プログラム記憶部５１からロボット本体２を動作させるための動作プログラムを読み出して、その記述を参照することにより、ロボット本体２の目標位置を取得する。
【００５４】
退避補正値算出部５５は、（１）衝突防止指令受信部５２で退避動作指令信号が受信されており、（２）これからロボット本体２に行わせようとする動作が、動作プログラム上で退避動作が許可されている間に行われる動作ステップに対応するものである場合に、退避補正値を算出するものである。上記（１）及び（２）の条件が満たされる場合に、退避補正値算出部５５は、距離情報受信部６４によって得られた距離情報に基づいて退避補正値を算出する。具体的には、この退避補正値は、１又は複数の距離センサ４の検出結果に基づいてロボット本体２と障害物との位置関係を求めた上で、障害物からロボット本体２を遠ざけるように適宜計算される。
【００５５】
目標位置更新部５６は、ロボット本体２に退避動作を行わせようとする場合には、目標位置取得部５４で取得した目標位置に、退避補正値算出部５５で算出した退避補正値を加算することにより、前記目標位置を更新する。更新後の目標位置は、ロボット本体２に退避動作を行わせる場合の当該ロボット本体２の目標位置（退避動作を考慮に入れた場合のロボット本体２の制御位置）を示すものである。ただし、新しい目標位置への移動が空間的に可能でないと空間判定部５３によって判断された場合は、目標位置の更新はキャンセルされる（結果として、退避動作は行われない）。
【００５６】
距離推移記憶部５７は、距離情報受信部６４が取得した距離情報、具体的にはロボット本体２（又はエンドエフェクタ３）の表面から人等の障害物までの距離Ｌを時間と関連付けて記憶し、距離Ｌの推移を蓄積する。
【００５７】
動作速度制御部５８は、上記の目標位置までロボット本体２を移動させる速度を制御する。具体的には、動作速度制御部５８は、衝突防止指令受信部５２が低速動作指令を受信していないときは、ロボット本体２を通常の速度（例えば、動作プログラムで定められた速度）で動作させる。一方、衝突防止指令受信部５２が低速動作指令を受信したときは、ロボット本体２を通常より低速で、例えば５０％の速度で動作させる。
【００５８】
また、動作速度制御部５８は、ロボット本体２に退避動作を行わせる場合に当該ロボット本体２を退避させる（障害物から遠ざける）速度の制御も行う。具体的には、本実施形態の動作速度制御部５８は、距離推移記憶部５７の内容を参照して、人等の障害物がロボット本体２又はエンドエフェクタ３に接近する速度が速いほど、ロボット本体２を退避させる速度が速くなるように制御する。
【００５９】
制御信号送信部５９は、目標位置取得部５４で得られた目標位置（目標位置更新部５６で更新された場合は、更新後の目標位置）と、動作速度制御部５８が指示する動作速度と、に基づいて、ロボット本体２のアクチュエータに制御信号を送って動作させる。
【００６０】
以下では、ロボット本体２に衝突防止動作を行わせるための衝突防止指令信号をロボットコントローラ５に送るために、衝突防止コントローラ８により行われる処理の流れについて、図７を参照して詳細に説明する。図７は、衝突防止コントローラ８で行われる処理を示すフローチャートである。
【００６１】
衝突防止コントローラ８は、ロボット本体２に衝突防止動作（低速動作、退避動作、又は停止の何れか）を行わせるための衝突防止指令をロボットコントローラ５に送るために、ステップＳ１０１からステップＳ１１３までの処理を行う。
【００６２】
初めに、衝突防止コントローラ８の距離信号取得部８３は、ステップＳ１０１において、人等の障害物（距離センサ４が検知した障害物）のロボット本体２（又はエンドエフェクタ３）に対する接近距離Ｌを取得する。
【００６３】
続いて、衝突防止コントローラ８の接近距離判定部８５は、ステップＳ１０１で取得した接近距離Ｌと、閾値記憶部８４から読み出した第１閾値Ｔ１と、を比較することにより、接近距離Ｌが第１閾値Ｔ１以下であるか否かを判定する（ステップＳ１０２）。具体的には、例えば、複数の距離センサ４から取得した検出結果のうち、最も短い接近距離Ｌが、第１閾値Ｔ１以下であるか否かを判定する。
【００６４】
ステップＳ１０２での判断の結果、接近距離Ｌが第１閾値Ｔ１以下である場合（ステップＳ１０２、Ｙｅｓ）、衝突防止指令生成部８７が衝突防止指令として低速動作指令信号を生成し、この低速動作指令信号が衝突防止指令送信部８８によってロボットコントローラ５に送信される（ステップＳ１０３）。
【００６５】
一方、ステップＳ１０２での判断の結果、接近距離Ｌが第１閾値Ｔ１を上回っていた場合（ステップＳ１０２、Ｎｏ）、低速動作指令信号は生成されず、代わりに、現時点で低速動作指令信号を送信した状態か否かが判断される（ステップＳ１０４）。低速動作指令信号を送信していた場合は（ステップＳ１０４、Ｙｅｓ）、衝突防止指令生成部８７は、低速動作を解除してロボット本体２を自動で通常の作業に復帰させるための低速動作解除信号をロボットコントローラ５に送信する（ステップＳ１０５）。その後、衝突防止指令生成部８７は、必要に応じて退避動作解除信号及び停止解除信号をロボットコントローラ５に送る処理を行って（ステップＳ１０８、ステップＳ１０９、ステップＳ１１２、及びステップＳ１１３）、ステップＳ１０１に戻る。低速動作指令信号を送信していない場合は（ステップＳ１０４、Ｎｏ）、ステップＳ１０１に戻る。
【００６６】
ステップＳ１０３の後、衝突防止コントローラ８の接近距離判定部８５は、ステップＳ１０１で取得した接近距離Ｌと、閾値記憶部８４から読み出した第２閾値Ｔ２と、を比較することにより、接近距離Ｌが第２閾値Ｔ２以下であるか否かを判定する（ステップＳ１０６）。
【００６７】
ステップＳ１０６での判断の結果、接近距離Ｌが第２閾値Ｔ２以下である場合（ステップＳ１０６、Ｙｅｓ）、衝突防止指令生成部８７は衝突防止指令として退避動作指令信号を生成し、この退避動作指令信号が衝突防止指令送信部８８によってロボットコントローラ５に送信される（ステップＳ１０７）。
【００６８】
一方、ステップＳ１０６での判断の結果、接近距離Ｌが第２閾値Ｔ２を上回っていた場合（ステップＳ１０６、Ｎｏ）、退避動作指令信号は生成されず、代わりに、現時点で退避動作指令信号を送信した状態か否かが判断される（ステップＳ１０８）。退避動作指令信号を送信していた場合は（ステップＳ１０８、Ｙｅｓ）、衝突防止指令生成部８７は、退避動作を解除するための退避動作解除信号をロボットコントローラ５に送信する（ステップＳ１０９）。その後、衝突防止指令生成部８７は、必要に応じて停止解除信号をロボットコントローラ５に送る処理を行って（ステップＳ１１２、及びステップＳ１１３）、ステップＳ１０１に戻る。退避動作指令信号を送信していない場合は（ステップＳ１０８、Ｎｏ）、ステップＳ１０１に戻る。
【００６９】
ステップＳ１０７の後、衝突防止コントローラ８の接近距離判定部８５は、ステップＳ１０１で取得した接近距離Ｌと、閾値記憶部８４から読み出した第３閾値Ｔ３と、を比較することにより、接近距離Ｌが第３閾値Ｔ３以下であるか否かを判断する（ステップＳ１１０）。
【００７０】
ステップＳ１１０での判断の結果、接近距離Ｌが第３閾値Ｔ３以下である場合（ステップＳ１１０、Ｙｅｓ）、衝突防止指令生成部８７は衝突防止指令として停止指令信号を生成し、この停止指令信号が衝突防止指令送信部８８によってロボットコントローラ５に送信される（ステップＳ１１１）。
【００７１】
一方、ステップＳ１１０の判断の結果、接近距離Ｌが第３閾値Ｔ３を上回っていた場合（ステップＳ１１０、Ｎｏ）、停止指令信号は生成されず、代わりに、現時点で停止指令信号を送信した状態か否かが判断される（ステップＳ１１２）。停止指令信号を送信していた場合は（ステップＳ１１２、Ｙｅｓ）、衝突防止指令生成部８７は、停止を解除するための停止解除信号をロボットコントローラ５に送信する（ステップＳ１１３）。その後、ステップＳ１０１に戻る。
【００７２】
以上の処理により、人等の障害物がロボット本体２に近づくのに応じて、ロボット本体２に衝突防止動作を行わせるための指令を、低速動作指令、退避動作指令、停止指令の順に行わせることができる。また、その後に障害物がロボット本体２から離れるのに応じて、上記の指令を、停止指令、退避動作指令、低速動作指令の順に解除することができる。
【００７３】
次に、衝突防止コントローラ８からの衝突防止指令に応じた衝突防止動作をロボット本体２に行わせるために、ロボットコントローラ５により行われる処理の流れについて、図８を参照して説明する。図８は、衝突防止指令に関連してロボットコントローラ５で行われる処理を示すフローチャートである。
【００７４】
ロボットコントローラ５は、人等のロボット本体２（又はエンドエフェクタ３）への接近の程度に応じて、ロボット本体２に低速動作、退避動作、又は停止の何れかの衝突防止動作を行わせるために、ステップＳ２０１からステップＳ２１０までの処理を行う。
【００７５】
初めに、ロボットコントローラ５の衝突防止指令受信部５２は、衝突防止コントローラ８の衝突防止指令送信部８８から送られてきた衝突防止指令信号を受信することにより、衝突防止指令を取得する（ステップＳ２０１）。
【００７６】
続いて、衝突防止制御部６０は、低速動作指令が受信されているか否かを判断する（ステップＳ２０２）。
【００７７】
ステップＳ２０２での判断の結果、低速動作指令を受信していなかった場合（ステップＳ２０２、Ｎｏ）、ステップＳ２０１に戻る。
【００７８】
ステップＳ２０２での判断の結果、低速動作指令を受信していた場合（ステップＳ２０２、Ｙｅｓ）、ロボットコントローラ５の動作速度制御部５８は、ロボット本体２に設けられているアクチュエータの動作速度を、通常よりも低速となるように制御する（ステップＳ２０３）。これにより、周囲の障害物との衝突の可能性にある程度配慮しながらロボット本体２による作業を継続することができる。
【００７９】
ステップＳ２０３の後、衝突防止制御部６０は、退避動作指令が受信されているか否かを判断する（ステップＳ２０４）。
【００８０】
ステップＳ２０４での判断の結果、退避動作指令を受信していなかった場合（ステップＳ２０４、Ｎｏ）、ステップＳ２０１に戻る。
【００８１】
ステップＳ２０４での判断の結果、退避動作指令を受信していた場合（ステップＳ２０４、Ｙｅｓ）、ロボットコントローラ５の退避許可／禁止判定部６５は、動作プログラム記憶部５１に記憶されている動作プログラムを参照して、これからロボット本体２に行わせようとしている動作を記述している動作ステップにおいて、退避動作が許可されているか否かを判断する（ステップＳ２０５）。ステップＳ２０５での判断の結果、退避動作が禁止されていた場合（ステップＳ２０５、Ｎｏ）、ステップＳ２０１に戻る。これにより、動作プログラム上で退避動作が禁止されている場合は、ロボット本体２に退避動作を行わせないようにすることができる。
【００８２】
ステップＳ２０５での判断の結果、退避動作が許可されていた場合（ステップＳ２０５、Ｙｅｓ）、続いてロボットコントローラ５の退避補正値算出部５５は、距離情報受信部６４が受信した距離情報に基づいて、目標位置取得部５４で取得した目標位置に対して加算する退避補正値を算出する（ステップＳ２０６）。
【００８３】
次に、空間判定部５３は、目標位置と退避補正値とに基づいて、ロボット本体２に行わせようとしている退避動作が空間的に可能か否かを判断する（ステップＳ２０７）。
【００８４】
ステップＳ２０７での判断の結果、退避動作が空間的に不能な場合（ステップＳ２０７、Ｎｏ）、ステップＳ２０１に戻る。これにより、ロボット本体２に無理な退避動作を行わせるのを防止することができる。
【００８５】
ステップＳ２０７での判定の結果、退避動作が空間的に可能な場合（ステップＳ２０７、Ｙｅｓ）、ロボットコントローラ５の目標位置更新部５６は、退避動作を実現するための目標位置の情報を生成する。具体的には、目標位置更新部５６は、目標位置取得部５４で取得した目標位置に対して上記の退避補正値を加算することで補正後の目標位置を生成し、制御信号送信部５９は、新しい目標位置に基づく制御信号を送信する（ステップＳ２０８）。これにより、ロボット本体２を人等から遠ざかる方向に退避させながら作業を継続させることができる。よって、ロボット本体２を退避させない場合と比べて、ロボット本体２の人への脅威を低減することができ、しかも生産効率も著しく損なうことがない。
【００８６】
ステップＳ２０８の後、ロボットコントローラ５の衝突防止制御部６０は、停止指令が受信されているか否かを判断する（ステップＳ２０９）。停止指令を受信していた場合（ステップＳ２０９、Ｙｅｓ）、衝突防止制御部６０は、ロボット本体２の各関節のアクチュエータ及びエンドエフェクタ３に制御信号送信部５９が停止信号を送信するように制御する（ステップＳ２１０）。これにより、ロボット本体２及びエンドエフェクタ３の作業（動作）が停止されるので、このままロボット本体２に作業を継続させた場合に比べて、人等がロボット本体２に衝突するおそれが低減される。その後、ステップＳ２０１に戻る。
【００８７】
ステップＳ２０９での判断の結果、停止指令を受信していなかった場合（ステップＳ２０９、Ｎｏ）、ステップＳ２１０の処理はスキップされ、ステップＳ２０１に戻る。
【００８８】
なお、図８のフローチャートには示していないが、ステップＳ２０８で説明した退避動作が行われた後に、ロボットコントローラ５が受信していた退避動作指令が解除された場合、ロボットコントローラ５の衝突防止制御部６０は、自動的に、上記の退避動作に起因する位置のズレを解消するようにロボット本体２を制御する。これにより、過去の退避動作の影響を除去した状態で（動作プログラムで規定されたとおりの位置で）、予め定められた作業を再開することができる。
【００８９】
以上に説明したように、本実施形態のロボットシステム１は、ロボット本体２と、ロボットコントローラ（制御部）５と、少なくとも１つの距離センサ（検出部）４と、衝突防止コントローラ（衝突防止制御部）８と、を備える。ロボットコントローラ５は、ロボット本体２の動作を制御し、作業を行わせる。距離センサ４は、ロボット本体２又はそれに装着されるエンドエフェクタ（ツール）３の表面に取り付けられ、その表面に対して概ね法線方向に位置する人等の障害物までの距離（接近距離）Ｌを検出可能である。衝突防止コントローラ８は、距離センサ４の検出結果に応じて、人等の障害物との衝突を回避するようにロボット本体２を動作させるための指令をロボットコントローラ５に送る。衝突防止コントローラ８は、人等の障害物のロボット本体２又はエンドエフェクタ３に対する接近の程度を判定するための複数の閾値Ｔ１，Ｔ２，Ｔ３を記憶している。衝突防止コントローラ８は、距離センサ４の検出結果が第１閾値Ｔ１以下である場合、距離センサ４の検出結果が第１閾値Ｔ１を上回る場合よりも低速でロボット本体２の動作を行わせるための指令である低速動作指令を送る。衝突防止コントローラ８は、距離センサ４の検出結果が第１閾値Ｔ１よりも小さい第２閾値Ｔ２以下である場合、ロボット本体２を人等の障害物から遠ざける方向に退避させつつ前記作業を継続させるための指令である退避動作指令、又は、ロボット本体２の動作を停止させるための指令である停止指令、のうちの何れか一方を送る。衝突防止コントローラ８は、距離センサ４の検出結果が第２閾値Ｔ２よりも小さい第３閾値Ｔ３以下の場合、前記退避動作指令又は前記停止指令のうちの何れか他方を送る。
【００９０】
これにより、ロボット本体２を通常よりも低速化させた状態で作業を継続したり、退避させながら作業を継続したりすることで、作業が停止される頻度を抑えることができる。よって、例えば障害物としての人等がロボット本体２やエンドエフェクタ３に接近したときの安全性を確保しつつ、生産効率の著しい低下を抑制することができる。
【００９１】
なお、本実施形態において衝突防止コントローラ８はロボットコントローラ５とは別に備えられているが、衝突防止コントローラ８のＣＰＵ等を省略して、図７に示す制御を、ロボットコントローラ５が備えるＣＰＵ等を用いて行ってもよい。言い換えれば、衝突防止コントローラ８がロボットコントローラ５に一体的に組み込まれた構成でもよい。
【００９２】
この場合、構成の共通化により、ロボットシステム１の制御に関する構成を簡素にすることができる。
【００９３】
また、本実施形態のロボットシステム１においては、ロボットコントローラ５の空間判定部５３は、図６に示す第１判定空間Ｓ１と、第２判定空間Ｓ２と、を定めて、前記退避動作が空間的に可能か否かを判定する。第１判定空間Ｓ１は、ロボット本体２を前記退避動作させるときにロボット本体２及びエンドエフェクタ３を移動可能な空間を包括的に含む。第２判定空間Ｓ２は、ロボット本体２又はエンドエフェクタ３の少なくとも何れかに設定された代表点を包含し、当該代表点とともに移動する。ロボットコントローラ５は、第２判定空間Ｓ２が第１判定空間Ｓ１の中に含まれる範囲で、ロボット本体２に前記退避動作させる。
【００９４】
これにより、簡単なロジックで、実現可能な退避動作を取得することができる。また、ロボット本体２等の周囲に常にマージンを確保しながら、所定の空間内でロボット本体２を退避動作させることができる。
【００９５】
また、本実施形態のロボットシステム１においては、ロボットコントローラ５は、入力された動作プログラムに記述される１以上の動作ステップに従ってロボット本体２を動作させることが可能に構成される。前記動作プログラムには、図５に示すように、前記退避動作を許可又は禁止する記述を含めることが可能に構成されている。ロボットコントローラ５の退避許可／禁止判定部６５は、前記退避動作を禁止する記述（ＥＶＡＳＩＯＮ＿ＥＮＤ）よりも後、かつ、前記退避動作を許可する記述（ＥＶＡＳＩＯＮ＿ＳＴＡＲＴ）よりも前にある前記動作ステップを実行する場合、ロボット本体２の前記退避動作は行わないように制御する。
【００９６】
これにより、動作プログラムに含まれる一連の動作ステップのうち、退避動作を許可する動作ステップと禁止する動作ステップとを、当該動作プログラムの記述によって明示することができる。従って、例えばピックアンドプレース動作のようにロボット本体の位置のズレが許容できない作業を行う場合には退避動作を行わないように、動作プログラムの中でロボットシステム１に明確に指示することができる。
【００９７】
また、本実施形態のロボットシステム１においては、ロボットコントローラ５は、前記退避動作指令が解除された後に、過去に行われた前記退避動作による位置のズレを解消するようにロボット本体２を動作させる。
【００９８】
これにより、過去の退避動作による影響を除去した上で、通常の作業をロボット本体２に行わせることができる。
【００９９】
また、本実施形態のロボットシステム１において、ロボットコントローラ５の目標位置更新部５６は、ロボット本体２を前記退避動作させる場合には、指定されたロボット本体２の目標位置に対し、当該ロボット本体２を人等の障害物から遠ざける方向への補正値（退避補正値）を加算して前記目標位置を更新し、この更新後の目標位置に到達するようにロボット本体２を制御する。
【０１００】
これにより、ロボット本体２を退避動作させるときの具体的な動きを計算により求めることができる。
【０１０１】
また、本実施形態のロボットシステム１においては、ロボットコントローラ５の動作速度制御部５８は、距離センサ４の検出結果の経時変化に基づいて、ロボット本体２を退避させる速度を制御する。
【０１０２】
これにより、人等の障害物がロボット本体２に接近する速度に応じて、ロボット本体２を退避動作させる速度を変更することができる。従って、状況の変化の切迫度に応じた適切な動作をロボット本体２に行わせることができる。
【０１０３】
なお、衝突防止コントローラ８が、第１閾値Ｔ１よりも小さい値である１つ又は複数の更なる閾値（低速化用閾値）を記憶するようにしてもよい。この構成で、ロボットコントローラ５は、距離センサ４の検出結果（接近距離Ｌ）がより小さい前記閾値を下回るほど、ロボット本体２の動作の速度がより低速となるように、ロボット本体２を制御する。
【０１０４】
この場合、人等の障害物がロボット本体２に近づくにつれて、徐々にロボット本体２の動作を低速にすることができ、ロボット本体２の低速化がきめ細かく行われるようにすることができる。
【０１０５】
また、本実施形態のロボットシステム１においては、衝突防止コントローラ８は、ロボットコントローラ５に低速動作指令を送った後に距離センサ４の検出結果が第１閾値Ｔ１を上回った場合、当該低速動作指令を解除する。また、衝突防止コントローラ８は、ロボットコントローラ５に退避動作指令を送った後に距離センサ４の検出結果が第２閾値Ｔ２を上回った場合、当該退避動作指令を解除する。更に、衝突防止コントローラ８は、ロボットコントローラ５に停止指令を送った後に距離センサ４の検出結果が第３閾値Ｔ３を上回った場合、当該停止指令を解除する。
【０１０６】
これにより、人等の障害物との間の距離（接近距離Ｌ）が開き衝突の危険性が低くなった場合には、ロボット本体２の動作が通常となるように段階的に復旧させることができ、生産効率を向上することができる。
【０１０７】
また、距離センサ４が前記距離（接近距離Ｌ）を繰り返して検出するタイミングは、例えば図示しないセンサ制御装置の設定により変更可能に構成してもよい。また、距離センサ４の検出に用いる検出光の波長を、前記センサ制御装置の設定により変更可能に構成してもよい。
【０１０８】
例えば、複数のロボットシステム１，１，・・・を運用する場合において、ロボットシステム１，１，・・・の間で距離センサ４の検出タイミングや、検出に用いる光の波長を互いに異ならせるように設定することで、それぞれのロボット本体２の距離センサ４が他の影響を受けずに人等の障害物との距離（接近距離Ｌ）を良好に検出することができる。
【０１０９】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【０１１０】
上記の実施形態では、距離センサ４が、障害物の一例としての人と、ロボット本体２又はエンドエフェクタ３と、の間の距離Ｌを検出するものとしたが、障害物は人に限るものではなく、例えば工場内で走行する作業台車等としてもよい。
【０１１１】
上記の実施形態では、距離センサ４により検出された接近距離Ｌが第２閾値Ｔ２以下でありかつ第３閾値Ｔ３を上回る場合にはロボット本体２に退避動作を行わせるものとし、接近距離Ｌが第３閾値Ｔ３以下の場合にはロボット本体２を停止させるものとしたが、必ずしもこれに限るものではない。即ち、これに代えて、接近距離Ｌが第２閾値Ｔ２以下でありかつ第３閾値Ｔ３を上回る場合にはロボット本体２を停止させるものとし、接近距離Ｌが第３閾値Ｔ３以下の場合にはロボット本体２に退避動作を行わせるものとしてもよい。
【０１１２】
上記の実施形態では、距離センサ４は、投光部と受光部を備える光電センサであるものとしたが、センサの構成はこれに限るものではなく、例えばこれに代えて、超音波センサ等としてもよい。
【０１１３】
上記の実施形態では、空間判定部５３は、ロボット本体２を退避動作させるときにロボット本体２及びエンドエフェクタ３を移動可能な位置を包括的に含む空間を第１判定空間Ｓ１と定めるものとしたが、これに限るものではない。即ち、これに代えて、ロボット本体２を退避動作させるときにロボット本体２及びエンドエフェクタ３を移動不能な位置を包括的に含む空間を第１判定空間と定めることとしてもよい。その場合、ロボットコントローラ５は、第２判定空間Ｓ２がこの第１判定空間と重ならない範囲で、ロボット本体２に退避動作を行わせるものとすればよい。
【０１１４】
上記の実施形態では、空間判定部５３が第２判定空間Ｓ２を定める際に設定される代表点は、多関節アーム１１の各関節と、エンドエフェクタ３と、のそれぞれに配置されるものとしたが、代表点の数や配置は任意であり、例えば、多関節アーム１１を構成する複数のアームのそれぞれの中途部に複数個ずつ配置されるものとしてもよい。
【０１１５】
上記の実施形態では、停止指令に基づいてロボット本体２の動作を停止させた後に、距離センサ４の検出結果が第３閾値Ｔ３を上回った場合、ロボット本体２の停止が自動的に解除するように構成されている。しかしながら、検出された距離が第３閾値Ｔ３を上回るだけでなく、オペレータによる明示的な手動操作（例えば、復旧ボタンを押す操作）があった場合にのみ、ロボット本体２の停止を解除するように構成してもよい。低速動作の解除及び退避動作の解除についても同様に、手動の操作を条件としてもよい。
【０１１６】
低速動作指令に伴って通常の動作から低速動作に移行する過渡期において、ロボットコントローラ５の動作速度制御部５８が、距離センサ４の検出結果の経時変化に基づいて、人等の障害物がロボット本体２又はエンドエフェクタ３に接近する速度が速いほど、ロボット本体２を急激に減速するように制御してもよい。
【０１１７】
上記の実施形態では、衝突防止コントローラ８は、低速動作指令、退避動作指令及び停止指令の３つを送った状態から接近距離Ｌが徐々に増加した場合、図７のフローチャートに基づき、第３閾値Ｔ３を上回った時点で停止指令を解除し、第２閾値Ｔ２を上回った時点で退避動作指令を解除し、第１閾値Ｔ１を上回った時点で低速動作指令を解除する。しかしながら、このように接近距離Ｌに応じてロボット本体２の動作を段階的に復旧させることに代えて、例えば、接近距離Ｌが第１閾値Ｔ１を上回ったときに３つの指令を一度に解除するものとしてもよい。
【０１１８】
上記の実施形態では、ロボットコントローラ５は、退避動作指令を受信したものの退避動作が禁止されている場合（図８のステップＳ２０５、Ｎｏ）、又は、退避動作が空間的に不能と判断された場合（ステップＳ２０７、Ｎｏ）、退避動作を行わないがロボット本体２の作業を継続するように制御する。しかしながらこれに代えて、上記の場合にロボット本体２を停止させる制御を行うものとしてもよい。
【０１１９】
複数のロボットシステム１同士が相互に通信して、それぞれの距離センサ４の検出タイミング及び検出光の波長を、互いの検出結果に影響を与えないように自動的に調整するように構成してもよい。
【０１２０】
上記の実施形態では、ロボット本体２に装着されるツールはエンドエフェクタ３であるものとしたが、これに限るものではない。例えば、ツールはロボット本体２の先端部以外の場所に装着されるものであってもよい。
【０１２１】
上記の実施形態では、ロボット本体２として、１本の多関節アーム１１を備える構成のものを例示したが（図１を参照）、本発明が適用されるロボット本体は、多関節アームを１本のみ有するロボット本体に限るものではなく、例えば２本の多関節アームを対で備えるロボット本体であってもよい。また、関節の数は単数であってもよい。例えば、アームが水平方向にしか回動しないロボットであっても本発明を適用することができる。
【符号の説明】
【０１２２】
１  ロボットシステム
２  ロボット本体
３  エンドエフェクタ（ツール）
４  距離センサ（検出部）
５  ロボットコントローラ（制御部）
Ｌ  接近距離（距離）
Ｔ１  第１閾値
Ｔ２  第２閾値
Ｔ３  第３閾値
【図１】
2018103345.tif 000003
【図２】
2018103345.tif 000004
【図３】
2018103345.tif 000005
【図４】
2018103345.tif 000006
【図５】
2018103345.tif 000007
【図６】
2018103345.tif 000008
【図７】
2018103345.tif 000009
【図８】
2018103345.tif 000010