(57)【特許請求の範囲】
【請求項１】
複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、
前記ロボットの先端部に作用させた力を計測する力計測部と、
前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、
前記ロボットを移動させる指令を出力する操作指令部と、
前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、
前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向をもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、
前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置。
【請求項２】
複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、
前記ロボットの先端部に作用させた力を計測する力計測部と、
前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、
前記ロボットを移動させる指令を出力する操作指令部と、
前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、
前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸と前記ロボットの先端部との位置関係をもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、
前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置。
【請求項３】
複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、
前記ロボットの先端部に作用させた力を計測する力計測部と、
前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、
前記ロボットを移動させる指令を出力する操作指令部と、
前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、
前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向、および、前記操作軸と前記ロボットの先端部との位置関係の内の少なくとも一方と、所定の優先順位とをもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、
前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置。
【請求項４】
２つ以上の回転軸を含む複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、
前記ロボットの先端部に作用させた力を計測する力計測部と、
前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、
前記ロボットを移動させる指令を出力する操作指令部と、
前記複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、
前記操作軸設定部は、前記複数の軸の内、前記複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を前記操作軸として設定し、
前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置。
【請求項５】
２つ以上の回転軸を含む複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、
前記ロボットの先端部に作用させた力を計測する力計測部と、
前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、
前記ロボットを移動させる指令を出力する操作指令部と、
前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、
前記操作軸設定部は、前記複数の軸の内、前記複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を前記操作軸として設定し、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向、前記操作軸と前記ロボットの先端部との位置関係、および、所定の優先順位の内、少なくとも１つをもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、
前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置。
【請求項６】
請求項１〜５のいずれか１項に記載のロボット制御装置と前記ロボットとを含むロボットシステム。
【請求項７】
前記ロボットシステムは、前記ロボット制御装置に設定を入力する教示操作装置を備え、
前記操作軸設定部は、前記教示操作装置からの入力をもとに前記操作軸を設定し、
前記教示操作装置は、前記操作軸として設定可能な軸の内、操作軸とする軸が組み合わされた選択肢から選択して入力する、請求項６に記載のロボットシステム。
【請求項８】
前記ロボットシステムは、前記ロボット制御装置に設定を入力する教示操作装置を備え、
前記操作軸設定部は、前記教示操作装置からの入力をもとに前記操作軸を設定し、
前記教示操作装置は、前記複数の軸の内、前記操作軸として選択可能な軸を示し、選択された軸をもとに、前記選択された軸以外の軸において、前記操作軸として前記選択された軸と同時に選択可能であることと、前記選択された軸と同時に選択可能でないこととの少なくとも一方を表示する、請求項６に記載のロボットシステム。
【請求項９】
請求項１〜３および５のいずれか１項に記載のロボット制御装置と前記ロボットとを含むロボットシステムであって、
前記ロボットシステムは表示装置を備え、
前記表示装置は、前記操作軸設定部が前記操作軸を、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定するときの設定条件を表示する、ロボットシステム。
【請求項１０】
前記教示操作装置は、前記ロボットの現在の軸の位置をもとに、前記複数の軸の内の回転軸の回転中心線から、前記ロボットの先端部までの最短距離が所定の閾値以下であるときに、前記回転軸の回転中心線の付近に前記ロボットの先端部が存在することを示すか、または、前記操作軸として該軸を含む軸の設定を設定可能としないことを示す、請求項７または８に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに作用する力にもとづいて、ロボットを移動させるロボット制御装置と、該ロボットおよび該ロボット制御装置を含むロボットシステムに関する。
【背景技術】
【０００２】
ロボットに力を作用させることにより、ロボットを移動させるロボットの操作方法や、ロボットを移動させて位置を教示する方法として、ダイレクトティーチが知られている。これを用いて、ロボットに対して所望の移動方向に力を作用させて直接的に誘導することによって、ロボットを直交座標系上における所望の位置および／または姿勢に移動させることができる。
【０００３】
これに関連する技術として、特許文献１には、ロボットの腕の先端に取付けた力検出器の手動操作部を操作したとき、力検出器より発生する信号をもとに、ロボットの腕の先端の位置、姿勢を移動させる方法が開示されている。
【０００４】
また特許文献２には、ロボットに設けた力センサで、手先効果器に人為的に加えた力を検出し、この検出で得られた力信号を用いてロボットアームの動作を制御する際、操作方向設定手段で設定された方向にのみロボットアームを誘導するロボットの直接教示装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５６−８５１０６号公報
【特許文献２】特開平０６―２５０７２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の方法は、力に応じて、ロボットの先端部の直交座標系上での位置および／または姿勢を移動させることができるが、ダイレクトティーチ中に、各軸を所望の位置に移動させることはできない。
【０００７】
特許文献２に記載の装置では、ダイレクトティーチによりロボットを移動させるとき、その移動方向を制限して、制限した方向にのみ移動させることによって、操作性の向上を実現している。この制限する方向は、ロボットの先端のデカルト座標系上での位置および／または姿勢に関する方向であって、ダイレクトティーチ中に、各軸の制御に切り替え、ある所望の軸だけ動かすようにするなどの、駆動する軸の制限に関する方法などは提案されていない。
【０００８】
そこで本発明は、ロボットの先端部に力を作用させて、ロボットの先端部の直交座標系上での位置および／または姿勢を変更する際に、移動が困難な位置に移動させることができ、さらに、特別な入力装置などを用いることなく、移動方法の切り替えの入力作業をおこなう必要もなく、軸を所望の位置に簡易に移動させることができるロボット制御装置と、該ロボット制御装置および該ロボットを含むロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本願第１の発明は、複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、前記ロボットの先端部に作用させた力を計測する力計測部と、前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、前記ロボットを移動させる指令を出力する操作指令部と、前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向をもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置を提供する。
【００１０】
本願第２の発明は、複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、前記ロボットの先端部に作用させた力を計測する力計測部と、前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、前記ロボットを移動させる指令を出力する操作指令部と、前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸と前記ロボットの先端部との位置関係をもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置を提供する。
【００１１】
本願第３の発明は、複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、前記ロボットの先端部に作用させた力を計測する力計測部と、前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、前記ロボットを移動させる指令を出力する操作指令部と、前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる１つ又は２つ以上の軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、前記操作軸設定部は、前記操作軸が１つであるときに、該操作軸を力に応じて移動することが許可された操作軸として設定し、前記操作軸が２つ以上であるときに、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向、および、前記操作軸と前記ロボットの先端部との位置関係の内の少なくとも一方と、所定の優先順位とをもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置を提供する。
【００１２】
本願第４の発明は、２つ以上の回転軸を含む複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、前記ロボットの先端部に作用させた力を計測する力計測部と、前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、前記ロボットを移動させる指令を出力する操作指令部と、前記複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、前記操作軸設定部は、前記複数の軸の内、前記複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を前記操作軸として設定し、前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置を提供する。
【００１３】
本願第５の発明は、２つ以上の回転軸を含む複数の軸から成るロボットに作用させた力にもとづいて、前記ロボットを移動させるロボット制御装置において、前記ロボットの先端部に作用させた力を計測する力計測部と、前記力計測部が計測した力をもとに、前記ロボットの各軸の位置の移動操作をする操作力を算出する操作力算出部と、前記ロボットを移動させる指令を出力する操作指令部と、前記複数の軸の内、力に応じて移動することが許可されているときに力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する操作軸設定部と、を備え、前記操作軸設定部は、前記複数の軸の内、前記複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を前記操作軸として設定し、移動操作の状況に応じて、前記操作軸に対する前記力計測部が計測した力の方向、前記操作軸と前記ロボットの先端部との位置関係、および、所定の優先順位の内、少なくとも１つをもとに、前記操作軸とした軸の各々に対して、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定し、前記操作指令部は、前記操作軸設定部の設定、および、前記操作力算出部が算出した操作力にもとづいて、前記操作軸の位置を移動させる操作指令を出力する、ロボット制御装置を提供する。
【００１４】
本願第６の発明は、第１〜第５のいずれか１つの発明に係るロボット制御装置と前記ロボットとを含むロボットシステムを提供する。
【００１５】
本願第７の発明は、第６の発明において、前記ロボットシステムは、前記ロボット制御装置に設定を入力する教示操作装置を備え、前記操作軸設定部は、前記教示操作装置からの入力をもとに前記操作軸を設定し、前記教示操作装置は、前記操作軸として設定可能な軸の内、操作軸とする軸が組み合わされた選択肢から選択して入力する、ロボットシステムを提供する。
【００１６】
本願第８の発明は、第６の発明において、前記ロボットシステムは、前記ロボット制御装置に設定を入力する教示操作装置を備え、前記操作軸設定部は、前記教示操作装置からの入力をもとに前記操作軸を設定し、前記教示操作装置は、前記複数の軸の内、前記操作軸として選択可能な軸を示し、選択された軸をもとに、前記選択された軸以外の軸において、前記操作軸として前記選択された軸と同時に選択可能であることと、前記選択された軸と同時に選択可能でないこととの少なくとも一方を表示する、ロボットシステムを提供する。
【００１７】
本願第９の発明は、第１〜第３および第５のいずれか１つの発明に係るロボット制御装置と前記ロボットとを含むロボットシステムであって、前記ロボットシステムは表示装置を備え、前記表示装置は、前記操作軸設定部が前記操作軸を、力に応じて移動することが許可された操作軸か、力が作用していても移動させない操作軸のいずれとするかを設定するときの設定条件を表示する、ロボットシステムを提供する。
【００１８】
本願第１０の発明は、第７または第８の発明において、前記教示操作装置は、前記ロボットの現在の軸の位置をもとに、前記複数の軸の内の回転軸の回転中心線から、前記ロボットの先端部までの最短距離が所定の閾値以下であるときに、前記回転軸の回転中心線の付近に前記ロボットの先端部が存在することを示すか、または、前記操作軸として該軸を含む軸の設定を設定可能としないことを示す、ロボットシステムを提供する。
【発明の効果】
【００１９】
本発明によれば、ロボットの先端部に力を作用させることによって、ロボットを移動させる操作方法において、特別な入力装置などを用いることなく、また、移動方法の切り替えの入力作業をおこなうことなく、所望とする軸の位置を、より簡易に移動させることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係るロボット制御装置によって制御されるロボットを具備するロボットシステムの概略構成を示す図である。
【図２】本発明の一実施形態に係るロボット制御装置の構成を機能的に示す図である。
【図３】本発明の一実施形態に係るロボット制御装置による処理の過程を示すフローチャートである。
【図４】操作力算出部によって操作力を算出する方法の一例を説明するための図である。
【図５】操作力算出部によって操作力を算出する方法の一例を説明するための図である。
【図６】操作軸に対して、移動させる操作軸とするか否かを、判定、設定する方法の一例を説明するための図である。
【図７】操作軸に対して、移動させる操作軸とするか否かを、判定、設定する方法の一例を説明するための図である。
【図８】操作軸に対して、移動させる操作軸とするか否かを、判定、設定する方法の一例を説明するための図である。
【図９】本発明の一実施形態に係るロボット制御装置による処理の過程を示すフローチャートである。
【図１０】本発明の一実施形態に係るロボット制御装置による処理の過程を示すフローチャートである。
【図１１】本発明の一実施形態に係るロボット制御装置によって制御されるロボットを具備するロボットシステムにおける、教示操作装置の取りつけ位置の一例を示す図である。
【図１２】本発明の一実施形態に係るロボット制御装置によって制御されるロボットを具備するロボットシステムにおける、教示操作装置の取りつけ位置の一例を示す図である。
【図１３】本発明の一実施形態に係るロボット制御装置に設定を入力する教示操作装置に表示する画面の一例を示す図である。
【図１４】本発明の一実施形態に係るロボット制御装置に設定を入力する教示操作装置に表示する画面の一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。なお理解を容易にするために、図面での縮尺は適宜変更している。
【００２２】
本願明細書において、「力」とは、特に断らない限り、力の並進方向成分および力のモーメント成分を含むものとし、「位置および／または姿勢」とは、位置および姿勢の少なくとも一方を含むものとする。また、「軸」とは、ロボットを構成するリンクとリンクとをつなぐ関節部分であり、リンクとリンクとの位置関係や角度関係を変える部分とする。例えば、軸の位置（回転軸の場合の位置は、角度とする）を変えることによって、リンクとリンクとの位置関係を変えることができ、ロボットの先端部の位置および／または姿勢を変えることができる。なお、軸とする部分とは異なる箇所に、軸の位置を移動させるアクチュエータを配置してもよい。さらに、「力制御ゲイン」とは、作用する力に応じてロボットを移動させる力制御において、作用する力の大きさをもとに、制御周期毎の、直交座標系上のロボットの先端部の位置および／または姿勢や、ロボットの各軸の位置などの移動量を求めるための係数とする。
【００２３】
また、ロボットの軸の回転中心線回りに作用させる力、または、ロボットの軸の回転中心線回りにかかる力とは、ロボットの軸が回転軸の場合であって、座標系の１つの軸がロボットの軸の回転中心線と一致するように、ロボットの軸に対して座標系を設定するとき、その座標系上で、ロボットの軸の回転中心線と直交する平面、かつ、原点がロボットの軸の回転中心線とその平面との交点である、平面において存在する並進方向の力、または、ロボットの軸の回転中心線回りに作用する力のモーメントとする。
【００２４】
図１は、本発明の一実施形態に係るロボット制御装置１０と、ロボット制御装置１０によって制御されるロボット５０を具備するロボットシステム１１の構成例を示す概略図である。ロボット制御装置１０は、所定の制御周期毎にロボット５０の各軸の位置を制御するように構成されている。
【００２５】
ロボットシステム１１では、操作者６０がロボット５０の先端部５８に力（外力）を作用させたとき、ロボット制御装置１０は、力計測部２１（図２参照）が計測したロボット５０の先端部５８に作用する力、設定されたデータ、およびロボット５０の位置データなどにもとづいて、ロボット５０の各軸を移動させるアクチュエータを制御して、ロボット５０を構成する軸の位置を変え、ロボット５０を移動させる。またロボット制御装置１０は、演算処理装置、ＲＯＭ、ＲＡＭなどを含むハードウェア構成を有しており、後述する種々の機能を実行する。
【００２６】
以下、図１を参照しつつ、ロボット５０の構造をより具体的に説明する。図１の実施形態では、ロボット５０は、６軸構成の垂直多関節型ロボットであるが、各軸の位置が制御可能、また、直交位置が制御可能なロボットであれば、前記構造を有する任意の公知のロボットにも同様に適用可能である。また本実施形態では、６つの軸はいずれも回転軸であるが、直動軸を含んでも構わない。
【００２７】
ロボット５０は６つの軸、すなわち、ロボット５０の台座５９に近い側から順に、１番目の軸をＪ１軸５１、２番目の軸をＪ２軸５２、３番目の軸をＪ３軸５３、４番目の軸をＪ４軸５４、５番目の軸をＪ５軸５５、６番目の軸をＪ６軸５６、とする軸を有する。Ｊ１軸５１、Ｊ４軸５４、Ｊ６軸５６は、図面上で、軸と軸をつなぐ、リンク回りに回転する（すなわちこの軸位置では紙面に平行な）回転軸Ｒ１を有し、Ｊ２軸５２、Ｊ３軸５３、Ｊ５軸５５は、図面上で、軸と軸をつなぐ、リンクとは直交する方向回りに回転する（すなわちこの軸位置では紙面に垂直な）回転軸Ｒ２を有する。なお、図１は、ロボット５０の軸の構成を表すための簡易的な説明図である。また、各軸の原点を、各軸に設定した座標系の原点でありかつリンクとリンクとが接続される点として定義すると、各軸の原点の位置は、空間に設定した座標系（以降、基準座標系とも称する）上の位置として表される。図１の構成では、Ｊ１軸５１とＪ２軸５２の軸の原点は同じ位置にあり、Ｊ３軸５３とＪ４軸５４の原点は同じ位置にあり、Ｊ５軸５５とＪ６軸５６の原点は同じ位置にあるとする。
【００２８】
本実施形態では、回転軸に対して当該軸の位置を移動させる、と述べる場合、当該軸の位置とは回転軸の回転角度であり、「軸の位置を移動させる」とは当該回転軸を回転させて位置を変えることを意味する。また、「軸の原点の位置」とは、空間に対して設定した座標系（基準座標系）上の、各軸に設定した座標系の原点の位置を表すものとする。また、基準座標系とは、空間に対して固定した直交座標系上で、ロボット５０の先端部５８やフランジ部５７（ロボット５０に対する先端部５８の取りつけ部位）、また各軸に設定した座標系などの、位置および／または姿勢を表すための座標系とする。
【００２９】
また、空間に対して設定した基準座標系上の、ロボット５０の位置および／または姿勢を表すため、ロボット５０に対して設定した座標系をツール座標系とし、ツール座標系の原点であり、かつ、並進移動させる点または回転移動させるときの中心点を制御点とする。さらに、基準座標系に平行に、制御点に対して設定した座標系を制御座標系とする。なお、制御点の位置は、ロボット５０に対して設定する位置であれば、任意の位置であって構わない。
【００３０】
ロボット５０の先端部５８は、ロボット５０の台座５９から最も遠い軸（ここではＪ６軸５６）の先端側（ロボット５０のフランジ部５７）に取りつけられている物体が存在する部分である。ロボット５０の先端部５８には、図示しないが、６軸の力センサが取りつけられている。ロボット制御装置１０は、所定時間毎に検出された力センサの出力をもとに、力計測部２１によって、操作者がロボット５０の先端部５８に作用させた力を計測する。
【００３１】
力計測部２１は、ロボット５０の先端部５８における、力を計測する点に原点がある座標系を設定して、ロボット５０の先端部５８に作用させた力として、その座標系上の、力の並進方向の成分Ｆおよび力のモーメント成分Ｍを計測する。以下、この座標系を力計測座標系とし、力計測座標系の原点を力計測点とする。このとき、ロボット５０の先端部５８に設定した座標系のＸ軸、Ｙ軸、Ｚ軸の力の並進方向成分をそれぞれＦｘ、Ｆｙ、Ｆｚと表すとともに、Ｘ軸、Ｙ軸、Ｚ軸回りで検出される力のモーメント成分をそれぞれＭｘ、Ｍｙ、Ｍｚと表す。
【００３２】
ここで、力計測点は、操作者が力を作用させる作用点、または、力センサに設定したセンサ座標系の原点、センサ座標系の軸上の点などに設定することができる。本実施形態では、６成分を計測するが、力の並進方向成分Ｆ、または、力のモーメント成分Ｍを計測するようにしてもよい。また、力センサの取りつけ位置は、ロボット５０の先端部５８に作用させた力を計測できる限り、任意の箇所であってよい。また、ロボット５０の先端部５８に作用する力を計測する計測手段は、６軸の力センサでなくともよく、例えば３軸の力センサを用いてもよい。或いは、力センサを使用する代わりに、ロボット５０を構成する軸を移動させるアクチュエータがモータである場合の電流値、または、軸の指令位置と実際の軸の位置との間の偏差、または、各軸に取りつけたトルクセンサの出力などをもとに、ロボット５０の先端部５８に作用する力を推定してもよい。
【００３３】
ロボット５０の先端部５８には、ワークを加工したり、ワークを搬送したりするなどの作業をおこなうためのツールや、力に応じた移動操作をおこなうための操縦装置などを取りつけることができる。操縦装置は例えば、操作者６０が把持可能なハンドルや操縦桿の形態を有し、教示をおこなうためのボタン等を具備することができる。力センサをロボット５０の先端部５８に取りつけるとき、ロボット５０に取りつけた力センサに対してツールや操縦装置を取りつけてもよいし、または、ロボット５０に取りつけたツールに対して力センサを取りつけ、その先に操縦装置を取りつけてもよい。ロボット５０の先端部５８に力を作用させるときは、操縦装置を用いずに力センサに取りつけたツールに対して力を作用させてもよいし、または、力センサに取りつけた操縦装置に対して力を作用させるようにしてもよい。
【００３４】
力センサに取りつけたツールや操縦装置に対して、操作者が力を作用させて、ロボット５０を移動させる場合、力計測部２１は、力センサが検出した力にもとづいて、ロボット５０の先端部５８に操作者が作用させた正味の力を計測する。ここで、ロボット５０の先端部５８に取りつけたツールに、力センサと操縦装置を組み合わせた装置を取りつけると、力センサに取りつけられた物体が、重力や慣性力によって力センサに及ぼす影響が小さくなり、正味の力を求める場合の誤差も小さくなる。
【００３５】
また、ツールに対して、力センサと操縦装置を組み合わせた装置を簡易に着脱可能とすべく、磁石やばねなどを用いて構成される機構などを用いて取りつけることによって、力に応じてロボット５０を移動操作させる場合にのみ、力を検出する装置を取りつけることが可能となる。これによって、教示操作が不要な時には装置を取り外しておいたり、必要に応じて他のロボットシステムで使用したりすることが可能となる。
【００３６】
図２は、本発明の第１の実施形態に係るロボット制御装置１０の構成を機能的に示す図である。図示されるように、ロボット制御装置１０は、力計測部２１と、操作力算出部２２と、操作指令部２３と、操作軸設定部２４と、記憶部２５と、入力部７１と、表示出力部７２とを具備している。
【００３７】
力計測部２１は、操作者が、ロボット５０の先端部５８に作用する正味の力を計測する。このとき、力計測部２１は、力センサが検出した力に対して、力センサに取りつけられたツールや操縦装置、または把持したワークなどの物体が、重力や慣性力（コリオリ力、ジャイロ効果を含む）などによって及ぼす影響を必要に応じて補償して、ロボット５０の先端部５８に操作者が作用させた正味の力を計測する。力センサに取りつけられた物体が及ぼす重力や慣性力の影響の補償は、公知の方法でおこなうことができる。例えば、力センサに取りつけられた物体に対して、操作者が力を作用させる前に、質量や重心を算出しておき、前記算出した物体の質量および重心と、ロボットの移動動作を参照すると共に、例えば特開２００８−１４２８１０号公報に開示される手法によって算出することができる。
【００３８】
操作力算出部２２は、力計測部２１が計測した、ロボット５０の先端部５８に作用する、力の並進方向の成分および／または力のモーメント成分を含む力をもとに、ロボット５０の各軸の位置を移動させるための操作力を算出する。操作力算出部２２は、例えば、本実施形態のように移動させる軸が回転軸である場合、次のようにして操作力を算出する。
【００３９】
力計測部２１が計測した、ロボット５０の先端部５８に実際に作用する正味の力（計測値）をもとに操作力を算出する。または、ロボット５０の先端部５８に作用する力をもとに、移動させる軸に対して、仮想的に作用するとした力である仮想力を操作力として算出してもよい。具体的には、移動させる軸に対して、軸の回転中心線に直交する平面に、ロボット５０の先端部５８に作用する並進方向の力を射影したとき、軸に対して、正負のどちらの回転方向を向いているかをもとに、換言すれば、軸の回転中心線回りに作用する並進方向の力の向きをもとに、軸を移動させる操作力の方向を定め、力計測部２１が計測した並進方向の力の大きさ、または、前記射影した力の大きさ、または、前記射影した力の、回転中心線から射影した力の作用点までの位置ベクトルに直交する成分の大きさをもとに、操作力の大きさを求める。
【００４０】
また、力計測部２１が計測した、ロボット５０の先端部５８に作用する力をもとに、移動させる軸に対して、回転中心線回りの力のモーメントを算出して、操作力を求めてもよい。或いは、力計測部２１が計測した、ロボット５０の先端部５８に作用する力をもとに、移動させる軸に対して、回転中心線回りの力のモーメントを算出するときに、適宜、力のベクトルや、位置ベクトルの算出方法を工夫して、操作性を向上させるようにモーメントを算出し、操作力を求めてもよい。
【００４１】
また、移動させる軸に対して、軸の回転中心線回りに作用する力のモーメントの正負をもとに、軸を移動させる操作力の方向を定め、力計測部２１が計測した力の大きさをもとに、操作に応じた適切な操作力の大きさを求めてもよい。なお、操作力の方向は、移動させる軸の移動方向を定めることができるような、方向、正負の符号など、順方向か逆方向を定めるものであればよい。また、力に応じて移動させるときのロボットの操作性を向上させるために、必要に応じて、操作中のロボットの移動方向、移動速度などを考慮して、操作力を調整することが好ましい。なお本実施形態では、回転軸の場合を示したが、操作する軸が直動軸である場合、軸方向の力の並進方向の成分を算出する。
【００４２】
操作軸設定部２４は、前記複数の軸（すなわちＪ１軸５１、Ｊ２軸５２、Ｊ３軸５３、Ｊ４軸５４、Ｊ５軸５５およびＪ６軸５６）の内、力に応じて移動させる軸を操作軸として設定するとともに、力の方向に応じた操作軸の移動方向を設定する。また、操作軸が複数である場合、移動操作の状況に応じて、操作軸に対する移動させるか否かの設定、換言すれば、操作軸とした軸の内、どの軸を移動させ、どの軸は移動させないようにするかを設定する。
【００４３】
力に応じて移動させる軸（すなわち操作軸）の選定では、操作者からの入力をもとに設定してもよいし、ロボット５０の現在の各軸の位置をもとに設定してもよい。力の方向に応じた操作軸の移動方向は、予め設定された値にもとづいて設定してもよいし、または、移動操作中の、ロボット５０の各軸の位置や、ロボット５０の先端部５８に作用する力に応じて、設定するようにしてもよい。操作軸が複数である場合に、移動操作の状況に応じて、操作軸に対して移動させるか否かを設定するとき（換言すれば、操作軸の内、移動させる軸を選定するとき）は、操作軸に対する、力計測部２１が計測した力の方向や、操作軸とロボット５０の先端部５８との位置関係や、所定の優先順位などをもとにして設定する。
【００４４】
操作指令部２３は、ロボット５０の先端部５８に作用させた力にもとづいてロボット５０を移動させるように、操作軸設定部２４の設定、および、力計測部２１が計測した力をもとに操作力算出部２２が算出した操作力にもとづいて、操作軸の位置を移動させる操作指令を出力する。操作指令部２３は、操作軸が複数あるとき、操作軸設定部２４の設定にもとづいて、移動操作の状況に応じて、操作軸の内、どの軸を移動させるかを定めて、その軸を移動させる操作指令を出力する。操作力にもとづいて操作指令を生成するときには、力制御ゲインによって、操作力に対する移動速度を定めてもよい。また、操作時の状況に応じて、操作力に対する応答性を下げたり、速度を加減速したりするなど、必要に応じて移動速度を調整することが好ましい。
【００４５】
記憶部２５には、力計測部２１が力を計測するために必要なパラメータ、操作力算出部２２が操作力を算出するために必要なパラメータ、操作軸設定部２４が操作軸を設定するために必要なパラメータや設定の結果など、各種の計算に必要なパラメータおよび計算結果などが記憶される。
【００４６】
入力部７１は、ロボット制御装置１０に接続されるとともに各種設定を入力することのできる入力装置から転送されるデータや、他の制御装置やコンピュータに入力された設定がネットワークを介してロボット制御装置１０に転送されるデータ等などの、ロボット制御装置１０に入力されたデータを受信して処理する。
【００４７】
表示出力部７２は、各種設定などを入力するときに必要な情報、操作軸設定部２４によって設定された操作軸、操作軸の力の方向に応じた移動方向、操作軸に対する移動させるか否かの設定、などの表示出力処理を実行する。
【００４８】
次に、操作者がロボット５０の先端部５８に力を作用させて、ロボット５０を移動させるときの、本発明の第１の実施形態に係るロボット制御装置１０による処理の一例を図３を参照して説明する。図３は、ロボット制御装置１０による処理の過程の一例を示すフローチャートである。
【００４９】
ロボット５０を移動させる処理が開始され、操作者６０などによってロボット５０の先端部５８に外力が作用すると、力計測部２１が、先端部５８に作用する力を計測する（ステップＳ１）。次に操作軸設定部２４が、力に応じて移動させる操作軸を設定するとともに、力の方向に応じた操作軸の移動方向を設定する（ステップＳ２）。
【００５０】
次に、力計測部２１が計測したロボット５０の先端部５８に作用する力をもとに、操作軸設定部２４が設定した操作軸に対して、操作力算出部２２が、操作軸の位置を移動させるための操作力を算出し（ステップＳ３）、操作軸設定部２４が、操作軸が２つ以上であるか否かを判定する（ステップＳ４）。この判定は、操作軸が複数ある場合、移動操作の状況に応じて、力に応じて移動させるとした軸の内、移動させる軸と移動させない軸を設定するか否かを判定するためのものである。操作軸が２つ以上である場合、ステップＳ６へ進む。操作軸が２つ未満である場合、ステップＳ５へ進む。
【００５１】
操作軸設定部２４は、操作軸が１つのときは、当該操作軸を「移動させる軸」として設定する（換言すれば「移動させない軸」とはしない）（ステップＳ５）。一方、操作軸が２つ以上であるときは、操作軸設定部２４は、移動操作の状況に応じて、操作軸とした軸の各々に対して、移動させるか否かを設定する（ステップＳ６）。つまり、力に応じて移動させるとした操作軸が複数ある場合、所望の軸を移動させるため、ステップＳ６によって、移動操作の状況に応じて、移動させる軸と、移動させない軸とを設定する。次に操作指令部２３は、操作力算出部２２が算出した操作力、操作軸設定部２４の設定をもとに、操作軸の位置を移動させる操作指令を生成して出力する（ステップＳ７）。
【００５２】
ここでステップＳ３において、操作力算出部２２が、操作軸の位置を移動させるための操作力を算出する処理のいくつかの例について、さらに説明する。なおこれらの算出処理は、操作軸毎に異なっていてもよいし、移動操作の状況に応じて適宜異なっていてもよい。
【００５３】
図４は、ロボット５０の先端部５８において、力Ｆｓが作用していることが、力計測部２１によって計測されていることを示す図である。力Ｆｓは、力の並進方向の成分Ｆおよび力のモーメント成分Ｍを含み、力の並進方向の成分Ｆｘ、Ｆｙ、Ｆｚおよび力のモーメント成分Ｍｘ、Ｍｙ、Ｍｚから成る力とする。操作軸に対して座標系を設定するときは、操作軸の回転中心線と座標系のＺ軸が一致するように座標系を設定する。力計測部２１が計測した力Ｆｓを、この操作軸に設定した座標系上の力に座標変換して、算出される力におけるＺ軸回りの力のモーメントを、操作力として求めることができる。
【００５４】
或いは、操作力は次のように求めてもよい。図５は、図４に示した、ロボット５０を構成する複数の軸の内のいずれかの軸を操作軸３１とした場合に、力計測部２１が計測した力Ｆｓをもとに、操作力算出部２２が、操作軸３１に対する操作力を算出する方法を説明する図である。まず操作軸３１に対して、点Ｐ１、Ｘ軸Ａｘ，Ｙ軸Ａｙ、Ｚ軸Ａｚ軸で構成される座標系を設定する。この設定は、操作軸３１の基準座標系上の位置を表す点Ｐ１が座標系の原点となり、Ｚ軸Ａｚが操作軸３１の回転中心線と一致し、Ｘ軸Ａｘ、Ｙ軸Ａｙの成す平面Ｃが操作軸の回転中心線と直交する平面となるようにおこなわれる。平面Ｃは、操作軸３１に設定した座標系の、Ｘ軸Ａｘ、Ｙ軸Ａｙが成す平面（Ｘ−Ｙ平面）とする。また、点Ｐ２は、ロボット５０の先端部５８に作用させた力を計測するときの力計測座標系の原点である、力計測点を平面Ｃに射影した点とする。ここで、力計測部２１が計測した力Ｆｓのモーメント成分の力Ｍ（Ｍｘ、Ｍｙ、Ｍｚ）を、平面Ｃ上の力のモーメントに座標変換した力のモーメントを力のモーメントＭ２１、または、操作軸３１に設定した座標系上の力のモーメントに変換したときのＺ軸Ａｚ回りの力のモーメントを力のモーメントＭ２１とする。
【００５５】
位置ベクトルＰｖは、平面Ｃにおける、点Ｐ１から点Ｐ２への位置ベクトルである。位置ベクトルＰｖの大きさは、操作軸の回転中心線と力計測点との最短距離となる。力Ｆｐは、力計測部２１が計測した力Ｆｓの並進方向の成分の力Ｆ（Ｆｘ、Ｆｙ、Ｆｚ）をもとに、平面Ｃ上で、操作軸の回転中心線回りに作用する力として求めた、並進方向の力である。或いは、並進方向の成分の力Ｆを平面Ｃに射影して得られる並進方向の力を、力Ｆｐとしてもよい。また、力Ｆｓの並進方向の成分の力Ｆをもとに力Ｆｐを求めるとき、力Ｆｓの並進方向の成分の力Ｆが作用する方向と、所定方向への方向の回転操作とをもとに力Ｆｐを算出するようにしてもよい。なお、平面Ｃ上の力Ｆｐを求めるときに、力Ｆｓの並進方向の成分の力Ｆの方向の変動によって、力Ｆによって求まる力Ｆｐの大きさが変動することを軽減させるようにしてもよい。
【００５６】
次に、平面Ｃ上の力Ｆｐと、位置ベクトルＰｖとの外積演算によって求めた力のモーメントＭ１１または力のモーメントＭ２１をもとに操作力を求める。具体的には、位置ベクトルＰｖの大きさが所定の閾値より小さいときは、力のモーメントＭ２１を操作力とする。一方、位置ベクトルＰｖの大きさが所定の閾値以上であるときは、位置ベクトルＰｖと力Ｆｐの外積演算から力のモーメントを算出し、算出した力のモーメントＭ１１を操作力とする。または、算出した力のモーメントＭ１１と、力のモーメントＭ２１とを足し合わせた力のモーメントを操作力としてもよい。或いはさらに、力のモーメントＭ１１と、力のモーメントＭ２１のそれぞれに係数をかけて、すなわちそれぞれの影響力を考慮した重み付けをした上で、足し合わせるようにしてもよい。その際、これらの係数は、位置ベクトルＰｖの大きさや、力Ｆｐの大きさなどをもとに調整してもよい。
【００５７】
力計測部２１が計測した力Ｆｓの力のモーメント成分の力Ｍの影響を排除するようにしたい場合や、力Ｆｓの並進方向の力のみで移動させたい場合、力のモーメントＭ２１を考慮せず、力のモーメントＭ１１のみを操作力とすることが好ましい。また、力Ｆｐの大きさが同じであっても、位置ベクトルＰｖの大きさによって、算出される力のモーメントＭ１１の大きさは変わってしまう。このため、力のモーメントＭ２１とは異なり、力のモーメントＭ１１は、ロボット５０の先端部５８の位置の移動によって大きさが変わり、操作力が変動してしまう。このため、位置ベクトルＰｖの大きさが所定の閾値以上でありかつ、力Ｆｐの大きさが所定の閾値より小さい場合には、力のモーメントＭ２１のみを操作力とすることが好ましい場合がある。
【００５８】
以上のように、力計測部２１が計測した力Ｆｓの並進方向の成分の力Ｆをもとに求めた平面Ｃ上の力Ｆｐと、平面Ｃ上の位置ベクトルＰｖとをもとに求めた力のモーメントＭ１１および／または力計測部２１が計測した力Ｆｓの力のモーメント成分の力Ｍをもとに求めた力のモーメントＭ２１をもとに、操作軸３１に仮想的に作用する力を、操作力として求める。この力のモーメントＭ１１を求めるとき、前述のように力Ｆの方向の変動によって、力Ｆｐの大きさがなるべく変動しないように力Ｆｐを求めたり、力Ｆｐの方向を方向に応じて代表的な方向となる並進方向の力を求めたり、位置ベクトルＰｖの大きさに応じて代表的な位置ベクトルを求めたりして、力のモーメントを求めることによって、移動操作時の操作力の変動を低減させ、ロボット５０を安定して移動させ、操作性を向上させることが可能となる。なお、このとき、力Ｆｐの方向や大きさ、位置ベクトルＰｖの大きさなどを変更する場合には、求められる操作力が急に変化しないように、すなわちなめらかに変化するように、前記変更をおこなうことが好ましい。
【００５９】
また、操作力の別の算出方法として、次のように算出してもよい。位置ベクトルＰｖと力Ｆｐとの成す角度を算出することによって、位置ベクトルＰｖと力Ｆｐによって求められる力のモーメントの符号が正か負となるかを判定して、操作軸３１の位置を正方向か負方向かのどちらの方向に移動させるかを決めて、操作力の符号を求める。操作力の大きさは、力Ｆｐの大きさや、力Ｆｓの並進方向の成分の力Ｆの大きさなどとする。このようにして、操作力を求めるようにしてもよい。このとき、位置ベクトルＰｖの大きさが小さい場合は、力のモーメントＭ２１を用いる。また、力のモーメントＭ２１も同時に考慮するように、このように符号と大きさを算出して求めた値に係数をかけた値と、力のモーメントＭ２１に別の係数をかけた値とを足し合わせて算出した仮想力を、操作力とするようにしてもよい。
【００６０】
次に、本発明の第１の実施形態に係るロボット制御装置１０の操作軸設定部２４の処理について、さらに詳細に説明する。操作軸設定部２４は、複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する。また、移動操作の状況に応じて、操作軸とした軸に対して、移動させるか否かを設定する。操作軸設定部２４では、ステップＳ６において、移動操作の状況に応じて、操作軸に対する、力計測部２１が計測した力の方向をもとに、操作軸に対して、移動させるか否かを設定する。また操作軸設定部２４は、移動操作の状況に応じて、操作軸とした軸に対して、移動させるか否かを判定して設定する。これらの方法について、図４〜図６を参照しつつ、説明する。
【００６１】
操作軸設定部２４によって、入力や、設定、ロボット５０の現在の軸の位置などをもとに、ロボット５０を構成する複数の軸の内、操作軸とする軸を設定する。ここでは、操作軸として、２つ以上の複数の軸が設定されているとする。操作軸が２つ以上ある場合、ロボット５０の先端部５８に作用させる力の方向によっては、操作力算出部２２で算出した操作力にもとづいて操作軸を移動させると、複数の軸が同時に移動することがある。このとき、複数の操作軸の内、所望する軸または所定の条件を満たす軸を移動させるために、また、他の所定の条件を満たす軸を移動させないために、移動操作の状況に応じて、操作軸に対する、力計測部２１が計測した力の方向をもとにして、移動させる操作軸と、移動させない操作軸とを設定する。なお、「移動させる操作軸」とは、力に応じて移動することが許可された操作軸を意味し、「移動させない操作軸」は、力が作用していても移動させない操作軸を意味する。
【００６２】
操作軸に対する、力計測部２１が計測した力の方向をもとにして、移動させる操作軸とするか否かを判定する方法は、操作軸に対する、力計測部２１が計測した力の方向をもとに求められる値を、所定の閾値と比較したり、他の操作軸に対して同様の方法で求められた値と比較したりすることによって、移動させるか否かを判定することが可能であれば、どのような方法を用いてもよい。
【００６３】
以下、操作軸に対する、力計測部２１が計測した力の方向をもとに、移動させるか否かを設定するときの判定方法の例について説明する。ロボット５０の先端部５８に力を作用させたときに、操作力によって複数の操作軸を移動させるか否かは、操作力算出部２２によって算出された、操作軸のそれぞれの操作力の大きさが、所定の閾値以上であるか否かによって判定することができる。これによって、ロボット５０の先端部５８に作用させた力によって複数の操作軸が移動すると判定されたとき、移動させない操作軸を定めるようにしてもよい。
【００６４】
操作軸に対して、移動させるか否かを判定するとき、同時に条件を満たす軸が複数存在し、移動させる軸をさらに制限または選定する場合は、軸毎に定める所定の優先順位による選定方法や、別の操作軸の選定方法などを同時に用いて、複数の判定方法を矛盾しないように組み合わせることによって、移動させる軸をさらに選定するようにすることが好ましい。また、移動させる操作軸とするか否かの判定をするとき、全ての操作軸に対して判定するときの所定の優先順位を設定しておき、全ての操作軸に対して優先順位に従って順に判定していく。このとき、移動させる軸となる軸が存在した場合、その操作軸のみを移動させる操作軸とし、移動させる操作軸が見つかるまで全ての操作軸に対して、順に移動させる操作軸を探すようにしてもよい。
【００６５】
前述したように、図４は、ロボット５０の先端部５８に力Ｆｓが作用していることが、力計測部２１によって計測されていることを示す。操作軸に対して移動させるか否かを判定する方法の一例として、力計測部２１によって計測された、ロボット５０の先端部５８に作用する力Ｆｓの並進方向の成分の力Ｆと、操作軸の回転中心線とが、複数の操作軸の内、最も平行に近い操作軸を、移動させない操作軸と判定する。或いは、力Ｆと操作軸の回転中心線とが成す角度が、平行となるときの角度から所定閾値以内の範囲である操作軸を、移動させない操作軸と判定してもよい。
【００６６】
別の方法として、図５に示すように、操作軸３１に対する操作力を算出するときに求めた平面Ｃ上の力Ｆｐと、位置ベクトルＰｖとの成す角度が、直交するときの角度から所定の閾値以内の範囲である操作軸を、移動させる操作軸と判定してもよい。或いは、平面Ｃ上の力Ｆｐと位置ベクトルＰｖとが成す角度が、複数の操作軸の内、最も直交するときの角度に近い操作軸を、移動させる操作軸と判定してもよい。
【００６７】
別の方法を、図６を参照して説明する。図６は、力Ｆｐの方向をもとに、移動させる操作軸とするか否かの判定をする別の方法を説明するための図である。図６では、図５に対して、後述の直線Ｌｗ、直線Ｌｖ、範囲Ｒａ、範囲Ｒｂを追加している。直線Ｌｗは、平面Ｃ上に延在し、点Ｐ１、点Ｐ２を含む直線とする。直線Ｌｖは、平面Ｃ上に延在し、点Ｐ２において直線Ｌｗと直交する直線とする。力Ｆｐと直線Ｌｗとが成す角度をもとに、力Ｆｐの方向が、平面Ｃ上で直線Ｌｖに関して、点Ｐ１が存在する側の所定の範囲Ｒａ内にあるか、範囲Ｒａ外（点Ｐ１が存在しない側）の所定の範囲Ｒｂ内にあるかを求め、力Ｆｐの方向に応じて、移動させる操作軸とするか否か判定する。ただし、力Ｆｐが、位置ベクトルＰｖや直線Ｌｗと成す角度が、それらと平行となるときの角度から所定閾値以内であるときには、移動させない軸と設定する。換言すれば、力Ｆｐの方向が、位置ベクトルＰｖや直線Ｌｗの方向と平行に近い場合、その操作軸は、移動させない軸と設定する。この方法を用いて、ある操作軸に対しては、ある操作軸について求めた力Ｆｐが所定の範囲Ｒａ内にあるとき、移動させる操作軸とし、別のある操作軸に対しては、その操作軸について求めた力Ｆｐが所定の範囲Ｒｂ内にあるとき、移動させる操作軸と判定する、などのようにしてもよい。
【００６８】
別の方法を、図７を参照して説明する。図７は、力計測部２１によって計測される力Ｆｓの並進方向の成分の力Ｆの方向と、操作軸の回転中心線とが成す角度をもとに、移動させる操作軸とするか否かを判定する別の方法を説明するための図である。なお、他と同様に、記号の意味が同じものは説明を省略する。図７では、ある操作軸３１の回転中心線とＺ軸Ａｚが一致するように、操作軸３１に設定した座標系上の力Ｆを示している。力Ｆは、力計測点Ｐ３において作用している。また点Ｐ３がその上に存在するように、Ｚ軸Ａｚを平行移動させた軸を軸Ａｚａとする。
【００６９】
このとき、軸Ａｚａに対して力Ｆの方向が成す角度Ｄａを算出し、角度Ｄａが０度から９０度以内にあるか、９０度から１８０度以内にあるかを判定する。この角度Ｄａが存在する範囲をもとにして、移動させる操作軸とするか否かを判定する。この角度Ｄａが存在する範囲をもとにすることによって、操作軸の回転中心線に対する力Ｆの方向を求めて、移動させる操作軸とするか否かを判定する。この方法を用いて、ある操作軸に対しては、ある操作軸について求めた角度Ｄａが０度から９０度以内のとき、移動させる操作軸とし、別のある操作軸に対しては、その操作軸について求めた角度Ｄａが９０度から１８０度以内にあるとき、移動させる操作軸と判定する、などのようにしてもよい。
【００７０】
上述のような複数の方法を単独でまたは組み合わせて使用することにより、移動操作の状況に応じて、操作軸に対する、力計測部２１が計測した力の方向をもとに、操作軸に対して、移動させるか否かを判定することができる。
【００７１】
ステップＳ７において、操作指令部２３によって、操作軸の位置を移動させるための操作指令を生成、出力する方法について、さらに説明する。操作指令部２３は、操作軸設定部２４によって設定された複数の軸の内、操作軸とする軸、力の方向に応じた移動方向、その軸を移動させるか否か、についての設定にもとづいて、移動させるとした操作軸を、操作力算出部２２によって求めた操作力と、操作軸設定部２４によって設定される力の方向に応じた移動方向とにもとづいて移動させる。このとき、操作指令部２３は、操作力の符号と、操作軸設定部２４が設定した力の方向、ここでは、操作力の符号に応じた操作軸の移動方向をもとに、操作軸の目標とする移動方向（回転軸の場合、回転方向）を決定し、操作力の大きさをもとに、操作軸の目標とする移動速度を算出する。
【００７２】
このとき、操作力の大きさに、力に対する移動の応答性を定める力制御ゲインを乗算した力制御によって、操作軸の目標とする移動速度を算出することが好ましい。また、操作軸の回転中心線からロボット５０の先端部５８までの最短距離に応じて、力制御ゲインを変更するようにしてもよい。これによって、ロボット５０の先端部５８の位置によって、操作力に対する応答性を変更し、空間における領域毎にロボット５０の移動速度を調整することができる。
【００７３】
また、操作軸の回転中心線から、ロボット５０の先端部５８までの最短距離が比較的大きい場合と小さい場合に、同じ操作力に対して、操作軸の速度を同じ角速度で移動させるようにすると、前記最短距離が大きい場合には、前記最短距離が小さい場合に対して、ロボット５０の先端部５８の並進方向の速度は速くなる。場合によっては、同じ操作力に対して、操作軸の角速度を同じにするのではなく、操作軸からロボット５０の先端部５８の位置が遠い場合には、操作軸からロボット５０の先端部５８の位置が近い場合よりも、遅くした方が、安全であり、またロボット５０の操作もしやすくなる。
【００７４】
このために、操作軸の回転中心線から、ロボット５０の先端部５８までの最短距離が大きくなるに従って、力制御ゲインを、前記最短距離をもとにして、小さくするようにしてもよい。これによって、操作力の大きさが同じ場合でも、操作軸からロボット５０の先端部５８が遠くなるに従って、ロボット５０の先端部５８の速度を小さくすることができ、安全性を高め、操作性を向上させることが可能となる。
【００７５】
また、操作力の大きさに応じて操作軸の目標とする速度を変える場合では、操作力の大きさが同じでも、ロボット５０の先端部５８が、操作軸から遠くなるに従って、ロボット５０の先端部５８の接線速度は大きくなってしまう。そこで、操作指令部２３は、移動させるとした、操作軸に対して、前述のようにして求めた操作力と、操作軸設定部２４によって設定される力の方向に応じた移動方向とにもとづいて移動させるとき、操作力にもとづいて、操作軸の回転中心線回りの、ロボット５０の先端部５８の目標とする移動方向および目標とする接線速度を求めて、ロボット５０の先端部５８の目標とする移動方向および目標とする接線速度をもとに、操作軸の目標とする移動方向および目標とする移動速度を求めて、当該操作軸を移動させるようにしてもよい。
【００７６】
これによって、操作力の大きさが同じ場合、ロボット５０の先端部５８の位置によらず、ロボット５０の先端部５８の接線速度を同じにすることが可能となる。この場合、ロボット５０の先端部５８が、操作軸から離れるに従って、操作力の大きさが同じでも、操作軸の回転速度は小さくなる。また、このような効果を得るため、操作力の大きさをもとに、操作軸の目標とする移動速度を算出する場合には、操作力を算出するときに、操作軸の回転中心線から、ロボット５０の先端部５８までの最短距離で除算演算をするようになどしてもよい。また、操作力にもとづいて、操作軸の回転中心線回りの、ロボット５０の先端部５８の移動方向および接線速度を求めてから、操作軸の目標とする移動方向および目標とする移動速度を求めるとき、操作力の大きさに、力に対する移動の応答性を定める力制御ゲインを乗算してロボット５０の先端部５８の移動量を求める力制御によって、ロボット５０の先端部５８の目標とする接線速度を算出してもよい。以上のようにして、操作指令部２３は、操作軸設定部２４によって設定された、複数の軸の内、操作軸とする軸、力の方向に応じた移動方向、その軸を移動させるか否か、の設定にもとづいて、移動させるとした操作軸を、操作力算出部２２によって求めた操作力と、操作軸設定部２４によって設定される力の方向に応じた移動方向に応じて移動させる指令を生成して出力する。
【００７７】
次に、本発明の第２の実施形態に係るロボット制御装置について説明する。第２の実施形態に係るロボット制御装置では、本発明の第１の実施形態に係るロボット制御装置１０とは、ステップＳ６における、操作軸設定部２４が、操作軸に対して、移動させるか否かを設定するときの設定方法のみが異なり、他は第１の実施形態と同様でよいので、図２および図３について第１の実施形態と同様の部分については説明を省略する。つまり第２の実施形態では、操作軸設定部２４が用いる設定方法は、移動操作の状況に応じて、操作軸に対して、移動させるか否かを設定するというものであって、根本的な技術的思想は第１の実施形態と共通する。
【００７８】
本発明の第２の実施形態において、操作軸設定部２４は、複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する。また、移動操作の状況に応じて、操作軸とした軸に対して、移動させるか否かを設定する。第２の実施形態における操作軸設定部２４では、ステップＳ６において、移動操作の状況に応じて、操作軸とロボット５０の先端部５８との位置関係をもとに、各操作軸について移動させるか否かを設定する。
【００７９】
第２の実施形態に係るロボット制御装置の操作軸設定部２４の機能についてより詳細に説明する。まず、操作軸設定部２４によって、入力や、設定、ロボット５０の現在の軸の位置などをもとに、ロボット５０を構成する複数の軸の内、操作軸とする軸を設定する。ここでは、操作軸として、２つ以上の複数の軸が設定されているとする。
【００８０】
操作軸が２つ以上ある場合、ロボット５０の先端部５８に作用させる力の方向によっては、操作力算出部２２で算出した操作力にもとづいて操作軸を移動させると、複数の軸を同時に移動させてしまうことがある。このとき、複数の操作軸の内、所望の軸または所定の条件を満たす軸を移動させるために、また、他の所定の条件を満たす軸を移動させないために、移動操作の状況に応じて、操作軸と、ロボット５０の先端部５８との位置関係をもとにして、移動させる操作軸と、移動させない操作軸とを設定する。なお、「移動させる操作軸」とは、力に応じて移動することが許可された操作軸を意味し、「移動させない操作軸」は、力が作用していても移動させない操作軸を意味する。
【００８１】
操作軸とロボット５０の先端部５８との位置関係をもとにして、移動させる操作軸とするか否かを判定する方法は、操作軸とロボット５０の先端部５８との位置関係をもとに求められる値を、所定の閾値と比較したり、他の操作軸に対して同様の方法で求められた値と比較したりすることによって、移動させるか否かを判定することが可能であれば、どのような方法を用いてもよい。
【００８２】
ロボット５０の先端部５８に力を作用させたときに、操作力によって、複数の操作軸が移動するか否かは、操作力算出部２２によって算出された、操作軸のそれぞれの操作力の大きさが所定の閾値以上であるか否かによって、判定することができる。これによって、ロボット５０の先端部５８に作用させた力によって、複数の操作軸が移動すると判定されたとき、移動させない操作軸を定めるようにしてもよい。
【００８３】
操作軸に対して、移動させるか否かを判定するとき、同時に条件を満たす軸が複数存在し、移動させる軸をさらに制限または選定する場合は、軸毎に定める所定の優先順位による選定方法や、別の操作軸の選定方法などを同時に用いて、複数の判定方法を矛盾しないように組み合わせることによって、移動させる軸をさらに選定するようにすることが好ましい。また、移動させる操作軸とするか否かの判定をするとき、全ての操作軸に対して判定するときの所定の優先順位を設定しておき、全ての操作軸に対して優先順位に従って順に判定していく。このとき、移動させる軸となる軸が存在した場合、その操作軸のみを移動させる操作軸とし、移動させる操作軸が見つかるまで全ての操作軸に対して、順に移動させる操作軸を探すようにしてもよい。
【００８４】
操作軸とロボット５０の先端部５８との位置関係をもとに、移動させるか否かを設定するときの判定方法の一例について、図８を参照しつつ説明する。図８では、前述と同様に、ある操作軸に対して設定された座標系が示されている。まず、ある操作軸に対して、点Ｐ１、Ｘ軸Ａｘ，Ｙ軸Ａｙ、Ｚ軸Ａｚ軸で構成される座標系を設定する。この設定は、操作軸の基準座標系上の位置を表す点Ｐ１が座標系の原点となり、Ｚ軸Ａｚが操作軸の回転中心線と一致し、Ｘ軸Ａｘ、Ｙ軸Ａｙの成す平面Ｃが操作軸の回転中心線と直交する平面となるようにおこなわれる。点Ｐ３は、ロボット５０の先端部５８の位置を表す点であり、ここでは力計測点とする。平面Ｃは、ある操作軸に設定した座標系の、Ｘ軸Ａｘ、Ｙ軸Ａｙが成す平面（Ｘ−Ｙ平面）とする。
【００８５】
操作軸に対して移動させるか否かを判定する方法の一例では、操作軸の原点の点Ｐ１とロボット５０の先端部５８の位置を表す点Ｐ３との間の距離Ｅａを各操作軸について求め、複数の操作軸の内、距離Ｅａが最も小さい操作軸を移動させる操作軸と判定する。或いは、距離Ｅａが所定の閾値内にある操作軸を、移動させる操作軸と判定してもよい。
【００８６】
別の方法では、操作軸の回転中心線とロボット５０の先端部５８の位置を表す点Ｐ３との最短距離Ｅｂを各操作軸について求め、複数の操作軸の内、距離Ｅｂが最も小さい操作軸を移動させる操作軸と判定する。或いは、距離Ｅｂが所定の閾値内にある操作軸を、移動させる軸と判定してもよい。
【００８７】
また別の方法では、操作軸の回転中心線と直交しかつ操作軸の原点の点Ｐ１を含む平面Ｃと、ロボット５０の先端部５８の位置を表す点Ｐ３との最短距離Ｅｃを各軸について求め、複数の操作軸の内、距離Ｅｃが最も小さい操作軸を移動させる操作軸と判定する。或いは、距離Ｅｃが所定の閾値内にある操作軸を、移動させる操作軸と判定してもよい。
【００８８】
さらに別の方法では、ロボット５０の先端部５８が操作軸に設定した座標系上のどの領域に存在するかによって、移動させるかどうかを判定してもよい。例えば、座標系上の領域を、第１象限（Ｘ軸Ａｘ方向の位置が正、Ｙ軸Ａｙ方向の位置が正、Ｚ軸Ａｚ方向の位置が正）、第２象限（Ｘ軸Ａｘ方向の位置が負、Ｙ軸Ａｙ方向の位置が正、Ｚ軸Ａｚ方向の位置が正）、第３象限（Ｘ軸Ａｘ方向の位置が負、Ｙ軸Ａｙ方向の位置が負、Ｚ軸Ａｚ方向の位置が正）、第４象限（Ｘ軸Ａｘ方向の位置が正、Ｙ軸Ａｙ方向の位置が負、Ｚ軸Ａｚ方向の位置が正）、第５象限（Ｘ軸Ａｘ方向の位置が正、Ｙ軸Ａｙ方向の位置が正、Ｚ軸Ａｚ方向の位置が負）、第６象限（Ｘ軸Ａｘ方向の位置が負、Ｙ軸Ａｙ方向の位置が正、Ｚ軸Ａｚ方向の位置が負）、第７象限（Ｘ軸Ａｘ方向の位置が負、Ｙ軸Ａｙ方向の位置が負、Ｚ軸Ａｚ方向の位置が負）、第８象限（Ｘ軸Ａｘ方向の位置が正、Ｙ軸Ａｙ方向の位置が負、Ｚ軸Ａｚ方向の位置が負）に８分割したとき、象限毎に移動させるか否かを対応させるようにする。このとき、ロボット５０の先端部５８の位置を表す点Ｐ３がどの象限に存在するかによって、移動させる操作軸とするか否かを判定する。このとき、各象限において、さらに領域の制限を設定するようにしてもよい。例えば、領域の制限の設定は、Ｘ軸Ａｘ、Ｙ軸Ａｙ、Ｚ軸Ａｚの各方向の位置が所定の範囲内にあるか否かにもとづいておこなってもよいし、上述の距離Ｅａ、距離Ｅｂ、距離Ｅｃなどが、所定の範囲内にあるか否かにもとづいておこなってもよい。このように、操作軸に設定した座標系上のある象限の、ある所定の領域に、ロボット５０の先端部５８の位置を表す点Ｐ３が存在するとき、移動させる操作軸と判定する。
【００８９】
上記のような複数の判定方法を単独でまたは組み合わせて使用することにより、移動操作の状況に応じて、操作軸と、ロボット５０の先端部５８との位置関係をもとに、操作軸に対して、移動させるか否かを判定することができる。
【００９０】
次に、本発明の第３の実施形態に係るロボット制御装置について説明する。第３の実施形態に係るロボット制御装置では、本発明の第１の実施形態に係るロボット制御装置１０とは、ステップＳ６における、操作軸設定部２４が、操作軸に対して、移動させるか否かを設定するときの設定方法のみが異なり、他は第１の実施形態と同様でよいので、図２および図３について第１の実施形態と同様の部分については説明を省略する。つまり第２の実施形態では、操作軸設定部２４が用いる設定方法は、移動操作の状況に応じて、操作軸に対して、移動させるか否かを設定するというものであって、根本的な技術的思想は第１の実施形態と共通する。
【００９１】
本発明の第３の実施形態において、操作軸設定部２４は、複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた前記操作軸の移動方向を設定する。また、移動操作の状況に応じて、操作軸とした軸に対して、移動させるか否かを設定する。第３の実施形態における操作軸設定部２４では、ステップＳ６において、移動操作の状況に応じて、操作軸に対する力計測部２１が計測した力の方向と、操作軸とロボット５０の先端部５８との位置関係の内、少なくとも一方と、所定の優先順位をもとに、操作軸に対して移動させるか否かを設定する。
【００９２】
第３の実施形態に係るロボット制御装置の操作軸設定部２４の機能についてより詳細に説明する。まず、操作軸設定部２４によって、入力や、設定、ロボット５０の現在の軸の位置などをもとに、ロボット５０を構成する複数の軸の内、操作軸とする軸を設定する。ここでは、操作軸として、２つ以上の複数の軸が設定されているとする。このとき、複数の操作軸の内、所望の軸または所定の条件を満たす軸を移動させるために、また、他の所定の条件を満たす軸を移動させないために、移動操作の状況に応じて、操作軸に対して、移動させる操作軸と、移動させない操作軸とを設定する。なお、「移動させる操作軸」とは、力に応じて移動することが許可された操作軸を意味し、「移動させない操作軸」は、力が作用していても移動させない操作軸を意味する。
【００９３】
このとき、操作軸を、移動させる操作軸とするか否かを判定する方法として、第１または第２の実施形態において説明したような、力計測部２１が計測した力の方向をもとに判定する方法と、操作軸とロボット５０の先端部５８との位置関係をもとに判定する方法との少なくとも一方と、さらに、所定の優先順位にもとづいて移動させるか否かを判定する方法を用いる。
【００９４】
操作軸に対する、力計測部２１が計測した力の方向をもとに判定する方法と、操作軸とロボット５０の先端部５８との位置関係をもとに判定する方法とは、適宜組み合わせて、操作軸を移動させるとするか否かを、より複数の条件の組み合わせで判定することができる。例えば、ある操作軸について、複数の条件のいずれか１つでも移動させると判定された場合、その操作軸は移動させると判定する。または、複数の条件のすべてで移動させると判定された場合に、移動させる操作軸とすると判定してもよい。或いは、複数の条件に対して、それぞれの条件で、移動させると判定された場合の点数を定めておき、複数の条件で判定したときの点数の合計が所定の値以上の場合に、移動させる操作軸とすると判定してもよい。
【００９５】
また、操作軸に対する、力計測部２１が計測した力の方向をもとに判定する方法だけでは移動させる操作軸が定まらない場合、または、操作軸と、ロボット５０の先端部５８との位置関係をもとに判定する方法だけでは移動させる操作軸が定まらない場合は、他の方法を用いて判定することができる。このとき、操作軸に対する、力計測部２１が計測した力の方向と、操作軸とロボット５０の先端部５８との位置関係と、さらに所定の優先順位の関係を考慮して判定するとよい。例えば、上述の移動させるか否かの判定によって、移動させると判定された操作軸が複数存在し、それらの操作軸に対して、さらに移動させる操作軸を選定したい場合、各操作軸に対して、優先順位をつけて選定するとよい。このように、力の方向の条件、位置関係の条件、所定の優先順位の条件といった、複数の条件を用いて判定することによって、移動させる操作軸とするか、または、移動させない操作軸とするかの判定において、より所望の操作軸を移動させられるようにしたり、不要な軸を移動させないようにしたりすることが可能となる。
【００９６】
次に、本発明の第４の実施形態に係るロボット制御装置について説明する。第４の実施形態に係るロボット制御装置は、本発明の第１の実施形態に係るロボット制御装置１０とは、図９のフローチャートに示すように、図３に示したフローチャートからステップＳ４〜Ｓ６が省略されている点で異なる。また第４の実施形態では、図２に記載の操作軸設定部２４は、操作軸に対して移動させるか否かの設定は実行せず、所望の操作軸を移動させることをより容易とすべく、ロボット５０を構成する複数の軸の内、２つの操作軸を選定して設定する。
【００９７】
本発明の第１〜第３の実施形態に係るロボット制御装置は、操作軸が複数存在する場合、操作軸として設定されている軸に対して、移動操作の状況に応じて、移動させるか否かを設定して、所望とする軸を移動させる。これに対して、本発明の第４の実施形態に係るロボット制御装置は、操作軸が複数存在する場合、所望とする軸を移動させることをより容易とするように、予め、２つの軸を操作軸として設定しておく。つまり、ロボット５０を構成する複数の軸から、適切な２つの軸を操作軸とすることによって、移動操作時に、所望とする軸を選択的に移動させることを実現する。第４の実施形態は、力に応じて移動させる軸である操作軸が複数存在する場合に、所望の軸を選択的に移動させる方法を実現するという点において、本発明の第１〜第３の実施形態に係るロボット制御装置と技術的思想は同じである。
【００９８】
図９に示すように、ロボット５０を移動させる処理が開始されと、操作者６０などによってロボット５０の先端部５８に外力が作用すると、力計測部２１が、先端部５８に作用する力を計測する（ステップＳ１）。操作軸設定部２４は、力に応じて移動させる操作軸を設定し、また、力の方向に応じた操作軸の移動方向を設定する（ステップＳ２）。
【００９９】
力計測部２１が計測した、ロボット５０の先端部５８に作用する力をもとに、操作軸設定部２４が設定した操作軸に対して、操作力算出部２２が、操作軸の位置を移動させるための操作力を算出する（ステップＳ３）。操作指令部２３は、操作力算出部２２が算出した操作力、操作軸設定部２４の設定をもとに、操作軸の位置を移動させる操作指令を生成して出力する（ステップＳ７）。
【０１００】
第４の実施形態に係るロボット制御装置の操作軸設定部２４の処理について、さらに説明する。ステップＳ２において、操作軸設定部２４は、複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた操作軸の移動方向を設定する。このとき、操作軸設定部２４は、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸として設定する。
【０１０１】
このように、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸とすることによって、ロボット５０の先端部５８に作用させる力の方向を適切な方向にした場合、操作軸を独立に移動させ、所望の軸を力に応じて移動させることが可能となる。つまり、このように設定された２つの操作軸に対して、所望の一方の操作軸のみを移動させたい場合、ロボット５０の先端部５８に、他方の操作軸の回転中心線と平行な方向に力を作用させることによって、所望の一方の操作軸のみを移動させることが可能となる。
【０１０２】
このような軸の設定方法の一例について、図１を参照しつつ説明する。なお、ここでは、操作力算出部２２は、操作軸の回転中心線回りに作用する力をもとに、本発明の第１の実施形態に係るロボット制御装置１０に関連して説明したように操作力を求めるものとする。力の方向に応じた操作軸の移動方向は、操作力が作用する方向と同じ方向とする。
【０１０３】
図１に示されるような軸で構成されるロボット５０の場合、例えば、２つの操作軸としてＪ１軸５１およびＪ２軸５２を設定することができる。これらの軸は、ロボット５０を構成する複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸となっている（後述する２つの軸についても同様である）。この場合、ロボット５０の先端部５８に対して、Ｊ２軸５２の回転中心線と平行な方向の、並進方向の力を作用させたとすると、Ｊ１軸５１については、回転中心線回りに力が作用するために、操作力算出部２２によって算出される操作力をもとに、移動させることができる。一方、Ｊ２軸５２については、回転中心線回りに力が作用しないため、移動させることはできない。また、ロボット５０の先端部５８に対して、Ｊ１軸５１の回転中心線と平行な方向の、並進方向の力を作用させたとすると、Ｊ２軸５２については、回転中心線回りに力が作用するために、操作力算出部２２によって算出される操作力をもとに、移動させることができる。一方、Ｊ１軸５１については、回転中心線回りに力が作用しないため、移動させることはできない。
【０１０４】
一方、２つの操作軸として、Ｊ３軸５３およびＪ４軸５４を設定してもよい。この場合も、一方の操作軸のみを移動させたい場合、他方の操作軸の回転中心線と平行な方向に力を作用させることによって、所望の一方の操作軸のみを移動させることが可能となる。或いは、２つの操作軸として、Ｊ４軸５４およびＪ５軸５５を設定してもよい。この場合も、一方の操作軸のみを移動させたい場合、他方の操作軸の回転中心線と平行な方向に力を作用させることによって、所望の一方の操作軸のみを移動させることが可能となる。また或いは、２つの操作軸は、Ｊ５軸５５およびＪ６軸５６に設定してもよい。この場合も、一方の操作軸のみを移動させたい場合、他方の操作軸の回転中心線と平行な方向に力を作用させることによって、所望の一方の操作軸のみを移動させることが可能となる。
【０１０５】
以上のように、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸として設定し、ロボット５０の先端部５８に作用させる力を適切な方向とした場合、２つの操作軸に対して、所望の操作軸のみを移動させることが可能となる。これによって、教示操作装置などを用いて、移動させる軸を切り替え設定することなく、移動させる軸を選択できたり、また、ロボット５０の軸の位置や、作用させる力の方向によっては、２つの軸を同時に移動させたりすることも可能となる。
【０１０６】
本発明の第５の実施形態に係るロボット制御装置では、第４の実施形態においてさらに、操作軸設定部２４が、移動操作の状況に応じて、操作軸に対する力計測部２１が計測した力の方向と、操作軸とロボット５０の先端部５８との位置関係と、所定の優先順位の内、少なくとも１つをもとに、操作軸に対して移動させるか否かを設定する。
【０１０７】
第５の実施形態に係るロボット制御装置は、第４の実施形態に係るロボット制御装置とは、図１０のフローチャートに示すように、図９に示したフローチャートに、移動動作の状況に応じて、操作軸に対して、移動させるか否かを設定するステップ（ステップＳ６）が追加されている点で異なる。ただし第５の実施形態に係るロボット制御装置も、他の実施形態に係るロボット制御装置と同様に、操作軸が複数存在する場合に、所望の操作軸を選択的に移動させる方法を実現することを目的としている。
【０１０８】
本発明の第４の実施形態に係るロボット制御装置による、操作軸の移動操作では、一方の操作軸のみを移動させたい場合、他方の操作軸の回転中心線と平行な方向に力を作用させることによって、所望の一方の操作軸のみを移動させることが可能となる。このとき、移動操作の状況によっては、他方の操作軸の回転中心線と平行な方向に力を作用させることが困難である場合が存在する。また、他方の操作軸の回転中心線と平行な方向に力を作用させても操作力の大きさがゼロであったり、操作力が作用しなかったりするといった状況になり、一方の操作軸を移動させることが困難な場合が存在する。第５の実施形態では、このような状況においても、所望の操作軸を移動させることができるようにするため、ロボット５０の先端部５８に作用させる力が、他方の操作軸の回転中心線と平行な方向でなくとも、一方の操作軸を移動させることが可能となるようにする。
【０１０９】
図１０に示すステップＳ２において、操作軸設定部２４は、複数の軸の内、力に応じて移動させる軸を操作軸として設定し、さらに力の方向に応じた操作軸の移動方向を設定する。このとき、操作軸設定部２４は、操作者からの入力やロボット５０の現在の各軸の位置などをもとに、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸として設定する。
【０１１０】
図１０に示すステップＳ６において、操作軸設定部２４は、移動動作の状況に応じて、操作軸に対して、移動させるか否かを設定する。より詳細には、操作軸設定部２４は、移動操作の状況に応じて、操作軸に対する、力計測部２１が計測した力の方向と、操作軸とロボット５０の先端部５８との位置関係と、所定の優先順位の関係の内、少なくとも１つの関係をもとに、操作軸に対して、移動させるか否かを設定する。
【０１１１】
このとき、操作軸を、移動させる操作軸とするか否かを判定する方法として、操作軸に対する、力計測部２１が計測した力の方向をもとに判定する方法と、操作軸とロボット５０の先端部５８との位置関係をもとに判定する方法と、所定の優先順位をもとに判定する方法の内、少なくとも１つの方法が用いられる。操作軸は２つであるので、ロボット５０の先端部５８に作用させた力をもとに算出される操作力によって、２つの操作軸が両方とも移動してしまう場合、各操作軸に対して、所定の優先順位を設定しておき、それにもとづいて、どちらか１つを移動させるようにしてもよい。
【０１１２】
また、操作軸設定部２４が、移動操作の状況に応じて、操作軸とした軸に対して、移動させるか否かを判定して設定する方法と同様に、２つの操作軸に対して、移動させるか否かを判定して設定するようにしてもよい。
【０１１３】
本発明の第６の実施形態においては、図１１に示すように、ロボットシステム１１は、ロボット制御装置１０に各種設定などを入力する教示操作装置７０を備え、操作軸設定部２４は、教示操作装置７０からの入力をもとに操作軸を設定し、教示操作装置７０は、前記操作軸として設定可能な軸の内、操作軸とする軸が組み合わされた選択肢から選択して入力する。
【０１１４】
図１１に示すように、ロボット制御装置１０によって制御されるロボット５０を具備するロボットシステム１１では、ロボット制御装置１０に各種設定などを入力する教示操作装置７０が、ロボット制御装置１０に接続されている。また、各種設定などを入力するときに、操作者６０が表示装置７０を保持しなくてもよいように、表示装置７０は、ロボット５０上の適当な箇所に、例えば、図１２に示すようにロボット５０の先端部５８や、また、ロボット５０を構成する軸間をつなぐリンク上などに取りつけ可能に構成されたものでもよい。また、この教示操作装置７０は、各種状態を表示出力する表示機能を備えた装置であってもよく、さらに、各種設定などを入力したり、ロボット５０の移動操作、停止の操作入力をおこなったり、ロボット５０の移動操作に関する各種状態を表示したりすることができる装置であってもよい。
【０１１５】
操作軸設定部２４は、教示操作装置７０からの入力をもとに操作軸を設定する。操作軸は、ここでは、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸が操作軸として設定可能であるとする。
【０１１６】
操作軸として設定可能な軸を選択肢として表示し、該選択肢から操作軸を入力（設定）可能とした表示例を、図１３（ａ）および図１３（ｂ）に示す。例えば、「Ｊ１−Ｊ２」は、Ｊ１軸とＪ２軸を操作軸とすることを表し、これに関連付けられた（図示例では文字の左側に表示された）マークの色によって、その操作軸の組み合わせが選択されたかどうかを表すことができる。ある組み合わせを選択すると、他の組み合わせは選択から外されるようにしておくことが好ましい。
【０１１７】
例えば、図１３（ｂ）の表示例では２つの操作軸としてＪ４軸とＪ５軸の組み合わせを表す「Ｊ４−Ｊ５」が選択肢に含まれているが、図１３（ａ）の表示例ではこの選択肢はなく、故に「Ｊ４−Ｊ５」は選択できないようになっている。このように、設定が好ましくない操作軸の組み合わせは、設定できないようにすることができる。また、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸とすべき場合、どの軸の組み合わせがそのような組み合わせになるのか、また、選択可能であるのかということが分かりにくい場合、このような入力方法によって、操作軸の設定を容易におこなうことが可能となる。
【０１１８】
本発明の第７の実施形態においては、図１２に示すように、ロボットシステム１１は、ロボット制御装置１０に各種設定などを入力する教示操作装置７０を備え、操作軸設定部２４は、教示操作装置７０からの入力をもとに操作軸を設定し、教示操作装置７０は、ロボット５０を構成する複数の軸の内、操作軸として選択可能な軸を示し、選択された軸をもとに、選択された軸以外の軸において、操作軸として前記選択された軸と同時に選択可能であるか、および／または、前記選択された軸と同時に選択可能でないかを示すことができる。
【０１１９】
第７の実施形態では、教示操作装置７０は、図１４（ａ）および図１４（ｂ）に示すように、ロボット５０を構成する複数の軸の内、操作軸として選択可能な軸を示し、選択された軸をもとに、選択された軸以外の軸において、選択可能であるか、および／または、選択可能でないかを示す。このとき、選択肢として表示した軸に対して、マークやボタン、文字などの、色や形状、大きさを変えたり、囲みや線を追加したりするなどのようにして、選択可能であるか、および／または、選択可能でないかを示す。操作軸は、ここでは、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸が操作軸として設定可能である。
【０１２０】
図１４（ａ）では、ロボット５０を構成する軸の内、操作軸として選択可能な軸が示されていて、Ｊ４軸が操作軸として既に選択されているとする。このとき、Ｊ３軸またはＪ５軸が操作軸としてＪ４軸と組み合わせることが可能であることを示すため、Ｊ３軸およびＪ５軸の表示部分において、文字の左側のマークの色やマークの形状などの表示を変えることが示されている。また、それ以外の、Ｊ１軸、Ｊ２軸およびＪ６軸は、操作軸としてＪ４軸とは組み合わせることができないことを示すように、文字の左側のマークの表示が変えられている。
【０１２１】
一方、図１４（ｂ）では、Ｊ５軸が操作軸として既に選択されているとき、操作軸としてＪ４軸およびＪ６軸がＪ５軸に対して、操作軸として同時に組み合わせることが可能な軸であること、また、それ以外の軸に対しては、同時に組み合わせることが可能でないことを示すために、文字の左側のマークの表示が変えられている。
【０１２２】
このように、ロボット５０を構成する複数の軸の内、１つの軸を操作軸に設定したとき、他のどの軸を同時に選択することが可能か、または、可能でないかを視覚的に表示する。これによって、ロボット５０を構成する複数の軸の内、複数の軸の位置によらず回転軸の回転中心線が直交する２つの回転軸を操作軸として選択すべき場合のように、どの軸の組み合わせが可能であるかということが分かりにくい場合、操作軸の設定を容易におこなうことが可能となる。
【０１２３】
本発明の第８の実施形態においては、第１、第２、第３および第５の実施形態において、さらに、ロボットシステム１１が、教示操作装置７０のような表示装置を備え、当該表示装置は、操作軸設定部２４が操作軸を移動させるか否かを設定するときの設定条件を表示する。また表示装置は、教示操作装置７０とは別の装置としてもよい。また、表示装置は、入力および表示を可能とする教示操作装置７０とは異なり、表示のみをおこなう装置としてもよい。上記表示装置に、操作軸設定部２４が操作軸を移動させるか否かを設定するときの設定条件を表示することによって、どのようにして移動操作をおこなえば所望の軸を移動させることが可能となるかなどが分かりやすくなるので、移動操作時の操作性を向上させることが可能となる。
【０１２４】
本発明の第９の実施形態においては、第６および第７の実施形態において、さらに、教示操作装置が、ある軸が回転軸である場合、ロボット５０の現在の軸の位置をもとに、ロボット５０を構成する複数の軸の内、ある軸の回転中心線から、ロボット５０の先端部５８までの最短距離が所定閾値以下である場合、該軸の回転中心線の付近にロボット５０の先端部５８が存在することを示す、または、操作軸として該軸を含む軸の設定を設定可能としないことを示すことができる。
【０１２５】
ロボット５０の軸の位置によって、ある操作軸の回転中心線から、ロボット５０の先端部５８の位置までの最短距離が所定閾値より小さい場合、ロボット５０の先端部５８に並進方向の力を作用させることでは、その操作軸に対する操作力が適切に求められないため、その操作軸を意図した通りに移動させることができない場合がある。このようなことを操作者に通知し、場合によっては回避させるため、該軸の回転中心線の付近にロボット５０の先端部５８が存在することを示したり、操作軸として該軸を含む軸の設定を設定可能としないことを示したりする。
【０１２６】
また本発明の第６および第７の実施形態においては、教示操作装置７０から操作軸を設定するときに、操作軸や、操作軸の組み合わせにおける選択肢において、ある操作軸の回転中心線からロボット５０の先端部５８の位置までの最短距離が所定閾値より小さい軸を含む選択肢は選択できないようにしてもよい。また、教示操作装置７０から操作軸を設定するときに、ある軸を操作軸として選択したとき、選択された軸以外の軸において、そのような軸は選択不可である旨を示すことが好ましい。これによって、操作軸を適切に設定することが可能となるため、操作性を向上させることが可能となる。
【０１２７】
説明のために選定された特定の実施形態を参照して本発明が説明されたが、当業者には本発明の基本的概念及び範囲から逸脱することなく多数の変更が可能であることは明らかである。すなわち、本発明の技術的思想の範囲内で考えられる他の形態についても、本発明の範囲内に含まれる。
【符号の説明】
【０１２８】
１０    ロボット制御装置
１１    ロボットシステム
２１    力計測部
２２    操作力算出部
２３    操作指令部
２４    操作軸設定部
２５    記憶部
３１    操作軸
５０    ロボット
５１    Ｊ１軸
５２    Ｊ２軸
５３    Ｊ３軸
５４    Ｊ４軸
５５    Ｊ５軸
５６    Ｊ６軸
５７    フランジ部
５８    先端部
５９    台座
６０    操作者
７０    教示操作装置
７１    入力部
７２    表示出力部
【図１】
0005893666.tif 000002
【図２】
0005893666.tif 000003
【図３】
0005893666.tif 000004
【図４】
0005893666.tif 000005
【図５】
0005893666.tif 000006
【図６】
0005893666.tif 000007
【図７】
0005893666.tif 000008
【図８】
0005893666.tif 000009
【図９】
0005893666.tif 000010
【図１０】
0005893666.tif 000011
【図１１】
0005893666.tif 000012
【図１２】
0005893666.tif 000013
【図１３】
0005893666.tif 000014
【図１４】
0005893666.tif 000015