JP2013052451A - ロボット制御システム、ロボットシステム及びプログラム - Google Patents

ロボット制御システム、ロボットシステム及びプログラム Download PDF

Info

Publication number
JP2013052451A
JP2013052451A JP2011190405A JP2011190405A JP2013052451A JP 2013052451 A JP2013052451 A JP 2013052451A JP 2011190405 A JP2011190405 A JP 2011190405A JP 2011190405 A JP2011190405 A JP 2011190405A JP 2013052451 A JP2013052451 A JP 2013052451A
Authority
JP
Japan
Prior art keywords
robot
force sensor
detection value
trajectory
control unit
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.)
Withdrawn
Application number
JP2011190405A
Other languages
English (en)
Inventor
Nobuhiro Karido
信宏 狩戸
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011190405A priority Critical patent/JP2013052451A/ja
Publication of JP2013052451A publication Critical patent/JP2013052451A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 力覚センサーの検出値に基づいて、ロボットの軌道が計画軌道から外れたか否かを判定し、計画軌道とロボットの軌道とのずれの拡大を防止することができるロボット制御システム等の提供。
【解決手段】 ロボット制御システム300は、計画軌道に基づいて、第1の周期で、ロボット400の制御指令を出力する第1の制御部110と、第1の制御部110から得られる制御指令と、力覚センサー440から得られる検出値とに基づいて、第1の周期よりも短い第2の周期で、ロボット400を制御する第2の制御部210とを含む。そして、第2の制御部210は、力覚センサー440の検出値の許容範囲内に、取得された力覚センサー440の検出値が含まれるか否かを判定し、許容範囲内に力覚センサー440の検出値が含まれないと判定した場合には、ロボット400の軌道が計画軌道から外れたと判定する。
【選択図】 図3

Description

