説明

ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路

【課題】ロボットの手先から分離した把持部を浮遊させた状態で移動しつつ、軌跡を教示するフロート教示では、操作者は教示中に手を離すことができない。
【解決手段】把持部を固定状態と浮遊状態とを切替えながら教示を行うことができるロボットアームの教示装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの動作を生成し、教示するためのロボットアームの制御装置及び制御方法、ロボットアームの制御装置を有するロボット、ロボットアームの制御プログラム、並びに、集積電子回路に関する。
【背景技術】
【0002】
近年、製造現場では多品種少量生産のためモデルチェンジが頻繁に起こる。セル生産が盛んに行われている近年の製造現場において、ネジ締め作業若しくは部品の嵌合作業、装着作業、フレキシブル基板などの挿入作業、又は、研磨作業などをロボットにより自動化するためには、多種多様な部品又は作業手順に柔軟に対応する必要がある。部品が変わるごとに組み立てる位置又は向きなどが変わり、作業を行う順番も変わるので、それらの変化に対応する必要がある。また、フレキシブル基板の挿入作業などのように柔軟物を取り扱う作業などは、作業が複雑であり、依然として人手中心で行っている。人は、柔軟物が対象物に接触し、柔軟物がたわむ際の手に伝わる反力によって、柔軟物のたわみ具合又は位置を推測し、それによって、複雑な作業を行うことができる。
【0003】
これに対して、ロボットにおいては、試行ごとにたわみ方又は位置などが変わる柔軟物の力情報又は位置情報を定式化できないため、得られる反力に応じた複雑な作業を行うことは非常に困難である。以上の問題を解決し、そのような人手中心で行っている作業をロボットにより自動化する需要は大きい。
【0004】
そこで、従来、ティーチングペンダント又はプログラミングを用いて、ロボットに作業を教示する方法が用いられている。しかしながら、それらの方法により教示を行うと、教示工数が非常に増える。また、ロボットの複数の関節を同時に動かすような、複雑な動きが必要な作業は、教示できないこともある。
【0005】
以上のように、ティーチングペンダント又はプログラミングを用いる方法では限界がある。
【0006】
このため、従来は、ロボットを触って教示するダイレクトティーチングを用いて簡単に教示する方法が用いられている。ダイレクトティーチングでは、直感的な操作ができること、又は、ロボットが対象物に接触した際に、物理的な反力を作業する人が感じることによって、反力に応じた操作ができることなどの長所がある。一方で、ロボット自体が重い場合は、人がロボットを支えることができずロボットの操作ができないこと、又は、ロボット自体が重いためロボットが対象物に接触した際の物理的な反力を人が感じられないこと、などの短所も併せ持つ。このように操作性が悪いロボットに対して教示を行う際に、そのロボットの操作性を改善することは非常に重要である。
【0007】
ダイレクトティーチングに関して、第1のロボットアームの手先先端部にバネで取り付けられた第2のロボットアームを持つ構成が考えられている。2つのロボットアームを持つ構成をすることによって、従来の1つのロボットアームのみの構成と比較して、より精密なダイレクトティーチングを可能とする(特許文献1参照)。
【0008】
また、保持部材の動きを水平方向に限定し、外部環境(保持している対象物の変位量又は力情報)を検出しインピーダンス制御を行うことによって、比較的重い対象物を保持した場合においても小さな力で保持部材を変位させることができる方法が用いられている(特許文献2参照)。
【0009】
一方で、製品の運搬作業又は重い部品の嵌合作業において、ティーチングペンダント又はプログラミングを用いる方法では複雑であるためにロボットでは実現できない場合、二人の作業者によって作業が行われていた。そのような作業を、ロボットを用いて、作業者の労力を軽減することは非常に望まれている。このような作業を自動化する場合、ダイレクトティーチングでは、製品が重くて作業者がロボットに教示することができない。そこで、ロボットが把持した重い製品を作業者と協調して運搬する協調搬送という方法を用いる。
【0010】
協調搬送に関して、小さい操作力で協調搬送できるようにロボットにアシスト力を発生させることが考えられている。このアシスト力の値は、以下のようにして求める。すなわち、ロボットの関節角度と、手先位置と、ロボットと協調作業する作業者が対象物に加える力とをそれぞれ検出し、それらの値より作業者の手先粘性係数と、弾性係数と、作業者の手先自然長位置とをそれぞれ推定し、それらの値に基づいて、アシスト力の値を求める(特許文献3参照)。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平4−164584号公報
【特許文献2】特開2006−247787号公報
【特許文献3】特開2007−76807号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1においては、手先の先端部に取り付けられたロボットアームはバネで取り付けられているため、バネの弾性力の影響を受けるので、操作性に課題が残る。また、第2のロボットアームと第1のロボットアームが連動して動かないため、作業領域の広い作業を行う場合には、第1のロボットアームを動かした後に第2のロボットアームを動かさなければならないので、作業工数が増えてしまう。
【0013】
特許文献2においては、保持部材の動きは水平方向にのみ限定されており、他の方向には動かすことが困難である。また、保持部材とロボットアームは接触しており、保持部材の重力又は接触の摩擦力の影響を受けるので、操作性に課題が残る。
【0014】
特許文献3においては、ロボットがアシスト力を発生しているものの、推定値の誤差によって対象物又はロボットの重さを人が感じることとなり、操作性の課題が残る。また、力センサを用いる必要があり、大きなコストがかかってしまう。
【0015】
本発明の目的は、このような課題に鑑みてなされたものであり、協調搬送、又は、ダイレクトティーチングを行う際のロボットアームに対する操作性を改善することができ、ロボットアームを容易に動かすことができる、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路を提供することにある。
【課題を解決するための手段】
【0016】
前記の目的を達成するために、本発明は以下のように構成する。
【0017】
本発明の第1態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置を提供する。
【0018】
本発明の第7態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法を提供する。
【0019】
本発明の第8態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラムを提供する。
【0020】
本発明の第9態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路を提供する。
本発明の第10態様によれば、第1〜6のいずれか1つの態様に記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボットを提供する。
【発明の効果】
【0021】
本発明のロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路によれば、ロボットアームの本体と、人が把持部を介して把持する浮遊部とが機構的に分離しており、人が把持部を介して浮遊部を操作することによってロボットアームを操作することができる。その結果、教示操作時に、浮遊部に対するロボットアーム本体の慣性の影響を除去でき、協調搬送、又は、ダイレクトティーチングを行う際のロボットアームに対する操作性を非常に良くすることができ、ロボットアームを容易に動かすことができる。
【0022】
また、浮遊部に外部から加えられた力の情報を取得する力取得部をさらに備えているので、ロボットアームで接触を伴う作業を行う場合において、接触時の反力を把持部を介して人が感じやすくすることもできる。
【図面の簡単な説明】
【0023】
【図1】本発明の第1実施形態におけるロボットアームの構成を、ロボット本体と浮遊部が分離された場合について示す図。
【図2】本発明の第1実施形態におけるロボットアームの構成を、ロボット本体と浮遊部が一体化された場合について示す図
【図3A】本発明の第1実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとの平面図。
【図3B】本発明の第1実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとを示す図3A中のA−A線の断面図。
【図3C】本発明の第1実施形態のロボットにおける手先効果部と、把持部と、相対位置センサとを示す図3A中のB−B線の断面図。
【図4A】本発明の第1実施形態のロボットにおける落下時の手先効果部と、把持部と、相対位置センサとの断面図。
【図4B】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4C】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4D】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4E】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4F】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4G】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4H】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4I】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4J】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの断面図。
【図4K】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの平面図。
【図4L】本発明の第1実施形態のロボットにおける落下時の手先効果部、把持部、相対位置センサの平面図。
【図5A】本発明の第1実施形態のロボットにおける手先効果部、把持部、相対位置センサ、緩衝材の平面図。
【図5B】本発明の第1実施形態のロボットにおける手先効果部、把持部、緩衝材の側面図。
【図5C】本発明の第1実施形態のロボットにおける接触時の手先効果部、把持部、相対位置センサ、緩衝材の平面図。
【図5D】本発明の第1実施形態のロボットにおける接触時の手先効果部、把持部、緩衝材の側面図。
【図6】本発明の第1実施形態におけるロボット601の構成を示す図
【図7】本発明の第1実施形態のロボットにおけるロボットアームの説明図。
【図8A】本発明の第1実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図8B】本発明の第1実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図9】本発明の第1実施形態のロボットにおけるロボットアームを用いた協調搬送の説明図。
【図10】本発明の第1実施形態のロボットにおける相対位置情報を取得してから追従制御を行うまでの処理の流れを示すフローチャート。
【図11】本発明の第1実施形態のロボットにおける固定判定保持部及びモード選択保持部がそれぞれ保持する値と、固定判定部が行う判定とを示す図。
【図12】本発明の第1実施形態における固定判定部が行う処理の流れを示すフローチャート。
【図13】本発明の第2実施形態のロボットにおける制御装置のブロック図。
【図14】本発明の第3実施形態のロボットにおける制御装置のブロック図。
【図15】本発明の第4実施形態のロボットにおける制御装置のブロック図。
【図16】本発明の第1実施形態における制御部が行う処理の流れを示すフローチャート。
【図17】本発明の第2実施形態における制御部が行う処理の流れを示すフローチャート。
【図18】本発明の第3実施形態における制御部が行う処理の流れを示すフローチャート。
【図19】本発明の第4実施形態におけるモード選択部が行う処理の流れを示すフローチャート。
【図20】本発明の第4実施形態における制御部が行う処理の流れを示すフローチャート。
【図21】本発明の第2実施形態と第4実施形態との組み合わせにおける制御部が行う処理の流れを示すフローチャート。
【発明を実施するための形態】
【0024】
以下に、本発明にかかる実施の形態を図面に基づいて詳細に説明する。
【0025】
以下、図面を参照して本発明における実施形態を詳細に説明する前に、本発明の種々の態様について説明する。
【0026】
本発明の第1態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置を提供する。
【0027】
本発明の第2態様によれば、前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さを支えるための所定の条件を満たす場合にのみ、前記固定を行う判定を行う、
第1の態様に記載のロボットアームの制御装置を提供する。
【0028】
本発明の第3態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第1の態様に記載のロボットアームの制御装置を提供する。
【0029】
本発明の第4態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第2の態様に記載のロボットアームの制御装置を提供する。
【0030】
本発明の第5態様によれば、前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値よりも大きい場合にのみ、前記固定を解除し、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値以下の場合には前記固定行う判定を行い、
前記制御部は、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行い、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行う、
第2の態様に記載のロボットアームの制御装置を提供する。
【0031】
本発明の第6態様によれば、前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記人がダイレクトティーチングを選択しているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
第1の態様に記載のロボットアームの制御装置を提供する。
【0032】
本発明の第7態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法を提供する。
【0033】
本発明の第8態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラムを提供する。
【0034】
本発明の第9態様によれば、人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路を提供する。
本発明の第10態様によれば、第1〜6のいずれか1つの態様に記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボットを提供する。
【0035】
(第1実施形態)
図1は、本発明の第1実施形態における、ロボットアーム100を含むロボット601を示す。
【0036】
ロボットアーム100は、ロボットアーム100の本体の一例であるマニピュレータ101と、手先効果部の一例としてのロボットハンド1120と、ロボットアーム100とは別に移動する浮遊部103Aとを備える。ここで、ロボット601は、ロボットアーム100と、ロボットアームの制御装置602とで構成されている。
【0037】
マニピュレータ101は、複数の多関節機構を有し、複数の関節軸(101a、101b、101c)を中心に各リンク101d、101eが回転駆動する。マニピュレータ101の手先(先端側のリンク101eの先端)には、ロボットハンド1120が関節軸101cで回動可能に取り付けられている。具体的には、枠1120は、マニュピュレータ101の手先に取り付けられた上面部103aと、上面部103aの四辺にそれぞれ配置された側面部103bと、各側面部103bの中央部の下端より内向きに大略直角方向に突出した脱落防止部材の一例としての突起部103cとで構成されている。この枠1120の各側面部103bには、さらに、リニアアクチュエータ1121を備えているが、リニアアクチュエータ1121については後述する。
【0038】
ロボットハンド1120は、先端側のリンク101eの先端とは反対側に開口1120aを有する四角形箱体状の枠1120で構成されている。ロボットハンド1120である四角形箱体状の枠1120内には、浮遊部103Aが相対的に移動可能に配置されている。すなわち、浮遊部103Aは、その周囲に隙間90をあけて、下端開口1120aを除き、枠1120で囲まれており、かつ、下端開口1120aは浮遊部103Aより小さくして、枠1120内から浮遊部103Aが抜け落ちないようにしている。
【0039】
この浮遊部103Aは、可動部102Aと、複数の相対位置センサ104と、把持部1031と、部品保持部1034と、力センサ1033とを備えている。
【0040】
可動部102Aは、平面が正方形の直方体で構成され、人が作業を行う際に手で把持するための部分であり、ロボットハンド1120と分離した構造となっている。
【0041】
図1において、可動部102Aの下面には、それぞれ、下向きに突出した棒状の把持部1031と棒状の部品保持部1034とが固定されている。
【0042】
把持部1031は、基端(図1の上端)が力センサ1033を介して浮遊部103Aに固定されている。第1実施形態では、操作者が作業を行う際に、操作者が手で把持部1031を握って浮遊部103Aを枠1120に対して移動させるようにしている。
【0043】
力センサ1033は、把持部1031と可動部102Aとの接続部分に配置されて、把持部1031に人が加えた力を取得する。第1実施形態では、力センサ1033は6軸の力センサで構成している。
【0044】
部品保持部1034は、基端(図1の上端)が把持部1031の近くの浮遊部103Aに固定され、先端(図1の下端)に部品を保持する。部品保持部1034は、作業対象の部品、例えば、ネジ、又は、フレキシブルケーブルを保持する。部品保持部1034は、把持部1031よりも長くして、把持部1031を手で握ったとき、把持部1031の下端よりも下方に、部品保持部1034の下端に固定された部品が操作者に見えるようにして、浮遊部103Aの移動が円滑に行なえるようにしている。
【0045】
可動部102A内には、複数の相対位置センサ104を内蔵している。各相対位置センサ104は距離センサで構成されることにより、ロボットハンド1120である枠1120に対する可動部102Aの相対位置(すなわち、相対位置の情報、言い換えれば、測定値又は計測値)を測定する機能を有する。第1実施形態では、6個の相対位置センサ104を用いて、相対位置を測定する(詳細については後述する)。
【0046】
マニュピュレータ101には、それぞれの関節軸101a、101b、101cを正逆回転駆動させるモータ713を内蔵している。図1では、代表的に1つの枠で表現しているが、実際には、マニュピュレータ101の各関節軸101a、101b、101cに対してそれぞれモータ713を配置している。マニュピュレータ101は、さらに、各関節軸101a、101b、101cの位置を取得するエンコーダ714を内蔵している。図1では、代表的に1つの枠で表現しているが、実際には、マニュピュレータ101の各関節軸101a、101b、101cに対してそれぞれエンコーダ714を配置している。
【0047】
各リニアアクチュエータ1121は、先端が先すぼまり形状の板状係合部1121aを、可動部102Aの側面に対して、前後させる駆動装置例えばモータ1121Mを有している。図1では、代表的に1つの枠で表現しているが、実際には、一対の対向して配置されたリニアアクチュエータ1121に対してそれぞれモータ1121Mが存在する。各リニアアクチュエータ1121は、さらに、各リニアアクチュエータ1121の位置又は伸縮状態を取得するエンコーダ1121Eを有している。図1では、代表的に1つの枠で表現しているが、実際には、各リニアアクチュエータ1121に対してそれぞれエンコーダ1121Eが存在する。
【0048】
一対のリニアアクチュエータ1121は、それぞれの係合部1121aが前進して可動部102Aの係合凹部102Aaに接触して係合し、相対移動不可に枠1120に対して浮遊部103Aを固定する状態にするか、それぞれの係合部1121aが後退して可動部102Aの係合凹部102Aaとの間に隙間ができて係合解除され、枠1120から浮遊部103Aを分離した状態にするかを切換える部材である。リニアアクチュエータ1121は、側面部103bにそれぞれ配置されていて、係合部1121aが前進又は後退することにより伸縮自在となっている。図1は、係合部1121aが後退して縮んだ状態のリニアアクチュエータ1121を示す図である。この状態では、それぞれの係合部1121aと可動部102Aの係合凹部102Aaとの間に隙間ができて係合解除され、枠1120は、浮遊部103Aと分離している。図2は、係合部1121aが前進して伸びた状態のリニアアクチュエータ1211を示す図である。この状態では、それぞれの係合部1121aが可動部102Aの係合凹部102Aaに接触して係合し、リニアアクチュエータ1211は、浮遊部103Aに接触しており、可動部102Aを両側から挟みこんで固定している。リニアアクチュエータ1211は、図示しない電源によって動作するモータ713を正逆回転させることによって、伸縮を行う。
【0049】
以下、枠1120と、可動部102Aと、相対位置センサ104とについて図3A〜図3Cを用いて詳しく説明する。
【0050】
図3Aは、平面が正方形の直方体状の可動部102Aと、枠1120と、相対位置センサ104との底面図であり、枠1120の図3Aの裏面にマニピュレータ101の手先が連結される。図3Bは、枠1120と、可動部102Aと、相対位置センサ104との図3A中のA−A線の断面図であり、矢印2Bから見た断面図である。図3Cは、枠1120と、可動部102Aと、相対位置センサ104との図3A中のB−B線の断面図であり、矢印2Cから見た断面図である。
【0051】
なお、第1実施形態では、枠1120の形状は、図3Aに示す四角形例えば正方形の箱体状の枠形状をしているが、長方形、多角形、若しくは、円形の平面を有する柱状の物体、又は、球体など、いかなる形状も可能である。
【0052】
枠1120の上面部103aと4個の側面部103bとにより、枠1120の内側に直方体の凹空間103dを形成する。凹空間103dは、所定の隙間(空間)90を有して可動部102Aを内部に配置できる空間である。よって、枠1120の上面部103aと4個の側面部103bと4個の突起部103cとのそれぞれと可動部102Aとのそれぞれ対向する面との間に、それぞれ隙間90を保持可能としている。
【0053】
各突起部103cは、各側面部103bの上面部103aと対向する部分に設けられた板部材であり、凹空間103dの内部に配置した枠1120が、図4Aに示すように箱形状内部の凹空間103dから飛び出るのを防止する脱落防止部材の一例として機能する。
【0054】
可動部102Aの形状は、図3A〜図3Cに示す正方形形状をしているが、長方形、多角形、若しくは、円形の平面を有する箱状の物体、又は、球体など、いかなる形状も可能である。
【0055】
次に、枠1120と可動部102Aとの間の各空間(隙間)90(幅Δx〜Δγ)について、図3A〜図3Cを用いて説明する。
【0056】
ここでは、図3Aの横方向をx軸方向とし、縦方向をy軸方向とし、図3B及び図3Cの縦方向をz軸方向と定義している。すると、隙間90のx軸方向の幅Δxは、x軸方向と直交するy軸方向沿いにそれぞれ配置されている、可動部102Aの側面部102bと枠1120の側面部103bとのx軸方向の隙間の間隔を示す。隙間90のy軸方向の幅Δyは、x軸方向沿いにそれぞれ配置されている、可動部102Aの正面部102a又は裏面部102eと枠1120の側面部103bとのy軸方向の隙間の間隔を示す。隙間90のz軸方向の幅Δzは、z軸方向と直交する方向沿いにそれぞれ配置されている、可動部102Aの上面部102cと枠1120の上面部103aとのz軸方向の隙間の間隔を示す。隙間90のα方向の幅Δαは、可動部102Aの上面部102cと枠1120の上面部103aとのx軸まわりの回転方向αの隙間の間隔を示す。隙間90のβ方向の幅Δβは、可動部102Aの上面部102cと枠1120の上面部103aとのy軸まわりの回転方向βの隙間の間隔を示す。隙間90のγ方向の幅Δγは、可動部102Aの正面部102aと枠1120の側面部103bとのz軸まわりの回転方向γの隙間の間隔を示す。
【0057】
ここで、各軸(x〜γ)について、図3A〜図3Cを用いて説明する。x軸は、可動部102Aの中心部102dから側面部102bに対して垂直に延びる軸であり、図3A中の左方向を+とする。y軸は、可動部102Aの中心部102dから正面部102a又は裏面部102eに対して垂直に延びる軸であり、図3A中の下方向を+とする。z軸は、可動部102Aの中心部102dから上面部102cに垂直に延びる軸であり、図3B中の下方向を+とする。x軸周りの回転αは、x軸に対して左手の法則を適用させる。y軸周りの回転βは、y軸に対して左手の法則を適用させる。z軸周りの回転γは、z軸に対して左手の法則を適用させる。
【0058】
図3A〜図3Cの状態における可動部102Aと枠1120との間の隙間90の間隔(ギャップ)Δx、Δy、Δzは、それぞれ、具体的な一例として3mmとなっており、その隙間分だけ、枠1120に対して可動部102Aをx軸方向、y軸方向、又は、z軸方向にそれぞれ動かすことができる。したがって、図3A〜図3Cの状態においては、可動部102Aの可動範囲(枠1120と分離した範囲)は、x、y、z軸に対して±3mmとなる。また、可動部102Aの回転の可動範囲(Δα、Δβ、Δγ)は、α、β、γ方向に対して、それぞれ、一例として±3/100ラジアンとなっている。枠1120の形状に関しては、可動部102Aと同様にいかなる形状も可能である。
【0059】
また、可動部102Aを人が把持しない場合においても可動部102Aが枠1120から落下しないように、図3A〜図3Cに示すように枠1120の4個の突起部103cが可動部102Aを囲むか若しくは可動部102Aに係合する形状となっているので、どの方向を向いても可動部102Aは枠1120から落下しない構造となっている(図4A〜図4F参照)。すなわち、図4Aは、可動部102Aが枠1120に対して最も下方の位置に移動した場合に、4個の突起部103cが可動部102Aの底面部102fに接触して脱落防止している状態を示している。図4Bは、枠1120と可動部102Aとの位置関係が、図4Aの状態とは上下逆さまとなり、枠1120の上面部103aが可動部102Aの上面部102cに接触している状態を示している。図4Cは、枠1120と可動部102Aとの位置関係が、図4Aの状態から反時計方向に90度回転した状態であり、枠1120の側面部103bが可動部102Aの側面部102bに接触している状態を示している。図4Dは、枠1120と可動部102Aとの位置関係が、図4Aの状態から時計方向に90度回転した状態であり、枠1120の側面部103bが可動部102Aの側面部102bに接触している状態を示している。図4Eは、枠1120と可動部102Aとの位置関係が、図4Cの状態から左右方向の軸周りに上方向に90度回転した状態であり、枠1120の側面部103bが可動部102Aの裏面部102eに接触している状態を示している。図4Fは、枠1120と可動部102Aとの位置関係が、図4Cの状態から左右方向の軸周りに上方向に図4Eとは逆に90度回転した状態であり、枠1120の側面部103bが可動部102Aの表面部102aに接触している状態を示している。
【0060】
また、同様に、どの方向に回転しても、可動部102Aは枠1120から落下しない構造となっている(図4G〜図4L参照)。すなわち、図4G〜図4Jは、可動部102Aの側面部102b又は表面部102a(裏面部102e)のいずれもが、図4G〜図4Jにおいて、時計方向又は反時計方向に回転しても、右側の角度部又は左側の角度部が枠1120の突起部103cに接触して、枠1120は可動部102Aから落下しない状態を示している。図4K〜図4Lは、可動部102Aの底面部102fが、図4K〜図4Lにおいて、時計方向又は反時計方向に回転しても、可動部102Aの角度部が枠1120の側面部103bに接触してあまり回転しないように規制され、かつ、可動部102Aの各辺の一部が枠1120の突起部103cに接触して、可動部102Aが枠1120から落下しない状態を示している。
【0061】
なお、このように、可動部102Aと枠1120とが接触する際に、衝突を和らげる緩衝材401を可動部102Aの角部に取り付けることも可能である(図5A、図5B参照)。図5A及び図5Bに示す通り、緩衝材401を可動部102Aの上下左右の各角部に取り付けた場合においても、図3A〜図3Cで定義した隙間(Δx〜Δγ)の値は変わらない。図5C及び図5Dに緩衝材401と枠1120が接触した際の状態を示す。図5C及び図5Dより、緩衝材401を可動部102Aに取り付けることによって、緩衝材401のみが枠1120と接触しており、可動部102Aと枠1120とは直接接触していないことがわかる。
【0062】
相対位置センサ104は、枠1120に対する可動部102Aの相対位置Δrを検出するセンサである。ここで、Δrは、Δx〜Δγの総称を意味する。
【0063】
ここで、相対位置Δrは次式(1)により表され、各相対位置は図3A〜図3Cに示す通りである。
【0064】
【数1】

