(57)【要約】【課題】ロボットの手先から分離した把持部を浮遊させた状態で移動しつつ、軌跡を教示するフロート教示では、操作者は教示中に手を離すことができない。【解決手段】把持部を固定状態と浮遊状態とを切替えながら教示を行うことができるロボットアームの教示装置を提供する。【選択図】図１
2013071239.tif 000002
【特許請求の範囲】
【請求項１】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置。
【請求項２】
前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さを支えるための所定の条件を満たす場合にのみ、前記固定を行う判定を行う、
請求項１に記載のロボットアームの制御装置。
【請求項３】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項１に記載のロボットアームの制御装置。
【請求項４】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項２に記載のロボットアームの制御装置。
【請求項５】
前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値よりも大きい場合にのみ、前記固定を解除し、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値以下の場合には前記固定行う判定を行い、
前記制御部は、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行い、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行う、
請求項２に記載のロボットアームの制御装置。
【請求項６】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記人がダイレクトティーチングを選択しているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項１に記載のロボットアームの制御装置。
【請求項７】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法。
【請求項８】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラム。
【請求項９】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路。
【請求項１０】
請求項１〜６のいずれか１つに記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を生成し、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、並びに、集積電子回路に関する。
【背景技術】
【０００２】
近年、製造現場では多品種少量生産のためモデルチェンジが頻繁に起こる。セル生産が盛んに行われている近年の製造現場において、ネジ締め作業若しくは部品の嵌合作業、装着作業、フレキシブル基板などの挿入作業、又は、研磨作業などをロボットにより自動化するためには、多種多様な部品又は作業手順に柔軟に対応する必要がある。部品が変わるごとに組み立てる位置又は向きなどが変わり、作業を行う順番も変わるので、それらの変化に対応する必要がある。また、フレキシブル基板の挿入作業などのように柔軟物を取り扱う作業などは、作業が複雑であり、依然として人手中心で行っている。人は、柔軟物が対象物に接触し、柔軟物がたわむ際の手に伝わる反力によって、柔軟物のたわみ具合又は位置を推測し、それによって、複雑な作業を行うことができる。
【０００３】
これに対して、ロボットにおいては、試行ごとにたわみ方又は位置などが変わる柔軟物の力情報又は位置情報を定式化できないため、得られる反力に応じた複雑な作業を行うことは非常に困難である。以上の問題を解決し、そのような人手中心で行っている作業をロボットにより自動化する需要は大きい。
【０００４】
そこで、従来、ティーチングペンダント又はプログラミングを用いて、ロボットに作業を教示する方法が用いられている。しかしながら、それらの方法により教示を行うと、教示工数が非常に増える。また、ロボットの複数の関節を同時に動かすような、複雑な動きが必要な作業は、教示できないこともある。
【０００５】
以上のように、ティーチングペンダント又はプログラミングを用いる方法では限界がある。
【０００６】
このため、従来は、ロボットを触って教示するダイレクトティーチングを用いて簡単に教示する方法が用いられている。ダイレクトティーチングでは、直感的な操作ができること、又は、ロボットが対象物に接触した際に、物理的な反力を作業する人が感じることによって、反力に応じた操作ができることなどの長所がある。一方で、ロボット自体が重い場合は、人がロボットを支えることができずロボットの操作ができないこと、又は、ロボット自体が重いためロボットが対象物に接触した際の物理的な反力を人が感じられないこと、などの短所も併せ持つ。このように操作性が悪いロボットに対して教示を行う際に、そのロボットの操作性を改善することは非常に重要である。
【０００７】
ダイレクトティーチングに関して、第１のロボットアームの手先先端部にバネで取り付けられた第２のロボットアームを持つ構成が考えられている。２つのロボットアームを持つ構成をすることによって、従来の１つのロボットアームのみの構成と比較して、より精密なダイレクトティーチングを可能とする(特許文献１参照）。
【０００８】
また、保持部材の動きを水平方向に限定し、外部環境（保持している対象物の変位量又は力情報）を検出しインピーダンス制御を行うことによって、比較的重い対象物を保持した場合においても小さな力で保持部材を変位させることができる方法が用いられている(特許文献２参照）。
【０００９】
一方で、製品の運搬作業又は重い部品の嵌合作業において、ティーチングペンダント又はプログラミングを用いる方法では複雑であるためにロボットでは実現できない場合、二人の作業者によって作業が行われていた。そのような作業を、ロボットを用いて、作業者の労力を軽減することは非常に望まれている。このような作業を自動化する場合、ダイレクトティーチングでは、製品が重くて作業者がロボットに教示することができない。そこで、ロボットが把持した重い製品を作業者と協調して運搬する協調搬送という方法を用いる。
【００１０】
協調搬送に関して、小さい操作力で協調搬送できるようにロボットにアシスト力を発生させることが考えられている。このアシスト力の値は、以下のようにして求める。すなわち、ロボットの関節角度と、手先位置と、ロボットと協調作業する作業者が対象物に加える力とをそれぞれ検出し、それらの値より作業者の手先粘性係数と、弾性係数と、作業者の手先自然長位置とをそれぞれ推定し、それらの値に基づいて、アシスト力の値を求める（特許文献３参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平４−１６４５８４号公報
【特許文献２】特開２００６−２４７７８７号公報
【特許文献３】特開２００７−７６８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１においては、手先の先端部に取り付けられたロボットアームはバネで取り付けられているため、バネの弾性力の影響を受けるので、操作性に課題が残る。また、第２のロボットアームと第１のロボットアームが連動して動かないため、作業領域の広い作業を行う場合には、第１のロボットアームを動かした後に第２のロボットアームを動かさなければならないので、作業工数が増えてしまう。
【００１３】
特許文献２においては、保持部材の動きは水平方向にのみ限定されており、他の方向には動かすことが困難である。また、保持部材とロボットアームは接触しており、保持部材の重力又は接触の摩擦力の影響を受けるので、操作性に課題が残る。
【００１４】
特許文献３においては、ロボットがアシスト力を発生しているものの、推定値の誤差によって対象物又はロボットの重さを人が感じることとなり、操作性の課題が残る。また、力センサを用いる必要があり、大きなコストがかかってしまう。
【００１５】
本発明の目的は、このような課題に鑑みてなされたものであり、協調搬送、又は、ダイレクトティーチングを行う際のロボットアームに対する操作性を改善することができ、ロボットアームを容易に動かすことができる、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路を提供することにある。
【課題を解決するための手段】
【００１６】
前記の目的を達成するために、本発明は以下のように構成する。
【００１７】
本発明の第１態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置を提供する。
【００１８】
本発明の第７態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法を提供する。
【００１９】
本発明の第８態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラムを提供する。
【００２０】
本発明の第９態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路を提供する。
本発明の第１０態様によれば、第１〜６のいずれか１つの態様に記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボットを提供する。
【発明の効果】
【００２１】
本発明のロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路によれば、ロボットアームの本体と、人が把持部を介して把持する浮遊部とが機構的に分離しており、人が把持部を介して浮遊部を操作することによってロボットアームを操作することができる。その結果、教示操作時に、浮遊部に対するロボットアーム本体の慣性の影響を除去でき、協調搬送、又は、ダイレクトティーチングを行う際のロボットアームに対する操作性を非常に良くすることができ、ロボットアームを容易に動かすことができる。
【００２２】
また、浮遊部に外部から加えられた力の情報を取得する力取得部をさらに備えているので、ロボットアームで接触を伴う作業を行う場合において、接触時の反力を把持部を介して人が感じやすくすることもできる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１実施形態におけるロボットアームの構成を、ロボット本体と浮遊部が分離された場合について示す図。
【図２】本発明の第１実施形態におけるロボットアームの構成を、ロボット本体と浮遊部が一体化された場合について示す図
【図３Ａ】本発明の第１実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとの平面図。
【図３Ｂ】本発明の第１実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとを示す図３Ａ中のＡ−Ａ線の断面図。
【図３Ｃ】本発明の第１実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとを示す図３Ａ中のＢ−Ｂ線の断面図。
【図４Ａ】本発明の第１実施形態のロボットにおける落下時の手先効果部と、把持部と、相対位置センサとの断面図。
【図４Ｂ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｃ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｄ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｅ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｆ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｇ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｈ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｉ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｊ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図４Ｋ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの平面図。
【図４Ｌ】本発明の第１実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの平面図。
【図５Ａ】本発明の第１実施形態のロボットにおける手先効果部、把持部、相対位置センサ、緩衝材の平面図。
【図５Ｂ】本発明の第１実施形態のロボットにおける手先効果部、把持部、緩衝材の側面図。
【図５Ｃ】本発明の第１実施形態のロボットにおける接触時の手先効果部、把持部、相対位置センサ、緩衝材の平面図。
【図５Ｄ】本発明の第１実施形態のロボットにおける接触時の手先効果部、把持部、緩衝材の側面図。
【図６】本発明の第１実施形態におけるロボット６０１の構成を示す図
【図７】本発明の第１実施形態のロボットにおけるロボットアームの説明図。
【図８Ａ】本発明の第１実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図８Ｂ】本発明の第１実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図９】本発明の第１実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図１０】本発明の第１実施形態のロボットにおける相対位置情報を取得してから追従制御を行うまでの処理の流れを示すフローチャート。
【図１１】本発明の第１実施形態のロボットにおける固定判定保持部及びモード選択保持部がそれぞれ保持する値と、固定判定部が行う判定とを示す図。
【図１２】本発明の第１実施形態における固定判定部が行う処理の流れを示すフローチャート。
【図１３】本発明の第２実施形態のロボットにおける制御装置のブロック図。
【図１４】本発明の第３実施形態のロボットにおける制御装置のブロック図。
【図１５】本発明の第４実施形態のロボットにおける制御装置のブロック図。
【図１６】本発明の第１実施形態における制御部が行う処理の流れを示すフローチャート。
【図１７】本発明の第２実施形態における制御部が行う処理の流れを示すフローチャート。
【図１８】本発明の第３実施形態における制御部が行う処理の流れを示すフローチャート。
【図１９】本発明の第４実施形態におけるモード選択部が行う処理の流れを示すフローチャート。
【図２０】本発明の第４実施形態における制御部が行う処理の流れを示すフローチャート。
【図２１】本発明の第２実施形態と第４実施形態との組み合わせにおける制御部が行う処理の流れを示すフローチャート。
【発明を実施するための形態】
【００２４】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【００２５】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【００２６】
本発明の第１態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置を提供する。
【００２７】
本発明の第２態様によれば、前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さを支えるための所定の条件を満たす場合にのみ、前記固定を行う判定を行う、
第１の態様に記載のロボットアームの制御装置を提供する。
【００２８】
本発明の第３態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第１の態様に記載のロボットアームの制御装置を提供する。
【００２９】
本発明の第４態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第２の態様に記載のロボットアームの制御装置を提供する。
【００３０】
本発明の第５態様によれば、前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値よりも大きい場合にのみ、前記固定を解除し、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値以下の場合には前記固定行う判定を行い、
前記制御部は、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行い、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行う、
第２の態様に記載のロボットアームの制御装置を提供する。
【００３１】
本発明の第６態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記人がダイレクトティーチングを選択しているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第１の態様に記載のロボットアームの制御装置を提供する。
【００３２】
本発明の第７態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法を提供する。
【００３３】
本発明の第８態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラムを提供する。
【００３４】
本発明の第９態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路を提供する。
本発明の第１０態様によれば、第１〜６のいずれか１つの態様に記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボットを提供する。
【００３５】
（第１実施形態）
図１は、本発明の第１実施形態における、ロボットアーム１００を含むロボット６０１を示す。
【００３６】
ロボットアーム１００は、ロボットアーム１００の本体の一例であるマニピュレータ１０１と、手先効果部の一例としてのロボットハンド１１２０と、ロボットアーム１００とは別に移動する浮遊部１０３Ａとを備える。ここで、ロボット６０１は、ロボットアーム１００と、ロボットアームの制御装置６０２とで構成されている。
【００３７】
マニピュレータ１０１は、複数の多関節機構を有し、複数の関節軸（１０１ａ、１０１ｂ、１０１ｃ）を中心に各リンク１０１ｄ、１０１ｅが回転駆動する。マニピュレータ１０１の手先（先端側のリンク１０１ｅの先端）には、ロボットハンド１１２０が関節軸１０１ｃで回動可能に取り付けられている。具体的には、枠１１２０は、マニュピュレータ１０１の手先に取り付けられた上面部１０３ａと、上面部１０３ａの四辺にそれぞれ配置された側面部１０３ｂと、各側面部１０３ｂの中央部の下端より内向きに大略直角方向に突出した脱落防止部材の一例としての突起部１０３ｃとで構成されている。この枠１１２０の各側面部１０３ｂには、さらに、リニアアクチュエータ１１２１を備えているが、リニアアクチュエータ１１２１については後述する。
【００３８】
ロボットハンド１１２０は、先端側のリンク１０１ｅの先端とは反対側に開口１１２０ａを有する四角形箱体状の枠１１２０で構成されている。ロボットハンド１１２０である四角形箱体状の枠１１２０内には、浮遊部１０３Ａが相対的に移動可能に配置されている。すなわち、浮遊部１０３Ａは、その周囲に隙間９０をあけて、下端開口１１２０ａを除き、枠１１２０で囲まれており、かつ、下端開口１１２０ａは浮遊部１０３Ａより小さくして、枠１１２０内から浮遊部１０３Ａが抜け落ちないようにしている。
【００３９】
この浮遊部１０３Ａは、可動部１０２Ａと、複数の相対位置センサ１０４と、把持部１０３１と、部品保持部１０３４と、力センサ１０３３とを備えている。
【００４０】
可動部１０２Ａは、平面が正方形の直方体で構成され、人が作業を行う際に手で把持するための部分であり、ロボットハンド１１２０と分離した構造となっている。
【００４１】
図１において、可動部１０２Ａの下面には、それぞれ、下向きに突出した棒状の把持部１０３１と棒状の部品保持部１０３４とが固定されている。
【００４２】
把持部１０３１は、基端（図１の上端）が力センサ１０３３を介して浮遊部１０３Ａに固定されている。第１実施形態では、操作者が作業を行う際に、操作者が手で把持部１０３１を握って浮遊部１０３Ａを枠１１２０に対して移動させるようにしている。
【００４３】
力センサ１０３３は、把持部１０３１と可動部１０２Ａとの接続部分に配置されて、把持部１０３１に人が加えた力を取得する。第１実施形態では、力センサ１０３３は６軸の力センサで構成している。
【００４４】
部品保持部１０３４は、基端（図１の上端）が把持部１０３１の近くの浮遊部１０３Ａに固定され、先端（図１の下端）に部品を保持する。部品保持部１０３４は、作業対象の部品、例えば、ネジ、又は、フレキシブルケーブルを保持する。部品保持部１０３４は、把持部１０３１よりも長くして、把持部１０３１を手で握ったとき、把持部１０３１の下端よりも下方に、部品保持部１０３４の下端に固定された部品が操作者に見えるようにして、浮遊部１０３Ａの移動が円滑に行なえるようにしている。
【００４５】
可動部１０２Ａ内には、複数の相対位置センサ１０４を内蔵している。各相対位置センサ１０４は距離センサで構成されることにより、ロボットハンド１１２０である枠１１２０に対する可動部１０２Ａの相対位置（すなわち、相対位置の情報、言い換えれば、測定値又は計測値）を測定する機能を有する。第１実施形態では、６個の相対位置センサ１０４を用いて、相対位置を測定する（詳細については後述する）。
【００４６】
マニュピュレータ１０１には、それぞれの関節軸１０１ａ、１０１ｂ、１０１ｃを正逆回転駆動させるモータ７１３を内蔵している。図１では、代表的に１つの枠で表現しているが、実際には、マニュピュレータ１０１の各関節軸１０１ａ、１０１ｂ、１０１ｃに対してそれぞれモータ７１３を配置している。マニュピュレータ１０１は、さらに、各関節軸１０１ａ、１０１ｂ、１０１ｃの位置を取得するエンコーダ７１４を内蔵している。図１では、代表的に１つの枠で表現しているが、実際には、マニュピュレータ１０１の各関節軸１０１ａ、１０１ｂ、１０１ｃに対してそれぞれエンコーダ７１４を配置している。
【００４７】
各リニアアクチュエータ１１２１は、先端が先すぼまり形状の板状係合部１１２１ａを、可動部１０２Ａの側面に対して、前後させる駆動装置例えばモータ１１２１Ｍを有している。図１では、代表的に１つの枠で表現しているが、実際には、一対の対向して配置されたリニアアクチュエータ１１２１に対してそれぞれモータ１１２１Ｍが存在する。各リニアアクチュエータ１１２１は、さらに、各リニアアクチュエータ１１２１の位置又は伸縮状態を取得するエンコーダ１１２１Ｅを有している。図１では、代表的に１つの枠で表現しているが、実際には、各リニアアクチュエータ１１２１に対してそれぞれエンコーダ１１２１Ｅが存在する。
【００４８】
一対のリニアアクチュエータ１１２１は、それぞれの係合部１１２１ａが前進して可動部１０２Ａの係合凹部１０２Ａａに接触して係合し、相対移動不可に枠１１２０に対して浮遊部１０３Ａを固定する状態にするか、それぞれの係合部１１２１ａが後退して可動部１０２Ａの係合凹部１０２Ａａとの間に隙間ができて係合解除され、枠１１２０から浮遊部１０３Ａを分離した状態にするかを切換える部材である。リニアアクチュエータ１１２１は、側面部１０３ｂにそれぞれ配置されていて、係合部１１２１ａが前進又は後退することにより伸縮自在となっている。図１は、係合部１１２１ａが後退して縮んだ状態のリニアアクチュエータ１１２１を示す図である。この状態では、それぞれの係合部１１２１ａと可動部１０２Ａの係合凹部１０２Ａａとの間に隙間ができて係合解除され、枠１１２０は、浮遊部１０３Ａと分離している。図２は、係合部１１２１ａが前進して伸びた状態のリニアアクチュエータ１２１１を示す図である。この状態では、それぞれの係合部１１２１ａが可動部１０２Ａの係合凹部１０２Ａａに接触して係合し、リニアアクチュエータ１２１１は、浮遊部１０３Ａに接触しており、可動部１０２Ａを両側から挟みこんで固定している。リニアアクチュエータ１２１１は、図示しない電源によって動作するモータ７１３を正逆回転させることによって、伸縮を行う。
【００４９】
以下、枠１１２０と、可動部１０２Ａと、相対位置センサ１０４とについて図３Ａ〜図３Ｃを用いて詳しく説明する。
【００５０】
図３Ａは、平面が正方形の直方体状の可動部１０２Ａと、枠１１２０と、相対位置センサ１０４との底面図であり、枠１１２０の図３Ａの裏面にマニピュレータ１０１の手先が連結される。図３Ｂは、枠１１２０と、可動部１０２Ａと、相対位置センサ１０４との図３Ａ中のＡ−Ａ線の断面図であり、矢印２Ｂから見た断面図である。図３Ｃは、枠１１２０と、可動部１０２Ａと、相対位置センサ１０４との図３Ａ中のＢ−Ｂ線の断面図であり、矢印２Ｃから見た断面図である。
【００５１】
なお、第１実施形態では、枠１１２０の形状は、図３Ａに示す四角形例えば正方形の箱体状の枠形状をしているが、長方形、多角形、若しくは、円形の平面を有する柱状の物体、又は、球体など、いかなる形状も可能である。
【００５２】
枠１１２０の上面部１０３ａと４個の側面部１０３ｂとにより、枠１１２０の内側に直方体の凹空間１０３ｄを形成する。凹空間１０３ｄは、所定の隙間（空間）９０を有して可動部１０２Ａを内部に配置できる空間である。よって、枠１１２０の上面部１０３ａと４個の側面部１０３ｂと４個の突起部１０３ｃとのそれぞれと可動部１０２Ａとのそれぞれ対向する面との間に、それぞれ隙間９０を保持可能としている。
【００５３】
各突起部１０３ｃは、各側面部１０３ｂの上面部１０３ａと対向する部分に設けられた板部材であり、凹空間１０３ｄの内部に配置した枠１１２０が、図４Ａに示すように箱形状内部の凹空間１０３ｄから飛び出るのを防止する脱落防止部材の一例として機能する。
【００５４】
可動部１０２Ａの形状は、図３Ａ〜図３Ｃに示す正方形形状をしているが、長方形、多角形、若しくは、円形の平面を有する箱状の物体、又は、球体など、いかなる形状も可能である。
【００５５】
次に、枠１１２０と可動部１０２Ａとの間の各空間（隙間）９０（幅Δｘ〜Δγ）について、図３Ａ〜図３Ｃを用いて説明する。
【００５６】
ここでは、図３Ａの横方向をｘ軸方向とし、縦方向をｙ軸方向とし、図３Ｂ及び図３Ｃの縦方向をｚ軸方向と定義している。すると、隙間９０のｘ軸方向の幅Δｘは、ｘ軸方向と直交するｙ軸方向沿いにそれぞれ配置されている、可動部１０２Ａの側面部１０２ｂと枠１１２０の側面部１０３ｂとのｘ軸方向の隙間の間隔を示す。隙間９０のｙ軸方向の幅Δｙは、ｘ軸方向沿いにそれぞれ配置されている、可動部１０２Ａの正面部１０２ａ又は裏面部１０２ｅと枠１１２０の側面部１０３ｂとのｙ軸方向の隙間の間隔を示す。隙間９０のｚ軸方向の幅Δｚは、ｚ軸方向と直交する方向沿いにそれぞれ配置されている、可動部１０２Ａの上面部１０２ｃと枠１１２０の上面部１０３ａとのｚ軸方向の隙間の間隔を示す。隙間９０のα方向の幅Δαは、可動部１０２Ａの上面部１０２ｃと枠１１２０の上面部１０３ａとのｘ軸まわりの回転方向αの隙間の間隔を示す。隙間９０のβ方向の幅Δβは、可動部１０２Ａの上面部１０２ｃと枠１１２０の上面部１０３ａとのｙ軸まわりの回転方向βの隙間の間隔を示す。隙間９０のγ方向の幅Δγは、可動部１０２Ａの正面部１０２aと枠１１２０の側面部１０３ｂとのｚ軸まわりの回転方向γの隙間の間隔を示す。
【００５７】
ここで、各軸（ｘ〜γ）について、図３Ａ〜図３Ｃを用いて説明する。ｘ軸は、可動部１０２Ａの中心部１０２ｄから側面部１０２ｂに対して垂直に延びる軸であり、図３Ａ中の左方向を＋とする。ｙ軸は、可動部１０２Ａの中心部１０２ｄから正面部１０２ａ又は裏面部１０２ｅに対して垂直に延びる軸であり、図３Ａ中の下方向を＋とする。ｚ軸は、可動部１０２Ａの中心部１０２ｄから上面部１０２ｃに垂直に延びる軸であり、図３Ｂ中の下方向を＋とする。ｘ軸周りの回転αは、ｘ軸に対して左手の法則を適用させる。ｙ軸周りの回転βは、ｙ軸に対して左手の法則を適用させる。ｚ軸周りの回転γは、ｚ軸に対して左手の法則を適用させる。
【００５８】
図３Ａ〜図３Ｃの状態における可動部１０２Ａと枠１１２０との間の隙間９０の間隔（ギャップ）Δｘ、Δｙ、Δｚは、それぞれ、具体的な一例として３ｍｍとなっており、その隙間分だけ、枠１１２０に対して可動部１０２Ａをｘ軸方向、ｙ軸方向、又は、ｚ軸方向にそれぞれ動かすことができる。したがって、図３Ａ〜図３Ｃの状態においては、可動部１０２Ａの可動範囲（枠１１２０と分離した範囲）は、ｘ、ｙ、ｚ軸に対して±３ｍｍとなる。また、可動部１０２Ａの回転の可動範囲（Δα、Δβ、Δγ）は、α、β、γ方向に対して、それぞれ、一例として±３／１００ラジアンとなっている。枠１１２０の形状に関しては、可動部１０２Ａと同様にいかなる形状も可能である。
【００５９】
また、可動部１０２Ａを人が把持しない場合においても可動部１０２Ａが枠１１２０から落下しないように、図３Ａ〜図３Ｃに示すように枠１１２０の４個の突起部１０３ｃが可動部１０２Ａを囲むか若しくは可動部１０２Ａに係合する形状となっているので、どの方向を向いても可動部１０２Ａは枠１１２０から落下しない構造となっている（図４Ａ〜図４Ｆ参照）。すなわち、図４Ａは、可動部１０２Ａが枠１１２０に対して最も下方の位置に移動した場合に、４個の突起部１０３ｃが可動部１０２Ａの底面部１０２ｆに接触して脱落防止している状態を示している。図４Ｂは、枠１１２０と可動部１０２Ａとの位置関係が、図４Ａの状態とは上下逆さまとなり、枠１１２０の上面部１０３ａが可動部１０２Ａの上面部１０２ｃに接触している状態を示している。図４Ｃは、枠１１２０と可動部１０２Ａとの位置関係が、図４Ａの状態から反時計方向に９０度回転した状態であり、枠１１２０の側面部１０３ｂが可動部１０２Ａの側面部１０２ｂに接触している状態を示している。図４Ｄは、枠１１２０と可動部１０２Ａとの位置関係が、図４Ａの状態から時計方向に９０度回転した状態であり、枠１１２０の側面部１０３ｂが可動部１０２Ａの側面部１０２ｂに接触している状態を示している。図４Ｅは、枠１１２０と可動部１０２Ａとの位置関係が、図４Ｃの状態から左右方向の軸周りに上方向に９０度回転した状態であり、枠１１２０の側面部１０３ｂが可動部１０２Ａの裏面部１０２ｅに接触している状態を示している。図４Ｆは、枠１１２０と可動部１０２Ａとの位置関係が、図４Ｃの状態から左右方向の軸周りに上方向に図４Ｅとは逆に９０度回転した状態であり、枠１１２０の側面部１０３ｂが可動部１０２Ａの表面部１０２ａに接触している状態を示している。
【００６０】
また、同様に、どの方向に回転しても、可動部１０２Ａは枠１１２０から落下しない構造となっている（図４Ｇ〜図４Ｌ参照）。すなわち、図４Ｇ〜図４Ｊは、可動部１０２Ａの側面部１０２ｂ又は表面部１０２ａ（裏面部１０２ｅ）のいずれもが、図４Ｇ〜図４Ｊにおいて、時計方向又は反時計方向に回転しても、右側の角度部又は左側の角度部が枠１１２０の突起部１０３ｃに接触して、枠１１２０は可動部１０２Ａから落下しない状態を示している。図４Ｋ〜図４Ｌは、可動部１０２Ａの底面部１０２ｆが、図４Ｋ〜図４Ｌにおいて、時計方向又は反時計方向に回転しても、可動部１０２Ａの角度部が枠１１２０の側面部１０３ｂに接触してあまり回転しないように規制され、かつ、可動部１０２Ａの各辺の一部が枠１１２０の突起部１０３ｃに接触して、可動部１０２Ａが枠１１２０から落下しない状態を示している。
【００６１】
なお、このように、可動部１０２Ａと枠１１２０とが接触する際に、衝突を和らげる緩衝材４０１を可動部１０２Ａの角部に取り付けることも可能である（図５Ａ、図５Ｂ参照）。図５Ａ及び図５Ｂに示す通り、緩衝材４０１を可動部１０２Ａの上下左右の各角部に取り付けた場合においても、図３Ａ〜図３Ｃで定義した隙間（Δｘ〜Δγ）の値は変わらない。図５Ｃ及び図５Ｄに緩衝材４０１と枠１１２０が接触した際の状態を示す。図５Ｃ及び図５Ｄより、緩衝材４０１を可動部１０２Ａに取り付けることによって、緩衝材４０１のみが枠１１２０と接触しており、可動部１０２Ａと枠１１２０とは直接接触していないことがわかる。
【００６２】
相対位置センサ１０４は、枠１１２０に対する可動部１０２Ａの相対位置Δｒを検出するセンサである。ここで、Δｒは、Δｘ〜Δγの総称を意味する。
【００６３】
ここで、相対位置Δｒは次式（１）により表され、各相対位置は図３Ａ〜図３Ｃに示す通りである。
【００６４】
【数１】
2013071239.tif 000003
図３Ａ〜図３Ｃに示すように、相対位置センサ１０４は可動部１０２Ａに内蔵された構造になっており、具体的にはギャップセンサを用いている。すなわち、可動部１０２Ａの正面部１０２ａの近傍内に、正面部１０２ａの面と平行にかつｘ軸方向沿いに丸棒状のギャップセンサｓｘ１を配置して、ギャップセンサｓｘ１の一端が可動部１０２Ａの側面部１０２ｂに露出して、隙間９０のｘ軸方向の幅Δｘを計測している。可動部１０２Ａの側面部１０２ｂの近傍内には、側面部１０２ｂの面と平行にかつｚ軸方向沿いに丸棒状のギャップセンサｓｚ３を配置して、ギャップセンサｓｚ３の一端が可動部１０２Ａの上面部１０２ｃに露出して、隙間９０のｚ軸方向の幅Δｚを計測している。可動部１０２Ａの裏面部１０２ｅの近傍内に、側面部１０２ｂの面と平行にかつｙ軸方向沿いにそれぞれ丸棒状の一対のギャップセンサｓｙ１、ｓｙ２を配置して、一対のギャップセンサｓｙ１、ｓｙ２の各一端が可動部１０２Ａの裏面部１０２ｅに露出して、隙間９０のｙ軸方向の幅Δｙをそれぞれ計測している。可動部１０２Ａの裏面部１０２ｅの近傍内には、側面部１０２ｂの面と平行にかつｚ軸方向沿いに丸棒状の一対のギャップセンサｓｚ２、ｓｚ３を配置して、一対のギャップセンサｓｚ２、ｓｚ３の各一端が可動部１０２Ａの上面部１０２ｃに露出して、隙間９０のｚ軸方向の幅Δｚを計測している。
【００６５】
よって、隙間９０のｙ軸方向の幅Δｙは、２個のギャップセンサｓｙ１、ｓｙ２で計測された少なくとも２つの計測値ｙ１、ｙ２の平均を、後述する相対位置情報取得部６０７で算出して採用する。隙間９０のｚ軸方向の幅Δｚは、３個のギャップセンサｓｚ１、ｓｚ２、ｓｚ３で計測された少なくとも３つの計測値ｚ１、ｚ２、ｚ３の平均を、後述する相対位置情報取得部６０７で算出して採用する。なお、隙間９０のｘ軸方向の幅Δｘは、１個のギャップセンサｓｘで計測された少なくとも１つの計測値ｘ１をそのまま採用するか、１個のギャップセンサｓｘで複数回計測を行い、その平均値を、後述する相対位置情報取得部６０７で算出して採用する。幅Δｙ又は幅Δｚも、同様に、それぞれのギャップセンサで複数回計測を行い、それらの平均値をそれぞれｙ１、ｙ２、ｚ１、ｚ２、ｚ３とした上で、前記した平均値を算出して採用するようにしてもよい。よって、各計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３を計算して得られた結果が幅Δｘ〜Δγとなる。
【００６６】
しかしながら、枠１１２０に対する可動部１０２Ａの相対位置Δｒを検出する方法としては、ギャップセンサによる検出に代えて、カメラで枠１１２０に対する可動部１０２Ａの画像を取得して相対位置Δｒを検出する方法など、他の方法を用いることも可能である。
【００６７】
ここでは、図３Ａ〜図３Ｃに示すギャップセンサを６個用いる方法について説明する。６個のギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３を図３Ａ〜図３Ｃに示すように配置し、ｘｙｚのそれぞれの軸の可動部１０２Ａと枠１１２０との隙間ｇを測定する（ギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３のそれぞれの計測値（測定値）ｇから相対位置Δｒを導出する方法は後述する）。なお、隙間ｇは、ギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３のそれぞれの計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３の総称を意味する。ここで、隙間ｇは、次式（２）により表されて、それぞれのギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３の計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３を表し、隙間ｇは図３Ａ〜図３Ｃに示す通りである。なお、各計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３だけでは回転方向が表現されていない。そこで、各計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３を用いて並進方向と回転方向を求めた結果がΔｘ〜Δγとしている。よって、各計測値ｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３はギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３の計測値を表しただけのものである。それに対して、Δｘ〜Δγは各計測値を用いて並進方向と回転方向の相対位置を計算した結果、導出した値となる。
【００６８】
【数２】
2013071239.tif 000004
また、図３Ａ〜図３Ｃに示すように、ｙ軸方向のギャップセンサｓｙ１−ｓｙ２間の間隔ｐｙ１２、ｚ軸方向のギャップセンサｓｚ１−ｓｚ２間の間隔ｐｚ１２、ｚ軸方向のギャップセンサｓｚ２−ｓｚ３間の間隔ｐｚ２３は１００ｍｍとする。
【００６９】
図６は、本発明の第１実施形態のロボット６０１におけるロボットアーム１００のブロック図を示す。図６において、ロボットアーム１００は、マニピュレータ１０１と、ロボットアーム１００の制御装置６０２とで構成されている。
【００７０】
ロボットアーム１００の制御装置６０２は、制御装置本体部６０３と、周辺装置６０４とで構成されている。制御装置本体部６０３は、制御部６０５と、追従制御部６０６と、相対位置情報取得部６０７となどで構成されている。詳細については、後述する。
【００７１】
周辺装置６０４は、入出力ＩＦ（インターフェース）６０８ＩＦと、モータドライバ６０９Ｍとで構成されている。入出力ＩＦ６０８ＩＦには、制御装置６０２での制御動作のオン・オフスイッチも含まれている。それぞれの機能について、以下に説明する。
【００７２】
相対位置情報取得部６０７は、入出力ＩＦ６０８ＩＦから取得した相対位置センサ１０４であるギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３のそれぞれの計測値ｇを基に、枠１１２０に対する可動部１０２Ａの相対位置Δｒを求める。求めた相対位置Δｒである相対位置情報を、相対位置情報取得部６０７から追従制御部６０６に出力する。ここで、ギャップセンサｓｙ１−ｓｙ２間の間隔と、ギャップセンサｓｚ１−ｓｚ２間の間隔と、ギャップセンサｓｚ２−ｓｚ３間の間隔とをそれぞれｐとし、ギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３のそれぞれの計測値をｘ１、ｙ１、ｙ２、ｚ１、ｚ２、ｚ３とし、枠１１２０に対する可動部１０２Ａの相対位置をΔｒとすると、Δｒは、相対位置情報取得部６０７により、次式（３）より求まる。
【００７３】
【数３】
2013071239.tif 000005
追従制御部６０６は、相対位置情報取得部６０７から取得した枠１１２０に対する可動部１０２Ａの相対位置情報から、その相対位置情報が所定の閾値の範囲内に収まるような移動量を求める。求めた移動量の情報は、追従制御部６０６から制御部６０５に出力する。所定の閾値の範囲とは、ギャップセンサｓｙ１−ｓｙ２間の間隔と、ギャップセンサｓｚ１−ｓｚ２間の間隔と、ギャップセンサｓｚ２−ｓｚ３間の間隔とをそれぞれｐとするとき、定数（例えば、０．１）を掛けた範囲（−０．１ｐ〜０．１ｐ）とする。
【００７４】
また、追従制御部６０６による移動量の求め方を以下に説明する。枠１１２０に対する可動部１０２Ａの相対位置をΔｒ（式（３）参照）とし、相対位置の目標値をΔｒｄとし、求める移動量をｙとすると、追従制御部６０６により、ｙ＝ｋ（Δｒｄ−Δｒ）より、移動量ｙは求まる（ここで、ｋは定数（例えば、１．０））。ただし、枠１１２０に対する可動部１０２Ａの相対位置Δｒが閾値内に収まっている場合は、移動量ｙを０とする。定数ｋの値は、操作者である人がキーボード又はマウス又はタッチパネルなどの入力装置６０８ｄを使用して入出力ＩＦ６０８ＩＦから入力される値によって決定される。ただし、相対位置の目標値Δｒｄは次式（４）で表され、各ギャップセンサの値ｇが３ｍｍのときをΔｒｄ＝０と定め、ここでは、相対位置の目標値Δｒｄを０とする。また、式（４）中で使用されるΔｘｄ、Δｙｄ、Δｚｄ、Δαｄ、Δβｄ、Δγｄについて説明する。Δｘｄは、図３Ａ中のｘ軸に対する平行移動方向の相対位置Δｘの目標値である。Δｙｄは、図３Ａ中のｙ軸に対する平行移動方向の相対位置Δｙの目標値である。Δｚｄは、図３Ａ中のｚ軸に対する平行移動方向の相対位置Δｚの目標値である。Δαｄは、図３Ａ中のｘ軸に対する回転方向の相対位置Δαの目標値である。Δβｄは、図３Ａ中のｙ軸に対する回転方向の相対位置Δβの目標値である。Δγｄは、図３Ａ中のｚ軸に対する回転方向の相対位置Δγの目標値である。相対位置の目標値Δｒｄが０の場合は、Δｘｄ、Δｙｄ、Δｚｄ、Δαｄ、Δβｄ、Δγｄの値はいずれも０である。
【００７５】
【数４】
2013071239.tif 000006
制御部６０５は、入出力ＩＦ６０８ＩＦに内蔵されたタイマーを利用して、ある一定時間毎（例えば、１ｍｓ毎）に、追従制御部６０６から制御部６０５に入力される移動量情報を入出力ＩＦ６０８ＩＦに出力する。
【００７６】
入出力ＩＦ６０８ＩＦは、マニピュレータ１０１から取得したギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３の計測値ｇと、入出力ＩＦ６０８ＩＦに内蔵されたタイマーからの時間情報とを相対位置情報取得部６０７に出力する。また、制御部６０５から取得した移動量情報を、入出力ＩＦ６０８ＩＦはモータドライバ６０９Ｍに出力する。追従制御部６０６で使用する定数の値が、人がキーボード又はマウス又はタッチパネルなどの入力装置６０８ｄを使用して入出力ＩＦ６０８ＩＦに入力でき、入出力ＩＦ６０８ＩＦに入力された値を、入出力ＩＦ６０８ＩＦから追従制御部６０６に出力する。
【００７７】
モータドライバ６０９Ｍは、入出力ＩＦ６０８ＩＦから取得した移動量情報を基に、マニピュレータ１０１を制御するために、マニピュレータ１０１のそれぞれのモータ７１３への指令値をマニピュレータ１０１に出力する。
【００７８】
マニピュレータ１０１は、入出力ＩＦ６０８ＩＦに内蔵されたタイマーを利用して、ある一定時間毎（例えば、１ｍｓ毎）に、マニピュレータ１０１の位置情報をマニピュレータ１０１の各エンコーダ７１４から入出力ＩＦ６０８ＩＦに出力する。また、相対位置センサ１０４（ギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３）からの計測値ｇも同様に、入出力ＩＦ６０８ＩＦに内蔵されたタイマーを利用して、ある一定時間毎（例えば、１ｍｓ毎）に、ギャップセンサｓｘ１、ｓｙ１、ｓｙ２、ｓｚ１、ｓｚ２、ｓｚ３から入出力ＩＦ６０８ＩＦに計測値ｇを出力する。また、マニピュレータ１０１は、モータドライバ６０９Ｍからの指令値に従って制御される。詳細については、図７を用いて説明する。マニピュレータ１０１は、合計６個の軸周りに回転可能として６自由度の多リンクマニピュレータを構成している。
【００７９】
図７に示すように、マニピュレータ１０１は、一例として、多関節ロボットアームであって、具体的には、６自由度の多リンクのマニピュレータである。マニピュレータ１０１は、ロボットハンドである枠１１２０と、枠１１２０が取り付けられている手首部７０１を先端７０２ａに有する前腕リンク１０１ａと、前腕リンク１０１ａの基端７０２ｂに回転可能に先端７０３ａが連結される上腕リンク１０１ｄと、上腕リンク１０１ｄの基端７０３ｂが回転可能に連結支持される台部１０１ｇとを備えている。台部１０１ｇは、一定位置に固定されているが、図示しないレールに移動可能に連結されていても良い。手首部７０１は、第４関節部７０８と、第５関節部７０９と、第６関節部７１０との３つの回転軸を有しており、前腕リンク１０１ｅに対する枠１１２０の相対的な姿勢（向き）を変化させることができる。すなわち、図７において、第４関節部７０８は、手首部７０１に対する枠１１２０の横軸周りの相対的な姿勢を変化させることができる。第５関節部７０９は、手首部７０１に対する枠１１２０の、第４関節部７０８の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第６関節部７１０は、手首部７０１に対する枠１１２０の、第４関節部７０８の横軸及び第５関節部７０９の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク１０１ｅの他端７０２ｂは、上腕リンク１０１ｄの先端７０３ａに対して第３関節部７０７周りに、すなわち、第４関節部７０８の横軸と平行な横軸周りに回転可能とする。上腕リンク１０１ｄの他端は、台部１０１ｇに対して第２関節部７０６周りに、すなわち、第４関節部７０８の横軸と平行な横軸周りに回転可能とする。さらに、台部１０１ｇの上側可動部７０４ａは、台部１０１ｇの下側固定部７０４ｂに対して第１関節部７０５周りに、すなわち、第５関節部７０９の縦軸と平行な縦軸周りに回転可能としている。
【００８０】
この結果、マニピュレータ１０１は、合計６個の軸周りに回転可能として前記６自由度の多リンクマニピュレータを構成している。
【００８１】
マニピュレータ１０１の各軸の回転部分を構成する各関節部（関節軸）１０１ａ，１０１ｂ，１０１ｃには、関節部駆動用のモータ７１３のような回転駆動装置と、モータ７１３の回転軸の回転位相角（すなわち関節角）を検出して位置情報を出力するエンコーダ７１４（実際には、マニピュレータ１０１の各関節部の内部に配設されている）とを備えている。モータ７１３（実際には、マニピュレータ１０１の各関節部の内部に配設されている）は、各関節部を構成する一対の部材（例えば、回動側部材と、該回動側部材を支持する支持側部材）のうちの一方の部材に備えられる、モータドライバ６０９Ｍにより駆動制御される。各関節部の一方の部材に備えられたモータ７１３の回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【００８２】
また、７１１は台部１０１ｇの下側固定部７０４ｂに対して相対的な位置関係が固定された絶対座標系であり、７１２は枠１１２０に対して相対的な位置関係が固定された手先座標系である。絶対座標系７１１から見た手先座標系７１２の原点位置Ｏｅ（ｘ，ｙ，ｚ）をマニピュレータ１０１の手先位置、絶対座標系７１１から見た手先座標系７１２の姿勢をロール角とピッチ角とヨー角とで表現した（φ，θ，ψ）をマニピュレータ１０１の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルｒ＝［ｘ，ｙ，ｚ，φ，θ，ψ］Ｔと定義する。よって、一例として、絶対座標系７１１のｚ軸に対して第１関節部７０５の縦軸が平行であり、ｘ軸に対して第２関節部７０６の横軸が平行に位置可能とするのが好ましい。また、手先座標系７１２のｘ軸に対して第６関節部７１０の横軸が平行に位置可能であり、ｙ軸に対して第４関節部７０８の横軸が平行に位置可能であり、ｚ軸に対して第５関節部７０９の縦軸が平行に位置可能とするのが好ましい。なお、手先座標系７１２のｘ軸に対しての回転角をヨー角ψとし、ｙ軸に対しての回転角をピッチ角θとし、ｚ軸に対しての回転角をロール角φとする。
【００８３】
次に、ロボットアーム１００の概要を説明する。ロボットアーム１００は、ロボット６０１に作業軌跡を教示する装置である。浮遊部１０３Ａの部品保持部１０３４に、例えば、ねじ、フレキシブルケーブル、電動ドライバ、又は、ハンマー等を保持して移動する軌跡をロボット６０１に教示するのに用いる。
【００８４】
ロボットアーム１００は、２つの教示方法を切り替えながら行うことができる装置である。
【００８５】
第一の教示方法は、ダイレクトティーチングによる教示方法である。第一の教示方法を行う際には、図２に示すように各リニアアクチュエータ１２１１を伸ばして、浮遊部１０３Ａの可動部１０２Ａを両側から挟みこんで、枠１１２０と可動部１０２Ａすなわち浮遊部１０３Ａとを一体化する。そして、操作者が把持部１０３１に加えた力を力センサ１０３３で取得して、力センサ１０３３で取得した力に基づいて、マニュピュレータ１０１により枠１１２０を移動する位置を決定する。例えば、操作者が、把持部１０３１を介して浮遊部１０３Ａに下向きに力を加えたら、マニュピュレータ１０１により枠１１２０を下向きに移動する。また、操作者が把持部１０３１を介して浮遊部１０３Ａに右向きに力を加えたら、マニュピュレータ１０１により枠１１２０を右向きに移動する。
【００８６】
ロボットアーム１００の第二の教示方法を行う際には、図１に示すように各リニアアクチュエータ１２１１を縮めて、浮遊部１０３Ａを、枠１１２０から分離する。操作者は、把持部１０３１を手で握って、枠１１２０から分離した浮遊部１０３Ａを移動して、枠１１２０を移動する。その際に、可動部１０２Ａの動きに合わせて枠１１２０が追従して移動する。この教示方法を以降、フロート教示（追従制御）と呼ぶ。フロート教示（追従制御）は、以下のような制御方式である。
【００８７】
図８Ａ〜図９は、マニピュレータ１０１と人とが協調して対象物（把持対象物）８０２を搬送するときに、マニピュレータ１０１が追従する手順を示す。マニピュレータ１０１の手先部の浮遊部１０３Ａの部品保持部１０３４に対象物８０２を把持させる。その後、図８Ａ→図８Ｂ→図９の順に状態が遷移する。
【００８８】
まず、図８Ａの状態は、人の手８０１が把持部１０３１を把持しており、静止している状態である。人の手８０１が把持部１０３１を把持し、把持部１０３１を動かさないようにすることで、枠１１２０に対する可動部１０２Ａの把持部１０３１の相対位置Δｒが閾値を超えないので、マニピュレータ１０１は追従制御を行わず静止した状態となっている。
【００８９】
次いで、図８Ｂの状態は、人の手８０１が把持部１０３１を移動させ、把持部１０３１に対する可動部１０２Ａの把持部１０３１の相対位置Δｒが閾値を超えた状態である。具体的には、図８Ｂでは、人の手８０１が把持部１０３１を図８Ｂの右方向（矢印参照）に移動させ、枠１１２０に対する可動部１０２Ａの把持部１０３１の相対位置Δｒ（特に、Δｚ）が閾値を超えた状態である。
【００９０】
次いで、図９の状態は、枠１１２０に対する可動部１０２Ａの把持部１０３１の相対位置Δｒが閾値内に収まるように、マニピュレータ１０１が制御装置６０２により追従制御を行っている状態である。具体的には、図９では、人の手８０１が把持部１０３１を図８Ｂの右方向（矢印参照）に移動させているので、枠１１２０に対する可動部１０２Ａの把持部１０３１の相対位置Δｒが閾値内に収まるように、図９の矢印方向にマニピュレータ１０１が制御装置６０２により追従制御を行って、点線から実線で示す位置に、対象物８０２をマニピュレータ１０１で搬送している状態である。
【００９１】
以上のように、人の手８０１が把持部１０３１を把持し移動させると、その移動量に応じてマニピュレータ１０１が制御装置６０２により把持部１０３１に対して追従する動きが可能となる。枠１１２０と可動部１０２Ａの把持部１０３１とは、分離した構造をしているので、人は把持部１０３１を移動させるだけの力で、対象物８０２をマニピュレータ１０１を利用して移動させることができる。
【００９２】
このような構成によれば、人が把持する把持部１０３１を有する可動部１０２Ａと枠１１２０とが機構的に分離され、把持部１０３１を移動させたところにマニピュレータ１０１が追従することから、例えば、協調搬送、又は、ダイレクトティーチングなどの作業を行う際の操作性の悪いロボットアーム１００に対しても、人は軽い力でロボットアーム１００を容易に移動させることができ、人の負担を軽減することができる。したがって、ロボットアーム１００の操作性を改善することができる。
【００９３】
以上が、フロート教示（追従制御）の説明である。
【００９４】
また、教示した軌跡を再生する際には、ダイレクトティーチングの場合と同様に、リニアアクチュエータ１２１１によって、枠１１２０は浮遊部１０３Ａの可動部１０２Ａを両側から挟みこんで一体化している。
【００９５】
以上より、ダイレクトティーチングを行う際には、浮遊部１０３Ａは、枠１１２０と一体化している。一方、フロート教示（追従制御）では、浮遊部１０３Ａは、枠１１２０と分離しており、自由に移動することができる。よって、フロート教示（追従制御）のときの方が、即応性の操作感が高い。
【００９６】
また、フロート教示（追従制御）では、浮遊部１０３Ａの重量に加えて、部品と工具との重さを全て操作者が支えなければならない。一方で、ダイレクトティーチングでは、操作者は浮遊部１０３Ａを支える必要はなく、どちらの方向に移動したいかの力を加えるだけでよい。よって、ダイレクトティーチングの方が重量感の操作感が高い。
【００９７】
第１実施形態では作業の状況に応じて、操作者は、フロート教示（追従制御）とダイレクトティーチングとのどちらの教示方法を用いるかを選択して操作を行う。ただし、ダイレクトティーチングから、フロート教示（追従制御）に移動する際に、操作者が支えなければならない重さが突然増加する。その重さの急激な増加によって操作者が、浮遊部１０３Ａを落としてしまう場合があるので、そのようにならないように、操作者が、浮遊部１０３Ａをしっかり握ったかを判定してから、教示方法を切り替える構成を以下に説明する。
【００９８】
図６は、第１実施形態のロボット６０１における制御装置６０２のブロック図を示す。  制御装置６０２は、制御部６０５Ａ、追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８と、モード選択保持部５４０１と、固定制御部６０９と、把持判定部５４３０と、重さ取得部６１０と、と、ダイレクトティーチング制御部６１２と、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５とで構成されている。さらに、固定判定部６１５からの情報を基に、操作者が浮遊部１０３Ａの把持部１０３１に手で力を加えておらず（手で把持部１０３１に加える力が不足しており）危険であることを通知するための警告情報を出力する警告出力部５４２０を備えている。警告出力部５４２０としては、音声出力装置、点灯若しくは点滅する照明装置、又は、振動出力装置など任意のものを採用することができる。
【００９９】
モード選択部６０８は、操作者が、フロート教示（追従制御）と、ダイレクトティーチングとのどちらの教示を使用したいかを入力する装置である。操作者によりモード選択部６０８の一例としてのスイッチが押されるたびに、スイッチのＯＮ／ＯＦＦが切り替わる。操作者は、フロート教示を行いたいときはモード選択部６０８としてのスイッチをＯＦＦ側にし、ダイレクトティーチングを行いたいときにはスイッチをＯＮ側にする。モード選択部６０８からは、フロート教示と、ダイレクトティーチングとのどちらが操作者により選択されたかの選択情報をモード選択保持部５４０１に出力する。
【０１００】
モード選択保持部５４０１は、モード選択部６０８からの選択情報が入力されて、操作者がフロート教示と、ダイレクトティーチングとのどちらをモード選択部６０８で選択しているかの選択情報を保持する。なお、概要として前述したように、操作者の選択が制御に即時に反映させる訳ではない。ここでは、フロート教示を操作者が選択したときは、モード選択部６０８としてのスイッチの状態を「ＯＦＦ」にするものとし、ダイレクトティーチングを選択したときは、モード選択部６０８としてのスイッチの状況を「ＯＮ」にするものとする。なお、モード選択部６０８にモード選択保持部５４０１を設けて、スイッチのＯＮ、ＯＦＦをそれぞれ、「１」、「０」とするディジタル情報として保持する。モード選択保持部５４０１は、半導体素子等のメモリなどで構成することもできる。第１実施形態では、モード選択部６０８はスイッチが「ＯＦＦ」のとき「０」をモード選択保持部５４０１に保持し、「ＯＮ」のとき「１」をモード選択保持部５４０１に保持するものとする。モード選択保持部５４０１は、保持した選択情報をダイレクトティーチング制御部６１２と固定判定部６１５とへ出力する。
【０１０１】
固定判定保持部６１４は、リニアアクチュエータ１１２１のエンコーダ１１２１Ｅの情報が入力されて、現在、枠１１２０に、可動部１０２Ａが固定されているか否かの状態を保持する。すなわち、リニアアクチュエータ１１２１がリニアアクチュエータ用モータドライブ１１２１Ｃを介して駆動されて棒状係合部１１２１ａが前進して係合凹部１０２Ａａ内に係合して、可動部１０２Ａが枠１１２０に固定されている状態であるか、リニアアクチュエータ１１２１がリニアアクチュエータ用モータドライブ１１２１Ｃを介して逆駆動されて棒状係合部１１２１ａが後退して係合凹部１０２Ａａから係合解除して、可動部１０２Ａが枠１１２０に固定されていない状態であるかの判定を保持する。固定判定保持部６１４は半導体素子等のメモリなどで構成することもできる。ここでは、各リニアアクチュエータ１１２１は、初期状態で伸びた状態（棒状係合部１１２１ａが前進して係合凹部１０２Ａａ内に係合している状態）であるとする。各リニアアクチュエータが伸びたときは、ダイレクトティーチングを選択させる。ここでは、各リニアアクチュエータ１２１１が伸びたときは「１」を保持し、各リニアアクチュエータ１２１１が縮んだときは「０」を保持するものとする。すなわち、可動部１０２Ａを「固定していない」ときは「０」を固定判定保持部６１４に保持する一方、可動部１０２Ａを「固定している」ときは「１」を固定判定保持部６１４に保持する。固定判定保持部６１４は、可動部１０２Ａの「固定していない」か「固定している」かの情報を制御部６０５Ａへ出力する。
【０１０２】
重さ取得部６１０は、浮遊部１０３Ａの重さを取得する。この重さには、浮遊部１０３Ａに取り付けられている部品及び工具の重さも含む。ここでは、浮遊部１０３Ａの重さと、部品及び工具の重さとは、重さ取得部６１０に予め登録されているものとする。その代わりに、重さ取得部６１０を重量センサで構成して、重量センサで浮遊部１０３Ａの重さなどを取得する構成であっても構わない。重さ取得部６１０は、把持判定部５４３０へ浮遊部１０３Ａの重さなどの情報を出力する。
【０１０３】
固定制御部６０９は、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動又は逆駆動することにより、枠１１２０に対して浮遊部１０３Ａを固定する制御と、枠１１２０に対する浮遊部１０３Ａの固定を解除する制御との固定処理を行う。すなわち、枠１１２０に対して浮遊部１０３Ａの固定又は固定解除を行うために、固定制御部６０９は、リニアアクチュエータ用モータドライブ１１２１Ｃを介して、各リニアアクチュエータ１１２１を伸ばす制御、あるいは、縮める制御を行う。各リニアアクチュエータ１１２１に取り付けられたモータ７１３を制御することで、枠１１２０に対する浮遊部１０３Ａの固定又は固定の解除を行う。
【０１０４】
力取得部６１３は、力センサ１０３３が取得した力を取得する。すなわち、力取得部６１３は、把持部１０３１に人が加えた力を力センサ１０３３で取得する。取得する力は６軸方向の力である。
【０１０５】
把持判定部５４３０は、力取得部６１３と重さ取得部６１０とからの情報に基づき、操作者が、手で把持部１０３１をしっかり握ったか否かを判定する。第１実施形態では、操作者が加えた力のうち、上向きに加えた力の大きさが、浮遊部１０３Ａの重さによる重力（把持判定用閾値）よりも大きいか否かを把持判定部５４３０で判定する。具体的には、力取得部６１３で取得した操作者が加えた力のうち、上向きに加えた力の大きさが、浮遊部１０３Ａの重さに、重力「９．８ｍ／ｓ２」を掛けた値以上か否かを把持判定部５４３０で比較する。前者の方が大きいと把持判定部５４３０で判定した場合には、操作者が手で把持部１０３１をしっかり把持していると把持判定部５４３０で判定し、それ以外の場合は、操作者が手で把持部１０３１をしっかり把持していないと把持判定部５４３０で判定する。
【０１０６】
制御部６０５Ａは、固定判定保持部６１４からの情報に基づき、ロボット６０１の手先の位置の制御を行う。固定判定保持部６１４が「１」を保持する場合、すなわち、浮遊部１０３Ａの可動部１０２Ａが固定されている場合は、追従制御部６０６によって決定された移動位置にマニュピュレータ１０１を移動する制御を行う。また、固定判定保持部６１４が「０」を保持する場合、すなわち、浮遊部１０３Ａの可動部１０２Ａが固定されていない場合、制御部６０５Ａは、ダイレクトティーチング制御部６１２によって決定された移動位置にマニュピュレータ１０１を移動する制御を行う。マニュピュレータ１０１を移動する制御は、モータ７１３を制御することで行う。また、制御部６０５Ａは、エンコーダ７１４によって、マニュピュレータ１０１の位置を取得する。
【０１０７】
ダイレクトティーチング制御部６１２は、モード選択保持部５４０１でダイレクトティーチングが選択されている選択情報と力取得部６１３が取得した力とに基づいてロボットハンドである枠１１２０の移動位置を決定する。すなわち、操作者が、把持部１０３１に下向きの力を加えたときには、ロボットハンドである枠１１２０を下向きに移動し、右向きに力を加えたときには、ロボットハンドである枠１１２０を右向きに移動する制御の指示を制御部６０５Ａに送付し、モータ７１３を制御して実際にロボットハンドである枠１１２０を移動させる。
【０１０８】
固定判定部６１５は、固定判定保持部６１４及びモード選択保持部５４０１に基づき、可動部１０２Ａを枠１１２０に固定するか否かの判定、可動部１０２Ａを枠１１２０に固定を解除するか否かの判定をする。可動部１０２Ａを枠１１２０に固定するか否かは、固定判定保持部６１４及びモード選択保持部５４０１が保持する値によって変わる。
【０１０９】
図１１は、固定判定保持部６１４及びモード選択保持部５４０１がそれぞれ保持する値（「固定判定」の値及び「モード選択」の値）と、固定判定部６１５が行う判定を示す図である。
【０１１０】
図１１において、モード選択保持部５４０１が「０」を保持し、固定判定保持部６１４が「０」を保持する場合（選択情報と、現在の実際の固定状態の情報とが等しい場合）は、固定及び固定解除のいずれも行わないと固定判定部６１５で判定する。このケースは、操作者がフロート制御を選択していて、固定状態は、フロート制御が出来る状態になっている場合である。
【０１１１】
図１１において、モード選択保持部５４０１が「１」を保持し、固定判定保持部６１４が「１」を保持する場合（選択情報と、現在の実際の固定状態の情報とが等しい場合）は、固定及び固定解除のいずれも行わないと固定判定部６１５で判定する。このケースは、操作者がダイレクトティーチング制御を選択していて、固定状態は、ダイレクトティーチング制御が出来る状態になっている場合である。
【０１１２】
図１１において、モード選択保持部５４０１が「１」を保持し、固定判定保持部６１４が「０」を保持する場合（選択情報と、現在の実際の固定状態の情報とが等しくない場合）は、固定制御をすると固定判定部６１５で判定をする。このケースは、操作者がダイレクトティーチング制御を選択していて、固定状態は、ダイレクトティーチングが出来る状態になっていない場合である。固定制御を行うことで、操作者が選択したダイレクトティーチングが出来る状態に移行することが出来る。
【０１１３】
図１１において、モード選択保持部５４０１が「０」を保持し、固定判定保持部６１４が「１」を保持する場合（選択情報と、現在の実際の固定状態の情報とが等しくない場合）は、把持判定部５４３０の判定結果に基づいて固定判定部６１５で判定する。すなわち、把持判定部５４３０の判定結果によって処理が変わる。このケースは、操作者がフロート制御を選択していて、固定状態は、フロート制御が出来る状態になっていない場合である。このような場合に、無条件に固定解除を行うと、浮遊部１０３Ａの重さが突然、操作者の手に加わり、操作者が浮遊部１０３Ａを落とす場合があるので、把持判定部５４３０の判定結果によって固定判定部６１５で固定解除を行うか否かを決定する。すなわち、把持判定部５４３０が操作者が浮遊部１０３Ａをしっかり握っていると固定判定部６１５で判定した場合に、固定解除を固定判定部６１５で行い、そうでないと固定判定部６１５で判定した場合は、固定解除を固定判定部６１５で行わない。
【０１１４】
固定判定部６１５が行う処理を図１２に示す。
【０１１５】
まず、固定判定部６１５は、ステップＳ５４００で処理を開始する。
【０１１６】
次いで、ステップＳ５４０１で、固定判定部６１５は、モード選択保持部５４０１より、操作者が選択しているモードの選択情報を取得する。「ダイレクトティーチング」がモード選択部６０８で選択されている場合、モード選択保持部５４０１より「１」を示す識別情報を固定判定部６１５で取得する。「フロート教示（追従制御）」がモード選択部６０８で選択されている場合、モード選択保持部５４０１より「０」を固定判定部６１５で取得する。
【０１１７】
次いで、ステップＳ５４０２で、固定判定部６１５は、固定判定保持部６１４より、現在の実際の固定状態の情報を取得する。すなわち、各リニアアクチュエータ１１２１により浮遊部１０３Ａの可動部１０２Ａを枠１１２０に「固定している」状態の場合は、固定判定保持部６１４より「１」を固定判定部６１５で取得する。また、各リニアアクチュエータ１１２１により浮遊部１０３Ａの可動部１０２Ａを枠１１２０に「固定していない」状態の場合は、固定判定保持部６１４より「０」を固定判定部６１５で取得する。
【０１１８】
次いで、ステップＳ５４０３で、固定判定部６１５は、ステップＳ５４０１で取得した選択情報と、ステップＳ５４０２で取得した現在の実際の固定状態の情報とが等しいか否かを判定する。もし、両者が等しいと固定判定部６１５で判定した場合は、ステップＳ５４１１に分岐して、処理を終了する。すなわち、「ダイレクトティーチング」が選択されていて、浮遊部１０３Ａが「固定している」場合、又は、「フロート教示」が選択されていて、浮遊部１０３Ａが「固定していない」場合は、固定状態の変更は必要なく、そのような場合には、ステップＳ５４１１に分岐して、処理を終了する。
【０１１９】
ステップＳ５４０３で、両者が等しくないと固定判定部６１５で判定した場合は、ステップＳ５４０４に分岐する。すなわち、ステップＳ５４０３で「ダイレクトティーチング」が選択されているが、枠１１２０に対して可動部１０２Ａが「固定していない」場合、又は、「フロート教示」が選択されていて、枠１１２０に対して可動部１０２Ａ「固定している」場合は、ステップＳ５４０４に分岐する。つまり、現在の固定状態では、選択された教示方法が実行できない場合は、ステップＳ５４０４に分岐する。
【０１２０】
ステップＳ５４０４で、固定判定部６１５は、ステップＳ５４０１でモード選択部６０８より取得したモード選択情報が、「ダイレクトティーチング」を示す「１」であるかを判定する。モード選択情報が「１」であったと固定判定部６１５で判定した場合には、ステップＳ５４０５に分岐する。モード選択情報が「１」でないと固定判定部６１５で判定した場合（「フロート教示」の場合）には、ステップＳ５４０７に分岐する。
【０１２１】
ステップＳ５４０５で、固定判定部６１５は、固定判定保持部６１４の保持する値を、「固定している」状態を示す「１」に更新する。すなわち、操作者が「ダイレクトティーチング」を選択した場合には、「固定している」を示す値に変更して、ステップＳ５４０５２に進む。
【０１２２】
次いで、ステップＳ５４０５２で、固定制御部６０９は、各リニアアクチュエータ１１２１をリニアアクチュエータ用モータドライブ１１２１Ｃを介して駆動して伸ばし、枠１１２０に可動部１０２Ａを固定して、ダイレクトティーチングができる状態にする。それらの処理後、ステップＳ５４１１に分岐する。
【０１２３】
一方、ステップＳ５４０７で、重さ取得部６１０は、浮遊部１０３Ａの重さを取得する。
【０１２４】
次いで、ステップＳ５４０８で、力取得部６１３は、力センサ１０３３を利用して、操作者が把持部１０３１を介して浮遊部１０３Ａに加えた力を取得する。
【０１２５】
次いで、ステップＳ５４０９で、把持判定部５４３０は、操作者が浮遊部１０３Ａの把持部１０３１を手でしっかり握っているか否かの判定を行う。具体的には、ステップＳ５４０８で取得した操作者が加えた力のうち、上向きに加えた力の大きさが、ステップＳ５４０７で取得した浮遊部１０３Ａの重さに、重力「９．８ｍ／ｓ２」を掛けた値以上か否かを把持判定部５４３０で比較する。すなわち、浮遊部１０３Ａを支える以上の力を操作者が加えているか否かを把持判定部５４３０で判定する。操作者が力を加えていると把持判定部５４３０で判定した場合、ステップＳ５４１０に分岐し、操作者が力を加えていないと把持判定部５４３０で判定した場合には、ステップＳ５４１２に分岐する。
【０１２６】
ステップＳ５４１２では、固定判定部６１５からの情報に基づき、操作者が力を加えておらず危険であることの警告を警告出力部５４２０で出力したのち、ステップＳ５４１１に分岐する。
【０１２７】
ステップＳ５４１０では、固定判定部６１５は、固定判定保持部６１４が保持する値を、「固定していない」状態を示す値「０」に更新する。
【０１２８】
次いで、ステップＳ５４１０１で、固定制御部６０９は、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を縮めて、枠１１２０と可動部１０２Ａとを「固定していない」状態にして、実際にフロート教示（追従制御）ができる状態にする。
【０１２９】
次いで、ステップＳ５４１１で、固定判定部６１５は処理を終了する。
【０１３０】
この後、制御部６０５Ａは、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基にモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、マニュピュレータ１０１を指定された位置に移動する。
【０１３１】
次に、制御部６０５Ａが行う処理の流れを、図１６を用いて説明する。
【０１３２】
まず、制御部６０５Ａは、ステップＳ６２００で処理を開始する。
【０１３３】
次いで、ステップＳ６２０２で、制御部６０５Ａは、固定判定部６１５に固定判定の処理を指示する。なお、固定判定部の処理は図１５に記載した処理である。
【０１３４】
次いで、ステップＳ６２０３で、制御部６０５Ａは、固定判定保持部６１４が保持する値を取得し、取得した値が「１」であるか否かを判定する。固定判定保持部６１４から制御部６０５Ａで取得した値が「１」のとき、すなわち、固定状態を示す値のときは、ステップＳ６２０４に進む。そして、ステップＳ６２０４において、制御部６０５Ａの制御の下にダイレクトティーチング制御部６１２によってマニュピュレータ１０１の制御を行う。すなわち、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基にダイレクトティーチング制御部６１２の制御によりモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、ダイレクトティーチング制御部６１２によって決定した位置に、マニュピュレータ１０１を移動する。その後、ステップＳ６２０６に進む。
【０１３５】
一方、ステップＳ６２０３で、固定判定保持部６１４から制御部６０５Ａで取得した値が「０」のとき、すなわち、非固定状態を示す値のときは、ステップＳ６２０３１に進む。そして、ステップＳ６２０３１において、制御部６０５Ａは、相対位置取得部６０７より枠１１２０に対する可動部１０２Ａの相対位置情報を取得する。
【０１３６】
次に、ステップＳ６２０５において、制御部６０５Ａの制御の下に追従制御部６０６に基づく制御を行う。すなわち、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基に追従制御部６０６の制御によりモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、追従制御部６０６によって決定した位置にマニュピュレータ１０１を移動する。その後、ステップＳ６２０６に進む。
【０１３７】
ステップＳ６２０６では、制御部６０５Ａの制御を終了するか否か判定し、終了しない場合にはステップＳ６２０２に戻り、終了する場合には、ステップＳ６２９９で終了する。
【０１３８】
次に、ステップ６２０５において、制御部６０５Ａの制御の下に追従制御部６０６に基づく制御を行う。すなわち、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基に追従制御部６０６の制御によりモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、追従制御部６０６によって決定した位置にマニュピュレータ１０１を移動する。その後、ステップＳ６２０６に進む。
【０１３９】
ステップＳ６２０６では、制御部６０５Ａの制御を終了するか否か判定し、終了しない場合にはステップＳ６２０２に戻り、終了する場合には、ステップＳ６２９９で終了する。
【０１４０】
第１実施形態による、このような構成を採ることによる効果を３つ述べる。
【０１４１】
第一に、操作者は、反力を感じる必要がない作業をするときには、モード選択部６０８でダイレクトティーチングを選択することで、重量感について良い操作感でマニュピュレータ１０１を使用して作業をすることが出来る。すなわち、重量物の重さを感じることなく作業を行うことができる。
【０１４２】
第二に、反力が必要になるような細かい作業をするときには、操作者はフロート制御をモード選択部６０８で選択することで、即応性の操作感が良い状態でマニュピュレータ１０１を使用して作業をすることが出来る。すなわち、細かい作業、又は、反力を必要とする作業がしやすくなる。
【０１４３】
第三に、ダイレクトティーチングからフロート教示（追従制御）に切り替える際に、手に加わる力が急激に上昇することがない。これは、操作者が浮遊部１０３Ａの把持部１０３１をしっかり握るまで、すなわち、操作者が浮遊部１０３Ａの把持部１０３１を手でしっかり握っていると把持判定部５４３０で判定されるまで固定判定部６１５によりフロート教示への移行を遅らせるためである。これにより、操作者が浮遊部１０３Ａを落とすことを防止する効果がある。
【０１４４】
（第２実施形態）
第１実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。また、ダイレクトティーチングからフロート教示に切り替える際に、所定の条件が満たされるまでフロート教示を開始しない構成である。
【０１４５】
これに対して、本発明の第２実施形態では、フロート教示と、停止状態とを切り替えながら行う教示方法である。停止状態では、ロボットアーム１００は移動を停止し、操作者が行う教示も一旦停止する。まず、第２実施形態の概要を説明する。
【０１４６】
フロート教示を行う際には、第１実施形態と同様、図１に示すように、浮遊部１０３Ａは、枠１１２０から分離する。停止状態の際は、第１実施形態と同様、図２に示すように、浮遊部１０３Ａは枠１１２０に固定される。停止状態からフロート教示に切り替える際に、操作者が支えなければならない重さが突然増加する。その重さの急激な増加によって操作者が、浮遊部１０３Ａを落としてしまう場合があるので、そのようにならないように、操作者が、浮遊部１０３Ａをしっかり握ったかを判定してから、教示方法を切り替える構成をこれから説明していく。
【０１４７】
図１３は、第２実施形態のロボット６０１Ｂにおける制御装置６０２Ｂのブロック図を示す。図１３において、制御装置６０２Ｂは、制御装置本体部６０３Ｂと、周辺装置６０４とで構成されている。周辺装置６０４は、第１実施形態と同様であるので説明を省略する。制御装置６０２Ｂは、制御部６０５Ｂと、追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８Ｂと、モード選択保持部５４０１と、固定制御部６０９と、重さ取得部６１０と、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５と、把持判定部５４３０とで構成されている。さらに、第１実施形態と同様に、固定判定部６１５からの情報を基に、操作者が浮遊部１０３Ａの把持部１０３１に手で力を加えておらず危険であることを通知するための警告情報を出力する警告出力部５４２０を備えている。
【０１４８】
把持判定部５４３０と、モード選択保持部５４０１と、追従制御部６０６と、相対位置情報取得部６０７と、固定制御部６０９と、重さ取得部６１０と、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５と、警告出力部５４２０とは第１実施形態と同様であるので説明を省略する。以下、第１実施形態と異なる各部を説明する。
【０１４９】
モード選択部６０８Ｂは、操作者が、フロート教示（追従制御）と、停止状態のどちらを使用したいかを入力する装置である。また、モード選択保持部５４０１は、モード選択部６０８Ｂから入力された、操作者がフロート制御と、停止状態とのどちらを選択しているかの選択情報を保持している。モード選択部６０８Ｂの一例としてのスイッチが押される毎に、その値が切り替わる。なお、第１実施形態の場合と同じく、操作者の選択が制御に即時に反映させる訳ではない。ここでは、フロート教示を選択したときは、「ＯＮ」を、停止状態を選択したときは、「ＯＦＦ」を選択する。
【０１５０】
制御部６０５Ｂは、図１７のフローに基づいて処理を行う。
【０１５１】
まず、制御部６０５Ｂは、ステップＳ６３００で処理を開始する。
【０１５２】
次いで、ステップＳ６３０２で、制御部６０５Ｂは、固定判定部６１５に固定判定の処理を指示する。なお、固定判定部６１５の処理は図１９に記載した処理である。
【０１５３】
次いで、ステップＳ６３０３で、制御部６０５Ｂは、固定判定保持部６１４が保持する値を取得し、取得した値が「固定している」状態を示す「０」であるか否かを判定する。制御部６０５Ｂで取得した値が「固定している」状態を示す「０」である場合、ロボットアーム１００を現在より移動しない制御を制御部６０５Ｂで行う。その後、ステップＳ６３０６に進む。
【０１５４】
ステップＳ６３０３で、固定判定保持部６１４から制御部６０５Ｂで取得した値が「固定していない」状態を示す「１」である場合には、ステップＳ６３０３１に進む。そして、ステップＳ６３０３１において、制御部６０５Ｂは相対位置取得部６０７より枠１１２０に対する可動部１０２Ａの相対位置情報を取得する。
【０１５５】
次に、ステップ６３０５において、第１実施形態のときと同様に、追従制御部６０６での追従制御処理を制御部６０５Ｂで行う。その後、ステップＳ６３０６に進む。
【０１５６】
ステップＳ６３０６では、制御部６０５Ｂの制御を終了するか否か判定し、終了しない場合にはステップＳ６３０２に戻り、終了する場合には、ステップＳ６３９９で終了する。
【０１５７】
第２実施形態によれば、操作者がモード選択部６０８Ｂを使用して停止状態を選択したときは、浮遊部１０３Ａは、枠１１２０従ってロボットアーム１００に対して固定されている。よって、操作者は、浮遊部１０３Ａを支える必要がない。
【０１５８】
一方、操作者がモード選択部６０８Ｂを使用してフロート教示を選択したときは、浮遊部１０３Ａは、枠１１２０従ってロボットアーム１００から分離している。よって、操作者は、浮遊部１０３Ａの重さを支える必要がある。しかし、第１実施形態と同様に、浮遊部１０３Ａと枠１１２０とが分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【０１５９】
また、操作者がモード選択部６０８Ｂを使用して停止状態からフロート教示を選択した際に、操作者が浮遊部１０３Ａに加えた力を力センサ１０３３を利用して力取得部６１３で取得する。そして、その取得した力が浮遊部１０３Ａを支える力になったと把持判定部５４３０で判定したのち、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、浮遊部１０３Ａを枠１１２０から分離する。よって、操作者が浮遊部１０３Ａの重量を支えられずに落とすことを防止することができる。
【０１６０】
また、フロート教示をしている際に、操作者が疲れてきたら、操作者はモード選択部６０８Ｂを使用して停止状態を選択することができる。操作者がモード選択部６０８Ｂを使用して停止状態を選択すれば、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、浮遊部１０３Ａを枠１１２０に固定する。この結果、操作者は、浮遊部１０３Ａを支える必要がなくなり、休憩をすることができる。よって、長い教示作業を休憩しながら行うことができる。
【０１６１】
なお、ステップ６３０３で、「固定している」状態が取得された時に、ロボット６０１を減速して停止する処理を行っても構わない。このような構成を用いれば、ロボット６０１が高速で移動していている際に、固定が選択されても、急停止することなく徐々に停止させることができる。
【０１６２】
（第３実施形態）
第１実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。ダイレクトティーチングの状態で、フロート教示を選択した際に、操作者が浮遊部１０３Ａを支える力を出すまでは、ダイレクトティーチングを継続している。その継続期間中は、ダイレクトティーチングをしているので、浮遊部１０３Ａは移動する。操作者が、浮遊部１０３Ａを支える力をすぐに出した場合は問題ないが、操作者が徐々に力を出した場合、すぐにフロート教示に切り替わらず、しばらくダイレクトティーチングの状態である。また、操作者から徐々に加えられる力もダイレクトティーチングに利用されて、ロボットアーム１００が上方向に移動する。よって、操作者が思う軌跡と異なる軌跡をロボットアーム１００に教示してしまう場合がある。
【０１６３】
本発明の第３実施形態は、前記した不具合を解消するように、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明する。この教示方法では、ダイレクトティーチングの状態で、操作者がモード選択部６０８を使用してフロート教示を選択した際に、ロボットアーム１００は一旦停止状態になり、操作者が浮遊部１０３Ａを支える力を出した後に、フロート教示を開始する。フロート制御時は、第１実施形態と同様、図１に示すように、浮遊部１０３Ａの可動部１０２Ａは、枠１１２０から分離している。ダイレクトティーチングの状態及び停止状態の際は、第１実施形態と同様、図２に示すように、浮遊部１０３Ａの可動部１０２Ａは枠１１２０に固定されている。
【０１６４】
図１４は、第３実施形態のロボット６０１Ｃにおける制御装置のブロック図を示す。図１４において、ロボットアーム１００は、マニピュレータ１０１と、ロボットアーム１００の制御装置６０２Ｃとで構成されている。ロボットアーム１００は、第１実施形態と同様であるので説明を省略する。
【０１６５】
ロボットアーム１００の制御装置６０２Ｃは、制御装置本体部６０３Ｃと、周辺装置６０４とで構成されている。周辺装置６０４は、第１実施形態と同様であるので説明を省略する。
【０１６６】
制御装置本体部６０３Ｃは、制御部６０５Ｃと、追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８と、固定制御部６０９と、重さ取得部６１０と、ダイレクトティーチング制御部６１２と、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５と、警告出力部５４２０とで構成されている。追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８と、固定制御部６０９と、重さ取得部６１０と、ダイレクトティーチング制御部６１２、力取得部６１３、固定判定保持部６１４、固定判定部６１５と、警告出力部５４２０とは第１実施形態と同様であるので、ここでは説明を省略する。以下、第１実施形態と異なる部分として、まず最初に、制御部６０５Ｃを説明する。
【０１６７】
制御部６０５Ｃは、ダイレクトティーチングの制御か、フロート教示の制御か、ロボットを停止させる制御か、のいずれかの制御を行う。いずれを行うかは、固定判定保持部６１４が保持する値と、モード選択保持部５４０１が保持する値によって制御部６０５Ｃで決定する。
【０１６８】
以下、制御部６０５Ｃは、図１８のフローに基づいて処理を行う。
【０１６９】
まず、制御部６０５Ｃは、ステップＳ６４００で処理を開始する。
【０１７０】
次いで、ステップＳ６４０２で、制御部６０５Ｃは、モード選択保持部５４０１より、操作者がフロート制御と、ダイレクトティーチングとのどちらを選択しているかの選択情報を取得する。
【０１７１】
そして、ステップＳ６４１０において、制御部６０５Ａは、固定判定部６１５に固定判定の処理を指示する。なお、固定判定部６１５の処理は図１９に記載した処理である。
【０１７２】
次いで、ステップＳ６４０４で、モード選択保持部５４０１から制御部６０５Ｃで取得した選択情報の値が、ダイレクトティーチングを示す「０」であるか否かを判定する。制御部６０５Ｃで取得した選択情報の値が、ダイレクトティーチングを示す「０」である場合には、ステップＳ６４０８に進む。そして、ステップＳ６４０８において、ダイレクトティーチング制御部６１２の制御を制御部６０５Ｃで行う。その後、ステップＳ６４１５に進む。
【０１７３】
一方、ステップＳ６４０４で、モード選択保持部５４０１から制御部６０５Ｃで取得した選択情報の値が、フロート教示（追従制御）を示す「１」である場合には、ステップＳ６４１２に進む。
【０１７４】
次いで、ステップＳ６４１２において、固定判定保持部６１４が保持する値を取得し、取得した値が「固定している」状態を示す「０」であるか否かを判定する。固定判定保持部６１４が保持する値が「固定している」状態を示す「０」である場合には、ロボット６０１Ｃを停止状態にする。すなわち、操作者がモード選択部６０８を使用して「フロート教示」を選択しているが、固定判定保持部６１４が保持する値が「固定している」状態のときは、ロボットアーム１００は移動しない。その後、ステップＳ６４１５に進む。
【０１７５】
ステップＳ６４１２において、固定判定保持部６１４が保持する値が「固定していない」状態を示す「１」である場合には、ステップＳ６４０３１に進む。そして、ステップＳ６４０３１において、制御部６０５Ａは、相対位置取得部６０７より枠１１２０に対する可動部１０２Ａの相対位置情報を取得する。そして、ステップＳ６４１４において、第１実施形態のときと同様に、追従制御部６０６での追従制御処理を制御部６０５Ｃで行う。すなわち、操作者がモード選択部６０８を使用して「フロート教示」を選択していて、固定判定保持部６１４が保持する値が「固定していない」状態のときは、追従制御部６０６の追従制御処理を制御部６０５Ｃで行う。その後、ステップＳ６４１５に進む。
【０１７６】
ステップＳ６４１５では、制御部６０５Ｃの制御を終了するか否か判定し、終了しない場合にはステップＳ６４０２に戻り、終了する場合には、ステップＳ６４９９で終了する。
【０１７７】
第３実施形態によれば、操作者がモード選択部６０８を使用してダイレクトティーチングを選択したときは、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、浮遊部１０３Ａはロボットアーム１００の枠１１２０に対して固定されている。よって、操作者は、浮遊部１０３Ａを支える必要がない。
【０１７８】
一方、操作者がモード選択部６０８を使用してフロート教示を選択したときは、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、浮遊部１０３Ａはロボットアーム１００の枠１１２０から分離している。よって、操作者は、浮遊部１０３Ａの重さを支える必要がある。しかし、第１実施形態と同様に、浮遊部１０３Ａとロボットアーム１００の枠１１２０とが分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【０１７９】
また、操作者がモード選択部６０８を使用してダイレクトティーチング状態からフロート教示を選択した際に、操作者が浮遊部１０３Ａに加えた力を力センサ１０３３で取得する。そして、その力センサ１０３３で取得した力が浮遊部１０３Ａを支える力になったと把持判定部５４３０で判定するまでは、制御部６０５Ｃで、ロボットアーム１００の移動を停止する。よって、操作者が出す力が、浮遊部１０３Ａを支える力に達すると把持判定部５４３０で判定するまでは、制御部６０５Ｃでの制御により、枠１１２０に対して浮遊部１０３Ａは移動しないので、思い通りの教示軌跡を作りやすい。
【０１８０】
また、操作者が加える力が浮遊部１０３Ａを支える力に達したと把持判定部５４３０で判定した後、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、浮遊部１０３Ａの可動部１０２Ａをロボットハンドである枠１１２０から分離する。よって、操作者が浮遊部１０３Ａの重量を支えられずに落とすことを防止することができる。
【０１８１】
（第４実施形態）
第１実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。ダイレクトティーチングの状態で、フロート教示を選択した際に、操作者が浮遊部１０３Ａを支える力を出したと把持判定部５４３０で判定するまでは、制御部６０５Ａ及びダイレクトティーチング制御部６１２でダイレクトティーチングを継続している。その継続期間中は、ダイレクトティーチングをしているので、浮遊部１０３Ａは枠１１２０に対して相対的に移動する。操作者が、浮遊部１０３Ａを支える力をすぐに出した場合は問題ないが、操作者が徐々に力を出した場合には、すぐにフロート教示に切り替わらず、しばらくダイレクトティーチングの状態である。また、操作者から徐々に加えられる力もダイレクトティーチングに利用されて、ロボットアーム１００が上方向に移動することになる。よって、操作者が思う軌跡と異なる軌跡をロボットアーム１００に教示してしまう場合がある。
【０１８２】
本発明の第４実施形態は、前記した課題を解消するように、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明する。
【０１８３】
まず、第４実施形態の概要を説明する。
【０１８４】
第４実施形態では、ダイレクトティーチングを行っている状態で、操作者がモード選択部６０８Ｄを使用してフロート教示を選択したときに、特殊なダイレクトティーチングを行う。通常のダイレクトティーチング（第１実施形態でのダイレクトティーチング）であれば、ロボットハンドである枠１１２０は、操作者が加えた力によって移動する位置を決めるが、特殊なダイレクトティーチングでは、操作者が加えた力に、もう一つの別の力（後述する第二の力）を加えた合力によって移動する位置を決める。例えば、重さ取得部６１０で取得した浮遊部１０３Ａの重さが１ｋｇのとき、ダイレクトティーチングを行っている状態で、操作者がモード選択部６０８Ｂを使用してフロート教示を選択したとき、制御部６０５Ｄとダイレクトティーチング制御部６１２とにより、フロート教示を選択してから所定時間例えば１秒後には、操作者が加えた力に加えて、仮想的に２００ｇ重の下向きの力が力取得部６１３に加わったものとして、ダイレクトティーチングを行う。以後、１秒後ごとに更に２００ｇ重ずつ下向きに加える力を仮想的に増やし、さらに所定時間例えば５秒後に１ｋｇ重の力を下向きに加えた特殊なダイレクトティーチングを本実施形態のロボット６０１で行う。
【０１８５】
さて、１秒後に、２００ｇ重下向きの力を仮想的に加えるので、操作者がロボットアーム１００に上向きに何も力を加えないと、ロボットアーム１００は、徐々に下に移動する。操作者がロボットアーム１００に教示したい軌跡は、ロボットアーム１００が下に移動する軌跡でないのならば、操作者は浮遊部１０３Ａに上向きに力を加える。そうすることで、操作者はロボットアーム１００が下に移動することを阻止する。それを、所定時間例えば２秒後以降も行って、最終的に、所定時間例えば５秒後には操作者は浮遊部１０３Ａに所定荷重例えば１ｋｇ重の上向きの力を加えて、教示をする。また、浮遊部１０３Ａに１ｋｇ重の上向きの力が加わると、操作者が浮遊部１０３Ａに加える力は、浮遊部１０３Ａを支えることができる力になっているので、第１実施形態と同様に、把持判定部５４３０での判定により、固定制御部６０９の制御により、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を駆動して、フロート教示に切り替わる。ここでは、一例として、５秒に達する前でも、操作者が１ｋｇ重の力を加えたら、フロート教示に切り替える構成を説明する。
【０１８６】
また、操作者がモード選択部６０８Ｂを使用してダイレクトティーチングを選択した場合は、制御部６０５Ｄとダイレクトティーチング制御部６１２とにより通常のダイレクトティーチングを行う。
【０１８７】
図１５は、第４実施形態のロボット６０１Ｄにおける制御装置のブロック図を示す。図１５において、ロボットアーム１００は、マニピュレータ１０１と、ロボットアーム１００の制御装置６０２Ｄとで構成されている。ロボットアーム１００は、第１実施形態と同様であるので説明を省略する。
【０１８８】
ロボットアーム１００の制御装置６０２Ｄは、制御装置本体部６０３Ｄと、周辺装置６０４とで構成されている。周辺装置６０４は、第１実施形態と同様であるので説明を省略する。
【０１８９】
制御装置本体部６０３Ｄは、制御部６０５Ｄと、追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８と、固定制御部６０９と、重さ取得部６１０と、ダイレクトティーチング制御部６１２Ｄと、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５と、時間取得部６１６と、モード選択保持部５４０１と、把持判定部５４３０と、で構成されている。追従制御部６０６と、相対位置情報取得部６０７と、モード選択部６０８と、固定制御部６０９と、重さ取得部６１０と、力取得部６１３と、固定判定保持部６１４と、固定判定部６１５と、制御部６０５と、モード選択保持部５４０１と、は第１実施形態と同様であるので説明を省略する。以下、第１実施形態と異なるダイレクトティーチング制御部６１２Ｄと、時間取得部６１６と、モード選択部６０８となどを説明する。
【０１９０】
時間取得部６１６は、経過時間を取得保持する。例えばタイマーであって、測定開始が指示されてから、時間の測定を開始し、以降、時間取得が指示される毎に、測定開始からの経過時間を取得する。ここでは、フロート教示が選択されてからの時間を測定する際に使用する。後述するように、フロート教示が選択された際に、時間の測定を開始して、ダイレクトティーチング制御部６１２Ｄで制御が行われる際に、都度、経過時間が参照される。
【０１９１】
モード選択部６０８Ｄは、第１実施形態におけるモード選択部６０８の処理に追加して、時間取得部６１６に測定開始の指示を行う。モード選択部６０８Ｄが行う処理を図１９に示す。
【０１９２】
まず、モード選択部６０８Ｄは、ステップＳ６６００で処理を開始する。
【０１９３】
次いで、ステップＳ６６０１で、操作者が、モード選択部６０８Ｂを使用してモードを変更したか否かモード選択部６０８Ｄで判定する。操作者がモード選択部６０８Ｂを使用してモードを変更した場合には、ステップＳ６６０２に進み、モードを変更していない場合には、ステップＳ６６９９に進む。
【０１９４】
ステップＳ６６０２において、ダイレクトティーチングを選択したか否かをモード選択部６０８Ｄで判定する。ダイレクトティーチングを選択したとモード選択部６０８Ｄで判定した際には、ステップＳ６６０３に進む。ダイレクトティーチングを選択していないとモード選択部６０８Ｄで判定した際には、ステップＳ６６０３１に進む。
【０１９５】
ステップＳ６６０３では、モード選択部６０８Ｂは、時間取得部６１６に時間測定を停止する指令を出して、測定を停止する。
【０１９６】
次いで、ステップＳ６６０４では、モード選択部６０８Ｂからの指令に基づき、時間取得部６１６は、時間を０にしてリセットする。その後、ステップＳ６６９９に進む。
【０１９７】
一方、ステップＳ６６０５では、モード選択部６０８Ｂは時間取得部６１６に測定開始の指示を行う。その後、ステップＳ６６９９に進む。
【０１９８】
ステップＳ６６９９で終了する。
【０１９９】
ダイレクトティーチング制御部６１２Ｄは、概要で述べた「特殊なダイレクトティーチング」を行う部である。力取得部６１３が取得した力と後述の第二の力との合力に基づいて、ロボットハンドである枠１１２０の移動位置を決定する。すなわち、操作者が、浮遊部１０３Ａに下向きの力を加えたときには、ダイレクトティーチング制御部６１２により、ロボットハンドである枠１１２０を下向きに移動し、右向きに力を加えたときは、ダイレクトティーチング制御部６１２Ｄにより、ロボットハンドである枠１１２０を右向きに移動する。
【０２００】
第二の力は、重さ取得部６１０より取得した重さと、時間取得部６１６より取得した時間とによってダイレクトティーチング制御部６１２Ｄで決定する。すなわち、次式となる。
【０２０１】
（第二の力）＝（重さ取得部６１０より取得した重さ）×９．８×（時刻取得部６１６より取得した時間）／（所定の値）
ここで、所定の値は例えば「５」である。ここでは、前記概要で説明した例のように、５秒後、浮遊部１０５Ａの重さがかかるようにする場合を例にして、所定の値を決定している。「（時刻取得部６１６より取得した時間）／（所定の値）」の部分の値は、時刻取得部６１６より取得した時間が、「０、１，２，３，４、５」の時に「０、０．２、０．４、０．６、０．８、１．０」となる。すなわち、フロート教示が選択されてからの時間が経過するほど、第二の力は大きくなる。
【０２０２】
さて、時刻取得部６１６より取得した時間が「０」のとき、第二の力は「０」となる。この時、ダイレクトティーチング制御部６１２Ｄの制御は、第一実施形態におけるダイレクトティーチング制御部６１２の制御と同様の制御となる。モード選択部６０８Ｄで説明したように、モード選択が「ダイレクトティーチング」の場合は、時刻取得部６１６が取得する時刻が「０」となるので、通常のダイレクトティーチングを行う。
【０２０３】
また、モード選択が「フロート教示」の場合は、時刻取得部６１６が取得する時刻は「０」以外の値となり、特殊なダイレクトティーチングを行うこととなる。
【０２０４】
次に、制御部６０５Ｄは、ダイレクトティーチング制御部６１２Ｄの制御か、追従制御部６０６の制御か、のいずれかの制御を行う。いずれを行うかは、固定判定保持部６１４が保持する値と、モード選択保持部５４０１が保持する値によって制御部６０５Ｄで決定する。
【０２０５】
以下、制御部６０５Ｄは、図２０のフローに基づいて処理を行う。
【０２０６】
まず、制御部６０５Ｄは、ステップＳ６５００で処理を開始する。
【０２０７】
次いで、ステップＳ６５０２において、制御部６０５Ｄは固定判定部６１５に固定判定の処理を指示する。なお、固定判定部の処理は図１９に記載したものである。
【０２０８】
次いで、ステップＳ６５０３において、固定判定保持部６１４が保持する値を取得し、取得した値が「固定している」状態を示す「０」であるか否かを判定する。固定判定保持部６１４が保持する値が「固定している」状態を示す「０」である場合には、ステップＳ６５０３１に分岐する。それ以外の場合には、ステップＳ６５０３２に分岐する。
【０２０９】
ステップＳ６５０３１において、制御部６０５Ｄは、時刻取得部６１６が保持する時刻を取得する。
【０２１０】
次いで、ステップＳ６５０４で、ダイレクトティーチング制御部６１２Ｄは、ステップＳ６５０３１で取得した時刻に基づいてダイレクトティーチングの制御を行う。なお、ダイレクトティーチング制御部６１２Ｄが行う制御は、既に説明したものである。
【０２１１】
次いで、ステップＳ６５０６では、制御部６０５Ｃの制御を終了するか否か判定し、終了しない場合にはステップＳ６５０２に戻り、終了する場合には、ステップＳ６５９９で終了する。
【０２１２】
一方、ステップＳ６５０３２に分岐した場合、ステップＳ６５０３２で、制御部６０５Ｂは相対位置取得部６０７より枠１１２０に対する可動部１０２Ａの相対位置情報を取得する。
【０２１３】
次に、ステップＳ６５０５において、第１実施形態のときと同様に、追従制御部６０６での追従制御処理を制御部６０５Ｄで行う。その後、ステップＳ６５０６に進む。
【０２１４】
第４実施形態によれば、操作者がモード選択部６０８Ｂを使用してダイレクトティーチングを選択したときは、浮遊部１０３Ａは、ロボットアーム１００に対して固定されている。よって操作者は、浮遊部１０３Ａを支える必要がない。
【０２１５】
一方、操作者がモード選択部６０８Ｂを使用してフロート教示を選択したときは、浮遊部１０３Ａは、ロボットアーム１００から分離している。よって、第１実施形態と同様に、操作者は、浮遊部１０３Ａの重さを支える必要がある。しかし、両者が分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【０２１６】
また、ダイレクトティーチング状態からフロート教示を選択した際に、ロボットアーム１００を（同じ高さに）支えるために必要な重さが徐々に重くなっていく。よって、操作者は、徐々に浮遊部１０３Ａを支える力をかけ。そして、操作者が、浮遊部１０３Ａを支えることができる力に達したときにフロート教示に切り替わる。よって、操作者が浮遊部１０３Ａの重量を支えられずに落とすことを防止することができる。
【０２１７】
なお、第１〜第３実施形態では、モード選択６０８と、力取得部６１３とは別々の部である構成を示したが、それらを一つの部としても構わない。すなわち、力取得部６１３が取得した力の大きさが、予め定めた閾値（例えば、１０ｇ重）の力以上になった場合に、モード選択部６０８が保持する値を「フロート制御」状態を示す「１」とし、力取得部６１３が取得した力の大きさが、閾値よりも小さい場合に、「ダイレクトティーチング」状態を示す「０」とする構成としても構わない。このような構成を用いれば、操作者が把持部１０３１を握っている間は、「フロート制御」が選択され、操作者が把持部１０３１を離すと、「ダイレクトティーチング」状態又は「停止状態」状態を示す「１」となる。よって、操作者が把持部１０３１から手を離すと、自動的に、枠１１２０と浮遊部１０３Ａとは固定される。よって、手を離しても浮遊部１０３Ａが落下することなく、手を離した位置で固定されて安全である。
【０２１８】
また、なお第１〜第３実施形態では、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１を伸張させることで、枠１１２０と可動部１０２Ａとを固定する構成を示したが、他の方法で固定を行っても構わない。例えば、枠１１２０と可動部１０２Ａとの隙間９０で膨らんだり、縮んだりする風船を用いて固定する構成であっても構わない。
【０２１９】
また、枠１１２０と可動部１０２Ａとの隙間９０に液体状の酢酸ナトリウムを入れた袋を入れておく構成であっても構わない。液体の酢酸ナトリウムは刺激を与えると発熱しながら結晶化する。よって、枠１１２０と可動部１０２Ａとを固定する際に、酢酸ナトリウムを入れた袋に、リニアアクチュエータ用モータドライブ１１２１Ｃを介して各リニアアクチュエータ１１２１で刺激を与えることで結晶化させて、枠１１２０と可動部１０２Ａとの隙間９０を埋めて一体化する。逆に、固定を解除する際には、袋を加熱することで、結晶化した酢酸ナトリウムを液状化させる。
【０２２０】
また、第２実施形態と第４実施形態とを組み合わせて、浮遊部１０３Ａの重さが閾値以上ならば第４実施形態の処理（ロボットアーム１００を徐々に下に移動する処理）を行う一方、浮遊部１０３Ａの重さが閾値未満ならば第２実施形態の処理（ロボットアーム１００を停止するだけの処理）を行うようにしてもよい。これについて、図２１を基に、制御部６０５Ａの処理について説明する。
【０２２１】
まず、制御部６０５Ａは、ステップＳ６２００で処理を開始する。
【０２２２】
次いで、ステップＳ６２０２で、制御部６０５Ａは、固定判定保持部６１４が保持する値を取得する。
【０２２３】
次いで、ステップＳ６２０３で、固定判定保持部６１４から制御部６０５Ａで取得した値が「１」であるか否かを判定する。固定判定保持部６１４から制御部６０５Ａで取得した値が「１」のとき、すなわち、固定状態を示す値のときは、ステップＳ６７０１に進む。
【０２２４】
ステップＳ６７０１において、重さ取得部６１０で浮遊部１０３Ａの重さを取得する。
【０２２５】
次いで、ステップＳ６７０２において、重さ取得部６１０で取得した浮遊部１０３Ａの重さが閾値以上か否かを制御部６０５Ａで判定する。このため、重さ取得部６１０で取得した浮遊部１０３Ａの重さの情報は制御部６０５Ａに入力される。重さ取得部６１０で取得した浮遊部１０３Ａの重さが閾値未満ならば、ロボットアーム１００を現在より移動しない、停止するだけの処理を行い、ステップＳ６２０２に戻る。重さ取得部６１０で取得した浮遊部１０３Ａの重さが閾値以上ならば、ステップＳ６２０４に進む。
【０２２６】
ステップＳ６２０４では、制御部６０５Ａの制御の下にダイレクトティーチング制御部６１２によってマニュピュレータ１０１の制御を行う。すなわち、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基にダイレクトティーチング制御部６１２の制御によりモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、ダイレクトティーチング制御部６１２によって決定した位置に、マニュピュレータ１０１を移動する。その後、ステップＳ６２０６に進む。
【０２２７】
一方、ステップＳ６２０３で、固定判定保持部６１４から制御部６０５Ａで取得した値が「０」のときは、ステップＳ６２０５に進む。
【０２２８】
そして、ステップＳ６２０５において、すなわち、非固定状態を示す値のときは、制御部６０５Ａの制御の下に追従制御部６０６に基づく制御を行う。すなわち、マニュピュレータ１０１の各モータ７１３のエンコーダ７１４からの情報を基に追従制御部６０６の制御によりモータドライバ６０９Ｍを介してモータ７１３を駆動することによって、追従制御部６０６によって決定した位置にマニュピュレータ１０１を移動する。その後、ステップＳ６２０６に進む。
【０２２９】
ステップＳ６２０６では、制御部６０５Ａの制御を終了するか否か判定し、終了しない場合にはステップＳ６２０２に戻り、終了する場合には、ステップＳ６２９９で終了する。
【０２３０】
なお、図１及び図２において、リニアアクチュエータ１１２１は、三方又は四方に配置してもよい。可動部１０２Ａが枠１１２０内で回転しないように保持するのが好ましい。二点の場合には、それぞれ、リニアアクチュエータ１１２１の板状係合部１１２１ａの先端を板状として、回転しないようにする。
【０２３１】
また、入出力ＩＦ６０８ＩＦの入力装置６０８ｄを使用して、重さ取得部６１０に外部から重さ情報を入力することも可能であり、また、外部のデータベースから入力装置６０８ｄを使用して、重さ情報を重さ取得部６１０に入力することも可能である。
【０２３２】
なお、上記様々な実施形態又は変型例のうちの任意の実施形態又は変型例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【０２３３】
本発明にかかるロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路は、ロボットアーム本体に取り付けられた手先効果部と人が把持する把持部とが機構的に分離しており、人が把持部を操作することによってロボットアームを操作することができて、産業用ロボット又は生産設備などにおける可動機構のロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路として有用である。また、本発明にかかるロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路は、産業用ロボットに限らず、家庭用ロボットのロボットアーム、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路として適用される可能性もある。
【符号の説明】
【０２３４】
９０    空間（隙間）
１００  ロボットアーム
１０１  マニピュレータ
１０１ｄ  前腕リンク
１０１ｅ  上腕リンク
１０１ｇ  台部
１０２Ａ  可動部
１０２Ａａ  係合凹部
１０３Ａ  浮遊部
１０４  相対位置センサ
４０１  緩衝材
６０１  ロボット
６０２  ロボットアームの制御装置
６０３  制御装置本体部
６０４  周辺装置
６０５，６０５Ａ  制御部
６０６  追従制御部
６０７  相対位置情報取得部
６０８  モード選択部
６０８ＩＦ  入出力ＩＦ
６０８ｄ  入力装置
６０９  固定制御部
６０９Ｍ  モータドライバ
６１０  重さ取得部
６１２  ダイレクトティーチング制御部
６１３  力取得部
６１５  固定判定部
７０１  手首部
７０５  第１関節部
７０６  第２関節部
７０７  第３関節部
７０８  第４関節部
７０９  第５関節部
７１０  第６関節部
７１１  絶対座標系
７１２  手先座標系
７１３  モータ
７１４  エンコーダ
８０１  人の手
８０２  対象物（把持対象物）
１０３１  把持部
１０３３  力センサ
１０３４  部品保持部
１１２０  ハンド（枠）
１１２１  リニアアクチュエータ
１１２１ａ  板状係合部
１１２１Ｅ  エンコーダ
１１２１Ｍ  モータ
５４０１  モード選択保持部
５４２０  警告出力部
５４３０  把持判定部
【図１】
2013071239.tif 000007
【図２】
2013071239.tif 000008
【図３Ａ】
2013071239.tif 000009
【図３Ｂ】
2013071239.tif 000010
【図３Ｃ】
2013071239.tif 000011
【図４Ａ】
2013071239.tif 000012
【図４Ｂ】
2013071239.tif 000013
【図４Ｃ】
2013071239.tif 000014
【図４Ｄ】
2013071239.tif 000015
【図４Ｅ】
2013071239.tif 000016
【図４Ｆ】
2013071239.tif 000017
【図４Ｇ】
2013071239.tif 000018
【図４Ｈ】
2013071239.tif 000019
【図４Ｉ】
2013071239.tif 000020
【図４Ｊ】
2013071239.tif 000021
【図４Ｋ】
2013071239.tif 000022
【図４Ｌ】
2013071239.tif 000023
【図５Ａ】
2013071239.tif 000024
【図５Ｂ】
2013071239.tif 000025
【図５Ｃ】
2013071239.tif 000026
【図５Ｄ】
2013071239.tif 000027
【図６】
2013071239.tif 000028
【図７】
2013071239.tif 000029
【図８Ａ】
2013071239.tif 000030
【図８Ｂ】
2013071239.tif 000031
【図９】
2013071239.tif 000032
【図１０】
2013071239.tif 000033
【図１１】
2013071239.tif 000034
【図１２】
2013071239.tif 000035
【図１３】
2013071239.tif 000036
【図１４】
2013071239.tif 000037
【図１５】
2013071239.tif 000038
【図１６】
2013071239.tif 000039
【図１７】
2013071239.tif 000040
【図１８】
2013071239.tif 000041
【図１９】
2013071239.tif 000042
【図２０】
2013071239.tif 000043
【図２１】
2013071239.tif 000044