本発明は、ロボット制御システム、ロボットシステム及びプログラム等に関係する。
近年、生産現場において、人が行ってきた作業を機械化・自動化するために、産業用ロボットを導入することが多くなってきた。産業用ロボットは、アームとハンドを備えているものが多く、実際の生産現場では、産業用ロボットのハンドにより、ワークを掴んで、所定の位置に移動させる作業などが行われている。
このような産業用ロボットの動作を制御する際には、ロボットのハンドを目標位置に移動させるために、アームやハンドの計画軌道を設定し、計画軌道を通るようにアームのジョイント等を動かす制御信号を生成する。そして、制御信号に従って、ロボットを動作させる。
しかし、ロボットを動作させる際に、外力等の要因によりロボットの軌道が、計画軌道から外れてしまうことがある。
この問題を解決する手法としては、特許文献1〜特許文献3に記載される従来技術がある。
特開平11−024718号公報 特開2003−071760号公報 特開2008−142810号公報
本発明では、例えば、産業用ロボットと離れた位置にある第1の情報処理装置を用いて、産業用ロボットの近くに設置された第2の情報処理装置に、計画軌道に対応する制御指令を送信して、第2の情報処理装置がロボットを制御するような場合を想定している。
この際に、外力等の要因により、ロボットの軌道が計画軌道から外れた場合には、ロボットの軌道修正等を行う必要がある。しかし、第1の情報処理装置によって、ロボットの軌道修正等を行う場合には、第1の情報処理装置から新たな制御指令を、第2の情報処理装置が受信するまでに、計画軌道とロボットの軌道とのずれが拡大してしまうことがある。
ところが、特許文献1〜特許文献3には、前述したような2つの情報処理装置における制御指令の待ち時間を原因とするロボットの軌道のずれの拡大を防止する手法については、記載されていない。
本発明の幾つかの態様によれば、力覚センサーの検出値に基づいて、ロボットの軌道が計画軌道から外れたか否かを判定し、計画軌道とロボットの軌道とのずれの拡大を防止することができるロボット制御システム、ロボットシステム及びプログラム等を提供することができる。
本発明の一態様は、計画軌道に基づいて、第1の周期で、ロボットの制御指令を出力する第1の制御部と、前記第1の制御部から得られる前記制御指令と、力覚センサーから得られる検出値とに基づいて、前記第1の周期よりも短い第2の周期で、前記ロボットを制御する第2の制御部と、を含み、前記第2の制御部は、前記力覚センサーの検出値の許容範囲内に、取得された前記力覚センサーの検出値が含まれるか否かを判定し、前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記ロボットの軌道が前記計画軌道から外れたと判定することを特徴とするロボット制御システムに関係する。
本発明の一態様では、力覚センサーの検出値に基づいて、ロボットの実際の軌道を求めなくてもよく、力覚センサーの検出値が許容範囲内に含まれるか否かを判定する処理を行う。
これにより、第1の制御部へ力覚センサーの検出値を出力する処理と、力覚センサーの検出値に基づいて、ロボットの実際の軌道を求める処理を排除することが可能になり、処理量及び応答待ち時間を削減することが可能になる。
また、本発明の一態様では、前記第1の制御部は、前記計画軌道に対応する前記許容範囲を設定し、前記第2の制御部は、前記第1の制御部から得られる前記許容範囲に基づいて、前記許容範囲内に前記力覚センサーの検出値が含まれるか否かを判定してもよい。
これにより、例えば、計画軌道をユーザーが設定する場合に、第1の制御部が計画軌道に合わせて、力覚センサーの検出値の許容範囲を設定すること等が可能になる。
また、本発明の一態様では、前記第2の制御部は、前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記許容範囲内に前記力覚センサーの検出値が含まれないことを、前記第1の制御部に通知して、前記ロボットの制御の停止処理を行い、前記許容範囲内に前記力覚センサーの検出値が含まれると判定した場合には、前記第2の周期で、前記ロボットの制御を行ってもよい。
これにより、力覚センサーの検出値が許容範囲内に含まれるか否かによって、第2の制御部の動作を変更すること等が可能になる。
また、本発明の一態様では、前記第2の制御部は、ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸についての力成分を有する検出値を、前記力覚センサーから取得し、前記ロボットの軌道が前記計画軌道と一致している時に前記力覚センサーの検出値の第3軸方向が鉛直方向と一致する場合に、前記力覚センサーの検出値の各力成分のうち、少なくとも一つの力成分が、前記許容範囲内に含まれるか否かを判定して、前記ロボットの軌道が前記計画軌道から外れたか否かを判定してもよい。
これにより、例えば、力覚センサーの第3軸方向を鉛直方向に一致させたまま、ロボットを動作させる場合に、第2の制御部が、力覚センサーの検出値に含まれる力成分に基づいて、ロボットの制御を継続するか停止するか判断すること等が可能になる。
また、本発明の一態様では、前記第2の制御部は、ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸のそれぞれを中心とするモーメント成分を有する検出値を、前記力覚センサーから取得し、前記ロボットの軌道が前記計画軌道と一致している時に前記力覚センサーの検出値の第3軸方向が鉛直方向と一致する場合に、前記力覚センサーの検出値の各モーメント成分のうち、少なくとも一つのモーメント成分が、前記許容範囲内に含まれるか否かを判定して、前記ロボットの軌道が前記計画軌道から外れたか否かを判定してもよい。
これにより、例えば、力覚センサーの第3軸を鉛直方向に一致させたまま、ロボットを動作させる場合に、第2の制御部が、力覚センサーの検出値に含まれるモーメント成分に基づいて、ロボットの制御を継続するか停止するか判断すること等が可能になる。
また、本発明の一態様では、前記第2の制御部は、前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記力覚センサーの検出値に基づいて、前記ロボットの前記軌道の補正処理を行ってもよい。
これにより、第1の制御部から制御指令が出力される前に、第2の制御部が力覚センサーの検出値に基づいて、ロボットの軌道の補正処理を行うこと等が可能となり、ロボットの軌道が補正されるまでの応答待ち時間を短縮すること等が可能になる。
また、本発明の他の態様は、計画軌道に基づいて、第1の周期で、ロボットの制御指令を出力する第1の制御部と、前記第1の制御部から得られる前記制御指令と、前記力覚センサーから得られる検出値とに基づいて、前記第1の周期よりも短い第2の周期で、前記ロボットを制御する第2の制御部と、を含み、前記第2の制御部は、前記ロボットの軌道の補正処理として、前記力覚センサーの検出値と検出目標値との差異に基づいて、前記ロボットを制御するロボット制御システムに関係する。
本発明の他の態様によれば、力覚センサーの検出値と検出目標値との差異に基づいて、ロボットの軌道の補正処理を行うことで、例えばロボットの軌道を算出する処理等を行うことを回避し、処理量を低減し、アルゴリズムの簡易化を図ること等が可能となる。
また、本発明の一態様及び他の態様では、前記第1の制御部は、前記ロボットの軌道が前記計画軌道と一致している場合の前記力覚センサーの検出値を、検出目標値として設定して、前記第2の制御部は、前記ロボットの前記軌道の前記補正処理として、前記力覚センサーから得られる検出値と、前記第1の制御部から得られる前記力覚センサーの前記検出目標値との差異に基づいて、前記ロボットを制御してもよい。
これにより、第1の制御部が計画軌道に基づいて、力覚センサーの検出目標値を設定すること等が可能になり、例えば、ユーザーが計画軌道を設定する場合にも、第1の制御部が力覚センサーの検出目標値を求めて、ロボットの軌道の補正処理を行うこと等が可能になる。
また、本発明の一態様及び他の態様では、前記第1の制御部は、前記力覚センサーの前記検出目標値を、前記第1の周期毎に、前記第2の制御部に出力し、前記第2の制御部は、前記第1の周期よりも短い第3の周期で、検出値を前記力覚センサーから取得する場合には、取得した前記力覚センサーの検出値と、前記検出目標値との前記差異を、前記第2の周期で求めてもよい。
これにより、第3の周期が第1の周期と異なる場合においても、最新の力覚センサーの検出値を用いて、ロボットの軌道の補正処理を行うこと等が可能になる。
また、本発明の一態様及び他の態様では、前記第1の制御部は、前記第1の周期毎に、前記力覚センサーの前記検出目標値と逆ヤコビ行列とを出力し、前記第2の制御部は、前記第1の周期よりも短い第3の周期で、前記力覚センサーから検出値を取得する場合に、取得した前記力覚センサーの検出値と前記検出目標値との前記差異を、前記第2の周期で求め、前記差異に基づいて、前記第2の周期で、前記逆ヤコビ行列の補正処理を行ってもよい。
これにより、逆ヤコビ行列を補正して、現在のロボットの姿勢に基づく逆ヤコビ行列を求めること等が可能になる。
また、本発明の一態様及び他の態様では、前記第1の制御部は、前記第1の周期毎に、逆ヤコビ行列を出力し、前記第2の制御部は、前記許容範囲内に前記力覚センサーの検出値が含まれないと判断した場合には、前記逆ヤコビ行列の更新処理要求を行ってもよい。
これにより、第2の制御部で逆ヤコビ行列を補正する処理を回避して、処理量を抑制すること等が可能になる。
また、本発明の他の態様は、前記ロボット制御システムを含むことを特徴とするロボットシステムに関係する。
また、本発明の他の態様は、上記各部としてコンピューターを機能させるプログラムに関係する。
本実施形態及び比較例のシステム構成例。 図2(A)、図2(B)は、本実施形態と比較例との軌道修正タイミングの説明図。 本実施形態の詳細なシステム構成例。 図4(A)、図4(B)は、力覚センサーの説明図。 図5(A)、図5(B)は、ロボットがワークを垂直に把持しながら移動させる場合の軌道判定処理の説明図。 図6(A)、図6(B)は、ロボットがワークを水平に把持しながら移動させる場合の軌道判定処理の説明図。 軌道補正処理の説明図。 図8(A)、図8(B)は、力覚センサーの検出目標値を用いる場合の軌道補正処理の説明図。 力覚センサーの検出目標値と現在の検出値との差異の更新タイミングの説明図。 本実施形態の第1の制御部が行う処理の一例を説明するフローチャート。 本実施形態の第2の制御部が行う処理の一例を説明するフローチャート。 本実施形態の第1の制御部が行う処理の他の例を説明するフローチャート。 本実施形態の第2の制御部が行う処理の他の例を説明するフローチャート。
以下、本実施形態について説明する。まず、本実施形態の概要とシステム構成例を説明し、次に本実施形態の特徴について説明する。そして最後に、フローチャートを用いて本実施形態の処理の流れについて説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.概要
本実施形態は、例えば、産業用ロボットと離れた位置にある第1の情報処理装置を用いて、産業用ロボットの近くに設置された第2の情報処理装置に、計画軌道に対応する制御指令を送信して、第2の情報処理装置がロボットを制御するような場合を想定している。
ここでは、本実施形態を説明する前に、本実施形態の比較例について、図1を用いて説明する。図1では、第1の情報処理装置100と第2の情報処理装置200とが無線で接続されており、第2の情報処理装置とロボット400が有線で接続されている。
まず、第1の情報処理装置100が、第2の情報処理装置200へ、ロボット400の計画軌道に基づいた制御指令を出力する。制御指令は、例えば10ms(ミリ秒)に一度出力されるものであり、この場合には、10ms後のロボット400の位置等を表す制御指令が出力される。
次に、第2の情報処理装置200は、取得した制御指令に基づいて、ロボット400を制御する。第2の情報処理装置200がロボット400を制御する周期は、例えば、1msに設定され、第1の情報処理装置100が、制御指令を出力する周期よりも短く設定される。そのため、第2の情報処理装置200は、例えば、10ms後のロボット400の位置等を示す制御指令を補間して、1ms単位のロボット400の目標位置等を求めて、ロボット400を制御する。
最後に、ロボット400は、第2の情報処理装置200から取得される命令に基づいて、アーム420やハンド430を動作させて、ワーク600を把持して、移動させる等の動作を行う。
この際に、ロボット400に外力が加わる等の要因により、ロボット400の軌道が計画軌道から外れた場合には、ロボット400の軌道修正等を行う必要がある。本実施形態の比較例では、ロボット400のハンド430に、力覚センサー440が設けられており、第2の情報処理装置200が、力覚センサー440から検出値を取得して、第1の情報処理装置100に出力する。そして、第1の情報処理装置100が、取得した力覚センサーの検出値に基づいて、ロボット400の各部が実際に移動した軌道を算出する。その後、第1の情報処理装置100は、求めたロボット400の実際の軌道と計画軌道とを比較して、実際の軌道が計画軌道から外れていると判断する場合には、ロボット400の軌道のずれを修正するような制御指令を生成し、出力する。その後は、前述した場合と同様に、第2の情報処理装置200が、制御指令に基づいて、ロボット400を制御し、ロボット400の軌道のずれを修正する。
しかし、このような手法で、ロボット400の軌道修正等を行う場合には、第2の情報処理装置200は、第1の情報処理装置100から新たな制御指令を受信するまでの間も、ロボット400を制御し続けることとなる。しかもこの際に、第2の情報処理装置200は、軌道修正前の制御指令に基づいて、ロボット400を制御し続けてしまう。そのため、応答待ち時間中に、計画軌道とロボット400の軌道とのずれがさらに拡大してしまうことがある。
その具体例を図2(A)に示す。図2(A)では、前述した例と同様に、第1の情報処理装置が10msに一度、制御指令を出力し、第2の情報処理装置は1msに一度ロボットを制御する(SG1)。そして、第2の情報処理装置は力覚センサーの検出値を取得し、第1の情報処理装置に出力する(SG2)。なお、ここでは、第2の情報処理装置は、5msに一度、力覚センサーの検出値を取得できるものとし、説明の簡略化のため、力覚センサーの検出値を取得してから、第1の情報処理装置に出力するまでの時間間隔は、1msとしている。そして、第1の情報処理装置は、力覚センサーの検出値に基づいて、ロボットの軌道を修正する制御指令を生成し、出力する(SG3)。
ここで、図2(A)において、例えば、ロボット制御の開始から2ms時点(P1)で、第2の情報処理装置が力覚センサーの検出値を取得した後に、第1の情報処理装置からロボットの制御指令が出力されるのは、制御開始から10ms時点(P2)となる。さらに、その制御指令に基づき、ロボットが制御されるのは、その1ms後(P3)である。すなわち、制御開始から2ms時点(P1)から11ms時点(P3)までの9ms間(応答待ち時間WT1間)は、例え、ロボットの軌道がずれていたとしても、ロボットの軌道を修正する制御指令等がロボットの動作に反映されない。そのため、ロボットの軌道と、計画軌道とのずれが、WT1の間に拡大してしまうことがある。
前述した特許文献1〜特許文献3には、前述したような2つの情報処理装置における制御指令の応答待ち時間を原因とするロボットの軌道のずれの拡大を防止する手法については、記載されていない。
そこで、本実施形態では、第1の情報処理装置に設けられた第1の制御部が、第2の情報処理装置に設けられた第2の制御部へ、ロボットの制御指令を通知する場合に、第2の制御部が、力覚センサーの検出値に基づいて、ロボットの軌道が計画軌道から外れたか否かを判定する。
これにより、例えば、図2(B)に示すように、第1の情報処理装置と第2の情報処理装置との間で、力覚センサーの検出値等の送受信処理を省略することが可能となり、前述した応答待ち時間WT1を、大幅に短縮して、WT2とすることが可能となる。なお、ここでは、説明の簡略化のため、第2の情報処理装置が力覚センサーの検出値を取得してから、力覚センサーの検出値を反映してロボットを制御する(SG3)までの時間(応答待ち時間WT2)を1msとしているが、応答待ち時間WT2は、これに限定されるものではない。
このようにして、本実施形態では、応答待ち時間を削減することにより、計画軌道とロボットの軌道とのずれの拡大を防止すること等が可能となる。
2.システム構成例
本実施形態のシステム構成例は、前述した図1と同様である。なお、第1の情報処理装置100と第2の情報処理装置200は、一つの情報処理装置であってもよい。第2の情報処理装置とロボット400も同様である。
次に、図3に本実施形態のロボット制御システム300及びこれを含むロボットシステム500の構成例を示す。
本実施形態では、ロボットシステム500は、ロボット制御システム300と、ロボット400とを含む。そして、ロボット制御システム300は、第1の情報処理装置100と、第2の情報処理装置200とを含む。さらに、第1の情報処理装置100は、第1の制御部110と、記憶部120と、I/F部130とを含む。一方、第2の情報処理装置200は、第2の制御部210と、記憶部220と、I/F部230とを含む。ロボット400は、制御部410と、アーム420と、ハンド430と、力覚センサー440と、I/F部450とを含む。
なお、第1の情報処理装置100と、第2の情報処理装置200と、ロボット制御システム300と、ロボット400と、ロボットシステム500は、図3の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。他にも、例えば、第2の情報処理装置200がロボット400内に組み込まれていても良い。
次に各部で行われる処理について説明する。
まず、第1の制御部110は、記憶部120からのデータ等に基づいて種々の処理を行う。例えば、第1の制御部110は、計画軌道に基づいて、ロボットの制御指令を生成する。
一方、第2の制御部210は、記憶部220からのデータや、I/F部230において受信した力覚センサーの検出値等に基づいて種々の処理を行う。例えば、第2の制御部210は、第1の制御部110から取得したロボット400の制御指令を補間しつつ、ロボット400を制御する。
次に、記憶部120及び記憶部220は、データベースを記憶したり、第1の制御部110や第2の制御部210等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。
そして、I/F部130は、第1の情報処理装置100と第2の情報処理装置200間で情報をやり取りするためのインターフェースである。さらに、I/F部130は、ユーザーからの入力を取得する機能を有するインターフェースであってもよい。
一方、I/F部230は、第1の情報処理装置100と第2の情報処理装置200間、及び第2の情報処理装置とロボット400間で、情報をやり取りするためのインターフェースである。
そして、ロボット400の制御部410(命令実行部)は、第2の制御部210から取得した制御信号等に基づいて、ロボット400を制御し、アーム420やハンド430を動作させる。
また、アーム420とは、ロボット400のパーツであって、一つ以上の関節を含む可動パーツのことをいう。一方、ハンド430とは、ワーク600を把持したり、ワーク600に加工を施したりするためにアーム420のエンドポイントに取り付ける部品のことをいう。また、アーム420のエンドポイントとは、アーム420の先端部分のポイントであって、ロボット400のハンド430以外の他の部分と接続されていない部分のことをいう。
また、力覚センサー440は、図4(A)に示すように、互いに直交するX、Y、Z軸方向へハンド430が受ける力(F、F、F)と、X、Y、Z軸を中心とするハンド430のモーメント(M、M、M)を検出することができる6軸の力覚センサーPSであることが望ましい。さらに、力覚センサー440は、アーム420とハンド430との間に設けられることが望ましく、図4(B)に示すように、力覚センサー破壊防止機構(メカニカルヒューズ)DPSと弾性結合機構ESに接続されて、ハンド430に取り付けられる。ただし、力覚センサー440は、これに限定されず、少なくとも2軸以上の検出値を検出することができればよく、他の位置及び方法で設けられるものであってもよい。
最後に、I/F部450は、第2の情報処理装置200とロボット400間で情報をやり取りするためのインターフェースである。
なお、第1の制御部110及び第2の制御部210、制御部410の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアーや、プログラムなどにより実現できる。また、I/F部130及びI/F部230、I/F部450は、有線通信または無線通信を行う通信部であってもよい。
3.本実施形態の手法
以上の本実施形態では、計画軌道に基づいて、第1の周期で、ロボット400の制御指令を出力する第1の制御部110と、第1の制御部110から得られる制御指令と、力覚センサー440から得られる検出値とに基づいて、第1の周期よりも短い第2の周期で、ロボット400を制御する第2の制御部210と、を含む。そして、第2の制御部210は、力覚センサー440の検出値の許容範囲内に、取得された力覚センサー440の検出値が含まれるか否かを判定し、許容範囲内に力覚センサー440の検出値が含まれないと判定した場合には、ロボット400の軌道が計画軌道から外れたと判定する。
ここで、第1の周期とは、第1の制御部110が制御指令を出力する周期であり、第2の周期よりも長い周期、若しくは第2の周期と等しい周期である。一方、第2の周期とは、第2の制御部210がロボット400を制御する周期であり、第1の周期よりも短い周期、若しくは第1の周期と等しい周期である。
また、制御指令とは、ロボット400の各部の目標位置や、目標位置への到達目標時間、ロボット400の各部の作動速度等を示す情報である。例えば、第1の周期が10msである場合には、10ms後のロボット400の各部の到達位置などを制御指令として出力する。
前述した比較例では、第2の制御部は、力覚センサーの検出値を第1の制御部に出力するが、本実施形態では、力覚センサーの検出値を第1の制御部へ出力しなくてもよい。
これにより、第2の制御部から第1の制御部へ、力覚センサーの検出値を出力する処理を排除することが可能となり、応答待ち時間を削減することが可能となる。
なお、ここでは、力覚センサーから検出値が取得されてから、取得された力覚センサーの検出値に基づいて、ロボットが制御されるまでの時間のことを、応答待ち時間という。例えば、前述したように、図2(A)及び図2(B)の例では、応答待ち時間をWT1からWT2へ短縮している。
さらに、比較例では、第1の制御部が力覚センサーの検出値に基づいて、ロボットの実際の軌道を求めて、実際の軌道と計画軌道とを比較するが、本実施形態では、力覚センサーの検出値に基づいて、ロボットの実際の軌道を求める必要はない。その代わりに、本実施形態では、力覚センサーの検出値が許容範囲内に含まれるか否かを判定する処理を行う。この処理によって、力覚センサーの検出値が許容範囲内に含まれると判定された場合には、ロボットが計画軌道から外れずに動作しているとみなすことを意味し、一方、力覚センサーの検出値が許容範囲内に含まれないと判定された場合には、ロボットが計画軌道から外れて動作しているとみなすことを意味する。
具体的に、ロボットの軌道が計画軌道から外れた場合の一例を、図5(A)及び図5(B)を用いて簡単に説明する。図5(A)では、計画軌道OB通りにロボットのハンドHDが移動している。これに対して、図5(B)では、ロボットのハンドHDが、計画軌道POB通り、本来の目標位置PPに移動せずに、ROBのような軌道で移動している。図5(B)からも明確である通り、一度ROBのような軌道を通って移動してしまうと、その後制御指令通りにロボットのハンドHDが移動したとしても、本来の目標位置PPには到達できないことがある。その場合の対処については、後述する。
これにより、力覚センサーの検出値に基づいて、ロボットの実際の軌道を求める処理を排除することが可能になり、処理量及び前述した応答待ち時間を削減すること等が可能になる。
また、第1の制御部110は、計画軌道に対応する許容範囲を設定してもよい。そして、第2の制御部210は、第1の制御部110から得られる許容範囲に基づいて、許容範囲内に力覚センサー440の検出値が含まれるか否かを判定してもよい。
これにより、例えば、計画軌道をユーザーが設定する場合に、第1の制御部が計画軌道に合わせて、力覚センサーの検出値の許容範囲を設定すること等が可能になる。
また、第2の制御部210は、許容範囲内に力覚センサー440の検出値が含まれないと判定した場合には、許容範囲内に力覚センサー440の検出値が含まれないことを、第1の制御部110に通知して、ロボット400の制御の停止処理を行い、許容範囲内に力覚センサー440の検出値が含まれると判定した場合には、第2の周期で、ロボット400の制御を行ってもよい。
これにより、力覚センサーの検出値が許容範囲内に含まれるか否かによって、第2の制御部の動作を変更すること等が可能になる。
さらに、例えば、図5(B)のように、ロボットが計画軌道から外れて動作している場合には、力覚センサーの検出値が許容範囲内に含まれない状態となっており(この理由については、具体例を挙げて後述する)、これ以上ロボットの制御を継続しても、計画軌道とのずれが拡大する一方である。そのため、この場合には第2の制御部によるロボット制御を停止する。これにより、軌道のずれの拡大を防ぎ、その後、ロボットの軌道を修正するような制御を行う等が可能となる。一方で、力覚センサーの検出値が許容範囲内であると判断された場合には、例えば図5(A)のような状態であるため、第2の制御部によるロボットの制御を継続する。
また、第2の制御部210は、ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸についての力成分を有する検出値を、力覚センサー440から取得してもよい。そして、ロボット400の軌道が計画軌道と一致している時に力覚センサー440の検出値の第3軸方向が鉛直方向と一致する場合に、第2の制御部210は、力覚センサー440の検出値の各力成分とのうち、少なくとも一つの力成分が、許容範囲内に含まれるか否かを判定して、ロボット400の軌道が計画軌道から外れたか否かを判定してもよい。
すなわち、ロボット400の計画軌道が、力覚センサーの検出値の第3軸方向が鉛直方向と一致する計画軌道である場合に、第2の制御部210は、力覚センサー440の検出値の各力成分と許容範囲に基づいて、ロボット400の軌道が計画軌道から外れたか否かを判定する。
ここで、2つの具体例を説明する。まず、第1の具体例について、図5(A)及び図5(B)を用いて説明する。図5(A)及び図5(B)は、どちらもワークWKをロボットのハンドHDが垂直に把持して、水平に移動させる様子を示している。この際に、ハンドHDには力覚センサーPSが設けられており、ローカル座標系において、互いに直交するX軸、Y軸、Z軸の3軸についての力成分を有する検出値を、力覚センサーPSから取得することができる。本例では、X軸が第1軸、Y軸が第2軸、Z軸が第3軸に相当している。なお、ここでは、説明の簡略化のため、慣性力は無視できるものとする。
今、このような力覚センサーPSのZ軸方向が図5(A)のように、鉛直方向と一致しているとする。この場合には、力覚センサーPSにより、ワークWKにかかる重力を示すZ軸方向(第3軸方向)の力成分PDRのみが検出され、X軸及びY軸方向(第1軸及び第2軸方向)の力成分は検出されない。本例のように、ロボットが計画軌道OBを通って移動する場合には、ハンドHD及びワークWKの姿勢が保たれるため、移動後もZ軸方向の力成分PDRのみが検出される。
一方、図5(B)のように、計画軌道POBから外れてROBのような軌道を通って、ロボットが動作した場合には、移動後には力覚センサーPSのZ軸方向が鉛直方向と一致しなくなる。そのため、本例で移動後には、図に示すように、Z軸方向の力成分PDRZだけでなく、Y軸方向の力成分PDRYも検出されることになる。X軸方向やY軸方向の力成分の絶対値が大きければ大きい程、ハンドHDが傾いていることを示しており、ここでは、ハンドHDが大きく傾きながら動作した場合には計画軌道からずれて動作していると判断する。逆に、X軸方向やY軸方向の力成分の絶対値が小さければ小さい程、ハンドHDの傾きは少なく、軌道も計画軌道から外れていないと判断する。
そこで、本例では、X軸及びY軸方向の力成分に対して、所定の許容範囲を設けて、X軸及びY軸方向の力成分が、それぞれ許容範囲内に含まれるか否かを判断する。許容範囲内に含まれない場合には、ハンドHDの傾きが大きく、計画軌道から軌道が外れていると判断し、第2の制御部によるロボットの制御を停止する。一方、X軸及びY軸方向の力成分が、許容範囲内に含まれる場合には、ハンドHDの傾きが小さく、計画軌道通りにロボットが動作していると判断し、第2の制御部によるロボットの制御を継続する。また、前述した判定は、X軸方向又はY軸方向の力成分どちらか一方のみに対して行っても良い。
次に、第2の具体例について、図6(A)及び図6(B)を用いて説明する。図6(A)及び図6(B)は、どちらもワークWKをロボットのハンドHDが水平に把持して、そのまま水平に移動させる様子を示している。本例では、X軸が第1軸、Z軸が第2軸、Y軸が第3軸に相当している。その他の条件は、第1の具体例と同様である。
今、このような力覚センサーPSのY軸方向が図6(A)のように、鉛直方向と一致しているとする。この場合には、力覚センサーPSにより、ワークWKにかかる重力を示すY軸方向(第3軸方向)の力成分PDRのみが検出され、X軸及びZ軸方向(第1軸及び第2軸方向)の力成分は検出されない。本例のように、ロボットが計画軌道OBを通って移動する場合には、ハンドHD及びワークWKの姿勢が保たれるため、移動後もY軸方向の力成分PDRのみが検出される。例えば、ワークWKの質量が1.0kg、力覚センサー端面と、ワークWKの重心との距離が0.1mとすると、X軸方向の力成分F=0(N)、Y軸方向の力成分F=−9.8(N)、Z軸方向の力成分F=0(N)となる。
一方、図6(B)のように、計画軌道POBから外れてROBのような軌道を通って、ロボットが動作した場合には、移動後には力覚センサーPSのY軸方向が鉛直方向と一致しなくなる。そのため、本例で移動後には、図に示すように、Y軸方向の力成分PDRYだけでなく、Z軸方向の力成分PDRZも検出されることになる。X軸方向やZ軸方向の力成分の絶対値が大きければ大きい程、ハンドHDが傾いていることを示しており、ここでは、ハンドHDが大きく傾きながら動作した場合には計画軌道からずれて動作していると判断する。逆に、X軸方向やZ軸方向の力成分の絶対値が小さければ小さい程、ハンドHDの傾きは少なく、軌道も計画軌道から外れていないと判断する。例えば、前述した例において、ハンドHDの向きが仰角方向上向きに5度だけ変化した場合には、X軸方向の力成分F=0(N)、Y軸方向の力成分F=−9.76(N)、Z軸方向の力成分F=0.854(N)となる。
そこで、本例では、X軸及びZ軸方向の力成分に対して、所定の許容範囲を設けて、X軸及びZ軸方向の力成分が、それぞれ許容範囲内に含まれるか否かを判断する。許容範囲内に含まれない場合には、ハンドHDの傾きが大きく、計画軌道から軌道が外れていると判断し、第2の制御部によるロボットの制御を停止する。一方、X軸及びZ軸方向の力成分が、許容範囲内に含まれる場合には、ハンドHDの傾きが小さく、計画軌道通りにロボットが動作していると判断し、第2の制御部によるロボットの制御を継続する。また、前述した判定は、X軸方向又はZ軸方向の力成分どちらか一方のみに対して行っても良い。例えば、Z軸方向の力成分に対して、−0.5(N)〜+0.5(N)という許容範囲を設定する。前述した例では、F=0.854(N)であるため、計画軌道から外れていると判断される。
また、Y軸方向の力成分は、Y軸方向が鉛直方向と一致している場合に最大となり、ハンドが傾くにつれてY軸方向への力成分が小さくなる。そのため、Y軸方向の力成分に対しても許容範囲を設けて、計画軌道から軌道が外れているか否かの判断にこれを用いても良い。
これにより、例えば、力覚センサーの第3軸方向を鉛直方向に一致させたまま、ロボットを動作させる場合に、第2の制御部が、力覚センサーの検出値に含まれる力成分に基づいて、ロボットの制御を継続するか停止するか判断すること等が可能になる。
また、第2の制御部210は、ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸のそれぞれを中心とするモーメント成分を有する検出値を、力覚センサー440から取得してもよい。そして、ロボット400の軌道が計画軌道と一致している時に力覚センサー440の検出値の第3軸方向が鉛直方向と一致する場合に、第2の制御部210は、力覚センサー440の検出値の各モーメント成分のうち、少なくとも一つのモーメント成分が、許容範囲内に含まれるか否かを判定して、ロボット400の軌道が計画軌道から外れたか否かを判定してもよい。
すなわち、ロボット400の計画軌道が、力覚センサー440の検出値の第3軸方向が鉛直方向と一致する計画軌道である場合に、第2の制御部210は、力覚センサー440の検出値の各モーメント成分と許容範囲に基づいて、ロボット400の軌道が計画軌道から外れたか否かを判定する。
ここで、2つの具体例を説明する。前述した第1の具体例と同様にロボットを制御する場合については、図5(A)及び図5(B)を用いて説明し、前述した第2の具体例と同様にロボットを制御する場合については、図6(A)及び図6(B)を用いて説明する。また、どちらの場合にも、力覚センサーの検出値として、X軸、Y軸、Z軸の3軸のそれぞれを中心とするモーメント成分を有する検出値を得ることが可能であるとする。その他の条件は、前述した第1の具体例又は第2の具体例と同様である。
まず、図5(A)の場合には、移動前後において、X軸、Y軸、Z軸のそれぞれを中心とするモーメント成分は、どれも検出されない。一方、図6(A)の場合には移動前後において、X軸を中心とし、同一の値を有するモーメント成分のみが検出され、Y軸、Z軸のそれぞれを中心とするモーメント成分は検出されない。
次に、図5(B)の場合には、ロボットが移動する前の時点では、図5(A)と同様に、X軸、Y軸、Z軸のそれぞれを中心とするモーメント成分は、どれも検出されない。しかし、移動後に、ロボットのハンドHDが傾いた場合には、X軸、Y軸、Z軸のいずれかを中心とするモーメント成分が検出される。本例では、ハンドHDがX軸を中心に傾いているため、ワークWKにかかる重力により、X軸を中心に回転する力が発生し、モーメント成分MXが検出される。
一方、図6(B)の場合には、図6(A)と同様に、移動前後において、X軸を中心とするモーメント成分のみが検出され、Y軸、Z軸のそれぞれを中心とするモーメント成分は検出されない。しかし、移動前後において、検出されるX軸を中心とするモーメント成分の値が異なる。例えば、図6(A)及び図6(B)の例において、前述した第2の具体例と同様に、ワークWKの質量が1.0kg、力覚センサー端面と、ワークWKの重心との距離が0.1mとし、ハンドHDの向きが仰角方向上向きに5度だけ変化した場合を考える。この場合、X軸を中心とするモーメント成分は、移動前はM=0.98(N・m)であるのに対し、移動後はM=0.976(N・m)となる。
そこで、本例では、X軸、Y軸、Z軸のそれぞれを中心とするモーメント成分に対して、所定の許容範囲を設けて、X軸、Y軸、Z軸のそれぞれを中心とするモーメント成分が、それぞれ許容範囲内に含まれるか否かを判断する。その後の処理については、前述した第1の具体例又は第2の具体例と同様である。また、この判定は、X軸、Y軸、Z軸のいずれかを中心とするモーメント成分に対してのみ行っても良い。
これにより、例えば、力覚センサーの第3軸を鉛直方向に一致させたまま、ロボットを動作させる場合に、第2の制御部が、力覚センサーの検出値に含まれるモーメント成分に基づいて、ロボットの制御を継続するか停止するか判断すること等が可能になる。
また、例えば、図7のように、ロボットが計画軌道POB1から外れて動作しており、誤った軌道ROBを通って動作していると判断された時に、目標位置DSTへロボットの各部を移動させる場合には、第2の制御部によるロボットの制御を停止するだけではなく、計画軌道を通るように現在のロボットの軌道を修正するような処理が必要となる。前述した通り、軌道ROBを通って移動した後のハンドAMHDは、この後、制御指令通りに移動されたとしても、POB3のような軌道を辿り、誤った位置ERPに移動されてしまう可能性が高いためである。従って、計画軌道上の位置PPに移動させた後、再度計画軌道に従って、ロボットの各部を動作させるために、例えばAMHDの位置をCOBのように変更する必要がある。
そこで、第2の制御部210は、許容範囲内に力覚センサー440の検出値が含まれないと判定した場合には、力覚センサー440の検出値に基づいて、ロボット400の軌道の補正処理を行ってもよい。
これにより、第1の制御部から制御指令が出力される前に、第2の制御部が力覚センサーの検出値に基づいて、ロボットの軌道の補正処理を行うこと等が可能となり、ロボットの軌道が補正されるまでの応答待ち時間を短縮すること等が可能になる。さらに、計画軌道とロボットの軌道とのずれを抑制することが可能となり、最短ルートを通って効率良くロボットを動作させること等が可能となる。
前述したロボットの軌道の補正処理には様々な手法が考えられる。
第2の制御部210は、ロボット400の軌道の補正処理として、力覚センサー440の検出値と検出目標値との差異に基づいて、ロボット400を制御してもよい。
例えば、図8(A)及び図8(B)を用いて具体例を説明する。図8(A)は図6(B)のロボットの移動前、図8(B)は図6(B)のロボットの移動後において、力覚センサーPSにより検出されるX軸、Y軸、Z軸方向への力を図示したものである。
また、本例では、前述した例と同様に、ワークWKの質量が1.0kg、力覚センサーPS端面と、ワークWKの重心との距離が0.1mであるものとする。そして、図8(A)に示す移動前の状態では、X軸方向の力成分Fx=0(N)、Y軸方向の力成分Fy=−9.8(N)、Z軸方向の力成分Fz=0(N)が検出されているとする。さらに、図8(B)に示す移動後の状態では、ハンドHDの向きが仰角方向上向きに5度だけ変化しており、X軸方向の力成分Fx=0(N)、Y軸方向の力成分Fy=−9.76(N)、Z軸方向の力成分Fz=0.854(N)が検出されているとする。
本来ならば、移動後の状態でも、力覚センサーPSの検出値は、図8(A)のように、Z軸方向の力成分Fz=0(N)であることが望ましい。
そこで、本例では、Z軸方向の力成分Fz=0(N)を力覚センサーの検出目標値として用いて、Z軸方向の力成分PDRZが検出目標値に近づくように(図8(B)のCOB)、ロボットの各所を制御する。
これにより、力覚センサーの検出値と検出目標値との差異に基づいて、ロボットの軌道の補正処理を行うことで、例えばロボットの軌道を算出する処理等を行うことを回避し、処理量を低減し、アルゴリズムの簡易化を図ること等が可能となる。
また、第1の制御部110は、ロボット400の軌道が計画軌道と一致している場合の力覚センサー440の検出値を、検出目標値として設定してもよい。そして、第2の制御部210は、ロボット400の軌道の補正処理として、力覚センサー440から得られる検出値と、第1の制御部110から得られる力覚センサー440の検出目標値との差異に基づいて、ロボット400を制御してもよい。
これにより、第1の制御部が計画軌道に基づいて、力覚センサーの検出目標値を設定すること等が可能になり、例えば、ユーザーが計画軌道を設定する場合にも、第1の制御部が力覚センサーの検出目標値を求めて、ロボットの軌道の補正処理を行うこと等が可能になる。
また、第2の制御部が力覚センサー440から検出値を取得する周期である第3の周期は、第1の周期や第2の周期と同一であるとは限らない。例えば、第3の周期が第1の周期よりも短いにも関わらず、第1の周期で、力覚センサー440の検出目標値と検出値との差を求める場合には、2値の差に、力覚センサー440の最新の検出値が反映されていない期間がある。
そこで、第1の制御部110は、力覚センサーの検出目標値を、第1の周期毎に、第2の制御部210に出力してもよい。そして、第2の制御部210は、第1の周期よりも短い第3の周期で、検出値を力覚センサー440から取得する場合には、取得した力覚センサーの検出値と、検出目標値との差異を、第2の周期で求めてもよい。
具体例を図9に示す。図9の例は、図2(B)の例と同様の状態である。本例では、第3の周期(5ms)が第1の周期(10ms)よりも短いため、第1の周期毎に、力覚センサーの検出目標値との差異を更新すると、例えば、制御開始から2ms時点(Q1)で更新し、その後、制御開始から10ms時点(Q3)で更新することになる。しかし、制御開始から7ms時点(Q2)で力覚センサーの新たな検出値を取得しているにも関わらず、8ms時点と9ms時点では未更新の値を用いて、ロボットの軌道の補正処理を行っている。本来ならば、制御開始から7ms時点(Q2)で、力覚センサーの検出目標値と新たな検出値との差異を更新すべきである。したがって、本例では、図に示すUPTの部分を、力覚センサーの検出目標値と検出値との差の更新タイミングとする。
これにより、第3の周期が第1の周期と異なる場合においても、力覚センサーの最新の検出値を用いて、ロボットの軌道の補正処理を行うこと等が可能になる。
また、第2の制御部は、ロボットのアームの各関節速度に基づいて、ロボットの制御を行っても良い。この際に、アームの間接速度を求める手法の一つとして、逆ヤコビ行列を利用する手法がある。
ここで、逆ヤコビ行列とは、所与のハンドの速度と逆ヤコビ行列自身の積が、所与のハンドの速度を実現するアームの関節速度として求められる行列のことをいう。
そのため、例えば、第1の制御部110は、計画軌道に基づいて、ロボット400のハンド430の目標速度を制御指令として出力するとともに、現在のロボットの姿勢に基づく逆ヤコビ行列を第2の制御部210に出力してもよい。この場合には、第2の制御部210は、取得されたハンド430の目標速度と逆ヤコビ行列の積を、ハンド430を目標速度で移動させることができるアーム420の関節速度として求めて、求めたアーム420の関節速度に基づいて、ロボット400を制御する。
しかし、ロボットに加わる外力等の要因により、逆ヤコビ行列を求めた時点のロボットの姿勢から、現在のロボットの姿勢が変わってしまった場合には、姿勢が変わる前の逆ヤコビ行列を用いても、正しいアームの関節速度を算出できない場合が多い。本来ならば、この場合には、現在のロボットの姿勢に対応する逆ヤコビ行列を用いる必要がある。
そこで、第1の制御部110は、第1の周期毎に、力覚センサー440の検出目標値と逆ヤコビ行列とを出力してもよい。そして、第2の制御部210は、第1の周期よりも短い第3の周期で、力覚センサー440から検出値を取得する場合に、取得した力覚センサー440の検出値と検出目標値との差異を、第2の周期で求め、その差異に基づいて、第2の周期で、逆ヤコビ行列の補正処理を行ってもよい。
これにより、逆ヤコビ行列を補正して、現在のロボットの姿勢に基づく逆ヤコビ行列を求めること等が可能になり、補正を行わない場合よりも、ロボットのハンドをより目標速度に近い速度で動作させることが可能となる。
しかし、一般的に、一度算出した逆ヤコビ行列を補正する場合には、処理量が膨大になり、逆ヤコビ行列を再計算した方が、処理量が小さくなる場合が多い。
そこで、第1の制御部110は、第1の周期毎に、逆ヤコビ行列を出力してもよい。そして、第2の制御部210は、許容範囲内に力覚センサー440の検出値が含まれないと判断した場合には、逆ヤコビ行列の更新処理要求を行ってもよい。
これにより、第2の制御部で逆ヤコビ行列を補正する処理を回避して、処理量を抑制すること等が可能になる。
なお本実施形態のロボット制御システム等は、プログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のロボット制御システム等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そしてCPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データー)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
4.処理の流れ
以下では、図10〜図13のフローチャートを用いて、本実施形態の処理の流れについて説明する。
4.1 計画軌道から外れた場合にロボットの制御を停止する処理の流れ
まず、図10を用いて第1の制御部が行う処理の流れについて説明する。まず、ロボットのアーム及びハンドの計画軌道を設定する(S101)。この際には、ユーザーからの入力に基づいて、計画軌道を生成してもよいし、あらかじめ記憶部に記憶されている計画軌道を読み込んでもよい。
次に、計画軌道の最終目標位置が、ロボットのアーム及びハンドの可動範囲内であるか否かを判断する(S102)。計画軌道の最終目標位置が、ロボットのアーム及びハンドの可動範囲内にないと判断した場合には、エラー処理を行い(S111)、第2の制御部に終了指令を送信して(S109)、処理を終了する。また、エラー処理としては、例えばエラーログを記録したり、ロボットの各部を初期位置に戻したりする等の処理がある。
一方、計画軌道の最終目標位置が、ロボットのアーム及びハンドの可動範囲内であると判断した場合には、ロボットの各部を動かした時に得られる力覚センサーの検出値の許容範囲を求める(S103)。後述するが、この許容範囲を超えるような力覚センサーの検出値が検出された場合には、第2の制御部がロボットの制御を停止することとなる。
次に、第2の制御部に、力覚センサーの検出値の許容範囲と、制御指令として目標速度を送信する(S104)。その後、所定時間が経過するまで待機し(S105、S110)、所定時間が経過した時点で、第2の制御部からロボットの状態情報を受信する(S106)。受信したロボットの状態情報に基づいて、第2の制御部がエラー状態ではないか否かを判断し(S107)、エラー状態であると判断した場合には、上記と同様にエラー処理を行い(S111)、第2の制御部に終了指令を送信して(S109)、処理を終了する。
一方、エラー状態ではないと判断した場合には、続けて、受信したロボットの状態情報に基づいてロボットの各部の現在位置を求め、ロボットの各部が最終目標位置に到達したか否かを判断する(S108)。最終目標位置に到達したと判断する場合には、第2の制御部に終了指令を送信して(S109)、処理を終了する。
一方、最終目標位置に到達していないと判断した場合には、ステップS103から同様の処理を繰り返す。
次に、図11を用いて第2の制御部が行う処理の流れについて説明する。
まず、第1の制御部から指令が出力されるのを待ち(S201)、指令が受信された場合に、受信した指令が終了指令か否かを判断する(S202)。終了指令を受信した場合には、処理を終了する。
一方、受信した指令が終了指令ではなく、制御指令であると判断した場合には、ステップS204からS210までの処理の反復用のカウンターiを0に初期化する(S203)。そして、制御指令に基づいて、第2の周期単位で、ロボットのアームとハンドの目標位置を求め(S204)、アームとハンドを制御する(S205)。
そして、力覚センサーから検出値を取得して(S206)、力覚センサーの検出値が第1の制御部から通知された許容範囲外であるか否かを判断する(S207)。力覚センサーの検出値が許容範囲内であると判断した場合には、カウンターiを更新し(S208)、所定時間待機した後(S209)、ロボットの状態情報を第1の制御部に送信する(S210)。そして、カウンターiが所定のループ数に達したか否かを判断する(S211)。
ここで、所定のループ数は、今回の第1の周期中に、第2の周期の満了タイミングが含まれる回数である。所定のループ数は、あらかじめ定められている値でも、第2の制御部が第1の周期と第2の周期とに基づいて求めるものであってもよい。例えば、第1の周期が10ms、第2の周期が2msである場合には、所定のループ数は5となる。
ステップS211において、カウンターiが所定のループ数に達していると判断する場合には、ステップS201に戻り、待機状態となる。一方、カウンターiが所定のループ数に達していないと判断する場合には、ステップS204から処理を繰り返す。
また、ステップS207において、力覚センサーの検出値が許容範囲外であると判断した場合には、第2の制御部は現在行っているロボットの制御を非常停止し(S212)、エラー処理(S213)を行って、エラー状態情報を第1の制御部に送信して(S214)、処理を終了する。なお、第2の制御部は、エラー処理として、エラーログを残す処理や、ロボットの状態情報の生成処理等を行う。
4.2 計画軌道から外れた場合にロボットの軌道を修正する処理の流れ
まず、図12を用いて第1の制御部が行う処理の流れについて説明する。計画軌道から外れた場合にロボットの軌道を修正する処理を行う場合には、ステップS303とS304の処理のみが、図10の場合と異なる。その他のステップS301、S302、S305〜S311の処理は、それぞれステップS101、S102、S105〜S111の処理と同様である。
ステップS303では、力覚センサーの検出値の許容範囲ではなく、力覚センサーの検出目標値と、補正パラメーターを求める(S303)。具体的には、ロボットの各部が計画軌道を通って動作した場合に、力覚センサーの検出値を予測し、求めた予測値を力覚センサーの検出目標値とする。なお、この予測を行う場合には、ハンドにかかる重力項、および慣性項、またハンドがワークを把持している場合は、ワークに加わる重力、および慣性項が考慮される。さらにここでは、ロボットの制御を行った時に、求めた検出目標値とは異なる検出値が得られた場合に、ロボットの各部の軌道(位置、姿勢等)をどの方向に補正すれば、計画軌道に近づくかを示す補正パラメーターも求める。
そして、第2の制御部に、目標速度、力覚センサーの検出目標値、補正パラメーターを送信する(S304)。
次に、図13を用いて、第2の制御部が行う処理の流れについて説明する。計画軌道から外れた場合にロボットの軌道を修正する処理を行う場合には、ステップS407の処理と、ステップS212〜S214に対応する処理を行わない点が、図11の場合と異なる。
ステップS407では、力覚センサーの検出目標値と検出値との差(ずれ)を求め、力覚センサーの検出目標値と検出値との差、及び第1の制御部から取得された補正パラメーターに基づき、ロボットの軌道補正処理を行う。この場合には、力覚センサーの検出目標値と検出値との差が検出された場合でも、図11のように、第2の制御部の非常停止処理等は行わない。
その他のステップS401〜S406、S408〜S411の処理は、それぞれステップS201〜S206、S208〜S211の処理と同様である。
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、ロボット制御システム、ロボットシステム及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
100 第1の情報処理装置、110 第1の制御部、120 記憶部、
130 I/F部、200 第2の情報処理装置、210 第2の制御部、
220 記憶部、230 I/F部、300 ロボット制御システム、
400 ロボット、410 制御部、420 アーム、430 ハンド、
440 力覚センサー、450 I/F部、500 ロボットシステム、
600 ワーク