図3A〜図3Cに示すように、相対位置センサ104は可動部102Aに内蔵された構造になっており、具体的にはギャップセンサを用いている。すなわち、可動部102Aの正面部102aの近傍内に、正面部102aの面と平行にかつx軸方向沿いに丸棒状のギャップセンサsx1を配置して、ギャップセンサsx1の一端が可動部102Aの側面部102bに露出して、隙間90のx軸方向の幅Δxを計測している。可動部102Aの側面部102bの近傍内には、側面部102bの面と平行にかつz軸方向沿いに丸棒状のギャップセンサsz3を配置して、ギャップセンサsz3の一端が可動部102Aの上面部102cに露出して、隙間90のz軸方向の幅Δzを計測している。可動部102Aの裏面部102eの近傍内に、側面部102bの面と平行にかつy軸方向沿いにそれぞれ丸棒状の一対のギャップセンサsy1、sy2を配置して、一対のギャップセンサsy1、sy2の各一端が可動部102Aの裏面部102eに露出して、隙間90のy軸方向の幅Δyをそれぞれ計測している。可動部102Aの裏面部102eの近傍内には、側面部102bの面と平行にかつz軸方向沿いに丸棒状の一対のギャップセンサsz2、sz3を配置して、一対のギャップセンサsz2、sz3の各一端が可動部102Aの上面部102cに露出して、隙間90のz軸方向の幅Δzを計測している。
【0065】
よって、隙間90のy軸方向の幅Δyは、2個のギャップセンサsy1、sy2で計測された少なくとも2つの計測値y、yの平均を、後述する相対位置情報取得部607で算出して採用する。隙間90のz軸方向の幅Δzは、3個のギャップセンサsz1、sz2、sz3で計測された少なくとも3つの計測値z、z、zの平均を、後述する相対位置情報取得部607で算出して採用する。なお、隙間90のx軸方向の幅Δxは、1個のギャップセンサsで計測された少なくとも1つの計測値xをそのまま採用するか、1個のギャップセンサsで複数回計測を行い、その平均値を、後述する相対位置情報取得部607で算出して採用する。幅Δy又は幅Δzも、同様に、それぞれのギャップセンサで複数回計測を行い、それらの平均値をそれぞれy、y、z、z、zとした上で、前記した平均値を算出して採用するようにしてもよい。よって、各計測値x、y、y、z、z、zを計算して得られた結果が幅Δx〜Δγとなる。
【0066】
しかしながら、枠1120に対する可動部102Aの相対位置Δrを検出する方法としては、ギャップセンサによる検出に代えて、カメラで枠1120に対する可動部102Aの画像を取得して相対位置Δrを検出する方法など、他の方法を用いることも可能である。
【0067】
ここでは、図3A〜図3Cに示すギャップセンサを6個用いる方法について説明する。6個のギャップセンサsx1、sy1、sy2、sz1、sz2、sz3を図3A〜図3Cに示すように配置し、xyzのそれぞれの軸の可動部102Aと枠1120との隙間gを測定する(ギャップセンサsx1、sy1、sy2、sz1、sz2、sz3のそれぞれの計測値(測定値)gから相対位置Δrを導出する方法は後述する)。なお、隙間gは、ギャップセンサsx1、sy1、sy2、sz1、sz2、sz3のそれぞれの計測値x、y、y、z、z、zの総称を意味する。ここで、隙間gは、次式(2)により表されて、それぞれのギャップセンサsx1、sy1、sy2、sz1、sz2、sz3の計測値x、y、y、z、z、zを表し、隙間gは図3A〜図3Cに示す通りである。なお、各計測値x、y、y、z、z、zだけでは回転方向が表現されていない。そこで、各計測値x、y、y、z、z、zを用いて並進方向と回転方向を求めた結果がΔx〜Δγとしている。よって、各計測値x、y、y、z、z、zはギャップセンサsx1、sy1、sy2、sz1、sz2、sz3の計測値を表しただけのものである。それに対して、Δx〜Δγは各計測値を用いて並進方向と回転方向の相対位置を計算した結果、導出した値となる。
【0068】
【数2】

