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