Claims (13)

  1. 計画軌道に基づいて、第1の周期で、ロボットの制御指令を出力する第1の制御部と、
    前記第1の制御部から得られる前記制御指令と、力覚センサーから得られる検出値とに基づいて、前記第1の周期よりも短い第2の周期で、前記ロボットを制御する第2の制御部と、
    を含み、
    前記第2の制御部は、
    前記力覚センサーの検出値の許容範囲内に、取得された前記力覚センサーの検出値が含まれるか否かを判定し、
    前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記ロボットの軌道が前記計画軌道から外れたと判定することを特徴とするロボット制御システム。
  2. 請求項1において、
    前記第1の制御部は、
    前記計画軌道に対応する前記許容範囲を設定し、
    前記第2の制御部は、
    前記第1の制御部から得られる前記許容範囲に基づいて、前記許容範囲内に前記力覚センサーの検出値が含まれるか否かを判定することを特徴とするロボット制御システム。
  3. 請求項1又は2において、
    前記第2の制御部は、
    前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記許容範囲内に前記力覚センサーの検出値が含まれないことを、前記第1の制御部に通知して、前記ロボットの制御の停止処理を行い、
    前記許容範囲内に前記力覚センサーの検出値が含まれると判定した場合には、前記第2の周期で、前記ロボットの制御を行うことを特徴とするロボット制御システム。
  4. 請求項1乃至3のいずれかにおいて、
    前記第2の制御部は、
    ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸についての力成分を有する検出値を、前記力覚センサーから取得し、
    前記ロボットの軌道が前記計画軌道と一致している時に前記力覚センサーの検出値の第3軸方向が鉛直方向と一致する場合に、前記力覚センサーの検出値の各力成分のうち、少なくとも一つの力成分が、前記許容範囲内に含まれるか否かを判定して、前記ロボットの軌道が前記計画軌道から外れたか否かを判定することを特徴とするロボット制御システム。
  5. 請求項1乃至4のいずれかにおいて、
    前記第2の制御部は、
    ローカル座標系において、互いに直交する第1軸、第2軸、第3軸の3軸のそれぞれを中心とするモーメント成分を有する検出値を、前記力覚センサーから取得し、
    前記ロボットの軌道が前記計画軌道と一致している時に前記力覚センサーの検出値の第3軸方向が鉛直方向と一致する場合に、前記力覚センサーの検出値の各モーメント成分のうち、少なくとも一つのモーメント成分が、前記許容範囲内に含まれるか否かを判定して、前記ロボットの軌道が前記計画軌道から外れたか否かを判定することを特徴とするロボット制御システム。
  6. 請求項1乃至5のいずれかにおいて、
    前記第2の制御部は、
    前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記力覚センサーの検出値に基づいて、前記ロボットの前記軌道の補正処理を行うことを特徴とするロボット制御システム。
  7. 計画軌道に基づいて、第1の周期で、ロボットの制御指令を出力する第1の制御部と、
    前記第1の制御部から得られる前記制御指令と、前記力覚センサーから得られる検出値とに基づいて、前記第1の周期よりも短い第2の周期で、前記ロボットを制御する第2の制御部と、
    を含み、
    前記第2の制御部は、
    前記ロボットの軌道の補正処理として、前記力覚センサーの検出値と検出目標値との差異に基づいて、前記ロボットを制御することを特徴とするロボット制御システム。
  8. 請求項6又は7において、
    前記第1の制御部は、
    前記ロボットの軌道が前記計画軌道と一致している場合の前記力覚センサーの検出値を、検出目標値として設定して、
    前記第2の制御部は、
    前記ロボットの前記軌道の前記補正処理として、前記力覚センサーから得られる前記力覚センサーの検出値と、前記第1の制御部から得られる前記力覚センサーの前記検出目標値との差異に基づいて、前記ロボットを制御することを特徴とするロボット制御システム。
  9. 請求項8において、
    前記第1の制御部は、
    前記力覚センサーの前記検出目標値を、前記第1の周期毎に、前記第2の制御部に出力し、
    前記第2の制御部は、
    前記第1の周期よりも短い第3の周期で、検出値を前記力覚センサーから取得する場合には、取得した前記力覚センサーの検出値と、前記検出目標値との前記差異を、前記第2の周期で求めることを特徴とするロボット制御システム。
  10. 請求項9において、
    前記第1の制御部は、
    前記第1の周期毎に、前記力覚センサーの前記検出目標値と逆ヤコビ行列とを出力し、
    前記第2の制御部は、
    前記第1の周期よりも短い第3の周期で、前記力覚センサーから検出値を取得する場合に、取得した前記力覚センサーの検出値と前記検出目標値との前記差異を、前記第2の周期で求め、前記差異に基づいて、前記第2の周期で、前記逆ヤコビ行列の補正処理を行うことを特徴とするロボット制御システム。
  11. 請求項1乃至9のいずれかにおいて、
    前記第1の制御部は、
    前記第1の周期毎に、逆ヤコビ行列を出力し、
    前記第2の制御部は、
    前記許容範囲内に前記力覚センサーの検出値が含まれないと判断した場合には、前記逆ヤコビ行列の更新処理要求を行うことを特徴とするロボット制御システム。
  12. 請求項1乃至11のいずれかに記載のロボット制御システムを含むことを特徴とするロボットシステム。
  13. 計画軌道に基づいて、第1の周期で、ロボットの制御指令を出力する第1の制御部と、
    前記第1の制御部から得られる前記制御指令と、力覚センサーから得られる検出値とに基づいて、前記第1の周期よりも短い第2の周期で、前記ロボットを制御する第2の制御部として、
    コンピューターを機能させ、
    前記第2の制御部は、
    力覚センサーの検出値の許容範囲内に、取得された前記力覚センサーの検出値が含まれるか否かを判定し、
    前記許容範囲内に前記力覚センサーの検出値が含まれないと判定した場合には、前記ロボットの軌道が前記計画軌道から外れたと判定することを特徴とするプログラム。
