(57)【特許請求の範囲】
【請求項１】
ロボットに作用する力およびトルクのうち少なくとも一方を検出する力検出器と、ロボットの位置および姿勢を検出する状態検出器とを備えるロボットを制御するロボット制御装置であって、
ロボットの質量およびワークの質量を含む質量パラメータを設定する質量パラメータ設定部と、
ロボットを停止した状態にするための指令を発信する停止指令部とを備え、
停止指令部は、状態検出器により検出したロボットの位置および姿勢と質量パラメータとに基づいて、ロボットの動作により生じる内力を推定する内力推定部と、ロボットの外側からロボットに加えられる力により生じる外力を力検出器の出力から前記内力を減算して推定する外力推定部とを含み、
ロボットが人または物に接触したときにロボットを停止するための前記外力に関する第１の上限値と、第１の上限値よりも小さな第２の上限値とが予め設定されており、
停止指令部は、ロボットの動作期間中に外力推定部が推定した前記外力が予め設定された第１の上限値を超える場合にロボットを停止させるように形成されており、更に、ロボットの動作期間中または停止期間中に前記外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合に、ロボットを停止状態にすることを特徴とする、ロボット制御装置。
【請求項２】
複数の質量パラメータを記憶する質量パラメータ記憶部を備え、
質量パラメータ設定部による質量パラメータの切換えおよびワークの把持状態の変更と共にロボットが停止した後に、停止指令部は、外力推定部が推定した前記外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合に、ロボットの停止状態を維持する、請求項１に記載のロボット制御装置。
【請求項３】
停止指令部は、ロボットの動作期間中に外力推定部が推定した前記外力が第１の上限値を超えてロボットが停止した後に、前記外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合、または前記外力の予め定められた時間長さにおける変化幅が予め定められた変化幅判定値を超える場合に、ロボットの停止状態を維持する、請求項１または２に記載のロボット制御装置。
【請求項４】
質量パラメータの切換えおよびワークの把持状態の変更と共にロボットが停止した後に、停止指令部は、予め定められた時間長さにおける前記外力の変化幅が予め定められた変化幅判定値を超えている場合に、ロボットの停止状態を維持する、請求項２に記載のロボット制御装置。
【請求項５】
第１の上限値は、人または物がロボットに接触した時にロボットを停止する接触力から第２の上限値を減算した値に設定されている、請求項１から４のいずれか一項に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するロボット制御装置に関する。
【背景技術】
【０００２】
ロボットが動作している期間中に、ロボットが外部から力やトルク（以下、「外力」と称する）を受ける場合がある。例えば、ロボットが周囲の機器に接触したり作業者がロボットに接触したりする場合がある。このような場合に、ロボットは、外力を検知して停止したり、被接触物を避ける回避動作を行ったりすることが知られている。
【０００３】
特許文献１においては、ロボットアームの根元部のロボットベースに力検出器を配置して、ロボットアームに加わる力を検出する接触力検出装置が開示されている。この公報には、制御装置において、ロボットアームに加わる力からロボットアームの動作による内力を差し引くことにより、ロボットアームに作用する接触力を算出することが開示されている。また、この公報には、ロボットアームの接触力を低減する動作を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１に開示されているロボット制御装置では、ロボットの動作により発生する内力を算出し、力検出器にて検出される全体の外力から差し引くことにより、ロボットに対する外部からの接触力を算出している。ロボットに作用する接触力を算出する場合には、ロボットの質量に加えてロボットが把持しているワークの質量が正しく設定されている必要がある。
【０００６】
ワークの質量は、予め制御装置に設定することができる。しかしながら、ロボットが動作している期間中に、把持していたワークが脱落する場合がある。また、作業者の誤りによりワークの質量が正しく設定されていない場合がある。または、ロボットが把持しているワークが所望のワークと異なる場合がある。計算に用いるワークの質量が実際に把持されるワークの質量と異なる状況になった場合には、ロボットの動作により発生する内力を正しく推定することができないという問題が生じる。または、ロボットに接触した時の接触力を正しく算出することができないという問題がある。このために、本来は停止すべき外力がロボットに対して作用しているにも関わらず、ロボットが停止しない状態が生じ得る。
【課題を解決するための手段】
【０００７】
本発明のロボット制御装置は、ロボットに作用する力およびトルクのうち少なくとも一方を検出する力検出器と、ロボットの位置および姿勢を検出する状態検出器とを備えるロボットを制御するロボット制御装置であって、ロボットの質量およびワークの質量を含む質量パラメータを設定する質量パラメータ設定部と、ロボットを停止した状態にするための指令を発信する停止指令部とを備える。停止指令部は、状態検出器により検出したロボットの位置および姿勢と質量パラメータとに基づいて、ロボットの動作により生じる内力を推定する内力推定部と、ロボットの外側からロボットに加えられる力により生じる外力を力検出器の出力から内力を減算して推定する外力推定部とを含む。ロボットが人または物に接触したときにロボットを停止するための外力に関する第１の上限値と、第１の上限値よりも小さな第２の上限値とが予め設定されている。停止指令部は、ロボットの動作期間中に外力推定部が推定した外力が予め設定された第１の上限値を超える場合にロボットを停止させるように形成されており、更に、ロボットの動作期間中または停止期間中に外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合に、ロボットを停止状態にする。
【０００８】
上記発明においては、複数の質量パラメータを記憶する質量パラメータ記憶部を備え、質量パラメータ設定部による質量パラメータの切換えおよびワークの把持状態の変更と共にロボットが停止した後に、停止指令部は、外力推定部が推定した外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合に、ロボットの停止状態を維持することができる。
【０００９】
上記発明においては、停止指令部は、ロボットの動作期間中に外力推定部が推定した外力が第１の上限値を超えてロボットが停止した後に、外力の予め定められた時間長さにおける平均値が第２の上限値を超える場合、または外力の予め定められた時間長さにおける変化幅が予め定められた変化幅判定値を超える場合に、ロボットの停止状態を維持することができる。
【００１０】
上記発明においては、質量パラメータの切換えおよびワークの把持状態の変更と共にロボットが停止した後に、停止指令部は、予め定められた時間長さにおける外力の変化幅が予め定められた変化幅判定値を超えている場合に、ロボットの停止状態を維持することができる。
【００１１】
上記発明においては、第１の上限値は、人または物がロボットに接触した時にロボットを停止する接触力から第２の上限値を減算した値に設定されることができる。
【発明の効果】
【００１２】
本発明によれば、把持部に把持されているワークの質量が所望のワークの質量と異なる場合にロボットを停止させるロボット制御装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態におけるロボットシステムの概略図である。
【図２】実施の形態におけるロボットシステムのブロック図である。
【図３】実施の形態における制御装置の外力判定部のブロック図である。
【図４】実施の形態における第１の運転制御のタイムチャートである。
【図５】実施の形態における第２の運転制御のタイムチャートである。
【図６】実施の形態における第３の運転制御のタイムチャートである。
【図７】実施の形態における第４の運転制御のタイムチャートである。
【図８】実施の形態における運転制御のフローチャートである。
【発明を実施するための形態】
【００１４】
図１から図８を参照して、実施の形態におけるロボット制御装置について説明する。図１は、本実施の形態におけるロボットシステムの概略図である。ロボットシステムは、ワークＷの搬送を行うロボット１と、ロボット１を制御するロボット制御装置としての制御装置２とを備える。本実施の形態のロボット１は、多関節ロボットである。本発明では、アーム１２に加えてハンド１７も含めてロボット１と称する。ハンド１７は、ワークＷを把持したり解放したりする把持部として機能する。アーム１２は、ハンド１７を支持する。本実施の形態のアーム１２は、複数の関節部１３を含む。
【００１５】
ロボット１は、それぞれの関節部１３を駆動するアーム駆動装置を含む。アーム駆動装置は、関節部１３の内部に配置されているアーム駆動モータ１４を含む。アーム駆動モータ１４が駆動することにより、アーム１２を関節部１３にて所望の角度に曲げることができる。
【００１６】
ロボット１は、ハンド１７を閉じたり開いたりするハンド駆動装置を備える。本実施の形態のハンド駆動装置は、空気圧によりハンド１７を駆動する。ハンド駆動装置は、ハンド１７に接続されたハンド駆動シリンダ１８と、ハンド駆動シリンダ１８に圧縮空気を供給するための空気ポンプおよび電磁弁を含む。
【００１７】
ロボット１は、アーム１２を支持するベース部１１を備える。本実施の形態におけるロボット１は、ベース部１１に作用する力およびトルクを検出する力検出器１９を備える。ベース部１１に作用する力は、ロボット１に作用する力に相当する。ベース部１１の下側には力検出器１９が配置されている。力検出器１９は、設置面２０に固定されている。
【００１８】
本実施の形態における力検出器１９は、ベース部１１に連結されている金属の基材と基材の表面に取り付けられた歪みセンサとを含む。歪みセンサは、基材の表面の複数箇所に配置されている。基材に対して所定の方向に力が加わると基材が僅かに変形する。歪みセンサは基材の所定の位置の変形量を検出する。そして、歪みセンサによって検出した変形量に基づいて、基材に加わる力やトルク、すなわち、ロボット１に作用する力やトルクを算出する。
【００１９】
ロボット１に作用する力としては、所定の方向に作用する直線的な力を例示することができる。例えば、ロボット１に作用する力は、ロボット１の質量およびワークＷの質量により作用する鉛直方向の下向きの力を含む。また、ロボット１に作用するトルクとしては、所定の回転方向のトルクを例示することができる。例えば、鉛直方向に延びる回転軸の周りにアーム１２が回転する場合には、ロボット１に作用するトルクは、この回転軸の周りの方向のトルクを含む。本実施の形態における力検出器１９は、ロボット１に作用する力およびトルクの両方を検出可能に形成されている。
【００２０】
本実施の形態におけるロボット１は、ロボットの位置および姿勢を検出する状態検出器を含む。状態検出器は、アーム１２の基準点の位置、関節部１３におけるアーム１２の折れ曲がり状態、およびアーム１２が向いている方向等を検出する。本実施の形態における状態検出器は、それぞれのアーム駆動モータ１４に取り付けられた回転角検出器１５を含む。回転角検出器１５は、アーム駆動モータ１４が駆動するときの回転角度を検出する。それぞれのアーム駆動モータ１４の回転角度に基づいて、アーム１２の関節部１３における角度を検出することができる。
【００２１】
また、本実施の形態のロボット１は、アーム１２の全体が鉛直方向に延びる回転軸の周りを回転可能に形成されている。アーム駆動装置は、アーム１２を回転させる駆動モータを含む。状態検出器は、アーム１２のベース部１１に対する回転角度を検出する回転角検出器を含む。検出した回転角度に基づいてアーム１２が延びている方向を検出することができる。
【００２２】
ロボット１は、制御装置２の動作指令に基づいて駆動する。アーム駆動装置およびハンド駆動装置は、制御装置２により制御されている。例えば、アーム駆動モータ１４の回転角度およびハンド駆動シリンダ１８の空気圧は制御装置２により制御されている。また、状態検出器の出力は制御装置２に入力される。
【００２３】
図２に、本実施の形態におけるロボットシステムのブロック図を示す。本実施の形態では、動作プログラム４１に基づいてワークを搬送する制御を例示して説明する。ロボット１は、自動的に初期の位置から目標の位置までワークを搬送することができる。制御装置２は、バスを介して互いに接続されたＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、およびＲＯＭ（Read Only Memory）等を有するデジタルコンピュータを含む。
【００２４】
制御装置２には、ロボット１の動作を行うために予め作成された動作プログラム４１が入力される。動作プログラム４１は、動作プログラム記憶部４２に記憶される。動作制御部４３は、動作プログラムに基づいてロボット１を駆動するための動作指令を送出する。動作制御部４３は、アーム駆動装置を駆動する動作指令をアーム駆動部４４に送出する。アーム駆動部４４は、アーム駆動モータ１４等を駆動する電気回路を含み、動作指令に基づいてアーム駆動モータ１４等に電力を供給する。アーム駆動モータ１４が駆動することにより、アーム１２の折れ曲がり角度やアーム１２の方向などが調整される。
【００２５】
また、動作制御部４３は、ハンド駆動装置を駆動する動作指令をハンド駆動部４５に送出する。ハンド駆動部４５は、空気ポンプ等を駆動する電気回路を含み、動作指令に基づいてハンド駆動シリンダ１８に圧縮空気が供給される。ハンド駆動シリンダ１８に供給する空気の圧力を調整することによりハンド１７が開閉する。ハンド１７の開閉により、ワークＷを把持したり解放したりすることができる。
【００２６】
本実施の形態の制御装置２には、質量パラメータ５１が入力される。質量パラメータ５１は、制御装置２の質量パラメータ記憶部５２に記憶される。なお、動作プログラム記憶部４２の機能と質量パラメータ記憶部５２の機能とを有する記憶装置が制御装置に配置されていても構わない。
【００２７】
質量パラメータ５１は、ロボット１に作用する内力を推定するためのロボット１の各部位の質量やワークＷの質量に関連する情報を含む。質量パラメータ５１は、例えば、ロボット１の各部材の質量および各部材に関する質量中心（重心位置）の情報を含む。また、質量パラメータ５１は、ロボット１のそれぞれの座標軸における慣性モーメントを算出する時に用いる慣性行列を含むことができる。
【００２８】
制御装置２は、質量パラメータ設定部５３を含む。質量パラメータ設定部５３は、動作制御部４３からの指令に基づいて質量パラメータを設定する。本実施の形態では、ワークＷの種類ごとに質量パラメータが設定されている。質量パラメータ設定部５３は、ワークの種類を変更する度に質量パラメータを変更する。また、質量パラメータ設定部５３は、ハンド１７がワークＷを把持した状態と、ワークＷを解放した状態とで質量パラメータを変更する。
【００２９】
本実施の形態の制御装置２は、ロボット１を停止した状態にするための指令を動作制御部４３に発信する停止指令部４６を含む。停止指令部４６は、ロボット１が動作している期間および停止している期間のいずれの状態においても、動作を停止する指令を発信可能に形成されている。ロボット１が停止している時に停止指令が発信された場合は、ロボット１の停止状態が維持される。
【００３０】
質量パラメータ設定部５３は、設定した質量パラメータを停止指令部４６に送出する。停止指令部４６は、ロボット１の質量およびロボットの動作により生じる内力を推定する内力推定部４７を含む。内力推定部４７は、ロボット１の外側から力が加えられていない状態で、ロボット１が動作した時に自重によりロボット１に作用する力を算出する。内力は、状態検出器１６により検出したロボットの位置および姿勢と、質量パラメータ５１とに基づいて算出することができる。内力推定部４７は、ロボット１に作用する直線方向の力および回転方向のトルクの両方を算出可能に形成されている。
【００３１】
停止指令部４６は、ロボット１の外側からロボット１に加えられる力により生じる外力を推定する外力推定部４８を含む。外力推定部４８は、力検出器１９の出力から内力推定部４７にて推定した内力を減算することにより外力を算出する。本実施の形態の力検出器１９は、力およびトルクの両方を検出可能に形成されている。本実施の形態の外力推定部４８は、外力としてロボット１に作用する力およびトルクの両方を算出するように形成されている。
【００３２】
停止指令部４６は、算出した外力を判定する外力判定部４９を含む。外力判定部４９は、算出された外力が所定の条件に一致するか否かを判別する。外力が所定の条件を満たす場合に、停止指令部４６は、動作制御部４３に対してロボット１の停止指令を発信する。
【００３３】
図３に、本実施の形態における外力判定部のブロック図を含む。外力判定部４９は、外力超過判定部５６を含む。外力超過判定部５６は、外力推定部４８にて推定された外力が予め定められた第１の上限値を超えているか否かを判別する。推定された外力が第１の上限値を超えている場合には、許容される力よりも大きな力でロボット１が押されていると判断することができる。そして、停止指令部４６は、ロボット１の停止指令を動作制御部４３に送出する。動作制御部４３は動作プログラムの実行を中断してロボット１が停止した状態にする。第１の上限値は、予め定められている。第１の上限値は、例えば、人または物がロボットに接触したときに許容される接触力よりも小さい値を採用することができる。
【００３４】
このように、ロボットが動作している期間中に、人や物がロボット１に接触した場合には、ロボット１は自動的に停止する。
【００３５】
本実施の形態の外力超過判定部５６は、外力の力とトルクのうち力によって判定している。外力超過判定部５６は、各座標軸の方向における力の合力を用いて判定している。外力の判定は、この形態に限られず、トルクに基づいて判定しても構わない。または、力とトルクの両方を用いても構わない。例えば、力とトルクのうち少なくとも一方がそれぞれの上限値を超えた場合にロボットを停止させることができる。以下の制御においても同様に、力とトルクのうち少なくとも一方を用いて判定を行うことができる。
【００３６】
図４に、本実施の形態における第１の運転制御のタイムチャートを示す。第１の運転制御では、実際にハンド１７に把持されているワークの質量が質量パラメータのワークの質量と一致しているか否かを判別することができる。図４では、ワークＷを搬送している期間中にワークＷがハンド１７から外れて落下した場合の制御を例示する。第１の上限値ＨＬ１は、前述のように人または物が接触したことを判別するための判定値である。
【００３７】
縦軸は、外力推定部４８により算出された外力の大きさを示している。例えば、複数の方向の力を合成した外力は所定の向きに向いている。また、座標軸が設定されている場合には、外力の方向が正の方向にならずに負の方向になる場合がある。ここでは、外力の向きを考慮せずに外力の大きさにて判別している。
【００３８】
図３および図４を参照して、外力判定部４９は、実際にハンド１７に把持されているワークＷの質量が質量パラメータに含まれるワークＷの質量と一致しているか否かを判別する質量異常判定部５７を含む。
【００３９】
本実施の形態の制御装置２には、第１の上限値ＨＬ１に加えて、第２の上限値ＨＬ２が予め設定されている。第２の上限値ＨＬ２は、ワークＷの質量の異常を検出するための判定値である。第２の上限値は、質量パラメータ５１に含めることができる。第２の上限値ＨＬ２は、第１の上限値ＨＬ１よりも小さい判定値である。または、第２の上限値は、ワークＷの質量に基づいて設定することができる。本実施の形態では、第２の上限値ＨＬ２は、ワークＷの質量に対応する外力よりも小さく設定されている。
【００４０】
図４に示す例では、時刻ｔ１まではロボット１が正常な状態でワークＷを搬送している。予め定められた時間間隔ごとに内力推定部４７が内力を推定し、外力推定部４８が外力を推定する。ロボット１の動作に伴う振動等により、僅かな外力が検出されている。外力は、小さな振動を伴いながらほぼ零の値を維持している。
【００４１】
時刻ｔ１においてワークＷがハンド１７から脱落している。ワークＷがハンド１７から落下した場合には、実際のハンド１７に把持されているワークＷの質量は零になる。質量パラメータ５１に含まれるハンド１７およびワークＷの合計質量と、実際のハンド１７およびワークＷの合計質量とが異なる状態になる。内力推定部４７は、ロボット１がワークＷを把持している条件にて内力を推定する。ところが、実際にはロボット１がワークＷを把持していないために、ワークＷの質量に相当する力にて下側からロボット１が押された状態と同様になる。
【００４２】
時刻ｔ１に外力が上昇する。このときの外力の上昇は、第１の上限値ＨＬ１以下である。このために、時刻ｔ１の直後には、ロボット１は動作を継続する。
【００４３】
外力判定部４９の質量異常判定部５７は、予め定められた時間間隔ごとに時間長さＴＬｌにおける平均値を算出する。時間長さＴＬ１は予め定められており、例えば１秒を採用することができる。そして、予め定められた時間長さＴＬ１における平均値が、第２の上限値ＨＬ２を超える場合にロボット１を停止させる。
【００４４】
質量異常判定部５７は、時刻ｔ２において、時間長さＴＬ１における外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２を超えたことを検出する。停止指令部４６は、停止指令を動作制御部４３に出力する。時刻ｔ２以降においても質量異常判定部５７の判定と、停止指令部４６による停止指令の発信は実施している。このために、時刻ｔ２以降においては、ロボット１の停止状態を維持している。
【００４５】
このように、制御装置２は、外力が第１の上限値ＨＬ１に達しない場合にも、ワークＷの質量が変化したことを検出し、ロボット１を停止させることができる。本実施の形態においては、質量の変化の判定に予め定められた時間長さＴＬ１の平均値ＥＦＡＶＥを採用している。外力はロボット１の動作に伴って振動するために、外力が一時的に第２の上限値ＨＬ２を超える場合がある。第１の運転制御では、時間長さＴＬ１における外力の平均値を用いることにより、定常的にロボット１に作用する外力にて判別することができる。ハンド１７が把持している物の質量が変化したことを正確に検出することができる。このために、一時的な外力の変動により第２の上限値を超えてロボットが停止することを回避できる。
【００４６】
特に、ワークＷが脱落した状態で、アーム１２が上昇している期間中に作業者がアーム１２の上面に接触する場合がある。この場合には、アーム１２に対して下側に向かう接触力が作用する。ところが、内力推定部４７は、ワークＷが把持されている条件で内力を推定している。このために、外力が第１の上限値にワークＷの質量に相当する力が加算された値になるまで、ロボットは停止しない。この結果、作業者に大きな力が加えられる虞がある。
【００４７】
第１の運転制御では、ワークが落下を速やかに検出することができるために、作業者に大きな力が加わることを回避できる。第１の運転制御は、ロボット１の動作期間中に加えてロボット１の停止期間中にも実施することができる。また、ロボット１を停止するのはワークＷの落下に限られず、質量パラメータに記憶されているワークの質量と、実際のワークの質量とが異なる場合に、ロボットを停止させることができる。たとえば、質量パラメータの入力の誤りや、所望のワークと異なるワークを搬送した場合等に、ロボットを停止させることができる。
【００４８】
図５に、本実施の形態における第２の運転制御のタイムチャートを示す。第２の運転制御では、ワークＷの搬送を終了して、ハンド１７がワークＷを離すときの制御を例示する。図３を参照して、外力判定部４９は、質量パラメータ切換え監視部５８を含む。質量パラメータ切換え監視部５８は、質量パラメータを切換える時の外力の判定を行う。
【００４９】
図２を参照して、ワークＷを解放する時に、質量パラメータ設定部５３は、動作制御部４３からの指令により質量パラメータを切り換える。すなわち、質量パラメータ設定部５３は、ワークＷを把持している状態の質量パラメータからワークＷを把持していない状態の質量パラメータに切り換える。
【００５０】
図５を参照して、時刻ｔ３までは、ロボット１が動作して目標の位置までワークＷを搬送している。この時の質量パラメータは、ワークを把持している状態の質量パラメータが採用されている。時刻ｔ３においてワークＷが目標の位置に到達している。
【００５１】
時刻ｔ３において、停止指令部４６は、アーム１２の動作の停止指令を発信してアーム１２の動作を停止させる。質量パラメータ設定部５３は、ワークＷを把持していない状態の質量パラメータ５１に切り換える。実際のハンド１７は、未だワークＷを解放していないために、外力が検出される。例えば、質量パラメータ５１を切り換えることにより、内力推定部４７にて推定される内力が小さくなるために外力が大きくなる。
【００５２】
時刻ｔ４において、ハンド１７がワークＷを解放する。ワークＷを解放することにより、質量パラメータに含まれるワークおよびハンドの合計質量と実際のワークおよびハンドの合計質量が一致して、外力推定部４８は正確な外力を推定する。外力は、第２の上限値ＨＬ２以下になる。
【００５３】
外力推定部４８は、予め定められた時間間隔ごとに外力を推定する。外力判定部４９の質量パラメータ切換え監視部５８は、外力の平均値ＥＦＡＶＥを算出する。このときに、質量パラメータ切換え監視部５８は、予め定められた時間長さＴＬ２における外力の平均値を算出する。そして、質量パラメータ切換え監視部５８は、外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２よりも大きいか否かを判別する。外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２よりも大きい場合には、停止指令部４６は停止指令を動作制御部４３に出力する。すなわち、外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２以下になるまでロボット１の停止を維持する。外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２以下になった場合には、質量パラメータが実際の状態に合致していると判別することができる。この場合に、停止指令部４６は、停止指令を解除する指令を動作制御部４３に出力する。
【００５４】
図５に示す例においては、時刻ｔ５において予め定められた時間長さＴＬ２における外力の平均値ＥＦＡＶＥが、第２の上限値ＨＬ２以下になっている。このため、時刻ｔ５以降にロボット１が動作を再開している。
【００５５】
ハンド１７によるワークＷの把持状態を変更する場合には、質量パラメータを切り換える必要がある。ワークの把持状態を変更した時に、作業者の誤り等により質量パラメータに記憶されているワークの質量と、実際のワークの質量とが異なる場合がある。質量パラメータが実際の状態と異なる状態でロボット１の駆動を再開すると、作業者が接触した場合に大きな接触力を受ける場合がある。ロボット１が本来停止すべき接触力を受けているにも関わらず、停止しない場合が生じる。
【００５６】
第２の運転制御においては、外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２以下になるまでロボット１を停止させる。すなわち、質量パラメータが実施の状態に一致していることを確認するまでロボット１を停止させている。このために、ロボット１の駆動が再開した時には、質量パラメータが実施の状態に一致している。ロボット１の駆動を再開した後に、作業者がロボットに接触しても大きな接触力を受けることを回避できる。
【００５７】
本実施の形態においては、ハンドがワークを把持している状態からワークを離した状態に移行する例を示したが、この形態に限られず、ワークの把持状態が変更されるときに同様の制御を実施することができる。たとえば、ワークを離した状態からハンドがワーク把持する状態に移行する場合にも同様の制御を実施することができる。また、第２の運転制御は、ワークの種類を変更した場合に好適である。
【００５８】
なお、ロボットが停止している状態において、外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２以下になるまでロボット１の停止を維持する制御は、前述の制御に関わらず、任意の条件でロボットが停止状態になった場合に実施することができる。たとえば、外力が第１の上限値を超えてロボットが停止した後の期間に実施することができる。
【００５９】
図６に、本実施の形態の第３の運転制御のタイムチャートを示す。第３の運転制御は、ロボットが停止している期間中に作業者がロボットに接触した場合の制御である。ここでは、作業者が手動でロボット１を操作する例を取り上げて説明する。
【００６０】
時刻ｔ６までは、ロボット１がワークＷを搬送している。時刻ｔ６において、ワークＷが目標の位置に到達している。時刻ｔ６において、ハンド１７がワークＷを解放している。作業者は、ワークＷの解放とともに質量パラメータが変更すべきであるが、ここでは、質量パラメータが変更されていない場合を例示する。時刻ｔ６において、ワークＷの質量に相当する外力が算出される。
【００６１】
ここでの例では、第１の運転制御を実施している。外力判定部４９は、予め定められた時間長さにおける外力の平均値を算出する。時刻ｔ６から時刻ｔ７までの期間では、外力が第２の上限値ＨＬ２よりも大きくなる。このために、停止指令部４６が停止指令を発信して、ロボット１は停止した状態が継続されるべきである。
【００６２】
ところが、時刻ｔ７において、作業者がロボット１に接触している。この実施例では、作業者が下向きにロボット１を押す様に接触している。このときの接触力が、ワークの質量に相当する力に近い場合には、算出される外力が小さくなって、予め定められた時間長さにおける外力の平均値ＥＦＡＶＥが第２の上限値ＨＬ２以下になる場合がある。このために、作業者が接触しているにも関わらず、ロボットが再び動作する場合がある。または、選定されている質量パラメータが誤っているにも関わらず、ロボットが再び駆動する場合がある。この結果、ロボットに作業者が接触した時に作業者に大きな力が加えられる虞がある。
【００６３】
人がロボットに接触している場合には、連続的に一定の接触力をロボット１に加えることは困難である。このために接触力は時間と共に変動する。力検出器１９の出力の変化量が大きくなる。そして、推定される外力の変化量が大きくなる。そこで、第３の運転制御では、外力判定部４９は、予め定められた時間長さＴＬ３における外力の変化幅ＥＦＷを算出する。変化幅ＥＦＷは、時間長さＴＬ３の期間内における力の最大値と最小値の差を採用している。外力判定部４９は、変化幅ＥＦＷが予め定められた変化幅判定値未満であるか否かを判別する。変化幅ＥＦＷが予め定められた変化幅判定値以上の場合には、人がロボットに接触していると判断することができる。この場合に、停止指令部４６は、ロボット１の停止指令を動作制御部４３に送出する。一方で、変化幅ＥＦＷが予め定められた変化幅判定値未満になった場合には、停止指令部４６は、ロボットの停止指令を解除する。
【００６４】
このように、第３の運転制御では、変化幅ＥＦＷが予め定められた変化幅判定値未満になるまでロボットを停止させる制御を行う。この結果、人がロボット１に接触して外力の平均値が第２の上限値以下になっていてもロボットが再び駆動することを回避できる。
【００６５】
なお、外力の変化幅としては、予め定められた期間における外力の最大値と最小値との差に限られず、外力の変化量を推定する任意の値を採用することができる。例えば、予め定められた時間間隔ごとに算出した外力の分散を算出する。算出した外力の分散が予め定められた変化幅判定値以上の場合に、ロボットの停止を維持することができる。
【００６６】
第３の運転制御は、ワークを解放した時の制御に限られず、ロボットが停止している任意の状態にて実施することができる。例えば、第２の運転制御においてワークの質量の変化を検出して停止した場合に実施することができる。また、上述の制御では、ロボット１を停止した後に第１の運転制御と第３の運転制御とを行っているが、この形態に限られず、第１の運転制御の外力の平均値による判定の制御を実施せずに、第３の運転制御の外力の変化幅による判定の制御を実施しても構わない。
【００６７】
図７に、本実施の形態における第４の運転制御のタイムチャートを示す。質量パラメータの変更時等に、質量パラメータに含まれるワークの質量と実際のワークの質量とに第２の上限値では検出されない小さな差が存在する場合がある。この場合には、ロボット１の停止指令は発信されずにロボット１は動作を継続する。すなわち、質量パラメータのワークの質量と実際のワークの質量との間に、第２の上限値に対応する質量差未満の差がある状態でロボットが動作する場合がある。
【００６８】
この状態で、例えばアーム１２が動作している時に作業者がアーム１２に接触した場合に、接触力がロボット１を停止すべき第１の上限値ＨＬ１に相当する力よりも大きいにも関わらず、算出される外力が第１の上限値ＨＬ１以下になる場合がある。すなわち、質量パラメータのワークの質量と実際のワークの質量との質量差に対応する力が、外力から減算されてしまう場合がある。
【００６９】
第１の運転制御では、人がロボットに接触した時の接触力が許容される力よりも大きくならないように第１の上限値が設定されている。第４の運転制御においては、第１の運転制御における第１の上限値ＨＬ１から第２の上限値ＨＬ２を減算した値（ＨＬ１−ＨＬ２）を第１の上限値に設定する。第４の運転制御の第１の上限値は、人がロボットに接触した時に許容される外力から第２の上限値を減算した値に設定されている。換言すると、第１の上限値は、人または物がロボットに接触した時にロボットを停止する接触力から第２の上限値を減算した値に設定されている。第４の運転制御においても、外力推定部４８にて推定される外力が第１の上限値（ＨＬ１−ＨＬ２）を超えた場合の制御は、第１の運転制御と同様である。
【００７０】
図７に示す例においては、ロボット１がワークＷを搬送している期間中に、時刻ｔ９において作業者がロボット１に接触している。時刻ｔ９において外力が上昇し、外力が第１の上限値（ＨＬ１−ＨＬ２）よりも大きくなっている。停止指令部４６は、ロボットの停止指令を動作制御部４３に出力する。この様に、推定された外力は、第１の運転制御の第１の上限値ＨＬ１には到達していないが、ロボット１を停止させることができる。
【００７１】
第４の運転制御においては、質量パラメータに含まれるワークの質量と実際のワークの質量との間に質量差があっても、作業者が許容される接触力よりも大きな接触力を受けることを回避することができる。このような第４の運転制御の第１の上限値は、任意の運転制御を行うときに採用することができる。
【００７２】
図８に、本実施の形態における運転制御のフローチャートを示す。この運転制御には、前述の第１の運転制御から第４の運転制御が含まれている。
【００７３】
図２、図３および図８を参照して、ステップ７１においては、内力推定部４７が内力を推定する。ステップ７２においては、外力推定部４８が算出した内力と力検出器１９の出力に基づいて外力を推定する。
【００７４】
ステップ７３においては、停止指令部４６がロボット１またはアーム１２の停止指令を発信しているか否かを判別する。ステップ７３において、停止指令部４６が停止指令を発信している場合には、ステップ８４に移行する。ステップ７３において、停止指令部４６が停止指令を発信していない場合には、ステップ７４に移行する。
【００７５】
ステップ７４においては、質量パラメータ設定部５３が質量パラメータを変更したか否かを判別する。なお、ステップ７４においては、ワークを把持したり解放したりしたか判別しても構わない。ステップ７４において、質量パラメータが変更されていない場合には、ステップ７５に移行する。
【００７６】
一方で、ステップ７４において、質量パラメータが変更された場合には、ステップ８１に移行する。ステップ８１において、停止指令部４６は、動作制御部４３にロボットの停止指令を出力する。動作制御部４３は、動作プログラムの実行を中断する。動作制御部４３は、動作プログラムに基づいてロボット１を動作させている場合にはロボット１を停止させる。
【００７７】
ステップ７５において、外力判定部４９は、推定した外力が第１の上限値を超えているか否かを判別する。この制御例の第１の上限値としては、第４の運転制御における第１の上限値（ＨＬ１−ＨＬ２）が採用されている。第１の上限値としては、この形態に限られず、第１の運転制御において採用されている第１の上限値ＨＬ１を用いても構わない。ステップ７５において、外力が第１の上限値よりも大きい場合には、ステップ８１に移行する。ステップ７５において、外力が第１の上限値以下の場合には、ステップ７６に移行する。
【００７８】
ステップ７６において、外力判定部４９は、予め定められた時間長さにおける外力の平均値が、第２の上限値を超えているか否かを判別する。外力の平均値が第２の上限値以下である場合には、この制御を終了する。停止指令部４６が停止指令を発信せずにこの制御を終了する。この結果、動作制御部４３は動作プログラム４１に基づくロボット１の制御を継続する。ステップ７６において、外力の平均値が第２の上限値よりも大きい場合には、ステップ８１に移行する。
【００７９】
次に、ステップ８４において、外力判定部４９は、予め定められた時間長さにおける外力の変化幅が、予め定められた変化幅判定値未満であるか否かを判別する。すなわち、外力の変化幅が小さいか否かを判別する。外力の変化幅が変化幅判定値以上である場合には、例えば、人が接触していると判別することができる。この場合には、ステップ８１に移行し、ロボット１の停止状態を維持する。ステップ８４において、外力の変化幅が変化幅判定値よりも小さい場合には、例えば、人が接触していないと判別することができる。この場合には、ステップ８５に移行する。
【００８０】
ステップ８５において、外力判定部４９は、予め定められた時間長さにおける外力の平均値が、第２の上限値よりも大きいか否かを判別する。外力の平均値が第２の上限値よりも大きい場合には、ワークが脱落していたり、質量パラメータの選定が誤っていたり、またはワークの種類が誤っていると判別することができる。この場合には、ステップ８１に移行し、ロボット１の停止状態を維持する。
【００８１】
ステップ８５において、外力の平均値が第２の上限値以下である場合には、ステップ８６に移行する。この場合には、ロボット１を停止していた問題が解消されたと判別することができる。たとえば、質量パラメータと実際のロボット１の状態とが一致し、更に、人がロボット１に接触していないと判別することができる。
【００８２】
次に、ステップ８６においては、ロボット１の停止指令を解除する。停止指令部４６は、動作制御部４３に対してロボットの停止指令の解除を出力する。動作制御部４３は、動作プログラム４１に基づいてロボット１を動作したり停止したりする。
【００８３】
本実施の形態における力検出器は、ロボットに作用する力およびトルクの両方を検出可能に形成されているが、この形態に限られず、力検出器は、力およびトルクのうち少なくとも一方を検出可能に形成されていれば構わない。力またはトルクのうち一方が検出される場合には、検出された変数に基づいて外力の判定を行うことができる。
【００８４】
本実施の形態においては、多関節ロボットを例示して説明したが、この形態に限られず、任意のロボット制御装置に本発明を適用することができる。また、本実施の形態のワークを把持する把持部は、互いに対向する爪部が開閉するハンドにより構成されているが、この形態に限られず、把持部は、任意の構造を採用することができる。たとえば、把持部は、磁力によりワークを把持したり解放したりしても構わない。また、本実施の形態のハンド駆動装置は、空気圧によりワークを挟んだり開放したりするが、この形態に限られず、ハンド駆動装置は、ハンドを駆動可能な任意の装置を採用することができる。たとえば、ハンド駆動装置は、電磁石の磁力によりハンドを駆動するように形成されていても構わない。
【００８５】
上述のそれぞれの運転制御は、動作プログラムに基づいてロボットが自動的に動作する場合と、作業者が操作盤を操作することによりロボットを手動にて動かす場合とに適用することができる。
【００８６】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【００８７】
１    ロボット
２    制御装置
１５    回転角検出器
１６    状態検出器
１７    ハンド
１９    力検出器
４３    動作制御部
４６    停止指令部
４７    内力推定部
４８    外力推定部
４９    外力判定部
５１    質量パラメータ
５３    質量パラメータ設定部
５６    外力超過判定部
５７    質量異常判定部
５８    質量パラメータ切換え監視部
Ｗ    ワーク
【要約】
【課題】把持部に把持されているワークの質量が所望のワークの質量と異なる場合にロボットを停止させるロボット制御装置を提供する。
【解決手段】ロボット制御装置は、質量パラメータを設定する質量パラメータ設定部と、ロボットの停止指令を発信する停止指令部とを備える。外力に関する第１の上限値および第１の上限値よりも小さな第２の上限値が設定されている。停止指令部は、推定した外力が第１の上限値を超える場合にロボットを停止させる。更に、停止指令部は、外力の平均値が第２の上限値を超える場合にロボットを停止状態にする。
【選択図】図８【図１】
0005927284.tif 000002
【図２】
0005927284.tif 000003
【図３】
0005927284.tif 000004
【図４】
0005927284.tif 000005
【図５】
0005927284.tif 000006
【図６】
0005927284.tif 000007
【図７】
0005927284.tif 000008
【図８】
0005927284.tif 000009