また、図3A〜図3Cに示すように、y軸方向のギャップセンサsy1−sy2間の間隔py12、z軸方向のギャップセンサsz1−sz2間の間隔pz12、z軸方向のギャップセンサsz2−sz3間の間隔pz23は100mmとする。
【0069】
図6は、本発明の第1実施形態のロボット601におけるロボットアーム100のブロック図を示す。図6において、ロボットアーム100は、マニピュレータ101と、ロボットアーム100の制御装置602とで構成されている。
【0070】
ロボットアーム100の制御装置602は、制御装置本体部603と、周辺装置604とで構成されている。制御装置本体部603は、制御部605と、追従制御部606と、相対位置情報取得部607となどで構成されている。詳細については、後述する。
【0071】
周辺装置604は、入出力IF(インターフェース)608IFと、モータドライバ609Mとで構成されている。入出力IF608IFには、制御装置602での制御動作のオン・オフスイッチも含まれている。それぞれの機能について、以下に説明する。
【0072】
相対位置情報取得部607は、入出力IF608IFから取得した相対位置センサ104であるギャップセンサsx1、sy1、sy2、sz1、sz2、sz3のそれぞれの計測値gを基に、枠1120に対する可動部102Aの相対位置Δrを求める。求めた相対位置Δrである相対位置情報を、相対位置情報取得部607から追従制御部606に出力する。ここで、ギャップセンサsy1−sy2間の間隔と、ギャップセンサsz1−sz2間の間隔と、ギャップセンサsz2−sz3間の間隔とをそれぞれpとし、ギャップセンサsx1、sy1、sy2、sz1、sz2、sz3のそれぞれの計測値をx、y、y、z、z、zとし、枠1120に対する可動部102Aの相対位置をΔrとすると、Δrは、相対位置情報取得部607により、次式(3)より求まる。
【0073】
【数3】

追従制御部606は、相対位置情報取得部607から取得した枠1120に対する可動部102Aの相対位置情報から、その相対位置情報が所定の閾値の範囲内に収まるような移動量を求める。求めた移動量の情報は、追従制御部606から制御部605に出力する。所定の閾値の範囲とは、ギャップセンサsy1−sy2間の間隔と、ギャップセンサsz1−sz2間の間隔と、ギャップセンサsz2−sz3間の間隔とをそれぞれpとするとき、定数(例えば、0.1)を掛けた範囲(−0.1p〜0.1p)とする。
【0074】
また、追従制御部606による移動量の求め方を以下に説明する。枠1120に対する可動部102Aの相対位置をΔr(式(3)参照)とし、相対位置の目標値をΔrとし、求める移動量をyとすると、追従制御部606により、y=k(Δr−Δr)より、移動量yは求まる(ここで、kは定数(例えば、1.0))。ただし、枠1120に対する可動部102Aの相対位置Δrが閾値内に収まっている場合は、移動量yを0とする。定数kの値は、操作者である人がキーボード又はマウス又はタッチパネルなどの入力装置608dを使用して入出力IF608IFから入力される値によって決定される。ただし、相対位置の目標値Δrは次式(4)で表され、各ギャップセンサの値gが3mmのときをΔr=0と定め、ここでは、相対位置の目標値Δrを0とする。また、式(4)中で使用されるΔx、Δy、Δz、Δα、Δβ、Δγについて説明する。Δxは、図3A中のx軸に対する平行移動方向の相対位置Δxの目標値である。Δyは、図3A中のy軸に対する平行移動方向の相対位置Δyの目標値である。Δzは、図3A中のz軸に対する平行移動方向の相対位置Δzの目標値である。Δαは、図3A中のx軸に対する回転方向の相対位置Δαの目標値である。Δβは、図3A中のy軸に対する回転方向の相対位置Δβの目標値である。Δγは、図3A中のz軸に対する回転方向の相対位置Δγの目標値である。相対位置の目標値Δrが0の場合は、Δx、Δy、Δz、Δα、Δβ、Δγの値はいずれも0である。
【0075】
【数4】