JP2011190405A 2011-09-01 2011-09-01 ロボット制御システム、ロボットシステム及びプログラム Withdrawn JP2013052451A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011190405A JP2013052451A (ja) 2011-09-01 2011-09-01 ロボット制御システム、ロボットシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011190405A JP2013052451A (ja) 2011-09-01 2011-09-01 ロボット制御システム、ロボットシステム及びプログラム

Publications (1)

Publication Number Publication Date
JP2013052451A true JP2013052451A (ja) 2013-03-21

Family

ID=48129913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011190405A Withdrawn JP2013052451A (ja) 2011-09-01 2011-09-01 ロボット制御システム、ロボットシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP2013052451A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016064448A (ja) * 2014-09-22 2016-04-28 ファナック株式会社 非常停止時のロボットに関する不具合を防止するロボット制御装置
JP2017087325A (ja) * 2015-11-06 2017-05-25 キヤノン株式会社 ロボット制御装置、ロボット制御方法、ロボット制御システムおよびコンピュータプログラム
JP2019217563A (ja) * 2018-06-15 2019-12-26 ファナック株式会社 ロボットシステムおよびロボット
CN110962135A (zh) * 2018-09-28 2020-04-07 精工爱普生株式会社 控制装置、机器人系统以及机器人
WO2024080155A1 (ja) * 2022-10-14 2024-04-18 パナソニックIpマネジメント株式会社 ロボットシステム、ロボットの制御装置、およびロボットの制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016064448A (ja) * 2014-09-22 2016-04-28 ファナック株式会社 非常停止時のロボットに関する不具合を防止するロボット制御装置
DE102015012056B4 (de) * 2014-09-22 2017-03-23 Fanuc Corporation Robotersteuerung zum Vermeiden eines Problems hinsichtlich des Roboters zum Zeitpunkt eines Not-Stopps
US9782898B2 (en) 2014-09-22 2017-10-10 Fanuc Corporation Robot controller for avoiding problem regarding robot at the time of emergency stop
JP2017087325A (ja) * 2015-11-06 2017-05-25 キヤノン株式会社 ロボット制御装置、ロボット制御方法、ロボット制御システムおよびコンピュータプログラム
JP2019217563A (ja) * 2018-06-15 2019-12-26 ファナック株式会社 ロボットシステムおよびロボット
DE102019115379B4 (de) 2018-06-15 2023-05-25 Fanuc Corporation Robotersystem und Roboter
CN110962135A (zh) * 2018-09-28 2020-04-07 精工爱普生株式会社 控制装置、机器人系统以及机器人
WO2024080155A1 (ja) * 2022-10-14 2024-04-18 パナソニックIpマネジメント株式会社 ロボットシステム、ロボットの制御装置、およびロボットの制御方法

