JP6851837B2 - 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法 - Google Patents

制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法 Download PDF

Info

Publication number
JP6851837B2
JP6851837B2 JP2017008955A JP2017008955A JP6851837B2 JP 6851837 B2 JP6851837 B2 JP 6851837B2 JP 2017008955 A JP2017008955 A JP 2017008955A JP 2017008955 A JP2017008955 A JP 2017008955A JP 6851837 B2 JP6851837 B2 JP 6851837B2
Authority
JP
Japan
Prior art keywords
robot
control
control unit
unit
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
JP2017008955A
Other languages
English (en)
Other versions
JP2018114607A5 (ja
JP2018114607A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017008955A priority Critical patent/JP6851837B2/ja
Priority to EP18150138.8A priority patent/EP3351353A1/en
Priority to US15/869,369 priority patent/US20180207798A1/en
Priority to CN201810053956.6A priority patent/CN108326877B/zh
Publication of JP2018114607A publication Critical patent/JP2018114607A/ja
Publication of JP2018114607A5 publication Critical patent/JP2018114607A5/ja
Application granted granted Critical
Publication of JP6851837B2 publication Critical patent/JP6851837B2/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
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • 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
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration 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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39209Switch over from free space motion to constraint motion
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39346Workspace impedance control
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42123Position loop then force, current loop

Description

本発明は、ロボットの制御に関する。
ロボットは、位置制御と力制御のいずれかで制御される。位置制御は、目標とする位置に位置指令値に基づきロボットを制御するものである。力制御は、位置ベース力制御、即ちアドミッタンス制御と、トルクベース力制御とがある。位置ベース力制御は、ロボットの先端部に設けられた力センサの値に基づき、ワークに倣うような位置指令値を求め、位置指令値に基づきロボットを制御する。位置ベース力制御では、位置制御をマイナーループとして利用する。そのため、位置ベース力制御の応答性は、位置制御の応答性よりも低下する。一般的に位置制御の応答周波数は、ロボットの固有振動数に制約される。特に、接触時は安定性の問題から応答性を高めることが難しい。トルクベース力制御は、ワークに倣うようなトルク指令値を求め、トルク指令値に基づきロボットを制御する。トルクベース力制御では、ロボットの固有振動数に制約を受けずに応答性を高めることができる。トルクベース力制御は、位置ベース力制御よりも応答性が高いため、組立作業などにおいて応用範囲を広げることが可能となる。
特許文献1には、上述のロボットの力制御としてロボットの柔軟制御を行うことが記載されている。特許文献1には、ユーザが柔軟制御の複数のパラメータセットを記憶部に記憶させることが記載されている。また、特許文献1には、エンコーダ、力センサまたは時間を計測する時間計測部からの出力に基づいてロボットの動作状態を判定する動作状態監視部が記載されている。また、特許文献1には、ロボットがあるパラメータセットを用いた柔軟制御を実行しているときに、パラメータセットを切替える切替条件が成立した場合には、パラメータセットを別のパラメータセットに切替えて、柔軟制御を実行することが記載されている。
特許第5845311号公報
ところで、ロボットプログラムに従いながらロボットの動作の切り替えを指示する処理は、ロボットプログラムを解釈する必要があるため演算負荷が高い。一方、安定してトルクベースの力制御を行うには、トルクセンサの値及びエンコーダの値に基づいてフィードバック制御する処理を、速い制御周期で行うことが求められている。しかし、従来の方法では、演算負荷の高いロボットプログラムの処理を行いながらフィードバック制御を行っているため、トルクベースの力制御においてフィードバック制御の制御周期を高速化するのには限界があった。
そこで、本発明は、ロボットの様々な動作の切り替えに対応しながら、ロボットの力制御の安定化を図ることを目的とする。
本発明の一態様は、センサを有するロボットに関する複数の動作内容と、前記複数の動作内容の切替条件に関する値と、が記述されたロボットプログラムと、前記ロボットプログラムに基づき、前記複数の動作内容から第1の動作内容を前記ロボットに実行させるための第1動作指令を出力する第1制御部と、前記第1動作指令と前記センサの出力結果とに基づき前記ロボットの動作を制御し、前記センサの出力結果が前記切替条件と合致しているか判定する第2制御部と、を備え、前記第1制御部は、前記センサの出力結果が前記切替条件に合致すれば前記ロボットプログラムに基づき、第2の動作内容を前記ロボットに実行させるための第2動作指令を前記第2制御部に出力する、ことを特徴とする制御装置である
本発明によれば、ロボットの様々な動作の切り替えに対応しながら、ロボットの力制御を安定して行うことができる。
第1実施形態に係るロボットシステムの斜視図である。 第1実施形態に係るロボット制御装置を示すブロック図である。 第1実施形態に係るロボットシステムの制御系を示す制御ブロック図である。 第1実施形態においてロボットのトルクベース力制御を説明するためのフローチャートである。 第1実施形態においてロボットの位置制御を説明するためのフローチャートである。 (a)、(b)、(c)及び(d)は、トルクベース力制御を行うときの指示部と制御部の制御の流れを説明するための概念図である。 第1実施形態における指示部及び制御部の制御ブロック図である。 第1実施形態におけるロボットにより組付作業を行う直前の状態を示す模式図である。 第1実施形態におけるロボットプログラムの一例を示す説明図である。 (a)及び(b)は、ロボットプログラムに従って動作するロボットの組付作業を説明するためのロボットの模式図である。 第2実施形態におけるロボットにより組付作業を行う直前の状態を示す模式図である。 第2実施形態におけるロボットプログラムの一例を示す説明図である。 (a)、(b)及び(c)は、ロボットプログラムに従って動作するロボットの組付作業を説明するためのロボットの模式図である。 第3実施形態における指示部及び制御部の制御ブロック図である。 (a)〜(d)は、手先力と力目標値の時間変化を示す模式図である。 第4実施形態におけるロボットプログラムの一例を示す説明図である。 第4実施形態において切替条件に合致するか否かの判定を示す概念図である。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、第1実施形態に係るロボットシステムの斜視図である。図1に示すように、ロボットシステム100は、多関節のロボット200と、ロボット200の動作を制御するロボット制御装置300と、を備えている。また、ロボットシステム100は、ロボット制御装置300に教示データを送信する教示装置としてのティーチングペンダント400を備えている。ティーチングペンダント400は、操作者が操作するものであり、ロボット200やロボット制御装置300の動作を指定するのに用いる。
ロボット200は、垂直多関節のロボットアーム251と、ロボットアーム251の先端に取り付けられたエンドエフェクタの一例であるロボットハンド252と、を備えている。以下、エンドエフェクタがロボットハンド252である場合について説明するが、これに限定するものではなく、例えばドライバなどのツールであってもよい。ロボットアーム251の基端は、台座150に固定されている。ロボットハンド252は、部品やツール等の物体を把持するものである。
ロボット200、即ちロボットアーム251は、複数の関節、例えば6つの関節J〜Jを有している。ロボットアーム251は、各関節J〜Jを各関節軸A〜Aまわりにそれぞれ回転駆動する複数、例えば6つのサーボモータ201〜206を有している。ロボットアーム251は、複数のリンク210〜210が各関節J〜Jで回転可能に連結されている。ロボットアーム251は、可動範囲の中であれば、任意の3次元位置で任意の3方向の姿勢に、ロボット200の手先を向けることができる。
ロボット200の手先の位置及び姿勢は、ロボットアーム251の基端、即ち台座150を基準とする座標系Toで表現される。ロボット200の手先には、座標系Teが設定されている。ここで、ロボット200の手先とは、第1実施形態では、ロボットハンド252が物体を把持していない場合には、ロボットハンド252のことである。ロボットハンド252が物体を把持している場合は、ロボットハンド252と把持している物体を含めてロボット200の手先という。つまり、ロボットハンド252が物体を把持している状態であるか物体を把持していない状態であるかにかかわらず、ロボットアーム251の先端から先を手先という。
各サーボモータ201〜206は、各関節J〜Jをそれぞれ駆動する電動モータであるモータ211〜216と、各モータ211〜216にそれぞれ接続されたセンサ部221〜226とを有している。各センサ部221〜226は、各関節J〜Jの位置、即ち角度に応じた信号を発生する位置センサであるエンコーダを有する。また、各センサ部221〜226は、各関節J〜Jのトルクに応じた信号を発生するトルクセンサを有する。また、各サーボモータ201〜206は、不図示の減速機を有し、直接、又は不図示のベルトやベアリング等の伝達機構を介して各関節J〜Jで駆動されるリンクに接続されている。
ロボットアーム251の内部には、各サーボモータ201〜206のモータ211〜216の駆動を制御するサーボ制御部230が配置されている。サーボ制御部230は、入力を受けた各関節J〜Jに対応する各トルク指令値に基づき、各関節J1〜J6のトルクがトルク指令値に追従するよう、各モータ211〜216に電流を出力し、各モータ211〜216の駆動を制御する。なお、第1実施形態では、サーボ制御部230は、ロボットアーム251の内部に配置されているが、ロボットアーム251の外部、例えばロボット制御装置300の筐体内部に配置されていてもよい。
また、ロボット200のロボットアーム251は、各関節J〜Jをそれぞれ制動する複数のブレーキ231〜236を有する。ブレーキ231〜236は、例えばディスクブレーキである。各ブレーキ231〜236を作動させることにより、各関節J〜Jが動かないように各関節J〜Jを固定することができる。
次に、ロボット制御装置300について説明する。図2は、第1実施形態に係るロボット制御装置300を示すブロック図である。ロボット制御装置300は、コンピュータで構成されており、CPU(Central Processing Unit)301を備えている。また、ロボット制御装置300は、記憶部として、内部記憶装置であるROM(Read Only Memory)302、RAM(Random Access Memory)303及びHDD(Hard Disk Drive)304を備えている。また、ロボット制御装置300は、ディスクドライブ305及びインタフェース306〜310を備えている。CPU301、ROM302、RAM303、HDD304、ディスクドライブ305、及びインタフェース306〜310は、互いに通信可能にバス311で接続されている。
CPU301は、第1実施形態では複数のコア301A,301Bを有しており、各コア301A,301Bで独立して演算が可能である。ROM302には、基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する演算処理を実行させるためのプログラム330を記録するものである。CPU301は、HDD304に記録されたプログラム330に基づいてロボット制御方法の各ステップを実行する。ディスクドライブ305は、ディスク331に記録された各種データやプログラム等を読み出すことができる。
ティーチングペンダント400はインタフェース306に接続されている。CPU301はインタフェース306及びバス311を介してティーチングペンダント400からの教示データの入力を受ける。
サーボ制御部230は、インタフェース309に接続されている。CPU301は、サーボ制御部230、インタフェース309及びバス311を介して各センサ部221〜226から信号を取得する。また、CPU301は、各関節の指令値のデータを所定の時間間隔でバス311及びインタフェース309を介してサーボ制御部230に出力する。
インタフェース307には、モニタ321が接続されており、モニタ321には、CPU301の制御の下、各種画像が表示される。インタフェース308は、書き換え可能な不揮発性メモリや外付けHDD等の記憶部である外部記憶装置322が接続可能に構成されている。
インタフェース310には、外部装置323が接続されている。CPU301は、インタフェース310及びバス311を介して、外部装置323とデータの入出力を行う。外部装置323は、例えばLEDを明滅する装置やPLC(Programmable Logic Controller)といった装置である。
なお、第1実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム330が格納される場合について説明するが、これに限定するものではない。プログラム330は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム330を供給するための記録媒体としては、図2に示すROM302,ディスク331、外部記憶装置322等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、DVD−ROMやCD−ROM等の光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
図3は、第1実施形態に係るロボットシステム100の制御系を示す制御ブロック図である。ロボット制御装置300のCPU301は、プログラム330を実行することにより、指示部501及び制御部510として機能する。第1実施形態では、CPU301のコア301Aが指示部501として機能し、CPU301のコア301Bが制御部510として機能する。サーボ制御部230は、複数、即ち6関節であるので6つのモータ制御部531〜536を有する。
各センサ部221〜226は、各エンコーダ551〜556と、各トルクセンサ541〜546とを有する。エンコーダ551〜556は、ロータリエンコーダであり、モータ211〜216の回転角度に応じた計測値である角度値θ〜θを信号としてそれぞれ出力する。各トルクセンサ541〜546は、各関節J〜Jのトルクに応じた計測値であるトルク値τ〜τを信号としてそれぞれ出力する。
ティーチングペンダント400は、操作者の操作により、ロボット200の手先に作用する力の目標値である力目標値Frefを、ロボット制御装置300に設定、即ち外部記憶装置322に記憶させる。また、ロボット200の手先の位置姿勢の目標値である位置目標値Prefを、ロボット制御装置300に設定、即ち外部記憶装置322に設定する。力目標値Fref及び位置目標値Prefは、組立工程に合わせて複数存在する。また、外部記憶装置322には、ロボット言語で記述されたロボットプログラム506、及びロボット200の3次元のCADデータ等のロボットモデル519が記憶されている。ロボットプログラム506は、ロボット200と外部装置323の動作を規定するものである。操作者がテキストエディタや専用のIDE(Integrated Development Environment)を用いて組立工程に対応させて作成する。ロボットプログラム506は、力目標値Fref及び位置目標値Prefと関連付けて用いることが可能である。なお、力目標値Fref、位置目標値Pref、ロボットプログラム506及びロボットモデル519は、外部記憶装置322に記憶されるものとしたが、内部記憶装置に記憶されてもよい。
指示部501は、ロボットプログラム506に従って、ロボット200の動作を制御部510に指示するものであり、ロボットプログラム506を解釈するため、演算負荷が制御部510よりも高い。
制御部510は、指示部501の指示に従って、第1の制御である力制御又は第2の制御である位置制御のいずれか一方で選択的にロボット200の動作を制御する。力制御は、第1実施形態ではトルクベース力制御である。トルクベース力制御では、ロボット200のトルクセンサ541〜546のトルク値τ〜τ及びロボット200のエンコーダ551〜556の角度値θ〜θに基づきロボット200の動作をフィードバック制御する。位置制御では、ロボット200のエンコーダ551〜556の角度値θ〜θに基づきロボット200の動作をフィードバック制御する。
制御部510は、トルクベース力制御において、フィードバック指令値として、各関節のトルク指令値τMFref1〜τMFref6を求め、各トルク指令値τMFref1〜τMFref6を各モータ制御部531〜536に出力する。制御部510は、トルクベース力制御を、所定の制御周期で実行する。また、制御部510は、位置制御において、フィードバック指令値として、各関節の角度指令値qref1〜qref6を求め、各角度指令値qref1〜qref6を各モータ制御部531〜536に出力する。
各モータ制御部531〜536において、入力を受けた指令値がトルク指令値τMFref1〜τMFref6の場合について説明する。各モータ制御部531〜536は、各トルク値τ〜τと各トルク指令値τMFref1〜τMFref6との偏差が小さくなるように、各モータ211〜216に流す各電流Cur〜Curを制御する。
各モータ制御部531〜536において、入力を受けた指令値が角度指令値qref1〜qref6の場合について説明する。各モータ制御部531〜536は、各角度指令値qref1〜qref6を各モータ211〜216の角度指令値θref1〜θref6に変換する。そして、各モータ制御部531〜536は、各角度値θ〜θと各角度指令値θref1〜θref6との偏差が小さくなるように、各モータ211〜216に流す各電流Cur〜Curを制御する。なお、各モータ制御部531〜536は、各角度値θ〜θを各角度値q〜qに変換してもよい。この場合、各モータ制御部531〜536は、各角度値q〜qと各角度指令値qref1〜qref6との偏差が小さくなるように、各モータ211〜216に流す各電流Cur〜Curを制御する。
ロボット200のトルクベース力制御について詳細に説明する。図4は、第1実施形態においてロボット200のトルクベース力制御を説明するためのフローチャートである。まず、操作者が力目標値Frefと位置目標値Prefとをティーチングペンダント400を用いて設定する(S1)。力目標値Fref及び位置目標値Prefは、外部記憶装置322に記憶される。なお、力目標値Fref及び位置目標値Prefは、ティーチングペンダント400を使わずに、ロボットプログラム506に直接記述してもよい。
制御部510は、手先に作用した力の計測値である手先力Fが力目標値Frefに倣うよう、即ち手先力Fと力目標値Frefとの力偏差が小さくなるよう各モータ211〜216に対するトルク指令値τMFref1〜τMFref6を算出する(S2)。
各モータ制御部531〜536は、各エンコーダ551〜556の角度値θ〜θに基づいて、各トルク指令値τMFref1〜τMFref6を実現するよう、各モータ211〜216へ電流Cur〜Curを通電する通電制御を行う(S3)。各モータ211〜216は、通電されることによりトルクを発生する(S4)。
各エンコーダ551〜556は、各角度値θ〜θを示す信号を制御部510へ出力する。各トルクセンサ541〜546は、各トルク値τ〜τを示す信号を制御部510へ出力する。これにより、各エンコーダ551〜556の角度値θ〜θと各トルクセンサ541〜546のトルク値τ〜τは、制御部510にフィードバックされ、制御部510は、角度値θ〜θ及びトルク値τ〜τを取得する(S5)。
制御部510は、ロボットモデル519及び角度値θ〜θに基づいて各関節J〜Jの角度値q〜qを算出する。また、制御部510は、ロボットモデル519及び各関節J〜Jの角度値q〜qに基づいてロボット200の手先の位置Pを算出する。制御部510は、ロボットモデル519、角度値q〜q及びトルク値τ〜τに基づき、ロボット200の手先にかかる手先力Fを算出する(S6)。制御部510は、駆動が終了したか否かを判定し(S7)、終了していない場合は(S7:No)、ステップS2〜S7を繰り返す。以上のフローチャートに従って各モータ211〜216を駆動することで、ロボット200の手先力Fを力目標値Frefに制御することが可能である。なお、トルクベース力制御は図4に示すフローチャートの順番に限定するものではなく、他の順番でもよい。
次に、ロボット200の位置制御について説明する。図5は、第1実施形態においてロボット200の位置制御を説明するためのフローチャートである。まず、操作者が位置目標値Prefをティーチングペンダント400を用いて設定する(S11)。位置目標値Prefは、外部記憶装置322に記憶される。なお、位置目標値Prefは、ティーチングペンダント400を使わずに、ロボットプログラム506に直接記述してもよい。
制御部510は、ロボットモデル519に基づき、位置目標値Prefを各関節J〜Jの角度指令値qref1〜qref6に変換することで、角度指令値qref1〜qref6を算出する(S12)。
各モータ制御部531〜536は、各角度値q〜qが各角度指令値qref1〜qref6に倣うよう各モータ211〜216へ電流Cur〜Curを通電する通電制御を行う(S13)。なお、関節J〜Jの角度を示す信号としては、角度値q〜qの代わりにモータ211〜216の角度値θ〜θを用いてもよい。各モータ211〜216は、通電されることによりトルクを発生する(S14)。
各エンコーダ551〜556は、各角度値θ〜θを示す信号を制御部510へ出力する。これにより、各エンコーダ551〜556の角度値θ〜θは、制御部510にフィードバックされ、制御部510は、角度値θ〜θを取得する(S15)。制御部510は、ロボットモデル519及び角度値θ〜θに基づいて各関節J〜Jの角度値q〜qを求める。
制御部510は、駆動が終了したか否か、即ち手先の位置Pが位置目標値Pref付近に達したか否かを判定し(S16)、駆動が終了していない場合は(S16:No)、ステップS12〜S16を繰り返す。以上のフローチャートに従って各モータ211〜216を駆動することで、ロボット200の手先の位置Pを位置目標値Prefに制御することが可能である。
ステップS1〜S7のトルクベース力制御とステップS11〜S16の位置制御は、ロボットプログラム506に従って指示部501にて切り替えられ、作業に応じていずれか一方の制御が選択される。
以下、制御部510が、指示部501の指示により、トルクベース力制御によるフィードバック制御を行う場合について説明する。図6(a)、図6(b)、図6(c)及び図6(d)は、トルクベース力制御を行うときの指示部501と制御部510の制御の流れを説明するための概念図である。図6(a)に示すように、指示部501は、ロボットプログラム506に従って制御部510に切替条件を送る。制御部510は、トルクベース力制御中にロボット200の状態が切替条件に合致したか否かを判定する。制御部510は、ロボット200の状態が切替条件に合致した場合、図6(b)に示すように、切替条件に合致したことを示す情報、即ち切替情報を、指示部501に送る。指示部501は、ロボットプログラム506に従って、図6(c)に示すように、切替情報に対応する動作指令を制御部510に送る。制御部510は、動作指令に従って、図6(d)に示すように、ロボット200の動作を切り替える。このように、指示部501は、ロボットプログラム506を解釈する処理を行い、制御部510は、指示部501の指示に従ってトルクベース力制御によるフィードバック制御を行う。このように指示部501と制御部510と処理を分けることにより、演算負荷の高いフィードバック処理を集中的に行うことが可能になる。このため、制御部510において、速い制御周期でフィードバック制御を行うことができる。速い制御周期でフィードバック制御を行うため、ロボット200に作用する力等が急激に変化するような場合であっても、迅速に対応することが可能となり、ロボット200の制御が安定化する。即ち、ロボット200の制御性が向上する。なお、指示部501と制御部510との間では、切替条件、切替情報及び動作指令のデータを電気信号で送受信する。
以下、指示部501及び制御部510の動作について具体的に説明する。図7は、第1実施形態における指示部501及び制御部510の制御ブロック図である。指示部501は、切替部502、力指令生成部503、位置指令生成部504及び外部指令生成部505として機能する。制御部510は、監視部511、時間計測部512、計測部513、パラメータ設定部516、力制御部517及び位置制御部518として機能する。計測部513は、力計測部514及び位置計測部515として機能する。
時間計測部512は、トルクベース力制御を開始した時点からの経過時間tを計測する。計測部513は、外部記憶装置322からロボットモデル519を読み込む。位置計測部515は、エンコーダ551〜556から取得した角度値θ〜θ、及びロボットモデル519に基づき、ロボット200の手先の位置姿勢の計測値を示す位置Pを求める。また、位置計測部515は、各角度値θ〜θの入力を受け、ロボットモデル519にて規定された不図示の減速機の減速比等に基づき、各関節J〜Jの角度の計測値である角度値q〜qをそれぞれ求める。力計測部514は、エンコーダ551〜556から取得した角度値θ〜θ、トルクセンサ541〜546から取得したトルク値τ〜τ、及びロボットモデル519に基づき、ロボット200の手先に作用する力の計測値である手先力Fを求める。
切替部502は、ロボットプログラム506と力目標値Fref及び位置目標値Prefを読み込んで解釈処理を行い、また監視部511から入力を受けた切替情報に従って、ロボット200又は外部装置323の動作指示を生成する。切替部502は、生成した動作指示がロボット200のトルクベース力制御の場合は、力指令生成部503へ動作指示を送る。切替部502は、生成した動作指示がロボット200の位置制御の場合は、位置指令生成部504へ動作指示を送る。切替部502は、生成した動作指示が外部装置323の動作の場合は、外部指令生成部505へ動作指示を送る。
力指令生成部503は、切替部502から入力を受けた動作指示に従い、切替条件及び動作指令としての力指令を制御部510へ送る。切替条件は、第1実施形態では以下の13種類である。力指令生成部503は、ロボットプログラム506の命令文に従って、以下の切替条件を監視部511へ送る。
1.トルクベース力制御を開始した時点からの経過時間
2.ロボット200の手先力
3.ロボット200の手先力の時間微分
4.ロボット200の手先力の時間2階微分
5.ロボット200の手先の位置
6.ロボット200の手先の速度
7.ロボット200の手先の加速度
8.ロボット200の各軸の位置
9.ロボット200の各軸の速度
10.ロボット200の各軸の加速度
11.ロボット200の各軸のトルク
12.ロボット200の各軸のトルクの時間微分
13.ロボット200の各軸のトルクの時間2階微分
なお、切替条件を例示したが、これらに限定されるものではない。
監視部511は、時間計測部512や計測部513から取得した計測値が、入力を受けた上記の切替条件に合致したかどうかを判定する。即ち、監視部511は、トルクベース力制御中に下記の計測値を監視し、力指令生成部503から入力を受けた切替条件に合致した場合は、切替部502に切替条件に合致した旨を示す切替情報を送る。なお、以下の時間による1階微分及び2階微分は、監視部511で行う。
・時間計測部512から通知された経過時間t
・力計測部514から通知された手先力F
・力計測部514から通知された各軸のトルク値τ〜τ
・位置計測部515から通知された手先の位置P
・位置計測部515から通知された各角度値q〜q
・手先力Fの時間微分
・トルク値τ〜τの時間微分
・手先の位置Pの時間微分(速度)
・各角度値q〜qの時間微分(速度)
・手先力Fの時間2階微分
・各トルク値τ〜τの時間2階微分
・手先の位置Pの時間2階微分(加速度)
・各角度値q〜qの時間2階微分(加速度)
第1実施形態では、力指令生成部503が出力する動作指令である力指令は、トルクベース力制御に係るパラメータである。パラメータは、第1実施形態では下記7種類である。
1.ロボット200の手先の力目標値Fref
2.ロボット200の手先の位置目標値Pref
3.ロボット200の手先の速度目標値Pref(・)
4.ロボット200の手先の加速度目標値Pref(・・)
5.ロボット200の手先における目標の剛性係数Kref
6.ロボット200の手先における目標の粘性係数Dref
7.ロボット200の手先における目標の慣性行列Λref
なお、(・)は時間の1階微分、(・・)は時間の2階微分を表す。以上、パラメータを例示したが、これらに限定されるものではない。また、これら全てを必須とするものでもない。上記パラメータ中、剛性係数Kref、粘性係数Dref及び慣性行列Λrefは、トルクベース力制御のフィードバック制御において用いる下記の式(1)及び式(2)に表す演算式の係数である。
パラメータ設定部516は、力指令生成部503からの送信される力制御に係るパラメータを受け、座標変換を行い力制御部517へ設定する。力制御部517は、ロボットモデル519、力目標値Fref、位置目標値Pref、速度目標値Pref(・)、加速度目標値Pref(・・)、剛性係数Kref、粘性係数Dref、慣性行列Λrefの入力を受ける。また、力制御部517は、計測値として、トルク値τ〜τ、角度値q〜q、位置P及び力Fの入力を受ける。そして、力制御部517は、これら目標値及び計測値を用いて、各関節J〜Jに対するトルク指令値τMFref1〜τMFref6を求める。ここで、手先力Fと力目標値Frefとの偏差を力偏差とする。手先の位置Pと位置目標値Prefとの偏差を位置偏差とする。手先の速度P(・)と速度目標値Pref(・)との偏差を速度偏差とする。手先の加速度値P(・・)と加速度目標値Pref(・・)との偏差を加速度偏差とする。力制御部517は、力偏差、位置偏差、速度偏差及び加速度偏差が小さくなるように、トルク指令値τMFref1〜τMFref6を求める。
具体的に説明すると、力制御部517は、下記の変数をもとに、式(1)、式(2)により計算を行う。
・力目標値Fref
・位置目標値Pref
・速度目標値Pref(・)
・加速度目標値Pref(・・)
・剛性係数Kref
・粘性係数Dref
・慣性行列Λref
・手先位置P
・手先力F
・ロボットモデル519及び関節速度q(・)から算出されるヤコビアンJ(q)
・逆動力学計算により算出される慣性行列M(q)
・逆動力学計算により算出されるコリオリ遠心行列c(q,q(・))
・逆動力学計算により算出される重力ベクトルg(q)
・J(q)、M(q)及び位置Pから算出される慣性行列Λ
Figure 0006851837
Figure 0006851837
なお、式(1)及び式(2)は、トルクベース力制御の一例であり、これに限定するものではない。
力制御部517は、求めた各トルク指令値τMFref1〜τMFref6を各モータ制御部531〜536に出力する。ここで、速度P(・)は、位置Pを時間で微分することにより求まり、加速度P(・・)は、速度P(・)を微分することにより求まる。したがって、第1実施形態では、力制御部517が位置計測部515の計測結果である手先の位置Pから手先の速度P(・)と手先の加速度P(・・)を求めることになる。なお、位置計測部515が演算を行って手先の速度P(・)や手先の加速度P(・・)のデータを出力するようにしてもよい。
位置指令生成部504は、切替部502から入力を受けた動作指示に従い、動作指令として位置目標値Prefを位置制御部518へ送る。外部指令生成部505は、切替部502から入力を受けた動作指示に従い、外部装置323に対応するフォーマットにデータを成形して、外部装置323へ指令を送信する。
位置制御部518は、手先の位置目標値Prefから逆運動学計算により各関節J〜Jの角度指令値qref1〜qref6を求め、各角度指令値qref1〜qref6を各モータ制御部531〜536に出力する。
以下、指示部501及び制御部510の動作を具体例を挙げて説明する。図8は、第1実施形態におけるロボット200により組付作業を行う直前の状態を示す模式図である。第1実施形態では、トルクベース力制御により、ロボットハンド252を下方向に動かし、ロボットハンド252が把持した第1のワークである円柱状のワークW1を第2のワークである円環状のワークW2に組み付ける作業を行う。これにより、ワークW2にワークW1が組み付けられた物品を製造する。
図9は、第1実施形態におけるロボットプログラム506の一例を示す説明図である。また、図10(a)及び図10(b)は、ロボットプログラム506に従って動作するロボット200の組付作業を説明するためのロボット200の模式図である。指示部501の切替部502は、第01行目の命令文により、事前にティーチングペンダント400で教示した目標位置Prefstart1に位置制御により動作するよう位置指令生成部504に動作指示を送る。位置指令生成部504は、動作指令として、目標位置Prefstart1を制御部510の位置制御部518に送る。これにより位置制御部518はロボット200の手先を目標位置Prefstart1に移動させることになる。
次に、指示部501の切替部502は、第03行目の命令文により、ロボット200の手先を位置Prefstart1から図8の下方にトルクベース力制御により移動を開始するよう力指令生成部503に動作指示を送る。力指令生成部503は、動作指令として、パラメータセット1をパラメータ設定部516に送ると共に、切替条件A,B,Cを監視部511に送る。これにより、指示部501は、制御部510にトルクベース力制御によるフィードバック制御を開始させる。
パラメータセット1は、トルクベース力制御を行うために操作者が設定するパラメータ群であり、その値は第15行目に記述されている。パラメータセット1には、力目標値Fref1、位置目標値Pref1、速度目標値Pref1(・)、加速度目標値Pref1(・・)、剛性係数Kref1、粘性係数Dref1、慣性行列Λref1が含まれている。切替条件A,B,Cは、ロボット200の動作を切り替えるための切替条件群であり、第18行目〜第20行目には個々の切替条件が記述されている。具体的には、第18行目には、切替条件Aとして、手先力Fの並進z成分が閾値Th_f_z1を超えるという条件が記述されている。第19行目には、切替条件Bとして、手先の並進z成分の位置Pzが閾値Th_pos_z1未満であるという条件が記述されている。第20行目には、切替条件Cとして、トルクベース力制御を開始した時点からの経過時間が閾値(10[s])を超えるという条件が記述されている。なお、1つの切替条件に対して例えば『「Fz>Th_f_z1」かつ「経過時間>10」』や『「Fz>Th_f_z1」または「経過時間>10」』というように、複数の条件を併記することも可能である。
以上、指示部501は、ロボットプログラム506に従って、パラメータセット1を制御部510に送り、制御部510は、パラメータセット1を用いてトルクベース力制御によりロボット200の動作をフィードバック制御する。
また、指示部501は、制御部510にトルクベース力制御を開始させる時、制御部510に複数の切替条件A,B,Cを送る。制御部510の監視部511は、トルクベース力制御中にロボット200の状態が切替条件Aに合致した場合、切替条件Aに合致したことを示す切替情報を指示部501に送る。また、監視部511は、トルクベース力制御中にロボット200の状態が切替条件Bに合致した場合、切替条件Bに合致したことを示す切替情報を指示部501に送る。また、監視部511は、トルクベース力制御中にロボット200の状態が切替条件Cに合致した場合、切替条件Cに合致したことを示す切替情報を指示部501に送る。
即ち、監視部511は、ロボット200の状態として、時間計測部512からの経過時間t、力計測部514からの手先力F及びトルク値τ〜τ、位置計測部515からの手先の位置P及び角度値q〜qを監視している。監視部511は、これら計測値を監視して、いずれかの切替条件A,B,Cが成立した場合には、その切替条件に対応する切替情報を指示部501に送る。
指示部501の切替部502は、切替条件Aに合致したことを示す切替情報の入力を受けた場合、その切替情報に対応する動作指令を制御部510に送る。具体的には、切替条件Aは、手先力Fの並進z成分が閾値Th_f_z1を超えるという条件であり、図10(a)に示すように、ワークW1の底面がワークW2に組み付いたこと示している。切替条件Aが成立しているので、切替部502は、第05行目から第06行目に記述された命令文に従い、ロボットハンド252を開く動作指示を力指令生成部503に送り、力指令生成部503は、制御部510に動作指令を送る。制御部510は、入力を受けた動作指令に従ってロボット200の動作を、ロボットハンド252を開く動作に切り替え、組付作業を完了する。
指示部501の切替部502は、切替条件Bに合致したことを示す切替情報の入力を受けた場合、その切替情報に対応する動作指令を制御部510に送る。具体的には、切替条件Bは、並進z方向におけるロボット200の手先の位置Pzが閾値Th_pos_z1未満となる条件であり、図10(b)に示すように、組み付けが失敗していることを示している。切替条件Bが成立しているので、切替部502は、第07行目から第09行目に記述された命令文に従い、ロボット200を停止させる動作指示を力指令生成部503に送り、外部装置323に対してLEDを明滅させる動作指示を外部指令生成部505に送る。力指令生成部503は、制御部510に動作指令を送り、制御部510は、入力を受けた動作指令に従ってロボット200の動作を停止させる。また、外部指令生成部505は、外部装置323に動作指令を送り、外部装置323の動作を制御、即ち外部装置323にLEDを明滅させる。
指示部501の切替部502は、切替条件Cに合致したことを示す切替情報の入力を受けた場合、その切替情報に対応する動作指令を制御部510に送る。具体的には、切替条件Cは、トルクベース力制御を開始した時点からの経過時間が閾値(10[s])を超えるという条件である。切替条件Cが成立しているので、切替部502は、第10行目及び第11行目に記述された命令文に従い、ロボット200の手先が位置Prefstart1へ位置制御で移動する動作指示を位置指令生成部504に送る。位置指令生成部504は、制御部510に動作指令を送る。制御部510は、入力を受けた動作指令に従ってロボット200の手先を位置Prefstart1に位置制御で戻す。即ち、制御部510は、指示部501の指示に従い、ロボット200の動作の切り替えとして、トルクベース力制御から位置制御に切り替える。このように、トルクベース力制御と位置制御との切り替えを、指示部501と制御部510との協働により迅速に行うことができる。
以上、第1実施形態によれば、ユーザが作成したロボットプログラム506に従って、状態遷移を行う指示部501と、指示部501からの指令を受けて所定の制御周期でフィードバック制御する制御部510の2部構成をとっている。これにより、演算負荷の高いロボットプログラム506を解釈する処理を、制御部510に行わせる必要がなくなるので、トルクベース力制御におけるフィードバック制御の制御周期を速くすることができる。よって、ロボット200の様々な動作の切り替えに対応しながら、ロボット200のトルクベース力制御を安定して行うことができる。特に、第1実施形態によれば、1つのプロセスでロボットプログラムの処理とセンサの値を用いたフィードバック制御処理とを行う場合に比べ、フィードバックの制御周期を速くすることが可能となり、ロボット200の制御の安定性が向上する。
また、指示部501においても、センサ情報に基づくフィードバック制御を制御部510に行わせることで、その分の演算負荷が軽減し、コンピュータリソースを多大に消費することを防止することができる。
また、第1実施形態によれば、制御部510の監視部511は、トルクベース力制御中に切替条件に合致した場合において、切替情報を切替部502に通知する。切替部502は、通知された切替情報をもとに条件分岐することで、ロボット200の動作を柔軟に切り替えることが可能となる。よって、トルクベース力制御を用いた組付作業の応用範囲が広がり、複雑な組付作業に対応することが可能となる。
[第2実施形態]
次に、第2実施形態に係るロボットシステムについて説明する。図11は、第2実施形態におけるロボットにより組付作業を行う直前の状態を示す模式図である。第2実施形態では、トルクベース力制御により、ロボットハンド252を下方向に動かし、ロボットハンド252が把持した第1のワークである円柱状のワークW1を、第2のワークである円環状のワークW3に組み付ける作業を行う。これにより、ワークW3にワークW1が組み付けられた物品を製造する。その際、指示部501及び制御部510により、成立した切替条件に応じて多段に分岐する複雑な制御処理を実現する。
第2実施形態では、ロボット200の動作の切り替えとして、力制御に係るパラメータを切り替える場合について説明する。なお、第2実施形態におけるロボットシステムの構成及び機能は、第1実施形態と同様であり、ユーザが作成するロボットプログラムの内容、及び組み付け対象となる第2のワークが異なる。第2実施形態では、ワークW1を組み付けるワークW3の凹部分がどの位置にあるか正確には設定されていない。このため、下記のシーケンスにより組付作業を行うものとする。説明の簡略化のため、正常系以外の条件に当てはまった場合は、ロボット200の動作を停止する。
図12は、第2実施形態におけるロボットプログラム506の一例を示す説明図である。また、図13(a)、図13(b)及び図13(c)は、ロボットプログラム506に従って動作するロボット200の組付作業を説明するためのロボット200の模式図である。指示部501の切替部502は、第01行目の命令文により、事前にティーチングペンダント400で教示した目標位置Prefstart2に位置制御により動作するよう位置指令生成部504に動作指示を送る。位置指令生成部504は、動作指令として、目標位置Prefstart2を制御部510の位置制御部518に送る。これにより位置制御部518はロボット200の手先の位置Pを目標位置Prefstart2に移動させることになる。
次に、指示部501の切替部502は、第03行目の命令文により、ロボット200の手先を位置Prefstart2から図11の下方にトルクベース力制御により移動を開始するよう力指令生成部503に動作指示を送る。力指令生成部503は、動作指令として、パラメータセット1をパラメータ設定部516に送ると共に、切替条件A,Bを監視部511に送る。これにより、指示部501は、制御部510にトルクベース力制御によるフィードバック制御を開始させる。即ち、指示部501は、ロボットプログラム506に従って、パラメータセット1を制御部510に送り、制御部510は、パラメータセット1を用いてトルクベース力制御によりロボット200の動作をフィードバック制御する。
ここで、第2実施形態では、複数のパラメータセット1,2,3及び複数の切替条件A,B,C,D,Eがある。パラメータセット1〜3は、第17行目〜第19行目に記述されている。パラメータセット1には、力目標値Fref2、位置目標値Pref2、速度目標値Pref2(・)、加速度目標値Pref2(・・)、剛性係数Kref2、粘性係数Dref2、慣性行列Λref2が含まれている。パラメータセット2には、力目標値Fref3、位置目標値Pref3、速度目標値Pref3(・)、加速度目標値Pref3(・・)、剛性係数Kref3、粘性係数Dref3、慣性行列Λref3が含まれている。パラメータセット3には、力目標値Fref4、位置目標値Pref4、速度目標値Pref4(・)、加速度目標値Pref4(・・)、剛性係数Kref4、粘性係数Dref4、慣性行列Λref4が含まれている。
切替条件A〜Eは、第22行目〜第26行目に記述されている。切替条件Aは、手先力Fの並進z成分が閾値Th_f_z3を超えるという条件である。切替条件Bは、トルクベース力制御を開始した時点からの経過時間が閾値(5[s])を超えるという条件である。切替条件Cは、手先力Fの並進z成分が閾値Th_f_z4未満であるという条件である。切替条件Dは、トルクベース力制御を開始した時点からの経過時間が閾値(4[s])を超えるという条件である。切替条件Eは、トルクベース力制御を開始した時点からの経過時間が閾値(3[s])を超えるという条件である。切替条件C,Dは、切替条件Aに関連付けされている。また、切替条件Eは、切替条件Cに関連付けされている。即ち、切替条件A〜Eが多段のツリー構造状に関連付けされている。
指示部501は、制御部510にパラメータセット1に基づくトルクベース力制御を開始させる時、制御部510に複数の切替条件A,Bを送る。制御部510の監視部511は、トルクベース力制御中にロボット200の状態が切替条件Aに合致した場合、切替条件Aに合致したことを示す切替情報を指示部501に送る。また、監視部511は、トルクベース力制御中にロボット200の状態が切替条件Bに合致した場合、切替条件Bに合致したことを示す切替情報を指示部501に送る。
指示部501の切替部502は、切替条件Aに合致したことを示す切替情報の入力を受けた場合、その切替情報に対応する動作指令を制御部510に送る。具体的には、切替条件Aは、手先力Fの並進z成分が閾値Th_f_z3を超えるという条件であり、図13(a)に示すように、ワークW1の底面がワークW3に突き当たったこと示している。
切替条件Aが成立しているので、切替部502は、第05行目から第06行目に記述された命令文に従い、動作指示を力指令生成部503に送り、力指令生成部503は、制御部510に動作指令を送る。この動作指令は、パラメータセット2であり、力制御部517は、新たなパラメータセット2を用いてトルクベース力制御でフィードバック制御を行う。即ち、図13(b)に示すように、紙面右方向にトルクベース力制御で探り動作を行う。ここで、指示部501は、動作指令であるパラメータセット2を制御部510に送る時、ロボット200の状態が合致したと判定された切替条件Aに関連付けされた新たな切替条件C,Dを、制御部510の監視部511に送る。
指示部501の切替部502は、切替条件Cに合致したことを示す切替情報の入力を受けた場合、その切替情報に対応する動作指令を制御部510に送る。具体的には、切替条件Cは、手先力Fの並進z成分が閾値Th_f_z4未満であるという条件であり、図13(b)に示すように、ワークW1の底面がワークW3の凹部に入ったこと示している。
切替条件Cが成立しているので、切替部502は、第07行目から第08行目に記述された命令文に従い、動作指示を力指令生成部503に送り、力指令生成部503は、制御部510に動作指令を送る。この動作指令は、パラメータセット3であり、力制御部517は、新たなパラメータセット3を用いてトルクベース力制御でフィードバック制御を行う。即ち、図13(c)に示すように、下方向にトルクベース力制御で嵌合動作を行う。ここで、指示部501は、動作指令であるパラメータセット3を制御部510に送る時、ロボット200の状態が合致したと判定された切替条件Cに関連付けされた新たな切替条件Eを、制御部510の監視部511に送る。
以上、第2実施形態によれば、トルクベース力制御中に切替条件に合致した場合において、制御部510が切替情報を切替部502に通知し、切替部502が通知を受けた切替情報をもとに条件分岐する。指示部501及び制御部510の動作により、力制御に係るパラメータを1回以上切り替えることが可能となる。即ち切替条件Aに合致したら初期のパラメータセット1からパラメータセット2に切り替え、更に切替条件Cに合致したらパラメータセット2からパラメータセット3に切り替えるといった、多段で複雑な切り替えが容易に可能となる。
[第3実施形態]
次に、第3実施形態に係るロボットシステムについて説明する。図14は、第3実施形態における指示部501及び制御部510Aの制御ブロック図である。第2実施形態の制御部510Aでは、図7に示す制御部510Aに、パラメータ記憶部520が追加されている。また、力指令生成部503からの出力には、遷移時間tsの情報が追加されている。
パラメータ記憶部520は、切り替え前のパラメータを保持することにある。切り替え前のパラメータを保持することで、力制御に係るパラメータの切り替えが生じた場合、パラメータ設定部516において、切り替え前のパラメータと切り替え後のパラメータとを補間関数により補間する。これにより、急激なパラメータの変化を防止する。補間方法としては、例えば線形補間や3次多項式、シグモイド関数等の補間関数が挙げられるが、これらに限るものではない。
簡単化のため、パラメータのひとつである力目標値Frefのみを補間する場合について説明する。図15(a)は、補間をしなかった場合を示す手先の力目標値Frefの時間変化を示す模式図である。図15(b)は、補間をしなかった場合を示す手先力Fの時間変化を示す模式図である。図15(c)は、補間をした場合を示す手先の力目標値Frefの時間変化を示す模式図である。図15(d)は、補間をした場合を示す手先力Fの時間変化を示す模式図である。
図15(a)に示すように、補間しない場合、ステップ状に力目標値Frefが切り替わる。このため、図15(b)のように、力目標値Frefに対して手先力Fがオーバーシュートする。一方、第3実施形態では、図15(c)に示すように、遷移時間ts内で力目標値Frefを補間関数を用いて補間する。図15(c)の例では、遷移時間ts内で線形補間している。このため、力制御部517で計算するトルク指令値τMFref1〜τMFref6が急激に変化することが防止できる。結果として、図15(d)のように、手先力Fがオーバーシュートするのを防止できる。以上、第3実施形態によれば、手先力Fのオーバーシュートを防止できるので、ロボット200により安定して作業を行うことができる。
[第4実施形態]
次に、第4実施形態に係るロボットシステムについて説明する。図16は、第4実施形態におけるロボットプログラム506の一例を示す説明図である。第4実施形態では、監視部511に遅延時間機能が追加され、力指令生成部503から監視部511への出力に遅延時間の情報が追加されている。
ロボットプログラム506の第12行目の切替条件Aには、遅延時間が記述されている。具体的には監視部511において、トルクベース力制御の開始後、所定時間0.4[s]の間は手先力Fの並進z成分の判定を行わないことを意味する。
図17は、第4実施形態において切替条件に合致するか否かの判定を示す概念図である。図17には、切替条件が、手先力Fの6要素のうち一成分が閾値Th_f_z2未満となる条件である場合について図示している。
位置制御後にトルクベース力制御を行う場合、図17に示すように、トルクベース力制御の開始直後は、制御変更により手先力Fの変動が大きくなることがある。制御部510の監視部511は、指示部501により切替条件の入力を受けた時点から所定時間taが経過した後にロボット200の状態が切替条件に合致した場合に、指示部501に切替情報を送る。図16及び図17の例では、所定時間taが遅延時間0.4[s]である。所定時間ta、例えば0.4[s]の判定をしないマスク期間を設けることで、制御部510の監視部511の判定動作が安定する。
以上、第4実施形態によれば、制御部510の監視部511が遅延機能を有することで、操作者がロボットプログラム506に命令文を記述することにより、切替条件の判定の開始時刻を制御できるようになる。このため、ロボット200の動き始めなどに生じる手先力Fや手先位置Pの大きな変動を制御部510の監視部511が無視することになり、ロボット200の制御の安定性が向上する。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、上述の実施形態では、CPU301が複数のコアを有し、複数のコアで指示部及び制御部の機能を実現する場合について説明したが、複数のCPU又は複数のコンピュータで指示部及び制御部の機能を実現する場合であってもよい。また、1つのコアのみを有する1つのCPUで指示部及び制御部の機能を実現する場合であっても、複数のプロセス、即ち複数のアプリケーションソフトウェアを独立して実行できるように構成すればよい。即ち、CPUが第1のプロセスを実行して指示部として機能し、かつ第2のプロセスを実行して制御部として機能するようにしてもよい。演算負荷という点では、1つのコアを有する1つのCPUで指示部及び制御部の機能を実現するよりも、複数のコア、複数のCPU又は複数のコンピュータで指示部及び制御部の機能を実現するほうがより好ましい。
また、上述の実施形態では、ロボットアームが垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等であってもよい。
100…ロボットシステム、200…ロボット、300…ロボット制御装置、501…指示部、506…ロボットプログラム、510…制御部、541…トルクセンサ、551…エンコーダ

Claims (16)

  1. センサを有するロボットに関する複数の動作内容と、前記複数の動作内容の切替条件に関する値と、が記述されたロボットプログラムと、
    前記ロボットプログラムに基づき、前記複数の動作内容から第1の動作内容を前記ロボットに実行させるための第1動作指令を出力する第1制御部と、
    前記第1動作指令と前記センサの出力結果とに基づき前記ロボットの動作を制御し、前記センサの出力結果が前記切替条件と合致しているか判定する第2制御部と、を備え、
    前記第1制御部は、
    前記センサの出力結果が前記切替条件に合致すれば前記ロボットプログラムに基づき第2の動作内容を前記ロボットに実行させるための第2動作指令を前記第2制御部に出力する、
    ことを特徴とする制御装置。
  2. 前記第1制御部は、前記第2動作指令を前記第2制御部に出力する際、新たな切替条件前記第2制御部に出力する、ことを特徴とする請求項に記載の制御装置。
  3. 前記第2制御部は、前記第1動作指令または前記第2動作指令前記センサの出力結果とに基づく前記ロボットの動作の制御が開始されてから所定時間が経過した後に前記センサの出力結果が前記切替条件に合致したと判定すれば、前記センサの出力結果が前記切替条件に合致したという情報を前記第1制御部に出力する、ことを特徴とする請求項2に記載の制御装置。
  4. 前記第1制御部は、更に外部装置の動作を制御することを特徴とする請求項1乃至のいずれか1項に記載の制御装置。
  5. 前記第1制御部は、前記第1動作指令および前記第2動作指令として、前記第2制御部による制御に係るパラメータを出力することを特徴とする請求項1乃至のいずれか1項に記載の制御装置。
  6. 前記パラメータには、前記ロボットの所定部位における力目標値及び位置目標値の少なくともいずれか一方が含まれることを特徴とする請求項に記載の制御装置。
  7. 前記パラメータには、前記第2制御による制御において用いる演算式の係数が含まれていることを特徴とする請求項又はに記載の制御装置。
  8. 前記第2制御部は、前記パラメータを切り替える際、補間関数によって補間することを特徴とする請求項5乃至7のいずれか1項に記載の制御装置
  9. 前記第2制御部は、前記センサの出力結果をフィードバックすることで前記ロボットの制御を行う、ことを特徴とする請求項1からのいずれか1項に記載の制御装置。
  10. 前記第1制御部と前記第2制御部は、CPUに設けられ、それぞれに割り当てられたコアにより、独立して演算できるように設けられている、ことを特徴とする請求項1乃至9のいずれか1項に記載の制御装置。
  11. 前記第1制御部と前記第2制御部は、それぞれ、別々のCPUに設けられ、独立して演算できるように設けられている、ことを特徴とする請求項1乃至9のいずれか1項に記載の制御装置。
  12. 請求項1乃至のいずれか1項に記載の制御装置と、
    前記ロボットと、を備えたロボットシステム。
  13. 請求項1に記載のロボットシステムを用いて物品の製造を行うことを特徴とする物品の製造方法。
  14. センサを有するロボットに関する複数の動作内容と、前記動作内容の切替条件に関する値と、が記述されたロボットプログラムと、
    前記ロボットプログラムに基づき、前記動作内容から第1の動作内容を前記ロボットに実行させるための第1動作指令を出力する第1制御部と、
    前記第1動作指令と前記センサの出力結果とに基づき前記ロボットの動作を制御し、前記センサの出力結果が前記切替条件と合致しているか判定する第2制御部と、により前記ロボットを制御する制御方法であって、
    前記第1制御部は、
    前記センサの出力結果が前記切替条件に合致すれば前記ロボットプログラムに基づき第2の動作内容を前記ロボットに実行させるための第2動作指令を前記第2制御部に出力する、
    ことを特徴とする制御方法。
  15. コンピュータに請求項1に記載の制御方法を実行させるための制御プログラム。
  16. 請求項1に記載の制御プログラムを記録した、コンピュータにより読み取り可能な記録媒体。
JP2017008955A 2017-01-20 2017-01-20 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法 Active JP6851837B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017008955A JP6851837B2 (ja) 2017-01-20 2017-01-20 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法
EP18150138.8A EP3351353A1 (en) 2017-01-20 2018-01-03 Robot control apparatus, robot system, robot control method and assembly manufacturing method
US15/869,369 US20180207798A1 (en) 2017-01-20 2018-01-12 Robot control apparatus, robot system, robot control method and assembly manufacturing method
CN201810053956.6A CN108326877B (zh) 2017-01-20 2018-01-19 机器人控制设备、系统和控制方法及制品装配制造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017008955A JP6851837B2 (ja) 2017-01-20 2017-01-20 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法

Publications (3)

Publication Number Publication Date
JP2018114607A JP2018114607A (ja) 2018-07-26
JP2018114607A5 JP2018114607A5 (ja) 2020-07-27
JP6851837B2 true JP6851837B2 (ja) 2021-03-31

Family

ID=60923366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017008955A Active JP6851837B2 (ja) 2017-01-20 2017-01-20 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法

Country Status (4)

Country Link
US (1) US20180207798A1 (ja)
EP (1) EP3351353A1 (ja)
JP (1) JP6851837B2 (ja)
CN (1) CN108326877B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180021949A1 (en) * 2016-07-20 2018-01-25 Canon Kabushiki Kaisha Robot apparatus, robot controlling method, program, and recording medium
JP6852450B2 (ja) * 2017-02-17 2021-03-31 セイコーエプソン株式会社 表示方法およびロボットシステム
US10537995B2 (en) * 2017-05-08 2020-01-21 Seiko Epson Corporation Controller and control method of robot, and robot system
EP3441201B1 (en) 2017-08-08 2023-01-18 Siemens Healthcare GmbH Method for operating a robot and robotic system
JP6661676B2 (ja) * 2018-01-18 2020-03-11 ファナック株式会社 ロボット制御装置
CN114126811A (zh) * 2019-07-18 2022-03-01 株式会社安川电机 机器人系统、机器人的控制方法、伺服系统
US11723739B2 (en) * 2019-08-15 2023-08-15 Verb Surgical Inc. Admittance compensation for surgical tool
CN114365048B (zh) 2019-09-12 2022-12-02 三菱电机株式会社 数控装置
US11904473B2 (en) 2019-12-30 2024-02-20 Intrinsic Innovation Llc Transformation mode switching for a real-time robotic control system
CN114237054A (zh) * 2021-12-18 2022-03-25 福州大学 空中机器人的6d交互控制方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5845311B2 (ja) 1977-09-10 1983-10-08 株式会社クボタ 固液分離装置
US4458189A (en) * 1982-08-06 1984-07-03 Mts Systems Corporation Control mode switching circuit
US5116180A (en) * 1988-07-18 1992-05-26 Spar Aerospace Limited Human-in-the-loop machine control loop
JP2812582B2 (ja) * 1991-05-21 1998-10-22 株式会社日立製作所 産業用ロボットの制御装置
JPH05200686A (ja) * 1992-01-22 1993-08-10 Fujitsu Ltd ロボット装置
JPH0724665A (ja) * 1993-07-05 1995-01-27 Yamatake Honeywell Co Ltd 自動組立装置
JPH0969013A (ja) * 1995-08-31 1997-03-11 Fanuc Ltd サーボモータを用いたサーボ系の制御モード切り換え方法
JP3124519B2 (ja) * 1998-07-23 2001-01-15 セイコー精機株式会社 制御系のモード切替え機能を有するロボット制御装置
EP2380710B1 (en) * 2003-07-29 2012-11-28 Panasonic Corporation Robot arm control method and control device
JP4041508B2 (ja) * 2005-07-11 2008-01-30 ファナック株式会社 サーボダイクッションの制御装置
JP2008290228A (ja) * 2007-04-24 2008-12-04 Fanuc Ltd 嵌合装置
US20110015787A1 (en) * 2009-01-22 2011-01-20 Yuko Tsusaka Control apparatus and control method for robot arm, robot, control program for robot arm, and integrated electronic circuit
JP5218470B2 (ja) * 2010-04-28 2013-06-26 株式会社安川電機 ロボットの作業成否判定装置、および方法
JP5743495B2 (ja) * 2010-11-05 2015-07-01 キヤノン株式会社 ロボット制御装置
JP5962020B2 (ja) * 2012-01-17 2016-08-03 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット及びロボット制御方法
JP5741617B2 (ja) * 2013-03-19 2015-07-01 株式会社安川電機 ロボット装置
CN104827469B (zh) * 2013-10-10 2016-10-19 精工爱普生株式会社 机器人控制装置、机器人系统、机器人以及机器人控制方法
JP6322948B2 (ja) * 2013-10-10 2018-05-16 セイコーエプソン株式会社 ロボット制御装置、ロボットシステム、ロボット、ロボット制御方法、及びプログラム
JP6100727B2 (ja) * 2014-04-09 2017-03-22 ファナック株式会社 リードスルー機能を有する人協調型産業用ロボット
JP5845311B2 (ja) * 2014-04-30 2016-01-20 ファナック株式会社 ロボットの柔軟制御を行う制御装置
DE102014216514B3 (de) * 2014-08-20 2015-09-10 Kuka Roboter Gmbh Verfahren zum Programmieren eines Industrieroboters und zugehöriger Industrieroboter
US9849595B2 (en) * 2015-02-06 2017-12-26 Abb Schweiz Ag Contact force limiting with haptic feedback for a tele-operated robot
JP6055002B2 (ja) * 2015-02-20 2016-12-27 ファナック株式会社 ロボットを退避動作させる人間協調ロボットシステム
JP6584102B2 (ja) * 2015-03-13 2019-10-02 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム、記録媒体、及び物品の製造方法
CN106239516B (zh) * 2015-06-03 2021-09-24 精工爱普生株式会社 机器人控制装置、机器人以及机器人系统
JP6088583B2 (ja) * 2015-06-08 2017-03-01 ファナック株式会社 ロボットと力の表示機能を備えたロボット制御装置
JP2017077608A (ja) * 2015-10-21 2017-04-27 ファナック株式会社 ロボットの安全監視装置
CN106272416B (zh) * 2016-08-29 2020-12-29 上海交通大学 基于力觉和视觉的机器人细长轴精密装配系统及方法
JP2018037021A (ja) * 2016-09-02 2018-03-08 オムロン株式会社 制御装置および制御システム
EP3321043A3 (en) * 2016-11-10 2018-10-10 Canon Kabushiki Kaisha Method of controlling holding apparatus, holding apparatus, and robot apparatus
JP7020812B2 (ja) * 2017-07-19 2022-02-16 キヤノン株式会社 ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の組立方法、制御プログラムおよび記録媒体
JP7204354B2 (ja) * 2018-06-19 2023-01-16 キヤノン株式会社 ロボットシステム、ロボットシステムの制御方法、ロボットシステムを用いた物品の製造方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
EP3351353A1 (en) 2018-07-25
CN108326877B (zh) 2022-03-08
JP2018114607A (ja) 2018-07-26
US20180207798A1 (en) 2018-07-26
CN108326877A (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
JP6851837B2 (ja) 制御装置、ロボットシステム、制御方法、プログラム、記録媒体及び物品の製造方法
US10272568B2 (en) Robot apparatus, robot controlling method, program, recording medium, and assembly manufacturing method
US10486309B2 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
CN101901281B (zh) 消耗电力估计装置
CN1903523B (zh) 机器人程序评价、修正方法及机器人程序评价、修正装置
EP2485875B1 (en) A method for reducing the energy consumption of an industrial robot and an industrial robot system
JP7091422B2 (ja) ロボット装置、物品の製造方法、ロボット装置の制御方法、プログラム、記録媒体、駆動装置、駆動装置の制御方法
CN115008473A (zh) 机器人控制
WO2011042293A1 (en) A method for reducing the energy consumption of an industrial robot and an industrial robot system
JP7080649B2 (ja) 制御方法、物品の製造方法、制御プログラム、記録媒体、ロボットシステム、制御装置
JP2013184245A (ja) ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2012096349A5 (ja)
JP6652310B2 (ja) ロボットシステム、ロボットアームの制御方法、プログラム、記録媒体、及び物品の製造方法
TWI594858B (zh) 機械手臂教導控制系統
JP2017056525A (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体及び組立部品の製造方法
JP2019104091A (ja) ロボット装置、ロボット装置の制御方法
CN109352678B (zh) 机器人轴的重力补偿方法及装置、机器人
JP2017164833A (ja) マニピュレータ装置の制御装置、マニピュレータ装置の制御方法及びマニピュレータ装置の制御プログラム
JP2019214105A (ja) ロボット制御装置およびロボット制御方法
JP7391523B2 (ja) 制御装置、ロボットシステム、制御方法、物品の製造方法、プログラム、及び記録媒体
Vochten et al. Specification and control of human-robot handovers using constraint-based programming
JP7327991B2 (ja) 制御方法、制御プログラム、記録媒体、ロボットシステム、物品の製造方法および入力装置
JPH08106320A (ja) 自動機械及び自動機械の制御方法
JPH07205068A (ja) ロボットの座標系設定方法
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210115

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: 20210209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210310

R151 Written notification of patent or utility model registration

Ref document number: 6851837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151