JP2014046449A - ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置 - Google Patents

ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置 Download PDF

Info

Publication number
JP2014046449A
JP2014046449A JP2012194200A JP2012194200A JP2014046449A JP 2014046449 A JP2014046449 A JP 2014046449A JP 2012194200 A JP2012194200 A JP 2012194200A JP 2012194200 A JP2012194200 A JP 2012194200A JP 2014046449 A JP2014046449 A JP 2014046449A
Authority
JP
Japan
Prior art keywords
workpiece
fingers
gripping
actuator
robot hand
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
JP2012194200A
Other languages
English (en)
Inventor
Masataka Suzuki
真崇 鈴木
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 JP2012194200A priority Critical patent/JP2014046449A/ja
Publication of JP2014046449A publication Critical patent/JP2014046449A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】フィンガーの把持力を正確に目標把持力にする。
【解決手段】ロボットハンド制御装置500は、モータ312の駆動量を制御する制御基板501及びモータドライバ502と、フィンガーの剛性値及びワークの剛性値のうち、少なくとも一方の剛性値を格納するメモリ503とを備えている。制御基板501は、メモリ503から剛性値Kを読み出すことで剛性値Kの入力を受ける処理と、外部コントローラ600からフィンガーによりワークを把持する際の目標把持力としての把持力指令値Fcの入力を受ける処理とを実行する。また、制御基板501は、把持力指令値Fc及び剛性値Kを用いて、フィンガーがワークに接触する時点からフィンガーによりワークを把持する把持力が把持力指令値Fcとなる時点までのモータ312の目標駆動量を求める処理を実行する。
【選択図】図4

Description

