(57)【要約】【課題】力センサに関する計算負荷を低減するロボット制御装置を得ること。【解決手段】ロボット制御装置１は、ロボットプログラム１１に基づいてロボット２の関節毎の角度指令値を生成する軌道生成部１４と、関節毎の角度指令値に各関節の角度が追従するように複数の関節を駆動するサーボ制御部１８と、サーボ制御部１８によって使用される関節毎の角度指令値を補正する補正量を力センサ３の検出値に基づいて演算する第１の力覚制御を実行する力覚制御部１７と、ロボットプログラム１１に基づいて力覚制御部１７に力覚動作を実行させたり停止させたりする切り替え部としてのプログラム実行部１３と、を備える。【選択図】図１
2016002642.tif 000002
【特許請求の範囲】
【請求項１】
手先に力センサが配設される、複数の関節を備えるロボットを制御するロボット制御装置であって、
ユーザプログラムを予め記憶する記憶部と、
前記ユーザプログラムに基づいて前記ロボットの関節毎の角度指令値を生成する軌道生成部と、
前記関節毎の角度指令値に各関節の角度が追従するように前記複数の関節を駆動するサーボ制御部と、
前記サーボ制御部によって使用される前記関節毎の角度指令値を補正する補正量を前記力センサの検出値に基づいて演算する第１の力覚動作を実行する力覚制御部と、
前記ユーザプログラムに基づいて前記力覚制御部に第１の力覚動作を実行させたり停止させたりする切り替え部と、
を備えることを特徴とするロボット制御装置。
【請求項２】
前記力覚制御部は、前記第１の力覚動作を停止した後、前記力センサの検出値と予め設定された値とが一致するか否かを判定し、双方の値が一致しないとき、エラー処理を実行し、双方の値が一致するとき、エラー処理を実行しない、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記力覚制御部は、前記第１の力覚動作を停止した後の予め設定された期間だけ、前記力センサの検出値が前記力センサを保護するための予め設定された数値範囲を逸脱しないように前記関節毎の角度指令値の補正量を演算する、第２の力覚動作を実行する、
ことを特徴とする請求項１または請求項２に記載のロボット制御装置。
【請求項４】
手先に力センサが配設される複数の関節を備えるロボットの、ロボット制御装置による制御方法であって、
ユーザプログラムに基づいて前記ロボットの関節毎の角度指令値を生成する第１ステップと、
前記関節毎の角度指令値に各関節の角度が追従するように前記複数の関節を駆動する第２ステップと、
を備え、
前記第１ステップは、
前記第２ステップにて使用される前記関節毎の角度指令値を前記力センサの検出値に基づいて補正する第３ステップと、
前記第３ステップの処理を開始したり停止したりする第４ステップと、
を含むことを特徴とする制御方法。
【請求項５】
前記第１ステップは、前記第３ステップの処理を停止した後、前記力センサの検出値と予め設定された値とが一致するか否かを判定し、双方の値が一致しないとき、エラー処理を実行し、双方の値が一致するとき、エラー処理を実行しない、第５ステップをさらに含む、
ことを特徴とする請求項４に記載の制御方法。
【請求項６】
前記第１ステップは、前記第３ステップの処理を停止した後の予め設定された期間だけ、前記力センサの検出値が前記力センサを保護するための予め設定された数値範囲を逸脱しないように前記関節毎の角度指令値を補正する第６ステップをさらに含む、
ことを特徴とする請求項４または請求項５に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、力センサを有するロボットを制御するロボット制御装置およびロボット制御装置によってロボットを制御する制御方法に関する。
【背景技術】
【０００２】
従来、産業用のロボットが使用される環境において、エンドエフェクタ（以降、手先ともいう）にかかる微少な力の検出が必要となる力覚動作を行うために、ロボットの手先に力センサが具備されることがある。力覚動作とは、例えば嵌め合い作業、位相合わせ作業、またはコンプライアンス制御を含む。力覚動作においては、ロボット制御装置は、力センサからの信号に基づいてロボットの動作を調整する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２２３１９０号公報
【特許文献２】特開２０１３−４３２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、力センサが常時、信号を出力する場合、ロボットの動作によって加速度または遠心力の影響により力センサの信号が過大となることで、誤ってエラーと判定されてしまう場合がある。これに対し、例えば特許文献１は、ロボットの動作毎に力センサの信号の予測値を逐次演算し、演算された予測値に基づいてエラー判定のためのしきい値を演算する技術を開示している。また、例えば特許文献２は、力センサにかかる外力のしきい値を動作毎に記憶しておき、記憶されているしきい値を力センサにかかる外力が超えたときにエラーと判定する技術を開示している。
【０００５】
一方、ロボット制御装置をできるだけ多機能にするために、個々の機能を実現するための計算負荷をできるだけ低減したいという要望がある。上記特許文献１、２の技術のように、しきい値の取得およびそのしきい値を用いたエラー判定を常に実行することは、ロボット制御装置にとって計算負荷が大きい。
【０００６】
本発明は、上記に鑑みてなされたものであって、力センサに関する計算負荷を低減したロボット制御装置および制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、手先に力センサが配設される、複数の関節を備えるロボットを制御するロボット制御装置であって、ユーザプログラムを予め記憶する記憶部と、前記ユーザプログラムに基づいて前記ロボットの関節毎の角度指令値を生成する軌道生成部と、前記関節毎の角度指令値に各関節の角度が追従するように前記複数の関節を駆動するサーボ制御部と、前記サーボ制御部によって使用される前記関節毎の角度指令値を補正する補正量を前記力センサの検出値に基づいて演算する第１の力覚動作を実行する力覚制御部と、前記ユーザプログラムに基づいて前記力覚制御部に第１の力覚動作を実行させたり停止させたりする切り替え部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、力センサの検出値をロボットの制御にフィードバックする力覚動作と力センサの検出値をロボットの制御にフィードバックしない通常動作とをユーザプログラムから切り替えることが可能であるので、力センサに関する計算負荷を低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１のロボット制御装置を示す図である。
【図２】図２は、力覚動作の一例を説明するための図である。
【図３】図３は、力覚動作の一例を説明するための図である。
【図４】図４は、力覚動作の一例を説明するための図である。
【図５】図５は、力覚動作の一例を説明するための図である。
【図６】図６は、力覚動作の一例を説明するための図である。
【図７】図７は、ロボット制御装置のハードウェア構成例を示す図である。
【図８】図８は、ロボット制御装置の実施の形態１の動作を説明するフローチャートである。
【図９】図９は、ロボット制御装置の実施の形態２の動作を説明するフローチャートである。
【図１０】図１０は、手先がピンを解放した後のロボットの動作の例を示す図である。
【図１１】図１１は、手先がピンを解放した後のロボットの動作の例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる実施の形態のロボット制御装置および制御方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、実施の形態１のロボット制御装置を示す図である。ロボット制御装置１は、ロボット２に接続されている。ロボット２の先端には、手先４が力センサ３を介して配設されている。手先４は、例えばワークを把持する機構を有する。力センサ３としては、例えば６軸力センサが採用される。力センサ３は、手先４に作用する力を検出することができる。
【００１２】
また、ロボット２は、複数の関節を備えており、各関節は夫々可動軸（図示せず）によって駆動される。また、各関節には、関節角度を検出する角度センサが夫々配設されている。ロボット制御装置１は、ロボット２に対し、各可動軸を駆動する駆動電流を供給する。また、ロボット制御装置１は、各角度センサが出力する角度センサ信号、および、力センサ３が出力する力センサ信号をロボット２から取得する。角度センサ信号は、関節角度の検出値を示し、力センサ信号は、力の検出値を示す。
【００１３】
ロボット制御装置１は、プログラム記憶部１２と、プログラム実行部１３と、軌道生成部１４と、外部入出力部１５と、センサ入力部１６と、力覚制御部１７と、サーボ制御部１８とを備えている。
【００１４】
プログラム記憶部１２は、ロボットプログラム１１を予め記憶する。ロボットプログラム１１は、作業に必要な手順が記述されたユーザプログラムである。特に、ロボットプログラム１１は、ロボット２の軌道を離散データで指令する記述を含んでいる。軌道を指令する各離散データ（以降、移動指令）は、例えば、手先４の位置を示すデータと姿勢を示すデータとを含む。また、ロボットプログラム１１は、例えば生産ラインにおいてロボット２と他の機械（以降、外部機器）とを同期させながら動かす場合において、外部機器に対して同期のためのデータを送信する指令または外部機器から同期のためのデータの受信を待機する指令が記述されてもよい。
【００１５】
また、ロボットプログラム１１は、力覚動作として移動指令を実行するか通常動作として移動指令を実行するかを指令することが可能に構成されている。力覚動作および通常動作の指令の形態は、特に限定されない。例えば、力覚動作および通常動作のうちのいずれの動作モードを指定する指令が定義されてもよい。また、力覚動作の開始（実行）の指令および力覚動作の終了（停止）の指令が定義され、力覚動作が開始する前および力覚動作が終了した後は、通常動作であると認識されるようにしてもよい。
【００１６】
なお、力覚動作とは、ここでは、力センサ信号をフィードバックしながらロボット２を制御する動作をいう。具体的には、力覚動作は、関節角度の指令値である角度指令値を力センサ信号に基づいて補正しながらロボット２を制御する動作である。例えば、嵌め合い作業、位相合わせ作業、およびコンプライアンス制御は、力覚動作によって実現する。例えば、ロボットプログラム１１は、力覚動作において、手先４に把持したワークを対象物に押しつける場合には、ワークをどのくらいの力で押しつけるかが指定可能である。また、例えば、ロボットプログラム１１は、力覚動作において、手先４に把持したワークにかかる力のしきい値が指定可能である。通常動作とは、力センサ信号に基づく補正をしない角度指令値を用いてロボット２を制御する動作をいう。
【００１７】
センサ入力部１６は、逐次変化する力センサ信号を力センサ３から逐次取得する。また、センサ入力部１６は、関節毎の逐次変化する角度センサ信号をロボット２から逐次取得する。
【００１８】
プログラム実行部１３は、ロボットプログラム１１をプログラム記憶部１２から読み出し、解釈する。そして、プログラム実行部１３は、ロボットプログラム１１に記述されている手順にしたがって、各移動指令を軌道生成部１４に逐次供給する。例えば、プログラム実行部１３は、実行中の移動指令を認識しており、その移動指令の実行が完了したとき、次の移動指令を軌道生成部１４に供給する。また、プログラム実行部１３は、ロボットプログラム１１に記述されている手順にしたがって、力覚制御部１７に力覚動作の開始を指令したり、通常動作の開始を指令したりする。即ち、プログラム実行部１３は、ロボットプログラム１１に基づいて力覚制御部１７に力覚動作を実行させたり停止させたりする切り替え部として機能することができる。
【００１９】
また、プログラム実行部１３は、外部機器とのデータの送受信を、外部入出力部１５を介して実行することができる。
【００２０】
軌道生成部１４は、手先４がプログラム実行部１３から供給される移動指令が示す位置に至るまでの軌道を補間によって演算し、演算した軌道に沿って手先４が移動するように演算周期毎の角度指令値を生成する。角度指令値が生成される時間的および空間的な間隔は、各位置指令間の間隔よりも小さい。なお、軌道生成部１４は、角度指令値を関節（すなわち可動軸）毎に生成する。以降、角度指令値と表記した場合には、関節毎の角度指令値を指すものとする。軌道生成部１４は、演算周期毎に生成した角度指令値を、逐次、サーボ制御部１８に供給する。
【００２１】
力覚制御部１７は、力覚動作の実行時においては、センサ入力部１６から力センサ信号を取得し、軌道生成部１４から角度指令値を取得し、力センサ信号に基づいて角度指令値の補正量を演算する。そして、力覚制御部１７は、演算した補正量を軌道生成部１４に供給する。力覚制御部１７は、力センサ信号および角度指令値の取得と、角度指令値の補正量の演算および供給とを、演算周期毎に実行する。軌道生成部１４は、力覚動作の実行時においては、力覚制御部１７から供給された補正量を用いて角度指令値を補正し、補正後の角度指令値をサーボ制御部１８に供給する。即ち、力覚制御部１７は、サーボ制御部１８が使用する関節毎の角度指令値を補正する補正量を力センサ３の検出値に基づいて演算することができる。
【００２２】
また、力覚制御部１７は、通常動作の実行時においては、力センサ信号の取得、角度指令値の取得、および補正量の演算を実行しない。軌道生成部１４は、通常動作の実行時においては、演算した角度指令値を補正することなくサーボ制御部１８に供給する。
【００２３】
また、力覚制御部１７は、力覚動作から通常動作に移行する時、力センサ信号に基づいてエラー判定を行う。力覚制御部１７は、エラーが発生したと判定した場合には、エラー処理を実行する。ここでは、力覚制御部１７は、エラー処理として、サーボ制御部１８に停止指令を供給する。
【００２４】
サーボ制御部１８は、例えばサーボアンプである。サーボ制御部１８は、センサ入力部１６から角度センサ信号を取得し、各関節の角度センサ信号が示す関節角度が軌道生成部１４から供給される角度指令値に追従するように関節毎の駆動電流を生成し、出力する。サーボ制御部１８は、力覚制御部１７から停止指令を受け取ったとき、駆動電流の出力を停止する。
【００２５】
外部入出力部１５は、外部機器からの入力を受け付けたり、外部機器にデータを出力したりする。
【００２６】
図２〜図６は、力覚動作の一例を説明するための図である。ここでは、嵌め合い作業を説明する。図２に示すように、手先４は、爪５を用いてワークとしてのピン６を把持している。この例における嵌め合い作業によれば、ピン６は、穴７に嵌め込まれる。穴７は、嵌め合い作業が行いやすいように、穴７の入り口がテーパ状に加工されている。
【００２７】
ピン６が穴７に向けて移動せしめられても穴７の入り口の位置とピン６の位置とが一致しなかったりロボット２がピン６を押し込む方向が穴７の挿入方向と異なったりする場合、例えば図３に示すようにピン６が穴７の入り口のテーパ部に衝突する。衝突時には、ピン６はテーパ部からの反力（矢印３１）をうける。力覚動作においては、この反力は、力センサ３によって検出される。力センサ３は、多軸の力センサである場合には、反力は、その大きさだけでなく方向まで判明する。なお、図３においては、ピン６を移動する方向と穴７においてピン６を受け入れ可能な方向とがずれている。
【００２８】
ピン６がテーパ部に衝突後、ピン６がテーパ部からうける反力の大きさおよび方向に基づいて、反力の大きさおよび方向に基づいて手先４の位置および方向を修正する制御が行われる。例えば、図４に示す矢印３２，３３のように位置および方向が修正される。この制御によって、図５に示すようにピン６が嵌め込み完了位置まで移動せしめられる。その後、図６に示すように、手先４がピン６を解放する。ピン６を解放するとは、手先４がピン６の把持をやめることである。
【００２９】
このように、力センサ３の検出値に基づいて関節毎の角度指令値の補正が行われることにより、嵌め合い作業が実現される。
【００３０】
図７は、ロボット制御装置１のハードウェア構成例を示す図である。ロボット制御装置１は、コンピュータとしてのハードウェア構成を備えている。具体的には、ロボット制御装置１は、演算装置２１、メインメモリ２２、不揮発性メモリ２３、Ｉ／Ｏインタフェース２４、バス２５、およびサーボ制御部１８を備えている。バス２５は、演算装置２１、メインメモリ２２、不揮発性メモリ２３、Ｉ／Ｏインタフェース２４、およびサーボ制御部１８を相互に接続する。
【００３１】
演算装置２１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。メインメモリ２２は、不揮発性メモリ２３よりも高速なアクセスが可能なメモリである。メインメモリ２２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）によって構成される。
【００３２】
不揮発性メモリ２３は、各種データの保存領域として用いられるメモリである。不揮発性メモリ２３は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、光ディスク、磁気ディスク、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。Ｉ／Ｏインタフェース２４は、ロボット２から角度センサ信号および力センサ信号を取得したり、外部機器とロボット制御装置１との間を接続したりするためのインタフェース装置である。
【００３３】
また、不揮発性メモリ２３は、ファームウェアプログラム２６を予め記憶する記録媒体に該当する。ファームウェアプログラム２６は、ロボットプログラム１１を実行するための環境を提供するシステムプログラムであり、実施の形態１の制御方法を実現するためのコンピュータプログラムである。また、不揮発性メモリ２３は、ファームウェアプログラム２６のほかに、ロボットプログラム１１を予め記憶する。
【００３４】
演算装置２１は、ファームウェアプログラム２６を不揮発性メモリ２３からメインメモリ２２にロードする。そして、演算装置２１は、メインメモリ２２にロードされたファームウェアプログラム２６に基づいて、プログラム実行部１３、軌道生成部１４、外部入出力部１５、センサ入力部１６、および力覚制御部１７として機能する。プログラム記憶部１２は、メインメモリ２２、不揮発性メモリ２３、または両者の組み合わせによって実現する。
【００３５】
図８は、ロボット制御装置１の実施の形態１の動作を説明するフローチャートである。ここでは、ロボットプログラム１１には、力覚動作と通常動作とをこの順番で実行する手順が記述されているものとする。
【００３６】
まず、力覚制御部１７は、力センサ３の初期化を実行し、初期化時の力センサ信号の値を力センサ信号の初期値として記憶する（Ｓ１）。手先４がワークを把持していない場合であっても、手先４の重さによって力センサ３はゼロ値以外の力を検出する。さらに、このときに検出する値は、手先４の姿勢によっても異なる。Ｓ１においては、手先４がワークを把持しておらず、かつ、手先４が基準の姿勢をとっているときに、力覚制御部１７はセンサ入力部１６を介して力センサ信号を取得する。
【００３７】
Ｓ１の処理に続いて、ロボット制御装置１は、ロボットプログラム１１によって指令された動作を開始する（Ｓ２）。ここでは、最初に力覚動作が実行されることとしているので、ロボット制御装置１は、まず、力覚動作を実行する（Ｓ３）。
【００３８】
Ｓ３の処理は、プログラム実行部１３から力覚制御部１７に対して力覚動作の開始が指令されて開始される。Ｓ３の処理は、具体的には次のとおりである。すなわち、Ｓ３の処理においては、軌道生成部１４は、移動指令に基づいて角度指令値の演算を実行する。力覚制御部１７は、力センサ信号の取得と角度指令値の取得とを実行し、取得した角度指令値の補正量を、取得した力センサ信号に基づいて演算する。演算された補正量は、軌道生成部１４によって取得され、軌道生成部１４は、演算した角度指令値を取得した補正量を用いて補正する。そして、軌道生成部１４は、補正後の角度指令値をサーボ制御部１８に供給する。力覚制御部１７による補正量の演算と、軌道生成部１４による角度指令値の演算、補正、および供給とは、演算周期毎に実行される。
【００３９】
プログラム実行部１３から力覚制御部１７に対して力覚動作の停止が指令されると（Ｓ４）、力覚制御部１７は、力センサ信号の値がＳ１の処理において記憶した初期値と一致するか否かを判定する（Ｓ５）。Ｓ５の処理は、手先４が基準の姿勢に移動せしめられてから実行されてもよい。力センサ信号の値が初期値と一致しない場合（Ｓ５、Ｎｏ）、力覚制御部１７は、エラー処理を実行する（Ｓ６）。ここでは、力覚制御部１７は、エラー処理として、サーボ制御部１８に停止指令を供給する。サーボ制御部１８は、停止指令をうけとったとき、駆動電流の出力を停止する。これにより、例えばユーザがロボットプログラム１１を作成したとき、誤って力覚動作の後にワークの解放の指令を記載しなかった場合、手先４がワークを把持したまま次のロボット２の動作が実行されることが防止される。
【００４０】
一方、力センサ信号の値が初期値と一致する場合（Ｓ５、Ｙｅｓ）、ロボット制御装置１は、通常動作を実行する（Ｓ７）。Ｓ７の処理においては、力覚制御部１７は、力センサ信号の取得、角度指令値の取得および補正量の演算を終了する。そして、軌道生成部１４は、演算した角度指令値を補正することなくサーボ制御部１８に供給する。
【００４１】
Ｓ７の処理の後、ロボット制御装置１は動作を終了する。
【００４２】
このように、実施の形態１によれば、ロボット制御装置１は、ロボットプログラム１１に基づいてロボット２の関節毎の角度指令値を生成する軌道生成部１４と、関節毎の角度指令値に各関節の角度が追従するように複数の関節を駆動するサーボ制御部１８と、サーボ制御部１８によって使用される関節毎の角度指令値を補正する補正量を力センサ３の検出値に基づいて演算する第１の力覚制御を実行する力覚制御部１７と、ロボットプログラム１１に基づいて力覚制御部１７に力覚動作を実行させたり停止させたりする切り替え部としてのプログラム実行部１３と、を備える。これにより、ロボット制御装置１は力センサ信号をロボット２の制御にフィードバックする力覚動作と力センサ信号をロボット２の制御にフィードバックしない通常動作とを切り替えることが可能であるので、力センサ信号を常にフィードバックする場合に比べて力センサ３に関する計算負荷を低減することが可能となる。
【００４３】
また、力覚制御部１７は、力覚動作を停止した後、力センサ信号の値とＳ１の処理により予め設定された初期値とが一致するか否かを判定し、双方の値が一致しないとき、エラー処理を実行し、双方の値が一致するとき、エラー処理を実行しない。これにより、例えば手先４がワークを把持したまま次の動作が開始されるようなエラーが検出されるので、ロボット２の破損の可能性を低減することが可能となる。
【００４４】
実施の形態２．
図９は、ロボット制御装置１の実施の形態２の動作を説明するフローチャートである。実施の形態２においては、Ｓ１１〜Ｓ１３の夫々において、Ｓ１〜Ｓ３と同様の処理が実行される。
【００４５】
プログラム実行部１３から力覚制御部１７に対して力覚動作の停止が指令されると（Ｓ１４）、力覚制御部１７は、力センサ信号の値が許容範囲を逸脱したか否かを判定する（Ｓ１５）。力センサ信号の値が許容範囲を逸脱していない場合（Ｓ１５、Ｎｏ）、力覚制御部１７は、停止が指令されてから予め設定された判定期間が経過したか否かを判定する（Ｓ１６）。なお、許容範囲は、力センサ３を破損しないための数値範囲であって、予め設定される。許容範囲は、絶対値のしきい値によって定義されてもよい。許容範囲は、ロボットプログラム１１から設定されてもよい。許容範囲の境界値は、力センサ３が破損する限界の値から所定の値だけオフセットされたものであってもよい。設定期間が経過していない場合（Ｓ１６、Ｎｏ）、力覚制御部１７は、Ｓ１５の処理を再び実行する。
【００４６】
力センサ信号の値が許容範囲から逸脱した場合（Ｓ１５、Ｙｅｓ）、ロボット制御装置１は、力回避動作を実行する（Ｓ１７）。力回避動作とは、サーボ制御部１８に供給される角度指令値を、力センサ信号の値が許容範囲内となるように補正する動作である。例えば、Ｓ１３の力覚動作と同様に、力回避動作においても、補正量は力覚制御部１７において演算され、角度指令値の補正は軌道生成部１４において実行される。Ｓ１７の処理の後、力覚制御部１７は、Ｓ１６の処理を実行する。
【００４７】
設定期間が経過した場合（Ｓ１６、Ｙｅｓ）、Ｓ５〜Ｓ７の処理と夫々同じ処理がＳ１８〜Ｓ２０において実行され、動作が終了する。
【００４８】
図１０および図１１は、手先４がピン６を解放した後のロボット２の動作の例を示す図である。手先４がピン６を解放した後、通常は、図１０に示すように、手先４がピン６を把持できない位置まで離脱され、その後、手先４が次の動作の開始位置まで移動せしめられる。ここで、ロボットプログラム１１の記述ミスなどにより手先４の離脱が行われないで手先４が次の動作の開始位置まで移動せしめられる場合、図１１に示すように、手先４がピン６と衝突する。そして、そのまま移動が実行されると、力センサ３が破損する。ロボットプログラム１１から指令された力覚動作（Ｓ１３）が終了した後に、サーボ制御部１８に供給される角度指令値を力センサ信号の値が許容範囲内となるように補正する第２の力覚動作が自動で実行されることにより、例え手先４がピン６と衝突したとしても、衝突位置において手先４が停止せしめられることによって力センサ３の破損を防止することができる。
【００４９】
このように、実施の形態２によれば、力覚制御部１７は、ロボットプログラム１１から力覚動作の終了が指令された後の予め設定された期間だけ、力センサ信号の値が力センサ３を破損から保護するための予め設定された数値範囲を逸脱しないように角度指令値の補正量を演算するので、ロボットプログラム１１の記述ミスにより力センサ３が破損することを防止することが可能となる。
【産業上の利用可能性】
【００５０】
以上のように、本発明にかかるロボット制御装置および制御方法は、力センサを備えたロボットを制御するロボット制御装置および制御方法に適用して好適である。
【符号の説明】
【００５１】
１  ロボット制御装置、２  ロボット、３  力センサ、４  手先、５  爪、６  ピン、７  穴、１１  ロボットプログラム、１２  プログラム記憶部、１３  プログラム実行部、１４  軌道生成部、１５  外部入出力部、１６  センサ入力部、１７  力覚制御部、１８  サーボ制御部、２１  演算装置、２２  メインメモリ、２３  不揮発性メモリ、２４  Ｉ／Ｏインタフェース、２５  バス、２６  ファームウェアプログラム、３１，３２，３３  矢印。
【図１】
2016002642.tif 000003
【図２】
2016002642.tif 000004
【図３】
2016002642.tif 000005
【図４】
2016002642.tif 000006
【図５】
2016002642.tif 000007
【図６】
2016002642.tif 000008
【図７】
2016002642.tif 000009
【図８】
2016002642.tif 000010
【図９】
2016002642.tif 000011
【図１０】
2016002642.tif 000012
【図１１】
2016002642.tif 000013