JP6773098B2 - ロボットシステム及びロボット制御方法 - Google Patents

ロボットシステム及びロボット制御方法 Download PDF

Info

Publication number
JP6773098B2
JP6773098B2 JP2018196016A JP2018196016A JP6773098B2 JP 6773098 B2 JP6773098 B2 JP 6773098B2 JP 2018196016 A JP2018196016 A JP 2018196016A JP 2018196016 A JP2018196016 A JP 2018196016A JP 6773098 B2 JP6773098 B2 JP 6773098B2
Authority
JP
Japan
Prior art keywords
teaching
data
thinning
robot
force
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018196016A
Other languages
English (en)
Other versions
JP2020062721A (ja
Inventor
壽紘 岩佐
壽紘 岩佐
亮一 永井
亮一 永井
ナサニエル マレニクス
ナサニエル マレニクス
慎悟 安藤
慎悟 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2018196016A priority Critical patent/JP6773098B2/ja
Priority to EP19197569.7A priority patent/EP3639984B1/en
Priority to EP20213747.7A priority patent/EP3812109B1/en
Priority to US16/591,637 priority patent/US11230004B2/en
Priority to CN201910977738.6A priority patent/CN111055265B/zh
Publication of JP2020062721A publication Critical patent/JP2020062721A/ja
Application granted granted Critical
Publication of JP6773098B2 publication Critical patent/JP6773098B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36458Teach only some points, for playback interpolation between points
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36489Position and force
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40387Modify without repeating teaching operation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40435Extract minimum number of via points from a trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本開示は、ロボットシステム及びロボット制御方法に関する。
特許文献1には、ダミー工具と、ダミー工具の三次元空間における座標位置と姿勢を検出する手段とを備え、教示したい位置に配置されたダミー工具の三次元空間における座標位置と姿勢を教示データとして記憶する教示装置が開示されている。
特開平10−138182号公報
本開示は、ロボットに対する動作教示をより簡単にするのに有効なロボットシステムを提供する。
本開示の一側面に係るロボットシステムは、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する教示位置取得部と、教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成する位置間引部と、間引後位置データに基づいて位置指令を生成する位置指令生成部と、位置指令に基づいて作業用のロボットを動作させる制御部と、を備える。
本開示の他の側面に係るロボット制御方法は、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得することと、教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成することと、間引後位置データに基づいて位置指令を生成することと、位置指令に基づいて作業用のロボットを動作させることと、を含む。
本開示によれば、ロボットに対する動作教示をより簡単にするのに有効なロボットシステムを提供することができる。
ロボットシステムの構成を例示する模式図である。 垂直多関節ロボットの構成を例示する模式図である。 実演装置の構成を例示する模式図である。 教示用コンピュータ及びロボットコントローラの機能的構成を例示するブロック図である。 教示位置データを例示するグラフである。 間引き処理の具体的内容を例示するグラフである。 間引き処理の変形例を示すグラフである。 フィルタ処理の具体的内容を例示するグラフである。 教示用コンピュータ及びロボットコントローラのハードウェア構成を例示するブロック図である。 動作教示手順を例示するフローチャートである。 間引き処理手順を例示するフローチャートである。 教示位置データの修正手順を例示するフローチャートである。
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔ロボットシステム〕
本実施形態に係るロボットシステム1は、ワークWに対して研磨作業を行うためのシステムである。なお、ロボットシステム1により実行する作業は研磨作業に限られない。ロボットシステム1は、予め教示した動作に従ってロボットを動作させる限り、ロボットにいかなる作業を実行させるものであってもよい。図1に示すように、ロボットシステム1は、ロボット装置2と動作教示装置3とを備える。
(ロボット装置)
ロボット装置2は、作業用のロボット100と、ロボットコントローラ200とを有する。ロボット100は、ワークWを研磨機4に押し付けることでワークWの研磨作業を行う。ロボットコントローラ200は、予め教示された動作に従ってワークWに対する研磨作業を行うようにロボット100を制御する。
図2に例示するように、ロボット100は、6軸の垂直多関節ロボットであり、先端部110と、基部120と、基部120に対する先端部110の位置及び姿勢を変更する多関節アーム130とを備える。基部120は、ロボット100の作業エリアにおいて例えば床面に設置されている。なお、基部120が台車等の可動部に設置される場合もある。多関節アーム130は、基部120と先端部110とを接続し、第一座標系C1(ロボット座標系)における先端部110の位置及び姿勢を変更する。ロボット座標系は、ロボット100の制御の基準となる座標系であり、例えば基部120に固定された座標系である。
例えば多関節アーム130は、旋回部131と、第一アーム132と、第二アーム133と、手首部134と、アクチュエータ151,152,153,154,155,156とを有する。旋回部131は、鉛直な軸線Ax1まわりに旋回可能となるように、基部120の上部に設けられている。すなわち多関節アーム130は、軸線Ax1まわりに旋回部131を旋回可能とする関節141を有する。
第一アーム132は、軸線Ax1に交差(例えば直交)する軸線Ax2まわりに揺動可能となるように旋回部131に接続されている。すなわち多関節アーム130は、軸線Ax2まわりに第一アーム132を揺動可能とする関節142を有する。なお、ここでの交差とは、所謂立体交差のように、互いにねじれの関係にある場合も含む。以下においても同様である。
第二アーム133は、軸線Ax1に交差する軸線Ax3まわりに揺動可能となるように、第一アーム132の端部に接続されている。すなわち多関節アーム130は、軸線Ax3まわりに第二アーム133を揺動可能とする関節143を有する。軸線Ax3は軸線Ax2に平行であってもよい。
手首部134は、旋回アーム135及び揺動アーム136を有する。旋回アーム135は、第二アーム133の中心に沿って第二アーム133の端部から延出しており、第二アーム133の中心に沿う軸線Ax4まわりに旋回可能である。すなわち多関節アーム130は、軸線Ax4まわりに旋回アーム135を旋回可能とする関節144を有する。
揺動アーム136は、軸線Ax4に交差(例えば直交)する軸線Ax5まわりに揺動可能となるように旋回アーム135の端部に接続されている。すなわち多関節アーム130は、軸線Ax5まわりに揺動アーム136を揺動可能とする関節145を有する。
先端部110は、揺動アーム136の中心に沿う軸線Ax6まわりに旋回可能となるように、揺動アーム136の端部に接続されている。すなわち多関節アーム130は、軸線Ax6まわりに先端部110を旋回可能とする関節146を有する。
アクチュエータ151,152,153,154,155,156は、例えば電動モータを動力源とし、多関節アーム130の複数の関節141,142,143,144,145,146をそれぞれ駆動する。例えばアクチュエータ151は、軸線Ax1まわりに旋回部131を旋回させ、アクチュエータ152は軸線Ax2まわりに第一アーム132を揺動させ、アクチュエータ153は軸線Ax3まわりに第二アーム133を揺動させ、アクチュエータ154は軸線Ax4まわりに旋回アーム135を旋回させ、アクチュエータ155は軸線Ax5まわりに揺動アーム136を揺動させ、アクチュエータ156は軸線Ax6まわりに先端部110を旋回させる。すなわちアクチュエータ151〜156は、関節141〜146をそれぞれ駆動する。
先端部110には、ハンド160が設けられている。ハンド160は、ワークW等の作業対象物を把持するためのツールであり、先端部110に設けられている。ハンド160は、本体161と、複数の指部162とを有する。複数の指部162は、作業対象物の配置領域を囲む(又は挟む)ように配置され、それぞれ本体161に接続されている。本体161は先端部110に装着され、例えば電動モータを駆動源として複数の指部162を駆動する。本体161は、作業対象物を把持する際に複数の指部162を互いに近付け、作業対象物を解放する際に複数の指部162を互いに遠ざける。なお、作業対象物はワークWに限られない。ハンド160による作業対象物は、ワークWに対し作業を行うためのツールであってもよい。
ハンド160は、力センサ170を介して先端部110に取り付けられている。力センサ170は、ハンド160に作用する力を検出する。例えば力センサ170は、互いに直交する三軸線に沿った力と、当該三軸線まわりのトルクと、の6種類の力を検出する6軸型の力センサである。
上述したロボット100の構成はあくまで一例である。ロボット100は、基部120に対する基部120の位置及び姿勢を多関節アーム130により変更する限りいかに構成されていてもよい。例えばロボット100は、上記6軸の垂直多関節ロボットに冗長軸を追加した7軸のロボットであってもよい。
(動作教示装置)
図1に戻り、動作教示装置3は、実演装置30と、教示用コンピュータ400とを有する。実演装置30は、実演ツール31と、教示動作検出部32とを有する。実演ツール31は、ロボット100に対し、実演による動作教示を行うためのツールである。例えば実演ツール31は、教示対象の作業における作業対象物に取り付けられ、当該作業対象物と共に動いて位置及び姿勢の計測ターゲットとなる。
教示動作検出部32は、上記第一座標系C1と異なる第二座標系C2における実演ツール31の位置及び姿勢を検出する。例えば教示動作検出部32は、実演ツール31に接続され、実演ツール31の位置及び姿勢に応じて動作する受動型の多関節アーム33と、多関節アーム33の姿勢を検出するセンサ34とを有する。なお、教示動作検出部32は、第二座標系C2における実演ツール31の位置及び姿勢を検出する限りいかに構成されていてもよい。例えば教示動作検出部32は、画像情報等に基づいて実演ツール31の位置及び姿勢を非接触で検出するものであってもよい。
教示用コンピュータ400は、実演により示される動作のデータを実演装置30から取得し、取得したデータに基づいてロボット100の動作指令を生成する。以下、実演ツール31の位置及び姿勢を接触式で検出する場合の一例として、上述したアーム式の実演装置30の構成をより詳細に説明する。
図3に示すように、実演装置30は、デジタイザ300と、実演作業ツール360とを有する。デジタイザ300は、基部310と、先端部320と、多関節アーム330とを有する。基部310は、ロボット100の作業エリアにおいて例えば床面に設置されている。なお、基部310は台車などの可動部に設置される場合もある。
多関節アーム330は、上記多関節アーム33の一例である。多関節アーム330は、基部310と先端部320とを接続し、上記第二座標系C2(実演座標系)における先端部320の位置及び姿勢に応じて動作する。実演座標系は、実演ツール31の位置及び姿勢の検出基準として予め設定された座標系であり、例えば基部310に固定された座標系である。
例えば多関節アーム330は、旋回部331と、第一アーム332と、第二アーム333と、手首部334と、角度センサ351,352,353,354,355,356とを有する。
旋回部331は、鉛直な軸線Ax11まわりに旋回可能となるように、基部310の上部に設けられている。すなわち多関節アーム330は、軸線Ax1まわりに旋回部331を旋回可能とする関節341を有する。
第一アーム332は、軸線Ax11に交差(例えば直交)する軸線Ax12まわりに揺動可能となるように旋回部331に接続されている。すなわち多関節アーム330は、軸線Ax12まわりに第一アーム332を揺動可能とする関節342を有する。
第二アーム333は、軸線Ax11に交差する軸線Ax13まわりに揺動可能となるように、第一アーム332の端部に接続されている。すなわち多関節アーム330は、軸線Ax13まわりに第二アーム333を揺動可能とする関節343を有する。軸線Ax13は軸線Ax12に平行であってもよい。
手首部334は、旋回アーム335及び揺動アーム336を有する。旋回アーム335は、第二アーム333の中心に沿って第二アーム333の端部から延出しており、第二アーム333の中心に沿う軸線Ax14まわりに旋回可能である。すなわち多関節アーム330は、軸線Ax14まわりに旋回アーム335を旋回可能とする関節344を有する。
揺動アーム336は、軸線Ax14に交差(例えば直交)する軸線Ax15まわりに揺動可能となるように旋回アーム335の端部に接続されている。すなわち多関節アーム330は、軸線Ax5まわりに揺動アーム336を揺動可能とする関節345を有する。
先端部320は、揺動アーム336の中心に沿う軸線Ax16まわりに旋回可能となるように、揺動アーム336の端部に接続されている。すなわち多関節アーム330は、軸線Ax16まわりに先端部320を旋回可能とする関節346を有する。
角度センサ351,352,353,354,355,356は、上記センサ34の一例である。角度センサ351,352,353,354,355,356は、例えばロータリーエンコーダ又はポテンショメータ等の角度センサであり、多関節アーム330の複数の関節341,342,343,344,345,346の動作角度をそれぞれ検出する。例えば角度センサ351は、軸線Ax11まわりの旋回部131の旋回角度を検出し、角度センサ352は軸線Ax12まわりの第一アーム332の揺動角度を検出し、角度センサ353は軸線Ax13まわりの第二アーム333の揺動角度を検出し、角度センサ354は軸線Ax14まわりの旋回アーム335の旋回角度を検出し、角度センサ355は軸線Ax15まわりの揺動アーム336の揺動角度を検出し、角度センサ356は軸線Ax16まわりの先端部320の旋回角度を検出する。
実演作業ツール360は、先端部320に対して着脱可能なツールである。本構成において、上記実演ツール31は、先端部320と、実演作業ツール360とを含む。
実演作業ツール360は、ワークW等の作業対象物を把持するためのツールである。例えば実演作業ツール360は、装着部361と、ハンド362と、力センサ363とを有する。装着部361は、先端部320に対して着脱される。ハンド362は、上記作業対象物を把持する部分である。ハンド362は、本体364と、複数の指部365とを有する。複数の指部365は、作業対象物の配置領域を囲む(又は挟む)ように配置され、それぞれ本体364に接続されている。本体364は、例えば作業者の手動操作によって複数の指部365を動かす。本体364は、作業対象物を把持する際に複数の指部365を互いに近付け、作業対象物を解放する際に複数の指部365を互いに遠ざける。なお、作業対象物はワークWに限られない。実演作業ツール360による作業対象物は、ワークWに対し作業を行うためのツールであってもよい。
ハンド362は、力センサ363を介して装着部361に取り付けられている。力センサ363は、実演ツール31に作用する力の一例として、ハンド362に作用する力を検出する。例えば力センサ363は、互いに直交する三軸線に沿った力と、当該三軸線まわりのトルクと、の6種類の力を検出する6軸型の力センサである。
(教示用コンピュータ)
続いて、教示用コンピュータ400の構成を詳細に例示する。教示用コンピュータ400は、作業者の実演データに基づいてロボット100の動作指令を生成する。作業者の実演データは、作業者の実演作業中に取得されるデータであり、少なくとも実演作業中における実演ツール31の位置及び姿勢に関するデータを含む。動作指令は、少なくとも位置指令を含む。位置指令は、時系列に並ぶ複数の目標位置に先端部110を順次追従させる指令であり、複数の目標位置にそれぞれ対応する複数の移動命令を含む。目標位置は、先端部110の位置の目標値と、先端部110の姿勢の目標値とを含む。
例えば教示用コンピュータ400は、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得することと、教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成することと、間引後位置データに基づいて位置指令を生成することと、を実行するように構成されている。
作業者の実演データは、実演作業中に実演ツール31に作用する力に関するデータを更に含んでもよく、動作指令は、力指令を含んでもよい。力指令は、ロボット100が作業対象物に付与する力を時系列に並ぶ複数の目標作業力に順次追従させる指令であり、複数の目標作業力にそれぞれ対応する複数の力付与命令を含む。教示用コンピュータ400は、作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得することと、教示力データから少なくとも一つの教示力を間引いた間引後力データを生成することと、間引後力データに基づいて力指令を生成することと、を更に実行するように構成されていてもよい。
例えば教示用コンピュータ400は、機能上の構成(以下、「機能モジュール」という。)として、教示位置取得部411と、教示力取得部412と、教示データ保持部413と、位置間引部414と、位置指令生成部415と、力間引部416と、力指令生成部417と、指令保持部418と、指令登録部419とを備える。
教示位置取得部411は、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する。教示位置は、先端部110の目標位置を定める情報である限り、いかなる情報であってもよい。例えば教示位置は、先端部110の目標位置を直接定める情報(すなわち、先端部110の目標位置自体)であってもよいし、先端部110の目標位置を間接的に定める情報であってもよい。
例えば教示位置取得部411は、作業者の実演データの一例として、実演ツール31を用いた実演作業中に、多関節アーム330の関節341,342,343,344,345,346の動作角度の情報を角度センサ351,352,353,354,355,356からそれぞれ取得する。更に教示位置取得部411は、多関節アーム330の関節341,342,343,344,345,346の動作角度に基づく順運動学演算により、第二座標系C2における実演ツール31の位置及び姿勢を算出する。第二座標系C2における実演ツール31の位置及び姿勢に基づけば、第二座標系C2から第一座標系C1への座標変換を含む演算により、先端部110の目標位置が定まる。従って、第二座標系C2における実演ツール31の位置及び姿勢は、上記教示位置の一例に相当する。
教示位置取得部411は、関節341,342,343,344,345,346の動作角度の情報の取得と、第二座標系C2における実演ツール31の位置及び姿勢の算出とを、実演作業中に周期的に繰り返すことによって、時系列に並ぶ複数の教示位置を含む教示位置データを得る。
教示力取得部412は、作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得する。教示力は、先端部110の目標作業力(先端部110が作業対象物に付与する力の目標値)を定める情報である限り、いかなる情報であってもよい。例えば教示力は、先端部110の目標作業力を直接定める情報(すなわち、先端部110の目標作業力自体)であってもよいし、先端部110の目標作業力を間接的に定める情報であってもよい。例えば教示力取得部412は、作業者の実演データの一例として、実演ツール31を用いた実演作業中に、実演ツール31に作用する力の情報を力センサ363から取得する。実演ツール31に作用する力に基づけば、先端部110が作業対象物に付与すべき力(すなわち上記目標作業力)が定まる。従って、実演ツール31に作用する力は、上記教示力の一例に相当する。教示力取得部412は、実演ツール31に作用する力の情報の取得と、先端部110の目標作業力の算出とを、実演作業中に周期的に繰り返すことによって、時系列に並ぶ複数の教示力を含む教示力データを得る。
教示データ保持部413は、教示位置取得部411により取得された教示位置データと、教示力取得部412により取得された教示力データとを記憶する。
位置間引部414は、教示データ保持部413が記憶する教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成する。例えば位置間引部414は、ロボット100の動きへの影響が小さい教示位置を教示位置データから間引いて間引後位置データを生成する。
ロボット100の動きへの影響に基づく間引き処理の一例として、位置間引部414は、教示位置が存在する場合のロボット100の動作と、当該教示位置が存在しない場合のロボット100の動作との差が大きい場合には当該教示位置が残るように間引後位置データを生成してもよい。
教示位置が存在する場合のロボット100の動作と、当該教示位置が存在しない場合のロボット100の動作との差を示す数値の一例として、位置間引部414は、教示位置と、当該教示位置の前後の教示位置同士を結ぶ基準ラインとの乖離を算出し、当該乖離の大きさに基づいて当該教示位置を間引くか否かを決定してもよい。
例えば位置間引部414は、教示位置データの少なくとも一部の時区間において、両端の教示位置を採用した後に、採用済の教示位置同士を結ぶ基準ラインを導出することと、基準ラインからの乖離の大きさに基づいて他の教示位置の採用可否を決定することとを所定条件が満たされるまで繰り返し、採用されなかった教示位置を間引いて間引後位置データを生成する。上記所定条件(以下、「繰り返し完了条件」という。)の具体例としては、採用済の教示位置の数が上限値に達すること等が挙げられる。上限値は、例えばロボットコントローラ200に登録可能な移動命令の数等に基づいて設定される。なお、一つの教示位置は、複数の数値要素(例えば座標軸ごとの位置及び姿勢角度)を含む場合がある。この場合、位置間引部414は、数値要素ごとの上記乖離を合計して教示位置と基準ラインとの乖離を算出してもよい。
図5は、教示位置データを例示するグラフである。図6は、間引き処理の具体的内容を例示するグラフである。図5及び図6のグラフの横軸は、経過時間を示し、縦軸は教示位置の値を示している。図5及び図6に例示する教示位置データは、26個の教示位置P01〜P26を含んでいる。図6において、白丸は未採用の教示位置を示し、黒丸は採用済の教示位置を示している。
まず、位置間引部414は、教示位置データの少なくとも一部の時区間(例えば全時区間)において、両端の教示位置P01,P26を採用する(図6の(a)参照)。次に、位置間引部414は、教示位置P01,P26を結ぶ基準ラインBL01を導出し、基準ラインBL01からの乖離が最大の教示位置P06を採用する(図6の(b)参照)。次に、位置間引部414は、採用済の教示位置P01,P06,P26同士を結ぶ基準ラインBL02を導出し、基準ラインBL02からの乖離が最大の教示位置P15を採用する(図6の(c)参照)。次に、位置間引部414は、採用済の教示位置P01,P06,P15,P26同士を結ぶ基準ラインBL03を導出し、基準ラインBL03からの乖離が最大の教示位置P20を採用する(図6の(d)参照)。位置間引部414は、採用済の教示位置の数が上限値(例えば10個)に達するまで繰り返す。これにより、10個の教示位置P01,P04,P06,P07,P15,P17,P20,P22,P24,P26が採用される(図6の(e)参照)。その後、位置間引部414は、採用されなかった教示位置P02,P03,P05,P08,P09,P10,P11,P12,P13,P14,P16,P18,P19,P21,P23,P25を間引く(図6の(f)参照)。以上で教示位置データの間引き処理が完了する。
以上の手順において、採用数が上限値に達するまでに採用されなかった教示位置は、採用された教示位置に比較して基準ラインからの乖離が相対的に小さい。基準ラインからの乖離の大きさは、ロボットの動きへの影響の大きさに相関する。すなわち、以上の手順によれば、ロボットの動きへの影響が比較的小さい教示位置が間引かれている。このため、全ての教示位置P01〜P26を結ぶ移動軌跡PT01と、間引き後の教示位置P01,P04,P06,P07,P15,P17,P20,P22,P24,P26を結ぶ移動軌跡PT02との乖離が小さく抑えられている。
上記繰り返し完了条件は、採用済の教示位置の数が上限値に達することに限られない。例えば位置間引部414は、基準ラインからの乖離が所定の閾値を超える教示位置がなくなることを繰り返し完了条件としてもよい。この場合、採用済の教示位置の数が上限値を超えてしまう可能性がある。採用済の教示位置の数が上限値を超えてしまう場合には、乖離の閾値の値を修正する等の手法により、採用済の教示位置の数を調節することが可能である。
また、教示位置と、当該教示位置の前後の教示位置同士を結ぶ基準ラインとの乖離の大きさに基づく手法は、図6に例示する手法に限られない。図7は、教示位置と、当該教示位置の前後の教示位置同士を結ぶ基準ラインとの乖離の大きさに基づく手法の変形例を示すグラフである。図7の手法においては、両端の教示位置P01,P26を除く教示位置P02〜P25のそれぞれの採用可否が、一つ前の教示位置及び一つ後の教示位置を基準にして判定される。
まず、位置間引部414は、教示位置P01,P03を結ぶ基準ラインBL11からの乖離の大きさに基づいて教示位置P02の採用可否を判定する(図7の(a)参照)。基準ラインBL11からの乖離が閾値より小さい場合、教示位置P02は間引かれる。次に、位置間引部414は、教示位置P01,P04を結ぶ基準ラインBL12からの乖離の大きさに基づいて教示位置P03の採用可否を判定する(図7の(b)参照)。基準ラインBL12からの乖離が閾値より小さい場合、教示位置P03は間引かれる。次に、位置間引部414は、教示位置P01,P05を結ぶ基準ラインBL13からの乖離の大きさに基づいて教示位置P04の採用可否を判定する(図7の(c)参照)。基準ラインBL13からの乖離が閾値より大きい場合、教示位置P04は採用される。次に、位置間引部414は、教示位置P04,P06を結ぶ基準ラインBL14からの乖離の大きさに基づいて教示位置P05の採用可否を判定する(図7の(d)参照)。基準ラインBL14からの乖離が閾値より小さい場合、教示位置P05は間引かれる。次に、位置間引部414は、教示位置P04,P07を結ぶ基準ラインBL15からの乖離の大きさに基づいて教示位置P06の採用可否を判定する(図7の(e)参照)。基準ラインBL15からの乖離が閾値より大きい場合、教示位置P06は採用される。位置間引部414は、以上の処理を教示位置P25の採用可否判定まで繰り返す。これにより、10個の教示位置P01,P04,P06,P07,P15,P17,P20,P22,P24,P26が採用される(図7の(f)参照)。
以上の手順においても、採用されなかった教示位置は、採用された教示位置に比較して基準ラインからの乖離が相対的に小さい。すなわち、以上の手順によっても、ロボットの動きへの影響が比較的小さい教示位置が間引かれている。このため、全ての教示位置P01〜P26を結ぶ移動軌跡PT01と、間引き後の教示位置P01,P04,P06,P07,P15,P17,P20,P22,P24,P26を結ぶ移動軌跡PT02との乖離が小さく抑えられている。
図4に戻り、位置指令生成部415は、間引後位置データに基づいて位置指令を生成する。例えば位置指令生成部415は、間引後位置データが含む複数の教示位置に対し、第二座標系C2から第一座標系C1への座標変換を含む演算を施して複数の目標位置を算出し、複数の目標位置にそれぞれ対応する複数の移動命令を生成する。
なお、実演作業時に作業対象物が配置される位置及び姿勢(以下、「実演位置」という。)と、実演作業に対応するロボット100の動作時に作業対象物が配置される位置及び姿勢(以下、「再生位置」という。)とが異なる場合もある。このような場合であっても、第二座標系C2における実演位置の座標データと、第一座標系C1における再生位置の座標データとの関係が既知であれば、複数の教示位置に基づき複数の目標位置を算出することが可能である。
力間引部416は、教示データ保持部413が記憶する教示力データから少なくとも一つの教示力を間引いた間引後位置データを生成する。力間引部416による教示力の間引き処理には、位置間引部414による教示位置の間引き処理と同様の手法を適用可能である。例えば力間引部416は、ロボット100が作業対象物に付与する力(以下、「作業力」という。)への影響が小さい教示力を教示力データから間引いて間引後力データを生成する。
作業力への影響に基づく間引き処理の一例として、力間引部416は、教示力が存在する場合のロボット100の作業力と、当該教示力が存在しない場合のロボット100の作業力との差が大きい場合には当該教示力が残るように間引後力データを生成してもよい。教示力が存在する場合のロボット100の作業力と、当該教示力が存在しない場合のロボット100の作業力との差を示す数値の一例として、力間引部416は、教示力と、当該教示力の前後の教示力同士を結ぶ基準ラインとの乖離を算出し、当該乖離の大きさに基づいて当該教示力を間引くか否かを決定してもよい。
例えば力間引部416は、教示力データの少なくとも一部の時区間において、両端の教示力を採用した後に、採用済の教示力同士を結ぶ基準ラインを導出することと、基準ラインからの乖離の大きさに基づいて他の教示力の採用可否を決定することとを所定条件が満たされるまで繰り返し、採用されなかった教示力を間引いて間引後力データを生成する。上記所定条件(以下、「繰り返し完了条件」という。)の具体例としては、採用済の教示力の数が上限値に達すること等が挙げられる。上限値は、例えばロボットコントローラ200に登録可能な力付与命令の数等に基づいて設定される。
なお、一つの教示力は、複数の数値要素(例えば座標軸ごとの力成分)を含む場合がある。この場合、力間引部416は、数値要素ごとの上記乖離を合計して教示力と基準ラインとの乖離を算出してもよい。
力指令生成部417は、間引後力データに基づいて力指令を生成する。例えば力指令生成部417は、間引後力データが含む複数の教示力に基づいて複数の目標作業力を算出し、複数の目標位置にそれぞれ対応する複数の力付与命令を生成する。指令保持部418は、位置指令生成部415により生成された位置指令及び力指令生成部417により生成された力指令を記憶する。指令登録部419は、指令保持部418が記憶する位置指令及び力指令をロボットコントローラ200に登録する。
教示用コンピュータ400は、測定データ取得部421と、位置修正部422と、反復管理部423とを更に有してもよい。測定データ取得部421は、ロボットコントローラ200がロボット100を動作させる際に、ロボット100が作業対象物に付与する力の測定データを取得する。例えば、測定データ取得部421は、力センサ170による測定データをロボットコントローラ200から取得する。
位置修正部422は、測定データ取得部421が取得した測定データが上記教示力データに近付くように位置指令を修正する。例えば位置修正部422は、位置指令及び力指令に基づいてロボット100を動作させることをロボットコントローラ200に要求する。これに応じロボットコントローラ200がロボット100を動作させ、その間の測定データを測定データ取得部421がロボットコントローラ200から取得する。位置修正部422は、当該測定データが上記教示力データに近付くように位置指令を修正する。
例えば位置修正部422は、ロボット100の動作開始時を基準とする複数時点において、当該測定データと教示力データとの偏差を算出し、各時点の偏差を縮小するように位置指令を修正する。例えば位置修正部422は、当該測定データと教示力データとの偏差に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して位置指令の修正量を算出する。
なお、位置修正部422は、測定データと教示力データとの偏差に代えて、測定データと間引後力データとの偏差に基づいて位置指令を修正してもよい。上述のとおり、間引後力データは、間引き前後の力推移の乖離を抑制するように生成されているので、測定データと間引後力データとの偏差に基づいたとしても、結果的に測定データが教示力データに近付くこととなる。
位置修正部422は、位置指令の修正の一例として、測定データが教示力データに近付くように教示位置データを修正してもよい。この場合、教示位置データの修正に応じて位置指令が修正されるように、位置間引部414は、位置修正部422による修正後の教示位置データから少なくとも一つの教示位置を間引いて間引後位置データを更新する。
位置指令生成部415は、位置間引部414により更新された間引後位置データに基づいて位置指令を更新する。ここでの更新は、古いデータを新たなデータに置き換えることを含む。また、ここでの置き換えは、古いデータを新たなデータで上書きすることを含む。
なお、位置修正部422は、教示位置データに代えて間引後位置データを修正してもよい。この場合、教示位置が存在しない時間における位置の修正が必要となる場合がある。そして、教示位置が存在しない時間における位置の修正を行うと、結果的に間引後位置データが含む教示位置の数が増加する場合がある。そこで、位置修正部422が間引後位置データを修正する場合、位置間引部414は、位置修正部422による修正後の間引後位置データから少なくとも一つの教示位置を間引いて間引後位置データを更新してもよい。位置指令生成部415は、位置間引部414により更新された間引後位置データに基づいて位置指令を更新してもよい。
反復管理部423は、測定データと教示力データとの乖離が許容条件を満たすまで、ロボットコントローラ200の制御部212(後述)によるロボット100の動作と、測定データ取得部421による測定データの取得と、位置修正部422による位置指令の修正とを繰り返させる。許容条件の具体例としては、上記複数時点における測定データと教示力データとの偏差の絶対値の総和が所定の許容値以下であること、上記複数時点における測定データと教示力データとの偏差の二乗の総和が所定の許容値以下であること等が挙げられる。ロボット100の動作、測定データの取得及び位置指令の修正を反復管理部423が繰り返させることにより、測定データが許容条件を満たす範囲内に収束することとなる。例えば、位置修正部422が教示位置データの修正を繰り返す場合には、教示データ保持部413が記憶する教示位置データに位置修正部422による修正結果が蓄積され、測定データが許容条件を満たす値に収束する。
教示用コンピュータ400は、フィルタ処理部424を更に有してもよい。フィルタ処理部424は、作業対象物に力を付与する前におけるロボット100の位置変動(例えば先端部110の位置変動)を縮小するように教示位置データを修正する。例えばフィルタ処理部424は、作業対象物に力を付与する前における教示位置に、ローパス型のフィルタリングを施して教示位置データを修正する。ローパス型のフィルタリングの具体例としては、有限インパルス応答方式のフィルタリングが挙げられる。
図8は、フィルタ処理の具体的内容を例示するグラフである。図8の横軸は、経過時間を示している。図8の(a)の縦軸は教示位置の値を示している。図8の(b)の縦軸は教示力の値を示している。図8の(a)の実線は、フィルタ処理前の教示位置データを示し、図8の(a)の破線はフィルタ処理後の教示位置データを示している。
図8では、時刻t02以降に教示力が上昇していることから、時刻t02において力の付与の開始が想定される。力の付与後にはフィルタ処理を適用しないように、フィルタ処理部424は、時刻t02よりも所定時間前の時刻t01を基準とし、時刻t01以前の教示位置データにフィルタ処理を施し、時刻t01以後の教示位置データにはフィルタ処理を施していない。これにより、時刻t01以前においては、作業者の手振れ等に起因する教示位置の変動が縮小されている。
(ロボットコントローラ)
ロボットコントローラ200は、機能モジュールとして、指令保持部211と、制御部212と、測定データ取得部213と、測定データ保持部214とを有する。
指令保持部211は、教示用コンピュータ400の指令登録部419により登録された位置指令及び力指令を記憶する。制御部212は、少なくとも、指令保持部211が記憶する位置指令に基づいてロボット100を動作させる。例えば制御部212は、位置指令に基づいて先端部110の目標位置を算出することと、先端部110の目標位置に対応する関節141,142,143,144,145,146の目標角度を算出することと、関節141,142,143,144,145,146の角度を目標角度に追従させるための駆動電力をアクチュエータ151,152,153,154,155,156に出力することとを所定の制御周期で繰り返す。
測定データ取得部213は、制御部212がロボット100を動作させる際に、ロボット100が作業対象物に付与する力の測定データを力センサ170から取得する。例えば測定データ取得部213は、上記制御周期ごとに力センサ170から測定データを取得する。
測定データ保持部214は、ロボット100の動作中に測定データ取得部213が取得した測定データを時系列で記憶する。上記測定データ取得部421は、例えば測定データ保持部214から測定データを取得する。
ロボットコントローラ200は、制御目標補正部215を更に有してもよい。制御目標補正部215は、ロボット100が作業対象物に付与する力を力指令に近付けるように、制御部212によるロボット100の制御目標位置をロボット100の動作中に修正する。
例えば制御目標補正部215は、力センサ170による測定データと力指令との偏差を縮小するように、先端部110の位置及び姿勢の修正量(以下、「目標位置修正量」という。)を制御周期ごとに算出し、目標位置修正量を次の制御周期の目標位置に加算する。例えば制御目標補正部215は、力センサ170による測定データが力指令よりも大きい場合には力を弱める方向に目標位置修正量を算出し、力センサ170による測定データが力指令よりも小さい場合には力を強める方向に目標位置修正量を算出する。より具体的に、制御目標補正部215は、力センサ170による測定データと力指令との偏差に比例演算、比例・積分演算、又は比例・積分・微分演算等を施して目標位置修正量を算出する。制御目標補正部215に従うことにより、制御部212は、指令保持部211が記憶する位置指令と力指令との両方に基づいてロボット100を動作させることとなる。
(教示用コンピュータ及びロボットコントローラのハードウェア構成)
図9に示すように、教示用コンピュータ400は、本体481と、表示デバイス482及び入力デバイス483と、を備える。表示デバイス482及び入力デバイス483は、教示用コンピュータ400のユーザインタフェースとして機能する。表示デバイス482は、例えば液晶モニタ等を含み、ユーザに対する情報表示に用いられる。入力デバイス483は、例えばフットスイッチ又はキーボード等であり、ユーザによる入力情報を取得する。表示デバイス482及び入力デバイス483は、所謂タッチパネルのように一体化されていてもよい。
本体481は、回路490を含む。回路490は、少なくとも一つのプロセッサ491と、メモリ492と、ストレージ493と、入出力ポート494と、通信ポート495とを含む。ストレージ493は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。
ストレージ493は、実演ツール31に設けられたツール指標部が第一座標系C1における複数の位置に配置された状態にて教示動作検出部32が検出する位置及び姿勢の情報を含む基準情報を取得することと、基準情報に基づいて、第一座標系C1と第二座標系C2との関係を示す座標関係情報を導出することと、実演ツール31を用いた実演作業中に教示動作検出部32が検出する位置及び姿勢の推移を示す情報を含む実演動作情報を取得することと、実演動作情報と座標関係情報とに基づいて先端部110の動作指令を生成することと、を含む動作教示方法を教示用コンピュータに実行させるためのプログラムを記憶する。例えばストレージ493は、上述の機能モジュールを構成するための記憶領域と、教示データ保持部413及び指令保持部418に割り当てられる記憶領域とを含む。
メモリ492は、ストレージ493からロードしたプログラム及びプロセッサ491による演算結果等を一時的に記憶する。プロセッサ491は、メモリ492と協働して上記プログラムを実行することで、教示用コンピュータ400の各機能モジュールを構成する。入出力ポート494は、プロセッサ491からの指令に応じて角度センサ351,352,353,354,355,356、力センサ363及び入力デバイス483からの信号を取得し、また、表示デバイス482へ信号を出力する。通信ポート495は、プロセッサ291からの指令に応じ、ロボットコントローラ200との間でネットワーク通信を行う。
ロボットコントローラ200は、回路290を備える。回路290は、少なくとも一つのプロセッサ291と、メモリ292と、ストレージ293と、入出力ポート294と、ドライバ295と、通信ポート296とを含む。ストレージ293は、コンピュータによって読み取り可能な不揮発型の記憶媒体(例えばフラッシュメモリ)である。ストレージ293は、上述の機能モジュールを構成するための記憶領域と、指令保持部211及び測定データ保持部214に割り当てられる記憶領域を含む。
メモリ292は、ストレージ293からロードしたプログラム及びプロセッサ291による演算結果等を一時的に記憶する。プロセッサ291は、メモリ292と協働して上記プログラムを実行することで、ロボットコントローラ200の各機能モジュールを構成する。入出力ポート294は、プロセッサ291からの指令に応じて力センサ170からの信号を取得する。ドライバ295は、プロセッサ291からの指令に応じてアクチュエータ151,152,153,154,155,156に駆動電力を出力する。通信ポート296は、プロセッサ291からの指令に応じ、教示用コンピュータ400との間でネットワーク通信を行う。
〔動作教示手順〕
続いて、動作教示方法の一例として、ロボットシステム1が実行する動作教示手順を例示する。この手順は、作業者の実演データに基づいて教示位置データを取得することと、教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成することと、間引後位置データに基づいて位置指令を生成することと、位置指令に基づいて作業用のロボットを動作させることと、を含む。この手順は、作業者の実演データに基づいて教示力データを取得することと、教示力データから少なくとも一つの教示力を間引いた間引後力データを生成することと、間引後力データに基づいて力指令を生成することと、を更に含み、位置指令と力指令とに基づいて作業用のロボットを動作させてもよい。
図10に示すように、教示用コンピュータ400は、まずステップS01,S02を実行する。ステップS01では、教示位置取得部411が、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する。また、ステップS01では、教示力取得部412が、作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得する。ステップS02では、フィルタ処理部424が、作業対象物に力を付与する前におけるロボット100の位置変動(例えば先端部110の位置変動)を縮小するように教示位置データを修正する。
次に、教示用コンピュータ400は、ステップS03を実行する。ステップS03では、位置間引部414が、教示データ保持部413が記憶する教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成し、指令保持部418に保存する。また、ステップS03では、力間引部416が、教示データ保持部413が記憶する教示力データから少なくとも一つの教示力を間引いた間引後位置データを生成し、指令保持部418に保存する。ステップS03の処理手順については、後に詳細に例示する。
次に、教示用コンピュータ400は、ステップS04,S05を実行する。ステップS04では、位置指令生成部415が、間引後位置データに基づいて位置指令を生成し、指令保持部418に保存する。また、ステップS04では、力指令生成部417が、間引後力データに基づいて力指令を生成し、指令保持部418に保存する。ステップS05では、指令登録部419が、指令保持部418が記憶する位置指令及び力指令をロボットコントローラ200に登録する。
次に、教示用コンピュータ400は、ステップS06を実行する。ステップS06では、位置修正部422が、ロボットコントローラ200の制御部212に、位置指令に従った動作制御を要求する。制御部212は、指令保持部211が記憶する位置指令に基づいてアクチュエータ151〜156を動作させる。この際に、制御目標補正部215が、ロボット100の制御目標位置を修正してもよい。例えば、制御目標補正部215は、力センサ170による測定データと指令保持部211が記憶する力指令との偏差を縮小するように、目標位置修正量を制御周期ごとに算出し、目標位置修正量を次の制御周期の目標位置に加算してもよい。すなわち、制御部212は、位置指令と力指令との両方に基づいて動作させてもよい。
次に、教示用コンピュータ400は、ステップS07,S08,S09を実行する。ステップS07では、測定データ取得部421が、力センサ170による測定データをロボットコントローラ200から取得する。ステップS08では、反復管理部423が、測定データ取得部421により取得された測定データと、教示力データとの乖離値を算出する。乖離値の例としては、例えば、複数時点における測定データと教示力データとの偏差の絶対値の総和、及び当該偏差の二乗の総和が挙げられる。ステップS09では、反復管理部423が、ステップS08において算出された乖離値が許容値以下であるか否かを確認する。
ステップS09において乖離値が許容値を超えている場合、教示用コンピュータ400はステップS11を実行する。ステップS11では、位置修正部422が、教示位置データを修正する。ステップS11の処理手順については、後に詳細に例示する。ステップS11の終了後、教示用コンピュータ400は処理をステップS03に戻す。以後、乖離値が許容値以下となるまでは、位置間引部414による教示位置データの間引き処理と、制御部212によるロボット100の動作と、位置修正部422による教示位置データの修正とが繰り返される。
ステップS09において乖離値が許容値以下である場合、反復管理部423は、ステップS03からステップS11までの処理の繰り返しを完了する。以上で動作教示手順が完了する。
図11は、ステップS03における間引き処理手順を例示するフローチャートである。図11は、位置間引部414による間引き処理及び力間引部416による間引き処理に共通する。このため、図11においては、教示位置又は教示力に相当する要素を「教示点」と記載している。
図11に示すように、教示用コンピュータ400は、まずステップS21,S22,S23,S24を実行する。ステップS21では、位置間引部414又は力間引部416が、少なくとも一部の時区間の両端の教示点を採用候補リストに追加する。ステップS22では、位置間引部414又は力間引部416が、採用候補リストに追加された教示点同士を結ぶ基準ラインを導出する。ステップS23では、位置間引部414又は力間引部416が、基準ラインからの乖離値が最大の教示点を採用候補リストに追加する。ステップS24では、位置間引部414又は力間引部416が、採用候補リストに追加された教示点の数が上限値に達したか否かを確認する。
ステップS24において採用候補リストに追加された教示点の数が上限値に達していない場合、教示用コンピュータ400は処理をステップS22に戻す。以後、採用候補リストに追加された教示点の数が上限値に達するまで、基準ラインを導出することと、基準ラインからの乖離最大の教示点を採用候補リストに追加することとが繰り返される。
ステップS24において採用候補リストに追加された教示点の数が上限値に達している場合、教示用コンピュータ400はステップS25を実行する。ステップS25では、位置間引部414又は力間引部416が、採用候補リストにない教示点を間引く。以上で間引き処理手順が完了する。
図12は、ステップS11における教示位置データの修正手順を例示するフローチャートである。図12に示すように、教示用コンピュータ400は、ステップS31,S32,S33,S34,S35を実行する。ステップS31では、位置修正部422が、全時区間の最初の教示位置を選択する。ステップS32では、位置修正部422が、選択中の教示位置に対応する時刻について、測定データと教示力データとの偏差を算出する。ステップS33では、位置修正部422が、ステップS32で算出された力偏差に基づいて位置補正値を算出する。ステップS34では、位置修正部422が、ステップS33で算出された位置補正値を、選択中の教示位置に加算する。ステップS35では、選択中の教示位置が最終の教示位置であるか否かを確認する。
ステップS35において選択中の教示位置が最終の教示位置でない場合、教示用コンピュータ400はステップS36を実行する。ステップS36では、位置修正部422が、次の教示位置を選択する。その後、教示用コンピュータ400は処理をステップS32に戻す。以後、最終の教示位置の修正が完了するまで、教示位置の選択と修正とが繰り返される。
ステップS35において選択中の教示位置が最終の教示位置である場合、教示用コンピュータ400は処理を終了する。以上で教示位置データの修正手順が完了する。
〔本実施形態の効果〕
以上に説明したように、ロボットシステム1は、作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する教示位置取得部411と、教示位置データから少なくとも一つの教示位置を間引いた間引後位置データを生成する位置間引部414と、間引後位置データに基づいて位置指令を生成する位置指令生成部415と、位置指令に基づいて作業用のロボット100を動作させる制御部212と、を備える。
このロボットシステム1によれば、実演データに基づく教示位置データから教示位置を間引く処理により、限られたデータ点数で実演データを適切に再現する位置指令が自動生成される。従って、ロボット100に対する動作教示をより簡単にするのに有効である。また、位置指令のデータ点数が削減されることによって、位置指令のマニュアル調整の作業性も向上する。更に、位置指令のデータ点数が削減することによって、ロボット100の無駄な動きが抑制され、これが動作の高速化、高効率化に寄与する場合もある。
位置間引部414は、ロボット100の動きへの影響が小さい教示位置を教示位置データから間引いて間引後位置データを生成してもよい。この場合、ロボット100の動きへの影響が小さい教示位置が間引かれるので、実演データをより適切に再現する位置指令を生成することができる。
ロボットシステム1は、作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得する教示力取得部412と、教示力データから少なくとも一つの教示力を間引いた間引後力データを生成する力間引部416と、間引後力データに基づいて力指令を生成する力指令生成部417と、を更に備え、制御部212は、位置指令と力指令とに基づいてロボット100を動作させてもよい。この場合、実演データに基づく力指令を生成した上で、力の経時変動への寄与が小さい力目標値を間引く処理により、限られたデータ点数で実演データを適切に再現する力指令が更に自動生成される。従って、ロボット100に対する動作教示をより簡単にするのに有効である。
力間引部416は、ロボット100がワークWに付与する力への影響が小さい教示力を教示力データから間引いて間引後力データを生成してもよい。この場合、ロボット100が生じる力への影響が小さい教示力が間引かれるので、実演データをより適切に再現する力指令を生成することができる。
ロボットシステム1は、制御部212がロボット100を動作させる際に、ロボット100がワークWに付与する力の測定データを取得する測定データ取得部421と、測定データが教示力データに近付くように位置指令を修正する位置修正部422と、を更に備えていてもよい。この場合、位置指令への追従と力指令への追従とを両立するように、位置指令が自動調節される。従って、ロボット100に対する動作教示をより簡単にするのに有効である。
位置修正部422は、測定データが教示力データに近付くように教示位置データを修正し、位置間引部414は、位置修正部422による修正後の教示位置データから少なくとも一つの教示位置を間引いて間引後位置データを更新し、位置指令生成部415は、位置間引部414により更新された間引後位置データに基づいて位置指令を更新してもよい。この場合、データ点数の増加を抑制しつつ、位置指令が適切に自動調節される。更に、間引き前の教示位置データを修正することで、より細やかな位置修正が可能である。従って、ロボット100に対する動作教示をより簡単にするのに有効である。
ロボットシステム1は、測定データと教示力データとの乖離が許容条件を満たすまで、制御部212によるロボット100の動作と、測定データ取得部421による測定データの取得と、位置修正部による位置指令の修正とを繰り返させる反復管理部423を更に備えていてもよい。この場合、繰り返し処理によって、位置指令がより適切に自動調節される。従って、ロボット100に対する動作教示をより簡単にするのに有効である。
位置間引部414は、教示位置が存在する場合のロボット100の動作と、当該教示位置が存在しない場合のロボット100の動作との差が大きい場合には当該教示位置が残るように間引後位置データを生成してもよい。
位置間引部414は、教示位置と、当該教示位置の前後の教示位置同士を結ぶ基準ラインとの乖離の大きさに基づいて、当該教示位置を間引くか否かを決定してもよい。この場合、ロボット100の動きへの影響が小さい位置目標値を容易に間引くことができる。
位置間引部414は、教示位置データの少なくとも一部の時区間において、両端の教示位置を採用した後に、採用済の教示位置同士を結ぶ基準ラインを導出することと、基準ラインからの乖離の大きさに基づいて他の教示位置の採用可否を決定することとを所定条件が満たされるまで繰り返し、採用されなかった教示位置を間引いて間引後位置データを生成してもよい。この場合、ロボット100の動きへの影響が小さい位置目標値を更に容易に間引くことができる。
ロボットシステム1は、ワークWに力を付与する前におけるロボット100の位置変動を縮小するように教示位置データを修正するフィルタ処理部424を更に備え、位置間引部414は、フィルタ処理部424による修正後の教示位置データから少なくとも一つの教示位置を間引いて間引後位置データを生成してもよい。この場合、作業結果に影響しない動作における位置目標値が間引かれ易くなるので、限られたデータ点数を実演データの再現に更に有効活用することができる。
ロボットシステム1は、ロボット100がワークWに付与する力を力指令に近付けるように、制御部212によるロボット100の制御目標位置をロボット100の動作中に修正する制御目標補正部215を更に備えていてもよい。この場合、限られたデータ点数にて、実演における力の推移をより適切に再現させることができる。
以上、実施形態について説明したが、本発明は必ずしも上述した形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
1…ロボットシステム、100…ロボット、212…制御部、215…制御目標補正部、411…教示位置取得部、414…位置間引部、415…位置指令生成部、416…力間引部、417…力指令生成部、421…測定データ取得部、422…位置修正部、W…ワーク(作業対象物)。

Claims (13)

  1. 作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する教示位置取得部と、
    前記作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得する教示力取得部と、
    前記教示位置データから少なくとも一つの前記教示位置を間引いた間引後位置データを生成する位置間引部と、
    前記間引後位置データに基づいて位置指令を生成する位置指令生成部と、
    前記位置指令に基づいて作業用のロボットを動作させる制御部と、
    前記制御部が前記ロボットを動作させる際に、前記ロボットが作業対象物に付与する力の測定データを取得する測定データ取得部と、
    前記測定データが前記教示力データに近付くように前記教示位置データを修正する位置修正部と、を備え
    前記位置間引部は、前記位置修正部による修正後の前記教示位置データから少なくとも一つの前記教示位置を間引いて前記間引後位置データを更新し、
    前記位置指令生成部は、前記位置間引部により更新された前記間引後位置データに基づいて前記位置指令を更新するロボットシステム。
  2. 前記位置間引部は、前記ロボットの動きへの影響が小さい前記教示位置を前記教示位置データから間引いて前記間引後位置データを生成する、請求項1記載のロボットシステム。
  3. 記教示力データから少なくとも一つの前記教示力を間引いた間引後力データを生成する力間引部と、
    前記間引後力データに基づいて力指令を生成する力指令生成部と、を更に備え、
    前記制御部は、前記位置指令と前記力指令とに基づいて前記ロボットを動作させる、請求項1記載のロボットシステム。
  4. 前記力間引部は、前記ロボットが作業対象物に付与する力への影響が小さい前記教示力を前記教示力データから間引いて前記間引後力データを生成する、請求項3記載のロボットシステム。
  5. 前記測定データと前記教示力データとの乖離が許容条件を満たすまで、前記制御部による前記ロボットの動作と、前記測定データ取得部による前記測定データの取得と、前記位置修正部による前記位置指令の修正とを繰り返させる反復管理部を更に備える、請求項3又は4記載のロボットシステム。
  6. 前記位置間引部は、前記教示位置が存在する場合の前記ロボットの動作と、当該教示位置が存在しない場合の前記ロボットの動作との差が大きい場合には当該教示位置が残るように前記間引後位置データを生成する、請求項2記載のロボットシステム。
  7. 前記位置間引部は、前記教示位置と、当該教示位置の前後の教示位置同士を結ぶ基準ラインとの乖離の大きさに基づいて、当該教示位置を間引くか否かを決定する、請求項記載のロボットシステム。
  8. 前記位置間引部は、前記教示位置データの少なくとも一部の時区間において、両端の教示位置を採用した後に、採用済の教示位置同士を結ぶ基準ラインを導出することと、前記基準ラインからの乖離の大きさに基づいて他の教示位置の採用可否を決定することとを所定条件が満たされるまで繰り返し、採用されなかった教示位置を間引いて前記間引後位置データを生成する、請求項記載のロボットシステム。
  9. 作業対象物に力を付与する前におけるロボットの位置変動を縮小するように前記教示位置データを修正するフィルタ処理部を更に備え、
    前記位置間引部は、前記フィルタ処理部による修正後の前記教示位置データから少なくとも一つの前記教示位置を間引いて前記間引後位置データを生成する、請求項1〜のいずれか一項記載のロボットシステム。
  10. 前記ロボットが作業対象物に付与する力を前記力指令に近付けるように、前記制御部による前記ロボットの制御目標位置を前記ロボットの動作中に修正する制御目標補正部を更に備える、請求項3〜のいずれか一項記載のロボットシステム。
  11. 作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得する教示位置取得部と、
    前記作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得する教示力取得部と、
    前記教示位置データから少なくとも一つの前記教示位置を間引いた間引後位置データを生成する位置間引部と、
    前記間引後位置データに基づいて位置指令を生成する位置指令生成部と、
    前記位置指令に基づいて作業用のロボットを動作させる制御部と、
    前記制御部が前記ロボットを動作させる際に、前記ロボットが作業対象物に付与する力の測定データを取得する測定データ取得部と、
    前記測定データが前記教示力データに近付くように前記間引後位置データを修正する位置修正部と、を備え、
    前記位置間引部は、前記位置修正部による修正後の前記間引後位置データから少なくとも一つの前記教示位置を間引いて前記間引後位置データを更新し、
    前記位置指令生成部は、前記位置間引部により更新された前記間引後位置データに基づいて前記位置指令を更新するロボットシステム。
  12. 作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得することと、
    前記作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得することと、
    前記教示位置データから少なくとも一つの前記教示位置を間引いた間引後位置データを生成することと、
    前記間引後位置データに基づいて位置指令を生成することと、
    前記位置指令に基づいて作業用のロボットを動作させることと、
    前記ロボットを動作させる際に、前記ロボットが作業対象物に付与する力の測定データを取得することと、
    前記測定データが前記教示力データに近付くように前記教示位置データを修正することと、
    修正後の前記教示位置データから少なくとも一つの前記教示位置を間引いて前記間引後位置データを更新することと、
    更新された間引後位置データに基づいて前記位置指令を更新することと、を含むロボット制御方法。
  13. 作業者の実演データに基づいて、時系列に並ぶ複数の教示位置を含む教示位置データを取得することと、
    前記作業者の実演データに基づいて、時系列に並ぶ複数の教示力を含む教示力データを取得することと、
    前記教示位置データから少なくとも一つの前記教示位置を間引いた間引後位置データを生成することと、
    前記間引後位置データに基づいて位置指令を生成することと、
    前記位置指令に基づいて作業用のロボットを動作させることと、
    前記ロボットを動作させる際に、前記ロボットが作業対象物に付与する力の測定データを取得することと、
    前記測定データが前記教示力データに近付くように前記間引後位置データを修正することと、
    修正後の前記間引後位置データから少なくとも一つの前記教示位置を間引いて前記間引後位置データを更新することと、
    更新された間引後位置データに基づいて前記位置指令を更新することと、を含むロボット制御方法。
JP2018196016A 2018-10-17 2018-10-17 ロボットシステム及びロボット制御方法 Active JP6773098B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018196016A JP6773098B2 (ja) 2018-10-17 2018-10-17 ロボットシステム及びロボット制御方法
EP19197569.7A EP3639984B1 (en) 2018-10-17 2019-09-16 Robot system and robot control method
EP20213747.7A EP3812109B1 (en) 2018-10-17 2019-09-16 Robot system and robot control method
US16/591,637 US11230004B2 (en) 2018-10-17 2019-10-03 Robot system and robot control method
CN201910977738.6A CN111055265B (zh) 2018-10-17 2019-10-15 机器人系统以及机器人控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018196016A JP6773098B2 (ja) 2018-10-17 2018-10-17 ロボットシステム及びロボット制御方法

Publications (2)

Publication Number Publication Date
JP2020062721A JP2020062721A (ja) 2020-04-23
JP6773098B2 true JP6773098B2 (ja) 2020-10-21

Family

ID=67981962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018196016A Active JP6773098B2 (ja) 2018-10-17 2018-10-17 ロボットシステム及びロボット制御方法

Country Status (4)

Country Link
US (1) US11230004B2 (ja)
EP (2) EP3639984B1 (ja)
JP (1) JP6773098B2 (ja)
CN (1) CN111055265B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6838017B2 (ja) * 2018-08-31 2021-03-03 ファナック株式会社 レーザ加工のための教示装置、教示方法、及び教示プログラム
US11312015B2 (en) * 2018-09-10 2022-04-26 Reliabotics LLC System and method for controlling the contact pressure applied by an articulated robotic arm to a working surface
EP3663054A1 (de) * 2018-12-05 2020-06-10 Siemens Aktiengesellschaft Gelenkarmroboter
DE102019120633B4 (de) * 2019-07-31 2022-05-05 Liebherr-Hydraulikbagger Gmbh Verfahren zur automatischen Bewegung eines Arbeitsgeräts sowie Arbeitsgerät
WO2021101514A1 (en) * 2019-11-19 2021-05-27 Google Llc Optimization of motion paths of a robot using vision data
US20210316450A1 (en) * 2020-04-14 2021-10-14 3Deo, Inc. Robotics for three-dimensional printing
CN112757261B (zh) * 2021-01-11 2022-05-10 珠海格力电器股份有限公司 一种机器人的拖动示教装置、机器人及其拖动示教方法
IT202100005975A1 (it) * 2021-03-12 2022-09-12 Cnh Ind Italia Spa Metodo di registrazione di una manovra di un braccio azionabile di un veicolo pesante

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1043940B (it) * 1974-12-20 1980-02-29 Fiat Spa Apparecchaitura per il controllo di una macchina operatrice del tipo robot
JPH0736513A (ja) * 1993-07-20 1995-02-07 Fujitsu Ltd 制御装置
JPH0890468A (ja) * 1994-09-27 1996-04-09 Nissan Motor Co Ltd ロボットのティーチング装置
JPH10138182A (ja) 1996-11-08 1998-05-26 Toyoda Mach Works Ltd ロボットの教示装置
JPH1190870A (ja) * 1997-09-17 1999-04-06 Yaskawa Electric Corp ロボットの教示用プログラミング装置
JP4578056B2 (ja) * 2003-02-06 2010-11-10 株式会社ダイヘン 作業ロボットを用いた制御システムによるワーク加工方法
SE524818C2 (sv) * 2003-02-13 2004-10-05 Abb Ab En metod och ett system för att programmera en industrirobot att förflytta sig relativt definierade positioner på ett objekt
US8054289B2 (en) * 2006-12-01 2011-11-08 Mimic Technologies, Inc. Methods, apparatus, and article for force feedback based on tension control and tracking through cables
JP5203037B2 (ja) * 2008-05-09 2013-06-05 アズビル株式会社 教示装置及び教示方法
JP5176790B2 (ja) * 2008-09-02 2013-04-03 株式会社安川電機 ロボットの教示再生装置および教示再生方法
JP5345046B2 (ja) * 2009-11-30 2013-11-20 三菱電機株式会社 ロボットの教示装置、及びロボットの制御装置
JP5556552B2 (ja) * 2010-10-01 2014-07-23 株式会社安川電機 ロボット制御装置、ロボットおよびロボット制御装置の教示方法
JP5549749B1 (ja) * 2013-01-16 2014-07-16 株式会社安川電機 ロボット教示システム、ロボット教示プログラムの生成方法および教示ツール
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
US10220512B2 (en) 2013-09-19 2019-03-05 Keio University Position/force controller, and position/force control method and program
JP2016062477A (ja) * 2014-09-19 2016-04-25 株式会社東芝 溶接プログラム作成装置および溶接プログラム作成方法
US9804593B1 (en) * 2014-12-12 2017-10-31 X Development Llc Methods and systems for teaching positions to components of devices
CN105058396A (zh) * 2015-07-31 2015-11-18 深圳先进技术研究院 机器人示教系统及其控制方法
WO2017036519A1 (en) * 2015-09-02 2017-03-09 Abb Schweiz Ag Device, system and method for teaching a position with a hand-held position teaching device
JP2018126799A (ja) * 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
JP2018126798A (ja) * 2017-02-06 2018-08-16 セイコーエプソン株式会社 制御装置、ロボットおよびロボットシステム
CN107728619B (zh) * 2017-10-16 2020-06-23 邦鼓思电子科技(上海)有限公司 一种用于机器人示教路径的规划方法

Also Published As

Publication number Publication date
EP3639984B1 (en) 2023-09-20
US11230004B2 (en) 2022-01-25
CN111055265A (zh) 2020-04-24
JP2020062721A (ja) 2020-04-23
EP3812109A3 (en) 2021-07-07
EP3812109A2 (en) 2021-04-28
CN111055265B (zh) 2023-03-21
US20200122325A1 (en) 2020-04-23
EP3639984A3 (en) 2020-07-29
EP3812109B1 (en) 2023-09-20
EP3639984A2 (en) 2020-04-22

Similar Documents

Publication Publication Date Title
JP6773098B2 (ja) ロボットシステム及びロボット制御方法
CN111432990B (zh) 技能传承机械装置
JP6468741B2 (ja) ロボットシステム及びロボットシステムの校正方法
CN107921645B (zh) 远程操作机器人系统
JP6781183B2 (ja) 制御装置及び機械学習装置
JP6429473B2 (ja) ロボットシステム、ロボットシステムの校正方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP6108860B2 (ja) ロボットシステム及びロボットシステムの制御方法
US11305427B2 (en) Robot system and robot control method
CN108422420B (zh) 具有学习控制功能的机器人系统以及学习控制方法
JP6773084B2 (ja) 動作教示装置、ロボットシステム及び動作教示方法
JP7041492B2 (ja) ロボットシステム
JPWO2017064851A1 (ja) ロボット教示方法及びロボットアーム制御装置
JP2018167334A (ja) 教示装置および教示方法
JP6153316B2 (ja) ロボットシステム及びロボットシステムの制御方法
JPWO2018043525A1 (ja) ロボットシステム、ロボットシステム制御装置、およびロボットシステム制御方法
JP2014161950A (ja) ロボットシステム、ロボット制御方法、ロボット較正方法
JP6410411B2 (ja) パターンマッチング装置及びパターンマッチング方法
JP2021045810A (ja) モーション情報生成装置、エンドエフェクタ、ロボット及びロボットシステム
JP5004108B2 (ja) ロボット及びハンドの制御情報を確定するためのマスタ・スレーブ装置及び制御情報確定方法
JP4715296B2 (ja) ロボットハンドの持ち替え把持制御方法。
JP5447150B2 (ja) ロボットの制御装置およびロボットを制御する方法
JPH05337860A (ja) ロボットハンドの教示装置およびロボットハンド
JP7185749B2 (ja) ロボットシステム及びロボットシステムの制御方法
KR20220116289A (ko) 로봇 조작기를 위한 제어 프로그램 생성
CN114661019A (zh) 机械结构的控制方法、装置及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6773098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150