本発明は、ロボットハンドを制御するロボットハンド制御方法、ロボットハンド制御装置及びロボット装置に関する。
近年、カメラ、プリンタ等の小型で複雑な構造をした製品に対して自動化の要求が高まってきている。これらの製品に使用される部品は、小型の精密部品が多く、その形状も多種にわたっている。これに対応するために、ロボットハンドには、小型で簡易な構成で、かつ多種多様なワークを把持できることが要求されている。そして、適正な把持力でワークを把持することが求められている。
そこで、従来、力センサを用いて把持力を検出する方法(特許文献1参照)と、力センサを用いずに把持力を推定する方法(特許文献2参照)とが提案されている。
特許文献1に開示されたロボットハンドでは、モータの駆動により移動する直動部材とワークを把持するための把持部材との間に弾性部材が設けられており、この弾性部材に加わる力と、把持部材に加わる把持力とが一致する構成となっている。これを利用して、把持部材に把持力が加わるとき、弾性部材の変位を、力センサとしての変位センサで検出し、弾性部材に加わる力に換算することで、把持力の検出を行っている。
また、特許文献2で開示されている把持力制御装置では、力センサなどを用いず、モータの制御に工夫を加えて把持力を推定している。この制御では、モータの駆動電流と速度を入力値として、外乱推定オブザーバからモータの出力トルクを推定し、予め測定した摩擦係数から求まる摩擦力を差し引くことで、把持力を推定している。
特開2011−194523号公報 特開2002−178281号公報
しかしながら、上記特許文献1に記載の技術では、弾性部材、変位センサ、及びそれらを配置するための構造部材が余計に必要になるため、ロボットハンドのハンド本体が大型化してしまう。さらに、ハンド本体の重量が増加することで、フィンガーを駆動する駆動用モータも大型化せざるを得ない。
これに対し、上記特許文献2に記載の技術では、上記特許文献1のようにロボットハンドに力センサを設けていないので、ロボットハンドを小型化することは可能である。しかしながら、上記特許文献2に記載の技術では、経年変化等で摩擦係数が変化することがあり、摩擦係数が変化した場合、モータ駆動電流に対する把持力が変化するため、正確な把持力を推定することができない。
そこで、本発明は、フィンガーの把持力を正確に目標把持力にすることを目的とするものである。
本発明は、ワークを把持する複数のフィンガーと、駆動力を発生するアクチュエータと、前記アクチュエータの駆動力を前記複数のフィンガーに伝達して、前記アクチュエータの駆動量に応じた移動量で前記複数のフィンガーを移動させる駆動力伝達機構と、を有するロボットハンドを制御するロボットハンド制御方法において、前記フィンガーの剛性値及びワークの剛性値のうち、少なくとも一方の剛性値を設定する剛性値設定工程と、前記複数のフィンガーによりワークを把持する際の目標把持力を設定する把持力設定工程と、前記剛性値設定工程にて設定した剛性値、及び前記目標把持力を用いて、前記複数のフィンガーがワークに接触する時点から前記複数のフィンガーによりワークを把持する把持力が前記目標把持力となる時点までの前記アクチュエータの目標駆動量を求める駆動量演算工程と、を備えたことを特徴とする。
本発明によれば、アクチュエータの目標駆動量を、摩擦係数に比して経時的な変化が小さい剛性値を用いて求めるので、フィンガーによる把持力を正確に目標把持力にすることができる。
ロボット装置の概略構成を示す説明図である。 ロボットハンドの概略構成を示す説明図である。 ラックアンドピニオン機構の平面図である。 ロボットハンド及びロボットハンド制御装置の概略構成を示す制御ブロック図である。 ロボットハンドの把持動作の準備段階におけるロボットハンド制御装置の制御動作を示すフローチャートである。 ロボットハンドが把持動作をする際のロボットハンド制御装置の制御動作を示すフローチャートである。 把持動作の動作時間に対するロータリエンコーダのエンコーダ値を示すグラフである。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、本発明の実施形態に係るロボット装置の概略構成を示す説明図である。
ロボット装置100は、ロボットアーム200と、ロボットハンド300と、ロボットアーム200を制御するロボットアーム制御装置400と、ロボットハンド300を制御するロボットハンド制御装置500とを備えている。ロボット装置100は、例えば組立ロボットである。把持対象物であるワークWは、ワーク載置台Sa上に載置されている。
ロボットアーム制御装置400は、ロボットアーム200の内部に設けられ、ロボットハンド制御装置500は、ロボットハンド300の内部に設けられている。なお、ロボットアーム制御装置400は、ロボットアーム200の外部に設けられていてもよいし、ロボットハンド制御装置500は、ロボットハンド300の外部に設けられていてもよい。
ロボットアーム200は、本実施形態では、多関節のロボットアームであり、基端200aが基台に固定され、先端200bには、ロボットハンド300が取り付けられている。
図2は、ロボットハンドの概略構成を示す説明図である。ロボットハンド300は、ハンドベース301と、ワークWを把持する複数(本実施形態では2つ)のフィンガー302,302とを備えている。ハンドベース301は、ハンド筺体311と、ハンド筺体311の内側に設けられた、アクチュエータとしての回転モータ(以下「モータ」という)312と、を有している。モータ312は、通電により不図示の回転子が回転するように構成された電磁モータであり、例えばブラシレスDCモータである。
モータ312は、駆動力として回転力を発生するものであり、モータ312には、駆動量を検出するエンコーダとしてのロータリエンコーダ313が設けられている。ロータリエンコーダ313は、駆動量としてモータ312の不図示の回転子の回転角度(回転量)を検出するものであり、回転角度に応じてパルスを出力する、即ちエンコーダ値を出力するものである。
なお、本実施形態では、アクチュエータとして回転モータ312、エンコーダしてのロータリエンコーダ313の場合について説明するが、これに限定するものではない。アクチュエータとしてエアシリンダなどの直動アクチュエータ、エンコーダとして直動ポテンショメータなどを用いてもよい。
ハンドベース301は、駆動力伝達機構としてのラックアンドピニオン機構314を有している。ラックアンドピニオン機構314は、モータ312の回転運動を直動運動に変換してモータ312の回転力をフィンガー302,302に伝達し、モータ312の駆動量である回転量に応じた移動量でフィンガー302,302を直動移動させる。
ラックアンドピニオン機構314は、モータ312の出力軸312aの先端に固定されたピニオンギア321と、ピニオンギア321に噛み合う2つのラック322,322とを有している。これらラック322,322は、ハンド筺体311の内側に固定された別々の不図示の直動案内機構に取り付けられている。
また、ラック322には、フィンガー接続部323を介してフィンガー302が固定されており、ラック322には、フィンガー接続部323を介してフィンガー302が固定されている。
図3は、ラックアンドピニオン機構の平面図である。図3に示すように、ラック322,322は、モータ312の出力軸312aの軸中心に対して点対称に配置され、不図示の直動案内機構に案内され、互いに逆方向に直動移動する。モータ312の不図示の回転子の回転駆動力により、ピニオンギア321が回転することで、ラック322,322、フィンガー接続部323,323、及びフィンガー302,302が同時に互いに逆方向に直動駆動される。
図2では、フィンガー302,302は、ワークWを解放した状態であり、モータ312がフィンガー302を矢印A方向(把持方向)に、フィンガー302を矢印A方向(把持方向)にそれぞれ同時に駆動することで、ワークWの把持を行う。また、図示は省略するが、フィンガー302,302がワークWを把持した状態でワークWを解放する場合には、フィンガー302,302を反対方向に駆動すればよい。即ち、モータ312がフィンガー302を矢印A方向に対して反対の矢印B方向(把持解放方向)に、フィンガー302を矢印A方向に対して反対の矢印B方向(把持解放方向)にそれぞれ同時に駆動することで、ワークWの把持解放を行う。フィンガー302,302を矢印A,A方向に移動させる動作が把持動作、矢印B,B方向に移動させる動作が把持解放動作である。
図4は、ロボットハンド及びロボットハンド制御装置の概略構成を示す制御ブロック図である。図2及び図4に示すように、ロボットハンド制御装置500は、制御部としての制御基板501及びモータドライバ502と、記憶部としてのメモリ503と、画像表示部や音声出力部等の報知部504とを備えている。メモリ503は、データの書き換え可能な不揮発性のメモリであるのが好ましい。
制御基板501は、モータドライバ502によるモータ312への通電状態を制御して、モータ312の駆動量である回転量を制御する。モータドライバ502は、制御基板501の制御の下、モータ312に駆動電流を供給する。メモリ503は、外部情報(データ)を格納する。
ハンド筺体311には、外部ケーブル511と制御基板ケーブル513とを接続する外部コネクタ512がそれぞれ固定されている。外部コントローラ600に接続された外部ケーブル511は、外部コネクタ512及び制御基板ケーブル513を介して制御基板501に接続され、モータ312の制御のための相互通信を行う。
操作者は、外部コントローラ600を操作して、制御基板501にデータを設定することで、モータ312の操作が可能である。外部ケーブル511及び制御基板ケーブル513は、不図示の外部電源から、制御基板501への電源供給も同時に行う。
制御基板501は、メモリケーブル514を介してメモリ503に接続され、メモリ503に情報(データ)を記録させることができ、メモリ503に記録された情報(データ)を読み取ることができる。
また、制御基板501は、予めメモリ503に記録された制御指令を用いて、外部コントローラ600からの手動操作なしで、自動でモータ312を動作させることも可能である。
モータドライバ502は、ドライバケーブル515を介して制御基板501に接続されている。モータドライバ502には、制御基板501から電源および制御指令が供給される。また、モータ312は、モータケーブル516を介してモータドライバ502からの駆動電流の入力を受ける。ロータリエンコーダ313は、モータ312に直接接続されており、また、エンコーダケーブル517を介して制御基板501に接続されている。
以上の構成で、外部コントローラ600は、制御基板501に、フィンガー302,302の位置指令値Xc又は速度指令値Vcを送り、また、制御基板501から、フィンガー302,302の位置X及びフィンガー302の速度Vを受け取る。
制御基板501は、メモリ503の記録情報(データ)を参照し、フィンガー302,302の位置指令値Xc又はフィンガー302,302の速度指令値Vcから、モータ312の回転角度指令値θc及び回転速度指令値ωcを算出する。そして、制御基板501は、モータ312の回転角度指令値θc及び回転速度指令値ωcをモータドライバ502に送る。
モータドライバ502は、制御基板501から受け取ったモータ312の回転角度指令値θc及び回転速度指令値ωcから、モータ312を駆動するための電流指令値を計算して、電流指令値に対応する電流値の駆動電流Icをモータ312に供給する。
ロータリエンコーダ313は、モータ312の回転子の位相φをモニタリングし、パルスカウント値であるエンコーダ値Pを制御基板501に送る。また、制御基板501は、エンコーダ値Pに基づいて、モータ312の回転角度θ及び回転速度ωを計算し、回転角度指令値θc及び回転速度指令値ωcにフィードバックして修正する。
ところで、フィンガー302,302がワークWに接触した後、矢印A,A方向にフィンガー302,302を駆動すると、フィンガー302,302に把持力が発生する。このとき、モータ312の出力軸312a、ピニオンギア321、ラック322,322、フィンガー接続部323,323、フィンガー302,302は弾性変形する。そのため、フィンガー302,302がワークWへ接触した後も、モータ312は回転する。また、ワークWも弾性変形するので、フィンガー302,302がワークWへ接触した後も、モータ312は回転する。
フィンガー302,302の剛性値Kfは、フィンガー302,302に生ずる把持力に対して、モータ312の回転量を除した値で定義できる。つまり、フィンガー302,302の剛性値Kfは、既知の値であり、経時的な変化はほとんどない。また、ワークWについても、別の種類のワークが混在しなければ、ワーク間で剛性値Kwのばらつきはほとんどなく、既知の値とすることができる。
そこで、本実施形態では、フィンガー302,302を閉じてワークWを把持する把持動作に先立って、フィンガー及びワークの剛性値を用いて、目標把持力に対するモータ312の目標駆動量である目標回転量を制御基板501に計算させるものである。
図5は、ロボットハンドの把持動作の準備段階におけるロボットハンド制御装置の制御動作を示すフローチャートである。図6は、ロボットハンドが把持動作をする際のロボットハンド制御装置の制御動作を示すフローチャートである。図7は、把持動作の動作時間に対するロータリエンコーダのエンコーダ値を示すグラフである。
本実施形態では、把持対象となるワークWは既知であり、ワークWの剛性値Kwも既知であるとする。まず、把持動作に先立つ把持動作の準備段階における制御基板501の処理動作について図5のフローチャートに沿って説明する。
制御基板501は、操作者の操作により外部コントローラ600から出力されたフィンガー302,302の剛性値Kfの入力を受け、剛性値Kfをメモリ503に記録(格納)させる(S1)。つまり、作業者が外部コントローラ600を操作することで、メモリ503には剛性値Kfが格納される。
また、制御基板501は、操作者の操作により外部コントローラ600から出力されたワークWの剛性値Kwの入力を受け、剛性値Kwをメモリ503に記録(格納)させる(S2)。つまり、作業者が外部コントローラ600を操作することで、メモリ503には剛性値Kwが格納される。
また、制御基板501は、操作者の操作により外部コントローラ600から出力されたワークWの寸法Rの入力を受け、ワークWの寸法Rをメモリ503に記録(格納)させる(S3)。つまり、作業者が外部コントローラ600を操作することで、メモリ503にはワークWの寸法Rが格納される。
また、制御基板501は、操作者の操作により外部コントローラ600から出力された、フィンガーがワークWに接触すると想定される動作位置を含むフィンガー302,302の動作範囲の入力を受け、動作範囲をメモリ503に記録(格納)させる(S4)。つまり、作業者が外部コントローラ600を操作することで、メモリ503にはフィンガー302,302の動作範囲が格納される。本実施形態では、フィンガー302,302の動作範囲は、モータ312の駆動範囲、即ちロータリエンコーダ313のカウント範囲Pm(図7)としている。
また、制御基板501は、操作者の操作により外部コントローラ600から出力された、フィンガー302,302によりワークWを把持する動作中の把持力の上限値Fmaxの入力を受け、上限値Fmaxをメモリ503に記録(格納)させる(S5)。つまり、作業者が外部コントローラ600を操作することで、メモリ503には、図7に示す上限値Fmaxが格納される。
また、制御基板501は、操作者の操作により外部コントローラ600から出力された、フィンガー302,302によりワークWを把持する動作中の把持力の下限値Fminの入力を受け、下限値Fminをメモリ503に記録(格納)させる(S6)。つまり、作業者が外部コントローラ600を操作することで、メモリ503には、図7に示す下限値Fminが格納される。
また、制御基板501は、操作者の操作により外部コントローラ600から出力された、把持力の許容誤差σFの入力を受け、把持力の許容誤差σFをメモリ503に記録(格納)させる(S7)。つまり、作業者が外部コントローラ600を操作することで、メモリ503には把持力の許容誤差σFが格納される。
次に、制御基板501は、メモリ503に格納された把持力の許容誤差σFを読み出し、読み出した許容誤差σFから、後述するエンコーダ値推定変化量の許容誤差σpを算出し、メモリ503に記録(格納)させる(S8)。つまり、メモリ503には、制御基板501により演算された図7に示す許容誤差σpが格納される。
ここで、フィンガー302,302でワークWを把持する際に、フィンガー302,302とワークWを、剛性値Kを持つ1つのバネとみなしたとき、以下の式(1)に示すように、直列バネの関係から剛性値Kが求まる。
K=(Kf・Kw)/(Kf+Kw) (1)
剛性値Kと、把持力Fと、フィンガー302,302及びワークWの変位を足し合わせた変位Xとの間には、バネと弾性力の関係式F=K・Xが成り立つ。また、変位Xとエンコーダ値Pとの関係が、換算係数Cを用いてP=C・Xから求まる。
従って、ステップS8において、制御基板501は、これらの関係式を用いて、許容誤差σFから、エンコーダ値変化量の許容誤差σpを算出する。
なお、ステップS1〜S8までは、把持動作の準備であり、最初に使用する場合、或いはワークWの種類を変更する場合等のロボットハンド300の使用前に、一度だけ行えばよい。
次に、把持動作に先立つ制御基板501の各種データの設定処理動作について図6のフローチャートに沿って説明する。ここで、制御基板501においてデータを設定するとは、例えば制御基板501において演算処理に用いることが可能な状態に制御基板501の不図示の一時記憶部に格納することである。
制御基板501は、メモリ503からフィンガー302,302の剛性値Kfを読み出すことで剛性値Kfの入力を受け、剛性値Kfを設定する(S11:剛性値設定工程)。
また、制御基板501は、メモリ503からワークWの剛性値Kwを読み出すことで剛性値Kwの入力を受け、剛性値Kwを設定する(S12:剛性値設定工程)。
また、制御基板501は、メモリ503からワークWの寸法Rを読み出すことでワークWの寸法Rの入力を受け、ワークWの寸法Rを設定する(S13:寸法設定工程)。
また、制御基板501は、メモリ503からフィンガー302,302の動作範囲を読み出すことで動作範囲の入力を受け、動作範囲を設定する(S14:動作範囲設定工程)。即ち、制御基板501は、メモリ503からカウント範囲Pmを読み出して、カウント範囲Pmを設定する。
また、制御基板501は、メモリ503から把持力の上限値Fmaxを読み出すことで上限値Fmaxの入力を受け、上限値Fmaxを設定する(S15:上限値設定工程)。
また、制御基板501は、メモリ503から把持力の下限値Fminを読み出すことで下限値Fminの入力を受け、下限値Fminを設定する(S16:下限値設定工程)。
また、制御基板501は、後述するエンコーダ値推定変化量の許容誤差σpをメモリ503から読み出すことで許容誤差σpの入力を受け、許容誤差σpを設定する(S17:許容誤差設定工程)。
また、制御基板501は、操作者の操作により外部コントローラ600から出力された目標把持力である把持力指令値Fcの入力を受け、把持力指令値Fcを設定する(S18:把持力設定工程)。この把持力指令値Fcは、操作者により把持力の下限値Fmin以上かつ把持力の上限値Fmax以下の範囲で選択された値である。
以上のステップS11〜S18により制御基板501には、以降の演算で用いる各種のデータが設定される。なお、ステップS11〜S18の設定動作の順番は、これに限定するものではなく、いずれのステップS11〜S18から行ってもよい。
また、本実施形態では、ステップS11〜S17では、制御基板501からメモリ503に予め格納されたデータを読み出すことで、設定を行っているが、外部コントローラ600からの入力を受けて設定を行ってもよい。また、ステップS18では、外部コントローラ600から把持力指令値Fcのデータの入力を受けて設定を行っているが、予め把持力指令値Fcのデータをメモリ503に格納しておき、ステップS18においてメモリ503から読み出すことで設定を行ってもよい。
次に、制御基板501は、フィンガー302,302がワークWに接触する時点からフィンガー302,302によりワークWを把持する把持力が把持力指令値Fcとなる時点までのモータ312の目標駆動量(目標回転量)を演算する(駆動量演算工程)。ここで、モータ312の回転量とロータリエンコーダ313のエンコーダ値とは対応関係にあるので、本実施形態では、制御基板501は、ロータリエンコーダ313のエンコーダ値変化量ΔPを演算により推定する(S19)。エンコーダ値変化量ΔPは、図7に示すように、フィンガー302,302がワークWに接触する時点T0からフィンガー302,302によりワークWを把持する把持力が把持力指令値Fcとなる時点Teまでのエンコーダ値の推定変化量である。
以下、具体的に説明すると、剛性値Kと、把持力指令値Fcと、フィンガー302,302がワークWに接触した後のフィンガー302,302及びワークWの変位を足し合わせた変位ΔXとの間には、バネと弾性力の関係式Fc=K・ΔXが成り立つ。また、変位ΔXとエンコーダ値変化量ΔPとの関係が、換算係数C(予め設定された定数)を用いてΔP=C・ΔXから求まる。
つまり、制御基板501は、把持力指令値Fc及び剛性値Kを用いて、関係式ΔP=C・Fc/Kからエンコーダ値変化量ΔPを求める。なお、制御基板501は、関係式Fc=K・ΔXから変位ΔXを求めた後、さらに、関係式ΔP=C・ΔXから、エンコーダ値変化量ΔPを求めてもよい。また、制御基板501は、エンコーダ値変化量ΔPを求めるのに、関係式を用いずに、予めメモリに格納させておいたエンコーダ値変化量を求めるデータテーブルを用いてもよい。
次に、制御基板501は、ステップS18にて設定した把持力指令値Fcを目標値として、フィンガー302,302による把持動作を開始する(S20:把持動作開始工程)。その際、図1に示すように、ロボットハンド300がワークWを把持する所定の位置まで、ロボットアーム200によりアプローチする。
把持動作開始後、制御基板501は、把持動作中においては、ロータリエンコーダ313の出力値であるエンコーダ値Pをモニタリングする。
モータドライバ502から送られる駆動電流により、モータ312がラックアンドピニオン機構314を介してフィンガー302,302を駆動することで、フィンガー302,302が図1中矢印A,A方向に直動移動する。
なお、フィンガー302,302がワークWに接触する前の区間においては、安定した把持動作を行うために、フィンガー302,302は一定速度Vで駆動するものとする。即ち、フィンガー302,302は、把持動作開始してから図7に示す加速時間Taが経過するまでの間、速度指令値Vcに基づき、速度Vまで加速される。その後、フィンガー302,302は、ワークWに接触するまで速度Vで移動する。フィンガー302,302がワークWに接触した時点T0でのエンコーダ値をP0とする。
フィンガー302がワークWに接触すると、フィンガー302の駆動速度が急激に低下するため、ロータリエンコーダ313のエンコーダ値Pの変化の速度(傾き)が大きく変化する。
そこで、制御基板501は、ロータリエンコーダ313の検出結果であるエンコーダ値Pに基づき、フィンガー302,302がワークWに接触したか否かを判断する(S21:判断工程)。つまり、制御基板501は、エンコーダ値P(パルス)の変化の速度(図7のエンコーダ値Pの傾き)が所定速度以下に低下した場合に、フィンガー302,302がワークWに接触したと判断する。
制御基板501は、フィンガー302,302がワークWに接触していないと判断した場合(S21:No)、フィンガー302,302の動作位置が、ステップS14にて設定した動作範囲内であるか否かを判断する(S22:動作判断工程)。即ち、制御基板501は、ロータリエンコーダ313の検出結果であるエンコーダ値Pが、カウント範囲Pm内であるか否かを判断する。
制御基板501は、フィンガー302,302の動作位置が動作範囲内であると判断した場合(S22:Yes)には、ステップS21の処理に戻る。
制御基板501は、フィンガー302,302の動作位置が動作範囲を外れたと判断した場合(S22:No)には、ワーク無エラーであり、把持するワークが無い旨を報知部504にて操作者に報知する(S23:第1報知工程)。即ち、供給ミスなどの要因でワークWが所定の位置に無い場合は、ステップS14で設定したフィンガー302,302の動作範囲を上回った時点(エンコーダ値PがPmを上回った時点)で、操作者にエラーの報知を行う。
次に、制御基板501は、フィンガー302,302がワークWに接触したと判断した場合(S21:Yes)、ステップS13で設定したワークWの寸法Rに基づき、ワークWの寸法が適正であるか否かを判断する(S24:比較工程)。即ち、制御基板501は、このステップS24において、フィンガー302,302がワークWに接触した時点T0でのモータ312の回転量(エンコーダ値P0)に基づき、フィンガー302,302に接触しているワークWの寸法を演算する。そして、制御基板501は、ステップS13で設定したワークWの寸法Rと、演算したワークWの寸法とを比較し、ステップS13で設定したワークWの寸法に対する演算したワークの寸法のずれ量が所定値以下であるか否かを判断する。
即ち、ステップS24では、ステップS13で設定したワークWの寸法と、演算したワークWの寸法とを照らし合わせて、適正な位置でワークWが把持されたか否か、適正な寸法のワークが把持されたか否かを確認する。
制御基板501は、ワークWの寸法が適正ではない、即ちステップS13で設定したワークWの寸法に対する演算したワークの寸法のずれ量が所定値を超えている場合(S24:No)、寸法ずれである旨を報知部504にて報知する(S25:第2報知工程)。
例えば、誤ったワークが置かれている、あるいは、ロボットハンド300の位置が適切でない場合には、演算されるワークの寸法がステップS13で設定したワークWの寸法に対してずれるため、把持位置ずれエラーとなる。制御基板501は、この把持位置ずれエラーを検知したことにより、操作者にエラーの報知を行う。
次に、制御基板501は、ワークWの寸法が適正であると判断した場合(S24:Yes)、以下のステップS26〜S30に示す把持力付与工程の処理を実行する。
即ち、制御基板501は、ステップS26〜S30において、フィンガー302,302がワークWに接触した時点T0からのモータ312の回転量が目標回転量に収束するように、モータドライバ502を介してモータ312を動作させる。具体的に説明すると、制御基板501は、ロータリエンコーダ313のエンコーダ値Pがエンコーダ値変化量ΔPの値に収束するように、モータドライバ502を介してモータ312の回転量を調整する。ここで、本実施形態では、ステップS17にて、モータ312の目標回転量に対する許容誤差、即ちエンコーダ値変化量ΔPに対する許容誤差σpを設定している。したがって、制御基板501は、エンコーダ313のエンコーダ値が許容誤差σpの範囲に収束するように、モータドライバ502を介してモータ312の回転量を調整する。
以下、これらの動作について詳細に説明する。制御基板501は、把持力Fが許容誤差σFに収まっているか否か、即ち、ロータリエンコーダ313のエンコーダ値Pがエンコーダ値変化量ΔPを中心に許容誤差σpの範囲に収束しているか否かを判断する(S26)。
具体的に説明すると、制御基板501は、フィンガー302,302のワークW接触時のエンコーダ値P0と、ステップS19で演算したエンコーダ値変化量ΔPとを足し合わせ、現在のエンコーダ値Pとの差を計算する。そして、制御基板501は、ステップS17にて設定したエンコーダ値変化量の許容誤差σpに収束しているか否かを判断する。すなわち、制御基板501は、以下の式(2)が成り立つか否かを判断する。
|P−(P0+ΔP)|<σp (2)
制御基板501は、式(2)が成り立たないと判断した場合(S26:No)、ステップS11及びステップS12にて設定した剛性値Kから求まる把持力Fが、上限値Fmax以下であるか否かを判断する(S27)。また、制御基板501は、ステップS11及びステップS12にて設定した剛性値Kから求まる把持力Fが、下限値Fmin以上であるか否かを判断する(S28)。
制御基板501は、これらステップS27,S28にて、計算した把持力Fが、下限値Fmin以上、上限値Fmax以下である場合には、式(2)を満たすように、モータ312の回転量を調整し(S29)、ステップS26の処理に移行する。
例えば、図7に示す過負荷曲線F01のように、フィンガー302,302の移動速度が速い場合など、把持力が過負荷となった場合は、モータ312の回転を調整して、フィンガー302,302の位置を開き方向に調整する。
逆に、図7に示す把持力不足曲線F02のように、フィンガー302,302が低速でワークWに接触した場合など、把持力が不足した場合は、モータ312の回転を調整して、フィンガー302,302を閉じ方向に調整する。この調整により、ロータリエンコーダ313のエンコーダ値Pは補正され、図7に示す適正把持力曲線F00の状態に近づく。
エンコーダ値変化量ΔPが、ステップS17で設定した許容誤差±σpに収まるまで、これらの調整を行う。即ちステップS26〜S29の処理を繰り返すことで、エンコーダ値Pがエンコーダ値変化量ΔPに収束する、つまりモータ312の回転量が目標回転量に収束することで、把持力Fが目標把持力である把持力指令値Fcに収束する。
制御基板501は、ステップS26にて把持力Fが目標把持力である把持力指令値Fcに収束した場合(S26:Yes)、把持力が適切な状態に保たれているので、収束してから所定時間Tgが経過したか否かを判断する(S30)。そして、制御基板501は、所定時間Tgが経過した時点Teで(S30:Yes)、把持動作を完了する。
制御基板501は、ステップS27において、把持力Fが上限値Fmaxを上回った場合(S27:No)には、把持力上限エラーであり、モータ312の動作を停止させる(S31)。これにより、ワークWの破損を防止することができる。
また、制御基板501は、ステップS28において、把持力Fが下限値Fminを下回った場合(S28:No)には、把持力下限エラーであり、モータ312の動作を停止させる(S32)。これにより、ワークWをロボットアーム200により搬送するなど、一定以上の把持力を維持する必要がある場合に、ワークWの脱落を防止することができる。
把持完了後は、例えば図1に示すように、ワークWをワーク組立治具Sbに移動して固定する動作などが想定される。この際、ロボットアーム200の動作により、ワークWがフィンガー302,302から滑り落ちないよう、また、ワークWが柔軟物の場合には、過大な把持力でワークWを破損させないよう、適正な把持力を保った状態で動作が行われる。ロボットアーム200により、ワークWをワーク組立治具Sbに固定後、フィンガー302を開き、全動作が完了となる。
以上、本実施形態によれば、力センサを用いることのない簡易な構成で、把持力を目標把持力である把持力指令値Fcに制御可能である。つまり、モータ312の目標回転量としてエンコーダ値変化量ΔP(アクチュエータの目標駆動量)を、摩擦係数に比して経時的な変化が小さい剛性値Kを用いて求めるので、フィンガー302,302による把持力を正確に把持力指令値Fcにすることができる。
また、本実施形態によれば、ステップS23,S25,S31,S32にて想定される様々なエラーをも検知することが可能となり、ロボットハンド300の制御の信頼性が向上する。
また、フィンガー302,302がワークWに接触する瞬間において、ロータリエンコーダ313の出力結果によりフィンガー302,302の移動速度の急激な変化を検知し、ワーク把持の瞬間を、センサを用いることなく精度よく検知することができる。
さらに、フィンガー302,302による把持力不足、あるいは過負荷の場合は、モータ312の回転を調整してフィンガー302,302の位置を調整することで、把持力を適正な値(把持力指令値Fc)となるように制御することが可能である。
また、フィンガーの動作範囲を設定したことで、把持対象であるワークWが所定の位置に存在しない場合に、ワークWなしを迅速に検知することができる。これにより、制御基板から操作者にエラー通知を出すことが可能である。
また、ワークWの形状寸法Rがメモリ503に格納されることで、フィンガー302,302がワークWに接触した際に、適切な把持位置か否かを確認することができる。これにより、把持対象ではない誤ったワークを把持した場合や、ワークWの把持位置がずれている場合に把持位置エラーを検知し、制御基板501から操作者にエラー通知を伝達することが可能である。
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
上記実施形態では、モータとしてブラシレスDCモータ等の電磁モータを用い、エンコーダを用いてモータの回転子の回転角度(回転量)を検出する場合について説明したが、エンコーダを用いずに回転子の回転角度(回転量)を推定するようにしてもよい。また、モータとしてステッピングモータを用いた場合についても、パルス数と回転角度との間には相関関係があるため、パルス数で回転角度を把握できるので、この場合もエンコーダを用いる必要はない。
また、上記実施形態では、ステップS21の判断工程で、エンコーダによる検出結果(エンコーダ値)に基づき、フィンガーがワークに接触したか否かを判断する場合について説明したが、これに限定するものではない。エンコーダを用いずに、例えばフィンガーの先端に接触センサを設けて、ワークの接触を検知してもよい。
また、上記実施形態では、ロボットハンドが2本のフィンガーを有する場合について説明したが、ロボットハンドが3本以上のフィンガーを有している場合であってもよい。
また、上記実施形態では、フィンガーに駆動力を伝達する駆動力伝達機構がラックアンドピニオン機構である場合について説明したが、これに限定するものではない。例えば円弧状のカム溝を有するカム部材の回転をカム溝に係合するピンにより直動に変換する機構やボールねじを用いた機構であってもよい。
また、上記実施形態では、フィンガーの剛性値Kfとワークの剛性値Kwとの合成の剛性値Kを用いて、モータの目標回転量としてエンコーダ値変化量ΔPを求める場合について説明したが、少なくとも一方の剛性値を用いてエンコーダ値変化量ΔPを求めてもよい。
フィンガーの剛性値Kfに対してワークの剛性値Kwが高い場合、フィンガーでワークを把持した際のワークの弾性変形量が小さく無視できる場合がある。この場合、剛性値Kをフィンガーの剛性値Kfとして、エンコーダ値変化量ΔPを求めればよい。
同様に、ワークの剛性値Kwに対してフィンガーの剛性値Kfが高い場合、フィンガーでワークを把持した際にフィンガーの弾性変形量が小さく無視できる場合がある。この場合、剛性値Kをワークの剛性値Kwとして、エンコーダ値変化量ΔPを求めればよい。
100…ロボット装置、200…ロボットアーム、300…ロボットハンド、302,302…フィンガー、312…モータ(アクチュエータ)、313…ロータリエンコーダ(エンコーダ)、314…ラックアンドピニオン機構(駆動力伝達機構)、500…ロボットハンド制御装置、501…制御基板(制御部)、502…モータドライバ(制御部)、504…報知部