Similar Documents

Publication Publication Date Title
US11000949B2 (en) Robot for controlling learning in view of operation in production line, and method of controlling the same
JP5872894B2 (ja) ロボット動作教示支援装置及び方法
JP2013052451A (ja) ロボット制御システム、ロボットシステム及びプログラム
EP2660014B1 (en) Control device and teaching method for seven-shaft multi-joint robot
JPH05204428A (ja) 複数ロボット制御方式
KR20120082881A (ko) 충돌 회피 스킴을 실행하는 로보틱 장치 및 연관된 방법
JP2008188722A (ja) ロボット制御装置
JP5156836B2 (ja) リアルタイム自己衝突および障害物回避
CN110919627B (zh) 机器人的控制方法及控制装置
US11173614B2 (en) Control apparatus and robot system
JP2014176921A (ja) ロボットシステム及び被加工物の製造方法
US11003177B2 (en) Apparatus and method for generating robot program
WO2015137162A1 (ja) 制御装置、ロボットシステム、および制御用データ生成方法
WO2020161910A1 (ja) 制御装置、制御方法、記録媒体
US20220281111A1 (en) Interference check for robot operation
JP2018167395A (ja) ロボット装置、制御装置、及びロボットの制御方法
WO2021250923A1 (ja) ロボットシステム、制御装置、及び制御方法
JP2008242859A (ja) 物体の運動制御装置及び運動制御方法、並びにコンピュータ・プログラム
US11738458B2 (en) Control method for robot system
JP2021146435A (ja) ロボットシステム、ロボットシステムで実行される方法および教示データを生成する方法
US11141862B2 (en) Control apparatus, robot system and control method
WO2022176456A1 (ja) バネ定数補正装置および該方法ならびに記録媒体
JP7314215B2 (ja) シミュレータ、ロボット教示装置、ロボットシステム、物品の製造方法、シミュレーション方法、プログラム及び記録媒体
CN116330303B (zh) Scara机器人运动控制方法、装置、终端设备及介质
WO2024050729A1 (en) Robot teleoperation system and method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141104