JP2013158837A - ロボット制御装置、およびロボット制御方法 - Google Patents

ロボット制御装置、およびロボット制御方法 Download PDF

Info

Publication number
JP2013158837A
JP2013158837A JP2012019597A JP2012019597A JP2013158837A JP 2013158837 A JP2013158837 A JP 2013158837A JP 2012019597 A JP2012019597 A JP 2012019597A JP 2012019597 A JP2012019597 A JP 2012019597A JP 2013158837 A JP2013158837 A JP 2013158837A
Authority
JP
Japan
Prior art keywords
displacement
force
robot
virtual force
virtual
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.)
Pending
Application number
JP2012019597A
Other languages
English (en)
Inventor
Takahiko Noda
貴彦 野田
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 JP2012019597A priority Critical patent/JP2013158837A/ja
Publication of JP2013158837A publication Critical patent/JP2013158837A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】より簡単にロボットのエンドエフェクターの位置制御及び力制御を行う。
【解決手段】アームを備えるロボットの動作を制御するロボット制御装置は、前記アームの作業点に加える仮想の力を取得する第一の取得手段と、前記取得された仮想の力を第一のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第一の変位設定手段と、前記第一の変位設定手段により設定された変位に基づいて前記作業点の目標位置を設定する目標位置設定手段と、を有する。
【選択図】図1

Description

