(57)【特許請求の範囲】
【請求項１】
ロボットに加わる外力を検出するセンサの出力に基づいて前記ロボットの動作を制御するロボット制御装置であって、
前記センサによって検出された前記外力に基づいて、前記ロボットが物体と接触したか否かを判断する接触判断部と、
前記接触判断部によって前記ロボットが前記物体と接触したと判断されたときに、前記ロボットを停止させる停止指令部と、
前記ロボットを停止させた後に該ロボットが前記物体と継続して接触しているか否かを判断する接触継続判断部と、
前記接触継続判断部によって前記ロボットが前記物体と継続して接触していると判断されたときに、前記ロボットを前記物体から離れる方向へ退避させる退避指令部と、を備える、ロボット制御装置。
【請求項２】
前記接触判断部は、予め定められた閾値以上の前記外力が検出された場合に、前記ロボットが前記物体と接触したと判断する、請求項１に記載のロボット制御装置。
【請求項３】
前記接触継続判断部は、前記停止指令部によって前記ロボットを停止させた時点から予め定められた時間が経過するまでに、予め定められた閾値を超えた前記外力が検出された場合に、前記ロボットが前記物体と継続して接触していると判断する、請求項１または２に記載のロボット制御装置。
【請求項４】
前記停止指令部によって前記ロボットを停止させた時点からの前記外力の積算値を算出する積算値算出部をさらに備え、
前記接触継続判断部は、前記時点から予め定められた時間が経過するまでに、前記積算値が予め定められた閾値を超えた場合に、前記ロボットが前記物体と継続して接触していると判断する、請求項１または２に記載のロボット制御装置。
【請求項５】
ロボットと、
前記ロボットを制御する、請求項１〜４のいずれか１項に記載のロボット制御装置と、を備える、ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに加わる外力に基づいてロボットを制御するロボット制御装置、およびロボットシステムに関する。
【背景技術】
【０００２】
ロボットの作業中に該ロボットと物体とが接触したことを検出したときに、該ロボットに退避動作を実行させるロボット制御装置が知られている（例えば、特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−０５２２８６号公報
【特許文献２】特開２００１−１１７６１８号公報
【特許文献３】特開２０１４−０１８９０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
物体がロボットと瞬間的に接触し、ロボットと物体との接触が即時に解消された場合は、ロボットを退避させずに、作業を継続させてもよい場合がある。しかしながら、上述した従来技術においては、ロボット制御装置は、ロボットと物体とが接触したことを検出したときに、即時、ロボットに退避動作を実行させるものである。したがって、ロボットに不要な退避動作をさせてしまう場合があった。
【課題を解決するための手段】
【０００５】
本発明の一態様において、ロボットに加わる外力を検出するセンサの出力に基づいてロボットの動作を制御するロボット制御装置は、センサによって検出された外力に基づいて、ロボットが物体と接触したか否かを判断する接触判断部と、接触判断部によってロボットが物体と接触したと判断されたときに、ロボットを停止させる停止指令部とを備える。
【０００６】
また、ロボット制御装置は、ロボットを停止させた後に該ロボットが物体と継続して接触しているか否かを判断する接触継続判断部と、接触継続判断部によってロボットが物体と継続して接触していると判断されたときに、ロボットを物体から離れる方向へ退避させる退避指令部とを備える。
【０００７】
接触判断部は、予め定められた閾値以上の外力が検出された場合に、ロボットが物体と接触したと判断してもよい。接触継続判断部は、停止指令部によってロボットを停止させた時点から予め定められた時間が経過するまでに、予め定められた閾値を超えた外力が検出された場合に、ロボットが物体と継続して接触していると判断してもよい。
【０００８】
ロボット制御装置は、停止指令部によってロボットを停止させた時点からの外力の積算値を算出する積算値算出部をさらに備え、接触継続判断部は、時点から予め定められた時間が経過するまでに、積算値が予め定められた閾値を超えた場合に、ロボットが物体と継続して接触していると判断してもよい。
【０００９】
本発明の他の態様において、ロボットシステムは、ロボットと、ロボットを制御する上述のロボット制御装置とを備える。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るロボットシステムの図である。
【図２】図１に示すロボットシステムのブロック図である。
【図３】ロボットの制御方法の一例を示すフローチャートである。
【図４】本発明の他の実施形態に係るロボットシステムのブロック図である。
【図５】ロボットの制御方法の他の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。まず、図１および図２を参照して、本発明の一実施形態に係るロボットシステム１０について説明する。ロボットシステム１０は、ロボット１２と、該ロボット１２を制御するロボット制御装置５０とを備える。
【００１２】
ロボット１２は、例えば垂直多関節ロボットであって、ロボットベース１４、旋回胴１６、ロボットアーム１８、およびロボットハンド２０を備える。ロボットベース１４は、ワークセルの床Ａに固定されている。旋回胴１６は、ロボットベース１４に鉛直軸周りに旋回可能に取り付けられている。
【００１３】
ロボットアーム１８は、旋回胴１６に回転可能に取り付けられた下腕部２２と、該下腕部２２の先端に回転可能に取り付けられた前腕部２４とを有する。ロボットハンド２０は、手首部２６を介して、前腕部２４の先端に取り付けられている。ロボットハンド２０は、例えばワーク（図示せず）の把持および解放といった種々の作業をワークに対して行うことができる。
【００１４】
図２に示すように、ロボット１２は、サーボモータ２８および力センサ３０を有する。サーボモータ２８は、旋回胴１６、ロボットアーム１８、および手首部２６にそれぞれ内蔵され、ロボット制御装置５０からの指令に応じて、これら要素を回動軸周りに回動させる。
【００１５】
力センサ３０は、旋回胴１６、ロボットアーム１８、または手首部２６に内蔵されており、ロボット１２に加えられている外力を検出することができる。一例として、力センサ３０は、歪ゲージを含み、力センサ３０が設置されている位置における要素の歪み値を計測する。
【００１６】
ロボット制御装置５０は、ＣＰＵ（中央演算処理装置）５２、計時部５４、および記憶部５６を備える。計時部５４および記憶部５６は、バスを介して、ＣＰＵ５２に接続されている。計時部５４は、ＣＰＵ５２からの指令に応じて、予め定められた時点からの時間を計測する。ＣＰＵ５２は、計時部５４によって計測された時間を、記憶部５６に記録する。
【００１７】
記憶部５６は、例えばＥＥＰＲＯＭ（登録商標）等のような、電気的に消去・記録可能な不揮発性メモリ、または、例えばＤＲＡＭ、ＳＲＡＭ等のような、高速で読み書きのできるランダムアクセスメモリによって構成される。
【００１８】
本実施形態においては、ＣＰＵ５２は、接触判断部５８、停止指令部６０、接触継続判断部６２、および退避指令部６４としての機能を担う。なお、接触判断部５８、停止指令部６０、接触継続判断部６２、退避指令部６４の機能については、後述する。
【００１９】
次に、図１〜図３を参照して、ロボットシステム１０の動作について説明する。ロボット制御装置５０は、ロボット１２に内蔵されたサーボモータ２８に指令を送り、ロボット１２を動作させる。ロボット１２の動作中において、ロボット１２が、部材Ｂ（図１）や作業員Ｃ（図１）等といった、ロボット１２の外部の物体と接触してしまう場合がある。
【００２０】
図３は、ロボット１２の動作中にロボット１２と物体とが接触した場合における、ロボット１２の制御方法の一例を示すフローチャートである。ステップＳ１において、ＣＰＵ５２は、力センサ３０から、ロボット１２に加わる外力に関する情報を、予め定められた周期Ｔで取得する。
【００２１】
一例として、力センサ３０が歪みゲージを含む場合、ＣＰＵ５２は、力センサ３０から予め定められた周期Ｔで歪み値を取得し、該歪み値に基づいて、ロボット１２に加わる外力を算出する。ＣＰＵ５２は、取得した外力を、記憶部５６に記憶する。
【００２２】
ステップＳ２において、ＣＰＵ５２は、ステップＳ１にて取得した直近の外力が、予め定められた第１の閾値以上となったか否かを判断する。この第１の閾値は、記憶部５６に予め記憶されている。
【００２３】
ＣＰＵ５２は、記憶部５６から、第１の閾値と、ステップＳ１にて周期的に記憶されている外力のうち直近のものとを読み出して、これらを比較する。ＣＰＵ５２は、外力が第１の閾値以上である（すなわちＹＥＳ）と判断した場合、ステップＳ３へ進む。一方、ＣＰＵ５２は、外力が第１の閾値よりも小さい（すなわちＮＯ）と判断した場合、ステップＳ８へ進む。
【００２４】
このように、ＣＰＵ５２は、力センサ３０によって検出された外力と第１の閾値とを比較し、該外力が第１の閾値以上になったときに、ロボット１２が物体（例えば部材Ｂまたは作業員Ｃ）と接触したと判断する。したがって、ＣＰＵ５２は、力センサ３０によって検出された外力に基づいて、ロボット１２が物体と接触したか否かを判断する接触判断部５８（図２）としての機能を担う。
【００２５】
ステップＳ３において、ＣＰＵ５２は、サーボモータ２８に指令を送り、ロボット１２の動作を停止させる。このように、本実施形態においては、ＣＰＵ５２は、接触判断部５８によってロボット１２が物体と接触したと判断されたときにロボット１２を停止させる停止指令部（図２）としての機能を担う。
【００２６】
ステップＳ４において、ＣＰＵ５２は、計時部５４に指令を送り、経過時間の計時を開始する。一例として、ステップＳ４にて計時を開始する時点ｔＳは、例えば、ステップＳ３にてロボット１２を停止させた時点ｔ１に設定される。また、他の例として、計時部５４は、標準時間（例えば日本標準時間）を計時し、ＣＰＵ５２は、時点ｔＳにおける標準時間を記憶部５６に記憶してもよい。
【００２７】
ステップＳ５において、ＣＰＵ５２は、ステップＳ４にて計時している経過時間が、予め定められた時間ｔ３（例えば５秒）となったか否かを判断する。この時間ｔ３は、記憶部５６に予め記憶されている。
【００２８】
なお、計時部５４が上記標準時間を計時している場合、ＣＰＵ５２は、ステップＳ４にて記憶した時点ｔＳにおける標準時間から、予め定められた時間ｔ３を経過したか否かを判断する。
【００２９】
ＣＰＵ５２は、予め定められた時間ｔ３を経過していない（すなわちＮＯ）と判断した場合、ステップＳ６へ進む。一方、ＣＰＵ５２は、予め定められた時間ｔ３を経過した（すなわちＹＥＳ）と判断した場合、ステップＳ８へ進む。
【００３０】
ステップＳ６において、ＣＰＵ５２は、ステップＳ１にて周期的に取得している外力のうち直近のものが、予め定められた第２の閾値を超えたか否かを判断する。第２の閾値は、記憶部５６に予め記憶されている。
【００３１】
ＣＰＵ５２は、記憶部５６から、第２の閾値と、ステップＳ１にて周期的に記憶された外力のうち直近のものとを読み出して、これらを比較する。ＣＰＵ５２は、外力が第２の閾値を超えた（すなわちＹＥＳ）と判断したときに、ステップＳ７へ進む。一方、ＣＰＵ５２は、外力が第２の閾値を超えていない（すなわちＮＯ）と判断したとき、ステップＳ５へ戻る。
【００３２】
このように、本実施形態においては、ＣＰＵ５２は、時点ｔ１から時間ｔ３が経過するまでに第２の閾値を超えた外力が検出された場合に、ロボット１２の停止後もロボット１２と物体（例えば部材Ｂまたは作業員Ｃ）とが継続して接触しているものと判断する。したがって、ＣＰＵ５２は、ロボット１２が物体と継続して接触しているか否かを判断する接触継続判断部６２（図２）としての機能を担う。
【００３３】
ステップＳ７において、ＣＰＵ５２は、サーボモータ２８に指令を送り、ロボット１２を物体から退避させる。一例として、ロボットアーム１８が物体に接触した場合において、ＣＰＵ５２は、ロボットアーム１８に内蔵された力センサ３０からの外力の情報（例えば歪み値）に基づいて、物体がロボットアーム１８に対して当接した方向Ｄ１を算出する。
【００３４】
そして、ＣＰＵ５２は、ロボットアーム１８に内蔵されたサーボモータ２８に指令を送り、ロボットアーム１８を方向Ｄ１へ移動させる。これにより、ＣＰＵ５２は、ロボットアーム１８を物体から離れるように退避させる。
【００３５】
また、他の例として、ＣＰＵ５２は、ロボットアーム１８の位置指令値を記憶部５６に順次記憶していく。そして、ロボットアーム１８が物体に接触したときに、ＣＰＵ５２は、ステップＳ２でＹＥＳと判断した時点から直近に記憶された位置指令値から、時系列を遡って位置指令値を順次読み出す。
【００３６】
そして、ＣＰＵ５２は、順次読み出された位置指令に対応する位置にロボットアーム１８を順次移動させる。これにより、ＣＰＵ５２は、ロボットアーム１８を、物体と衝突する前の経路を辿るようにして、該物体から退避させることができる。
【００３７】
ステップＳ８において、ＣＰＵ５２は、ユーザまたは上位コントローラから、ロボット１２の作業指令を受け付けたか否かを判断する。ＣＰＵ５２は、ロボット１２の作業指令を受け付けた（すなわちＹＥＳ）と判断した場合、ステップＳ９へ進む。一方、ＣＰＵ５２は、ロボット１２の作業指令を受け付けていない（すなわちＮＯ）と判断した場合、図３に示すフローを終了する。
【００３８】
ステップＳ９において、ＣＰＵ５２は、サーボモータ２８に指令を送り、例えば、ロボットハンド２０によってワークを把持し、該ワークを運搬するといった作業を実行する。そして、ＣＰＵ５２は、ステップＳ８にてＮＯと判断するまで、ステップＳ１〜Ｓ９をループする。
【００３９】
上述したように、本実施形態においては、ＣＰＵ５２は、ロボット１２を停止させた後に、ロボット１２と物体（例えば部材Ｂまたは作業員Ｃ）とが継続して接触していると判断した場合にのみ、ロボット１２の退避動作を実行している。
【００４０】
この構成によれば、物体がロボット１２と瞬間的に接触しただけでロボット１２を退避させてしまうのを防止することができる。したがって、ロボット１２の無駄な退避動作を省略できるので、ロボット１２による作業効率を向上させることができる。
【００４１】
また、本実施形態によれば、近年需要が高まっている人協調型ロボットに適用した場合に、以下に述べる利点をもたらすことになる。この利点について、図１を用いて説明する。
【００４２】
作業員Ｃとロボット１２が、協働で作業を行う場合において、作業員Ｃが動作中のロボット１２を所望の位置で停止させ、次いで作業員Ｃがワークに所定の作業を行い、作業員Ｃの作業終了後に、ロボット１２によるワークの搬送等の作業を行いたい場合がある。
【００４３】
このような場合において、本実施形態において、作業員Ｃは、動作中のロボット１２（例えば、ロボットアーム１８またはロボットハンド２０）を手で叩き、ロボット１２に瞬間的な外力を与える。そうすると、ＣＰＵ５２は、上述のステップＳ２にて、ロボット１２に第１の閾値以上の外力が加えられたと判断し、ステップＳ３にて、ロボット１２を停止させる。
【００４４】
一方、作業員Ｃからロボット１２に加えられた外力は、瞬間的（すなわちインパルス）であるので、ロボット１２の停止後には、外力は検出されない。したがって、ステップＳ７のロボット退避動作は、実行されない。
【００４５】
これにより、作業員Ｃは、ロボット１２を叩くだけで、該ロボット１２を所望の位置で停止させることができる。この構成により、作業員Ｃは、ロボット１２との協働作業を円滑に行うことができる。
【００４６】
次に、図１および図４を参照して、本発明の他の実施形態に係るロボットシステム７０について説明する。なお、上述の実施形態と同様の要素には同じ符号を付し、詳細な説明を省略する。
【００４７】
ロボットシステム７０は、ロボット１２と、該ロボット１２を制御するロボット制御装置８０とを備える。ロボット制御装置８０は、ＣＰＵ８２、計時部５４、および記憶部５６を備える。
【００４８】
ＣＰＵ８２は、接触判断部５８、停止指令部６０、接触継続判断部８４、退避指令部６４、および積算値算出部８６としての機能を担う。なお、接触継続判断部８４および積算値算出部８６の機能については、後述する。
【００４９】
次に、図１、図４、および図５を参照して、ロボット１２の動作中にロボット１２と物体とが接触した場合における、ロボット制御装置８０によるロボット１２の制御方法について説明する。
【００５０】
なお、図５に示すフローにおいて、図３に示すフローと同様のステップには同じ符号を付し、詳細な説明を省略する。ステップＳ１１において、ＣＰＵ８２は、ステップＳ１にて周期的に取得している外力の積算値の算出を開始する。
【００５１】
具体的には、ＣＰＵ８２は、ステップＳ３にてロボット１２を停止させた時点ｔ１以降に力センサ３０から周期Ｔで取得する外力を積算し、算出した外力の積算値を記憶部５６へ記憶する。例えば、ステップＳ１１の開始後、力センサ３０から第ｎ周期目（すなわち、ｎＴ）に取得した外力をｆｎとすると、外力の積算値Σｆは、以下の式に従って算出される。
【００５２】
【数１】
0005937706.tif 000002
【００５３】
このように、本実施形態において、ＣＰＵ８２は、ステップＳ３にてロボット１２を停止させた時点ｔ１から、力センサ３０から取得する外力の積算値Σｆを算出する。したがって、ＣＰＵ８２は、時点ｔ１からの外力の積算値Σｆを算出する積算値算出部８６（図４）としての機能を担う。
【００５４】
ステップＳ１２において、ＣＰＵ８２は、ステップＳ１１にて算出している積算値が、予め定められた第３の閾値を超えたか否かを判断する。第３の閾値は、記憶部５６に予め記憶されている。
【００５５】
ＣＰＵ８２は、記憶部５６から、第３の閾値と、直近に記憶された積算値Σｆとを比較する。ＣＰＵ８２は、積算値Σｆが第３の閾値を超えた（すなわちＹＥＳ）と判断したときに、ステップＳ７へ進む。一方、ＣＰＵ８２は、積算値Σｆが第３の閾値を超えていない（すなわちＮＯ）と判断した場合、ステップＳ５へ戻る。
【００５６】
このように、本実施形態においては、ＣＰＵ８２は、時点ｔ１から時間ｔ３が経過するまでに積算値Σｆが第３の閾値を超えた場合に、ロボット１２の停止後もロボット１２と物体（例えば部材Ｂまたは作業員Ｃ）とが継続して接触しているものと判断する。したがって、ＣＰＵ８２は、ロボット１２が物体と継続して接触しているか否かを判断する接触継続判断部８４（図４）としての機能を担う。
【００５７】
本実施形態によれば、ＣＰＵ８２は、ロボット１２を停止させた後に、ロボット１２と物体（例えば部材Ｂまたは作業員Ｃ）とが継続して接触していると判断した場合にのみ、ロボット１２の退避動作を実行している。この構成によれば、ロボット１２の無駄な退避動作を省略できるので、ロボット１２による作業効率を向上させることができる。
【００５８】
また、本実施形態によれば、作業員Ｃは、ロボット１２を叩くだけで、該ロボット１２を所望の位置で停止させることができる。したがって、作業員Ｃは、ロボット１２との協働作業を円滑に行うことができる。
【００５９】
なお、図５のステップＳ１１において、ＣＰＵ８２は、外力の積算値Σｆの代わりに、外力の平均値を算出する平均値算出部としての機能を有してもよい。具体的には、ＣＰＵ８２は、外力の平均値ｆＡＶＥを以下の式に従って算出できる。
【００６０】
【数２】
0005937706.tif 000003
【００６１】
また、図５のステップＳ１１において、ＣＰＵ８２は、外力の積算値Σｆの代わりに、外力の標準偏差を算出する標準偏差算出部としての機能を有してもよい。具体的には、ＣＰＵ８２は、外力の標準偏差ｆＳＤを以下の式に従って算出できる。
【００６２】
【数３】
0005937706.tif 000004
【００６３】
この場合、記憶部５６は、ｆＡＶＥまたはｆＳＤに対応する閾値を予め記憶する。そして、ステップＳ１２において、ＣＰＵ８２は、算出された直近のｆＡＶＥまたはｆＳＤと、対応する閾値とを比較する。そして、ＣＰＵ８２は、ｆＡＶＥまたはｆＳＤが対応する閾値を超えたと判断した場合に、ロボット１２の停止後もロボット１２と物体（例えば部材Ｂまたは作業員Ｃ）とが継続して接触しているものと判断してもよい。
【００６４】
なお、上述の実施形態においては、計時部５４および記憶部５６が、ロボット制御装置５０、８０に組み込まれている場合について述べた。しかしながら、これに限らず、計時部５４および記憶部５６は、ロボット制御装置５０、８０の外部機器として設けられてもよい。
【００６５】
例えば、外部機器としての記憶部を、ネットワークを介してロボット制御装置に接続し、ロボット制御装置は、取得した外力や積算値といったデータを、ネットワークを介して記憶部に送信し、該記憶部に記憶させてもよい。
【００６６】
また、上述の実施形態においては、力センサ３０が歪みゲージを含む場合について述べた。しかしながら、これに限らず、力センサ３０は、レーザ変位計、近接センサ、オプトセンサ、または静電容量式変位計等を含んでもよい。ＣＰＵ５２、８２は、これらセンサからの出力値に基づいて、ロボット１２に加わる外力の大きさ、および方向を算出できる。
【００６７】
以上、発明の実施形態を通じて本発明を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。また、本発明の実施形態の中で説明されている特徴を組み合わせた形態も本発明の技術的範囲に含まれ得るが、これら特徴の組み合わせの全てが、発明の解決手段に必須であるとは限らない。さらに、上述の実施形態に、多様な変更または改良を加えることが可能であることも当業者に明らかである。
【００６８】
また、特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、工程、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００６９】
１０，７０    ロボットシステム
１２    ロボット
３０    力センサ
５０，８０    ロボット制御装置
５８    接触判断部
６０    停止指令部
６２，８４    接触継続判断部
６４    退避指令部
８６    積算値算出部
【要約】
【課題】従来、ロボットに不要な退避動作をさせてしまう場合があった。
【解決手段】ロボット制御装置５０は、センサ３０によって検出された外力に基づいて、ロボット１２が物体と接触したか否かを判断する接触判断部５８と、ロボット１２が物体と接触したと判断されたときに、ロボット１２を停止させる停止指令部６０と、ロボット１２を停止させた後に該ロボット１２が物体と継続して接触しているか否かを判断する接触継続判断部６２と、ロボット１２が物体と継続して接触していると判断されたときに、ロボット１２を物体から離れる方向へ退避させる退避指令部６４とを備える。
【選択図】図２【図１】
0005937706.tif 000005
【図２】
0005937706.tif 000006
【図３】
0005937706.tif 000007
【図４】
0005937706.tif 000008
【図５】
0005937706.tif 000009