Claims (10)

  1. ワークを把持する複数のフィンガーと、駆動力を発生するアクチュエータと、前記アクチュエータの駆動力を前記複数のフィンガーに伝達して、前記アクチュエータの駆動量に応じた移動量で前記複数のフィンガーを移動させる駆動力伝達機構と、を有するロボットハンドを制御するロボットハンド制御方法において、
    前記フィンガーの剛性値及びワークの剛性値のうち、少なくとも一方の剛性値を設定する剛性値設定工程と、
    前記複数のフィンガーによりワークを把持する際の目標把持力を設定する把持力設定工程と、
    前記剛性値設定工程にて設定した剛性値、及び前記目標把持力を用いて、前記複数のフィンガーがワークに接触する時点から前記複数のフィンガーによりワークを把持する把持力が前記目標把持力となる時点までの前記アクチュエータの目標駆動量を求める駆動量演算工程と、を備えたことを特徴とするロボットハンド制御方法。
  2. 前記複数のフィンガーによる把持動作を開始する把持動作開始工程と、
    前記複数のフィンガーによる把持動作中に前記複数のフィンガーがワークに接触したか否かを判断する判断工程と、
    前記判断工程にて前記複数のフィンガーがワークに接触したと判断した場合、前記複数のフィンガーがワークに接触した時点からの前記アクチュエータの駆動量が、前記目標駆動量に収束するように前記アクチュエータを動作させる把持力付与工程と、を備えたことを特徴とする請求項1に記載のロボットハンド制御方法。
  3. 前記目標駆動量に対する許容誤差を設定する許容誤差設定工程を備え、
    前記把持力付与工程では、前記アクチュエータの駆動量が前記許容誤差の範囲内に収束するように前記アクチュエータを動作させることを特徴とする請求項2に記載のロボットハンド制御方法。
  4. 前記複数のフィンガーによりワークを把持する動作中の把持力の上限値を設定する上限値設定工程を備え、
    前記把持力付与工程では、前記アクチュエータの駆動量に対して前記剛性値設定工程にて設定した剛性値から求まる把持力が、前記上限値を上回った場合には、前記アクチュエータの動作を停止させることを特徴とする請求項2又は3に記載のロボットハンド制御方法。
  5. 前記複数のフィンガーによりワークを把持する動作中の把持力の下限値を設定する下限値設定工程を備え、
    前記把持力付与工程では、前記アクチュエータの駆動量に対して前記剛性値設定工程にて設定した剛性値から求まる把持力が、前記下限値を下回った場合には、前記アクチュエータの動作を停止させることを特徴とする請求項2乃至4のいずれか1項に記載のロボットハンド制御方法。
  6. 前記ロボットハンドが、前記アクチュエータの駆動量を検出するエンコーダを有しており、
    前記判断工程では、前記エンコーダの検出結果に基づき、前記複数のフィンガーがワークに接触したか否かを判断することを特徴とする請求項2乃至5のいずれか1項に記載のロボットハンド制御方法。
  7. 前記複数のフィンガーがワークに接触すると想定される動作位置を含む前記フィンガーの動作範囲を設定する動作範囲設定工程と、
    前記判断工程にて前記複数のフィンガーがワークに接触していないと判断した場合に、前記フィンガーの動作位置が前記動作範囲内であるか否かを判断する動作判断工程と、
    前記動作判断工程にて前記フィンガーの動作位置が前記動作範囲を外れたと判断した場合に、把持するワークが無い旨を報知する第1報知工程と、を備えたことを特徴とする請求項6に記載のロボットハンド制御方法。
  8. ワークの寸法を設定する寸法設定工程と、
    前記判断工程にて前記複数のフィンガーがワークに接触したと判断した場合には、前記複数のフィンガーがワークに接触した時点での前記アクチュエータの駆動量に基づき、前記複数のフィンガーに接触しているワークの寸法を演算して、前記寸法設定工程で設定されたワークの寸法と比較する比較工程と、
    前記寸法設定工程で設定されたワークの寸法に対する前記比較工程で演算したワークの寸法のずれ量が所定値を超えている場合に、寸法ずれである旨を報知する第2報知工程と、を備えたことを特徴とする請求項2乃至7のいずれか1項に記載のロボットハンド制御方法。
  9. ワークを把持する複数のフィンガーと、駆動力を発生するアクチュエータと、前記アクチュエータの駆動力を前記複数のフィンガーに伝達して、前記アクチュエータの駆動量に応じた移動量で前記複数のフィンガーを移動させる駆動力伝達機構と、を有するロボットハンドを制御するロボットハンド制御装置において、
    前記アクチュエータの駆動量を制御する制御部を備え、
    前記制御部は、
    前記フィンガーの剛性値及びワークの剛性値のうち、少なくとも一方の剛性値を設定する処理と、
    前記複数のフィンガーによりワークを把持する際の目標把持力を設定する処理と、
    前記少なくとも一方の剛性値及び前記目標把持力を用いて、前記複数のフィンガーがワークに接触する時点から前記複数のフィンガーによりワークを把持する把持力が前記目標把持力となる時点までの前記アクチュエータの目標駆動量を求める処理と、を実行することを特徴とするロボットハンド制御装置。
  10. ロボットアームと、
    ワークを把持する複数のフィンガー、駆動力を発生するアクチュエータ、及び前記アクチュエータの駆動力を前記複数のフィンガーに伝達して、前記アクチュエータの駆動量に応じた移動量で前記複数のフィンガーを移動させる駆動力伝達機構を有し、前記ロボットアームの先端に設けられたロボットハンドと、
    請求項9に記載のロボットハンド制御装置と、を備えたことを特徴とするロボット装置。