本発明は、ロボット制御装置、およびロボット制御方法に関する。
ロボットの運動制御としては、例えば、ロボットアームの手先の位置を制御する位置制御、手先が対象物に加える力を制御する力制御がある。また、位置制御と力制御の両方を統合したハイブリッド制御もある。
ロボットの力制御としては、例えば、インピーダンス制御が知られている。インピーダンス制御では、例えば、ロボットアームの手先に加わる力やモーメントなどの外力を測定する力覚センサーを用いて、力覚センサーの入力に応じてロボットアームの手先の作業対象物に加わる力を制御する。インピーダンス制御に関する文献としては、特許文献1がある。
特開2009−61550号公報
ところで、従来の手先の位置の制御では、例えば、開始位置から目標位置までの軌道を生成し、当該軌道に沿って手先が動くように制御する。また、従来のインピーダンス制御は、力覚センサーに対して加わった力を利用して、手先が対象物に接触した場合の手先の位置を柔軟に対応させるために使用される。従って、インピーダンス制御が働くのは、手先が対象物に接触してからとなる。
ここで、例えば、手先が対象物に接触してから手先を一定の力で対象物に押し付け続ける制御を行う場合、手先の目標位置(「制御点」ともいう。)を手先が対象物を押し付ける方向のどの位置に設定するか、センサー出力に応じたインピーダンス制御による位置修正量はどれくらいの大きさになるか、インピーダンスモデルの係数(慣性、粘性、剛性などの係数)をどのように設定するか、などの要素を考慮して制御する必要があり、処理が複雑である。
また、従来の位置制御により手先の位置の移動を制御する場合には、例えば、開始位置から目標位置までの軌道上に複数含まれる通過位置間の軌道ごとに、加速区間や減速区間などの速度の設定が行われる。そのため、多くの設定が必要であり、処理が複雑である。
そこで、本発明は、より簡単にロボットのエンドエフェクターの位置制御及び力制御を行うことを目的とする。
本願は、上記課題を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
上記の課題を解決する本発明の一態様は、アームを備えるロボットの動作を制御するロボット制御装置であって、前記アームの作業点に加える仮想の力を取得する第一の取得手段と、前記取得された仮想の力を第一のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第一の変位設定手段と、前記第一の変位設定手段により設定された変位に基づいて前記作業点の目標位置を設定する目標位置設定手段と、を有する、ことを特徴とする。
上記の構成によれば、仮想の力をインピーダンスモデルに与えることでエンドエフェクターの移動を制御できるので、より簡単にロボットのエンドエフェクターの位置制御及び力制御を行うことができる。例えば、インピーダンスモデルに仮想力を与えれば、求まる変位に応じて加速や減速などの速度も制御されるので、より少ない設定で簡単に制御が可能である。
ここで、前記ロボット制御装置は、前記作業点に加わった外力を検出するセンサーのセンサー値を取得する第二の取得手段と、前記取得されたセンサー値に対応する外力を第二のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第二の変位設定手段と、を有し、前記目標位置設定手段は、前記第一の変位設定手段により設定された変位と、前記第二の変位設定手段により設定された変位と、に基づいて前記作業点の目標位置を設定する、ことを特徴としてもよい。
上記の構成によれば、もう一つのインピーダンスモデルにより外力に応じてエンドエフェクターの移動を制御できるので、仮想の力に応じた移動によりエンドエフェクターが対象物などに接触したときの柔軟な移動を簡単に制御できる。
また、前記第一の取得手段は、前記仮想の力の入力を受け付ける、又は、前記作業点が移動すべき目標変位の入力を受け付けて、当該目標の変位に応じた前記仮想の力を求める、ことにより前記仮想の力を取得する、ことを特徴としてもよい。
上記の構成によれば、ユーザーは仮想の力又は目標の変位を入力すればよいので、より直感的にロボットの動作(例えば、作業空間でのエンドエフェクターの移動など)を操ることができる。
また、前記第一の取得手段は、前記作業点に加えるべき目標の力の入力を受け付けて、当該目標の力と、前記第二の取得手段により取得されたセンサー値に対応する外力とに基づいて、前記仮想の力を求める、ことにより前記仮想の力を取得する、ことを特徴としてもよい。
上記の構成によれば、ユーザーは目標の力を入力すればよいので、より直感的にロボットの動作(例えば、対象物に対するエンドエフェクターの押し付け動作など)を操ることができる。
また、前記第一のインピーダンスモデルと前記第二のインピーダンスモデルとは、前記仮想の力と前記外力との方向が相互に逆となるように対称に配置されている、ことを特徴としてもよい。
上記の構成によれば、エンドエフェクターに加わるベクトル方向の力と、その反対のベクトル方向の力とに対する制御を行うことができる。また、性質(例えば、バネの硬さなど)の異なるモデルを設定することもできるので、エンドエフェクターに加わる力に対する反応(動作)と、その反対の力に対する反応(動作)とを、それぞれ設計することができる。
また、前記第一のインピーダンスモデルは、軸方向の変位、又は軸回りの変位に対応するモデルであり、前記仮想の力は、軸方向の仮想の力、又は軸回りの仮想の力であり、前記第二のインピーダンスモデルは、軸方向の変位、又は軸回りの変位に対応するモデルであり、前記外力は、軸方向の外力、又は軸回りの外力である、ことを特徴としてもよい。
上記の構成によれば、エンドエフェクターの位置の軸方向の直進運動だけでなく軸回りの回転運動についても、インピーダンスモデルによって制御することができるため、より簡単な制御が可能である。
また、前記ロボット制御装置は、前記第一のインピーダンスモデル及び前記第二のインピーダンスモデルそれぞれの特性の変更を受け付ける受付手段、を有する、ことを特徴としてもよい。
上記の構成によれば、簡単にロボットの動作(例えば、対象物に接触した場合の動作や、移動速度など)を調整することができる。
また、前記ロボット制御装置は、指定された始点から終点までの軌道を生成する軌道生成手段を有し、前記目標位置設定手段は、前記第一の変位設定手段により算出された変位に基づいて前記軌道を修正する、ことを特徴としてもよい。
上記の構成によれば、軌道生成による位置制御とともに仮想の力による動作を制御できる。
上記の課題を解決する本発明の他の態様は、アームを備えるロボットの動作を制御するロボット制御方法であって、前記アームの作業点に加える仮想の力を取得する第一の取得ステップと、前記取得された仮想の力を第一のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第一の変位設定ステップと、前記第一の変位設定ステップにより設定された変位に基づいて前記作業点の目標位置を設定する目標位置設定ステップと、を含む、ことを特徴とする。
上記の構成によれば、仮想の力をインピーダンスモデルに与えることでエンドエフェクターの動作を制御できるので、より簡単にロボットの位置制御及び力制御を行うことができる。
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
本発明の一実施形態に係るロボット制御装置の概略構成の一例を示す図である。 ロボットの概略構成の一例を示す図である。 仮想力制御のインピーダンスモデルと力制御のインピーダンスモデルの関係を説明する図である。 インピーダンスモデルの一例を示す図である。 ロボットアームの手先を移動させる制御の流れ一例を示すフロー図である。 ロボットアームの手先を対象物に目標の力で押し付ける制御の流れ一例を示すフロー図である。
以下、本発明の一実施形態の一例について、図面を参照して説明する。
図1は、本発明の一実施形態に係るロボット制御装置の概略構成の一例を示す図である。
ロボット2は、ロボット制御装置1により制御される。ロボット2は、例えば、図2に示すように、ワークの把持などを行うアーム型のロボットである。ロボット2のアームは、例えば、複数のジョイント(関節)200と、複数のリンク210と、ハンド(220と、力覚センサー230とを備える。
各ジョイント200は、リンク210同士や、胴体部とリンク210、ハンド220とリンク210を、回動自在に(ただし、所定の可動範囲内で回動可能に)連結している。本図の例では、ロボット2は、6つのジョイントを備えた6軸アームとなっている。
また、各ジョイント200やハンド220には、それらを動作させるための、例えば、アクチュエーター(不図示)が備えられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、ロボット制御装置1によるロボット2のフィードバック制御に使用される。
また、ロボット2は、ハンド2に力覚センサー230を備えている。力覚センサー230は、例えば、手先が障害物などに接触した場合に、当該障害物からの外力(作用力)を計測し、ロボット制御装置1に出力する。力覚センサー230が出力するセンサー値は、ロボット制御装置1によるロボット2のインピーダンス制御(従来のインピーダンス制御)に使用される。
もちろん、上記のロボット2の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。一般的な把持ロボットが備える構成を排除するものではない。例えば、図2では6軸のアームが示されているが、軸数(ジョイント数)をさらに増加させてもよいし減らしてもよい。リンクの数を増減させてもよい。また、アーム、ハンド、リンク、ジョイント等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。力覚センサーの位置なども適宜変更してもよい。
ロボット制御装置1は、ロボット2の動作を制御する装置である。ロボット制御装置1は、制御部100と、入力部110と、サーボ制御部120とを備える。
制御部100は、ロボット2の動作制御のための各種演算を行う。制御部100は、位置制御部101と、力制御部102と、仮想力制御部103と、位置修正部104と、インバース・キネマティクス(逆運動学)部105と、フォワード・キネマティクス(順運動学)部106とを有する。
なお、本実施形態では、ハンド220の着目したある点を、アームの「作業点(いわゆる、エンドエフェクター)」と呼ぶ。以下では、ハンド220の先端(手先)が「作業点(エンドエフェクター)」であるものとして説明する。
位置制御部101は、従来の位置制御を行う。例えば、位置制御部101は、フォワード・キネマティクス部106からロボット2の現在の手先の位置を取得する。また、位置制御部101は、入力部110からロボット2の目標の位置を取得する。そして、位置制御部101は、現在の位置(始点)から目標の位置(終点)までの軌道を生成する。
力制御部102は、力覚センサー230から出力されるセンサー値に基づく従来のインピーダンス制御を行う。例えば、力制御部102は、ロボット2の力覚センサー230のセンサー値に基づいて、手先に対する外力が計測されている場合に、設定されている所定のインピーダンスモデルを用いて手先の位置の変位(修正量)を算出する。
力制御部102のインピーダンスモデルは、例えば、図3(手先の左側)に示すように、手先に加わる外力に応じて手先の運動を制御するものである。例えば、手先が障害物などに接触したときに、障害物に対する力(手先に加わる力)を逃がす運動を制御する。なお、力制御のインピーダンスモデルには、例えば、図4に示すような、慣性項、粘性項、及び剛性項を含む一般的な運動方程式を用いることができる。
仮想力制御部103は、力制御のインピーダンスモデルと対称に配置されたインピーダンスモデルにより、仮想力に基づくインピーダンス制御を行う。
なお、本実施形態では、「対称」とは、ある軸方向の力の場合、力の直進方向が相互に逆であることを意味し、ある軸回りの力のモーメント(トルク)の場合、力の回転方向が相互に逆であることを意味する。
例えば、仮想力制御部103は、入力部110を介してユーザーから、手先の目標の移動量(以下、「目標変位」ともいう。)を受け付ける(取得する)。そして、入力された目標変位を所定の変換式を用いて仮想力に変換し、設定されている所定のインピーダンスモデルを用いて手先の位置の変位(修正量)を算出する。
また、例えば、仮想力制御部103は、入力部110を介してユーザーから、手先に加える目標の力を受け付ける(取得する)。そして、入力された目標の力を所定の変換式を用いて仮想力に変換し、設定されている所定のインピーダンスモデルを用いて手先の位置の変位(修正量)を算出する。なお、目標の力から仮想力への変換を、入力部110が行うようにしてもよい。また、入力部110が仮想力を受け付けるようにして、変換処理を省略するようにしてもよい。
仮想力制御部103のインピーダンスモデルは、例えば、図3(手先の右側)に示すように、手先に加わる仮想力に応じて手先の運動を制御するものである。例えば、手先を目的の方向に移動させたり、障害物に押し付けたりする運動を制御する。なお、仮想力制御のインピーダンスモデルには、例えば、図4に示すような、慣性項、粘性項、及び剛性項を含む一般的な運動方程式を用いることができる。
位置修正部104は、手先の目標位置の修正を行う。例えば、位置制御部101による軌道の算出と、力制御部102による手先の位置の変位の算出とが行われる場合、位置修正部104は、位置制御部101から出力される現在位置から目標位置までの軌道に基づく位置指令に対して、力制御部102から出力される位置の変位を加えて、位置の修正を行う。なお、力覚センサー230により外力が検出されない場合、力制御部102の出力に応じた位置の修正は行われない。
また、例えば、仮想力制御部103による手先の位置の変位の算出と、力制御部102による手先の位置の変位の算出とが行われる場合、位置修正部104は、仮想力制御部103から出力される位置の変位に対して、力制御部102から出力される位置の変位を加えて、変位の修正を行う。
インバース・キネマティクス(逆運動学)部105は、ロボット2の手先の位置から関節変位を求める。例えば、インバース・キネマティクス(逆運動学)部105は、位置修正部104から出力される手先の位置を取得し、当該位置を実現する各ジョイント200の角度情報に変換する。そして、当該角度情報をサーボ制御部120に出力する。
フォワード・キネマティクス(順運動学)部106は、ロボット2の関節変位から手先の位置を求める。例えば、フォワード・キネマティクス(順運動学)部106は、ロボット2の各ジョイント200の現在の角度を、サーボ制御部120から取得し、この角度情報を手先の位置情報に変換する。そして、当該位置情報を位置制御部101に出力する。
入力部110は、ロボット2の手先の移動の指示を受け付ける。例えば、位置制御部101による軌道の算出と、力制御部102による手先の位置の変位の算出とが行われる場合、入力部110は、ロボット2の手先の目標位置を受け付け、位置制御部101に出力する。
また、例えば、仮想力制御部103による手先の位置の変位の算出と、力制御部102による手先の位置の変位の算出とが行われる場合、入力部110は、ロボット2の手先の目標変位を特定する情報を受け付け、仮想力制御部103に出力する。また、上述のように、入力部110は、目標の力を特定する情報を受け付けるようにしてもよい。仮想力を特定する情報を受け付けるようにしてもよい。
なお、入力部110は、手先の目標位置や目標変位を、ユーザーから受け付けてもよいし、他のコンピューターや所定のプログラムから受け付けるようにしてもよい。また、入力部110は、インピーダンスモデルの特性の変更などを、ユーザー、他のコンピューター、所定のプログラムなどから受け付けるようにしてもよい。
サーボ制御部120は、ロボットのサーボモーターに指令を送る。例えば、サーボ制御部120は、インバース・キネマティクス部105から出力された各ジョイント200の角度情報に基づいて制御指令を生成し、各ジョイント200のサーボモーターを駆動する。これにより、ロボット2の位置及び姿勢が変化する。また、サーボ制御部120は、ロボット2のアクチュエーターからエンコーダー値を取得して、制御部100に出力する。
上記のロボット制御装置1は、例えば、CPUと、RAMなどの主メモリーと、HDD(Hard Disk Drive)などの補助記憶装置と、ディスプレイと、マウスやキーボードなどの入力装置と、ネットワークインターフェイス(I/F)などの通信装置と、を備えるコンピューターにより実現することができる。制御部100やサーボ制御部120は、専用のASICやコントローラー基板で実現されてもよい。なお、制御部100やサーボ制御部120は、例えば、CPUがHDDに格納された所定のプログラムをRAMに読み出して実行することにより実現することができる。入力部110は、例えば、入力装置により実現される。
なお、上記に説明した構成は、ロボット制御装置1の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボット制御装置1の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
次に、上記のロボット制御装置1により実現される特徴的な処理について説明する。
以下では、仮想力制御部103と力制御部102による制御について説明する。位置制御部101と力制御部102による制御については、従来と同様なので説明を省略する。
図5は、ロボットアームの手先を移動させる制御(位置制御を用いない場合)の流れ一例を示すフロー図である。
まず、入力部110は、ユーザーの操作により、ロボット2の手先の目標変位の入力を受け付ける(S10)。目標変位とは、例えば、手先の現在位置からの、指定方向への直線的な移動量である。
それから、仮想力制御部103は、目標変位を仮想力に変換する(S20)。具体的には、仮想力制御部103は、S10で入力された目標変位を、所定の変換式を用いて、仮想力に変換する。所定の変換式は、例えば、F=Kxである。ここで、Fは仮想力であり、Kは剛性項であり、xは目標変位である。
なお、S10において、仮想力を、ユーザーの操作により受け付けるようにしてもよい。この場合、S20の処理は、不要である。そして、以降の処理では、入力された仮想力を用いて処理を行えばよい。
また、仮想力制御部103は、S120の終了判定に用いる判定閾値を設定する(S30)。判定閾値は、S60で仮想力制御部103により算出される仮想力に対応する変位が、S10で入力された目標変位に十分近付いたことを判定する値である。
それから、フォワード・キネマティクス部106は、各軸の現在位置(エンコーダー値)を取得する(S40)。すなわち、ロボット2の各ジョイント200の現在の角度を、サーボ制御部120から取得する。また、フォワード・キネマティクス部106は、取得した角度情報を手先の位置情報に変換する(S50)。以降の処理(特にS90)では、当該現在の位置情報が、基準の位置情報となる。
それから、S60(仮想力制御部103)と、S70〜S80(力制御部102)との処理が、並列的に実行される。もちろん、これらの処理は、順次実行されてもよい。
仮想力制御部103は、仮想力制御のインピーダンスモデルの運動方程式を解く(S60)。具体的には、仮想力制御部103は、S20で算出した仮想力を、仮想力制御のインピーダンスモデルに加わる力Fとして与え、当該運動方程式の解(時間tあたりの変位(修正量))を求める。Fは仮想力なので、一定である(入力値に固定する)。なお、運動方程式の解を求める方法としては、例えば、ルンゲ・クッタ(Runge-Kutta)法などの一般的なものを用いることができる。
一方、力制御部102は、力覚センサー230から出力されるセンサー値を取得する(S70)。そして、力制御のインピーダンスモデルの運動方程式を解く(S80)。具体的には、力制御部102は、S70で取得したセンサー値に対応する外力を、力制御のインピーダンスモデルに加わる力Fとして与え、当該運動方程式の解(時間tあたりの変位(修正量))を求める。Fはセンサー値なので、不定である。なお、運動方程式の解を求める方法としては、例えば、ルンゲ・クッタ(Runge-Kutta)法などの一般的なものを用いることができる。
なお、外力が検出されていない場合、S70〜S80の処理は、実行されない。すなわち、力制御部102は、外力に応じた手先位置の変位(修正量)を出力しない。
それから、位置修正部104は、手先位置の変位の修正を行う(S90)。具体的には、位置修正部104は、例えば、S60で仮想力制御部103により算出された位置の変位に対して、S80で力制御部102により算出された位置の変位を加えて、修正を行う。また、位置修正部104は、S50で算出された基準の手先位置に、修正後の変位を加えて、目標位置を修正する。
それから、インバース・キネマティクス部105は、S90で求められた目標位置を、当該位置を実現する各ジョイント200の角度情報に変換する(S100)。また、サーボ制御部120は、S100で算出された各ジョイント200の角度情報に基づいて制御指令を生成し、各ジョイント200のサーボモーターを駆動する(S110)。
それから、仮想力制御部103は、目標変位と仮想力による変位の差分とが判定閾値よりも小さくなったか否かを判定する(S120)。具体的には、仮想力制御部103は、S60で算出した基準位置からの変位と、S10で入力された目標変位との差分を求め、当該差分とS30で設定した判定閾値とを比較する。差分が判定閾値以上の場合(S120:NO)、処理をS50の直後(S60〜S80の直前)に戻す。差分が判定閾値より小さい場合(S120:YES)、本フローを終了する。
以上のようにして、指定された変位に基づく仮想力により、手先の移動を制御することができる。例えば、手先に変位を与えれば、仮想力制御のインピーダンスモデルに従って手先が移動する。また、手先が対象物に接触してからは、力制御のインピーダンスモデルに従って、手先に加わる力を逃がす方向にも制御が行われる。
なお、位置制御により手先の位置の移動を制御する場合には、例えば、開始位置から目標位置までの軌道上に複数含まれる通過位置間の軌道ごとに、加速区間や減速区間などの速度の設定が行われるため、多くの設定が必要である。これに対して、仮想力制御を用いる場合は、インピーダンスモデルに仮想力を与えれば、求まる変位に応じて加速や減速などの速度も制御されるので、より少ない設定で簡単に制御が可能である。
もちろん、例えば、手先が対象物に接触してからさらに対象物を押すような変位を与えれば、仮想力制御のインピーダンスモデルに従って手先を対象物に押し付けることができる。
なお、仮想力制御による変位は、目標変位に対応する仮想力に応じて算出される。一方、力制御による変位は、仮想力制御によって生じた変位によりセンサーが外力を検出し、検出された外力に応じて算出される。ここで、通常センサーの応答速度は速くないため、センサーに対する外力は、仮想力制御による変位の発生から遅れて発生するとともに、仮想力制御による変位が大きくなるに従って大きくなる。そして、最終的に仮想力による変位と外力による変位とが釣り合うことで静止する。従って、手先が対象物に接触してから押し付ける方向に変位を発生させると、対象物を押し付けることができる。
手先と対象物の距離が0であり、かつ力覚センサーの検出する値が0である初期状態から、手先を対象物に押し付ける動作を例に挙げて説明する。
例えば、仮想力制御のインピーダンスモデルと、力制御のインピーダンスモデルが同じモデルである場合を考える。仮想力制御のインピーダンスモデルは、バネ係数が100であり、仮想力5N(ニュートン)が与えられたときに、0.05mの変位が発生するものとする。力制御のインピーダンスモデルも、同様であるものとする。この場合、仮想力制御のインピーダンスモデルでは、5Nの仮想力を与えることで0.05mの変位が発生する。これに対し、力制御のインピーダンスモデルでは、力覚センサーが検出する外力の値が5Nになったときに、0.05mの変位が発生する。このように、最終的に力覚センサーが5Nの外力を検出したときに、仮想力による変位と外力による変位とが釣り合って手先が静止する。従って、手先の位置は静止したままで、力覚センサーには5Nの外力が加わっていることとなる。
一方、例えば、仮想力制御のインピーダンスモデルと、力制御のインピーダンスモデルのバネ係数が異なる場合を考える。仮想力制御のインピーダンスモデルは、バネ係数が100であり、仮想力5N(ニュートン)が与えられたときに、0.05mの変位が発生するものとする。力制御のインピーダンスモデルは、バネ係数が200であるものとする。この場合、仮想力制御のインピーダンスモデルでは5Nの仮想力を与えることで0.05mの変位が発生する。これに対し、力制御のインピーダンスモデルでは、力覚センサーが検出する外力の値が10Nになったときに、0.05mの変位が発生する。このように、最終的に力覚センサーが10Nの外力を検出したときに、仮想力による変位と外力による変位とが釣り合って手先が静止する。従って、手先の位置は静止したままで、力覚センサーには10Nの外力が加わっていることとなる。
また、本実施形態では、仮想力に基づくインピーダンス制御と、外力に基づくインピーダンス制御とが、個別に用意されているので、それぞれに与えられる力に応じて個別に制御を行うことができる。例えば、仮想力制御のインピーダンスモデルによる手先の変位(速度)が、力制御のインピーダンスモデルによる変位(速度)よりも遅くなるように特性を設定(例えば、仮想力制御と力制御の剛性項及び慣性項を同じに設定し、仮想力制御の粘性項を力制御のものよりも大きく設定)すれば、仮想力制御による手先の変位が力制御による手先の変位よりも緩慢となり、手先に過度の力が加わらないようにすることができる。
なお、位置制御と力制御により手先の位置を制御する場合には、例えば、位置制御による手先の移動の速度に応じて、力制御のインピーダンスモデルの特性を変更しないと、手先や対象物の破損を発生させるおそれがあり、複雑な調整を必要とする。これに対して、仮想力制御を用いる場合は、上述のように設定が簡易である。
図6は、ロボットアームの手先を目標の力で対象物に押し付ける制御(位置制御を用いない場合)の流れ一例を示すフロー図である。
本図は、手先が対象物に向かって移動して接触した後、対象物を一定の力で押し付け続ける場合に適用される(もちろん、対象物に接触しない場合に適用してもよい)。なお、図5においても、指定する変位の値によって、対象物を一定の力で押し付け続ける制御を行うことができるが、図6では、明示的に押し付ける力を入力できるようにしている。図5と異なる点を中心に説明する。
まず、入力部110は、ユーザーの操作により、ロボット2の手先に加える目標の力の入力を受け付ける(S11)。また、力制御部102は、力覚センサー230から出力されるセンサー値を取得する(S12)。
それから、仮想力制御部103は、仮想力を算出する(S13)。具体的には、仮想力制御部103は、S11で入力された目標の力と、S12で取得したセンサー値に対応する外力とから、所定の変換式を用いて、仮想力を算出する。所定の変換式は、例えば、Fv=(Fp−Fs)*Kv/Kfである。ここで、Fvは仮想力であり、Fpは目標の力であり、Fsは外力であり、Kvは仮想力制御のインピーダンスモデルの剛性項であり、Kfは力制御のインピーダンスモデルの剛性項である。Kv/Kfは、二つの剛性項の比を表している。仮想力Fvを仮想力制御に与えることで、目標の力Fpが手先に加わることとなる。
それから、仮想力制御部103は、目標変位を算出する(S14)。具体的には、仮想力制御部103は、S13で算出した仮想力から、所定の変換式を用いて、目標変位を算出する。所定の変換式は、例えば、x=Fv/Kvである。ここで、xは目標変位であり、Fvは仮想力であり、Kvは剛性項である。
また、仮想力制御部103は、S120´の終了判定に用いる判定閾値を設定する(S30´)。判定閾値は、S60´で仮想力制御部103により算出される仮想力に対応する変位が、S14で算出された目標変位に十分近付いたことを判定する値である。
S40、S50は、図5の対応する処理と同様なので、説明を省略する。
それから、仮想力制御部103は、仮想力制御のインピーダンスモデルの運動方程式を解く(S60´)。具体的には、仮想力制御部103は、S13で算出した仮想力を、仮想力制御のインピーダンスモデルに加わる力Fとして運動方程式の解(時間tあたりの変位(修正量))を求める。Fは仮想力なので、一定である(入力値に固定する)。
S70〜S110は、図5の対応する処理と同様なので、説明を省略する。
それから、仮想力制御部103は、目標変位と仮想力による変位の差分とが判定閾値よりも小さくなったか否かを判定する(S120´)。具体的には、仮想力制御部103は、S60´で算出した基準位置からの変位と、S14で算出した目標変位との差分を求め、当該差分とS30´で設定した判定閾値とを比較する。差分が判定閾値以上の場合(S120´:NO)、処理をS50の直後(S60´、S70〜S80の直前)に戻す。差分が判定閾値より小さい場合(S120´:YES)、本フローを終了する。
以上のようにして、指定された目標の力で手先を対象物に押し付ける動作を制御することができる。例えば、手先が対象物に接触した状態で、手先が対象物に向かう目標の押し付け力を与えれば、仮想力制御のインピーダンスモデルに従った手先の変位により、目標の押し付け力で手先を対象物に押し付けることができる。なお、図5で説明したように、最終的に仮想力と外力とが釣り合うことで静止する。従って、手先が対象物に接触してから押し付ける方向に変位を発生させると、対象物を押し付けることができる。また、仮想力制御及び力制御のインピーダンスモデルに個別に特性を設定できるので、手先に過度の力が加わらないようにすることができる。
上述の図5及び図6のフローの各処理単位は、ロボット制御装置1の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。ロボット制御装置1の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。
以上、本発明の一実施形態の一例について説明した。本実施形態によれば、より簡単にロボットの力制御及び位置制御を行うことができる。
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
上記の本実施形態の一例では、説明を分かり易くするため、特に変位の方向を限定せずに説明している。当然、複数の軸、例えば、6軸(XYZ各軸方向の力と、各軸回りの力のモーメント(トルク))のそれぞれについて、力制御のインピーダンスモデルと、それに対称の仮想力制御のインピーダンスモデルを定義すれば、様々な変位に対応できる。
すなわち、力制御部102は、軸方向の外力(センサー値)が与えられれば、対応するインピーダンスモデルの運動方程式を解いて、与えられた力に応じた変位を算出し、軸回りの外力であるトルク(センサー値)が与えられれば、対応するインピーダンスモデルの運動方程式を解いて、与えられたトルクに応じた変位を算出する。また、仮想力制御部103は、軸方向の仮想力が与えられれば、対応するインピーダンスモデルの運動方程式を解いて、与えられた力に応じた変位を算出し、軸回りの仮想力であるトルクが与えられれば、対応するインピーダンスモデルの運動方程式を解いて、与えられたトルクに応じた変位を算出する。
なお、仮想力による直線的な変位(直進運動)については、上記の実施形態で説明したとおり、仮想力制御部103は、例えばF=Kxで求まる仮想力(軸方向の力)を、図4の「直線」の運動方程式のFに代入すればよい。仮想力による回転の変位(回転運動)については、例えばT=Krθで求まる仮想力(軸回りのトルク)を、図4の「回転」の運動方程式のTに代入すればよい。なお、回転の場合、モデルとしてオイラーの運動方程式を用いるようにしてもよい。
また、例えば、仮想力制御部103と、位置制御部101とを併用してもよい。この場合、位置修正部104は、位置制御部101から出力される現在位置から目標位置までの軌道に基づく位置指令に対して、仮想力制御部103から出力される位置の変位を加えて、位置の修正を行う。
このようにすれば、例えば、一定の力で対象物を押さえ付けながら手先を移動する、といった動作の制御を行う場合に、位置制御部101のみで軌道計画を立てるよりも簡単に軌道計画を立てることができる。すなわち、位置制御部101のみで上記のような動作を制御する場合、例えば、手先を対象物に押さえ付けるベクトルへの移動と、手先を移動させたいベクトルへの移動との両方を考慮して、軌道計画を行う必要がある。これに対して、位置制御部101と仮想力制御部103の両方を用いた場合、手先を対象物に押さえ付けるベクトルへの移動については、仮想力制御部103を用いて制御すればよい。従って、位置制御部101による軌道計画は簡単になる。
なお、ロボット制御装置1及びロボット2の機能分担は、上記の実施形態の例に限られず、例えば、ロボット制御装置1の一部分又は全ての機能をロボット2が実行するようにしてもよい。また、例えば、ロボット制御装置1が、ロボット2に含まれていてもよい。
1:ロボット制御装置、2:ロボット、100:制御部、101:位置制御部、102:力制御部、103:仮想力制御部、104:位置修正部、105:インバース・キネマティクス部、106:フォワード・キネマティクス部、110:入力部、120:サーボ制御部、200:ジョイント、210:リンク、220:ハンド、230:力覚センサー

Claims (9)

  1. アームを備えるロボットの動作を制御するロボット制御装置であって、
    前記アームの作業点に加える仮想の力を取得する第一の取得手段と、
    前記取得された仮想の力を第一のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第一の変位設定手段と、
    前記第一の変位設定手段により設定された変位に基づいて前記作業点の目標位置を設定する目標位置設定手段と、を有する、
    ことを特徴とするロボット制御装置。
  2. 請求項1に記載のロボット制御装置であって、
    前記作業点に加わった外力を検出するセンサーのセンサー値を取得する第二の取得手段と、
    前記取得されたセンサー値に対応する外力を第二のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第二の変位設定手段と、を有し、
    前記目標位置設定手段は、前記第一の変位設定手段により設定された変位と、前記第二の変位設定手段により設定された変位と、に基づいて前記作業点の目標位置を設定する、
    ことを特徴とするロボット制御装置。
  3. 請求項2に記載のロボット制御装置であって、
    前記第一の取得手段は、前記仮想の力の入力を受け付ける、又は、前記作業点が移動すべき目標変位の入力を受け付けて、当該目標の変位に応じた前記仮想の力を求める、ことにより前記仮想の力を取得する、
    ことを特徴とするロボット制御装置。
  4. 請求項2又は3に記載のロボット制御装置であって、
    前記第一の取得手段は、前記作業点に加えるべき目標の力の入力を受け付けて、当該目標の力と、前記第二の取得手段により取得されたセンサー値に対応する外力とに基づいて、前記仮想の力を求める、ことにより前記仮想の力を取得する、
    ことを特徴とするロボット制御装置。
  5. 請求項2〜4いずれか一項に記載のロボット制御装置であって、
    前記第一のインピーダンスモデルと前記第二のインピーダンスモデルとは、前記仮想の力と前記外力との方向が相互に逆となるように対称に配置されている、
    ことを特徴とするロボット制御装置。
  6. 請求項2〜5いずれか一項に記載のロボット制御装置であって、
    前記第一のインピーダンスモデルは、軸方向の変位、又は軸回りの変位に対応するモデルであり、
    前記仮想の力は、軸方向の仮想の力、又は軸回りの仮想の力であり、
    前記第二のインピーダンスモデルは、軸方向の変位、又は軸回りの変位に対応するモデルであり、
    前記外力は、軸方向の外力、又は軸回りの外力である、
    ことを特徴とするロボット制御装置。
  7. 請求項2〜6いずれか一項に記載のロボット制御装置であって、
    前記第一のインピーダンスモデル及び前記第二のインピーダンスモデルそれぞれの特性の変更を受け付ける受付手段、を有する、
    ことを特徴とするロボット制御装置。
  8. 請求項1〜7いずれか一項に記載のロボット制御装置であって、
    指定された始点から終点までの軌道を生成する軌道生成手段を有し、
    前記目標位置設定手段は、前記第一の変位設定手段により算出された変位に基づいて前記軌道を修正する、
    ことを特徴とするロボット制御装置。
  9. アームを備えるロボットの動作を制御するロボット制御方法であって、
    前記アームの作業点に加える仮想の力を取得する第一の取得ステップと、
    前記取得された仮想の力を第一のインピーダンスモデルに与えることにより、前記作業点が移動すべき変位を設定する第一の変位設定ステップと、
    前記第一の変位設定ステップにより設定された変位に基づいて前記作業点の目標位置を設定する目標位置設定ステップと、を含む、
    ことを特徴とするロボット制御方法。
JP2012019597A 2012-02-01 2012-02-01 ロボット制御装置、およびロボット制御方法 Pending JP2013158837A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012019597A JP2013158837A (ja) 2012-02-01 2012-02-01 ロボット制御装置、およびロボット制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012019597A JP2013158837A (ja) 2012-02-01 2012-02-01 ロボット制御装置、およびロボット制御方法

Publications (1)

Publication Number Publication Date
JP2013158837A true JP2013158837A (ja) 2013-08-19

Family

ID=49171534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012019597A Pending JP2013158837A (ja) 2012-02-01 2012-02-01 ロボット制御装置、およびロボット制御方法

Country Status (1)

Country Link
JP (1) JP2013158837A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016221661A (ja) * 2015-06-04 2016-12-28 キヤノン株式会社 ロボット制御方法、組立品の製造方法、ロボット装置、プログラム及び記録媒体
CN112947439A (zh) * 2021-02-05 2021-06-11 深圳市优必选科技股份有限公司 位置调整方法、装置、终端设备及可读存储介质
WO2023065781A1 (zh) * 2021-10-18 2023-04-27 节卡机器人股份有限公司 复合机器人的控制方法、装置及***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016221661A (ja) * 2015-06-04 2016-12-28 キヤノン株式会社 ロボット制御方法、組立品の製造方法、ロボット装置、プログラム及び記録媒体
CN112947439A (zh) * 2021-02-05 2021-06-11 深圳市优必选科技股份有限公司 位置调整方法、装置、终端设备及可读存储介质
CN112947439B (zh) * 2021-02-05 2024-07-23 深圳市优必选科技股份有限公司 位置调整方法、装置、终端设备及可读存储介质
WO2023065781A1 (zh) * 2021-10-18 2023-04-27 节卡机器人股份有限公司 复合机器人的控制方法、装置及***

Similar Documents

Publication Publication Date Title
US9908237B2 (en) Compliant motion control for robot
KR101864062B1 (ko) 로봇의 제어 장치
JP5893665B2 (ja) 作用された力に応じて移動されるロボットを制御するロボット制御装置
EP2835228B1 (en) Robot apparatus and robot controlling method
JP5893666B2 (ja) 力に応じて動かすロボットのロボット制御装置およびロボットシステム
JP6484265B2 (ja) 学習制御機能を備えたロボットシステム及び学習制御方法
JP6472214B2 (ja) ロボット装置の制御方法及びロボット装置
JP6582483B2 (ja) ロボット制御装置およびロボットシステム
US20090069942A1 (en) Robot apparatus and method of controlling the same
US10022864B2 (en) Robot control apparatus, robot system, and robot control method
CN110621446B (zh) 机器人***以及机器人***的控制方法
JP5890473B2 (ja) モータを制御するモータ制御装置
JP5916583B2 (ja) 多関節ロボットのウィービング制御装置
JP5893664B2 (ja) 作用された力に応じて移動されるロボットを制御するロボット制御装置
WO2019116891A1 (ja) ロボットシステム及びロボット制御方法
JP6044511B2 (ja) ロボットの制御方法及びロボットシステム
JP2011206886A (ja) ロボットの制御装置及び方法
JP6693939B2 (ja) ロボットシステム
US9676100B2 (en) Control apparatus of robot, robot, and program thereof
JP2013158837A (ja) ロボット制御装置、およびロボット制御方法
CN107000209B (zh) 控制驱动组件使特别机器人引导的工具运动的方法和装置
JP2619227B2 (ja) ロボットの制御方法および装置
US9827673B2 (en) Robot controller inhibiting shaking of tool tip in robot equipped with travel axis
JP2015074058A (ja) ロボット制御装置、ロボットシステム、ロボット、ロボット制御方法、及びプログラム
JP6429977B2 (ja) ロボット装置及びロボット制御方法