特許第5915322号(P5915322)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社デンソーウェーブの特許一覧

<>
  • 特許5915322-ロボット装置 図000002
  • 特許5915322-ロボット装置 図000003
  • 特許5915322-ロボット装置 図000004
  • 特許5915322-ロボット装置 図000005
  • 特許5915322-ロボット装置 図000006
  • 特許5915322-ロボット装置 図000007
  • 特許5915322-ロボット装置 図000008
  • 特許5915322-ロボット装置 図000009
  • 特許5915322-ロボット装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5915322
(24)【登録日】2016年4月15日
(45)【発行日】2016年5月11日
(54)【発明の名称】ロボット装置
(51)【国際特許分類】
   B25J 19/06 20060101AFI20160422BHJP
【FI】
   B25J19/06
【請求項の数】2
【全頁数】15
(21)【出願番号】特願2012-77297(P2012-77297)
(22)【出願日】2012年3月29日
(65)【公開番号】特開2013-202772(P2013-202772A)
(43)【公開日】2013年10月7日
【審査請求日】2015年3月9日
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】特許業務法人 サトー国際特許事務所
(72)【発明者】
【氏名】桝山 貴史
(72)【発明者】
【氏名】壁谷 昇吾
(72)【発明者】
【氏名】飯田 慎二
【審査官】 木原 裕二
(56)【参考文献】
【文献】 実開昭60−131391(JP,U)
【文献】 特開平11−058271(JP,A)
【文献】 特開2002−264070(JP,A)
【文献】 特開2009−276173(JP,A)
【文献】 特開平08−057738(JP,A)
【文献】 特開平11−226889(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 − 21/02
(57)【特許請求の範囲】
【請求項1】
ベース上にロボットアームを設けて構成され、前記ベースを据え付け床面に固定してなるロボット本体と、
前記ベースの周りを走行可能に設けられ、前記ベースの周囲360度以下の所定範囲内の走行を1周期走行として当該1周期走行を繰り返し行う走行体と、
前記走行体の位置を検出する走行位置検出手段と、
前記走行体に搭載され、探査信号を斜め上方に出射して当該探査信号の出射方向に存する物体の検出および検出した物体までの距離を計測する探査装置と、
前記走行体の前記1周期走行毎に、前記走行位置検出手段により検出された前記走行体の位置と前記探査装置による検出物体までの距離とから前記ベースの周囲に存する物体の位置データを取得する位置データ取得手段と、
前記走行体の今回の前記1周期走行により取得された前記位置データと予め定められた所定の基本位置データとを比較する第1の比較手段と、
前記第1の比較手段により今回の前記1周期走行による前記位置データと前記基本位置データとの間に差があるとされたとき、今回の前記1周期走行による前記位置データと前回の前記1周期走行による前記位置データとを比較する第2の比較手段と、
前記第2の比較手段により今回の前記1周期走行による前記位置データと前回の前記1周期走行による前記位置データとの間に差がないとされたとき、今回または前回の前記1周期走行による前記位置データを前記基本位置データとして置き換える基本位置データ変換手段と、
前記第2の比較手段により今回の前記1周期走行による前記位置データと前回の前記1周期走行による前記位置データとの間に差があるとされたとき、検出物体が移動しているとして当該検出物体との衝突を回避する衝突回避措置を設定する衝突回避措置設定手段と、
前記第1の比較手段が今回の前記1周期走行による前記位置データと前記基本位置データとの間に差なしとしたときには、前記ロボットアームに動作プログラムの通りの動作を実行させ、前記衝突回避措置設定手段が衝突回避措置を設定したときには、当該衝突回避措置を前記ロボット本体に実行させるロボット制御手段と
を具備してなるロボット装置。
【請求項2】
前記衝突回避措置設定手段は、
今回の前記1周期走行による前記位置データと前回の前記1周期走行による前記位置データとの間の差から検出物体の移動速度と移動方向を算出し、算出した移動方向および移動速度でその後も検出物体が移動するとしたとき、当該検出物体が動作プログラム通りに動作する前記ロボットアームと衝突する場合、前記ロボットアームの速度を減速する第1の衝突回避措置を設定し、
前記第1の衝突回避措置では衝突を回避できない場合、前記ロボットアームを停止するまで制動する停止動作を行わせる第2の衝突回避措置を設定し、
前記第2の衝突回避措置では衝突を回避できない場合、前記ロボットアームを停止動作させながら当該ロボットアームの移動方向を次第に検出物体の移動方向と同じ方向となるように変更する第3の衝突回避措置を設定する
ことを特徴とする請求項1記載のロボット装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は物体の侵入を検出してロボットアームとの衝突を回避するようにしたロボット装置に関する。
【背景技術】
【0002】
ロボットと人との衝突を回避するために、ロボットの動作領域を囲む防護柵を設置し、人がロボットの動作領域内に入ることができないようにすることが一般に行われている。
しかし、防護柵を設置すると、例えば、補給部品を搭載したワゴンなどをロボットの動作領域内に搬入するような場合にその補給作業が面倒なものとなる。
【0003】
防護柵を設けることなく、人とロボットとの衝突を回避するために適用可能な技術として、例えば特許文献1がある。この特許文献1は、ロボットの上方にCCDカメラを設置し、このCCDカメラによりロボットの動作領域内への人の侵入が検出されたとき、ロボットを停止させることで人との衝突を回避しようとするものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−125975号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、CCDカメラを工場の天井などに設置しなければならず、ロボットを工場の床面に据え付ける作業の他にCCDカメラの設置するための追加作業を必要とする。また、CCDカメラは工場の天井などの高い場所に取り付ける必要があるため、撮影画像中に人が小さくしか映らず、高度な画像解析が必要となる。
【0006】
本発明は上記の事情に鑑みてなされたもので、その目的は、移動体(人を含む)との衝突を回避でき、しかも、ロボットの設置時に物体の侵入を検出するための装置の設置作業などの追加作業を必要とせず、且つ、簡易な手法で物体の侵入を検出できるロボット装置を提供することにある。
【課題を解決するための手段】
【0007】
請求項1の発明では、物体を検出するための探査装置をロボット本体のベースに設けるので、ロボット本体を工場の床面などに設置する作業の他に移動体を検出する装置の設置のための追加作業を必要としない。
また、物体の侵入を検出するための探査装置は、探査信号を出射し、その出射方向に存在する物体とその物体までの距離を検出するものであり、そして、探査装置はベースの周りを移動する走行体に搭載されているため、走行体の位置と、探査装置から物体までの距離とから容易に物体の位置を取得することができる。
【0008】
前記探査装置は、探査信号を斜め上方に出射するので、人の場合には、上半身に向けて出射されることとなる。検出した物体が移動しているか否かは、物体の位置が前回の計測位置と今回の計測位置との間に差があるか否かによって判定するが、人、特に人の上半身は揺らぎがあるのに対し、例えばワゴンなどの物は設置後、動くことはないので、人と物との区別をすることが容易になる。
【0009】
探査装置の1周期走行によって得られた今回の位置データを基本位置データと比較することで、検出物体が移動しているか否かを判断する。このため、例えば、補給部品を搭載したワゴンを搬入したとき、ワゴンが動かされている間は検出物体は移動しているとされる。ワゴンの設置後は、ワゴンは静止しているので、今回の1周期走行による位置データと前回の1周期走行による位置データとの間に差がなくなる。すると、今回または前回の1周期走行による位置データが前記基本の位置データに置き換えられる。このため、新たにワゴンを設置した場合などのように、探査装置によって位置データを取得する度に、検出物体が移動していると判断されることがなくなり、処理の迅速化を図ることができる。
【0010】
請求項2の発明によれば、検出物体とロボットアームとが衝突する恐れがある場合、まず、ロボットアームを減速させ、減速では衝突回避できない場合には、ロボットアームを制動して停止させる停止動作を行わせ、停止動作では衝突回避できない場合には、ロボットアームを停止動作させながらロボットアームの移動方向を次第に検出物体の移動方向と同じ方向となるように変更するので、検出物体とロボットアームとの衝突をより確実に回避することができる。
【図面の簡単な説明】
【0011】
図1】本発明の一実施形態を示すロボット本体の側面図
図2】ベースに取り付けられた走行車を示す側面図
図3】走行車の概略的な斜視図
図4】電気的構成を示すブロック図
図5】計測データの処理内容を示すフローチャート
図6】ロボット本体の停止中の制御内容を示すフローチャート
図7】ロボット本体の動作中の制御内容を示すフローチャート
図8】(a)は移動物体とロボットアームの移動方向を示す図、(b)はロボットアームの衝突回避動作を示す図
図9】(a)は速度パターン図、(b)は衝突判定領域を示す図
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態を図面に基づいて説明する。図1には、6軸の垂直多関節型ロボット装置のロボット本体1が示されている。このロボット本体1は、ベース2上にロボットアーム3を設けて構成されている。ロボットアーム3は、ベース2に水平方向に旋回可能に支持されたショルダ部4と、このショルダ部4に上下方向に旋回可能に支持された下アーム5と、この下アーム5に上下方向に旋回可能に支持された第1の上アーム6と、この第1の上アーム6の先端部に捻り回転可能に支持された第2の上アーム7と、この第2の上アーム7に上下方向に旋回可能に支持された手首アーム8と、この手首アーム8に捻り回転可能に支持されたフランジ9とから構成されている。なお、ロボットアーム先端であるフランジ9には、ワークを把持するハンドや、視覚検査のために用いるカメラなどのエンドエフェクタ(図示せず)が取り付けられるようになっている。
【0013】
ショルダ部4、下アーム5、第1の上アーム6、第2の上アーム7、手首アーム8、フランジ9は、ロボットアーム3におけるアーム(リンク)として機能し、各アーム4〜9は、前段のアームに回転可能に支持された回転関節軸(図示せず)に固定連結されている。そして、各アーム4〜9の回転関節軸は、それぞれ図4に示すサーボモータ10により減速装置11を介して回転されるようになっている。
【0014】
図4に示すように、ロボットアーム3の動作を制御するロボット制御手段としての制御装置12は、マイコンからなり、CPU13、ROM14およびRAM15を備えている。この制御装置12には、サーボモータ10の駆動回路16、サーボモータ10の回転角を検出する回転位置検出回路(回転位置検出手段)17が接続されている。この回転位置検出回路17は、サーボモータ10の回転軸(図示せず)に連結されたロータリエンコーダ(回転センサ)18から入力される回転検出信号に基づいてサーボモータ10の回転角を検出し、その回転角情報を制御装置12と駆動回路16に与える。なお、図4では、サーボモータ10は1台しか示されていないが、実際には、各アーム4〜9に1台ずつ設けられているものである。
【0015】
ここで、ベース2および各アーム4〜9には、3次元の座標が規定されている。このうち、床面に据え付けられるベース2の座標系(図1に座標軸XYZで示す。)は、不動の座標系でロボット座標(基準座標)とされる。アーム4〜9の座標は、各アーム4〜9の図示しない回転関節軸の回転中心軸線上に設定されており、アーム4〜9の回転によりロボット座標上での位置と姿勢が変化する。
【0016】
ROM14には、ロボット座標上におけるショルダ部4の座標位置、ショルダ部4の座標上における下アーム5の座標位置、下アーム5の座標上における第1の上アーム6の座標位置、第1の上アーム6の座標上における第2の上アーム7の座標位置、第2の上アーム7の座標上における手首アーム8の座標位置、手首アーム8の座標上におけるフランジ9の座標位置、各アーム4〜9の長さなどの各種のパラメータが記憶されている。
【0017】
ロボット先端であるフランジ9の座標の原点は、当該フランジ9の先端面の回転中心に定められている。そして、CPU13は、座標変換の計算機能を有し、ロボット先端の位置(姿勢を含む;以下同じ)が与えられると、当該与えられた位置をロボット先端が取るような各アーム4〜9の回転角を演算(逆変換)できるようになっており、また、各アーム4〜9の回転角が与えられると、各アーム4〜9の位置を演算(順変換)できるようにもなっている。
【0018】
ロボットアーム3の動作プログラムは図示しないティーチングペンダント(動作プログラム作成手段)により作成されてRAM15に記憶されている。CPU13は、このRAM15に記憶された動作プログラムに基づいて、ロボット先端の移動軌跡を演算し、そして、ロボット先端が移動開始位置から移動終了位置まで移動する間、当該ロボット先端の速度パターンが台形パターンや三角パターンなどの所定の速度パターンとなるように、サンプリングタイム毎のロボット先端の位置を演算する。なお、サンプリングタイムの周期は、例えば10msといったごく短い時間に定められている。サンプリングタイム毎のロボット先端の位置を求めると、CPU13は、各アーム4〜8のサンプリングタイム毎の回転角を求め記憶手段としてのRAM15に記憶させる。
【0019】
ロボットアーム3の動作制御中、CPU13は、サンプリングタイム毎に、回転位置検出回路17から与えられる各サーボモータ10の回転角から各アーム4〜9の回転角を演算し、各アーム4〜9の回転角からフランジ9の位置を演算して現在位置を検出する。そして、ロボット先端の現在位置の次の位置における各アーム4〜9の回転角をRAM15から取得し、各アーム4〜9の回転角から各サーボモータ10の回転角を演算して当該各回転角を各サーボモータ10の目標回転角として駆動回路16に出力する。
【0020】
駆動回路16は、ロボット制御装置12から与えられた目標回転角と、回転位置検出回路17からフィードバックされた各サーボモータ10の回転角とを比較し、その差分に応じた電流を各サーボモータ10に供給する。これによりサーボモータ10が目標回転角に回転するように制御される。このような制御がサンプリングタイム毎に行われることによってロボット先端が動作プログラムにより定められた軌跡通りに動作するものである。
【0021】
さて、ベース2の上部には、図2に示すように、当該ベース2を取り巻く円形のレール19が取り付けられており、このレール19上に走行車(走行体)20が乗せられている。走行車20はレール19上を転がる車輪21を有し、この車輪21は走行車20に搭載された車輪駆動モータ22により回転駆動されて走行車20を走行させる。
【0022】
走行車20の現在位置を検出するために、ベース2には当該ベース2を囲むリング状の多孔板23が取り付けられている。一方、走行車20には、多孔板23を挟むようにして例えば発光ダイオードからなる投光素子24とフォトダイオードからなる受光素子25が配設されている。
【0023】
図3に示すように、多孔板23には、周方向に沿って多数の小孔23aが形成されており、投光素子24が放射する光は小孔23aを通して受光素子25に受光される。そして、走行車20が移動すると、受光素子25は投光素子24が放射する光を間欠的に受けてパルス状の受光信号を出力する。このような投光素子24と受光素子25は走行車20の位置を検出する位置検出器(位置センサ)26を構成している。
【0024】
また、走行車20には、探査装置としてのレーザーレーダ27が搭載されている。レーザーレーダ27は、レーザー光(探査信号)をパルス状に出射するレーザーと、出射されたレーザー光の反射光を受光する受光器とから構成されている。このレーザーレーダ27は、レーザー光を図1に示すように所定の仰角γで斜め上向きに出射するように配設されている。なお、レーザー光を図1においてLで示した。
【0025】
走行車20とベース2とは、図3に示すフレキシブルケーブル28によって接続されている。このフレキシブルケーブル28は、車輪駆動モータ22、位置検出器26、レーザーレーダ27などの走行車20に搭載された機器への電源供給と、それら搭載機器と制御装置12との間での信号の送受のためのものである。走行車20内には、フレキシブルケーブル28を巻き取る巻取器29が設けられている。この巻取器29はモータ駆動式で、走行車20の位置に応じたフレキシブルケーブル28の巻取り量が設定されている。これにより、フレキシブルケーブル28は常時適正な弛みを持って巻き取り巻き戻される。
【0026】
上記多孔板23、投光素子24および受光素子25、制御装置12は、走行車20の位置を検出する走行位置検出手段を構成するもので、受光素子25が出力する受光パルス信号は、制御装置12に入力される。そして、制御装置12は、受光素子25からの受光パルス信号の数をカウントすることで走行車20の位置を検出する。
【0027】
つまり、走行車20のレール19は、ロボット座標のZ軸を中心とする円形になっている。本実施形態において、Z軸はショルダ部4の回転中心線と一致している。そして、走行車20の位置は、レール19上の所定位置を基準位置とし、この基準位置からZ軸に下ろした垂線と、走行車20の現在位置からZ軸に下ろした垂線とのなす角によって表わすものとする。すると、上記のように基準位置からの受光パルス数をカウントすることで、走行車20が現在、基準位置からベース2の周りを何度回転した位置に居るかを検出することができる。
【0028】
制御装置12は、走行車20がベース2の周囲を360度以下の所定範囲、この実施形態では360度つまり1周すると、車輪駆動モータ22を逆転させて走行車20をそれまでとは逆方向に移動させるようになっている。従って、走行車20は、ベース2の周りを1周ずつ正逆方向に繰り返し移動する。このベース2の周りの360度の移動を走行車20の1周期走行ということとする。
【0029】
ちなみに、走行車20が正逆方向に移動する場合でも、制御装置12は、車輪駆動モータ22の回転方向により基準位置からどちら方向に何度回転した位置に走行車20が居るかを検出することができるものである。
【0030】
なお、レーザーレーダ27のレーザー光の出射方向は、真上から見たとき、Z軸とレーザーとを結んだ直線と所定角度、例えば同方向となるように定められている。また、走行車20の基準位置はロボット座標のX軸、Y軸とのなす角が所定角度となるように、例えば真上から見たときX軸とのなす角が0度(X軸と一致)でY軸とのなす角が90度となるように定められている。
【0031】
レーザーレーダ27によって物体が検出されたとき、レーザーレーダ27から物体までの距離は、図1に示すように、レーザー光の出射方向に沿った距離Aで検出されるから、水平方向の距離BはB=A・cosγで求めることができる。そして、レーザーレーダ27の移動軌跡の半径dは既知であるから、ロボット座標のZ軸から検出物体までの水平距離DはD=(B+d)で求めることができる。
【0032】
従って、レーザーレーダ27により物体が検出されたとき、そのときの走行車20の位置とレーザーレーダ27からの距離により、物体の位置をロボット座標のXY座標値で把握することができる。つまり、走行車20の現在位置が基準位置からθ度のところにある(X軸とのなす角がθ度)としたとき、XY座標値は、x=D・cosθ、y=D・sinθで求めることができる。
【0033】
次に上記構成の作用を図5図7のフローチャートをも参照しながら説明する。ロボット装置の電源が投入され、スタート操作が行われると、まず、制御装置12は、走行車20に基準位置から正方向回りの1周期走行と逆方向回りの1周期走行を繰り返し行わせる。この走行車20の走行中、レーザーレーダ27はレーザー光を間欠的に放射して物体検出を行う。
この走行車20の移動中、制御装置12は、受光素子25が受光信号を出力した時の時間を、受光信号の一つ一つについて記憶手段としての例えばRAM15に記憶する。この受光信号が出力された時間は、少なくとも前回の1周期走行と今回の1周期走行とについて記憶する。
【0034】
走行車20の1周期走行において、制御装置12は、レーザーレーダ27の受光信号から物体の存在を検出すると、そのときの走行車20の位置と、レーザーレーダ27から物体までの距離とから、当該検出物体の位置をロボット座標のXY座標上の位置として計算する。そして、制御装置12は、走行車20の1周期走行において検出された全ての物体の位置データを含む物体検出結果を1周期位置データとしてRAM15に記憶させる(位置データ取得手段)。なお、走行車20の位置とレーザーレーダ27からの物体の距離とを記憶し、必要なときにXY座標上の位置として計算するようにしても良い。
【0035】
さて、以上のようにして1周期位置データを取得すると、制御装置12は、図5のデータ処理ルーチンに入り、今回取得した1周期位置データを予めRAM15に記憶された所定の基本位置データと比較する(図5のステップA1;第1の比較手段)。基本位置データは、例えば、ロボット本体1の周りに人が居ない状態で取得した1周期位置データである。なお、基本位置データは、電源投入後の最初の1周期位置データとしても良い。
【0036】
1周期位置データと基本位置データとを比較した結果、両データ間に差がないとき(ステップA1で「NO」)、制御装置12は、移動体検出フラグをオフし(ステップA4)、リターンとなる。また、1周期位置データと基本位置データとの間に差があるとき(ステップA1で「YES」)、制御装置12は、レーザーレーダ27の検出領域内への侵入物体を検出したとし、次に前回の1周期位置データと今回の1周期位置データとを比較する(ステップA2;第2の比較手段)。
【0037】
前回の1周期位置データと今回の1周期位置データとを比較した結果、両データ間に差がないとき(ステップA2で「NO」)、制御装置12は、今回の1周期位置データを基本位置データとして置き換え(ステップA5;基本位置データ変換手段)、移動体検出フラグをオフ(ステップA6)してリターンとなる。
【0038】
また、前回の1周期位置データと今回の1周期位置データとを比較した結果、両データ間に差があるとき(ステップA2で「YES」)、制御装置12は、検出物体が移動しているとして移動体検出フラグをオン(ステップA3)し、リターンとなる。なお、移動していると判断された検出物体を以下では移動体ということとする。
【0039】
以上を具体的に説明する。移動体、例えば、作業者が補給部品を搭載したワゴン(部品補給用ワゴン)を、ロボットアーム3による組み付け作業の結果、空になったワゴンと交換するために、レーザーレーダ27の検出領域内に搬入してきたとする。すると、今回取得された1周期位置データの中には、今まで存在していなかった部品補給用ワゴンや作業者の位置データが存在することとなるので、基本位置データとも、また前回の1周期位置データとも異なることとなる。このため、ステップA1で「YES」、ステップA2で「YES」と判断され、ステップA3で移動体検出フラグがオンされる。
【0040】
作業者が空になったワゴンに向かって部品補給ワゴンを押して行って部品補給ワゴンを空になったワゴンと交換し、その空になったワゴンを押してレーザーレーダ27の検出領域の外に出て行くまでは、作業者やワゴンが移動しているので、その間に次々と取得される1周期位置データは基本位置データとも前回取得の1周期位置データとも異なることとなるので、移動体検出フラグはオンされ続ける。
【0041】
作業者が空になったワゴンを押してレーザーレーダ27の検出領域の外に出てゆくと、移動物体はいなくなる。その直後に新たに取得された1周期位置データは基本位置データと比較される。このとき、部品補給ワゴンが空になったワゴンと同じ位置に置かれた場合には、新たに取得された1周期位置データは基本位置データと一致するので(ステップA1で「NO」)、移動体検出フラグはオフされる(ステップA4)。
【0042】
しかしながら、部品補給ワゴンを空になったワゴンと置き換える際、空になったワゴンがあった位置とは多少ずれることが往々にしてある。この場合には、作業者が空になったワゴンを押してレーザーレーダ27の検出領域の外に出て行った直後に新たに取得された1周期位置データは基本位置データと異なり、前回の1周期位置データ(作業者が空になったワゴンを押してレーザーレーダ27の検出領域の外に出る直前の位置データであるから作業者、空になったワゴンの位置データがある)とも異なることとなるので、移動体検出フラグはオフされず、オンのままになる(ステップA2で「YES」、ステップA3)。
【0043】
ところが、次に新たに取得された今回の1周期位置データは基本位置データとは異なる(ステップA1で「YES」)が、前回の1周期位置データとは一致することとなるので(ステップA2で「NO」)、それまでの基本位置データがRAM15から消去され、今回取得された最新の1周期位置データが新たな基本位置データとしてRAM15に記憶され(ステップA5;基本位置データ変換手段)、移動体検出フラグがオフされる(ステップA6)。そして、次に取得された1周期位置データは新たな基本位置データと一致することとなるので(ステップA1で「NO」)、移動体検出フラグがオフされ続けることとなる。
【0044】
従って、今回の1周期位置データと基本位置データとの比較結果だけで、移動体検出フラグをオンしたりオフしたりする場合とは異なり、ワゴンの位置が少し変化しただけで、実際には物体の侵入がないにもかかわらず、前回の1周期位置データとの差分を比較するという余分の動作を実施するといった不具合の発生を未然に防止できる。このことは、制御装置12の処理時間が短縮されることを意味し、ひいては、ロボットアーム3の動作についての制御装置12の処理を余裕をもって実行でき、ロボットのタクトタイム(繰り返し行われる1作業サイクルの所要時間)が長くなることを防止できる。
【0045】
また、レーザーレーダ27からレーザー光は、所定の仰角γで出射される。これにより、レーザーレーダ27の検出領域内に侵入してきた人に対して、レーザー光が上半身に照射されるようにしている。人、特に検出領域内に入ってくる人は工場の作業者であるから、定位置に留まっていても、頭や手は絶えず動いている。このため、人が同じ位置に立っていたとしても、上半身が動くことにより、前回の1周期位置データと今回の1周期位置データとは異なるようになり、移動物体検出フラグがオンされ続けるようになる(ステップA1で「YES」、ステップA2で「YES」、ステップA3)。このため、人と物との区別をより正確に行うことができ、人を移動体ではないと判断することを防止できる。
【0046】
以上のような1周期位置データの処理が終了すると、制御装置12は、図5のデータ処理ルーチンと図6に示す停止中処理ルーチンを交互に繰り返し実行する。図6の停止中処理ルーチンに入ると、制御装置12は、まず移動体検出フラグがオンされているか否かを判断する(ステップB1)。移動体検出フラグがオフであれば(ステップB1で「NO」)、制御装置12は動作を許可し(ステップB7)、ロボットアーム3に動作プログラムに従った動作を開始させる。
【0047】
なお、以下において、ロボットアーム3の位置、動作方向、速度という場合、それは、アーム先端であるフランジ9の位置、動作方向、速度のことを指す。
移動体検出フラグがオンであった場合(ステップB1で「YES」)、制御装置12は、動作プログラムを参照してロボットアーム3の動作開始時の動作方向を検出し、移動体の存在する方向に動作しないなら(ステップB2で「NO」)、動作を許可し(ステップB7)、ロボットアーム3に動作プログラムに従った動作を開始させる。
【0048】
ロボットアーム3の動作開始時の動作方向が移動体の存在する方向であるならば(ステップB2で「YES」)、次に制御装置12は、ロボットアーム3の動作プログラムを参照して動作方向と速度を取得すると共に、移動体の動作方向と速度を取得し、ロボットアーム3と移動体とが衝突する位置と動作開始から衝突までの時間を計算する(ステップB3)。
【0049】
上記ロボットアーム3の速度は、動作プログラムにより定められた速度パターンから取得する。例えば、ロボットアーム3の速度パターンが図9(a)に示すような台形パターンであった場合、加速度α、最高速度V、減速度−αは動作プログラムに記載してあるので、それを参照して動作開始からt時間後の速度を算出する。動作開始からt時間の間に移動した距離(位置)はそれまでの速度を積分する、つまりt時間までの速度パターンの面積を算出すれば良い。
【0050】
移動体の動作方向と速度は、今回の1周期位置データと前回の1周期位置データを比較して取得する。つまり、移動体の動作方向は、移動体の前回の位置と今回の位置とを結ぶ直線を求め、この直線上を前回の位置から今回の位置に向かう方向に動作するとする。また、移動体の速度は、前回の位置から今回の位置までの距離を求め、この距離を、前回の1周期位置データによって移動体が検出されてから今回の1周期位置データによって移動体が検出されたときまでの時間で除すことによって求めることができる。
【0051】
なお、移動体の前回の位置から今回の位置までの距離は、Z軸から前回の移動体の位置までの距離と、Z軸から今回の移動体の位置までの距離と、Z軸から前回の移動体の位置に引いた直線とZ軸から今回の移動体の位置に引いた直線とのなす角とから求めることができる。前回の1周期位置データによって移動体が検出されてから今回の1周期位置データによって移動体が検出されたときまでの時間は、今回の移動体の位置で受光素子25が受光信号を出力した時間から前回の移動体の位置で受光素子25が受光信号を出力した時間との差で求めることができる。
【0052】
ロボットアーム3と移動体とが衝突する位置と動作開始から衝突までの時間を計算した結果、衝突しないならば(ステップB4で「NO」)、制御装置12は、ロボットアーム3の動作を許可し、動作を開始させる。
衝突するならば、制御装置12は、ロボットアーム3の速度を動作プログラムによって定められた速度パターンによらず、それよりも低速度の安全速度、例えばISO10218で認められている25mm/sec以下でロボットアーム3を動作させるとした場合に移動体と衝突するか否かを判断し、安全速度で衝突回避できるならば(ステップB5で「YES」)、ロボットアーム3の速度を安全速度に設定して動作を許可する(ステップB6)。
【0053】
安全速度に設定しても衝突を回避できなければ(ステップB5で「NO」)、制御装置12は、ロボットアーム3の動作を禁止する(ステップB8)。
さて、ロボットアーム3の動作が開始されると、制御装置12は図5のデータ処理ルーチンと図7の動作中処理ルーチンを交互に繰り返し実行する。この図7の動作中処理ルーチンにおいて、制御装置12は、状況に応じて移動体との衝突を回避するために、種々の衝突回避措置を設定する(衝突回避措置設定手段)。
【0054】
図7のフローチャートに入ると、制御装置12は、移動体検出フラグがオンされているか否かを判断し(ステップC1)、移動体検出フラグがオフであったなら(ステップC1で「NO」)、リターンとなってロボットアーム3の動作を続行させる。
移動体検出フラグがオンであった場合(ステップC1で「YES」)、制御装置12は、前述したと同様にしてロボットアーム3の動作方向と速度を取得すると共に、移動体の移動方向と速度を取得し、ロボットアーム3と移動体とが衝突する位置と衝突までの時間を計算する(ステップC2)。
【0055】
計算の結果、ロボットアーム3と移動体とが衝突しないとなった場合(ステップC3で「NO」)、制御装置12は、ロボットアーム3の動作をそのまま続行する。
ロボットアーム3と移動体とが衝突する場合(ステップC3で「YES」)、制御装置12は、ロボットアーム3を減速させることで、移動体との衝突を回避できるか否かを判断する(ステップC4)。
【0056】
例えば、ロボットアーム3の動作方向と移動体の移動方向とが交差し、その交差する位置で両者が衝突する結果が得られた場合、ロボットアーム3の速度を遅くすることで、移動体が交差位置を通過した後にロボットアーム3がその交差位置に到達するようにすれば、両者は衝突しないこととなる。しかし、ロボットアーム3の移動方向と移動体の移動方向とが重なる場合、ロボットアーム3の速度を遅くしても両者は衝突することとなる。
【0057】
ロボットアーム3を減速させると衝突を回避できる場合(ステップC4で「YES」)、制御装置12は、衝突を回避できる速度を演算し、その速度となるまでロボットアーム3を減速する(ステップC8;第1の衝突回避措置)。なお、減速はサーボモータ3に逆トルクを発生させてロボットアーム3を制動する(制動手段)ことによって行う。制動手段はサーボモータ3に逆トルクを発生させるものに限らず、機械的ブレーキを作動させるなど他の手段でも良い。
【0058】
ロボットアーム3を減速させても衝突を回避できない場合(ステップC5で「NO」)、制御装置12は、緊急停止によって回避できるか否かを判断する(ステップC5)。緊急停止とは、例えばサーボモータ3に最大の逆トルクを発生させて許容最大減速度でロボットアーム3を急速に停止させる動作をいう。この許容最大減速度は、予め記憶手段、例えばROM14に記憶させてある。
【0059】
緊急停止によって衝突を回避できるか否かは、まず、現在のロボットアーム3の速度を検出し、この速度のときに許容最大減速度で減速させたとき、停止するまでの移動距離(制動距離)sを求める。そして、移動物体が制動距離s内に存在していれば衝突すると判断し、制動距離s外であれば衝突しないと判断する。制動距離sは、図9(a)において、現在速度がV、許容最大減速度が−αであるとしたとき、斜線を付した三角形の面積で求めることができる。なお、より確実に衝突を回避するために、現在速度を、実際の速度ではなく、最大許容速度にあると仮定して制動距離sを求めるようにしても良い。
【0060】
緊急停止によって衝突を回避できる場合(ステップC5で「YES」)、制御装置12は、ロボットアーム3を緊急停止させる(ステップC9)。
緊急停止によっても衝突を回避できない場合(ステップC5で「NO」)、制御装置12は、衝突回避のために安全な方向へ軌道を変更し(ステップC6)、当該安全な方向へ動作させながら緊急停止させる(ステップC7)。
【0061】
ここで、安全な方向とは、本実施形態では、移動体の移動方向と同じ方向のことをいう。具体的には、図8(a)に示すように、動作プログラムによって示された目標位置Qに向かってロボットアーム3が移動する方向を直線L1で示し、移動体Rの移動方向を直線L2で示したとき、図8(b)に示すように、直線L1よりも移動体Rから離れた任意の位置Q1を回避目標位置に定め、この回避目標位置Q1に到達する軌跡を算出し、この算出した軌跡に沿ってロボットアーム3を緊急停止させながら移動させる。この場合、ロボットアーム3の衝突回避のため移動方向を、より早く移動体Rの移動方向に近づけるためには、回避目標位置Q1は、直線L2を含め当該直線L2よりもロボットアーム3側に定めることが好ましい。
【0062】
このように回避目標位置を定めることにより、ロボットアーム3は、次第に移動体Rの移動方向と同じ方向に方向変換しながら緊急停止するようになるので、移動体との衝突を回避できる。
つまり、ロボットアーム3を、移動体から離れる方向に移動させながら緊急停止させることができるので、移動体との衝突を回避することができるのである。
例えば、ロボットアーム3が移動体と衝突するという場合、移動体の移動方向を、前回の1周期位置データでの位置と今回の1周期位置データでの位置とを結んだ直線方向と仮定してのことであるが、実際には、その後、方向転換してロボットアーム3から遠ざかる方向に移動したり、ロボットアーム3に近づく方向に向きを変えて移動してきたりするかも知れない。ロボットアーム3から遠ざかる方向に向きを変えた場合には良いが、図8(a)において、直線L2よりもロボットアーム3側で当該ロボットアーム3に近づく方向に向きを変えて移動してきた場合、ロボットアーム3と移動体とが衝突する恐れを生ずる。
【0063】
これに対し、本実施形態では、ロボットアーム3が回避目標位置Q1に向かって移動体Rから遠ざかるように方向変換してゆくので、移動体が図8(a)におけるロボットアーム3方向に移動方向を変えたとしても、ロボットアーム3は移動体から離れる方向に移動するので、移動体と衝突することをより確実に回避することができる。
【0064】
以上のように本実施形態によれば、移動体を検出するためのレーザーレーダ27が走行車20に搭載され、この走行車20はベース2に取り付けられたレール19に移動可能に設けられているので、ロボット本体1を床面に設置すれば、レーザーレーダ27の設置も同時に終えることができるので、ロボット本体1の設置の他に、レーザーレーダ27を工場内の所要位置に設置するといった追加作業を必要としない。
【0065】
しかも、レーザーレーダ27を走行車20に搭載し、走行車20を移動させながらレーザーレーダ27からレーザー光をパルス状に出射することで移動体を検出できるので、工場の天井に取り付けたCCDカメラで検出する場合のように高度な画像解析を必要とせず、移動体の検出を簡易に行うことができる。
【0066】
また、本実施形態では、今回の1周期位置データが基本位置データと異なっていても、前回の1周期位置データと一致していれば、移動他検出フラグをオンすることなく、代わりに、周囲に据え付けられた設備に変化があったとして、今回の1周期位置データを基本位置データに採用して、それまでの基本位置データと置き換えるようにしている(ステップA1で「YES」、ステップA2で「NO」、ステップA5)。
【0067】
これに対し、今回の1周期位置データと基本位置データと差があったことだけで移動体検出フラグをオンさせる場合には、例えば、部品補給ワゴンを空になったワゴンと置き換えるような場合、部品補給ワゴンの位置が空のワゴンのあった位置に正確に据え置かないと、以後の1周期位置データが全て基本位置データと異なることとなり、その結果、部品補給ワゴンが置かれた後も、移動体検出フラグがオンされ続けることとなる。
【0068】
このような場合、本実施形態では、今回の1周期位置データは基本位置データと異なっても、前回の1周期位置データとは一致するようになる。そして、今回の1周期位置データを基本位置データに置換する。このため、次の1周期位置データは、基本位置データと一致するようになるので、移動体検出フラグはオンされることはなく、いつまでも移動体検出フラグがオンされ続けることはなくなる。
【0069】
また、本実施形態では、ロボットアーム3の停止中に移動体を検出した場合、動作すれば衝突する恐れがあるときは動作を開始させないことは勿論であるが、ロボットアーム3と移動体とが衝突する恐れがなければ、ロボットアーム3の動作を開始し、或いは、安全速度であれば移動体と衝突する恐れがない場合には、安全速度でロボットアーム3の動作を開始させるので、ロボットアーム3の動作禁止を可能な限り防止しながら衝突防止を図ることができる。
【0070】
その上、ロボットアーム3の動作中に移動体を検出した場合、まず減速により衝突を回避し、減速によって衝突回避できないときは、制動をかけて停止させることにより衝突を回避し、制動をかけて停止させることによって衝突回避できないときには、ロボットアーム3を停止動作させながら当該ロボットアーム3の移動方向を移動体の移動方向と同じ方向となるように変更するので、より確実にロボットアーム3が移動体と衝突することを防止できる。
【0071】
なお、本発明は上記し且つ図面に示す実施形態に限定されるものではなく、以下のような拡張或いは変更が可能である。
探査装置はレーザーレーダ27に限られず、電波(探査信号)を発信しその反射波を測定することにより物体までの距離や方向を測定するレーダであっても良い。
ロボットアームは6軸型のものに限られず、また、水平多関節型のものに限られない。
移動体の駆動源はリニアモータであっても良い。
走行車20はベース2の周りを往復移動するものに限られず、一方向に移動するものであっても良い。
ロボットアーム3の動作範囲によっては、走行車20の移動範囲はベース2の周り360度未満であっても良い。
ステップA5で基本データと置き換える位置データは、今回の1周期位置データに限られず、前回の1周期位置データとしても良い。
【符号の説明】
【0072】
図面中、1はロボット本体、2はベース、3はロボットベース、12は制御装置(位置データ取得手段、移動位置検出手段、第1の比較手段、第2の比較手段、基本位置データ変換手段、衝突回避措置設定手段、ロボット制御手段)、23は多孔板(移動位置検出手段)、24は投光素子、25は受光素子、26は位置検出器(移動位置検出手段)、27はレーザーレーダ(探査装置)を示す。
図1
図2
図3
図4
図5
図6
図7
図8
図9