(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-30
(45)【発行日】2024-11-08
(54)【発明の名称】ロボットシステム及びその制御方法
(51)【国際特許分類】
B25J 3/00 20060101AFI20241031BHJP
B25J 9/22 20060101ALI20241031BHJP
【FI】
B25J3/00 A
B25J9/22 Z
(21)【出願番号】P 2020169900
(22)【出願日】2020-10-07
【審査請求日】2023-08-02
(73)【特許権者】
【識別番号】000000974
【氏名又は名称】川崎重工業株式会社
(74)【代理人】
【識別番号】100131200
【氏名又は名称】河部 大輔
(72)【発明者】
【氏名】東 健太郎
(72)【発明者】
【氏名】竹林 潤
(72)【発明者】
【氏名】佐久間 智輝
(72)【発明者】
【氏名】赤松 政彦
(72)【発明者】
【氏名】上月 崇功
(72)【発明者】
【氏名】藤森 潤
(72)【発明者】
【氏名】木下 博貴
(72)【発明者】
【氏名】清水 開
(72)【発明者】
【氏名】▲高▼橋 大樹
【審査官】亀田 貴志
(56)【参考文献】
【文献】国際公開第2018/225862(WO,A1)
【文献】特開平08-141961(JP,A)
【文献】特開平06-214633(JP,A)
【文献】特開2020-104216(JP,A)
【文献】特開平08-281573(JP,A)
【文献】国際公開第2017/033356(WO,A1)
【文献】特開昭57-189779(JP,A)
【文献】特開平07-032283(JP,A)
【文献】特開2020-019080(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/46
B24B 27/00
(57)【特許請求の範囲】
【請求項1】
ユーザに操作されるマスタ装置と、
対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、
前記スレーブ装置を制御する制御装置とを備え、
前記マスタ装置は、前記ユーザが操作する操作部と、前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、
前記制御装置は、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、
前記軌跡情報及び前記操作力はそれぞれ、複数の方向の成分を含み、
前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記制御装置は、前記第2制御において、前記軌跡情報に含まれる複数の方向の成分及び前記操作力に含まれる複数の方向の成分のうち前記動作部の制御に用いる方向の成分を
ユーザにより選択可能に構成されているロボットシステム。
【請求項2】
請求項1に記載のロボットシステムにおいて、
前記制御装置は、前記第1制御において、前記軌跡情報を記録する際に、前記操作力検出部によって検出される操作力を併せて記録し、
前記第2制御における前記動作部の制御に用いられる前記操作力は、前記第1制御によって記録された操作力であるロボットシステム。
【請求項3】
請求項1の記載のロボットシステムにおいて、
前記制御装置は、前記第2制御において、前記操作力に含まれる複数の方向の成分のうち一部の方向の成分を前記動作部の制御に用いると共に、前記軌跡情報に含まれる複数の方向の成分のうち前記操作力の前記一部の方向の成分以外の方向の成分を前記動作部の制御に用いるロボットシステム。
【請求項4】
ユーザに操作されるマスタ装置と、
対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、
前記スレーブ装置を制御する制御装置とを備え、
前記マスタ装置は、前記ユーザが操作する操作部と、前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、
前記制御装置は、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、
前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記第2制御における前記動作部の制御に用いられる前記操作力は、前記第2制御中の前記操作部の操作に基づいて前記操作力検出部によって検出される操作力であるロボットシステム。
【請求項5】
ユーザに操作されるマスタ装置と、
対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、
前記スレーブ装置を制御する制御装置と、
前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部とを備え、
前記マスタ装置は、前記ユーザが操作する操作部と、前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、
前記制御装置は、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、
前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記制御装置は、
前記第1制御及び前記第2制御において、慣性係数、粘性係数及び剛性係数を含む運動方程式に基づく前記動作部及び前記作用部の運動モデルを用いることによって、前記操作力及び前記接触力に応じて前記動作部を制御するように構成され、
前記第2制御において、前記剛性係数の有無を
ユーザにより選択可能に構成されているロボットシステム。
【請求項6】
ユーザに操作されるマスタ装置と、
対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、
前記スレーブ装置を制御する制御装置とを備え、
前記マスタ装置は、前記ユーザが操作する操作部と、前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、
前記制御装置は、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、
前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部をさらに備え、
前記制御装置は、
前記第1制御及び前記第2制御において、慣性係数、粘性係数及び剛性係数を含む運動方程式に基づく前記動作部及び前記作用部の運動モデルを用いることによって、前記操作力及び前記接触力に応じて前記動作部を制御するように構成され、
前記第2制御において、前記剛性係数を前記操作力及び前記接触力に応じて変化させるロボットシステム。
【請求項7】
ユーザに操作されるマスタ装置と、
対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、
前記スレーブ装置を制御する制御装置と、
前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部とを備え、
前記マスタ装置は、前記ユーザが操作する操作部と、前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、
前記制御装置は、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、
前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記制御装置は、前記第1制御において、
前記操作力及び前記接触力に基づいて前記作用部の位置に関する位置関連情報を算出し、
前記位置関連情報に基づいて前記作用部の指令位置と前記作用部の指令位置と関連する、前記操作部の指令位置とを生成し、
前記作用部の指令位置に基づいて前記動作部を制御する一方、前記操作部の指令位置に基づいて前記マスタ装置を制御し、
前記軌跡情報は、前記位置関連情報、前記作用部の指令位置及び前記操作部の指令位置のうちの少なくとも1つであるロボットシステム。
【請求項8】
ユーザが操作する操作部と前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置とを備えるロボットシステムの制御方法であって、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御を実行することと、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御を実行することとを含み、
前記軌跡情報及び前記操作力はそれぞれ、複数の方向の成分を含み、
前記第2制御において、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、前記軌跡情報に含まれる複数の方向の成分及び前記操作力に含まれる複数の方向の成分のうち前記動作部の制御に用いる方向の成分が
ユーザにより選択可能となっている、ロボットシステムの制御方法。
【請求項9】
請求項8に記載のロボットシステムの制御方法において、
前記第1制御においては、前記軌跡情報が記録される際に、前記操作力検出部によって検出される操作力が併せて記録され、
前記第2制御における前記動作部の制御に用いられる前記操作力は、前記第1制御によって記録された操作力である、ロボットシステムの制御方法。
【請求項10】
請求項8の記載のロボットシステムの制御方法において、
前記第2制御においては、前記操作力に含まれる複数の方向の成分のうち一部の方向の成分が前記動作部の制御に用いられると共に、前記軌跡情報に含まれる複数の方向の成分のうち前記操作力の前記一部の方向の成分以外の方向の成分が前記動作部の制御に用いられる、ロボットシステムの制御方法。
【請求項11】
ユーザが操作する操作部と前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置とを備えるロボットシステムの制御方法であって、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御を実行することと、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御を実行することとを含み、
前記第2制御において、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記第2制御における前記動作部の制御に用いられる前記操作力は、前記第2制御中の前記操作部の操作に基づいて前記操作力検出部によって検出される操作力である、ロボットシステムの制御方法。
【請求項12】
ユーザが操作する操作部と前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置とを備えるロボットシステムの制御方法であって、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御を実行することと、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御を実行することとを含み、
前記第2制御において、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記ロボットシステムは、前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部をさらに備え、
前記第1制御及び前記第2制御においては、慣性係数、粘性係数及び剛性係数を含む運動方程式に基づく前記動作部及び前記作用部の運動モデルを用いることによって、前記操作力及び前記接触力に応じて前記動作部が制御され、
前記第2制御においては、前記剛性係数の有無が
ユーザにより選択可能になっている、ロボットシステムの制御方法。
【請求項13】
ユーザが操作する操作部と前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置とを備えるロボットシステムの制御方法であって、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御を実行することと、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御を実行することとを含み、
前記第2制御において、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記ロボットシステムは、前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部をさらに備え、
前記第1制御及び前記第2制御においては、慣性係数、粘性係数及び剛性係数を含む運動方程式に基づく前記動作部及び前記作用部の運動モデルを用いることによって、前記操作力及び前記接触力に応じて前記動作部が制御され、
前記第2制御においては、前記剛性係数が前記操作力及び前記接触力に応じて変化する、ロボットシステムの制御方法。
【請求項14】
ユーザが操作する操作部と前記操作部にユーザから加えられる操作力を検出する操作力検出部とを有し、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置とを備えるロボットシステムの制御方法であって、
前記マスタ装置を介した操作として、前記操作力検出部によって検出される操作力に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御を実行することと、
前記第1制御によって記録された前記軌跡情報に加えて前記操作力に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御を実行することとを含み、
前記第2制御において、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御し、
前記ロボットシステムは、前記対象物から前記作用部へ作用する反力である接触力を検出する接触力検出部をさらに備え、
前記第1制御においては、
前記操作力及び前記接触力に基づいて前記作用部の位置に関する位置関連情報が算出され、
前記位置関連情報に基づいて前記作用部の指令位置と前記作用部の指令位置と関連する、前記操作部の指令位置とが生成され、
前記作用部の指令位置に基づいて前記動作部が制御される一方、前記操作部の指令位置に基づいて前記マスタ装置が制御され、
前記軌跡情報は、前記位置関連情報、前記作用部の指令位置及び前記操作部の指令位置のうちの少なくとも1つである、ロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
ここに開示された技術は、ロボットシステム及びその制御方法に関する。
【背景技術】
【0002】
従来より、ロボットを動作させることによって対象物に作用を加えるロボットシステムが知られている。
【0003】
例えば、特許文献1では、ロボットを動作させることによって、対象物に研磨を行うロボットシステムが開示されている。このロボットシステムにおいては、対象物に作用する研磨力が一定になるようにロボットを動作させている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、前述のロボットシステムでは、ロボットは、対象物に作用する力を一定に維持するように動作するだけである。実際にユーザが操作することによってロボットを動作させて対象物に作用を加える場合には、ロボットを複雑に動作させることもある。つまり、前述のロボットシステムでは、実際にユーザが操作するときのような複雑なロボットの動作を再現することができない。
【0006】
ここに開示された技術は、かかる点に鑑みてなされたものであり、その目的とするところは、ロボットを動作させて対象物に作用を加える際に、実際にユーザが操作するときのような複雑なロボットの動作を再現することにある。
【課題を解決するための手段】
【0007】
ここに開示されたロボットシステムは、ユーザに操作されるマスタ装置と、対象物に作用を加える作用部と前記作用部を動作させる動作部とを有するスレーブ装置と、前記スレーブ装置を制御する制御装置とを備え、前記制御装置は、前記マスタ装置を介した操作に応じて前記動作部を制御することによって前記作用部に前記対象物へ作用を加えさせると共に、前記作用部の動作軌跡に関連する軌跡情報を記録する第1制御と、前記第1制御によって記録された前記軌跡情報に基づいて前記動作部を制御することによって、前記動作軌跡を再現するように前記作用部を移動させて、前記作用部に前記対象物へ作用を加えさせる第2制御とを実行し、前記第2制御において、前記制御装置は、前記軌跡情報に基づいて前記動作部を制御する際に、前記対象物への前記作用部の押付力を制御する。ここで、「再現する」には、厳密な再現性は求めない。つまり、「再現する」は、厳密に再現することだけでなく、概ね再現ことも含む意味である。
【発明の効果】
【0008】
前記ロボットシステムによれば、ロボットを動作させて対象物に作用を加える際に、実際にユーザが操作するときのような複雑なロボットの動作を再現することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係るロボットシステムの構成を示す模式図である。
【
図2】
図2は、ロボット制御装置の概略的なハードウェア構成を示す図である。
【
図3】
図3は、操作制御装置の概略的なハードウェア構成を示す図である。
【
図4】
図4は、制御装置の概略的なハードウェア構成を示す図である。
【
図5】
図5は、ロボットシステムの制御系統の構成を示すブロック図である。
【
図6】
図6は、ロボットシステムの動作を示すフローチャートである。
【
図7】
図7は、減衰制御における研削装置の動作を示す模式図である。
【
図8】
図8は、制御方向選択機能が実行された減衰制御における研削装置の動作を示す模式図である。
【
図9】
図9は、弾性制御における研削装置の動作を示す模式図である。
【
図10】
図10は、別の例の弾性制御における研削装置の動作を示す模式図である。
【
図11】
図11は、操作力及び接触力の変化に対する剛性係数の変化を表すグラフである。
【
図12】
図12は、変形例に係る第2制御における研削装置の動作を示す模式図である。
【発明を実施するための形態】
【0010】
以下、例示的な実施形態を図面に基づいて詳細に説明する。
【0011】
本開示において、ロボットが行う作業は、ティーチング作業並びに教示の確認及び修正作業を含まない。したがって、以下の説明における操作装置2は、ティーチペンダントを含まない。
【0012】
図1は、実施形態に係るロボットシステム100の構成を示す模式図である。
【0013】
ロボットシステム100は、ロボット1と、ユーザに操作される操作装置2と、ロボット1を制御する制御装置3とを備える。ロボットシステム100は、マスタスレーブシステムを構成する。操作装置2は、マスタ装置として機能し、ロボット1は、スレーブ装置として機能する。制御装置3は、ロボットシステム100の全体を制御し、ロボット1と操作装置2との間でバイラテラル制御を行う。
【0014】
ロボット1は、例えば、産業用ロボットである。ロボット1は、対象物Wに作用を加えるエンドエフェクタ11と、エンドエフェクタ11を動作させるロボットアーム12とを有している。ロボット1は、ロボットアーム12によってエンドエフェクタ11を動作、即ち、移動させて、エンドエフェクタ11によって対象物Wに作用を加える。例えば、作用は、加工である。
【0015】
ロボット1は、エンドエフェクタ11が対象物から受ける反力(以下、「接触力」という)を検出する接触力センサ13をさらに有していてもよい。ロボットアーム12を支持するベース10と、ロボット1の全体を制御するロボット制御装置14とをさらに有していてもよい。
【0016】
ロボット1には、直交3軸のロボット座標系が規定されている。例えば、上下方向にZ軸が設定され、水平方向に互いに直交するX軸及びY軸が設定される。
【0017】
エンドエフェクタ11は、研削装置11aを有し、対象物Wに作用としての研削を加える。例えば、対象物Wは、大きな鋼板又は大型タンクの壁等である。尚、エンドエフェクタ11が対象物Wに加える作用は、研削ではなく、研削又は研磨等であってもよい。エンドエフェクタ11は、作用部の一例である。
【0018】
例えば、研削装置11aは、グラインダ、オービタルサンダ、ランダムオービットサンダ、デルタサンダ又はベルトサンダ等であってもよい。グラインダは、円盤状の研削砥石を回転させるタイプ、円錐状又は円柱状の研削砥石を回転させるタイプ等であってもよい。ここでは、研削装置11aは、グラインダである。
【0019】
ロボットアーム12は、研削装置11aの位置を変更する。さらに、ロボットアーム12は、研削装置11aの姿勢を変更してもよい。ロボットアーム12は、垂直多関節型のロボットアームである。ロボットアーム12は、複数のリンク12aと、複数のリンク12aを接続する関節12bと、複数の関節12bを回転駆動するサーボモータ15(
図2参照)とを有している。ロボットアーム12は、動作部の一例である。
【0020】
尚、ロボットアーム12は、水平多関節型、パラレルリンク型、直角座標型、又は極座標型のロボットアーム等であってもよい。
【0021】
接触力センサ13は、この例では、ロボットアーム12とエンドエフェクタ11との間(具体的には、ロボットアーム12とエンドエフェクタ11との連結部)に設けられている。接触力センサ13は、直交する3軸方向の力と該3軸回りのモーメントを検出する。接触力センサ13は、接触力検出部の一例である。
【0022】
尚、接触力検出部は、接触力センサ13に限定されない。例えば、接触力センサ13は、1軸、2軸又は3軸方向の力のみを検出してもよい。あるいは、接触力検出部は、ロボットアーム12のサーボモータ15の電流を検出する電流センサ又はサーボモータ15のトルクを検出するトルクセンサ等であってもよい。
【0023】
図2は、ロボット制御装置14の概略的なハードウェア構成を示す図である。ロボット制御装置14は、ロボットアーム12のサーボモータ15及び研削装置11aを制御する。ロボット制御装置14は、接触力センサ13の検出信号を受け付ける。ロボット制御装置14は、制御装置3と情報、指令及びデータ等の送受信を行う。ロボット制御装置14は、制御部16と、記憶部17と、メモリ18とを有している。
【0024】
制御部16は、ロボット制御装置14の全体を制御する。制御部16は、各種の演算処理を行う。例えば、制御部16は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部16は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
【0025】
記憶部17は、制御部16で実行されるプログラム及び各種データを格納している。記憶部17は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
【0026】
メモリ18は、データ等を一時的に格納する。例えば、メモリ18は、揮発性メモリで形成される。
【0027】
操作装置2は、
図1に示すように、ユーザが操作する操作部21と、操作部21にユーザから加えられる操作力を検出する操作力センサ23とを有している。操作装置2は、ロボット1を手動運転で操作するための入力を受け付け、入力された情報である操作情報を制御装置3へ出力する。具体的には、ユーザは、操作部21を把持して操作装置2を操作する。その際に操作部21に加えられる力を操作力センサ23が検出する。操作力センサ23によって検出される操作力は、操作情報として制御装置3へ出力される。
【0028】
操作装置2は、ベース20と、ベース20に設けられ、操作部21を支持する支持機構22と、操作装置2の全体を制御する操作制御装置24とをさらに有していてもよい。操作装置2は、制御装置3からの制御によって、操作力に対する反力をユーザに与える。具体的には、操作制御装置24は、制御装置3からの指令を受けて、支持機構22を制御することによって、反力をユーザに感知させる。
【0029】
操作装置2には、直交3軸の操作座標系が規定されている。操作座標系は、ロボット座標系と対応している。つまり、上下方向にZ軸が設定され、水平方向に互いに直交するX軸及びY軸が設定される。
【0030】
支持機構22は、複数のリンク22aと、複数のリンク22aを接続する関節22bと、複数の関節22bを回転駆動するサーボモータ25(
図3参照)とを有している。支持機構22は、操作部21が3次元空間内で任意の位置及び姿勢をとることができるように、操作部21を支持する。操作部21の位置及び姿勢に対応して、サーボモータ25が回転する。サーボモータ25の回転量、即ち、回転角は、一義的に決まる。
【0031】
操作力センサ23は、この例では、操作部21と支持機構22との間(具体的には、操作部21と支持機構22との連結部)に設けられている。操作力センサ23は、直交する3軸方向の力と該3軸回りのモーメントを検出する。操作力センサ23は、操作力検出部の一例である。
【0032】
尚、操作力検出部は、操作力センサ23に限定されない。例えば、操作力センサ23は、1軸、2軸又は3軸方向の力のみを検出してもよい。あるいは、操作力検出部は、支持機構22のサーボモータ25の電流を検出する電流センサ又はサーボモータ25のトルクを検出するトルクセンサ等であってもよい。
【0033】
図3は、操作制御装置24の概略的なハードウェア構成を示す図である。操作制御装置24は、サーボモータ25を制御することによって支持機構22を動作させる。操作制御装置24は、操作力センサ23の検出信号を受け付ける。操作制御装置24は、制御装置3と情報、指令及びデータ等の送受信を行う。操作制御装置24は、制御部26と、記憶部27と、メモリ28とを有している。
【0034】
制御部26は、操作制御装置24の全体を制御する。制御部26は、各種の演算処理を行う。例えば、制御部26は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部26は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
【0035】
記憶部27は、制御部26で実行されるプログラム及び各種データを格納している。記憶部27は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
【0036】
メモリ28は、データ等を一時的に格納する。例えば、メモリ28は、揮発性メモリで形成される。
【0037】
制御装置3は、ロボット1及び操作装置2を制御する。制御装置3は、第1制御と第2制御とを実行する。第1制御は、操作装置2を介した操作に応じてロボットアーム12を制御することによってエンドエフェクタ11に対象物Wへ作用を加えさせると共に、エンドエフェクタ11の動作軌跡に関連する軌跡情報を記録する制御である。第2制御は、第1制御によって記録された軌跡情報に基づいてロボットアーム12を制御することによって、動作軌跡を再現するようにエンドエフェクタ11を移動させて、エンドエフェクタ11に対象物Wへ作用を加えさせる制御である。第2制御において、制御装置3は、軌跡情報に基づいてロボットアーム12を制御する際に、対象物Wへのエンドエフェクタ11の押付力を制御する。
【0038】
図4は、制御装置3の概略的なハードウェア構成を示す図である。制御装置3は、ロボット制御装置14及び操作制御装置24と情報、指令及びデータ等の送受信を行う。制御装置3は、制御部31と、記憶部32と、メモリ33とを有している。
【0039】
制御部3は、制御装置3の全体を制御する。制御部31は、各種の演算処理を行う。例えば、制御部31は、CPU(Central Processing Unit)等のプロセッサで形成されている。制御部31は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)等で形成されていてもよい。
【0040】
記憶部32は、制御部31で実行されるプログラム及び各種データを格納している。記憶部32は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
【0041】
メモリ33は、データ等を一時的に格納する。例えば、メモリ33は、揮発性メモリで形成される。
【0042】
図5は、ロボットシステム100の制御系統の構成を示すブロック図である。
【0043】
ロボット制御装置14の制御部16は、記憶部17からプログラムをメモリ18に読み出して展開することによって、各種機能を実現する。具体的には、制御部16は、入力処理部41と動作制御部42として機能する。
【0044】
入力処理部41は、接触力センサ13及びサーボモータ15から受け取る情報、データ及び指令等を制御装置3に出力する。具体的には、入力処理部41は、接触力センサ13から6軸の力の検出信号を受け取り、該検出信号を制御装置3へ出力する。また、入力処理部41は、サーボモータ15から回転センサ(例えば、エンコーダ)及び電流センサの検出信号を受け取る。入力処理部41は、動作制御部42によるロボットアーム12のフィードバック制御のために該検出信号を動作制御部42へ出力する。また、入力処理部41は、ロボットアーム12の位置情報として該検出信号を制御装置3へ出力する。
【0045】
動作制御部42は、制御装置3から指令位置xdsを受け取り、指令位置xdsに従ってロボットアーム12を動作させるための制御指令を生成する。動作制御部42は、サーボモータ15へ制御指令を出力し、ロボットアーム12を動作させ、研削装置11aを指令位置に対応する位置へ移動させる。このとき、動作制御部42は、入力処理部41からのサーボモータ15の回転センサ及び/又は電流センサの検出信号に基づいて、ロボットアーム12の動作をフィードバック制御する。また、動作制御部42は、研削装置11aは制御指令を出力し、研削装置11aを動作させる。これにより、研削装置11aが対象物Wを研削する。
【0046】
操作制御装置24の制御部26は、記憶部27からプログラムをメモリ28に読み出して展開することによって、各種機能を実現する。具体的には、制御部26は、入力処理部51と動作制御部52として機能する。
【0047】
入力処理部51は、操作力センサ23から受け取る情報、データ及び指令等を制御装置3に出力する。具体的には、入力処理部51は、操作力センサ23から6軸の力の検出信号を受け取り、該検出信号を制御装置3へ出力する。また、入力処理部51は、サーボモータ25から回転センサ(例えば、エンコーダ)及び電流センサの検出信号を受け取る。入力処理部51は、動作制御部52による支持機構22のフィードバック制御のために該検出信号を動作制御部52へ出力する。
【0048】
動作制御部52は、制御装置3から指令位置xdmを受け取り、指令位置xdmに従って支持機構22を動作させるための制御指令を生成する。動作制御部52は、サーボモータ25へ制御指令を出力し、支持機構22を動作させ、操作部21を指令位置に対応する位置へ移動させる。このとき、動作制御部52は、入力処理部51からのサーボモータ25の回転センサ及び/又は電流センサの検出信号に基づいて、支持機構22の動作をフィードバック制御する。これにより、ユーザが操作部21に与える操作力に対して反力が与えられる。その結果、ユーザは、対象物Wから反力を操作部21から疑似的に感じつつ、操作部21を操作することができる。
【0049】
制御装置3の制御部31は、記憶部32からプログラムをメモリ33に読み出して展開することによって、各種機能を実現する。具体的には、制御部31は、操作力取得部61と接触力取得部62と加算部63と力/速度換算部64と第1速度/位置換算部65と第2速度/位置換算部66として機能する。
【0050】
操作力取得部61は、入力処理部51を介して、操作力センサ23の検出信号を受け取り、検出信号に基づいて操作力fmを取得する。操作力取得部61は、操作力fmを加算部63へ入力する。
【0051】
接触力取得部62は、入力処理部41を介して、接触力センサ13の検出信号を受け取り、検出信号に基づいて接触力fsを取得する。接触力取得部62は、接触力fsを加算部63へ入力する。
【0052】
加算部63は、操作力取得部61から入力された操作力fmと接触力取得部62から入力された接触力fsとの和を算出する。ここで、操作力fmと接触力fsとは、反対向きの力なので、操作力fmと接触力fsとは正負の符号が異なる。つまり、操作力fmと接触力fsとが足されることによって、操作力fmの絶対値は小さくなる。
【0053】
力/速度換算部64は、操作力fmと接触力fsとの和である合成力fm+fsを指令速度xd’に換算する。力/速度換算部64は、慣性係数、粘性係数(ダンパ係数)及び剛性係数(バネ係数)を含む運動方程式に基づく運動モデルを用いて指令速度xd’を算出する。具体的には、力/速度換算部64は、以下の運動方程式に基づいて指令速度xd’を算出する。
【0054】
【数1】
ここで、e=xd-xuである。xdは、指令位置である。xuは、後述する軌跡データである。軌跡データが無い場合には、e=xdである。mdは、慣性係数である。cdは、粘性係数である。kdは、剛性係数である。fmは、操作力である。fsは、接触力である。尚、「’」は1回微分を表し、「”」は2回微分を表す。
【0055】
式(1)は線形微分方程式であり、式(1)をxd’について解くと、式(2)のようになる。
【0056】
【数2】
ここで、Aは、fm,fs,md,cd,kd等によって表される項である。
【0057】
式(2)は、記憶部32に格納されている。力/速度換算部64は、記憶部32から式(2)を読み出して指令速度xd’を求め、求められた指令速度xd’を第1速度/位置変換部65と第2速度/位置換算部66へ出力する。指令速度xd’は、エンドエフェクタ11の位置に関連する位置関連情報の一例である。
【0058】
第1速度/位置換算部65は、座標変換された指令速度xd’をロボット座標系を基準として、ロボット1のための指令位置xdsに換算する。例えば、操作装置2の移動量に対するロボット1の移動量の比が設定されている場合、第1速度/位置換算部65は、指令速度xd’から求めた指令位置xdを移動比に応じて逓倍して指令位置xdsを求める。第1速度/位置換算部65は、求めた指令位置xdsをロボット制御装置14、具体的には、動作制御部42へ出力する。
【0059】
第2速度/位置換算部66は、指令速度xd’を操作座標系を基準として、操作装置2のための指令位置xdmに換算する。第2速度/位置換算部66は、求めた指令位置xdmを操作制御装置24、具体的には、動作制御部52へ出力する。指令位置xdmは、エンドエフェクタ11のための指令位置xdsと同様に、指令速度xd’に基づいて求められる。そのため、指令位置xdmは、指令位置xdsと関連している。
【0060】
[ロボットシステムの動作]
次に、このように構成されたロボットシステム100の動作について説明する。
図6は、ロボットシステム100の動作を示すフローチャートである。ロボットシステム100は、ステップS1において第1制御を実行した後、ステップS2において第2制御を実行する。第1制御も第2制御も、研削装置11aによって対象物Wを研削する実作業を行う。ただし、第1制御では、ユーザが操作装置2を介して手動でロボット1を動作制御する。一方、第2制御では、制御装置3が基本的には自動でロボット1を動作制御する。
【0061】
第1制御においては、エンドエフェクタ11(即ち、研削装置11a)が対象物Wを研削する際の、エンドエフェクタ11の動作軌跡に関連する軌跡情報が記録される。
【0062】
第2制御においては、エンドエフェクタ11が第1制御の動作軌跡を再現するように、軌跡情報に基づいてロボットアーム12が制御される。このとき、対象物Wへのエンドエフェクタ11の押付力が制御される。
【0063】
以下に、第1制御及び第2制御について詳しく説明する。
【0064】
〈第1制御〉
第1制御においては、ユーザが操作装置2を操作することによってロボット1に対象物Wに対して実際の作業を実行させる。つまり、ユーザは、操作装置2を操作して、ロボット1によって対象物Wに研削加工を行う。ユーザの操作装置2を介した操作として、操作部21にユーザから加えられる操作力が操作力センサ23によって検出される。ロボットアーム12は、操作力に応じて制御される。
【0065】
具体的には、ユーザが操作装置2を操作すると、ユーザが操作部21を介して加えた操作力を操作力センサ23が検出する。操作力センサ23に検出された操作力は、入力処理部51によって検出信号として制御装置3へ入力される。制御装置3では、操作力取得部61が、検出信号に基づく操作力fmを加算部63へ入力する。
【0066】
このとき、ロボット1の接触力センサ13によって検出される接触力が入力処理部41を介して制御装置3の接触力取得部62に検出信号として入力される。接触力取得部61は、検出信号に基づく接触力fsを加算部63へ入力する。
【0067】
加算部63は、合成力fm+fsを力/速度換算部64へ入力する。力/速度換算部64は、合成力fm+fsを用いて式(2)に基づいて指令速度xd’を求める。
【0068】
ロボット1に関しては、第1速度/位置換算部65が指令速度xd’から指令位置xdsを求める。ロボット制御装置14の動作制御部42は、指令位置xdsに従ってロボットアーム12を動作させ、研削装置11aの位置を制御する。これにより、操作力fmに応じた押付力が対象物Wに加えられつつ、対象物Wが研削装置11aにより研削される。
【0069】
一方、操作装置2に関しては、第2速度/位置換算部66が指令速度xd’から指令位置xdmを求める。操作制御部24の動作制御部52は、指令位置xdmに従って支持機構22を動作させ、操作部21の位置を制御する。これにより、ユーザは接触力fsに応じた反力を感知する。
【0070】
ユーザがこのような操作装置2の操作に基づく実作業を継続し、制御装置3は、その間の軌跡データxuを記憶部32に記録していく。
【0071】
ここで、軌跡データxuとは、エンドエフェクタ11(即ち、研削装置11a)の動作軌跡に関連する軌跡情報である。制御装置3においては、指令位置xdm、指令位置xds及び指令速度xd’が、エンドエフェクタ11の動作軌跡に関連する軌跡情報である。この例では、制御装置3は、指令位置xdmを軌跡データxuとして記憶部32に記録していく。尚、指令位置xds又は指令速度xd’を軌跡データxuとして記憶部32に記録してもよい。
【0072】
さらに、制御装置3は、軌跡データxuを記録する際に、操作力センサ23によって検出される操作力を併せて記録する。この例では、操作力センサ23によって検出される操作力として、操作力取得部61からの操作力fmが記録される。制御装置3は、軌跡データxuと操作力fmとを互いに紐づけて操作履歴として記憶部32に記録していく。
【0073】
〈第2制御〉
第2制御は、第1制御が完了後に実行される。例えば、第1制御は、対象物Wの一部に対して、又は、複数の対象物Wのうちの一の対象物Wに対して実行される。例えば、対象物Wとしての大きな鋼板を研削する場合には、鋼板の一部に対して第1制御による実作業が行われる。そして、鋼板の残りの部分に対して、第2制御による実作業が行われる。比較的小さな対象物Wを研削する場合には、1つの対象物Wに対して第1制御による実作業が行われる。そして、別の対象物Wに対して第2制御による実作業が行われる。
【0074】
第2制御では、制御装置3は、軌跡情報及び操作力に基づいてロボットアーム12を制御する。この例では、ロボットアーム12の制御に用いられる操作力fmは、第1制御によって記録された操作力fm(以下、「履歴操作力fm」と称する)である。
【0075】
詳しくは、第2制御では、制御装置3は、軌跡データxu及び履歴操作力fmに基づいて、ロボット1のための指令位置xdsを生成する。このとき、ユーザによる操作装置2の操作は行われない。
【0076】
具体的には、力/速度換算部64は、軌跡データxuを履歴速度xu’に変換して式(2)に代入することよって指令速度xd’を求める。このとき、力/速度換算部64は、履歴操作力fmも式(2)に代入する。尚、接触力fsは、ロボット1が実際に動作したときの実際の接触力fs、即ち、現在の接触力fsである。
【0077】
こうして求められた指令速度xd’に基づいて、最終的に指令位置xdsが生成される。ロボット制御装置14は、生成された指令位置xdsに基づいてロボット1を制御し、研削装置11aを位置制御する。
【0078】
尚、制御装置3は、操作装置2のための指令位置xdmを生成又は出力しない。つまり、操作装置2は、操作部21の位置制御を行わない。
【0079】
このように、第2制御においては、エンドエフェクタ11、即ち、研削装置11aは、履歴操作力fmの影響を受けつつ、軌跡データxuを再現するように移動して、対象物Wを研削加工する。つまり、研削装置11aは、単に軌跡データxuを再現するのではなく、履歴操作力fmに応じた押付力で対象物Wに押し付けられる。その結果、ロボットシステム100は、実際のユーザによる複雑な操作及び複雑な力加減を容易に模倣して研削装置11aを動作させることができる。
【0080】
〈第2制御における各種機能〉
ロボットシステム100は、このような制御を基本に各種機能を備えている。以下、ロボットシステム100の各種機能について説明する。
【0081】
1つの機能として、ロボットシステム100は、式(1)において剛性係数kdの有無を選択可能に構成されている。すなわち、エンドエフェクタ11及びロボットアーム12の運動モデルにおける弾性力の有無が選択される。剛性係数kd=0とした場合、運動モデルにおいては減衰力の作用が大きくなる。以下、剛性係数kd=0とした場合の制御を減衰制御と称し、剛性係数kdが0でない場合の制御を弾性制御と称する。つまり、ロボットシステム100は、減衰制御と弾性制御とを切り替えることができる。
【0082】
〈減衰制御〉
まず、基本的な減衰制御について説明する。
図7は、減衰制御における研削装置11aの動作を示す模式図である。例えば、
図7に示す対象物Wを研削する場合の研削装置11aの動作について説明する。軌跡データxuは、Y成分及びZ成分が一定で、X成分だけが変化するような直線状の軌跡であるとする。それに対し、対象物Wの表面に膨出部分w1が存在するとする。
【0083】
ロボット1は、第2制御においては、軌跡データxuと履歴操作力fmとを再現するように研削装置11aを移動させる。膨出部分w1のように軌跡データxuから離れた部分においては、粘性係数kdの影響、即ち、粘性力の作用によって、研削装置11aは、履歴操作力fmに応じて膨出部分w1の表面を倣うように移動したり、X方向の速度を落としつつ移動したりする。つまり、研削装置11aは、軌跡データxuから少し逸れるものの、履歴操作力fmに応じた押付力を実現するように移動する。
【0084】
尚、軌跡データxuの再現だけで操作力fmを考慮しない場合には、研削装置11aは、軌跡データxuに忠実に追従して移動する。そのため、研削装置11aが膨出部分w1に接触しても、ロボット1は研削装置11aを軌跡データxuに忠実に追従させようとする。それにより、研削装置11aに過大な接触力fsが作用する虞がある。
【0085】
このように、減衰制御においては、研削装置11aは、速度を落としながら膨出部分w1の形状を倣うように移動、即ち、研削していく。その結果、研削装置11aに過大な接触力fsが作用することが回避される。
【0086】
〈制御方向選択〉
ここで、減衰制御を例にして、ロボットシステム100の別の機能を説明する。ロボットシステム100は、軌跡データxu及び履歴操作力fmに含まれる複数の方向成分のうち、軌跡データxuの再現を行う方向成分と履歴操作力fmの制御を行う方向成分とを選択可能に構成されている。
【0087】
つまり、軌跡データxu及び履歴操作力fmはそれぞれ、複数の方向の成分として、X方向成分、Y方向成分、Z方向成分、X軸回り成分、Y軸回り成分、及び、Z軸回り成分を含んでいる。制御装置3は、第2制御において、軌跡データxuに含まれる複数の方向成分及び履歴操作力fmに含まれる複数の方向成分のうちロボットアーム12の制御に用いる方向の成分を選択可能に構成されている。すなわち、軌跡データxuの再現において、複数の方向成分のうちどの方向成分の軌跡データxuを再現するかを設定することができる。同様に、対象物Wへの研削装置11aの押付力の制御において、複数の方向成分のうちどの方向成分の押付力を制御するかを設定することができる。
【0088】
例えば、制御装置3は、第2制御において、履歴操作力fmに含まれる複数の方向成分のうち一部の方向成分(例えば、Z軸方向成分)をロボットアーム12の制御に用いると共に、軌跡データxuに含まれる複数の方向成分のうち履歴操作力fmの一部の方向成分以外の方向成分(例えば、Z軸方向成分以外の成分)をロボットアーム12の制御に用いる。つまり、Z軸方向以外については軌跡データxuが再現されるように研削装置11aが移動し、Z軸方向については履歴操作力fmに応じて研削装置11aが移動する。
【0089】
ここでは、減衰制御を例に制御方向選択の機能について説明するが、制御方向選択の機能は減衰制御に限定されるものではない。
【0090】
図8は、制御方向選択機能が実行された減衰制御における研削装置11aの動作を示す模式図である。例えば、
図8に示すように、軌跡データxuは、Y成分及びZ成分が一定で、X成分だけが変化するような直線状の軌跡である。対象物Wの表面は、Z方向へ凹凸を有する形状であるとする。
【0091】
この場合、研削装置11aは、Z方向へは履歴操作力fmを再現しつつ、XY方向へは軌跡データxuを追従するように移動する。研削装置11aは、式(1)の粘性係数cdの影響によって、Z方向へは、履歴操作力fm+接触力fs=0となるように動作する。その結果、研削装置11aは、軌跡データxuと実際の対象物Wの表面とのZ方向の誤差を吸収しつつ、XY方向へは軌跡データxuに従って移動する。
【0092】
このように、Z方向にだけ押付力の制御を行ってXY方向へは軌跡データxuの再現を行うことによって、Z方向への対象物Wの個体差を吸収しつつ、XY方向へは軌跡データxuに従って研削装置11aを動作させることができる。
【0093】
〈弾性制御〉
まず、基本的な弾性制御について説明する。
図9は、弾性制御における研削装置11aの動作を示す模式図である。例えば、
図9に示す対象物Wを研削する場合の研削装置11aの動作について説明する。対象物Wの表面は、Z方向への凹凸をX方向に亘って有する形状をしている。軌跡データxuは、Y成分が一定で、X成分の変化に伴ってZ成分へ上下動する軌跡であり、対象物Wの表面と同様にZ方向へ波打つ形状であるとする。ただし、軌跡データxuのZ方向への上下動は、対象物Wの表面のZ方向への上下動に比べて小さい。
【0094】
この場合、ロボット1は、粘性係数cdの影響に加えて、剛性係数kdの影響に基づいて動作する。具体的には、
図9に示すように、研削装置11aは、対象物Wの表面に倣って移動しつつ、対象物Wの表面と軌跡データxuとの差が大きい部分では、対象物Wへの押付力が大きくなり軌跡データxuに近い位置を移動しようとする。その結果、研削装置11aの切り込み量が大きくなり、対象物Wは、軌跡データxuの形状に近づくように研削される。
【0095】
別の例として、
図10に示す対象物Wを研削する場合について説明する。
図10は、別の例の弾性制御における研削装置11aの動作を示す模式図である。
図10は、XY平面に拡がる対象物WをZ方向へ見たときの図である。軌跡データxuは、Z方向へ見た場合に、略円弧状の形状をしている。対象物Wの表面において軌跡データxuの上に障害物Sが存在している。
【0096】
この場合、研削装置11aは、軌跡データxuに従って移動して障害物Sに到達すると、剛性係数kdの影響に基づいて、軌跡データxuの形状に近づくように障害物Sへの押付力が強くなる。それと同時に、粘性係数cdの影響も働くため、研削装置11aは、障害物Sに強く押し付けられつつ、障害物Sの表面に倣って進む。研削装置11aは、障害物Sを通り過ぎると、剛性係数kdの影響に基づいて軌跡データxuの形状に近づいていく。最終的には、研削装置11aは、軌跡データxuに従って移動する。
【0097】
このように弾性制御においては、弾性力と減衰力とが協調して、研削装置11aが制御される。障害物S等の外乱が存在する場合でも、研削装置11aは、外乱を適切に回避して、軌跡データxuに追従して移動することができる。
【0098】
〈剛性係数の変化〉
次に、弾性制御における更なる機能として、ロボットシステム100は、弾性制御において剛性係数kdを履歴操作力fm及び接触力fsに応じて変化させることができる。この機能は、設定によりON/OFFの切替ができる。
【0099】
例えば、剛性係数kdは、以下の式に基づいて算出される。
【0100】
【数3】
ここで、kmaxは、剛性係数の最大値である。fm-maxは、操作力の制限値である。fs-maxは、接触力の制限値である。
【0101】
式(3)は、記憶部32に格納されている。力/速度換算部64は、記憶部32から式(2)と共に式(3)を読み出して指令速度xd’を求める。
【0102】
式(3)によれば、剛性係数kdは、
図11のように変化する。
図11は、履歴操作力fm及び接触力fsの変化に対する剛性係数kdの変化を表すグラフである。例えば、操作座標系及びロボット座標系においてZ軸の上向きを正とし、Z軸の下向きを負とすると、通常は、履歴操作力fmは負の値となり、接触力fsは正の値となる。同様に、制限値fm-maxmも負の値となり、制限値fs-maxも正の値となる。
図11では、履歴操作力fm及び接触力fsは、それぞれ絶対値で表されている。グラフにおける横軸は、特定の意味を有さない。例えば、横軸は時間であってもよい。グラフにおいて、履歴操作力fmの絶対値は二点鎖線で表され、接触力fsの絶対値は破線で表され、剛性係数kdは実線で表される。このグラフは、履歴操作力fmの絶対値の変化に対する剛性係数kdの変化、及び、接触力fsの絶対値の変化に対する剛性係数kdの変化を示すためのものである。グラフにおける履歴操作力fm及び接触力fsの変化は、実際の履歴操作力fm及び接触力fsの変化を示すものではない。
【0103】
まず、接触力fsの絶対値が0で一定で、履歴操作力fmが負の方向へ線形的に大きくなる、即ち、履歴操作力fmの絶対値が線形的に増加するとする。その場合、剛性係数kdは、グラフに示すように増加する。履歴操作力fmの絶対値が制限値fm-maxの絶対値に達すると、剛性係数kdは最大となる。
【0104】
次に、履歴操作力fmの絶対値が制限値fm-maxの絶対値で一定で、接触力fsが正の方向へ線形的に大きくなる、即ち、接触力fsの絶対値が線形的に増加するとする。その場合、剛性係数kdは、グラフに示すように減少する。接触力fsの絶対値が制限値fs-maxの絶対値に達すると、剛性係数kdは0となる。
【0105】
このグラフからわかるように、履歴操作力fmの絶対値が大きくなる、即ち、履歴操作力fmが力として大きくなると、剛性係数kdが大きくなる傾向にある。その結果、研削装置11aが対象物Wに強く押し付けられることになる。一方、接触力fsの絶対値が大きくなる、即ち、接触力fsが力として大きくなると、剛性係数kdが小さくなる傾向にある。つまり、接触力fsが過大になると、研削装置11aの押付力が小さくなる。
【0106】
このように、弾性制御において剛性係数kdを履歴操作力fm及び接触力fsに応じて変化させることによって、対象物Wへの研削装置11aの押付力を履歴操作力fm及び接触力fsに応じて適宜変化させることができる。
【0107】
さらに、このときの履歴操作力fmが操作履歴として記録されているものであるため、ユーザの実作業における履歴操作力fmに応じて剛性係数kdが調整される。例えば、実作業においてユーザが研削装置11aを強く押し付けた部分では、第2制御においても剛性係数kdが大きくなって研削装置11aの押付力が大きくなる。
【0108】
〈第2制御の変形例〉
続いて、第2制御の変形例について説明する。
図12は、変形例に係る第2制御における研削装置11aの動作を示す模式図である。
【0109】
変形例に係る第2制御においても、制御装置3は、軌跡データxu及び操作力fmに基づいて、ロボット1のための指令位置xdsを生成する。その際に用いられる操作力fmは、第2制御中の操作部21の操作に基づいて操作力センサ23によって検出される操作力fmである。つまり、ユーザは、第2制御中に操作装置2を操作する。制御装置3は、第2制御中にリアルタイムで操作力センサ23によって検出される操作力fmを指令位置xdsの生成に用いる。
【0110】
具体的には、制御装置3は、前述のように、軌跡データxuに基づいて、ロボット1のための指令位置xdsを生成する。力/速度換算部64は、軌跡データxuを履歴速度xu’に変換して式(2)に代入することよって指令速度xd’を求める。このとき、操作履歴として操作力fmが記録されている場合には、力/速度換算部64は、記録されている操作力fmを式(2)に代入する。
【0111】
こうして求められた指令速度xd’に基づいて、最終的に指令位置xdsが生成される。ロボット制御装置14は、生成された指令位置xdsに基づいてロボット1を制御し、研削装置11aが位置制御される。
【0112】
これにより、研削装置11aは、軌跡データxuに追従しつつ研削を実行する。操作履歴に操作力fmが記録されている場合には、研削装置11aは、さらに操作力fmの影響を受けつつ移動する。
【0113】
ユーザは、軌跡データxu等の操作履歴の再現中に操作装置2を操作することによって、操作力fmを追加することができる。
【0114】
例えば、
図12に示すような対象物Wを研削する場合について説明する。
図12は、変形例に係る第2制御における研削装置11aの動作を示す模式図である。対象物Wの表面は、Z方向への凹凸をX方向に亘って有する形状をしている。軌跡データxuは、Y成分が一定で、X成分の変化に伴ってZ成分へ上下動する軌跡であり、対象物Wの表面と同様にZ方向へ波打つ形状であるとする。
【0115】
通常は、研削装置11aは、軌跡データxuに追従するように研削を実行する。ユーザは、研削装置11aの研削動作を観察しながら、対象物Wへの研削装置11aの押付力を強くしたい場合には、操作装置2を操作して操作力fmを追加することができる。制御装置3は、式(2)に基づいて指令速度xd’を求める際に、追加の操作力fmも式(2)へ代入する。これにより、研削装置11aの押付力が大きくなるように指令位置xdsが調整される。このように、研削装置11aの押付力がリアルタイムで調整される。
【0116】
この例では、第2制御中は、制御装置3は、操作装置2のための指令位置xdmを生成又は出力しない。つまり、操作装置2の操作部21は停止している。ユーザは、停止した操作部21を必要に応じて操作する。操作部21が停止しているので、ユーザは、追加する操作力fmを容易に調整することができる。
【0117】
ただし、制御装置3は、操作装置2のための指令位置xdmを生成して、操作装置2に指令位置xdmを出力してもよい。この場合、ユーザは、操作部21を把持することによって対象物Wからの反力を感知することができる。つまり、ユーザは、対象物Wからの反力を感知しつつ、操作力fmを追加することができる。
【0118】
以上のように、ロボットシステム100は、ユーザに操作される操作装置2(マスタ装置)と、対象物Wに作用を加えるエンドエフェクタ11(作用部)とエンドエフェクタ11を動作させるロボットアーム12(動作部)とを有するロボット1(スレーブ装置)と、ロボット1を制御する制御装置3とを備え、制御装置3は、操作装置2を介した操作に応じてロボットアーム12を制御することによってエンドエフェクタ11に対象物Wへ作用を加えさせると共に、エンドエフェクタ11の動作軌跡に関連する軌跡情報、即ち、軌跡データxuを記録する第1制御と、第1制御によって記録された軌跡データxuに基づいてロボットアーム12を制御することによって、動作軌跡を再現するようにエンドエフェクタ11を移動させて、エンドエフェクタ11に対象物Wへ作用を加えさせる第2制御とを実行し、第2制御において、制御装置3は、軌跡データxuに基づいてロボットアーム12を制御する際に、対象物Wへのエンドエフェクタ11の押付力を制御する。
【0119】
換言すると、ユーザに操作される操作装置2と、対象物Wに作用を加えるエンドエフェクタ11とエンドエフェクタ11を動作させるロボットアーム12とを有するロボット1とを備えるロボットシステム100の制御方法は、操作装置2を介した操作に応じてロボットアーム12を制御することによってエンドエフェクタ11に対象物Wへ作用を加えさせると共に、エンドエフェクタ11の動作軌跡に関連する軌跡情報、即ち、軌跡データxuを記録する第1制御を実行することと、第1制御によって記録された軌跡データxuに基づいてロボットアーム12を制御することによって、動作軌跡を再現するようにエンドエフェクタ11を移動させて、エンドエフェクタ11に対象物Wへ作用を加えさせる第2制御を実行することとを含み、第2制御において、軌跡データxuに基づいてロボットアーム12を制御する際に、対象物Wへのエンドエフェクタ11の押付力を制御する。
【0120】
これらの構成によれば、第1制御においては、ユーザの操作装置2の操作に応じてロボットアーム12が制御されることによってエンドエフェクタ11が対象物Wへ作用を加えると共に、このときのエンドエフェクタ11の軌跡データxuが記録される。そして、第2制御においては、第1制御で記録された軌跡データxuに基づいてロボットアーム12が制御されることによってエンドエフェクタ11が対象物Wへ作用を加える。このとき、エンドエフェクタ11は、対象物Wへのエンドエフェクタ11の押付力が制御されつつ、動作軌跡を概ね再現するように移動する。これにより、エンドエフェクタ11は、第1制御においてユーザが操作装置2を介して手動でロボットアーム12を制御した場合の動作軌跡を概ね再現するように移動すると共に、その際の対象物Wへのエンドエフェクタ11の押付力が制御される。その結果、ロボットシステム100は、実際のユーザによる複雑な操作及び複雑な力加減を容易に模倣した研削装置11aの動作を再現することができる。
【0121】
また、操作装置2は、ユーザが操作する操作部21と、操作部21にユーザから加えられる操作力を検出する操作力センサ23(操作力検出部)とを有し、制御装置3は、第1制御において、操作装置2を介した操作として、操作力センサ23によって検出される操作力に応じてロボットアーム12を制御し、第2制御において、軌跡データxuに加えて操作力に基づいてロボットアーム12を制御する。
【0122】
この構成によれば、第2制御においては、軌跡データxuに加えて、ユーザからの操作力を考慮することによって、対象物Wへのエンドエフェクタ11の押付力が制御される。操作力は、対象物Wへのエンドエフェクタ11の押付力に直結する力であり、そのため、第1制御においてロボットアーム12の制御に用いられるものである。つまり、第2制御におけるロボットアーム12の制御に操作力を考慮することによって、対象物Wへのエンドエフェクタ11の押付力を制御しやすくなる。
【0123】
一例として、制御装置3は、第1制御において、軌跡データxuを記録する際に、操作力センサ23によって検出される操作力fmを併せて記録し、第2制御におけるロボットアーム12の制御に用いられる操作力fmは、第1制御によって記録された操作力fmである。
【0124】
この構成によれば、第2制御におけるロボットアーム12の制御に用いられる操作力fmは、第1制御において軌跡データxuを記録する際に併せて記録された操作力センサ23の操作力fmである。つまり、第2制御において再現すべき軌跡データxuが生成された際の操作力fmを用いて、第2制御において、対象物Wへのエンドエフェクタ11の押付力が制御される。その結果、第2制御においては、第1制御における軌跡データxuと操作力fmとが再現される。
【0125】
さらに、軌跡データxu及び操作力fmはそれぞれ、複数の方向の成分を含み、制御装置3は、第2制御において、軌跡データxuに含まれる複数の方向の成分及び操作力fmに含まれる複数の方向の成分のうちロボットアーム12の制御に用いる方向の成分を選択可能に構成されている。
【0126】
この構成によれば、軌跡データxuの再現を行う方向及び操作力fmによるエンドエフェクタ11の押付力の制御を行う方向をそれぞれ選択することができる。つまり、或る方向へは軌跡データxuの再現を優先的に行い、別の方向へはエンドエフェクタ11の押付力の制御を優先的に行い、また別の方向へは軌跡データxuの再現及びエンドエフェクタ11の押付力の制御の両方を行うことができる。対象物W及び作業内容によっては、軌跡データxuの再現を優先的に行いたい方向、及び、エンドエフェクタ11の押付力の制御を優先的に行いたい方向が決まっている場合がある。ロボットシステム100は、そのような状況に柔軟に対応することができる。
【0127】
また、第2制御におけるロボットアーム12の制御に操作力fmを用いる場合の別の例として、第2制御におけるロボットアーム12の制御に用いられる操作力fmは、第2制御中の操作装置2の操作に基づいて操作力センサ23によって検出される操作力fmであってもよい。
【0128】
この構成によれば、第2制御において軌跡データxuを再現するようにエンドエフェクタ11を位置制御しているときに、リアルタイムで操作装置2の操作によって入力される操作力fmに基づいて対象物Wへのエンドエフェクタ11の押付力が調整される。つまり、ユーザは、第1制御における操作履歴に基づくエンドエフェクタ11の位置制御を観察しつつ、必要に応じて操作装置2を操作することによってエンドエフェクタ11の押付力をリアルタイムで調整することができる。
【0129】
また、ロボットシステム100は、対象物Wからエンドエフェクタ11へ作用する反力である接触力fsを検出する接触力センサ13(接触力検出部)をさらに備え、制御装置3は、第1制御及び第2制御において、慣性係数md、粘性係数cd及び剛性係数kdを含む運動方程式に基づくエンドエフェクタ11及びロボットアーム12の運動モデルを用いることによって、操作力fm及び接触力fsに応じてロボットアーム12を制御するように構成されている。
【0130】
この構成によれば、エンドエフェクタ11及びロボットアーム12の仮想的な慣性、粘性及び弾性を考慮しつつ、ロボットアーム12を制御することができる。
【0131】
例えば、制御装置3は、第2制御において、剛性係数kdの有無を選択可能に構成されている。
【0132】
この構成によれば、運動モデルにおいて、エンドエフェクタ11及びロボットアーム12の弾性を考慮するか否かを選択することができる。例えば、弾性を考慮しない場合には、運動モデルは、粘性係数cdに基づく減衰力が支配的なモデルとなる。このようなモデルにおいては、対象物Wの表面と軌跡データxuが示す軌跡に差がある場合には、研削装置11aは、操作力fmに応じて対象物Wの表面に倣うように移動する。
【0133】
さらに、制御装置3は、第2制御において、剛性係数kdを操作力fm及び接触力fsに応じて変化させる。
【0134】
この構成によれば、操作力fm及び接触力fsに応じて剛性係数kdを変化させることによって、エンドエフェクタ11の押付力を操作力fm及び接触力fsに対応するように制御することができる。具体的には、操作力fmが大きいほど、及び/又は、接触力fsが小さいほど剛性係数kdを大きくすることによって、エンドエフェクタ11の押付力を大きくすることができる。逆に、操作力fmが小さいほど、及び/又は、接触力fsが大きいほど、剛性係数kdを小さくすることによって、エンドエフェクタ11の押付力を小さくすることができる。さらに、操作力fm及び接触力fsに応じて剛性係数kdを制限することによって接触力fm又は接触力fsが大き過ぎる場合には剛性係数kdを制限して、エンドエフェクタ11の破損を防止することもできる。
【0135】
また、ロボットシステム100は、対象物2からエンドエフェクタ11へ作用する反力である接触力を検出する接触力センサ13をさらに備え、制御装置3は、操作力fm及び接触力fsに基づいてエンドエフェクタ11の位置に関する位置関連情報、例えば、指令速度xd’を算出し、位置関連情報に基づいてエンドエフェクタ11の指令位置xdsとエンドエフェクタ11の指令位置xdsと関連する、操作部21の指令位置xdmとを生成し、エンドエフェクタ11の指令位置xdsに基づいてロボットアーム12を制御する一方、操作部21の指令位置xdmに基づいて操作装置2を制御し、軌跡情報は、位置関連情報、エンドエフェクタ11の指令位置xds及び操作部21の指令位置xdmのうちの少なくとも1つである。
【0136】
《その他の実施形態》
以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【0137】
例えば、第2制御において、対象物Wへのエンドエフェクタ11の押付力を制御するために用いる操作力は、第1制御による履歴操作力fm、及び、第2制御中に操作部21の操作に基づく操作力fmに限定されない。例えば、予め設定された操作力fmが、対象物Wへのエンドエフェクタ11の押付力を制御するために用いられる、即ち、式(2)に代入されてもよい。つまり、対象物Wへのエンドエフェクタ11の押付力を制御するために用いられる操作力は、操作装置2を介した操作力ではなく、設定された操作力であってもよい。
【0138】
また、第1制御において記録される軌跡データxuは、指令位置xdmに限定されず、指令位置xds又は指令速度xd’であってもよい。さらに、第1制御において記録される軌跡データxuは、エンドエフェクタ11の位置に関連する位置関連情報であってもよい。前述の例では、合成力fm+fsから指令速度xd’が算出されており、指令速度xd’が位置関連情報に相当する。ただし、合成力fm+fsから指令速度指令位置xdが算出される場合には、指令位置xdが位置関連情報に相当する。
【0139】
前述の合成力fm+fsから指令位置xds及び指令位置xdmを算出する方法は、一例に過ぎない。例えば、運動モデルは一例に過ぎず、異なる運動モデルを用いてもよい。
【0140】
前述のブロック図は一例であり、複数のブロックを1つのブロックとして実現したり、1つのブロックを複数のブロックに分割したり、一部の機能を別のブロックに移したりしてもよい。
【0141】
本開示の技術は、前記制御方法を実行するためのプログラムであってもよく、前記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、前記プログラムは、インターネット等の伝送媒体を介して流通させることができるものであってもよい。
【0142】
本実施形態で開示された構成の機能は、電気回路又は処理回路を用いて実行されてもよい。プロセッサは、トランジスタ及びその他の回路を含む処理回路等である。本開示において、ユニット、コントローラ又は手段は、記載した機能を実行するためのハードウェア又はプログラムされたものである。ここで、ハードウェアは、本実施形態で開示された機能を実行するように構成若しくはプログラムされた、本実施形態で開示されたもの又は公知のハードウェアである。ハードウェアが、プロセッサ又はコントローラの場合、回路、手段又はユニットは、ハードウェアとソフトウェアの組み合わせであり、ソフトウェアは、ハードウェア及び/又はプロセッサを構成するために用いられる。
【符号の説明】
【0143】
100 ロボットシステム
1 ロボット(スレーブ装置)
11 エンドエフェクタ(作用部)
12 ロボットアーム(動作部)
13 接触力センサ(接触力検出部)
2 操作装置(マスタ装置)
21 操作部
23 操作力センサ(操作力検出部)
3 制御装置
W 対象物