制御部605は、入出力IF608IFに内蔵されたタイマーを利用して、ある一定時間毎(例えば、1ms毎)に、追従制御部606から制御部605に入力される移動量情報を入出力IF608IFに出力する。
【0076】
入出力IF608IFは、マニピュレータ101から取得したギャップセンサsx1、sy1、sy2、sz1、sz2、sz3の計測値gと、入出力IF608IFに内蔵されたタイマーからの時間情報とを相対位置情報取得部607に出力する。また、制御部605から取得した移動量情報を、入出力IF608IFはモータドライバ609Mに出力する。追従制御部606で使用する定数の値が、人がキーボード又はマウス又はタッチパネルなどの入力装置608dを使用して入出力IF608IFに入力でき、入出力IF608IFに入力された値を、入出力IF608IFから追従制御部606に出力する。
【0077】
モータドライバ609Mは、入出力IF608IFから取得した移動量情報を基に、マニピュレータ101を制御するために、マニピュレータ101のそれぞれのモータ713への指令値をマニピュレータ101に出力する。
【0078】
マニピュレータ101は、入出力IF608IFに内蔵されたタイマーを利用して、ある一定時間毎(例えば、1ms毎)に、マニピュレータ101の位置情報をマニピュレータ101の各エンコーダ714から入出力IF608IFに出力する。また、相対位置センサ104(ギャップセンサsx1、sy1、sy2、sz1、sz2、sz3)からの計測値gも同様に、入出力IF608IFに内蔵されたタイマーを利用して、ある一定時間毎(例えば、1ms毎)に、ギャップセンサsx1、sy1、sy2、sz1、sz2、sz3から入出力IF608IFに計測値gを出力する。また、マニピュレータ101は、モータドライバ609Mからの指令値に従って制御される。詳細については、図7を用いて説明する。マニピュレータ101は、合計6個の軸周りに回転可能として6自由度の多リンクマニピュレータを構成している。
【0079】
図7に示すように、マニピュレータ101は、一例として、多関節ロボットアームであって、具体的には、6自由度の多リンクのマニピュレータである。マニピュレータ101は、ロボットハンドである枠1120と、枠1120が取り付けられている手首部701を先端702aに有する前腕リンク101aと、前腕リンク101aの基端702bに回転可能に先端703aが連結される上腕リンク101dと、上腕リンク101dの基端703bが回転可能に連結支持される台部101gとを備えている。台部101gは、一定位置に固定されているが、図示しないレールに移動可能に連結されていても良い。手首部701は、第4関節部708と、第5関節部709と、第6関節部710との3つの回転軸を有しており、前腕リンク101eに対する枠1120の相対的な姿勢(向き)を変化させることができる。すなわち、図7において、第4関節部708は、手首部701に対する枠1120の横軸周りの相対的な姿勢を変化させることができる。第5関節部709は、手首部701に対する枠1120の、第4関節部708の横軸とは直交する縦軸周りの相対的な姿勢を変化させることができる。第6関節部710は、手首部701に対する枠1120の、第4関節部708の横軸及び第5関節部709の縦軸とそれぞれ直交する横軸周りの相対的な姿勢を変化させることができる。前腕リンク101eの他端702bは、上腕リンク101dの先端703aに対して第3関節部707周りに、すなわち、第4関節部708の横軸と平行な横軸周りに回転可能とする。上腕リンク101dの他端は、台部101gに対して第2関節部706周りに、すなわち、第4関節部708の横軸と平行な横軸周りに回転可能とする。さらに、台部101gの上側可動部704aは、台部101gの下側固定部704bに対して第1関節部705周りに、すなわち、第5関節部709の縦軸と平行な縦軸周りに回転可能としている。
【0080】
この結果、マニピュレータ101は、合計6個の軸周りに回転可能として前記6自由度の多リンクマニピュレータを構成している。
【0081】
マニピュレータ101の各軸の回転部分を構成する各関節部(関節軸)101a,101b,101cには、関節部駆動用のモータ713のような回転駆動装置と、モータ713の回転軸の回転位相角(すなわち関節角)を検出して位置情報を出力するエンコーダ714(実際には、マニピュレータ101の各関節部の内部に配設されている)とを備えている。モータ713(実際には、マニピュレータ101の各関節部の内部に配設されている)は、各関節部を構成する一対の部材(例えば、回動側部材と、該回動側部材を支持する支持側部材)のうちの一方の部材に備えられる、モータドライバ609Mにより駆動制御される。各関節部の一方の部材に備えられたモータ713の回転軸が、各関節部の他方の部材に連結されて、前記回転軸を正逆回転させることにより、他方の部材を一方の部材に対して各軸周りに回転可能とする。
【0082】
また、711は台部101gの下側固定部704bに対して相対的な位置関係が固定された絶対座標系であり、712は枠1120に対して相対的な位置関係が固定された手先座標系である。絶対座標系711から見た手先座標系712の原点位置O(x,y,z)をマニピュレータ101の手先位置、絶対座標系711から見た手先座標系712の姿勢をロール角とピッチ角とヨー角とで表現した(φ,θ,ψ)をマニピュレータ101の手先姿勢とし、手先位置及び姿勢ベクトルをベクトルr=[x,y,z,φ,θ,ψ]と定義する。よって、一例として、絶対座標系711のz軸に対して第1関節部705の縦軸が平行であり、x軸に対して第2関節部706の横軸が平行に位置可能とするのが好ましい。また、手先座標系712のx軸に対して第6関節部710の横軸が平行に位置可能であり、y軸に対して第4関節部708の横軸が平行に位置可能であり、z軸に対して第5関節部709の縦軸が平行に位置可能とするのが好ましい。なお、手先座標系712のx軸に対しての回転角をヨー角ψとし、y軸に対しての回転角をピッチ角θとし、z軸に対しての回転角をロール角φとする。
【0083】
次に、ロボットアーム100の概要を説明する。ロボットアーム100は、ロボット601に作業軌跡を教示する装置である。浮遊部103Aの部品保持部1034に、例えば、ねじ、フレキシブルケーブル、電動ドライバ、又は、ハンマー等を保持して移動する軌跡をロボット601に教示するのに用いる。
【0084】
ロボットアーム100は、2つの教示方法を切り替えながら行うことができる装置である。
【0085】
第一の教示方法は、ダイレクトティーチングによる教示方法である。第一の教示方法を行う際には、図2に示すように各リニアアクチュエータ1211を伸ばして、浮遊部103Aの可動部102Aを両側から挟みこんで、枠1120と可動部102Aすなわち浮遊部103Aとを一体化する。そして、操作者が把持部1031に加えた力を力センサ1033で取得して、力センサ1033で取得した力に基づいて、マニュピュレータ101により枠1120を移動する位置を決定する。例えば、操作者が、把持部1031を介して浮遊部103Aに下向きに力を加えたら、マニュピュレータ101により枠1120を下向きに移動する。また、操作者が把持部1031を介して浮遊部103Aに右向きに力を加えたら、マニュピュレータ101により枠1120を右向きに移動する。
【0086】
ロボットアーム100の第二の教示方法を行う際には、図1に示すように各リニアアクチュエータ1211を縮めて、浮遊部103Aを、枠1120から分離する。操作者は、把持部1031を手で握って、枠1120から分離した浮遊部103Aを移動して、枠1120を移動する。その際に、可動部102Aの動きに合わせて枠1120が追従して移動する。この教示方法を以降、フロート教示(追従制御)と呼ぶ。フロート教示(追従制御)は、以下のような制御方式である。
【0087】
図8A〜図9は、マニピュレータ101と人とが協調して対象物(把持対象物)802を搬送するときに、マニピュレータ101が追従する手順を示す。マニピュレータ101の手先部の浮遊部103Aの部品保持部1034に対象物802を把持させる。その後、図8A→図8B→図9の順に状態が遷移する。
【0088】
まず、図8Aの状態は、人の手801が把持部1031を把持しており、静止している状態である。人の手801が把持部1031を把持し、把持部1031を動かさないようにすることで、枠1120に対する可動部102Aの把持部1031の相対位置Δrが閾値を超えないので、マニピュレータ101は追従制御を行わず静止した状態となっている。
【0089】
次いで、図8Bの状態は、人の手801が把持部1031を移動させ、把持部1031に対する可動部102Aの把持部1031の相対位置Δrが閾値を超えた状態である。具体的には、図8Bでは、人の手801が把持部1031を図8Bの右方向(矢印参照)に移動させ、枠1120に対する可動部102Aの把持部1031の相対位置Δr(特に、Δz)が閾値を超えた状態である。
【0090】
次いで、図9の状態は、枠1120に対する可動部102Aの把持部1031の相対位置Δrが閾値内に収まるように、マニピュレータ101が制御装置602により追従制御を行っている状態である。具体的には、図9では、人の手801が把持部1031を図8Bの右方向(矢印参照)に移動させているので、枠1120に対する可動部102Aの把持部1031の相対位置Δrが閾値内に収まるように、図9の矢印方向にマニピュレータ101が制御装置602により追従制御を行って、点線から実線で示す位置に、対象物802をマニピュレータ101で搬送している状態である。
【0091】
以上のように、人の手801が把持部1031を把持し移動させると、その移動量に応じてマニピュレータ101が制御装置602により把持部1031に対して追従する動きが可能となる。枠1120と可動部102Aの把持部1031とは、分離した構造をしているので、人は把持部1031を移動させるだけの力で、対象物802をマニピュレータ101を利用して移動させることができる。
【0092】
このような構成によれば、人が把持する把持部1031を有する可動部102Aと枠1120とが機構的に分離され、把持部1031を移動させたところにマニピュレータ101が追従することから、例えば、協調搬送、又は、ダイレクトティーチングなどの作業を行う際の操作性の悪いロボットアーム100に対しても、人は軽い力でロボットアーム100を容易に移動させることができ、人の負担を軽減することができる。したがって、ロボットアーム100の操作性を改善することができる。
【0093】
以上が、フロート教示(追従制御)の説明である。
【0094】
また、教示した軌跡を再生する際には、ダイレクトティーチングの場合と同様に、リニアアクチュエータ1211によって、枠1120は浮遊部103Aの可動部102Aを両側から挟みこんで一体化している。
【0095】
以上より、ダイレクトティーチングを行う際には、浮遊部103Aは、枠1120と一体化している。一方、フロート教示(追従制御)では、浮遊部103Aは、枠1120と分離しており、自由に移動することができる。よって、フロート教示(追従制御)のときの方が、即応性の操作感が高い。
【0096】
また、フロート教示(追従制御)では、浮遊部103Aの重量に加えて、部品と工具との重さを全て操作者が支えなければならない。一方で、ダイレクトティーチングでは、操作者は浮遊部103Aを支える必要はなく、どちらの方向に移動したいかの力を加えるだけでよい。よって、ダイレクトティーチングの方が重量感の操作感が高い。
【0097】
第1実施形態では作業の状況に応じて、操作者は、フロート教示(追従制御)とダイレクトティーチングとのどちらの教示方法を用いるかを選択して操作を行う。ただし、ダイレクトティーチングから、フロート教示(追従制御)に移動する際に、操作者が支えなければならない重さが突然増加する。その重さの急激な増加によって操作者が、浮遊部103Aを落としてしまう場合があるので、そのようにならないように、操作者が、浮遊部103Aをしっかり握ったかを判定してから、教示方法を切り替える構成を以下に説明する。
【0098】
図6は、第1実施形態のロボット601における制御装置602のブロック図を示す。 制御装置602は、制御部605A、追従制御部606と、相対位置情報取得部607と、モード選択部608と、モード選択保持部5401と、固定制御部609と、把持判定部5430と、重さ取得部610と、と、ダイレクトティーチング制御部612と、力取得部613と、固定判定保持部614と、固定判定部615とで構成されている。さらに、固定判定部615からの情報を基に、操作者が浮遊部103Aの把持部1031に手で力を加えておらず(手で把持部1031に加える力が不足しており)危険であることを通知するための警告情報を出力する警告出力部5420を備えている。警告出力部5420としては、音声出力装置、点灯若しくは点滅する照明装置、又は、振動出力装置など任意のものを採用することができる。
【0099】
モード選択部608は、操作者が、フロート教示(追従制御)と、ダイレクトティーチングとのどちらの教示を使用したいかを入力する装置である。操作者によりモード選択部608の一例としてのスイッチが押されるたびに、スイッチのON/OFFが切り替わる。操作者は、フロート教示を行いたいときはモード選択部608としてのスイッチをOFF側にし、ダイレクトティーチングを行いたいときにはスイッチをON側にする。モード選択部608からは、フロート教示と、ダイレクトティーチングとのどちらが操作者により選択されたかの選択情報をモード選択保持部5401に出力する。
【0100】
モード選択保持部5401は、モード選択部608からの選択情報が入力されて、操作者がフロート教示と、ダイレクトティーチングとのどちらをモード選択部608で選択しているかの選択情報を保持する。なお、概要として前述したように、操作者の選択が制御に即時に反映させる訳ではない。ここでは、フロート教示を操作者が選択したときは、モード選択部608としてのスイッチの状態を「OFF」にするものとし、ダイレクトティーチングを選択したときは、モード選択部608としてのスイッチの状況を「ON」にするものとする。なお、モード選択部608にモード選択保持部5401を設けて、スイッチのON、OFFをそれぞれ、「1」、「0」とするディジタル情報として保持する。モード選択保持部5401は、半導体素子等のメモリなどで構成することもできる。第1実施形態では、モード選択部608はスイッチが「OFF」のとき「0」をモード選択保持部5401に保持し、「ON」のとき「1」をモード選択保持部5401に保持するものとする。モード選択保持部5401は、保持した選択情報をダイレクトティーチング制御部612と固定判定部615とへ出力する。
【0101】
固定判定保持部614は、リニアアクチュエータ1121のエンコーダ1121Eの情報が入力されて、現在、枠1120に、可動部102Aが固定されているか否かの状態を保持する。すなわち、リニアアクチュエータ1121がリニアアクチュエータ用モータドライブ1121Cを介して駆動されて棒状係合部1121aが前進して係合凹部102Aa内に係合して、可動部102Aが枠1120に固定されている状態であるか、リニアアクチュエータ1121がリニアアクチュエータ用モータドライブ1121Cを介して逆駆動されて棒状係合部1121aが後退して係合凹部102Aaから係合解除して、可動部102Aが枠1120に固定されていない状態であるかの判定を保持する。固定判定保持部614は半導体素子等のメモリなどで構成することもできる。ここでは、各リニアアクチュエータ1121は、初期状態で伸びた状態(棒状係合部1121aが前進して係合凹部102Aa内に係合している状態)であるとする。各リニアアクチュエータが伸びたときは、ダイレクトティーチングを選択させる。ここでは、各リニアアクチュエータ1211が伸びたときは「1」を保持し、各リニアアクチュエータ1211が縮んだときは「0」を保持するものとする。すなわち、可動部102Aを「固定していない」ときは「0」を固定判定保持部614に保持する一方、可動部102Aを「固定している」ときは「1」を固定判定保持部614に保持する。固定判定保持部614は、可動部102Aの「固定していない」か「固定している」かの情報を制御部605Aへ出力する。
【0102】
重さ取得部610は、浮遊部103Aの重さを取得する。この重さには、浮遊部103Aに取り付けられている部品及び工具の重さも含む。ここでは、浮遊部103Aの重さと、部品及び工具の重さとは、重さ取得部610に予め登録されているものとする。その代わりに、重さ取得部610を重量センサで構成して、重量センサで浮遊部103Aの重さなどを取得する構成であっても構わない。重さ取得部610は、把持判定部5430へ浮遊部103Aの重さなどの情報を出力する。
【0103】
固定制御部609は、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動又は逆駆動することにより、枠1120に対して浮遊部103Aを固定する制御と、枠1120に対する浮遊部103Aの固定を解除する制御との固定処理を行う。すなわち、枠1120に対して浮遊部103Aの固定又は固定解除を行うために、固定制御部609は、リニアアクチュエータ用モータドライブ1121Cを介して、各リニアアクチュエータ1121を伸ばす制御、あるいは、縮める制御を行う。各リニアアクチュエータ1121に取り付けられたモータ713を制御することで、枠1120に対する浮遊部103Aの固定又は固定の解除を行う。
【0104】
力取得部613は、力センサ1033が取得した力を取得する。すなわち、力取得部613は、把持部1031に人が加えた力を力センサ1033で取得する。取得する力は6軸方向の力である。
【0105】
把持判定部5430は、力取得部613と重さ取得部610とからの情報に基づき、操作者が、手で把持部1031をしっかり握ったか否かを判定する。第1実施形態では、操作者が加えた力のうち、上向きに加えた力の大きさが、浮遊部103Aの重さによる重力(把持判定用閾値)よりも大きいか否かを把持判定部5430で判定する。具体的には、力取得部613で取得した操作者が加えた力のうち、上向きに加えた力の大きさが、浮遊部103Aの重さに、重力「9.8m/s」を掛けた値以上か否かを把持判定部5430で比較する。前者の方が大きいと把持判定部5430で判定した場合には、操作者が手で把持部1031をしっかり把持していると把持判定部5430で判定し、それ以外の場合は、操作者が手で把持部1031をしっかり把持していないと把持判定部5430で判定する。
【0106】
制御部605Aは、固定判定保持部614からの情報に基づき、ロボット601の手先の位置の制御を行う。固定判定保持部614が「1」を保持する場合、すなわち、浮遊部103Aの可動部102Aが固定されている場合は、追従制御部606によって決定された移動位置にマニュピュレータ101を移動する制御を行う。また、固定判定保持部614が「0」を保持する場合、すなわち、浮遊部103Aの可動部102Aが固定されていない場合、制御部605Aは、ダイレクトティーチング制御部612によって決定された移動位置にマニュピュレータ101を移動する制御を行う。マニュピュレータ101を移動する制御は、モータ713を制御することで行う。また、制御部605Aは、エンコーダ714によって、マニュピュレータ101の位置を取得する。
【0107】
ダイレクトティーチング制御部612は、モード選択保持部5401でダイレクトティーチングが選択されている選択情報と力取得部613が取得した力とに基づいてロボットハンドである枠1120の移動位置を決定する。すなわち、操作者が、把持部1031に下向きの力を加えたときには、ロボットハンドである枠1120を下向きに移動し、右向きに力を加えたときには、ロボットハンドである枠1120を右向きに移動する制御の指示を制御部605Aに送付し、モータ713を制御して実際にロボットハンドである枠1120を移動させる。
【0108】
固定判定部615は、固定判定保持部614及びモード選択保持部5401に基づき、可動部102Aを枠1120に固定するか否かの判定、可動部102Aを枠1120に固定を解除するか否かの判定をする。可動部102Aを枠1120に固定するか否かは、固定判定保持部614及びモード選択保持部5401が保持する値によって変わる。
【0109】
図11は、固定判定保持部614及びモード選択保持部5401がそれぞれ保持する値(「固定判定」の値及び「モード選択」の値)と、固定判定部615が行う判定を示す図である。
【0110】
図11において、モード選択保持部5401が「0」を保持し、固定判定保持部614が「0」を保持する場合(選択情報と、現在の実際の固定状態の情報とが等しい場合)は、固定及び固定解除のいずれも行わないと固定判定部615で判定する。このケースは、操作者がフロート制御を選択していて、固定状態は、フロート制御が出来る状態になっている場合である。
【0111】
図11において、モード選択保持部5401が「1」を保持し、固定判定保持部614が「1」を保持する場合(選択情報と、現在の実際の固定状態の情報とが等しい場合)は、固定及び固定解除のいずれも行わないと固定判定部615で判定する。このケースは、操作者がダイレクトティーチング制御を選択していて、固定状態は、ダイレクトティーチング制御が出来る状態になっている場合である。
【0112】
図11において、モード選択保持部5401が「1」を保持し、固定判定保持部614が「0」を保持する場合(選択情報と、現在の実際の固定状態の情報とが等しくない場合)は、固定制御をすると固定判定部615で判定をする。このケースは、操作者がダイレクトティーチング制御を選択していて、固定状態は、ダイレクトティーチングが出来る状態になっていない場合である。固定制御を行うことで、操作者が選択したダイレクトティーチングが出来る状態に移行することが出来る。
【0113】
図11において、モード選択保持部5401が「0」を保持し、固定判定保持部614が「1」を保持する場合(選択情報と、現在の実際の固定状態の情報とが等しくない場合)は、把持判定部5430の判定結果に基づいて固定判定部615で判定する。すなわち、把持判定部5430の判定結果によって処理が変わる。このケースは、操作者がフロート制御を選択していて、固定状態は、フロート制御が出来る状態になっていない場合である。このような場合に、無条件に固定解除を行うと、浮遊部103Aの重さが突然、操作者の手に加わり、操作者が浮遊部103Aを落とす場合があるので、把持判定部5430の判定結果によって固定判定部615で固定解除を行うか否かを決定する。すなわち、把持判定部5430が操作者が浮遊部103Aをしっかり握っていると固定判定部615で判定した場合に、固定解除を固定判定部615で行い、そうでないと固定判定部615で判定した場合は、固定解除を固定判定部615で行わない。
【0114】
固定判定部615が行う処理を図12に示す。
【0115】
まず、固定判定部615は、ステップS5400で処理を開始する。
【0116】
次いで、ステップS5401で、固定判定部615は、モード選択保持部5401より、操作者が選択しているモードの選択情報を取得する。「ダイレクトティーチング」がモード選択部608で選択されている場合、モード選択保持部5401より「1」を示す識別情報を固定判定部615で取得する。「フロート教示(追従制御)」がモード選択部608で選択されている場合、モード選択保持部5401より「0」を固定判定部615で取得する。
【0117】
次いで、ステップS5402で、固定判定部615は、固定判定保持部614より、現在の実際の固定状態の情報を取得する。すなわち、各リニアアクチュエータ1121により浮遊部103Aの可動部102Aを枠1120に「固定している」状態の場合は、固定判定保持部614より「1」を固定判定部615で取得する。また、各リニアアクチュエータ1121により浮遊部103Aの可動部102Aを枠1120に「固定していない」状態の場合は、固定判定保持部614より「0」を固定判定部615で取得する。
【0118】
次いで、ステップS5403で、固定判定部615は、ステップS5401で取得した選択情報と、ステップS5402で取得した現在の実際の固定状態の情報とが等しいか否かを判定する。もし、両者が等しいと固定判定部615で判定した場合は、ステップS5411に分岐して、処理を終了する。すなわち、「ダイレクトティーチング」が選択されていて、浮遊部103Aが「固定している」場合、又は、「フロート教示」が選択されていて、浮遊部103Aが「固定していない」場合は、固定状態の変更は必要なく、そのような場合には、ステップS5411に分岐して、処理を終了する。
【0119】
ステップS5403で、両者が等しくないと固定判定部615で判定した場合は、ステップS5404に分岐する。すなわち、ステップS5403で「ダイレクトティーチング」が選択されているが、枠1120に対して可動部102Aが「固定していない」場合、又は、「フロート教示」が選択されていて、枠1120に対して可動部102A「固定している」場合は、ステップS5404に分岐する。つまり、現在の固定状態では、選択された教示方法が実行できない場合は、ステップS5404に分岐する。
【0120】
ステップS5404で、固定判定部615は、ステップS5401でモード選択部608より取得したモード選択情報が、「ダイレクトティーチング」を示す「1」であるかを判定する。モード選択情報が「1」であったと固定判定部615で判定した場合には、ステップS5405に分岐する。モード選択情報が「1」でないと固定判定部615で判定した場合(「フロート教示」の場合)には、ステップS5407に分岐する。
【0121】
ステップS5405で、固定判定部615は、固定判定保持部614の保持する値を、「固定している」状態を示す「1」に更新する。すなわち、操作者が「ダイレクトティーチング」を選択した場合には、「固定している」を示す値に変更して、ステップS54052に進む。
【0122】
次いで、ステップS54052で、固定制御部609は、各リニアアクチュエータ1121をリニアアクチュエータ用モータドライブ1121Cを介して駆動して伸ばし、枠1120に可動部102Aを固定して、ダイレクトティーチングができる状態にする。それらの処理後、ステップS5411に分岐する。
【0123】
一方、ステップS5407で、重さ取得部610は、浮遊部103Aの重さを取得する。
【0124】
次いで、ステップS5408で、力取得部613は、力センサ1033を利用して、操作者が把持部1031を介して浮遊部103Aに加えた力を取得する。
【0125】
次いで、ステップS5409で、把持判定部5430は、操作者が浮遊部103Aの把持部1031を手でしっかり握っているか否かの判定を行う。具体的には、ステップS5408で取得した操作者が加えた力のうち、上向きに加えた力の大きさが、ステップS5407で取得した浮遊部103Aの重さに、重力「9.8m/s」を掛けた値以上か否かを把持判定部5430で比較する。すなわち、浮遊部103Aを支える以上の力を操作者が加えているか否かを把持判定部5430で判定する。操作者が力を加えていると把持判定部5430で判定した場合、ステップS5410に分岐し、操作者が力を加えていないと把持判定部5430で判定した場合には、ステップS5412に分岐する。
【0126】
ステップS5412では、固定判定部615からの情報に基づき、操作者が力を加えておらず危険であることの警告を警告出力部5420で出力したのち、ステップS5411に分岐する。
【0127】
ステップS5410では、固定判定部615は、固定判定保持部614が保持する値を、「固定していない」状態を示す値「0」に更新する。
【0128】
次いで、ステップS54101で、固定制御部609は、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を縮めて、枠1120と可動部102Aとを「固定していない」状態にして、実際にフロート教示(追従制御)ができる状態にする。
【0129】
次いで、ステップS5411で、固定判定部615は処理を終了する。
【0130】
この後、制御部605Aは、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基にモータドライバ609Mを介してモータ713を駆動することによって、マニュピュレータ101を指定された位置に移動する。
【0131】
次に、制御部605Aが行う処理の流れを、図16を用いて説明する。
【0132】
まず、制御部605Aは、ステップS6200で処理を開始する。
【0133】
次いで、ステップS6202で、制御部605Aは、固定判定部615に固定判定の処理を指示する。なお、固定判定部の処理は図15に記載した処理である。
【0134】
次いで、ステップS6203で、制御部605Aは、固定判定保持部614が保持する値を取得し、取得した値が「1」であるか否かを判定する。固定判定保持部614から制御部605Aで取得した値が「1」のとき、すなわち、固定状態を示す値のときは、ステップS6204に進む。そして、ステップS6204において、制御部605Aの制御の下にダイレクトティーチング制御部612によってマニュピュレータ101の制御を行う。すなわち、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基にダイレクトティーチング制御部612の制御によりモータドライバ609Mを介してモータ713を駆動することによって、ダイレクトティーチング制御部612によって決定した位置に、マニュピュレータ101を移動する。その後、ステップS6206に進む。
【0135】
一方、ステップS6203で、固定判定保持部614から制御部605Aで取得した値が「0」のとき、すなわち、非固定状態を示す値のときは、ステップS62031に進む。そして、ステップS62031において、制御部605Aは、相対位置取得部607より枠1120に対する可動部102Aの相対位置情報を取得する。
【0136】
次に、ステップS6205において、制御部605Aの制御の下に追従制御部606に基づく制御を行う。すなわち、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基に追従制御部606の制御によりモータドライバ609Mを介してモータ713を駆動することによって、追従制御部606によって決定した位置にマニュピュレータ101を移動する。その後、ステップS6206に進む。
【0137】
ステップS6206では、制御部605Aの制御を終了するか否か判定し、終了しない場合にはステップS6202に戻り、終了する場合には、ステップS6299で終了する。
【0138】
次に、ステップ6205において、制御部605Aの制御の下に追従制御部606に基づく制御を行う。すなわち、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基に追従制御部606の制御によりモータドライバ609Mを介してモータ713を駆動することによって、追従制御部606によって決定した位置にマニュピュレータ101を移動する。その後、ステップS6206に進む。
【0139】
ステップS6206では、制御部605Aの制御を終了するか否か判定し、終了しない場合にはステップS6202に戻り、終了する場合には、ステップS6299で終了する。
【0140】
第1実施形態による、このような構成を採ることによる効果を3つ述べる。
【0141】
第一に、操作者は、反力を感じる必要がない作業をするときには、モード選択部608でダイレクトティーチングを選択することで、重量感について良い操作感でマニュピュレータ101を使用して作業をすることが出来る。すなわち、重量物の重さを感じることなく作業を行うことができる。
【0142】
第二に、反力が必要になるような細かい作業をするときには、操作者はフロート制御をモード選択部608で選択することで、即応性の操作感が良い状態でマニュピュレータ101を使用して作業をすることが出来る。すなわち、細かい作業、又は、反力を必要とする作業がしやすくなる。
【0143】
第三に、ダイレクトティーチングからフロート教示(追従制御)に切り替える際に、手に加わる力が急激に上昇することがない。これは、操作者が浮遊部103Aの把持部1031をしっかり握るまで、すなわち、操作者が浮遊部103Aの把持部1031を手でしっかり握っていると把持判定部5430で判定されるまで固定判定部615によりフロート教示への移行を遅らせるためである。これにより、操作者が浮遊部103Aを落とすことを防止する効果がある。
【0144】
(第2実施形態)
第1実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。また、ダイレクトティーチングからフロート教示に切り替える際に、所定の条件が満たされるまでフロート教示を開始しない構成である。
【0145】
これに対して、本発明の第2実施形態では、フロート教示と、停止状態とを切り替えながら行う教示方法である。停止状態では、ロボットアーム100は移動を停止し、操作者が行う教示も一旦停止する。まず、第2実施形態の概要を説明する。
【0146】
フロート教示を行う際には、第1実施形態と同様、図1に示すように、浮遊部103Aは、枠1120から分離する。停止状態の際は、第1実施形態と同様、図2に示すように、浮遊部103Aは枠1120に固定される。停止状態からフロート教示に切り替える際に、操作者が支えなければならない重さが突然増加する。その重さの急激な増加によって操作者が、浮遊部103Aを落としてしまう場合があるので、そのようにならないように、操作者が、浮遊部103Aをしっかり握ったかを判定してから、教示方法を切り替える構成をこれから説明していく。
【0147】
図13は、第2実施形態のロボット601Bにおける制御装置602Bのブロック図を示す。図13において、制御装置602Bは、制御装置本体部603Bと、周辺装置604とで構成されている。周辺装置604は、第1実施形態と同様であるので説明を省略する。制御装置602Bは、制御部605Bと、追従制御部606と、相対位置情報取得部607と、モード選択部608Bと、モード選択保持部5401と、固定制御部609と、重さ取得部610と、力取得部613と、固定判定保持部614と、固定判定部615と、把持判定部5430とで構成されている。さらに、第1実施形態と同様に、固定判定部615からの情報を基に、操作者が浮遊部103Aの把持部1031に手で力を加えておらず危険であることを通知するための警告情報を出力する警告出力部5420を備えている。
【0148】
把持判定部5430と、モード選択保持部5401と、追従制御部606と、相対位置情報取得部607と、固定制御部609と、重さ取得部610と、力取得部613と、固定判定保持部614と、固定判定部615と、警告出力部5420とは第1実施形態と同様であるので説明を省略する。以下、第1実施形態と異なる各部を説明する。
【0149】
モード選択部608Bは、操作者が、フロート教示(追従制御)と、停止状態のどちらを使用したいかを入力する装置である。また、モード選択保持部5401は、モード選択部608Bから入力された、操作者がフロート制御と、停止状態とのどちらを選択しているかの選択情報を保持している。モード選択部608Bの一例としてのスイッチが押される毎に、その値が切り替わる。なお、第1実施形態の場合と同じく、操作者の選択が制御に即時に反映させる訳ではない。ここでは、フロート教示を選択したときは、「ON」を、停止状態を選択したときは、「OFF」を選択する。
【0150】
制御部605Bは、図17のフローに基づいて処理を行う。
【0151】
まず、制御部605Bは、ステップS6300で処理を開始する。
【0152】
次いで、ステップS6302で、制御部605Bは、固定判定部615に固定判定の処理を指示する。なお、固定判定部615の処理は図19に記載した処理である。
【0153】
次いで、ステップS6303で、制御部605Bは、固定判定保持部614が保持する値を取得し、取得した値が「固定している」状態を示す「0」であるか否かを判定する。制御部605Bで取得した値が「固定している」状態を示す「0」である場合、ロボットアーム100を現在より移動しない制御を制御部605Bで行う。その後、ステップS6306に進む。
【0154】
ステップS6303で、固定判定保持部614から制御部605Bで取得した値が「固定していない」状態を示す「1」である場合には、ステップS63031に進む。そして、ステップS63031において、制御部605Bは相対位置取得部607より枠1120に対する可動部102Aの相対位置情報を取得する。
【0155】
次に、ステップ6305において、第1実施形態のときと同様に、追従制御部606での追従制御処理を制御部605Bで行う。その後、ステップS6306に進む。
【0156】
ステップS6306では、制御部605Bの制御を終了するか否か判定し、終了しない場合にはステップS6302に戻り、終了する場合には、ステップS6399で終了する。
【0157】
第2実施形態によれば、操作者がモード選択部608Bを使用して停止状態を選択したときは、浮遊部103Aは、枠1120従ってロボットアーム100に対して固定されている。よって、操作者は、浮遊部103Aを支える必要がない。
【0158】
一方、操作者がモード選択部608Bを使用してフロート教示を選択したときは、浮遊部103Aは、枠1120従ってロボットアーム100から分離している。よって、操作者は、浮遊部103Aの重さを支える必要がある。しかし、第1実施形態と同様に、浮遊部103Aと枠1120とが分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【0159】
また、操作者がモード選択部608Bを使用して停止状態からフロート教示を選択した際に、操作者が浮遊部103Aに加えた力を力センサ1033を利用して力取得部613で取得する。そして、その取得した力が浮遊部103Aを支える力になったと把持判定部5430で判定したのち、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、浮遊部103Aを枠1120から分離する。よって、操作者が浮遊部103Aの重量を支えられずに落とすことを防止することができる。
【0160】
また、フロート教示をしている際に、操作者が疲れてきたら、操作者はモード選択部608Bを使用して停止状態を選択することができる。操作者がモード選択部608Bを使用して停止状態を選択すれば、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、浮遊部103Aを枠1120に固定する。この結果、操作者は、浮遊部103Aを支える必要がなくなり、休憩をすることができる。よって、長い教示作業を休憩しながら行うことができる。
【0161】
なお、ステップ6303で、「固定している」状態が取得された時に、ロボット601を減速して停止する処理を行っても構わない。このような構成を用いれば、ロボット601が高速で移動していている際に、固定が選択されても、急停止することなく徐々に停止させることができる。
【0162】
(第3実施形態)
第1実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。ダイレクトティーチングの状態で、フロート教示を選択した際に、操作者が浮遊部103Aを支える力を出すまでは、ダイレクトティーチングを継続している。その継続期間中は、ダイレクトティーチングをしているので、浮遊部103Aは移動する。操作者が、浮遊部103Aを支える力をすぐに出した場合は問題ないが、操作者が徐々に力を出した場合、すぐにフロート教示に切り替わらず、しばらくダイレクトティーチングの状態である。また、操作者から徐々に加えられる力もダイレクトティーチングに利用されて、ロボットアーム100が上方向に移動する。よって、操作者が思う軌跡と異なる軌跡をロボットアーム100に教示してしまう場合がある。
【0163】
本発明の第3実施形態は、前記した不具合を解消するように、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明する。この教示方法では、ダイレクトティーチングの状態で、操作者がモード選択部608を使用してフロート教示を選択した際に、ロボットアーム100は一旦停止状態になり、操作者が浮遊部103Aを支える力を出した後に、フロート教示を開始する。フロート制御時は、第1実施形態と同様、図1に示すように、浮遊部103Aの可動部102Aは、枠1120から分離している。ダイレクトティーチングの状態及び停止状態の際は、第1実施形態と同様、図2に示すように、浮遊部103Aの可動部102Aは枠1120に固定されている。
【0164】
図14は、第3実施形態のロボット601Cにおける制御装置のブロック図を示す。図14において、ロボットアーム100は、マニピュレータ101と、ロボットアーム100の制御装置602Cとで構成されている。ロボットアーム100は、第1実施形態と同様であるので説明を省略する。
【0165】
ロボットアーム100の制御装置602Cは、制御装置本体部603Cと、周辺装置604とで構成されている。周辺装置604は、第1実施形態と同様であるので説明を省略する。
【0166】
制御装置本体部603Cは、制御部605Cと、追従制御部606と、相対位置情報取得部607と、モード選択部608と、固定制御部609と、重さ取得部610と、ダイレクトティーチング制御部612と、力取得部613と、固定判定保持部614と、固定判定部615と、警告出力部5420とで構成されている。追従制御部606と、相対位置情報取得部607と、モード選択部608と、固定制御部609と、重さ取得部610と、ダイレクトティーチング制御部612、力取得部613、固定判定保持部614、固定判定部615と、警告出力部5420とは第1実施形態と同様であるので、ここでは説明を省略する。以下、第1実施形態と異なる部分として、まず最初に、制御部605Cを説明する。
【0167】
制御部605Cは、ダイレクトティーチングの制御か、フロート教示の制御か、ロボットを停止させる制御か、のいずれかの制御を行う。いずれを行うかは、固定判定保持部614が保持する値と、モード選択保持部5401が保持する値によって制御部605Cで決定する。
【0168】
以下、制御部605Cは、図18のフローに基づいて処理を行う。
【0169】
まず、制御部605Cは、ステップS6400で処理を開始する。
【0170】
次いで、ステップS6402で、制御部605Cは、モード選択保持部5401より、操作者がフロート制御と、ダイレクトティーチングとのどちらを選択しているかの選択情報を取得する。
【0171】
そして、ステップS6410において、制御部605Aは、固定判定部615に固定判定の処理を指示する。なお、固定判定部615の処理は図19に記載した処理である。
【0172】
次いで、ステップS6404で、モード選択保持部5401から制御部605Cで取得した選択情報の値が、ダイレクトティーチングを示す「0」であるか否かを判定する。制御部605Cで取得した選択情報の値が、ダイレクトティーチングを示す「0」である場合には、ステップS6408に進む。そして、ステップS6408において、ダイレクトティーチング制御部612の制御を制御部605Cで行う。その後、ステップS6415に進む。
【0173】
一方、ステップS6404で、モード選択保持部5401から制御部605Cで取得した選択情報の値が、フロート教示(追従制御)を示す「1」である場合には、ステップS6412に進む。
【0174】
次いで、ステップS6412において、固定判定保持部614が保持する値を取得し、取得した値が「固定している」状態を示す「0」であるか否かを判定する。固定判定保持部614が保持する値が「固定している」状態を示す「0」である場合には、ロボット601Cを停止状態にする。すなわち、操作者がモード選択部608を使用して「フロート教示」を選択しているが、固定判定保持部614が保持する値が「固定している」状態のときは、ロボットアーム100は移動しない。その後、ステップS6415に進む。
【0175】
ステップS6412において、固定判定保持部614が保持する値が「固定していない」状態を示す「1」である場合には、ステップS64031に進む。そして、ステップS64031において、制御部605Aは、相対位置取得部607より枠1120に対する可動部102Aの相対位置情報を取得する。そして、ステップS6414において、第1実施形態のときと同様に、追従制御部606での追従制御処理を制御部605Cで行う。すなわち、操作者がモード選択部608を使用して「フロート教示」を選択していて、固定判定保持部614が保持する値が「固定していない」状態のときは、追従制御部606の追従制御処理を制御部605Cで行う。その後、ステップS6415に進む。
【0176】
ステップS6415では、制御部605Cの制御を終了するか否か判定し、終了しない場合にはステップS6402に戻り、終了する場合には、ステップS6499で終了する。
【0177】
第3実施形態によれば、操作者がモード選択部608を使用してダイレクトティーチングを選択したときは、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、浮遊部103Aはロボットアーム100の枠1120に対して固定されている。よって、操作者は、浮遊部103Aを支える必要がない。
【0178】
一方、操作者がモード選択部608を使用してフロート教示を選択したときは、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、浮遊部103Aはロボットアーム100の枠1120から分離している。よって、操作者は、浮遊部103Aの重さを支える必要がある。しかし、第1実施形態と同様に、浮遊部103Aとロボットアーム100の枠1120とが分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【0179】
また、操作者がモード選択部608を使用してダイレクトティーチング状態からフロート教示を選択した際に、操作者が浮遊部103Aに加えた力を力センサ1033で取得する。そして、その力センサ1033で取得した力が浮遊部103Aを支える力になったと把持判定部5430で判定するまでは、制御部605Cで、ロボットアーム100の移動を停止する。よって、操作者が出す力が、浮遊部103Aを支える力に達すると把持判定部5430で判定するまでは、制御部605Cでの制御により、枠1120に対して浮遊部103Aは移動しないので、思い通りの教示軌跡を作りやすい。
【0180】
また、操作者が加える力が浮遊部103Aを支える力に達したと把持判定部5430で判定した後、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、浮遊部103Aの可動部102Aをロボットハンドである枠1120から分離する。よって、操作者が浮遊部103Aの重量を支えられずに落とすことを防止することができる。
【0181】
(第4実施形態)
第1実施形態は、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明している。ダイレクトティーチングの状態で、フロート教示を選択した際に、操作者が浮遊部103Aを支える力を出したと把持判定部5430で判定するまでは、制御部605A及びダイレクトティーチング制御部612でダイレクトティーチングを継続している。その継続期間中は、ダイレクトティーチングをしているので、浮遊部103Aは枠1120に対して相対的に移動する。操作者が、浮遊部103Aを支える力をすぐに出した場合は問題ないが、操作者が徐々に力を出した場合には、すぐにフロート教示に切り替わらず、しばらくダイレクトティーチングの状態である。また、操作者から徐々に加えられる力もダイレクトティーチングに利用されて、ロボットアーム100が上方向に移動することになる。よって、操作者が思う軌跡と異なる軌跡をロボットアーム100に教示してしまう場合がある。
【0182】
本発明の第4実施形態は、前記した課題を解消するように、フロート教示と、ダイレクトティーチングとを切り替えながら行う教示方法について説明する。
【0183】
まず、第4実施形態の概要を説明する。
【0184】
第4実施形態では、ダイレクトティーチングを行っている状態で、操作者がモード選択部608Dを使用してフロート教示を選択したときに、特殊なダイレクトティーチングを行う。通常のダイレクトティーチング(第1実施形態でのダイレクトティーチング)であれば、ロボットハンドである枠1120は、操作者が加えた力によって移動する位置を決めるが、特殊なダイレクトティーチングでは、操作者が加えた力に、もう一つの別の力(後述する第二の力)を加えた合力によって移動する位置を決める。例えば、重さ取得部610で取得した浮遊部103Aの重さが1kgのとき、ダイレクトティーチングを行っている状態で、操作者がモード選択部608Bを使用してフロート教示を選択したとき、制御部605Dとダイレクトティーチング制御部612とにより、フロート教示を選択してから所定時間例えば1秒後には、操作者が加えた力に加えて、仮想的に200g重の下向きの力が力取得部613に加わったものとして、ダイレクトティーチングを行う。以後、1秒後ごとに更に200g重ずつ下向きに加える力を仮想的に増やし、さらに所定時間例えば5秒後に1kg重の力を下向きに加えた特殊なダイレクトティーチングを本実施形態のロボット601で行う。
【0185】
さて、1秒後に、200g重下向きの力を仮想的に加えるので、操作者がロボットアーム100に上向きに何も力を加えないと、ロボットアーム100は、徐々に下に移動する。操作者がロボットアーム100に教示したい軌跡は、ロボットアーム100が下に移動する軌跡でないのならば、操作者は浮遊部103Aに上向きに力を加える。そうすることで、操作者はロボットアーム100が下に移動することを阻止する。それを、所定時間例えば2秒後以降も行って、最終的に、所定時間例えば5秒後には操作者は浮遊部103Aに所定荷重例えば1kg重の上向きの力を加えて、教示をする。また、浮遊部103Aに1kg重の上向きの力が加わると、操作者が浮遊部103Aに加える力は、浮遊部103Aを支えることができる力になっているので、第1実施形態と同様に、把持判定部5430での判定により、固定制御部609の制御により、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を駆動して、フロート教示に切り替わる。ここでは、一例として、5秒に達する前でも、操作者が1kg重の力を加えたら、フロート教示に切り替える構成を説明する。
【0186】
また、操作者がモード選択部608Bを使用してダイレクトティーチングを選択した場合は、制御部605Dとダイレクトティーチング制御部612とにより通常のダイレクトティーチングを行う。
【0187】
図15は、第4実施形態のロボット601Dにおける制御装置のブロック図を示す。図15において、ロボットアーム100は、マニピュレータ101と、ロボットアーム100の制御装置602Dとで構成されている。ロボットアーム100は、第1実施形態と同様であるので説明を省略する。
【0188】
ロボットアーム100の制御装置602Dは、制御装置本体部603Dと、周辺装置604とで構成されている。周辺装置604は、第1実施形態と同様であるので説明を省略する。
【0189】
制御装置本体部603Dは、制御部605Dと、追従制御部606と、相対位置情報取得部607と、モード選択部608と、固定制御部609と、重さ取得部610と、ダイレクトティーチング制御部612Dと、力取得部613と、固定判定保持部614と、固定判定部615と、時間取得部616と、モード選択保持部5401と、把持判定部5430と、で構成されている。追従制御部606と、相対位置情報取得部607と、モード選択部608と、固定制御部609と、重さ取得部610と、力取得部613と、固定判定保持部614と、固定判定部615と、制御部605と、モード選択保持部5401と、は第1実施形態と同様であるので説明を省略する。以下、第1実施形態と異なるダイレクトティーチング制御部612Dと、時間取得部616と、モード選択部608となどを説明する。
【0190】
時間取得部616は、経過時間を取得保持する。例えばタイマーであって、測定開始が指示されてから、時間の測定を開始し、以降、時間取得が指示される毎に、測定開始からの経過時間を取得する。ここでは、フロート教示が選択されてからの時間を測定する際に使用する。後述するように、フロート教示が選択された際に、時間の測定を開始して、ダイレクトティーチング制御部612Dで制御が行われる際に、都度、経過時間が参照される。
【0191】
モード選択部608Dは、第1実施形態におけるモード選択部608の処理に追加して、時間取得部616に測定開始の指示を行う。モード選択部608Dが行う処理を図19に示す。
【0192】
まず、モード選択部608Dは、ステップS6600で処理を開始する。
【0193】
次いで、ステップS6601で、操作者が、モード選択部608Bを使用してモードを変更したか否かモード選択部608Dで判定する。操作者がモード選択部608Bを使用してモードを変更した場合には、ステップS6602に進み、モードを変更していない場合には、ステップS6699に進む。
【0194】
ステップS6602において、ダイレクトティーチングを選択したか否かをモード選択部608Dで判定する。ダイレクトティーチングを選択したとモード選択部608Dで判定した際には、ステップS6603に進む。ダイレクトティーチングを選択していないとモード選択部608Dで判定した際には、ステップS66031に進む。
【0195】
ステップS6603では、モード選択部608Bは、時間取得部616に時間測定を停止する指令を出して、測定を停止する。
【0196】
次いで、ステップS6604では、モード選択部608Bからの指令に基づき、時間取得部616は、時間を0にしてリセットする。その後、ステップS6699に進む。
【0197】
一方、ステップS6605では、モード選択部608Bは時間取得部616に測定開始の指示を行う。その後、ステップS6699に進む。
【0198】
ステップS6699で終了する。
【0199】
ダイレクトティーチング制御部612Dは、概要で述べた「特殊なダイレクトティーチング」を行う部である。力取得部613が取得した力と後述の第二の力との合力に基づいて、ロボットハンドである枠1120の移動位置を決定する。すなわち、操作者が、浮遊部103Aに下向きの力を加えたときには、ダイレクトティーチング制御部612により、ロボットハンドである枠1120を下向きに移動し、右向きに力を加えたときは、ダイレクトティーチング制御部612Dにより、ロボットハンドである枠1120を右向きに移動する。
【0200】
第二の力は、重さ取得部610より取得した重さと、時間取得部616より取得した時間とによってダイレクトティーチング制御部612Dで決定する。すなわち、次式となる。
【0201】
(第二の力)=(重さ取得部610より取得した重さ)×9.8×(時刻取得部616より取得した時間)/(所定の値)
ここで、所定の値は例えば「5」である。ここでは、前記概要で説明した例のように、5秒後、浮遊部105Aの重さがかかるようにする場合を例にして、所定の値を決定している。「(時刻取得部616より取得した時間)/(所定の値)」の部分の値は、時刻取得部616より取得した時間が、「0、1,2,3,4、5」の時に「0、0.2、0.4、0.6、0.8、1.0」となる。すなわち、フロート教示が選択されてからの時間が経過するほど、第二の力は大きくなる。
【0202】
さて、時刻取得部616より取得した時間が「0」のとき、第二の力は「0」となる。この時、ダイレクトティーチング制御部612Dの制御は、第一実施形態におけるダイレクトティーチング制御部612の制御と同様の制御となる。モード選択部608Dで説明したように、モード選択が「ダイレクトティーチング」の場合は、時刻取得部616が取得する時刻が「0」となるので、通常のダイレクトティーチングを行う。
【0203】
また、モード選択が「フロート教示」の場合は、時刻取得部616が取得する時刻は「0」以外の値となり、特殊なダイレクトティーチングを行うこととなる。
【0204】
次に、制御部605Dは、ダイレクトティーチング制御部612Dの制御か、追従制御部606の制御か、のいずれかの制御を行う。いずれを行うかは、固定判定保持部614が保持する値と、モード選択保持部5401が保持する値によって制御部605Dで決定する。
【0205】
以下、制御部605Dは、図20のフローに基づいて処理を行う。
【0206】
まず、制御部605Dは、ステップS6500で処理を開始する。
【0207】
次いで、ステップS6502において、制御部605Dは固定判定部615に固定判定の処理を指示する。なお、固定判定部の処理は図19に記載したものである。
【0208】
次いで、ステップS6503において、固定判定保持部614が保持する値を取得し、取得した値が「固定している」状態を示す「0」であるか否かを判定する。固定判定保持部614が保持する値が「固定している」状態を示す「0」である場合には、ステップS65031に分岐する。それ以外の場合には、ステップS65032に分岐する。
【0209】
ステップS65031において、制御部605Dは、時刻取得部616が保持する時刻を取得する。
【0210】
次いで、ステップS6504で、ダイレクトティーチング制御部612Dは、ステップS65031で取得した時刻に基づいてダイレクトティーチングの制御を行う。なお、ダイレクトティーチング制御部612Dが行う制御は、既に説明したものである。
【0211】
次いで、ステップS6506では、制御部605Cの制御を終了するか否か判定し、終了しない場合にはステップS6502に戻り、終了する場合には、ステップS6599で終了する。
【0212】
一方、ステップS65032に分岐した場合、ステップS65032で、制御部605Bは相対位置取得部607より枠1120に対する可動部102Aの相対位置情報を取得する。
【0213】
次に、ステップS6505において、第1実施形態のときと同様に、追従制御部606での追従制御処理を制御部605Dで行う。その後、ステップS6506に進む。
【0214】
第4実施形態によれば、操作者がモード選択部608Bを使用してダイレクトティーチングを選択したときは、浮遊部103Aは、ロボットアーム100に対して固定されている。よって操作者は、浮遊部103Aを支える必要がない。
【0215】
一方、操作者がモード選択部608Bを使用してフロート教示を選択したときは、浮遊部103Aは、ロボットアーム100から分離している。よって、第1実施形態と同様に、操作者は、浮遊部103Aの重さを支える必要がある。しかし、両者が分離していることによって、反力を感じながら操作感が良い状態で作業を行うことができる。
【0216】
また、ダイレクトティーチング状態からフロート教示を選択した際に、ロボットアーム100を(同じ高さに)支えるために必要な重さが徐々に重くなっていく。よって、操作者は、徐々に浮遊部103Aを支える力をかけ。そして、操作者が、浮遊部103Aを支えることができる力に達したときにフロート教示に切り替わる。よって、操作者が浮遊部103Aの重量を支えられずに落とすことを防止することができる。
【0217】
なお、第1〜第3実施形態では、モード選択608と、力取得部613とは別々の部である構成を示したが、それらを一つの部としても構わない。すなわち、力取得部613が取得した力の大きさが、予め定めた閾値(例えば、10g重)の力以上になった場合に、モード選択部608が保持する値を「フロート制御」状態を示す「1」とし、力取得部613が取得した力の大きさが、閾値よりも小さい場合に、「ダイレクトティーチング」状態を示す「0」とする構成としても構わない。このような構成を用いれば、操作者が把持部1031を握っている間は、「フロート制御」が選択され、操作者が把持部1031を離すと、「ダイレクトティーチング」状態又は「停止状態」状態を示す「1」となる。よって、操作者が把持部1031から手を離すと、自動的に、枠1120と浮遊部103Aとは固定される。よって、手を離しても浮遊部103Aが落下することなく、手を離した位置で固定されて安全である。
【0218】
また、なお第1〜第3実施形態では、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121を伸張させることで、枠1120と可動部102Aとを固定する構成を示したが、他の方法で固定を行っても構わない。例えば、枠1120と可動部102Aとの隙間90で膨らんだり、縮んだりする風船を用いて固定する構成であっても構わない。
【0219】
また、枠1120と可動部102Aとの隙間90に液体状の酢酸ナトリウムを入れた袋を入れておく構成であっても構わない。液体の酢酸ナトリウムは刺激を与えると発熱しながら結晶化する。よって、枠1120と可動部102Aとを固定する際に、酢酸ナトリウムを入れた袋に、リニアアクチュエータ用モータドライブ1121Cを介して各リニアアクチュエータ1121で刺激を与えることで結晶化させて、枠1120と可動部102Aとの隙間90を埋めて一体化する。逆に、固定を解除する際には、袋を加熱することで、結晶化した酢酸ナトリウムを液状化させる。
【0220】
また、第2実施形態と第4実施形態とを組み合わせて、浮遊部103Aの重さが閾値以上ならば第4実施形態の処理(ロボットアーム100を徐々に下に移動する処理)を行う一方、浮遊部103Aの重さが閾値未満ならば第2実施形態の処理(ロボットアーム100を停止するだけの処理)を行うようにしてもよい。これについて、図21を基に、制御部605Aの処理について説明する。
【0221】
まず、制御部605Aは、ステップS6200で処理を開始する。
【0222】
次いで、ステップS6202で、制御部605Aは、固定判定保持部614が保持する値を取得する。
【0223】
次いで、ステップS6203で、固定判定保持部614から制御部605Aで取得した値が「1」であるか否かを判定する。固定判定保持部614から制御部605Aで取得した値が「1」のとき、すなわち、固定状態を示す値のときは、ステップS6701に進む。
【0224】
ステップS6701において、重さ取得部610で浮遊部103Aの重さを取得する。
【0225】
次いで、ステップS6702において、重さ取得部610で取得した浮遊部103Aの重さが閾値以上か否かを制御部605Aで判定する。このため、重さ取得部610で取得した浮遊部103Aの重さの情報は制御部605Aに入力される。重さ取得部610で取得した浮遊部103Aの重さが閾値未満ならば、ロボットアーム100を現在より移動しない、停止するだけの処理を行い、ステップS6202に戻る。重さ取得部610で取得した浮遊部103Aの重さが閾値以上ならば、ステップS6204に進む。
【0226】
ステップS6204では、制御部605Aの制御の下にダイレクトティーチング制御部612によってマニュピュレータ101の制御を行う。すなわち、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基にダイレクトティーチング制御部612の制御によりモータドライバ609Mを介してモータ713を駆動することによって、ダイレクトティーチング制御部612によって決定した位置に、マニュピュレータ101を移動する。その後、ステップS6206に進む。
【0227】
一方、ステップS6203で、固定判定保持部614から制御部605Aで取得した値が「0」のときは、ステップS6205に進む。
【0228】
そして、ステップS6205において、すなわち、非固定状態を示す値のときは、制御部605Aの制御の下に追従制御部606に基づく制御を行う。すなわち、マニュピュレータ101の各モータ713のエンコーダ714からの情報を基に追従制御部606の制御によりモータドライバ609Mを介してモータ713を駆動することによって、追従制御部606によって決定した位置にマニュピュレータ101を移動する。その後、ステップS6206に進む。
【0229】
ステップS6206では、制御部605Aの制御を終了するか否か判定し、終了しない場合にはステップS6202に戻り、終了する場合には、ステップS6299で終了する。
【0230】
なお、図1及び図2において、リニアアクチュエータ1121は、三方又は四方に配置してもよい。可動部102Aが枠1120内で回転しないように保持するのが好ましい。二点の場合には、それぞれ、リニアアクチュエータ1121の板状係合部1121aの先端を板状として、回転しないようにする。
【0231】
また、入出力IF608IFの入力装置608dを使用して、重さ取得部610に外部から重さ情報を入力することも可能であり、また、外部のデータベースから入力装置608dを使用して、重さ情報を重さ取得部610に入力することも可能である。
【0232】
なお、上記様々な実施形態又は変型例のうちの任意の実施形態又は変型例を適宜組み合わせることにより、それぞれの有する効果を奏するようにすることができる。
【産業上の利用可能性】
【0233】
本発明にかかるロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路は、ロボットアーム本体に取り付けられた手先効果部と人が把持する把持部とが機構的に分離しており、人が把持部を操作することによってロボットアームを操作することができて、産業用ロボット又は生産設備などにおける可動機構のロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路として有用である。また、本発明にかかるロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路は、産業用ロボットに限らず、家庭用ロボットのロボットアーム、ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、並びに、集積電子回路として適用される可能性もある。
【符号の説明】
【0234】
90 空間(隙間)
100 ロボットアーム
101 マニピュレータ
101d 前腕リンク
101e 上腕リンク
101g 台部
102A 可動部
102Aa 係合凹部
103A 浮遊部
104 相対位置センサ
401 緩衝材
601 ロボット
602 ロボットアームの制御装置
603 制御装置本体部
604 周辺装置
605,605A 制御部
606 追従制御部
607 相対位置情報取得部
608 モード選択部
608IF 入出力IF
608d 入力装置
609 固定制御部
609M モータドライバ
610 重さ取得部
612 ダイレクトティーチング制御部
613 力取得部
615 固定判定部
701 手首部
705 第1関節部
706 第2関節部
707 第3関節部
708 第4関節部
709 第5関節部
710 第6関節部
711 絶対座標系
712 手先座標系
713 モータ
714 エンコーダ
801 人の手
802 対象物(把持対象物)
1031 把持部
1033 力センサ
1034 部品保持部
1120 ハンド(枠)
1121 リニアアクチュエータ
1121a 板状係合部
1121E エンコーダ
1121M モータ
5401 モード選択保持部
5420 警告出力部
5430 把持判定部

