(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-20
(45)【発行日】2022-06-28
(54)【発明の名称】ロボットシステム及び制御方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20220621BHJP
B25J 13/08 20060101ALI20220621BHJP
B25J 9/22 20060101ALI20220621BHJP
【FI】
B25J9/10 A
B25J13/08 Z
B25J9/22 A
(21)【出願番号】P 2018067031
(22)【出願日】2018-03-30
【審査請求日】2021-01-28
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】泉 哲郎
(72)【発明者】
【氏名】大野 祥平
(72)【発明者】
【氏名】西邑 考史
(72)【発明者】
【氏名】中村 民男
【審査官】木原 裕二
(56)【参考文献】
【文献】特開2007-249267(JP,A)
【文献】特開2005-293098(JP,A)
【文献】特開2010-234521(JP,A)
【文献】特開2018-039086(JP,A)
【文献】特開2010-082729(JP,A)
【文献】特開2011-224696(JP,A)
【文献】米国特許出願公開第2016/0214261(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10
B25J 13/08
B25J 9/22
(57)【特許請求の範囲】
【請求項1】
先端部と、基部と、前記基部に対する前記先端部の位置及び姿勢を調節する多関節アームとを有するロボットと、
前記基部に対する前記先端部の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、前記先端部を移動させるように前記多関節アームを制御する通常制御部と、
前記通常制御部による制御の途中で、
作業者が前記ロボット
に外力
を付加
することで行うガイド操作に応じて前記先端部を移動させるように前記多関節アームを制御する力ガイド制御部と、
前記動作プログラム
のうち予め定められた補正対象区間について、当該補正対象区間の始点における前記先端部の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの前記先端部の目標位置及び目標姿勢を定める相対指令情報を取得する相対情報取得部と、
前記力ガイド制御部による制御に応じた前記多関節アームの動作の完了時における前記先端部の位置及び姿勢を基準とし、前記相対指令情報に従って前記先端部を移動させるように前記多関節アームを制御する補正制御部と、を備えるロボットシステム。
【請求項2】
前記動作プログラムは、前記補正対象区間を示す区間指定情報を含み、
前記相対情報取得部は、前記区間指定情報に基づいて前記相対指令情報を取得する、請求項1記載のロボットシステム。
【請求項3】
前記補正制御部による制御に応じた前記多関節アームの動作の完了時における前記先端部の位置及び姿勢を、前記動作プログラムに従った位置及び姿勢に移行させるように前記多関節アームを制御する復帰制御部を更に備える、請求項1又は2記載のロボットシステム。
【請求項4】
前記通常制御部は、前記動作プログラムの途中で前記先端部の移動を一時停止させるように前記多関節アームを制御し、
前記力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させるように前記多関節アームを制御することを、前記先端部の移動が一時停止した状態にて開始する、請求項1~3のいずれか一項記載のロボットシステム。
【請求項5】
前記動作プログラムは、前記先端部の移動を一時停止させるタイミングを定めるタイミング指定情報を含み、
前記通常制御部は、前記タイミング指定情報により定められる前記タイミングに従って前記先端部の移動を一時停止させるように前記多関節アームを制御する、請求項4記載のロボットシステム。
【請求項6】
前記力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させる際に、前記先端部の可動範囲を制限し、
前記通常制御部は、前記補正対象区間の始点における前記先端部の目標位置及び目標姿勢を前記可動範囲に含む位置及び姿勢にて前記先端部の移動を一時停止させるように多関節アームを制御する、請求項4又は5記載のロボットシステム。
【請求項7】
前記力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させる際に、前記先端部の可動範囲を制限するように前記多関節アームを制御する、請求項1~5のいずれか一項記載のロボットシステム。
【請求項8】
前記力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させる際に、前記先端部の移動の自由度を制限するように前記多関節アームを制御する、請求項1~7のいずれか一項記載のロボットシステム。
【請求項9】
前記補正制御部は、前記相対指令情報に従って前記先端部を移動させるように前記多関節アームを制御することを、作業者が入力する再開指令信号に応じて開始する、請求項1~8のいずれか一項記載のロボットシステム。
【請求項10】
前記力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させるように前記多関節アームを制御することを、作業者が入力するガイドオン指令信号に応じて開始する、請求項1~9のいずれか一項記載のロボットシステム。
【請求項11】
前記通常制御部は、前記動作プログラムの途中で前記先端部の移動を一時停止させるように前記多関節アームを制御することを、作業者が入力する停止指令信号に応じて実行する、請求項1~10のいずれか一項記載のロボットシステム。
【請求項12】
前記補正制御部は、前記相対指令情報に従って前記先端部を移動させるように前記多関節アームを制御することを、前記ロボットへの接触により入力される再開指令信号に応じて開始する、請求項9記載のロボットシステム。
【請求項13】
前記通常制御部による制御に応じた前記ロボットの動作に抗する抵抗力の増加に応じて、当該抵抗力に抗う動作を止めるように前記多関節アームを制御する非常制御部を更に備える、請求項1~12のいずれか一項記載のロボットシステム。
【請求項14】
前記ロボットは複数の関節を含み、
力ガイド制御部は、前記ガイド操作に応じて前記先端部を移動させるように前記多関節アームを制御することを、複数の関節に作用するトルクに関する情報に基づいて実行する、請求項1~13のいずれか一項記載のロボットシステム。
【請求項15】
先端部と、基部と、前記基部に対する前記先端部の位置及び姿勢を調節する多関節アームとを有するロボットの、前記基部に対する前記先端部の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、前記先端部を移動させるように前記多関節アームを制御する通常制御を行うことと、
前記通常制御の途中で、
作業者が前記ロボット
に外力
を付加
することで行うガイド操作に応じて前記先端部を移動させるように前記多関節アームを制御する力ガイド制御を行うことと、
前記動作プログラム
のうち予め定められた補正対象区間について、当該補正対象区間の始点における前記先端部の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの前記先端部の目標位置及び目標姿勢を定める相対指令情報を取得することと、
前記力ガイド制御に応じた前記多関節アームの動作の完了時における前記先端部の位置及び姿勢を基準とし、前記相対指令情報に従って前記先端部を移動させるように前記多関節アームを制御する補正制御を行うことと、を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステム及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、ロボットが予め登録された作業プログラムに基づく再生動作の途中で停止する第1段階と、ロボットのダイレクト操作を許可する第2段階と、ダイレクト操作によりロボットを誘導動作させる第3段階と、ロボットのダイレクト操作を禁止する第4段階と、ロボットが作業プログラムに基づく再生動作を継続起動する第5段階からなるロボット誘導方法が開示されている。また、第3段階でいずれかの教示点の位置が修正された場合、第5段階におけるロボットの動作は、修正後の当該教示点と、未修正の次の教示点との間を直線補間した動作となることが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、人とロボットとの協働作業における人の負担軽減に有効なロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットシステムは、先端部と、基部と、基部に対する先端部の位置及び姿勢を調節する多関節アームとを有するロボットと、基部に対する先端部の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部を移動させるように多関節アームを制御する通常制御部と、通常制御部による制御の途中で、ロボットへの外力の付加によるガイド操作に応じて先端部を移動させるように多関節アームを制御する力ガイド制御部と、動作プログラムに従った目標位置及び目標姿勢の推移の途中から開始する補正対象区間について、当該補正対象区間の始点における先端部の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部の目標位置及び目標姿勢を定める相対指令情報を取得する相対情報取得部と、力ガイド制御部による制御に応じた多関節アームの動作の完了時における先端部の位置及び姿勢を基準とし、相対指令情報に従って先端部を移動させるように多関節アームを制御する補正制御部と、を備える。
【0006】
本開示の他の側面に係る制御方法は、先端部と、基部と、基部に対する先端部の位置及び姿勢を調節する多関節アームとを有するロボットの、基部に対する先端部の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部を移動させるように多関節アームを制御する通常制御を行うことと、通常制御の途中で、ロボットへの外力の付加によるガイド操作に応じて先端部を移動させるように多関節アームを制御する力ガイド制御を行うことと、動作プログラムに従った目標位置及び目標姿勢の推移の途中から開始する補正対象区間について、当該補正対象区間の始点における先端部の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部の目標位置及び目標姿勢を定める相対指令情報を取得することと、力ガイド制御に応じた多関節アームの動作の完了時における先端部の位置及び姿勢を基準とし、相対指令情報に従って先端部を移動させるように多関節アームを制御する補正制御を行うことと、を含む。
【発明の効果】
【0007】
本開示によれば、人とロボットとの協働作業における人の負担軽減に有効なロボットシステムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】ロボットシステムの全体構成を示す模式図である。
【
図2】動作プログラムに従うロボットの動作を例示する模式図である。
【
図4】コントローラのハードウェア構成を例示するブロック図である。
【
図5】ロボットの制御手順を例示するフローチャートである。
【
図6】通常制御の手順を例示するフローチャートである。
【
図7】退避制御の手順を例示するフローチャートである。
【
図8】退避制御の手順を例示するフローチャートである。
【
図9】力ガイド制御の手順を例示するフローチャートである。
【
図10】補正制御の手順を例示するフローチャートである。
【
図11】復帰制御の手順を例示するフローチャートである。
【
図12】通常制御、力ガイド制御及び補正制御に従ったロボットの動作を例示する模式図である。
【
図13】退避制御に従ったロボットの動作を例示する模式図である。
【
図14】停止位置と、補正対象区間との関係を示す模式図である。
【発明を実施するための形態】
【0009】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0010】
〔ロボットシステム〕
図1に示すロボットシステム1は、ロボット2と作業者との協働を前提とする人協働型のシステムである。ロボットシステム1は、ロボット2と、コントローラ100とを有する。
【0011】
ロボット2は、例えば6軸の垂直多関節ロボットであり、基部3と、先端部4と、多関節アーム10と、ツール5と、入力スイッチ6とを有する。基部3は、ロボット2用の作業エリアにおいて、例えば床面に設置されている。
【0012】
多関節アーム10は、基部3及び先端部4を接続する。多関節アーム10は複数の関節を有し、当該複数の関節の角度を変更することで基部3に対する先端部4の位置及び姿勢を調節する。例えば多関節アーム10は、旋回部11と、下アーム12と、上アーム13と、手首部16と、アクチュエータ21,22,23,24,25,26と、力センサ31,32,33,34,35,36とを有する。
【0013】
旋回部11は、鉛直な軸線Ax1まわりに旋回可能となるように、基部3の上部に設けられている。すなわち多関節アーム10は、軸線Ax1まわりに旋回部11を旋回可能とする関節41を有する。
【0014】
下アーム12は、軸線Ax1に交差(例えば直交)する軸線Ax2まわりに揺動可能となるように下アーム12に接続されている。すなわち多関節アーム10は、軸線Ax2まわりに下アーム12を揺動可能とする関節42を有する。なお、ここでの交差とは、所謂立体交差のように、互いにねじれの関係にある場合も含む。以下においても同様である。
【0015】
上アーム13は、軸線Ax1に交差する軸線Ax3まわりに揺動可能となるように、下アーム12の端部に接続されている。すなわち多関節アーム10は、軸線Ax3まわりに上アーム13を揺動可能とする関節43を有する。軸線Ax3は軸線Ax2に平行であってもよい。
【0016】
上アーム13の先端部15は、上アーム13の中心に沿う軸線Ax4まわりに旋回可能となっている。換言すると、上アーム13の先端部15は、上アーム13の基端部14に対して旋回可能である。すなわち多関節アーム10は、軸線Ax4まわりに上アーム13の先端部15を旋回可能とする関節44を有する。
【0017】
手首部16は、軸線Ax4に交差(例えば直交)する軸線Ax5まわりに揺動可能となるように上アーム13の先端部15に接続されている。すなわち多関節アーム10は、軸線Ax5まわりに手首部16を揺動可能とする関節45を有する。
【0018】
先端部4は、手首部16の中心に沿う軸線Ax6まわりに旋回可能となるように、手首部16の先端部に接続されている。すなわち多関節アーム10は、軸線Ax6まわりに先端部4を旋回可能とする関節46を有する。
【0019】
アクチュエータ21,22,23,24,25,26は、例えば電動モータを動力源とし、多関節アーム10の複数の可動部をそれぞれ駆動する。例えばアクチュエータ21は、軸線Ax1まわりに旋回部11を旋回させ、アクチュエータ22は軸線Ax2まわりに下アーム12を揺動させ、アクチュエータ23は軸線Ax3まわりに上アーム13を搖動させ、アクチュエータ24は軸線Ax4まわりに上アーム13の先端部15を旋回させ、アクチュエータ25は軸線Ax5まわりに手首部16を揺動させ、アクチュエータ26は軸線Ax6まわりに先端部4を旋回させる。すなわちアクチュエータ21~26は、関節41~46をそれぞれ駆動する。力センサ31~36は、例えばひずみゲージ式等のトルクセンサであり、関節41~46に作用するトルクをそれぞれ検出する。
【0020】
ツール5は、先端部4に装着されており、ロボット2による作業に用いられる。ツール5の具体的構成は、ロボット2による作業内容によって異なる。ツール5の具体例としては、ワークを把持するためのハンド、ネジ締め用のドライバ、溶接トーチ等が挙げられる。図においては、ツール5が、ワークを把持するためのハンドである場合を例示している。
【0021】
入力スイッチ6は、ロボット2と協働作業を行う作業者が、ロボット2に対して各種信号を入力するためのスイッチである。入力スイッチ6により入力可能な信号の具体例としては、後述のガイドオン信号、停止指令信号、再開指令信号等が挙げられる。
【0022】
なお、上述したロボット2の構成はあくまで一例である。ロボット2は、基部3に対する先端部4の位置及び姿勢を調節し得る限りいかに構成されていてもよい。例えばロボット2は、上記6軸の垂直多関節ロボットに冗長軸を追加した7軸のロボットであってもよい。また、ロボット2は所謂スカラー型のロボットであってもよい。
【0023】
コントローラ100は、基部3に対する先端部4の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部4を移動させるように多関節アーム10を制御する通常制御を行うことと、通常制御の途中で、ロボット2への外力の付加によるガイド操作に応じて先端部4を移動させるように多関節アーム10を制御する力ガイド制御を行うことと、動作プログラムに従った目標位置及び目標姿勢の推移の途中から開始する補正対象区間について、当該補正対象区間の始点における先端部4の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部4の目標位置及び目標姿勢を定める相対指令情報を取得することと、力ガイド制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢を基準とし、相対指令情報に従って先端部4を移動させるように多関節アーム10を制御する補正制御を行うことと、を実行するように構成されている。
【0024】
例えばコントローラ100は、機能上の構成(以下、「機能モジュール」という。)として、動作プログラム保持部111と、通常制御部112と、力ガイド制御部114と、相対情報取得部115と、補正制御部116と、復帰制御部117と、非常制御部113とを有する。
【0025】
動作プログラム保持部111は、上記動作プログラムを記憶する。動作プログラムは、時系列に並ぶ複数の動作命令を含む。動作命令は、多関節アーム10の動作命令と、ツール5の動作命令とを含む。多関節アーム10の動作命令は、基部3に対する先端部4の目標位置及び目標姿勢を定める移動命令を含む。なお、少なくとも一部の移動命令は、当該移動命令による先端部4の位置及び姿勢の相対的な変化を定めるように記述されていてもよい。以下、このように記述された命令を「相対命令」という。一方、基部3に対する先端部4の目標位置及び目標姿勢を定めるように記述された命令を「絶対命令」という。相対命令単独では、基部3に対する先端部4の目標位置及び目標姿勢は定まらないが、少なくとも一つの絶対命令が動作プログラムに含まれていれば、絶対命令の目標位置及び目標姿勢を基準にして、相対命令においても基部3に対する先端部4の目標位置及び目標姿勢が定まる。ツール5がハンドである場合、ツール5の動作命令は、ワークの把持命令と、ワークの解放命令とを含む。動作プログラムは、補正対象区間を示す区間指定情報を含んでもよい。
【0026】
図2は、ロボット2の動作を例示する模式図である。
図2が例示する動作は、エリアWA1にパーツ92が配置され、エリアWA2にパーツ93が配置された状態において、エリアWA2からエリアWA1にパーツ93を搬送することと、搬送したパーツ93をパーツ92の孔部92aに挿入することとを含む。点P1は、パーツ93を把持する際のツール5の位置である。点P9は、孔部92aへのパーツ93の挿入を開始する際のツール5の位置である。点P10は、孔部92aへのパーツ93の挿入を完了する際のツール5の位置である。点P2~P8は、点P1~点P9までの間におけるツール5の経由点の位置である。
【0027】
図3は、
図2の動作をロボット2に実行させるための動作プログラムを例示するテーブルである。命令001は、ツール5を点P1に移動させるための命令である。この移動命令は、ツール5を点P1に配置する際の先端部4の目標位置及び目標姿勢を含む。命令002は、ツール5にパーツ93を把持させる命令である。命令003~011は、ツール5を点P2~P10に順次移動させるための命令であり、いずれも移動先の点にツール5を配置する際の先端部4の目標位置及び目標姿勢を含む。命令012は、ツール5にパーツ93を解放させる命令である。命令013は、パーツ93を解放したツール5を点P9に移動させるための命令であり、点P9にツール5を配置する際の先端部4の目標位置及び目標姿勢を含む。命令014以降には、ツール5をエリアWA2側に戻すための命令が後続する。
図3における補正対象フラグは、上述した区間指定情報に相当する。補正対象フラグは、命令ごとに設定されており、各命令に応じた移動区間が補正対象区間であるか否かを示している。例えば、「0」は補正対象区間ではないことを示し、「1」は補正対象区間であることを示している。以下、必要に応じて
図2及び
図3を参照し、説明内容の具体例を示す。
【0028】
通常制御部112は、基部3に対する先端部4の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部4を移動させるように多関節アーム10を制御する。以下、この制御を「通常制御」という。例えば通常制御部112は、基部3に対する先端部4の位置及び姿勢を、動作プログラムの目標位置及び目標姿勢に移動させるための関節41~46の目標動作角度を導出し、これに関節41~46の動作角度を追従させるように多関節アーム10を制御する。通常制御部112は、動作プログラムの途中で先端部4の移動を一時停止させるように多関節アーム10を制御してもよい。
【0029】
上記動作プログラムが、先端部4の移動を一時停止させるタイミングを定めるタイミング指定情報を含んでいる場合に、通常制御部112は、当該タイミング指定情報により定められるタイミングに従って先端部4の移動を一時停止させるように多関節アーム10を制御してもよい。例えば通常制御部112は、上述した区間指定情報をタイミング指定情報として取得し、上記補正対象区間の開始直前に先端部4の移動を一時停止させるように多関節アーム10を制御する。より具体的に、通常制御部112は、
図3の補正対象フラグが0から1に切り替わる直前(命令010,011の間)に先端部4の移動を一時停止させるように多関節アーム10を制御する。
【0030】
力ガイド制御部114は、通常制御部112による制御の途中で、ロボット2への外力の付加によるガイド操作に応じて先端部4を移動させるように多関節アーム10を制御する。以下、この制御を「力ガイド制御」という。人協働型のロボットシステム1において、ガイド操作用の外力は、作業者がロボット2に触れることで付加される。ここでの「外力」は力及びモーメントの両方を含み、「移動」は位置及び姿勢の少なくとも一方の変更を意味する。
【0031】
例えば力ガイド制御部114は、外力の方向に従って先端部4を移動させるように、先端部4の目標位置及び目標姿勢を導出し、当該目標位置及び目標姿勢に先端部4を移動させるための関節41~46の目標動作角度を導出し、これに関節41~46の動作角度を追従させるように多関節アーム10を制御する。
【0032】
力ガイド制御部114は、動作プログラムの途中で先端部4の移動が一時停止した状態にて力ガイド制御を開始し、先端部4の移動が一時停止するまでは力ガイド制御を禁止してもよい。力ガイド制御部114は、力ガイド制御において、先端部4の可動範囲を制限するように多関節アーム10を制御してもよい。例えば力ガイド制御部114は、先端部4の位置及び姿勢の可動範囲を制限してもよいし、関節41~46の可動範囲を制限してもよい。また、力ガイド制御部114は、ガイド操作に応じて先端部4を移動させる時間を制限することで、先端部4の位置及び姿勢の可動範囲を制限してもよい。
【0033】
力ガイド制御部114は、力ガイド制御において、先端部4の移動の自由度を制限するように多関節アーム10を制御してもよい。自由度の制限の具体例としては、所定の軸線まわりの先端部4の姿勢変更を禁止すること、所定の軸線に沿った先端部4の移動を禁止すること、先端部4の姿勢の変更を禁止し、先端部4の位置の変更のみを許可すること等が挙げられる。
【0034】
力ガイド制御部114は、作業者が入力するガイドオン指令信号に応じて力ガイド制御を開始し、ガイドオン指令信号が入力されるまでは力ガイド制御を禁止してもよい。例えば力ガイド制御部114は、先端部4の移動が一時停止している期間の入力スイッチ6の状態をガイドオン指令信号として取得し、入力スイッチ6がオンとなるのに応じて力ガイド制御を開始してもよい。なお、ガイドオン指令信号は、入力スイッチ6の状態に限られない。例えば力ガイド制御部114は、力センサ31~36による検出結果に基づいて、作業者がロボット2に対して所定の外力付加操作(例えば叩くこと)を行ったことを検出し、これに応じて力ガイド制御を開始してもよい。
【0035】
力ガイド制御部114は、複数の関節41~46に作用するトルクに関する情報に基づいて力ガイド制御を実行してもよい。具体的に、力ガイド制御部114は、関節41~46に作用するトルクに基づいて上記外力を導出し、当該外力に応じて先端部4を移動させるように多関節アーム10を制御してもよい。力ガイド制御部114は、関節41~46に作用するトルクに関する情報として、力センサ31~36の検出結果を参照してもよい。力ガイド制御部114は、関節41~46に作用するトルクに関する情報として、関節41~46の軸の撓み角(アクチュエータ21~26の回転角、各軸減速比、及び関節41~46の回転角に基づき算出されるねじれ角)の検出結果を参照してもよい。この場合、各関節軸に二つの角度センサが必要となるが、力センサ31~36は不要となる。また、力ガイド制御部114は、関節41~46に作用するトルクに関する情報として、アクチュエータ21~26の出力トルクを参照してもよい。アクチュエータ21~26の出力トルクは、アクチュエータ21~26に供給される電流に基づいて導出可能である。
【0036】
相対情報取得部115は、上記補正対象区間の始点における先端部4の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部4の目標位置及び目標姿勢を定める相対指令情報を動作プログラムから取得する。例えば相対情報取得部115は、動作プログラムの区間指定情報に基づいて相対指令情報を取得する。例えば相対情報取得部115は、補正対象フラグが0から1に変わる直前の目標位置及び目標姿勢(例えば
図3の命令010の目標位置及び目標姿勢)を上記始点における目標位置及び目標姿勢として相対指令情報を取得する。
【0037】
補正対象区間における動作命令が、上述した「絶対命令」となっている場合、相対情報取得部115は、当該動作命令の目標位置及び目標姿勢から、上記始点における目標位置及び目標姿勢を減算した情報を相対指令情報として取得する。補正対象区間における動作命令が、上述した「相対命令」となっている場合、相対情報取得部115は、当該動作命令自体を相対指令情報として取得する。
【0038】
補正制御部116は、力ガイド制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢(以下、「力ガイド制御後の位置及び姿勢」という。)を基準とし、相対情報取得部115が取得した相対指令情報に従って先端部4を移動させるように多関節アーム10を制御する。以下、この制御を「補正制御」という。
【0039】
補正制御部116は、作業者が入力する再開指令信号に応じて補正制御を開始してもよい。例えば補正制御部116は、作業者が入力する再開指令信号に応じて補正制御を開始してもよい。この場合、補正制御部116は、ロボット2への接触により入力される再開指令信号に応じて補正制御を開始してもよい。具体的に、補正制御部116は、力ガイド制御後の入力スイッチ6の状態を再開指令信号として取得し、入力スイッチ6がオンとなるのに応じて補正制御を開始してもよい。なお、再開指令信号も、入力スイッチ6の状態に限られない。例えば補正制御部116は、力センサ31~36による検出結果に基づいて、作業者がロボット2に対して所定の外力付加操作(例えば叩くこと)を行ったことを検出し、これに応じて補正制御を開始してもよい。
【0040】
復帰制御部117は、補正制御部116による制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢を、動作プログラムに従った位置及び姿勢に移行させるように多関節アーム10を制御する。以下、この制御を「復帰制御」という。
【0041】
非常制御部113は、通常制御部112、補正制御部116及び復帰制御部117による制御に応じたロボット2の動作に抗する抵抗力の増加に応じて、当該抵抗力に抗う動作を止めるように多関節アーム10を制御する。上記抵抗力は、例えばロボット2が作業者に接触した場合に増加し得る。また、上記抵抗力は、ロボット2の構成要素間(例えば下アーム12と上アーム13との間)に作業者の腕等が挟まれた場合にも増加し得る。上記抵抗力の増加は、例えば力センサ31~36の検出結果に基づいて検知可能である。上記抵抗力に抗う動作を止めることは、ロボット2の動作を停止させることの他、抵抗力に応じた方向(抵抗力を緩和する方向)にロボット2を動作させること(以下、これを「退避動作」という。)を含む。
【0042】
図4は、コントローラ100のハードウェア構成を例示するブロック図である。
図4に示すように、コントローラ100は回路120を含む。回路120は、少なくとも一つのプロセッサ121と、メモリ122と、ストレージ123と、ドライバ124と、入出力ポート125と、を含む。ストレージ123は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばハードディスク又はフラッシュメモリ)である。ストレージ123は、コントローラ100の各機能モジュールを構成するためのプログラムの記憶領域と、上記動作プログラム保持部111に割り当てられる記憶領域とを含む。メモリ122は、ストレージ123からロードしたプログラム及びプロセッサ121による演算結果等を一時的に記憶する。プロセッサ121は、メモリ122と協働して上記プログラムを実行することで、コントローラ100の各機能モジュールを構成する。ドライバ124は、プロセッサ121からの指令に応じてアクチュエータ21~26のモータに駆動電力を出力する。ドライバ124は、プロセッサ121からの指令に応じてアクチュエータ21~26に駆動電力を出力する。入出力ポート125は、プロセッサ121からの指令に応じて、力センサ31~36との間で電気信号の入出力を行う。
【0043】
なお、回路120は、必ずしもプログラムにより各機能を構成するものに限られない。例えば、回路120は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0044】
〔制御手順〕
続いて、ロボット2の制御方法の一例として、コントローラ100が実行する制御手順を説明する。この制御手順は、基部3に対する先端部4の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部4を移動させるように多関節アーム10を制御する通常制御を行うことと、通常制御の途中で、ロボット2への外力の付加によるガイド操作に応じて先端部4を移動させるように多関節アーム10を制御する力ガイド制御を行うことと、動作プログラムに従った目標位置及び目標姿勢の推移の途中から開始する補正対象区間について、当該補正対象区間の始点における先端部4の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部4の目標位置及び目標姿勢を定める相対指令情報を取得することと、力ガイド制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢を基準とし、相対指令情報に従って先端部4を移動させるように多関節アーム10を制御する補正制御を行うことと、を含む。
【0045】
図5に示すように、コントローラ100は、ステップS01,S02,S03,S04を実行する。ステップS01では、通常制御部112が、上記補正対象区間の開始直前まで通常制御を実行し、その後先端部4の移動を一時停止させるように多関節アーム10を制御する。
図12の(a)は、ツール5を点P9に配置した状態で先端部4の移動が一時停止した状態を例示している。ステップS02では、力ガイド制御部114が上記力ガイド制御を実行する。
図12の(b)は、外力TF1の付加によるガイド操作に応じて、先端部4が点P9から点P21に移動した状態を例示している。ステップS03では、相対情報取得部115が上記相対指令情報を取得し、補正制御部116が上記補正制御を実行する。
【0046】
図12の(c)の例において、相対情報取得部115は、ツール5を点P9から点P10まで移動させ、更に点P10から点P9に移動させるための相対指令IM1の情報を取得する。例えば、命令011が上記絶対指令で記述されている場合、相対情報取得部115は、命令011の目標位置及び目標姿勢から、点P9における目標位置及び目標姿勢を減算した情報を相対指令IM1の情報として取得する。命令011が上記相対指令で記述されている場合、相対情報取得部115は、命令011自体を相対指令IM1の情報として取得する。
【0047】
ステップS04では、復帰制御部117が上記復帰制御を実行する。
図12の(c)の例において、復帰制御部117は、点P21に対応する位置及び姿勢を、点P8に対応する位置及び姿勢に移行させるように多関節アーム10を制御する。
【0048】
次に、コントローラ100は、ステップS05を実行する。ステップS05では、通常制御部112がロボット2の制御の終了指令の有無を確認する。ステップS05において終了指令がないと判定した場合、コントローラ100は処理をステップS01に戻す。以後、通常制御、力ガイド制御及び補正制御が繰り返される。ステップS05において終了指令があると判定した場合、コントローラ100は処理を完了する。
【0049】
(通常制御手順)
続いて、ステップS01における通常制御の具体的手順を例示する。
図6に示すように、コントローラ100は、まずステップS11,S12,S13を実行する。ステップS11では、通常制御部112が動作プログラムから動作命令を取得する。例えば通常制御部112は、動作プログラム中において未実行の動作命令のうち、最も番号の若い動作命令を取得する。ステップS12では、通常制御部112が、動作命令により示される目標位置及び目標姿勢に先端部4を移動させるための関節角度目標値(関節41~46の動作角度目標値)を逆運動学演算により導出する。動作命令を複数の制御周期に分けて実行する場合、通常制御部112は、例えば線形補間等により制御周期ごとの関節角度目標値を導出する。ステップS13では、通常制御部112が最初の制御周期の関節角度目標値を選択する。
【0050】
次に、コントローラ100は、ステップS14,S15を実行する。ステップS14では、通常制御部112が、選択中の関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。ステップS15では、非常制御部113が、抵抗力の増加の有無を確認する。
【0051】
ステップS15において抵抗力が増加していると判定した場合、コントローラ100は、ステップS16を実行する。ステップS16では、非常制御部113が退避制御を実行する。退避制御の具体的内容については後述する。
【0052】
次に、コントローラ100は、ステップS17を実行する。ステップS16において抵抗力が増加していないと判定した場合、コントローラ100は、ステップS16を実行することなくステップS17を実行する。ステップS17では、通常制御部112が、動作命令に従った先端部4の移動が完了したか否かを確認する。例えば、通常制御部112は、当該動作命令に対応する全ての制御周期の実行が完了したか否かを確認する。
【0053】
ステップS17において全ての制御周期の実行が完了していないと判定した場合、コントローラ100は、ステップS18を実行する。ステップS18では、通常制御部112が、次の制御周期の関節角度目標値を選択する。その後、コントローラ100は処理をステップS14に戻す。以後、抵抗力の増加を監視しつつ、動作命令に従って先端部4を移動させる制御が繰り返される。
【0054】
ステップS17において全ての制御周期の実行が完了したと判定した場合、コントローラ100は、ステップS19を実行する。ステップS19では、先端部4がガイド操作の待機位置に到達したか否かを通常制御部112が確認する。ガイド操作の待機位置は、例えば上記補正対象区間の開始直前における先端部4の目標位置及び目標姿勢(例えば
図3の命令010の目標位置及び目標姿勢)である。
【0055】
ステップS19において先端部4が待機位置に到達していないと判定した場合、コントローラ100は処理をステップS11に戻す。以後、待機位置に到達するまでは通常制御が繰り返される。ステップS19において先端部4が待機位置に到達したと判定した場合、コントローラ100は、通常制御を完了する。これにより、先端部4の移動が一時停止する。なお、上記待機位置は、必ずしも補正対象区間の開始直前における先端部4の目標位置及び目標姿勢でなくてもよい。例えば上記待機位置は、補正対象区間よりも二つ以上前の動作命令における先端部4の目標位置及び目標姿勢であってもよい。この場合、上記待機位置は、補正対象区間の始点における先端部4の目標位置及び目標姿勢を可動範囲に含む位置及び姿勢となるように設定されていてもよい。例えば、
図14においては、補正対象区間よりも三つ前の命令008における先端部4の目標位置及び目標姿勢(点P7に対応する位置)が上記待機位置となっており、補正対象区間の始点における先端部4の目標位置及び目標姿勢(点P9に対応する位置)は上記待機位置からの可動範囲MA1内に含まれている。
【0056】
また、通常制御部112は、先端部4の移動を一時停止させるように多関節アーム10を制御することを、作業者が入力する停止指令信号に応じて実行してもよい。この場合、通常制御部112は、入力スイッチ6の状態を停止指令信号として取得し、入力スイッチ6がオンとなるのに応じて先端部4の移動を一時停止させるように多関節アーム10を制御してもよい。
【0057】
続いて、ステップS16における退避制御の具体的手順を例示する。
図7に示すように、コントローラ100は、まずステップS21,S22,S23を実行する。ステップS21では、非常制御部113が、抵抗力を緩和するための関節角度目標値を導出する。以下、この関節角度目標値に対応するロボット2の姿勢を「退避姿勢」という。例えば、非常制御部113は、力センサ31~36により検出されるトルクを緩和するように関節41~46の角度目標値を導出する。退避制御を複数の制御周期に分けて実行する場合、非常制御部113は、例えば線形補間等により制御周期ごとの関節角度目標値を導出する。ステップS22では、非常制御部113が、最初の制御周期の関節角度目標値を選択する。ステップS23では、非常制御部113が、選択中の関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。
【0058】
次に、コントローラ100は、ステップS24を実行する。ステップS24では、ロボット2の姿勢が退避姿勢となったか否かを非常制御部113が確認する。ステップS24においてロボット2の姿勢が退避姿勢となっていないと判定した場合、ステップS25を実行する。ステップS25では、通常制御部112が、次の制御周期の関節角度目標値を選択する。その後、コントローラ100は処理をステップS23に戻す。以後、ロボット2の姿勢が退避姿勢となるまでロボット2の姿勢変更が繰り返される。
【0059】
図13の(a)は、点P7から点P8にツール5を移動させる過程で、作業者の腕とロボット2とが接触した場合を例示している。この場合、力センサ31~36により検出されるトルクを緩和するように関節41~46の角度目標値が変更されることにより、ロボット2の退避姿勢は作業者の腕から遠ざかるように設定される(
図13の(b)参照)。
【0060】
ステップS24においてロボット2の姿勢が退避姿勢となっていると判定した場合、コントローラ100はステップS26を実行する。ステップS26では、非常制御部113が、再開指令の入力を待機する。例えば非常制御部113は、入力スイッチ6の状態を再開指令信号として取得し、入力スイッチ6がオンとなるのを待機する。
【0061】
次に、コントローラ100は、
図8に示すようにステップS31,S32,S33,S34,S35を実行する。ステップS31では、非常制御部113が、復帰目標位置を設定する。例えば、非常制御部113は、退避姿勢へのロボット2の姿勢の移行を開始する直前における先端部4の位置及び姿勢を復帰目標位置とする。ステップS32では、非常制御部113が、復帰目標位置に先端部4を移動させるための関節角度目標値(関節41~46の動作角度目標値)を逆運動学演算により導出する。復帰目標位置までの復帰を複数の制御周期に分けて実行する場合、非常制御部113は、例えば線形補間等により制御周期ごとの関節角度目標値を導出する。ステップS33では、非常制御部113が最初の制御周期の関節角度目標値を選択する。ステップS34では、非常制御部113が、選択中の関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。ステップS35では、非常制御部113が、抵抗力の増加の有無を確認する。
【0062】
ステップS35において抵抗力が増加していると判定した場合、コントローラ100は処理をステップS21に戻す。ステップS35において抵抗力が増加していないと判定した場合、コントローラ100はステップS36を実行する。ステップS36では、非常制御部113が、復帰目標位置までの先端部4の移動が完了したか否かを確認する。
【0063】
ステップS36において先端部4の移動が完了していないと判定した場合、コントローラ100はステップS37を実行する。ステップS37では、非常制御部113が次の制御周期の関節角度目標値を選択する。その後、コントローラ100は処理をステップS34に戻す。以後、復帰目標位置までの先端部4の移動が完了するまで先端部4の移動が繰り返される。ステップS36において先端部4の移動が完了したと判定した場合、コントローラ100は退避制御を完了する。
【0064】
(力ガイド制御手順)
続いて、ステップS02における力ガイド制御の具体的手順を例示する。
図9に示すように、コントローラ100は、ステップS41を実行する。ステップS41では、力ガイド制御部114が、上記ガイドオン指令の入力を待機する。例えば力ガイド制御部114は、先端部4の移動が一時停止している期間の入力スイッチ6の状態をガイドオン指令信号として取得し、入力スイッチ6がオンとなるのを待機する。
【0065】
次に、コントローラ100は、ステップS42,S43,S44,S45を実行する。ステップS42では、力ガイド制御部114が、ガイド操作として入力された外力の情報を取得する。例えば力ガイド制御部114は、例えば力センサ31~36の検出結果を取得する。ステップS43では、力ガイド制御部114が、外力に応じた先端部4の目標位置及び目標姿勢(以下、「ガイド目標位置」という。)を導出する。例えば力ガイド制御部114は、力センサ31~36の検出結果に基づいて、先端部4に作用する力及びモーメントを導出し、これに応じて先端部4の目標位置及び目標姿勢を導出する。ステップS44では、力ガイド制御部114が、ガイド目標位置に先端部4を移動させるための関節角度目標値(関節41~46の動作角度目標値)を逆運動学演算により導出する。ステップS45では、力ガイド制御部114が、関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。
【0066】
次に、コントローラ100はステップS46を実行する。ステップS46では、補正制御部116が、上記再開指令信号の入力の有無を確認する。具体的に、補正制御部116は、力ガイド制御後の入力スイッチ6の状態を再開指令信号として取得し、入力スイッチ6がオンであるか否かを確認する。ステップS46において再開指令信号が入力されていないと判定した場合、コントローラ100は処理をステップS42に戻す。以後、再開指令信号が入力されるまで、力ガイド制御が繰り返される。ステップS46において再開指令信号が入力されていると判定した場合、コントローラ100は力ガイド制御を完了する。
【0067】
(補正制御手順)
続いて、ステップS03における補正制御の具体的手順を例示する。
図10に示すように、コントローラ100は、まずステップS51,S52を実行する。ステップS51では、相対情報取得部115が、相対指令情報を取得する。例えば、命令011が上記絶対指令で記述されている場合、相対情報取得部115は、命令011の目標位置及び目標姿勢から、点P9における目標位置及び目標姿勢を減算した情報を相対指令IM1の情報として取得する。命令011が上記相対指令で記述されている場合、相対情報取得部115は、命令011次隊を相対指令IM1の情報として取得する。ステップS52では、補正制御部116が、先端部4の現在の位置及び姿勢を基準とし、相対指令情報に従った場合の先端部4の目標位置及び目標姿勢(以下、「補正目標位置」という。)を導出する。相対指令情報に対応する動作指令が、補正対象区間の最初の動作指令である場合、先端部4の現在の位置及び姿勢は、力ガイド制御に応じたロボット2の動作の完了時における先端部4の位置及び姿勢に相当する。
【0068】
次に、コントローラ100は、ステップS53,S54,S55を実行する。ステップS53では、補正制御部116が、補正目標位置に先端部4を移動させるための関節角度目標値(関節41~46の動作角度目標値)を逆運動学演算により導出する。補正目標位置までの移動を複数の制御周期に分けて実行する場合、補正制御部116は、例えば線形補間等により制御周期ごとの関節角度目標値を導出する。ステップS54では、補正制御部116が、最初の制御周期の関節角度目標値を選択する。ステップS55では、補正制御部116が、選択中の関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。
【0069】
次に、コントローラ100は、ステップS56を実行する。ステップS56では、非常制御部113が、抵抗力の増加の有無を確認する。抵抗力が増加していると判定した場合、コントローラ100は、ステップS57を実行する。ステップS57では、ステップS16と同様に、非常制御部113が退避制御を実行する。
【0070】
次に、コントローラ100は、ステップS58を実行する。ステップS56において抵抗力が増加していないと判定した場合、コントローラ100は、ステップS57を実行することなくステップS58を実行する。ステップS58では、補正制御部116が、補正目標位置までの先端部4の移動が完了したか否かを確認する。例えば、補正制御部116は、先端部4を補正目標位置に移動させるための全ての制御周期の実行が完了したか否かを確認する。
【0071】
ステップS58において先端部4の移動が完了していないと判定した場合、コントローラ100は、ステップS59を実行する。ステップS59では、補正制御部116が、次の制御周期の関節角度目標値を選択する。その後、コントローラ100は処理をステップS55に戻す。以後、抵抗力の増加を監視しつつ、補正目標位置まで先端部4を移動させる制御が繰り返される。
【0072】
ステップS58において先端部4の移動が完了していると判定した場合、コントローラ100は、ステップS61を実行する。補正対象区間の全ての動作命令について補正制御が完了したか否かを補正制御部116が確認する。ステップS61において全ての動作命令について補正制御が完了していないと判定した場合、コントローラ100は処理をステップS51に戻す。以後、補正対象区間の全ての動作命令について補正制御が完了するまでは補正制御が繰り返される。ステップS61において全ての動作命令について補正制御が完了していると判定した場合、コントローラ100は補正制御を完了する。
【0073】
(復帰制御手順)
続いて、ステップS04の復帰制御の具体的手順を例示する。
図11に示すように、コントローラ100は、まずステップS71,S72,S73,S74を実行する。ステップS71では、復帰制御部117が、通常制御を再開させるための先端部4の目標位置及び目標姿勢(以下、「復帰目標位置」という。)を設定する。例えば復帰制御部117は、補正対象区間の直後の動作命令における先端部4の目標位置及び目標姿勢を復帰目標位置とする。ステップS72では、復帰制御部117が、復帰目標位置に先端部4を移動させるための関節角度目標値(関節41~46の動作角度目標値)を逆運動学演算により導出する。復帰目標位置までの移動を複数の制御周期に分けて実行する場合、復帰制御部117は、例えば線形補間等により制御周期ごとの関節角度目標値を導出する。ステップS73では、復帰制御部117が最初の制御周期の関節角度目標値を選択する。ステップS74では、復帰制御部117が、選択中の関節角度目標値に従って、アクチュエータ21~26により関節41~46をそれぞれ駆動するように多関節アーム10を制御する。
【0074】
次に、コントローラ100は、ステップS75を実行する。ステップS75では、非常制御部113が、抵抗力の増加の有無を確認する。ステップS75において抵抗力が増加していると判定した場合、コントローラ100は、ステップS76を実行する。ステップS76では、ステップS16と同様に、非常制御部113が退避制御を実行する。
【0075】
次に、コントローラ100は、ステップS77を実行する。ステップS75において抵抗力が増加していないと判定した場合、コントローラ100は、ステップS76を実行することなくステップS77を実行する。ステップS77では、復帰制御部117が、復帰目標位置までの先端部4の移動が完了したか否かを確認する。例えば、復帰制御部117は、先端部4を復帰目標位置に移動させるための全ての制御周期の実行が完了したか否かを確認する。
【0076】
ステップS77において先端部4の移動が完了していないと判定した場合、コントローラ100は、ステップS78を実行する。ステップS78では、復帰制御部117が、次の制御周期の関節角度目標値を選択する。その後、コントローラ100は処理をステップS74に戻す。以後、抵抗力の増加を監視しつつ、復帰目標位置まで先端部4を移動させる制御が繰り返される。ステップS77において先端部4の移動が完了していると判定した場合、コントローラ100は復帰制御を完了する。
【0077】
〔本実施形態の効果〕
以上に説明したように、ロボットシステム1は、先端部4と、基部3と、基部3に対する先端部4の位置及び姿勢を調節する多関節アーム10とを有するロボット2と、基部3に対する先端部4の目標位置及び目標姿勢の経時的推移を定める動作プログラムに従って、先端部4を移動させるように多関節アーム10を制御する通常制御部112と、通常制御部112による制御の途中で、ロボット2への外力の付加によるガイド操作に応じて先端部4を移動させるように多関節アーム10を制御する力ガイド制御部114と、動作プログラムに従った目標位置及び目標姿勢の推移の途中から開始する補正対象区間について、当該補正対象区間の始点における先端部4の目標位置及び目標姿勢を基準とした、当該補正対象区間の終点までの先端部4の目標位置及び目標姿勢を定める相対指令情報を取得する相対情報取得部115と、力ガイド制御部114による制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢を基準とし、相対指令情報に従って先端部4を移動させるように多関節アーム10を制御する補正制御部116と、を備える。
【0078】
動作プログラムに従ってロボット2の作業を高精度に繰り返すためには、ロボット2の作業環境も一定である必要がある。しかしながら、ロボット2の実際の作業環境(以下、「実環境」という。)にはずれが生じる場合もある。例えばワークの配置位置・姿勢にずれが生じる場合がある。これに対し、ロボットシステム1は力ガイド制御部114を備えるので、外力の付加により先端部4の位置及び姿勢を実環境に適応させるガイド操作を、ロボット2の作業の実行途中で作業者に実行させることができる。更に、ロボットシステム1は、補正制御部116を備えるので、実環境に適応させた先端部4の位置及び姿勢を基準にして、以降の作業をロボットに継続させることができる。従って、ロボットシステム1は、人とロボット2との協働作業における人の負担軽減に有効である。
【0079】
動作プログラムは、補正対象区間を示す区間指定情報を含み、相対情報取得部115は、区間指定情報に基づいて相対指令情報を取得してもよい。この場合、補正制御部による制御の実行対象となる区間を動作プログラム上で予め定めておくことにより、不適切な対象区間の相対指令情報の取得に起因するロボット2の誤作業を防止することができる。
【0080】
ロボットシステム1は、補正制御部116による制御に応じた多関節アーム10の動作の完了時における先端部4の位置及び姿勢を、動作プログラムに従った位置及び姿勢に移行させるように多関節アーム10を制御する復帰制御部117を更に備えていてもよい。この場合、先端部4の位置及び姿勢の動作プログラムからの乖離が、補正制御部116による制御の繰り返しにより拡大し、これに起因してロボット2の作業の信頼性が低下することを抑制することができる。
【0081】
通常制御部112は、動作プログラムの途中で先端部4の移動を一時停止させるように多関節アーム10を制御し、力ガイド制御部114は、ガイド操作に応じて先端部を移動させるように多関節アーム10を制御することを、先端部4の移動が一時停止した状態にて開始してもよい。この場合、ロボット2の動作を一時停止させることにより、ガイド操作が容易になる。
【0082】
動作プログラムは、先端部4の移動を一時停止させるタイミングを定めるタイミング指定情報を含み、通常制御部112は、タイミング指定情報により定められるタイミングに従って先端部4の移動を一時停止させるように多関節アーム10を制御してもよい。この場合、一時停止のタイミングを動作プログラム上で予め定めておくことにより、ガイド操作の開始位置を安定化し、作業者の負担をより確実に軽減することができる。
【0083】
力ガイド制御部114は、ガイド操作に応じて先端部4を移動させる際に、先端部4の可動範囲を制限し、通常制御部112は、補正対象区間の始点における先端部4の目標位置及び目標姿勢を可動範囲に含む位置及び姿勢にて先端部4の移動を一時停止させるように多関節アーム10を制御してもよい。この場合、可動範囲の制限により、誤ったガイド操作を抑制することができる。また、相対指令情報の基準となる位置及び姿勢を補正するのに、可動範囲が過小となることを抑制することができる。
【0084】
力ガイド制御部114は、ガイド操作に応じて先端部を移動させる際に、先端部4の可動範囲を制限するように多関節アーム10を制御してもよい。この場合、可動範囲の制限により、誤ったガイド操作を抑制することができる。
【0085】
力ガイド制御部114は、ガイド操作に応じて先端部4を移動させる際に、先端部4の移動の自由度を制限するように多関節アーム10を制御してもよい。この場合、自由度の制限により、誤ったガイド操作を抑制することができる。
【0086】
補正制御部116は、相対指令情報に従って先端部4を移動させるように多関節アーム10を制御することを、作業者が入力する再開指令信号に応じて開始してもよい。この場合、作業者が意図しないタイミングで補正制御部116による制御が行われる状況を回避することができる。
【0087】
力ガイド制御部114は、ガイド操作に応じて先端部を移動させるように多関節アーム10を制御することを、作業者が入力するガイドオン指令信号に応じて開始してもよい。この場合、作業者が意図しないタイミングで力ガイド制御部114による制御が行われる状況を回避することができる。
【0088】
通常制御部112は、動作プログラムの途中で先端部4の移動を一時停止させるように多関節アーム10を制御することを、作業者が入力する停止指令信号に応じて実行してもよい。この場合、作業者が望む位置で先端部4の移動を一時停止させることにより、ガイド操作を行う作業者の快適性を向上させることができる。
【0089】
補正制御部116は、相対指令情報に従って先端部4を移動させるように多関節アーム10を制御することを、ロボット2への接触により入力される再開指令信号に応じて開始してもよい。この場合、ロボット2の作業を、作業者のガイド操作後に迅速に再開させることができる。
【0090】
ロボットシステム1は、通常制御部112による制御に応じたロボット2の動作に抗する抵抗力の増加に応じて、当該抵抗力に抗う動作を止めるように多関節アーム10を制御する非常制御部113を更に備えていてもよい。
【0091】
ロボット2は複数の関節41~46を含み、力ガイド制御部114は、ガイド操作に応じて先端部4を移動させるように多関節アーム10を制御することを、複数の関節41~46に作用するトルクに関する情報に基づいて実行してもよい。この場合、多関節アーム10において取得可能な情報を、力ガイド制御部114による制御に有効活用し、装置構成の簡素化を図ることができる。
【0092】
以上、実施形態について説明したが、本発明は必ずしも上述した形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【0093】
1…ロボットシステム、2…ロボット、3…基部、4…先端部、10…多関節アーム、41~46…関節、112…通常制御部、113…非常制御部、114…力ガイド制御部、115…相対情報取得部、116…補正制御部、117…復帰制御部。