JP2012194200A 2012-09-04 2012-09-04 ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置 Pending JP2014046449A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012194200A JP2014046449A (ja) 2012-09-04 2012-09-04 ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012194200A JP2014046449A (ja) 2012-09-04 2012-09-04 ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置

Publications (1)

Publication Number Publication Date
JP2014046449A true JP2014046449A (ja) 2014-03-17

Family

ID=50606633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012194200A Pending JP2014046449A (ja) 2012-09-04 2012-09-04 ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置

Country Status (1)

Country Link
JP (1) JP2014046449A (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015196187A (ja) * 2014-04-02 2015-11-09 ファナック株式会社 溶接検査ロボットシステム
JP2015214003A (ja) * 2014-05-13 2015-12-03 キヤノン株式会社 ロボットハンド及びロボット装置
JP2016140956A (ja) * 2015-02-03 2016-08-08 キヤノン株式会社 ロボットハンド制御方法及びロボット装置
JP2016198861A (ja) * 2015-04-10 2016-12-01 キヤノン株式会社 ロボットハンド装置の制御方法及びロボットハンド装置
JP2017132004A (ja) * 2016-01-14 2017-08-03 上銀科技股▲分▼有限公司 逆起電力をモニターの根拠とする挟み装置とその制御方法
JP2018075681A (ja) * 2016-11-10 2018-05-17 キヤノン株式会社 把持装置の制御方法、把持装置、ロボット装置、および部品の製造方法
JPWO2017037792A1 (ja) * 2015-08-28 2018-05-24 三菱電機株式会社 筒状部材の加工方法および加工装置
CN108068109A (zh) * 2016-11-10 2018-05-25 佳能株式会社 控制保持装置的方法、保持装置和机器人装置
CN108136581A (zh) * 2015-10-05 2018-06-08 马丁·齐默尔 具有集成的控制装置的夹持装置
US10399224B2 (en) 2016-02-17 2019-09-03 Hiwin Technologies Corp. Gripping system which is monitored based on counter electromotive force and a method for controlling the gripping system
US20200114507A1 (en) * 2018-10-12 2020-04-16 Canon Kabushiki Kaisha Method of controlling robot body, method of manufacturing product, robot apparatus, and recording medium
US12103179B2 (en) * 2018-10-12 2024-10-01 Canon Kabushiki Kaisha Method of controlling robot body, method of manufacturing product, robot apparatus, and recording medium

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9933345B2 (en) 2014-04-02 2018-04-03 Fanuc Corporation Welding inspection robot system
JP2015196187A (ja) * 2014-04-02 2015-11-09 ファナック株式会社 溶接検査ロボットシステム
JP2015214003A (ja) * 2014-05-13 2015-12-03 キヤノン株式会社 ロボットハンド及びロボット装置
JP2016140956A (ja) * 2015-02-03 2016-08-08 キヤノン株式会社 ロボットハンド制御方法及びロボット装置
JP2016198861A (ja) * 2015-04-10 2016-12-01 キヤノン株式会社 ロボットハンド装置の制御方法及びロボットハンド装置
JPWO2017037792A1 (ja) * 2015-08-28 2018-05-24 三菱電機株式会社 筒状部材の加工方法および加工装置
JP2019500223A (ja) * 2015-10-05 2019-01-10 マルティン ツィマーMartin Zimmer 統合された制御器を備えた把持装置
CN108136581A (zh) * 2015-10-05 2018-06-08 马丁·齐默尔 具有集成的控制装置的夹持装置
JP2017132004A (ja) * 2016-01-14 2017-08-03 上銀科技股▲分▼有限公司 逆起電力をモニターの根拠とする挟み装置とその制御方法
US10399224B2 (en) 2016-02-17 2019-09-03 Hiwin Technologies Corp. Gripping system which is monitored based on counter electromotive force and a method for controlling the gripping system
CN108068109A (zh) * 2016-11-10 2018-05-25 佳能株式会社 控制保持装置的方法、保持装置和机器人装置
JP2018075681A (ja) * 2016-11-10 2018-05-17 キヤノン株式会社 把持装置の制御方法、把持装置、ロボット装置、および部品の製造方法
US20200114507A1 (en) * 2018-10-12 2020-04-16 Canon Kabushiki Kaisha Method of controlling robot body, method of manufacturing product, robot apparatus, and recording medium
JP2020059105A (ja) * 2018-10-12 2020-04-16 キヤノン株式会社 ロボット制御方法、物品の製造方法、ロボット装置、プログラム、及び記録媒体
JP7199903B2 (ja) 2018-10-12 2023-01-06 キヤノン株式会社 制御方法、物品の製造方法、ロボットシステム、プログラム、及び記録媒体
US12103179B2 (en) * 2018-10-12 2024-10-01 Canon Kabushiki Kaisha Method of controlling robot body, method of manufacturing product, robot apparatus, and recording medium

Similar Documents

Publication Publication Date Title
JP2014046449A (ja) ロボットハンド制御方法、ロボットハンド制御装置及びロボット装置
JP4202365B2 (ja) 力制御装置
EP3053711B1 (en) Robot hand controlling method and robotics device
JP5927259B2 (ja) 力制御を実行するロボットシステム
US9718187B2 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
US11148282B2 (en) Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device
JP6584102B2 (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体、及び物品の製造方法
KR20130057455A (ko) 모터 제어 장치 및 모터 제어 방법, 제어 시스템 및 이 제어 시스템에 이용하는 위치 추정 방법
SE536708C2 (sv) Metod och system för bestämning av minst en egenskap hos enmanipulator
JP5114805B2 (ja) ロボット及びその教示方法
JP2009255191A (ja) ロボットマニピュレータ
US11192255B2 (en) Robot hand, control method of robot hand, and robot apparatus
WO2010004635A1 (ja) ロボット及びその教示方法
US11141855B2 (en) Robot system, method of controlling robot arm, recording medium, and method of manufacturing an article
JP6271903B2 (ja) サーボ装置、及びサーボ装置の制御方法
KR20220145387A (ko) 로봇 장치
JP2017056525A (ja) ロボット装置、ロボット制御方法、プログラム、記録媒体及び組立部品の製造方法
US11389969B2 (en) Automatic machine and control device
JP5787579B2 (ja) 把持装置
JP2016179521A (ja) 電動グリッパシステムおよびその制御方法
JP2016198861A (ja) ロボットハンド装置の制御方法及びロボットハンド装置
JP5203010B2 (ja) 部品把持装置とその方法
US20120150348A1 (en) Method for estimating connection orders of modules of modular robot
JP2019018327A (ja) 原点合わせ方法、ロボットシステム
JP2019214105A (ja) ロボット制御装置およびロボット制御方法