【特許請求の範囲】
【請求項1】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御装置であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得部と、
前記浮遊部の重さを取得する重さ取得部と、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得部と、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定部と、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部と、
前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御部と、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により追従制御を行う制御部と、を備える、
ロボットアームの制御装置。
【請求項2】
前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さを支えるための所定の条件を満たす場合にのみ、前記固定を行う判定を行う、
請求項1に記載のロボットアームの制御装置。
【請求項3】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項1に記載のロボットアームの制御装置。
【請求項4】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項2に記載のロボットアームの制御装置。
【請求項5】
前記固定判定部は、前記力取得部が取得した前記力が、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値よりも大きい場合にのみ、前記固定を解除し、前記重さ取得部が取得した前記浮遊部の前記重さに基づいて決められた閾値以下の場合には前記固定行う判定を行い、
前記制御部は、前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行い、前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行う、
請求項2に記載のロボットアームの制御装置。
【請求項6】
前記力取得部が取得した前記浮遊部に加えられた力に基づいて前記ロボットアームの位置を制御するダイレクトティーチング制御部をさらに備え、
前記制御部は、前記人がダイレクトティーチングを選択しているときは、前記ダイレクトティーチング制御部により前記ダイレクトティーチング制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されているときは、前記ロボットアームを移動しない制御を行い、前記人が前記ダイレクトティーチングを選択していないときでかつ前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記追従制御部により前記追従制御を行う、
請求項1に記載のロボットアームの制御装置。
【請求項7】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御方法であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの制御方法。
【請求項8】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの制御プログラムであって、
コンピュータを、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を取得する相対位置情報取得ステップと、
前記浮遊部の重さを取得する重さ取得ステップと、
前記把持部を介して前記浮遊部に加えられた力を取得する力取得ステップと、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを判定する固定判定ステップと、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を行う固定制御部ステップと、
前記浮遊部が前記ロボットアームの前記本体に固定されていないときは、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う制御ステップとを実行させるための、
ロボットアームの制御プログラム。
【請求項9】
人が触って教示操作して作業を行わせるロボットアームと、前記ロボットアームの本体とは分離されて前記ロボットアームの前記本体に対して相対移動可能でかつ前記教示操作時に前記人が把持可能な把持部を有する浮遊部とを備えて、前記ロボットアームを動作制御する、ロボットアームの集積電子回路であって、
前記教示操作時に前記ロボットアームの前記本体に対する前記浮遊部の相対位置の情報を相対位置情報取得部で取得し、
前記浮遊部の重さを重さ取得部で取得し、
前記把持部を介して前記浮遊部に加えられた力を力取得部で取得し、
前記浮遊部を前記ロボットアームの前記本体に固定するか否かを固定判定部で判定し、
前記固定判定部での判定結果に基づき、前記浮遊部を前記ロボットアームの前記本体に固定する制御、又は、前記浮遊部を前記ロボットアームの前記本体から分離する制御を行う固定処理を固定制御部で行い、
前記浮遊部が、前記ロボットアームの前記本体に固定されていないときは、制御部により、追従制御部で、前記相対位置情報取得部で取得された前記相対位置の情報が所定の閾値の範囲内に収まるように、前記ロボットアームの前記本体と前記浮遊部との間の隙間の間隔の変化量に応じて前記ロボットアームを移動させる追従制御を行う、
ロボットアームの集積電子回路。
【請求項10】
請求項1〜6のいずれか1つに記載のロボットアームの制御装置と、
前記ロボットアームと
を備える、ロボット。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図4E】
image rotate

【図4F】
image rotate

【図4G】
image rotate

【図4H】
image rotate

【図4I】
image rotate

【図4J】
image rotate

【図4K】
image rotate

【図4L】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図5D】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2013−71239(P2013−71239A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214548(P2011−214548)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】