(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】操作部を有するロボットを備えるロボットシステム、及びロボットを制御する方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20240814BHJP
B25J 13/08 20060101ALI20240814BHJP
G05B 19/423 20060101ALI20240814BHJP
【FI】
B25J9/22 A
B25J13/08 Z
G05B19/423
(21)【出願番号】P 2019185439
(22)【出願日】2019-10-08
【審査請求日】2022-06-16
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】顧 義華
(72)【発明者】
【氏名】佐藤 貴之
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2017-164876(JP,A)
【文献】特開2018-118340(JP,A)
【文献】特開平05-237784(JP,A)
【文献】特開2012-157946(JP,A)
【文献】米国特許出願公開第2006/0178775(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
操作部を有するロボットと、
前記操作部に加えられた操作力を検出する力センサと、
前記力センサが検出した前記操作力の検出値が所定の閾値を超えたときに、所定の移動量だけ前記ロボットを移動させる寸動動作を開始する寸動動作実行部と、
前記寸動動作実行部が前記寸動動作を実行しているときに、前記移動量を含む寸動動作パラメータを、前記力センサが検出した前記検出値に基づいて決定するパラメータ決定部と、を備え、
前記寸動動作実行部は、前記寸動動作を開始した後に前記ロボットを移動させた移動量が、前記パラメータ決定部が決定した前記移動量に達したときに、該寸動動作を停止する、ロボットシステム。
【請求項2】
前記寸動動作実行部は、前記力センサが検出した前記検出値が、予め定めた下限値よりも小さいとき、又は、予め定めた上限値よりも大きいときは、前記寸動動作を実行しない、請求項1に記載のロボットシステム。
【請求項3】
前記力センサが検出した前記検出値の変化の度合いを取得する変化取得部をさらに備え、
前記寸動動作実行部は、前記変化の度合いが、予め定めた下限値よりも小さいとき、又は、予め定めた上限値よりも大きいときは、前記寸動動作を実行しない、請求項1又は2に記載のロボットシステム。
【請求項4】
前記寸動動作実行部は、前記寸動動作において、前記力センサが検出した前記操作力の方向、又は該操作力の方向から所定の角度だけずらした方向へ前記ロボットを移動させる、請求項1~3のいずれか1項に記載のロボットシステム。
【請求項5】
前記パラメータ決定部は、
前記力センサが検出した前記検出値に応じて前記寸動動作パラメータを決定するか、
又は、
前記検出値が所定の閾値を継続して超えている時間に応じて前記寸動動作パラメータを決定す
る、請求項1~4のいずれか1項に記載のロボットシステム。
【請求項6】
操作部を有するロボットと、
前記操作部に加えられた操作力を検出する力センサと、
前記力センサが検出した前記操作力に応じて、決められた移動量だけ前記ロボットを移動させる寸動動作を実行する寸動動作実行部と、
前記移動量、
及び、前記寸動動作において前記ロボットを移動させる移動方向、を含む寸動動作パラメータを、前記力センサが検出した前記操作力の検出値に基づいて決定するパラメータ決定部と、を備え、
前記力センサが前記操作力を複数回に亘って繰り返し検出した場合に、前記パラメータ決定部は、
所定の回に検出された前記検出値、又は、該検出値が所定の閾値を継続して超えている時間、に応じて、前記寸動動作パラメータとしての前記移動量を決定し、
前記所定の回とは別の回に検出された前記操作力の方向を、前記寸動動作パラメータとしての前記移動方向として決定する、ロボットシステム。
【請求項7】
操作部を有するロボットと、
前記操作部に加えられた操作力を検出する力センサと、
前記力センサが検出した前記操作力に応じて、決められた移動量だけ前記ロボットを移動させる寸動動作を実行する寸動動作実行部と、
前記移動
量を含む寸動動作パラメータを、前記力センサが検出した前記操作力の検出値に基づいて決定するパラメータ決定部と、を備え、
前記寸動動作実行部は、前記寸動動作において、前記力センサが検出した前記操作力の方向へ前記ロボットを移動させ、
前記パラメータ決定部は、前記操作力の方向と、予め定められた目標方向との間の角度と、前記操作力の方向への前記移動量の、該目標方向の成分である目標移動量と、を用いて所定の演算をすることにより、前記寸動動作パラメータとしての前記移動量を決定する、ロボットシステム。
【請求項8】
操作部を有するロボットを制御する方法であって、
前記操作部に加えられた操作力を力センサによって検出し、
前記力センサが検出した前記操作力の検出値が所定の閾値を超えたときに、所定の移動量だけ前記ロボットを移動させる寸動動作を開始し、
前記寸動動作を実行しているときに、前記移動量を含む寸動動作パラメータを、前記力センサが検出した前記検出値に基づいて決定し、
前記寸動動作を開始した後に前記ロボットを移動させた移動量が、決定した前記移動量に達したときに、該寸動動作を停止する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作部を有するロボットを備えるロボットシステム、及びロボットを制御する方法に関する。
【背景技術】
【0002】
ロボットに設けられた操作部に加えられた操作力に応じてロボットを動作させる、いわゆるリードスルー機能が実装されたロボットシステムが知られている(例えば、特許文献1)
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
操作力に応じてロボットを動作させるロボットシステムにおいて、該ロボットの位置を、より高精度に調整することが求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、ロボットシステムは、操作部を有するロボットと、操作部に加えられた操作力を検出する力センサと、力センサが検出した操作力に応じて、決められた移動量だけロボットを移動させる寸動動作を実行する寸動動作実行部とを備える。本開示の他の態様において、操作部を有するロボットを制御する方法では、操作部に加えられた操作力を力センサによって検出し、力センサが検出した操作力に応じて、決められた移動量だけロボットを移動させる寸動動作を実行する。
【発明の効果】
【0006】
本開示によれば、教示等において、ロボットの位置を、オペレータによる操作力に応じて、高精度に調整することが可能となる。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係るロボットシステムの図である。
【
図2】
図1に示すロボットシステムのブロック図である。
【
図3】
図1に示すロボットシステムの寸動動作モードにおける動作フローの一例を示すフローチャートである。
【
図4】他の実施形態に係るロボットシステムのブロック図である。
【
図5】
図4に示すロボットシステムの設定動作モードにおける動作フローの一例を示すフローチャートである。
【
図6】
図4に示すロボットシステムの設定動作モードにおける動作フローの他の例を示すフローチャートである。
【
図7】
図4に示すロボットシステムの設定動作モードにおける動作フローのさらに他の例を示すフローチャートである。
【
図8】
図4に示すロボットシステムの寸動動作モードにおける動作フローの一例を示すフローチャートである。
【
図9】
図4に示すロボットシステムの寸動動作モードにおける動作フローの他の例を示すフローチャートである。
【
図10】
図4に示すロボットシステムの寸動動作モードにおける動作フローのさらに他の例を示すフローチャートである。
【
図11】寸動動作時の移動量を、所定の演算により決定する方法を説明するための図である。
【発明を実施するための形態】
【0008】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、
図1及び
図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、力センサ14、制御装置16、及び入力装置17(
図2)を備える。
【0009】
本実施形態においては、ロボット12は、垂直多関節ロボットであって、ロボットベース18、旋回胴20、ロボットアーム22、手首部24、エンドエフェクタ26、および操作部28を有する。ロボットベース18は、ワークセルの床に固定されている。旋回胴20は、ロボットベース18に鉛直軸周りに旋回可能に設けられている。ロボットアーム22は、旋回胴20に回動可能に取り付けられた下腕部30と、該下腕部30の先端に回動可能に取り付けられた上腕部32とを有する。手首部24は、上腕部32の先端に連結され、エンドエフェクタ26を回動可能に支持する。
【0010】
本実施形態においては、エンドエフェクタ26は、ロボットハンドであって、ベース部34と、該ベース部34に開閉可能に設けられた複数の指部36とを有する。エンドエフェクタ26は、指部36を開閉することによって、物品を把持したり、解放したりすることができる。なお、エンドエフェクタ26は、ロボットハンドに限らず、切削工具、レーザ加工ヘッド、溶接トーチ、塗料塗布器等、如何なる作業のための装置であってもよい。操作部28は、オペレータAが把持し易い形状(例えば、オペレータAの指を受容する凹部等)を有するハンドルであって、ベース部34に対して固定されている。
【0011】
ロボット12の各コンポーネント(ロボットベース18、旋回胴20、ロボットアーム22、手首部24)には、サーボモータ(図示せず)が内蔵されている。これらサーボモータは、制御装置16からの指令に応じて、ロボット12の各可動コンポーネント(旋回胴20、ロボットアーム22、手首部24)を駆動軸周りに回動させる。
【0012】
ロボット12には、ロボット座標系CRが設定されている。ロボット座標系CRは、ロボット12を自動制御するために基準となる座標系である。本実施形態においては、ロボット座標系CRは、その原点がロボットベース18の中心に配置され、そのz軸が旋回胴20の旋回軸と一致するように、設定されている。
【0013】
力センサ14は、操作部28に加えられた操作力HFを検出する。具体的には、力センサ14は、例えば複数の歪ゲージを有する6軸力覚センサであって、ベース部34と操作部28との間に介挿されている。力センサ14は、オペレータAが操作部28に加えた操作力HFを検出し、該操作力HFに係る出力信号を、制御装置16に送信する。制御装置16は、力センサ14からの出力信号から、操作力HFの大きさを示す検出値HFVと、該操作力HFの方向HFDとを取得する。
【0014】
制御装置16は、ロボット12及び力センサ14の動作を制御する。具体的には、制御装置16は、プロセッサ38(CPU、GPU等)、及びメモリ40(ROM、RAM等)等を有するコンピュータである。プロセッサ38は、メモリ40にバス42を介して通信可能に接続され、メモリ40と通信しつつ、後述する各種機能を実行するための演算を行う。
【0015】
プロセッサ38は、ロボット12の各サーボモータへの指令を生成し、該指令に応じて、サーボモータは、ロボット12の各可動コンポーネントを回動させる。こうして、プロセッサ38は、ロボット12を動作させて、ロボット12のエンドエフェクタ26を、3次元空間内の任意の位置及び姿勢に配置させる。メモリ40は、各種データを一時的又は恒久的に記憶する。
【0016】
入力装置17は、制御装置16に通信可能に接続され、情報の入力を受け付ける。入力装置17は、例えば、押しボタン、スイッチ、キーボード、マウス、又はタッチセンサ等を有し、オペレータが入力した情報を制御装置16へ送信する。なお、入力装置17は、制御装置16に一体に設けられてもよいし、該制御装置16とは別体として、デスクトップ型若しくはタブレット型のPC、携帯型のロボット教示装置(いわゆる、ティーチングペンダント)、又は、ロボット12の操作部28に設けられてもよい。入力装置17は、制御装置16と有線又は無線で通信する。
【0017】
本実施形態においては、制御装置16は、オペレータAが操作部28に加えた操作力HFに応じてロボット12に寸動動作を実行させる。以下、
図3を参照して、寸動動作モードにおけるロボットシステム10の動作について説明する。
図3に示すフローは、ロボット12の動作モードを寸動動作モードに移行するための寸動動作モード開始指令を受け付けたときに、開始する。
【0018】
ステップS1において、プロセッサ38は、操作力HFの検出を開始する。具体的には、プロセッサ38は、力センサ14が検出した操作力HFに係る出力信号を該力センサ14から連続的(例えば、周期的)に受信し、該出力信号から操作力HFの検出値HFV及び方向HFDを順次取得する。プロセッサ38は、取得した検出値HFV及び方向HFDの情報をメモリ40に順次記憶する。
【0019】
ステップS2において、プロセッサ38は、検出値HFVの変化の度合いΔの取得を開始する。一例として、プロセッサ38は、変化の度合いΔとして、検出値HFVの時間微分値δHFV/δtを取得する。具体的には、プロセッサ38は、検出値HFVを取得する毎に、直近に取得した検出値HFV_nと、該検出値HFV_nの直前に取得した検出値HFV_n-1との差δHF(=HFV_n-HFV_n-1)を算出する。
【0020】
そして、プロセッサ38は、算出した差δHFを、力センサ14が検出値HF
V_nに対応する操作力HF
nを検出した時点から、検出値HF
V_n-1に対応する操作力HF
n-1を検出した時点までの時間t
Dで除算することによって、変化の度合いΔ=δHF
V/δt=(HF
V_n-HF
V_n-1)/t
Dを算出する。例えば、力センサ14が操作力HFを周期τ
1で周期的に検出する場合、時間t
D=τ
1である。プロセッサ38は、算出した変化の度合いΔをメモリ40に順次記憶する。このように、本実施形態においては、プロセッサ38は、変化の度合いΔを取得する変化取得部44(
図2)として機能する。
【0021】
ステップS3において、プロセッサ38は、直近に取得した検出値HFVが、下限値HFth1以上、且つ、上限値HFth2以下の範囲[HFth1、HFth2]内であるか否かを判定する。この下限値HFth1及び上限値HFth2は、力センサ14が検出した操作力HFがオペレータAによって意図的に操作部28に加えられたものであることを示す値として、オペレータによって予め定められ、メモリ40に記憶される。
【0022】
プロセッサ38は、直近に取得した検出値HFVが、範囲[HFth1、HFth2]内(HFth1≦HFV≦HFth2)である場合にYESと判定し、ステップS4ヘ進む。一方、プロセッサ38は、直近に取得した検出値HFVが、下限値HFth1よりも小さい(HFV<HFth1)とき、又は、上限値HFth2よりも大きい(HFV>HFth2)ときはNOと判定し、ステップS6へ進む。
【0023】
ステップS4において、プロセッサ38は、直近に取得した変化の度合いΔが、下限値Δth1以上、且つ、上限値Δth2以下の範囲[Δth1、Δth2]内であるか否かを判定する。この下限値ΔFth1及び上限値ΔFth2は、力センサ14が検出した操作力HFがオペレータAによって意図的に操作部28に加えられたものであることを示す値として、オペレータによって予め定められ、メモリ40に予め記憶される。
【0024】
プロセッサ38は、直近に取得した変化の度合いΔが、範囲[Δth1、Δth2]内(Δth1≦Δ≦Δth2)である場合にYESと判定し、ステップS5ヘ進む。一方、プロセッサ38は、直近に取得した変化の度合いΔが、下限値Δth1よりも小さい(Δ<Δth1)とき、又は、上限値Δth2よりも大きい(Δ>Δth2)ときはNOと判定し、ステップS6へ進む。
【0025】
ステップS5において、プロセッサ38は、寸動動作を実行する。具体的には、プロセッサ38は、ロボット12を動作させて、エンドエフェクタ26を、力センサ14が検出した操作力HFの方向HFDへ、決められた移動量Mだけ移動させる寸動動作を実行する。より具体的には、プロセッサ38は、ステップS5の開始時点でのエンドエフェクタ26の位置を始点PSとし、該始点PSからエンドエフェクタ26を方向HFDへ移動させ、該エンドエフェクタ26が、始点PSから方向HFDへ移動量Mだけ離隔した終点PEに達したときに、該エンドエフェクタ26を停止させる。
【0026】
本実施形態においては、寸動動作の移動量Mは、オペレータAによって予め定められ(例えば、M=1mm)、メモリ40に予め記憶される。例えば、オペレータAは、
図3に示す寸動動作モードのフローを実行する前に、入力装置17を操作して、移動量Mを設定してもよい。
【0027】
移動量Mは、例えば、エンドエフェクタ26(又は、工具中心点:TCP)の第1の教示点TP1から、該第1の教示点TP1の次の第2の教示点TP2までの移動経路長LTPよりも遥かに小さな値(M≪LTP)として、決定される。例えば、第2の教示点TP2は、エンドエフェクタ26がワークに対して作業を行うための作業位置である。
【0028】
このように、プロセッサ38は、力センサ14が検出した操作力HFに応じて、決められた移動量Mだけロボット12(具体的には、エンドエフェクタ26)を移動させる寸動動作を実行する。したがって、本実施形態においては、プロセッサ38は、寸動動作実行部46(
図2)として機能する。
【0029】
ステップS6において、プロセッサ38は、オペレータ、上位コントローラ、又はコンピュータプログラムから寸動動作モード終了指令を受け付けたか否かを判定する。プロセッサ38は、寸動動作モード終了指令を受け付けた(すなわち、YES)と判定した場合、
図3に示すフローを終了する一方、寸動動作モード終了指令を受け付けていない(すなわち、NO)と判定した場合、ステップS3へ戻る。そして、プロセッサ38は、ステップS6でYESと判定するまでステップS3~S6のループを繰り返し実行する。
【0030】
以上のように、本実施形態においては、プロセッサ38は、オペレータAが操作部28に加えた操作力HFに応じてロボット12(具体的には、エンドエフェクタ26)を寸動させている。この構成によれば、例えばロボット12に教示点(例えば、作業位置)の教示を行っているときに、オペレータAは、ロボット12の位置を操作力HFに応じて任意に微調整することが可能となる。これにより、教示等において、ロボット12の位置を、オペレータAによる操作力HFに応じて高精度に調整することが可能となる。
【0031】
また、本実施形態においては、プロセッサ38は、検出値HFVが、下限値HFth1よりも小さい(HFV<HFth1)とき、又は、上限値HFth2よりも大きい(HFV>HFth2)ときは、ステップS5を実行しない。この構成によれば、オペレータAが意図的に操作力HFを操作部28に加えたときのみ、プロセッサ38は、ステップS5を実行することになる。
【0032】
例えば、オペレータA又は周囲の物体が、不意に操作部28に衝突したとする。この場合に操作部28に加わる操作力HFの検出値HFVは、上限値HFth2よりも大きくなり得る。このような場合、プロセッサ38は、ステップS5を実行しない。これにより、オペレータAの意図に反してステップS5を実行してしまうのを防止できるので、ロボット12の動作の安全性を高めることができる。
【0033】
また、本実施形態においては、プロセッサ38は、変化の度合いΔが、下限値Δth1よりも小さい(Δ<Δth1)とき、又は、上限値Δth2よりも大きい(Δ>Δth2)ときは、ステップS5を実行しない。例えば、オペレータA又は周囲の物体が、不意に操作部28に衝突したとする。
【0034】
この場合に操作部28に加わる操作力HFの検出値HFVの変化の度合いΔは、オペレータAが意図的に操作力HFを操作部28に加えたときと比べて、大きくなり(すなわち、高速で変化し)、以って、上限値Δth2よりも大きくなり得る。このような場合、プロセッサ38は、ステップS5を実行しない。これにより、オペレータAの意図に反してステップS5を実行してしまうのを防止できるので、ロボット12の動作の安全性を高めることができる。
【0035】
なお、プロセッサ38は、上述のステップS5において、エンドエフェクタ26を、力センサ14が検出した操作力HFの方向HFDから所定の角度θDだけずらした方向HFD’へ移動させてもよい。方向HFDから方向HFD’へずらす方向DDと角度θDとは、オペレータによって予め定められ、メモリ40に記憶される。例えば、ずらす方向DDは、鉛直方向と平行な方向として定められ得る。
【0036】
例えば、θ=90°、且つ、ずらす方向D
Dが鉛直方向と平行な方向として設定され、
図1に示す例においてオペレータAが操作部28に対し、ロボット座標系C
Rのx軸方向に操作力HFを加えたとする。この場合、プロセッサ38は、ステップS5において、エンドエフェクタ26を、ロボット座標系C
Rのz軸方向(すなわち、鉛直方向)へ移動させることになる。
【0037】
つまり、オペレータAが操作部28を水平方向へ押す(又は引く)動作に応じて、エンドエフェクタ26は、鉛直下方(又は鉛直上方)へ移動されることになる。この構成によれば、オペレータAは、ロボット12を、より多様な方法で寸動させることが可能となる。
【0038】
なお、プロセッサ38は、オペレータAの入力情報に応じて、ステップS5においてロボット12を寸動させる方向を、操作力HFの方向HFDと、ずらした方向HFD’とで切り換えるように構成されてもよい。例えば、オペレータAは、入力装置17を操作して、ロボット12の寸動方向を、方向HFDと方向HFD’とのいずれかに設定する寸動方向設定情報を入力する。
【0039】
プロセッサ38は、入力装置17に入力された寸動方向設定情報に応じて、ロボット12の寸動方向を、方向HFDと方向HFD’とから選択してもよい。この場合において、入力装置17は、操作部28に設けられた、方向HFDと方向HFD’のいずれかを選択するための押しボタン又はスイッチを有してもよい。
【0040】
また、プロセッサ38は、オペレータAの入力情報に応じて、ロボット12の動作モードを、寸動動作モードとリードスルー動作モードとの間で切り換えるように構成されてもよい。ここで、リードスルー動作モードにおいては、プロセッサ38は、力センサ14が操作力HFを検出している間(より具体的には、検出値HFVが下限値HFth1以上となっている間)、該操作力HFの方向HFDへロボット12を継続的に移動させる(いわゆる、リードスルー機能)。このリードスルー動作モードにおいて、プロセッサ38は、ロボット12の移動速度を、操作力HFの検出値HFVに応じて大きくなるように変化させてもよい。
【0041】
例えば、オペレータAは、入力装置17を操作して、寸動動作モードとリードスルー動作モードとのいずれかを選択する情報を入力する。入力装置17は、オペレータAからの入力情報に応じて、寸動動作モード開始指令、又はリードスルー動作モード開始指令をプロセッサ38へ送信する。
【0042】
プロセッサ38は、入力装置17から寸動動作モード開始指令を受信した場合は、ロボット12の動作モードを寸動動作モードに切り替えて、
図3に示すフローを開始する一方、入力装置17からリードスルー動作モード開始指令を受信した場合は、ロボット12の動作モードをリードスルー動作モードに切り替えて、上述したリードスルー動作フローを開始する。この場合において、入力装置17は、操作部28に設けられた、寸動動作モードとリードスルー動作モードとのいずれかを選択するためのボタン又はスイッチを有してもよい。
【0043】
この構成によれば、オペレータAは、例えば、ロボット12を大きな距離に亘って移動させたい場合は、ロボット12の動作モードをリードスルー動作モードに設定し、ロボット12の位置を微調整したい場合は、ロボット12の動作モードを寸動動作モードに設定するというように、状況に応じてロボット12をより多様な方法で動作させることが可能となる。
【0044】
なお、
図3に示すフローにおいて、プロセッサ38は、ステップS6でNOと判定している間、ステップS3~S6のループを周期τ
2(例えば、1秒)、繰り返し実行してもよい。この場合、オペレータAが操作部28に操作力HFを継続的に加えたとすると、プロセッサ38は、周期τ
2毎に、ステップS5を実行し、これにより、エンドエフェクタ26は、周期τ
2毎に寸動して、操作力HFの方向HF
Dへ段階的に漸進することになる。
【0045】
代替的には、プロセッサ38は、ステップS5を実行した後に、操作力HFの検出値HFVが下限値HFth1よりも小さくなった(HFV<HFth1)か否かを判定してもよい。そして、プロセッサ38は、検出値HFVが下限値HFth1よりも小さくなった場合はステップS6へ進む一方、検出値HFVが継続して下限値HFth1以上となっている(HFV≧HFth1)場合は、HFV<HFth1となるまで待機してもよい。
【0046】
この場合、仮に、オペレータAが操作部28に操作力HFを継続的に加えたとすると、プロセッサ38は、ステップS5の寸動動作を1回だけ実行した後、オペレータAが操作部28に対する操作力HFを解除(又は、大幅に減少)しない限りは、ロボット12の寸動動作を再度実行しない。この構成によれば、オペレータAは、ロボット12を、より慎重に寸動させることが可能となる。
【0047】
次に、
図1及び
図4を参照して、他の実施形態に係るロボットシステム50について説明する。ロボットシステム50は、上述のロボットシステム10と、制御装置52において相違する。制御装置52は、プロセッサ54、メモリ40、及び計時部56を有する。プロセッサ54は、メモリ40及び計時部56とバス42を介して通信可能に接続され、メモリ40及び計時部56と通信しつつ、後述する各種機能を実行するための演算を行う。計時部56は、プロセッサ54からの指令に応じて、ある時点からの経過時間を計時する。
【0048】
本実施形態においては、オペレータAは、ロボット12に寸動動作を実行させる前に、寸動動作の移動量Mを含む寸動動作パラメータを予め設定する。以下、
図5を参照して、ロボットシステム50において寸動動作パラメータを設定する方法について説明する。
図5に示すフローは、プロセッサ54が、オペレータ、上位コントローラ、又はコンピュータプログラムから、ロボット12の動作モードを設定モードに移行するための設定モード開始指令を受け付けたときに、開始する。
【0049】
ステップS11において、プロセッサ54は、上述のステップS1と同様に、操作力HFの検出を開始する。ステップS12において、プロセッサ54は、直近に取得した検出値HFVが、所定の閾値HFth3以上となったか否かを判定する。この閾値HFth3は、オペレータによって予め定められ、メモリ40に記憶される。
【0050】
プロセッサ54は、検出値HFVが閾値HFth3以上(HFV≧HFth3)となったときにYESと判定し、ステップS13へ進む一方、HFV<HFth3である場合にNOと判定し、ステップS16へ進む。なお、この閾値HFth3は、上述の下限値HFth1と同じ値であってもよいし、異なる値であってもよい。
【0051】
ステップS13において、プロセッサ54は、計時部56を起動して、ステップS12でYESと判定した時点からの経過時間tPを計時する。ステップS14において、プロセッサ54は、計時部56が計時する経過時間tPが、予め定めた時間tthに達したか否かを判定する。この時間tthは、オペレータによって予め定められ(例えば、2秒)、メモリ40に記憶される。
【0052】
ステップS15において、プロセッサ54は、ステップS13で経過時間tPの計時を開始した時点から、ステップS14でYESと判定するまでの時間tthに検出した検出値HFVに応じて、寸動動作パラメータを決定する。一例として、プロセッサ54は、時間tth内に検出した検出値HFVの最大値HFV_MAXに応じて、寸動動作パラメータとしての移動量Mを決定する。
【0053】
例えば、プロセッサ54は、最大値HFV_MAXが、HFth3<HFV_MAX≦HFV_MAX1の場合は、移動量M=M1(例えば、M1=1mm)に決定し、HFV_MAX1<HFV_MAX≦HFV_MAX2の場合は、移動量MをM=M2(>M1 例えば、M2=2mm)に決定し、HFV_MAX2<HFV_MAX≦HFV_MAX3の場合は、移動量MをM=M3(>M2 例えば、M3=3mm)に決定する。これらの閾値HFV_MAX1、HFV_MAX2、及びHFV_MAX3は、オペレータによって予め定められ、メモリ40に記憶される。
【0054】
このように、プロセッサ54は、最大値HFV_MAXの大きさに応じて移動量Mが大きくなるように、該移動量Mを決定する。代替的には、プロセッサ54は、時間tth内に検出した検出値HFVの積分値∫[HFV]dt又は平均値HFV_AVEを算出し、∫[HFV]dt又は平均値HFV_AVEの大きさに応じて移動量Mが大きくなるように、該移動量Mを決定してもよい。
【0055】
このように、本実施形態においては、プロセッサ54は、力センサ14が検出した操作力HFに基づいて、寸動動作パラメータとしての移動量Mを決定している。したがって、プロセッサ54は、寸動動作パラメータを決定するパラメータ決定部58として機能する。プロセッサ54は、決定した移動量Mを、メモリ40に記憶する。
【0056】
一方、ステップS12でNOと判定した場合、ステップS16において、プロセッサ54は、オペレータ、上位コントローラ、又はコンピュータプログラムから設定モード終了指令を受け付けたか否かを判定する。プロセッサ38は、設定モード終了指令を受け付けた(すなわち、YES)と判定した場合、
図5に示すフローを終了する一方、設定モード終了指令を受け付けていない(すなわち、NO)と判定した場合、ステップS12をループする。
【0057】
以上のように、
図5に示す設定モードのフローにおいては、プロセッサ54は、
図3中のステップS5で寸動動作を実行するための寸動動作パラメータ(移動量M)を、検出値HF
Vに応じて決定する。この構成によれば、オペレータAは、操作部28に加える操作力HFの大きさを変えることで、移動量Mを所望の値に、直感的に設定することができる。
【0058】
次に、
図6を参照して、ロボットシステム50において寸動動作パラメータを設定する他の方法について説明する。なお、
図6に示すフローにおいて、
図5に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
図6に示すフローは、
図5に示すフローと同様に、設定モード開始指令を受け付けたときに、開始する。
【0059】
ステップS11の後、ステップS21において、プロセッサ54は、直近に取得した検出値HFVが、所定の閾値HFth4以上(HFV≧HFth4)となったか否かを判定する。この閾値HFth4は、オペレータによって予め定められ、メモリ40に記憶される。プロセッサ54は、HFV≧HFth4となったときにYESと判定し、ステップS13へ進む一方、HFV<HFth4である場合にNOと判定し、ステップS16へ進む。なお、この閾値HFth4は、上述の下限値HFth1(又は閾値HFth3)と同じ値であってもよいし、異なる値であってもよい。
【0060】
ステップS13において、計時部56によって、ステップS21でYESと判定した時点からの経過時間tPの計時を開始した後、ステップS22において、プロセッサ54は、直近に取得した検出値HFVが、閾値HFth4よりも小さくなった(HFV<HFth4)か否かを判定する。
【0061】
プロセッサ54は、HFV<HFth4となったときにYESと判定し、ステップS23へ進む一方、HFV≧HFth4である場合にNOと判定し、ステップS22をループする。ここで、プロセッサ54は、ステップS22でYESと判定した時点で計時部56が計時している経過時間tPを取得し、メモリ40に記憶する。この経過時間tPは、検出値HFVが閾値HFth4を継続して超えていた時間を示している。
【0062】
ステップS23において、プロセッサ54は、パラメータ決定部58として機能して、経過時間tPに応じて寸動動作パラメータを決定する。例えば、プロセッサ54は、ステップS22でYESと判定したときにメモリ40に記憶した経過時間tPが、tp1<tp≦tp2の場合は、移動量M=M1に決定し、tp2<tp≦tp3の場合は、移動量MをM=M2に決定し、tp3<tp≦tp4の場合は、移動量MをM=M3に決定する。
【0063】
これらの閾値tp1、tp2、tp3及びtp4は、オペレータによって予め定められ(例えば、tp1=0、tp2=1秒、tp3=3秒、tp4=5秒)、メモリ40に記憶される。このように、プロセッサ54は、経過時間tPに応じて移動量Mが大きくなるように、該移動量Mを決定する。プロセッサ54は、決定した移動量Mを、メモリ40に記憶する。
【0064】
以上のように、
図6に示す設定モードのフローにおいては、プロセッサ54は、寸動動作パラメータ(移動量M)を、検出値HF
Vが閾値HF
th4を継続して超えている時間t
pに応じて決定している。この構成によれば、オペレータAは、操作部28に操作力HFを加え続ける時間を変えることで、移動量Mを所望の値に直感的に設定することができる。
【0065】
次に、
図7を参照して、ロボットシステム50において寸動動作パラメータを設定するさらに他の方法について説明する。なお、
図7に示すフローにおいて、
図5に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
図7に示すフローは、
図5に示すフローと同様に、設定モード開始指令を受け付けたときに、開始する。
【0066】
ステップS11の後、ステップS31において、プロセッサ54は、直近に取得した検出値HFVが、所定の閾値HFth5以上(HFV≧HFth5)となったか否かを判定する。この閾値HFth5は、オペレータによって予め定められ、メモリ40に記憶される。プロセッサ54は、HFV≧HFth5となったときにYESと判定し、ステップS13へ進む一方、HFV<HFth5である場合にNOと判定し、ステップS16へ進む。なお、この閾値HFth5は、上述の下限値HFth1(若しくは、閾値HFth3又はHFth4)と同じ値であってもよいし、異なる値であってもよい。
【0067】
ステップS13において、計時部56によって、ステップS31でYESと判定した時点からの経過時間tPの計時を開始した後、ステップS32において、プロセッサ54は、操作力HFを検出した回数nをカウントする。このステップS32においては、プロセッサ54は、回数nを「1」とする。
【0068】
ステップS33において、プロセッサ54は、直近に取得した検出値HFVが、閾値HFth5よりも小さくなった(HFV<HFth5)か否かを判定する。プロセッサ54は、HFV<HFth5となったときにYESと判定し、ステップS34へ進む一方、依然としてHFV≧HFth5となっている場合はNOと判定し、ステップS14へ進む。
【0069】
ステップS34において、プロセッサ54は、ステップS31と同様に、直近に取得した検出値HFVが、再度、閾値HFth5以上(HFV≧HFth5)となったか否かを判定する。プロセッサ54は、HFV≧HFth5となったときにYESと判定し、ステップS35へ進む一方、HFV<HFth5である場合にNOと判定し、ステップS14へ進む。ステップS35において、操作力HFを検出した回数nをカウントする。具体的には、プロセッサ54は、回数nを、「1」だけインクリメントする(n=n+1)。
【0070】
一方、ステップS33でNOと判定した場合、プロセッサ54は、上述のステップS14を実行し、YESと判定した場合はステップS36へ進む一方、NOと判定した場合は、ステップS33へ戻る。また、ステップS34でNOと判定した場合、プロセッサ54は、ステップS14を実行し、YESと判定した場合はステップS36へ進む一方、NOと判定した場合は、ステップS34へ戻る。
【0071】
ステップS36において、プロセッサ54は、パラメータ決定部58として機能して、カウントした回数nに応じて寸動動作パラメータを決定する。ここで、このステップS36の開始時点でカウントされた回数nは、ステップS13で経過時間tPの計時を開始した時点から、ステップS14でYESと判定するまでの時間tthに、力センサ14が検出した操作力HFの検出値HFVが、閾値HFth5を超えた後に該閾値HFth5を下回った回数を示している。すなわち、この回数nは、所定の時間tth内に力センサ14が操作力HFを検出した回数を示していることになる。
【0072】
例えば、プロセッサ54は、回数n=n1(例えば、n1=1)の場合は、移動量M=M1に決定し、回数n=n2(例えば、n2=2)の場合は、移動量MをM=M2に決定し、回数n=n3(例えば、n3=3)の場合は、移動量MをM=M3に決定する。これら基準回数n1、n2、及びn3は、オペレータによって予め定められ、メモリ40に記憶される。こうして、プロセッサ54は、所定の時間tth内に力センサ14が操作力HFを検出した回数nに応じて、寸動動作パラメータとしての移動量Mを決定する。プロセッサ54は、決定した移動量Mを、メモリ40に記憶する。
【0073】
このように、
図7に示す設定モードのフローにおいては、プロセッサ54は、寸動動作パラメータ(移動量M)を、操作力HFを検出した回数nに応じて決定している。この構成によれば、オペレータAは、操作部28をタップする回数を変えることで、移動量Mを所望の値に、直感的に設定することができる。
【0074】
プロセッサ54は、設定モード開始指令を受け付けたときに、ロボット12の動作モードを設定モードに移行し、
図5、
図6又は
図7に示すフローを開始する。そして、移動量Mを決定してメモリ40に記憶する。その後、プロセッサ54は、寸動動作モード開始指令を受け付けると、ロボットシステム10と同様に、変化取得部44及び寸動動作実行部46として機能して、
図3に示すフローを実行する。
【0075】
なお、プロセッサ54は、オペレータAの入力情報に応じて、ロボット12の動作モードを、設定モードと寸動動作モードとの間で切り換えるように構成されてもよい。例えば、オペレータAは、入力装置17を操作して、設定モードと寸動動作モードとのいずれかを選択する情報を入力する。入力装置17は、オペレータAからの入力情報に応じて、設定モード開始指令、又は寸動動作モード開始指令をプロセッサ38へ送信する。
【0076】
プロセッサ38は、入力装置17から設定モード開始指令を受信した場合は、ロボット12の動作モードを設定モードに切り替えて、
図5、
図6又は
図7に示すフローを開始する一方、入力装置17から寸動動作モード開始指令を受信した場合は、ロボット12の動作モードを寸動動作モードに切り替えて、
図3に示すフローを開始する。この場合において、入力装置17は、操作部28に設けられた、設定モードと寸動動作モードとのいずれかを選択するためのボタン又はスイッチを有してもよい。
【0077】
次に、
図8を参照して、ロボットシステム50にてプロセッサ54が実行する寸動動作フローの他の例について、説明する。なお、
図8に示すフローにおいて、
図3及び
図5に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
図8に示すフローは、上述の
図3のフローと同様に、寸動動作モード開始指令を受け付けたときに、開始する。
【0078】
プロセッサ54は、ステップS1において、操作力HFの検出を開始し、ステップS12において、直近に取得した操作力HFの検出値HFVが閾値HFth3以上となったか否かを判定する。そして、ステップS13において、計時部56を起動して、ステップS12でYESと判定した時点からの経過時間tPを計時する。
【0079】
ステップS41において、プロセッサ54は、寸動動作実行部46として機能し、ロボット12の寸動動作を開始する。具体的には、プロセッサ54は、ロボット12を動作させて、エンドエフェクタ26を操作力HFの方向HFDへ移動させる寸動動作を開始する。ステップS14において、プロセッサ54は、計時部56が計時する経過時間tPが、予め定めた時間tthに達したか否かを判定する。
【0080】
ステップS15において、プロセッサ54は、パラメータ決定部58として機能し、ステップS13で経過時間tPの計時を開始した時点から、ステップS14でYESと判定するまでの時間tthに検出した検出値HFV(最大値HFV_MAX、又は平均値HFV_AVE)に応じて、寸動動作パラメータとしての移動量Mを決定する。
【0081】
ステップS42において、プロセッサ54は、ステップS41で開始した寸動動作におけるロボット12(具体的には、エンドエフェクタ26)の移動量Lが、決定した移動量Mに一致したか否かを判定する。ここで、ステップS41の開始時点からロボット12がエンドエフェクタ26を移動させた移動量Lは、例えば、ロボット12に内蔵された各サーボモータの回転数から取得することができる。この場合において、該サーボモータの回転数を検出する回転検出器(エンコーダ、ホール素子等)が、ロボット12に設けられてもよい。
【0082】
ステップS42において、プロセッサ54は、取得した移動量Lが、ステップS15で決定した移動量Mに一致した場合にYESと判定し、ステップS43へ進む一方、移動量Lが移動量Mに一致していない場合にNOと判定し、ステップS42をループする。ステップS43において、プロセッサ54は、ロボット12のエンドエフェクタ26を停止させ、これにより、寸動動作を停止する。
【0083】
以上のように、本実施形態においては、プロセッサ54は、ロボット12の寸動動作の実行中に、検出値HFVに応じて寸動動作パラメータとしての移動量Mを決定している。この構成によれば、オペレータAは、寸動動作を実行する毎に、操作部28に加える操作力HFの大きさに応じて移動量Mを所望の値に直感的に設定することができる。
【0084】
なお、
図8に示すフローにおいて、プロセッサ54は、ステップS13の次にステップS14及びS15を実行して移動量Mを決定し、その後に、ステップS41を実行してもよい。この場合、プロセッサ54は、移動量Mを決定した後にステップS41で寸動動作を開始することになる。
【0085】
また、ステップS41で開始する寸動動作におけるロボット12(エンドエフェクタ26)の移動速度VIは、プロセッサ54がステップS15で決定し得る最小の移動量M1だけロボット12が寸動するのに要する時間が所定の時間tth以上となるように、設定されてもよい。これにより、ステップS15で寸動動作パラメータを決定する前に、ステップS41の開始後にロボット12が移動量M1だけ寸動してしまうのを防止できる。オペレータAは、入力装置17を操作して移動速度VIを予め設定してもよい。
【0086】
次に、
図9を参照して、ロボットシステム50のプロセッサ54が実行する寸動動作フローのさらに他の例について、説明する。なお、
図9に示すフローにおいて、
図3、
図6及び
図8に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
図9に示すフローは、上述の
図3のフローと同様に、寸動動作モード開始指令を受け付けたときに、開始する。
【0087】
プロセッサ54は、ステップS1において、操作力HFの検出を開始し、ステップS21において、直近に取得した検出値HFVが、所定の閾値HFth4以上(HFV≧HFth4)となったか否かを判定する。そして、ステップS13において、計時部56を起動して、ステップS21でYESと判定した時点からの経過時間tPを計時する。
【0088】
ステップS41において、プロセッサ54は、ロボット12の寸動動作を開始し、ステップS22において、プロセッサ54は、直近に取得した検出値HFVが、閾値HFth4よりも小さくなった(HFV<HFth4)か否かを判定する。ステップS23において、プロセッサ54は、パラメータ決定部58として機能して、経過時間tPに応じて寸動動作パラメータを決定する。
【0089】
ステップS42において、プロセッサ54は、ステップS41で開始した寸動動作におけるロボット12(具体的には、エンドエフェクタ26)の移動量Lが、ステップS23で決定した移動量Mに一致したか否かを判定する。ステップS42でYESと判定した場合、ステップS43において、プロセッサ54は、ロボット12の寸動動作を停止する。
【0090】
以上のように、本実施形態においては、プロセッサ54は、ロボット12の寸動動作の実行中に、検出値HFVが閾値HFth4を継続して超えている時間tpに応じて、寸動動作パラメータとしての移動量Mを決定している。この構成によれば、オペレータAは、寸動動作を実行する毎に、操作部28に操作力HFを継続して加える時間に応じて移動量Mを、所望の値に直感的に設定することができる。
【0091】
なお、
図9に示すフローにおいて、プロセッサ54は、ステップS13の次にステップS22及びS23を実行して移動量Mを決定し、その後に、ステップS41を実行してもよい。この場合、プロセッサ54は、移動量Mを決定した後にステップS41で寸動動作を開始することになる。
【0092】
また、
図9中のステップS41で開始する寸動動作におけるロボット12(エンドエフェクタ26)の移動速度V
Iは、プロセッサ54がステップS15で決定し得る移動量M
1、M
2、M
3だけロボット12が寸動するのに要する時間が、ステップS23で該移動量M
1、M
2、M
3を決定するために用いる閾値t
p1、t
p2、t
p3以上となるように、設定されてもよい。これにより、ステップS23で寸動動作パラメータを決定する前に、ステップS41の開始後にロボット12が移動量M
1、M
2、M
3だけ寸動してしまうのを防止できる。
【0093】
次に、
図10を参照して、ロボットシステム50のプロセッサ54が実行する寸動動作フローのさらに他の例について、説明する。なお、
図10に示すフローにおいて、
図8に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
図10に示すフローは、上述の
図3のフローと同様に、寸動動作モード開始指令を受け付けたときに、開始する。プロセッサ54は、ステップS1において、操作力HFの検出を開始する。
【0094】
ステップS51において、プロセッサ54は、直近に取得した検出値HFVが、所定の閾値HFth6以上(HFV≧HFth6)となったか否かを判定する。この閾値HFth6は、オペレータによって予め定められ、メモリ40に記憶される。この閾値HFth6は、上述の下限値HFth1(若しくは、閾値HFth3、HFth4又はHFth5)と同じ値であってもよいし、異なる値であってもよい。
【0095】
プロセッサ54は、HFV≧HFth6となったときにYESと判定し、ステップS41へ進む一方、HFV<HFth6である場合にNOと判定し、ステップS6へ進む。ステップS41において、プロセッサ54は、ロボット12のエンドエフェクタ26を操作力HFの方向HFDへ移動させる寸動動作を開始する。
【0096】
ステップS52において、プロセッサ54は、パラメータ決定部58として機能し、操作力HFの方向HFDと、ロボット12の目標方向TDと、該目標方向TDへのロボット12の目標移動量TMとを用いて所定の演算をすることにより、寸動動作パラメータとしての移動量Mを決定する。
【0097】
以下、
図11を参照して、目標方向TD及び目標移動量TMについて説明する。操作力HFに応じてロボット12に寸動動作を実行させるときに、ロボット12のエンドエフェクタ26を、予め定めた目標方向TDへの移動量が、予め定めた目標移動量TMとなるように、寸動させたい場合がある。
【0098】
例えば、
図11に示す例では、目標方向TDは、ロボット座標系C
Rのz軸マイナス方向(又は、鉛直下方)として定められている。目標移動量TMは、例えば1mmといった値として、オペレータによって定められる。目標方向TD及び目標移動量TMの情報は、メモリ40に予め記憶される。
【0099】
本実施形態においては、プロセッサ54は、力センサ14が検出した操作力HFの方向HFDを取得した後、該方向HFDと目標方向TDとの角度θを算出する。そして、角度θと目標移動量TMとから、方向HFDにおけるロボット12のエンドエフェクタ26の移動量Mを、M=TM/cosθなる式から決定する。
【0100】
仮に、プロセッサ54がエンドエフェクタ26を、上述の演算により決定した移動量Mだけ方向HF
Dへ移動させた場合、エンドエフェクタ26の目標方向TD(
図11に示す例では、z軸マイナス方向)への移動量は、目標移動量TMに一致することになる。このようにして、プロセッサ54は、方向HF
D、目標方向TD、及び目標移動量TMを用いて所定の演算をすることにより、移動量Mを決定する。
【0101】
そして、ステップS42において、プロセッサ54は、ステップS41で開始した寸動動作におけるロボット12(具体的には、エンドエフェクタ26)の移動量Lが、ステップS52で決定した移動量Mに一致したか否かを判定する。ステップS42でYESと判定した場合、ステップS43において、プロセッサ54は、ロボット12の寸動動作を停止する。
【0102】
以上のように、本実施形態においては、プロセッサ54は、ロボット12の寸動動作の実行中に、所定の演算を実行することにより、寸動動作パラメータとしての移動量Mを決定している。この構成によれば、ロボット12(具体的には、エンドエフェクタ26)の目標方向TDへの移動量が所定の目標移動量TMに一致するように、ロボット12を寸動させることができる。
【0103】
なお、
図10に示すフローにおいて、プロセッサ54は、ステップS51の次にステップS52を実行して移動量Mを決定し、その後に、ステップS41を実行してもよい。この場合、プロセッサ54は、移動量Mを決定した後にステップS41で寸動動作を開始することになる。
【0104】
なお、プロセッサ54は、上述の
図8、
図9、又は
図10のフローを実行するときに、変化取得部44として機能して、
図3に示すステップS2及びステップS4を実行してもよい。この場合において、プロセッサ54は、ステップS1の後に、ステップS2を実行し、
図8のステップS12、
図9のステップS21、又は
図10のステップS51の後に、ステップS4を実行してもよい。
【0105】
ロボットシステム50において、プロセッサ54は、パラメータ決定部58として機能して、寸動動作パラメータとして、移動量Mのみならず、寸動動作においてロボット12(具体的には、エンドエフェクタ26)を移動させる移動方向D
Iを決定してもよい。プロセッサ54は、
図5、
図6又は
図7のフローを実行することで、移動方向D
Iを決定できる。
【0106】
例えば、上述の設定モード開始指令は、移動量設定モード開始指令と、方向設定モード開始指令とを含む。プロセッサ54は、移動量設定モード開始指令を受け付けたときに、上述の
図5、
図6又は
図7のフローを実行して移動量Mを決定する一方、方向設定モード開始指令を受け付けたときは、
図5、
図6又は
図7のフローを実行して移動方向D
Iを決定する。
【0107】
移動方向D
Iを決定するために
図5のフローを実行する場合、ステップS15において、プロセッサ54は、時間t
thに検出した検出値HF
V(最大値HF
V_MAX、積分値∫[HF
V]dt、又は平均値HF
V_AVE)に応じて、寸動動作パラメータとしての移動方向D
Iを決定する。
【0108】
一例として、プロセッサ54は、検出値HFVの最大値HFV_MAXが、HFth3<HFV_MAX≦HFV_MAX1の場合は、移動方向DIを、ロボット座標系CRのx軸方向に決定し、HFV_MAX1<HFV_MAX≦HFV_MAX2の場合は、移動方向DIを、ロボット座標系CRのy軸方向に決定し、HFV_MAX2<HFV_MAX≦HFV_MAX3の場合は、移動方向DIを、ロボット座標系CRのz軸方向に決定してもよい。これにより、オペレータAは、操作部28に加える操作力HFの大きさを変えることで、移動方向DIを直感的に設定することができる。
【0109】
一方、移動方向D
Iを決定するために
図6のフローを実行する場合、ステップS23において、プロセッサ54は、経過時間t
Pに応じて移動方向D
Iを決定する。具体的には、プロセッサ54は、ステップS22でYESと判定したときにメモリ40に記憶した経過時間t
Pが、t
p1<t
p≦t
p2の場合は、移動方向D
Iを、ロボット座標系C
Rのx軸方向に決定し、t
p2<t
p≦t
p3の場合は、移動方向D
Iを、ロボット座標系C
Rのy軸方向に決定しに決定し、t
p3<t
p≦t
p4の場合は、移動方向D
Iを、ロボット座標系C
Rのz軸方向に決定してもよい。これにより、オペレータAは、操作部28に操作力HFを加え続ける時間を変えることで、移動方向D
Iを直感的に設定することができる。
【0110】
一方、移動方向D
Iを決定するために
図7のフローを実行する場合、ステップS36において、プロセッサ54は、カウントした回数nに応じて移動方向D
Iを決定する。具体的には、プロセッサ54は、回数n=n
1の場合は、移動方向D
Iを、ロボット座標系C
Rのx軸方向に決定し、回数n=n
2の場合は、移動方向D
Iを、ロボット座標系C
Rのy軸方向に決定し、回数n=n
3の場合は、移動方向D
Iを、ロボット座標系C
Rのz軸方向に決定してもよい。これにより、オペレータAは、操作部28をタップする回数を変えることで、移動方向D
Iを直感的に設定することができる。
【0111】
なお、プロセッサ54は、オペレータAの入力情報に応じて、設定モードを、移動量設定モードと方向設定モードとの間で切り換えるように構成されてもよい。例えば、オペレータAは、入力装置17を操作して、移動量設定モードと方向設定モードとのいずれかを選択する情報を入力する。入力装置17は、オペレータAからの入力情報に応じて、移動量設定モード開始指令、又は方向設定モード開始指令をプロセッサ38へ送信する。
【0112】
プロセッサ38は、入力装置17からの指令に応じて、
図5、
図6又は
図7のフローを実行し、移動量M又は移動方向D
Iを決定する。この場合において、入力装置17は、操作部28に設けられた、移動量設定モードと方向設定モードとのいずれかを選択するためのボタン又はスイッチを有してもよい。
【0113】
このようにして、プロセッサ54は、移動量M及び移動方向D
Iの双方を予め決定できる。その後、プロセッサ54は、寸動動作モード開始指令を受け付けると、変化取得部44及び寸動動作実行部46として機能し、
図3に示すフローを実行する。このときに実行する
図3中のステップS5においては、プロセッサ54は、予め決められた移動方向D
Iへ、予め決められた移動量Mだけロボット12を移動させることになる。
【0114】
なお、ロボットシステム50において、設定モードに移行し、寸動動作パラメータとして移動量M及び移動方向DIを決定する場合において、プロセッサ54は、力センサ14が操作力HFを複数回に亘って繰り返し検出したときに、互いに異なる回に検出した操作力HFに応じて、移動量M及び移動方向DIをそれぞれ決定してもよい。
【0115】
例えば、プロセッサ54が設定モード開始指令を受け付けて設定モードを開始した後、力センサ14が操作力HFを複数回に亘って繰り返し検出した場合、プロセッサ54は、パラメータ決定部58として機能し、所定の回に検出された操作力HFの検出値HFV、又は該検出値HFVが所定の閾値HFth4を継続して超えている時間tPに応じて、移動量Mを決定し、該所定の回とは別の回に検出された操作力HFの方向HFDを、移動方向DIとして決定する。
【0116】
具体的には、オペレータAが、操作部28に対し、計2回に亘って、操作力HFを加えたとする。この場合において、プロセッサ54は、力センサ14が1回目に検出した操作力HFに関して、
図5中のステップS12~S15のフローを実行することで、検出値HF
Vに応じて移動量Mを決定し得る。代替的には、プロセッサ54は、力センサ14が1回目に検出した操作力HFに関して、
図6中のステップS21~S23のフローを実行することで、検出値HF
Vが閾値HF
th4を継続して超えている時間t
Pに応じて、移動量Mを決定し得る。
【0117】
その一方で、プロセッサ54は、力センサ14が2回目に検出した操作力HFの方向HFDを、寸動動作時のロボット12の移動方向DIとして決定する。このようにして、プロセッサ54は、力センサ14が操作力HFを複数回に亘って繰り返し検出した場合に、所定の回に検出した操作力HFに応じて、移動量M及び移動方向DIを決定する。この構成によれば、オペレータAは、移動量M及び移動方向DIの各々を、直感的に任意に設定できる。
【0118】
なお、
図3中のステップS5でロボット12(エンドエフェクタ26)を寸動させる移動方向D
Iは、ロボット12の移動経路に沿う方向として予め定められてもよい。この移動経路は、例えば、第1の教示点TP
1から第2の教示点TP
2までの移動経路として、コンピュータプログラム等により、予め定められる。この場合において、移動経路は、直線又は曲線であり、移動量Mは、該移動経路に沿う方向への総距離として定められてもよい。
【0119】
また、上述のステップS5又はS41における寸動動作において、プロセッサ38又は54は、ロボット12のエンドエフェクタ26を移動させる代わりに(又は、移動させつつ)、エンドエフェクタ26の姿勢を変化させてもよい。例えば、プロセッサ38又は54は、エンドエフェクタ26を、ロボット座標系CR(又は、エンドエフェクタ26に対して設定されるツール座標系等、他の座標系)のx軸、y軸又はz軸の周りの方向DPへ、決められた移動量MP(角度)だけ回動させ、これにより、エンドエフェクタ26の姿勢を変化させてもよい。
【0120】
この場合において、プロセッサ54は、パラメータ決定部58として機能し、
図5、
図6又は
図7に示すフローを実行し、寸動動作パラメータとして、エンドエフェクタ26の姿勢を変化させる移動量M
P及び方向D
Pを決定してもよい。例えば、姿勢を変化させる方向D
Pを決定するために
図5のフローを実行する場合、ステップS15において、プロセッサ54は、時間t
thに検出した検出値HF
V(最大値HF
V_MAX、積分値∫[HF
V]dt、又は平均値HF
V_AVE)に応じて、寸動動作パラメータとしての方向D
Pを決定する。
【0121】
一例として、プロセッサ54は、検出値HFVの最大値HFV_MAXが、HFth3<HFV_MAX≦HFV_MAX1の場合は、方向DPを、ロボット座標系CRのx軸周りの方向に決定し、HFV_MAX1<HFV_MAX≦HFV_MAX2の場合は、方向DPを、ロボット座標系CRのy軸周りの方向に決定し、HFV_MAX2<HFV_MAX≦HFV_MAX3の場合は、方向DPを、ロボット座標系CRのz軸周りの方向に決定してもよい。同様に、プロセッサ54は、検出値HFVに応じて、寸動動作パラメータとしての移動量MPを決定できる。
【0122】
また、
図6又は
図7に示すフローを実行することで、プロセッサ54が、移動量M
P及び方向D
Pを、経過時間t
P又は回数nに応じて決定できることを理解されよう。この構成によれば、オペレータAは、寸動動作時にエンドエフェクタ26の姿勢を変化させる方向D
P及び移動量M
Pを直感的に設定することができる。
【0123】
なお、上述の実施形態においては、力センサ14が、ベース部34と操作部28との間に配置された場合について述べた。しかしながら、これに限らず、力センサ14は、操作部28よりも基端側(つまり、ロボットベース18の側)に位置する、ロボット12の如何なる部位に設けられてもよい。例えば、力センサ14は、ロボットアーム22に設けられてもよいし、ロボットベース18に設けられてもよい。
【0124】
また、力センサ14は、6軸力覚センサに限らず、例えば、ロボット12の駆動軸周りのトルクを検出可能な複数のトルクセンサから構成されてもよいし、他の如何なるタイプの力センサであってもよい。また、
図2に示すロボットシステム10から、変化取得部44を省略してもよい。この場合、
図3に示すステップS4が省略され、プロセッサ38は、ステップS3でYESと判定したときに、ステップS5へ進む。
【0125】
また、ロボット12は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0126】
10,50 ロボットシステム
12 ロボット
14 力センサ
16,52 制御装置
28 操作部
38,54 プロセッサ
44 変化取得部
46 寸動動作実行部
58 パラメータ決定部