(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】ロボット、把持力制御装置、把持力制御方法、及び把持力制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20241008BHJP
【FI】
B25J13/08 Z
(21)【出願番号】P 2020203481
(22)【出願日】2020-12-08
【審査請求日】2023-10-10
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】中島 千智
(72)【発明者】
【氏名】鍋藤 実里
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2014-024134(JP,A)
【文献】特開2016-144861(JP,A)
【文献】特開2011-131341(JP,A)
【文献】特開2014-108466(JP,A)
【文献】特開2016-022557(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうち少なくとも1つの指である触覚指に設けられた触覚センサとを備えたグリッパと、
前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出する駆動力算出部と、
前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出する押圧力算出部と、
前記駆動指又は前記触覚指が前記対象物に加える把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する制御部と、
を備え
、
ある値の電流指令値を与えて前記モータを駆動した場合において、前記駆動指が前記対象物に加える力として設計上想定される力を指令駆動力とし、検出された前記駆動電流値に基づいて算出された前記駆動力と前記指令駆動力との差の大きさを第1誤差とし、算出された前記押圧力に対応する反力と前記指令駆動力との差の大きさを第2誤差としたときに、
前記制御部は、前記把持力を制御するために、前記指令駆動力が前記把持力設定値になるようにした場合の前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力を用いると決定する、
ロボット。
【請求項2】
対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置であって、
前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出する駆動力算出部と、
前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出する押圧力算出部と、
前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する制御部と、
を備え
、
ある値の電流指令値を与えて前記モータを駆動した場合において、前記駆動指が前記対象物に加える力として設計上想定される力を指令駆動力とし、検出された前記駆動電流値に基づいて算出された前記駆動力と前記指令駆動力との差の大きさを第1誤差とし、算出された前記押圧力に対応する反力と前記指令駆動力との差の大きさを第2誤差としたときに、
前記制御部は、前記把持力を制御するために、前記指令駆動力が前記把持力設定値になるようにした場合の前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力を用いると決定する、
把持力制御装置。
【請求項3】
前記第1誤差と前記第2誤差との大小関係が入れ替わる前記指令駆動力を切り替え値としたときに、
前記制御部は、前記把持力設定値が前記切り替え値より大きいか小さいかにより特定される前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力の値を用いて前記把持力を制御する
請求項
2記載の把持力制御装置。
【請求項4】
前記制御部は、前記駆動指の位置を制御することにより、前記複数の指が前記対象物を把持する直前の位置まで前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御する
請求項2
又は3に記載の把持力制御装置。
【請求項5】
前記制御部は、段階的に設定された一連の目標位置を順次通過するように前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御する
請求項
4記載の把持力制御装置。
【請求項6】
前記制御部は、前記駆動指の速度を制御することにより、前記駆動指が前記対象物に接触したことを検知するまで前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御する
請求項2
又は3に記載の把持力制御装置。
【請求項7】
前記制御部は、前記駆動指の位置を制御することにより、前記複数の指が前記対象物を把持する直前の予備動作目標位置まで前記駆動指を移動させ、その後、前記駆動指が目標範囲内に移動するか、又は、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで、前記駆動指が移動するように制御する
請求項2
又は3に記載の把持力制御装置。
【請求項8】
前記制御部は、前記複数の指が開いた状態と閉じた状態との間で前記駆動指を駆動させて、前記グリッパの位置、前記駆動力、及び前記押圧力を時系列で取得し、前記駆動力と前記押圧力との間の差異が許容範囲外の場合に報知する
請求項2~
7の何れか1項に記載の把持力制御装置。
【請求項9】
前記制御部は、前記複数の指が開いた状態と閉じた状態との間で前記駆動指を駆動させて前記押圧力を時系列で取得し、取得した前記押圧力と過去に取得した前記押圧力との間の差異が許容範囲外の場合に報知する
請求項2~
7の何れか1項に記載の把持力制御装置。
【請求項10】
前記グリッパは、把持力範囲の仕様が規定されたグリッパ製品を含み、前記グリッパ製品は、前記複数の指と、前記モータと、前記駆動電流検出部とを備え、
前記制御部は、前記グリッパ製品の前記仕様上の把持力範囲の下限値を取得し、前記複数の指が閉じている状態で前記グリッパ製品の前記仕様上の把持力範囲の下限値未満で前記駆動指を駆動させているときに、前記複数の指が閉じていることによって生じるはずの前記触覚センサの検出値が取得できない場合に報知する
請求項2~
7の何れか1項に記載の把持力制御装置。
【請求項11】
前記グリッパは、把持力範囲の仕様が規定されたグリッパ製品を含み、前記グリッパ製品は、前記複数の指と、前記モータと、前記駆動電流検出部とを備え、
前記触覚センサについては、検出可能な最小検出値の仕様が規定されており、
前記制御部は、前記グリッパ製品の前記仕様上の把持力範囲の下限値及び前記触覚センサの前記仕様上の最小検出値を取得し、前記最小検出値に対応する前記押圧力が、前記グリッパ製品の前記仕様上の把持力範囲の下限値以上の場合に報知する
請求項2~
7の何れか1項に記載の把持力制御装置。
【請求項12】
対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置における把持力制御方法であって、
前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出し、
前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出し、
前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御
し、
前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定することは、ある値の電流指令値を与えて前記モータを駆動した場合において、前記駆動指が前記対象物に加える力として設計上想定される力を指令駆動力とし、検出された前記駆動電流値に基づいて算出された前記駆動力と前記指令駆動力との差の大きさを第1誤差とし、算出された前記押圧力に対応する反力と前記指令駆動力との差の大きさを第2誤差としたときに、
前記把持力を制御するために、前記指令駆動力が前記把持力設定値になるようにした場合の前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力を用いると決定することを含む、
把持力制御方法。
【請求項13】
対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置における把持力制御プログラムであって、
前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出し、
前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出し、
前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御
し、
前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定することは、ある値の電流指令値を与えて前記モータを駆動した場合において、前記駆動指が前記対象物に加える力として設計上想定される力を指令駆動力とし、検出された前記駆動電流値に基づいて算出された前記駆動力と前記指令駆動力との差の大きさを第1誤差とし、算出された前記押圧力に対応する反力と前記指令駆動力との差の大きさを第2誤差としたときに、
前記把持力を制御するために、前記指令駆動力が前記把持力設定値になるようにした場合の前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力を用いると決定することを含む、
処理をコンピュータに実行させる把持力制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット、把持力制御装置、把持力制御方法、及び把持力制御プログラムに関する。
【背景技術】
【0002】
ロボットの手先につける電動グリッパを用いて制御する場合、操作対象を操作するために適切な把持力を設定し制御する必要がある。
【0003】
例えば特許文献1には、物体を把持する爪を駆動するモータへ供給される供給電流に基づいてロボットハンドの把持力を制御するロボット制御装置が開示されている。
【0004】
また、特許文献2には、ロボットハンドのマニピュレーター部のワークWを把持する側に設けられた圧力センサモジュールにより検出された圧力に基づいてロボットハンドの把持力を制御する装置が開示されている。
【0005】
把持力を設定できる電動グリッパのうち、設定可能な把持力は、実質的には全域ではなく定格の30~40%以上であり、弱い力で電動グリッパを制御するのは難しい。このため、複数の工程内で必要な把持力の範囲が異なる場合には、異なるグリッパを使用する必要があった。
【0006】
弱い把持力を制御できないのは、グリッパの把持力変化を素早く捉えるために必要な検出精度及び制御性が得られないためである。具体的には、現在の把持力を算出するためには、グリッパに内蔵されるモータの電流を検出してトルクを求める必要があるが、電流検出のためのADC(Analog Digital Converter)の分解能が低いことにより、必要な検出精度が得られないためである。また、グリッパの把持力の急峻な変化を抑えるためには、いち早く把持力の変化を捉え、出力値を調節するためにフィードバック制御の制御周期を短くする必要があるが、制御周期を短くするのが困難なためである。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2019-98406号公報
【文献】特開2019-200189号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本開示は、上記の点に鑑みてなされたものであり、グリッパの把持力が小さい領域でも把持力を的確に制御することができるロボット、把持力制御装置、把持力制御方法、及び把持力制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
開示の第1態様は、ロボットであって、対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうち少なくとも1つの指である触覚指に設けられた触覚センサとを備えたグリッパと、前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出する駆動力算出部と、前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出する押圧力算出部と、前記駆動指又は前記触覚指が前記対象物に加える把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する制御部と、を備える。
【0010】
開示の第2態様は、対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置であって、前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出する駆動力算出部と、前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出する押圧力算出部と、前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する制御部と、を備える。
【0011】
上記第2態様において、ある値の電流指令値を与えて前記モータを駆動した場合において、前記駆動指が前記対象物に加える力として設計上想定される力を指令駆動力とし、検出された前記駆動電流値に基づいて算出された前記駆動力と前記指令駆動力との差の大きさを第1誤差とし、算出された前記押圧力に対応する反力と前記指令駆動力との差の大きさを第2誤差としたときに、前記制御部は、前記把持力を制御するために、前記指令駆動力が前記把持力設定値になるようにした場合の前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力を用いると決定するようにしてもよい。
【0012】
上記第2態様において、前記第1誤差と前記第2誤差との大小関係が入れ替わる前記指令駆動力を切り替え値としたときに、前記制御部は、前記把持力設定値が前記切り替え値より大きいか小さいかにより特定される前記第1誤差及び前記第2誤差のうち小さい方の誤差に対応する前記駆動力又は前記押圧力の値を用いて前記把持力を制御するようにしてもよい。
【0013】
上記第2態様において、前記制御部は、前記駆動指の位置を制御することにより、前記複数の指が前記対象物を把持する直前の位置まで前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御するようにしてもよい。
【0014】
上記第2態様において、前記制御部は、段階的に設定された一連の目標位置を順次通過するように前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御するようにしてもよい。
【0015】
上記第2態様において、前記制御部は、前記駆動指の速度を制御することにより、前記駆動指が前記対象物に接触したことを検知するまで前記駆動指を移動させ、その後、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで前記駆動指が移動するように制御するようにしてもよい。
【0016】
上記第2態様において、前記制御部は、前記駆動指の位置を制御することにより、前記複数の指が前記対象物を把持する直前の予備動作目標位置まで前記駆動指を移動させ、その後、前記駆動指が目標範囲内に移動するか、又は、前記把持力の制御に用いている前記駆動力又は前記押圧力の大きさが前記把持力設定値になるまで、前記駆動指が移動するように制御するようにしてもよい。
【0017】
上記第2態様において、前記制御部は、前記複数の指が開いた状態と閉じた状態との間で前記駆動指を駆動させて、前記グリッパの位置、前記駆動力、及び前記押圧力を時系列で取得し、前記駆動力と前記押圧力との間の差異が許容範囲外の場合に報知するようにしてもよい。
【0018】
上記第2態様において、前記制御部は、前記複数の指が開いた状態と閉じた状態との間で前記駆動指を駆動させて前記押圧力を時系列で取得し、取得した前記押圧力と過去に取得した前記押圧力との間の差異が許容範囲外の場合に報知するようにしてもよい。
【0019】
上記第2態様において、前記グリッパは、把持力範囲の仕様が規定されたグリッパ製品を含み、前記グリッパ製品は、前記複数の指と、前記モータと、前記駆動電流検出部とを備え、前記制御部は、前記グリッパ製品の前記仕様上の把持力範囲の下限値を取得し、前記複数の指が閉じている状態で前記グリッパ製品の前記仕様上の把持力範囲の下限値未満で前記駆動指を駆動させているときに、前記複数の指が閉じていることによって生じるはずの前記触覚センサの検出値が取得できない場合に報知するようにしてもよい。
【0020】
上記第2態様において、前記グリッパは、把持力範囲の仕様が規定されたグリッパ製品を含み、前記グリッパ製品は、前記複数の指と、前記モータと、前記駆動電流検出部とを備え、前記触覚センサについては、検出可能な最小検出値の仕様が規定されており、前記制御部は、前記グリッパ製品の前記仕様上の把持力範囲の下限値及び前記触覚センサの前記仕様上の最小検出値を取得し、前記最小検出値に対応する前記押圧力が、前記グリッパ製品の前記仕様上の把持力範囲の下限値以上の場合に報知するようにしてもよい。
【0021】
開示の第3態様は、対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置における把持力制御方法であって、前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出し、前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出し、前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する。
【0022】
開示の第4態様は、対象物を把持する複数の指と、前記複数の指のうち少なくとも1つの指を駆動指として駆動するモータと、前記モータの駆動電流を検出する駆動電流検出部と、前記複数の指のうちの少なくとも1つの指である触覚指に設けられた触覚センサとを備えたロボットのグリッパに接続され、前記駆動指又は前記触覚指が前記対象物に加える把持力を制御する把持力制御装置における把持力制御プログラムであって、前記駆動電流検出部によって検出された前記モータの駆動電流値に基づいて、前記駆動指が前記対象物に加えている駆動力を算出し、前記触覚センサの検出値に基づいて、前記触覚センサが前記対象物から受けている押圧力を算出し、前記把持力の設定値である把持力設定値に基づいて前記駆動力及び前記押圧力のうち何れを用いるかを決定し、用いることが決定された前記駆動力又は前記押圧力の値を用いて前記把持力を制御する処理をコンピュータに実行させる。
【発明の効果】
【0023】
本開示によれば、グリッパの把持力が小さい領域でも把持力を的確に制御することができる。
【図面の簡単な説明】
【0024】
【
図3】ワークの把持の他の例について説明するための図である。
【
図4】把持力制御装置のハードウェア構成を示すブロック図である。
【
図5】第1実施形態に係る把持力制御処理のメインルーチンの流れを示すフローチャートである。
【
図6】切り替え値算出処理の流れを示すフローチャートである。
【
図7】把持力制御処理の流れを示すフローチャートである。
【
図8】第1実施形態に係る把持動作について説明するための図である。
【
図9】第2実施形態に係る把持動作について説明するための図である。
【
図10】第3実施形態に係る把持動作について説明するための図である。
【
図11】第4実施形態に係る把持動作について説明するための図である。
【
図12】第5実施形態に係る把持力制御処理のメインルーチンの流れを示すフローチャートである。
【
図13】触覚センサの異常判定処理について説明するための図である。
【発明を実施するための形態】
【0025】
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0026】
<第1実施形態>
【0027】
図1は、第1実施形態に係るロボットシステム10の構成図である。
図1に示すように、ロボットシステム10は、ロボット20、及び把持力制御装置30を備える。ロボットシステム10は、本実施形態では、ワークWをピッキングするピッキング装置として機能する。
【0028】
ロボット20は、ピッキング動作を行う際の運動制御の対象である機構部分としてのロボットアームARと、ロボットアームARの先端に取り付けられたグリッパGRと、を含む。
【0029】
グリッパGRは、対象物の一例としてのワークWを把持する2つの指F1、F2を備える。なお、本実施形態では指の数が2つの場合について説明するが、指の数は2つに限られるものではなく、3つ以上の指を備えてもよい。また、指F1、F2は、本実施形態では一例として板状の部材で構成されるが、指F1、F2の形状はこれに限られるものではない。
【0030】
また、グリッパGRは、指F1、F2のうち少なくとも1つの指を駆動指として駆動するモータMを備える。モータMは、リニアガイドLGと接続されている。リニアガイドLGは、モータMの回転運動を直線運動に変換する変換機構を含む。
【0031】
指F1、F2は、リニアガイドLGに取り付けられている。リニアガイドLGは、モータMによって駆動され、モータMのZ軸を回転軸とした回転運動をX軸方向の直線運動に変換する。
【0032】
具体的には、例えばモータMが正転した場合は、リニアガイドLGは、指F1、F2を閉じる方向、すなわちワークWを把持する方向に駆動する。一方、モータMが逆転した場合は、リニアガイドLGは、指F1、F2を開く方向、すなわちワークWを放す方向に駆動する。なお、本実施形態では、モータMが回転すると、指F1、F2が同時に駆動される構成の場合について説明するが、指F1、F2のうち何れかの指のみが駆動される構成としてもよい。すなわち、本実施形態では、駆動指が指F1、F2の両方の場合について説明するが、駆動指が指F1、F2の一方のみでもよい。
【0033】
また、グリッパGRは、モータMの駆動電流を検出する駆動電流検出部40、モータMを駆動するモータ駆動部42、及びモータMの速度を検出する速度検出部44を備える(
図2参照)。速度検出部44は、モータMに設けられた図示しないエンコーダの出力値に基づいて、指F1、F2の位置、速度、及び加速度を検出して把持力制御装置30に出力する。
【0034】
なお、グリッパGRには、本実施形態では、把持力範囲の仕様が規定されたグリッパ製品を用いる。このグリッパ製品は、指F1、F2と、モータMと、駆動電流検出部と、を含む。把持力を設定できるグリッパにおいて設定可能な把持力は、実質的には定格の全域ではなく定格の30~40%以上が把持力範囲の仕様となる。従って、例えば定格が100Nのグリッパ製品の場合、把持力範囲の仕様は例えば下限値が40N、上限値が100Nとなる。
【0035】
また、指F1、F2の把持面には、触覚センサS1、S2が各々設けられている。触覚センサS1、S2は、指F1、F2がワークWを把持したときに触覚センサS1、S2がワークWから受ける押圧力を検出する。触覚センサS1、S2は、グリッパ製品に含まれていてもよいし、グリッパ製品には含まれておらず後付けでもよい。
【0036】
なお、本実施形態では、触覚センサS1、S2が同一仕様の触覚センサである場合について説明する。また、本実施形態では、指F1、F2の両方に触覚センサが設けられた構成、すなわち指F1、F2の両方が触覚指である場合について説明するが、指F1、F2の何れか一方にのみ触覚センサが設けられた構成としてもよい。また、触覚センサS1、S2は、検出可能な押圧力の最小検出値の仕様が規定されている。触覚センサS1、S2は、検出可能な押圧力の最小検出値が、グリッパ製品の把持力範囲の下限値よりも小さく、且つ、検出可能な押圧力の最大検出値が、グリッパ製品の把持力範囲の下限値以上のものを用いる。例えばグリッパ製品の把持力範囲の下限値が40Nの場合、触覚センサS1、S2としては、検出可能な押圧力の範囲が例えば1N~100Nのものを用いる。
【0037】
ここで、押圧力とは、把持力の反力であり、把持力と向きが反対で大きさは同じである。また、把持力とは、駆動指又は触覚指がワークWに加える力である。なお、本実施形態では、ワークWを把持せずに指F1、F2同士が直接接触して互いに相手の指に力を加えている場合に相手の指に加える力も把持力と称する。また、把持力は指F1、F2毎に発生するが、重力の影響を考えない場合は、指F1、F2の把持力は互いに反対向きで同じ大きさとなる。
【0038】
また、
図1では、触覚センサS1、S2が、指F1、F2が対向する側の面に設けられた構成を示したが、これに限られない。例えば
図3に示すように、触覚センサS1、S2が、指F1、F2が対向する側と反対側の面に設けられた構成としてもよい。この場合、
図3に示すように、リング状のワークWの穴に指F1、F2を挿入してから指F1、F2が開くように駆動することにより、リング状のワークWを把持した場合でも、触覚センサS1、S2の検出値に基づいて押圧力を検出することができる。
【0039】
ロボット20は、一例として自由度が6の垂直多関節ロボット、水平多関節ロボット等が用いられるが、ロボットの自由度及び種類はこれらに限られるものではない。
【0040】
把持力制御装置30は、ロボット20を制御する。
図2に示すように、把持力制御装置30は、機能的には、駆動力算出部32、押圧力算出部34、及び制御部36を含む。
【0041】
駆動力算出部32は、駆動電流検出部40によって検出されたモータMの駆動電流値に基づいて、駆動指である指F1、F2がワークWに加えている駆動力Piを算出する。駆動力Piは、例えば次式により算出することができる。
【0042】
Pi=Ec×Tr×K ・・・(1)
【0043】
ここで、Trはトルク定数、Kは変換係数であり、それぞれ予め定めた値に設定される。
【0044】
押圧力算出部34は、触覚指である指F1、F2に設けられた触覚センサS1、S2の検出値にそれぞれ予め定めた変換係数を乗算することにより、触覚センサS1、S2がワークWから受けている押圧力P1、P2を算出する。また、調整押圧力Psは、次式により算出することができる。
【0045】
Ps=(P1+P2)/2 ・・・(2)
【0046】
なお、本実施形態においては、調整押圧力Psを制御に用いるが、例えば指F1に触覚センサS1が設けられているが指F2には触覚センサS2が設けられていない場合には、押圧力P1を制御に用いればよい。本実施形態においては、調整押圧力Psを単に押圧力Psとも称する。触覚センサS1が複数の圧力センサで構成されている場合は、各圧力センサで検出された検出値の合計値に変換係数を乗算した値を押圧力P1とする。触覚センサS2についても同様である。
【0047】
また、指F1、F2によるワークWの把持が完了するまでに、指F1、F2のうち一方の指がワークWに接触する場合がある。ワークWに先に接触した指に設けられた触覚センサには、ワークWの把持が完了するまでの間に一時的に大きな押圧力がかかるが、この一時的に大きな押圧力に基づいて把持力制御を行うべきではない。また、小さい力で繊細にワークWを把持させたい場合に、一時的に大きな押圧力に基づいて把持力制御を行うと、把持力の制限がかからずにワークWを壊してしまう虞がある。
【0048】
そこで、触覚センサS1、S2の押圧力P1、P2のうち小さい方の値を押圧力Psとし、押圧力P1、P2が同じ値の場合は、その値を押圧力Psとしてもよい。
【0049】
制御部36は、駆動指又は触覚指がワークWに加える把持力の設定値である把持力設定値に基づいて駆動力及び押圧力のうち何れを用いるかを決定し、用いることが決定された駆動力又は押圧力の値を用いて把持力を制御する。
【0050】
具体的には、制御部36は、ある値の電流指令値によりモータMを駆動した場合において、駆動指がワークWに加える力として設計上想定される力を指令駆動力とし、駆動電流検出部40で検出された駆動電流値に基づいて駆動力算出部32により算出された駆動力と指令駆動力との差の大きさを第1誤差とし、押圧力算出部34により算出された押圧力に対応する反力と指令駆動力との差の大きさを第2誤差としたときに、把持力を制御するために、指令駆動力が把持力設定値になるようにした場合の第1誤差及び前記第2誤差のうち小さい方の誤差に対応する駆動力又は押圧力を用いると決定する。
【0051】
より具体的には、制御部36は、第1誤差と第2誤差との大小関係が入れ替わる指令駆動力を切り替え値としたときに、把持力設定値が切り替え値より大きいか小さいかにより特定される第1誤差及び第2誤差のうち小さい方の誤差に対応する駆動力又は押圧力の値を用いて把持力を制御する。
【0052】
また、制御部36は、指F1、F2の位置を制御することにより、指F1、F2がワークWを把持する直前の位置まで指F1、F2を移動させ、その後、把持力の制御に用いている駆動力又は押圧力の大きさが把持力設定値になるまで指F1、F2が移動するように制御する。
【0053】
次に、把持力制御装置30のハードウェア構成を示すブロック図である。
【0054】
図4に示すように、把持力制御装置30は、CPU(Central Processing Unit)30A、ROM(Read Only Memory)30B、RAM(Random Access Memory)30C、ストレージ30D、入力部30E、モニタ30F、光ディスク駆動装置30G及び通信インタフェース30Hを有する。各構成は、バス30Iを介して相互に通信可能に接続されている。
【0055】
本実施形態では、ストレージ30Dには、把持力制御プログラムが格納されている。CPU30Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU30Aは、ストレージ30Dからプログラムを読み出し、RAM30Cを作業領域としてプログラムを実行する。CPU30Aは、ストレージ30Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0056】
ROM30Bは、各種プログラム及び各種データを格納する。RAM30Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ30Dは、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0057】
入力部30Eは、キーボード30E1、及びマウス30E2等のポインティングデバイスを含み、各種の入力を行うために使用される。モニタ30Fは、例えば、液晶ディスプレイであり、ワークWの把持状態等の各種の情報を表示する。モニタ30Fは、タッチパネル方式を採用して、入力部30Eとして機能してもよい。光ディスク駆動装置30Gは、各種の記録媒体(CD-ROM又はブルーレイディスクなど)に記憶されたデータの読み込みや、記録媒体に対するデータの書き込み等を行う。
【0058】
通信インタフェース30Hは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0059】
図2に示した把持力制御装置30の各機能構成は、CPU30Aがストレージ30Dに記憶された把持力制御プログラムを読み出し、RAM30Cに展開して実行することにより実現される。
【0060】
次に、把持力制御装置30の作用について説明する。
【0061】
図5は、把持力制御装置30による把持力制御処理の流れを示すフローチャートである。ユーザーが入力部30Eを操作して把持力制御処理の実行を指示すると、CPU30Aがストレージ30Dから把持力制御プログラムを読み出して、RAM30Cに展開し実行することにより、把持力制御処理が実行される。
【0062】
ステップS100では、CPU30Aが、制御部36として、切り替え値を算出済みか否かについて判定する。そして、切り替え値を算出済みでない場合はステップS102へ移行し、切り替え値を算出済みの場合はステップS104へ移行する。
【0063】
ステップS102では、CPU30Aが、制御部36として、
図6に示す切り替え値算出処理を実行する。切り替え値は、グリッパGR及び触覚センサS1、S2の特性に応じて決定されるため、切り替え値算出の対象としたグリッパGR及び触覚センサS1、S2を使う限り、別種のワークWを把持するなどの別のタスクを行わせるために把持力設定値を変更してステップS104以降を実行し直す場合にも同じ値を継続して使用することができる。
【0064】
ステップS104では、CPU30Aが、制御部36として、把持力設定値を設定する。把持力設定値は、ワークWの種類に応じて設定される。例えばワークWの種類と把持力設定値との対応関係を表すテーブルデータを予めストレージ30Dに記憶しておき、ワークWの種類を指定するとテーブルデータを参照して把持力設定値を自動で設定するようにしてもよいし、オペレータが把持力設定値を直接指定してもよい。
【0065】
ステップS106では、CPU30Aが、制御部36として、ステップS104で設定された把持力設定値及び切り替え値に基づいて、駆動力Pi及び押圧力Psの何れを把持力制御に用いるかを決定する。具体的には、把持力設定値が切り替え値以上の場合は駆動力Piを用いることに決定し、把持力設定値が切り替え値未満の場合は押圧力Psを用いることに決定する。このように決定すると、制御部36は、把持力を制御するために、指令駆動力が把持力設定値になるようにした場合の第1誤差及び第2誤差のうち小さい方の誤差に対応する駆動力Pi又は押圧力Psを用いることになる。
【0066】
ステップS108では、CPU30Aが、制御部36として、
図7に示す把持力制御を実行する。
【0067】
ステップS110では、CPU30Aが、制御部36として、全てのワークWをピッキングしたか否かを判定する。そして、全てのワークWをピッキングした場合はステップS112へ移行する。一方、全てのワークWをピッキングしていない場合はステップS108へ移行し、把持力制御を繰り返す。
【0068】
ステップS112では、CPU30Aが、制御部36として、ワークWを変更して続行するか否かを判定する。そして、例えばオペレータがワークWを変更して続行することを指示した場合は、ステップS104へ移行し、オペレータがワークWを変更せず終了すると指示した場合は本ルーチンを終了する。
【0069】
以下、
図6を参照して切り替え値算出処理について説明する。
【0070】
ステップS200では、CPU30Aが、制御部36として、グリッパGRが予め定めた初期状態となるようにモータ駆動部42を制御する。具体的には、制御部36は、指F1、F2が非接触の状態から触覚センサS1、S2の検出値が上昇し始めるまで指F1、F2が閉じて接触状態となるようにモータ駆動部42を制御する。その後、触覚センサS1、S2の検出値がゼロとみなせる値になるまで、すなわち指F1、F2が非接触状態とみなせる状態になるまで指F1、F2が開くようにモータ駆動部42を制御する。
【0071】
ステップS202では、CPU30Aが、制御部36として、グリッパGRの把持力初期値Startを、グリッパGRの仕様上の把持力範囲の下限値g_minに設定する。
【0072】
ステップS204では、CPU30Aが、制御部36として、グリッパGRの把持力最大値Endを、グリッパGRの仕様上の把持力範囲の上限値g_max及び触覚センサS1、S2の仕様上の検出範囲の上限値s_maxのうち小さい方の値に設定する。
【0073】
ステップS206では、CPU30Aが、制御部36として、指令駆動力iをステップS202で設定した把持力初期値Startに設定する。指令駆動力iは、ある値の電流指令値によりモータMを駆動した場合において、駆動指がワークWに加える力として設計上想定される力である。
【0074】
ステップS208では、CPU30Aが、制御部36として、グリッパGRの電流指令値(出力トルク)を指令駆動力iに対応する値に設定する。すなわち、設定された電流指令値をモータ駆動部42に出力する。これにより、モータ駆動部42は、指令駆動力iに対応した電流指令値でモータMを駆動する。
【0075】
ステップS210では、CPU30Aが、駆動力算出部32として、グリッパGRの駆動力Piを算出する。具体的には、駆動電流検出部40からモータMの駆動電流の駆動電流値Ecを取得する。そして、上記(1)式によりグリッパGRの駆動力Piを算出する。
【0076】
ステップS212では、CPU30Aが、制御部36として、ステップS210で算出された駆動力Piと指令駆動力iとの差の大きさである第1誤差Egを次式により算出する。
【0077】
Eg=|i-Pi| ・・・(3)
【0078】
ステップS214では、CPU30Aが、押圧力算出部34として、触覚センサS1、S2の検出値に基づいて、触覚センサS1(S2)及び触覚センサS2(S1)が互いに相手から受けている押圧力Psを上記(2)式により算出する。
【0079】
ステップS216では、CPU30Aが、制御部36として、ステップS214で算出された押圧力Psに対応する反力と指令駆動力iとの差の大きさである第2誤差Esを次式により算出する。
【0080】
Es=|i-Ps| ・・・(4)
【0081】
ステップS218では、CPU30Aが、制御部36として、ステップS212で算出した第1誤差Egが、ステップS216で算出した第2誤差Esより大きいか否かを判定する。そして、第1誤差Egが第2誤差Esより大きい場合はステップS220へ移行し、第1誤差Egが第2誤差Es以下の場合はステップS222へ移行する。本実施形態では、指令駆動力iをグリッパGRの仕様上の把持力範囲の下限値g_minから始めて次第に大きくしていくので、最初のうちは第1誤差Egが第2誤差Esより大きくなることを想定している。
【0082】
ステップS220では、CPU30Aが、制御部36として、指令駆動力iを次式により更新する。
【0083】
i=i+α ・・・(5)
【0084】
ここで、αは、グリッパGRの駆動力の設定分解能である。
【0085】
ステップS224では、CPU30Aが、制御部36として、指令駆動力iがグリッパGRの把持力最大値Endより大きいか否かを判定する。そして、指令駆動力iがグリッパGRの把持力最大値Endより大きい場合は本ルーチンを終了する。一方、指令駆動力iがグリッパGRの把持力最大値End以下の場合はステップS208へ移行し、指令駆動力iがグリッパGRの把持力最大値Endより大きくなるまでステップS208~S224の処理を繰り返す。
【0086】
一方、ステップS222では、CPU30Aが、制御部36として、切り替え値を現在の指令駆動力iに設定する。その後本ルーチンを終了する。
【0087】
このように、第1誤差Egが第2誤差Esよりも大きい間は、指令駆動力iを徐々に大きくし、第1誤差Egが第2誤差Es以下となった場合、その時点の指令駆動力iを切り替え値とする。すなわち、第1誤差Egと第2誤差Esとの大小関係が入れ替わる指令駆動力iを切り替え値とする。
【0088】
次に、
図7を参照して把持力制御処理について説明する。
【0089】
ステップS300では、CPU30Aが、制御部36として、グリッパGRが予備動作を行うようモータ駆動部42を制御する。具体的には、
図8の「位置制御」に示すように、指F1、F2の位置を制御することにより、指F1、F2がワークWを把持する直前の位置である予備動作目標位置まで指F1、F2を移動させる。ワークWを把持する直前の位置とは、例えば指F1、F2のX軸方向の距離dが、ワークWのX軸方向の長さよりも若干長い距離となる位置、すなわち、指F1、F2がワークWに接触する手前の位置である。
【0090】
ステップS302では、グリッパGRの状態値を取得する。ここで、状態値とは、指F1、F2の現在の位置、速度、モータMの駆動電流値、及び触覚センサS1、S2の検出値等を含む。
【0091】
ステップS304では、CPU30Aが、把持力制御に使用する力が押圧力Psであるか否か、すなわち、
図5のステップS106で決定された力が押圧力Psであるか否かを判定する。そして、把持力制御に使用する力が押圧力Psである場合は、ステップS306へ移行し、
図5のステップS106で決定された力が押圧力Psでない場合、すなわち、
図5のステップS106で決定された力が駆動力Piである場合は、ステップS308へ移行する。
【0092】
ステップS306では、ステップS302で取得した触覚センサS1、S2の検出値に基づいて、上記(2)式により押圧力Psを算出する。
【0093】
ステップS308では、ステップS302で取得したモータMの駆動電流値に基づいて、上記(1)式により駆動力Piを算出する。
【0094】
ステップS310では、予め定めた完了条件を満たすか否かを判定する。ここで、完了条件は、例えば把持力制御に押圧力Psを使用している場合は、ステップS306で算出した押圧力Psが把持力設定値になった場合、把持力制御に駆動力Piを使用している場合は、ステップS308で算出した駆動力Piが把持力設定値になった場合である。
【0095】
そして、予め定めた完了条件を満たさない場合はステップS312へ移行し、予め定めた完了条件を満たす場合はステップS314へ移行する。
【0096】
ステップS312では、CPU30が、制御部36として、グリッパGRの指F1、F2が移動してワークWを把持する把持動作を続行するようモータ駆動部42を制御する。具体的には、
図8に示すように、ステップS300の予備動作が終了したt1の時点から位置制御から速度制御に切り替えて、速度指令値をモータ駆動部42に出力する。これにより、モータMは、指F1、F2が閉じるように正転する。そして、
図8に示すように、t1の時点から指F1、F2が閉じるように移動してワークWに接触すると、ステップS306で算出された押圧力Ps又はステップS308で算出された駆動力Piは徐々に上昇する。ここで、触覚センサS1、S2又は指F1、F2の柔軟性により、指F1、F2がワークWに接触した後も指F1、F2の根元は移動することを想定している。また、ワークWが柔軟であれば把持力によるワークWの圧縮に伴う指F1、F2の移動も発生する。そして、t2の時点でステップS306で算出された押圧力Ps又はステップS308で算出された駆動力Piが把持力設定値に到達すると、
図7のステップS310の判定が肯定判定となり、ステップS314へ移行する。
【0097】
ステップS314では、CPU30が、制御部36として、指F1、F2によってワークWを把持した状態が維持されるようにモータ駆動部42を制御する。すなわち、指F1、F2の位置がロックされるように速度指令値として零をモータ駆動部42に出力する。これにより、速度制御が停止され、指F1、F2の位置が固定される。
【0098】
ステップS316では、CPU30が、制御部36として、ワークWを予め定めた位置に載置し、その後に予め定めた初期位置にグリッパGRが戻るようロボットアームAR及びモータ駆動部42を制御する。
【0099】
このように、本実施形態では、ある値の電流指令値によりモータMを駆動した場合において、指F1、F2がワークWに加える力として設計上想定される力を指令駆動力iとし、検出された駆動電流値に基づいて算出された駆動力Piと指令駆動力iとの差の大きさを第1誤差Egとし、算出された押圧力Psに対応する反力と指令駆動力iとの差の大きさを第2誤差Esとしたときに、把持力を制御するために、指令駆動力iが把持力設定値になるようにした場合の第1誤差Eg及び第2誤差Esのうち小さい方の誤差に対応する駆動力Pi又は押圧力Psを用いると決定する。
【0100】
そして、把持力設定値が切り替え値より大きいか小さいかにより特定される第1誤差Eg及び第2誤差Esのうち小さい方の誤差に対応する駆動力又は押圧力の値を用いて把持力を制御する。このため、グリッパGRの把持力が小さい領域でも把持力を的確に制御することができる。
【0101】
また、予備動作においては、位置制御で指F1、F2を駆動するため、
図8に示すように、ワークWに接触する直前の位置までは指F1、F2を高速で移動させることができ、ワークWの把持を高速に行うことができる。
【0102】
なお、予備動作において、最初のワークWについては、ワークWと接触するまでゆっくり指F1、F2を移動させ、ワークWの接触を検知した位置を次のワークWの予備動作目標位置として設定してもよい。
【0103】
<第2実施形態>
【0104】
次に、第2実施形態について説明する。なお、第1実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0105】
第2実施形態では、
図7のステップS312の把持動作の他の例について説明する。把持力制御装置30の構成、
図5、6の処理、及び
図7のステップS312以外の処理については第1実施形態と同一であるので説明は省略する。
【0106】
本実施形態では、
図7のステップS312では、
図9に示すように、ステップS300の予備動作が終了したt1の時点から、小刻みに位置制御の目標位置を切り替えて指F1、F2の位置を制御する。t1の時点から指F1、F2が閉じるように移動してワークWに接触すると、ステップS306で算出された押圧力Ps又はステップS308で算出された駆動力Piは徐々に上昇する。そして、t2の時点でステップS306で算出された押圧力Ps又はステップS308で算出された駆動力Piが把持力設定値に到達すると、
図7のステップS310の判定が肯定判定となり、ステップS314へ移行する。
図9の例では、指F1、F2が段階的に設定された一連の目標位置K1~K6を順次通過するように、目標位置、速度指令値、加速度指令値をモータ駆動部42に出力する。ただし、指F1、F2が目標位置K5まで移動したところで押圧力Ps又は駆動力Piが把持力設定値に到達するので、目標位置をK6とする移動は実行されない。これにより、t1の時点から指F1、F2が段階的に閉じるように移動してワークWが把持される。
【0107】
このように、本実施形態では、小刻みに目標位置を切り替えて指F1、F2が段階的に移動するように制御するので、例えばガラス等の割れやすい材料のワークWであっても、適切に把持することができる。
【0108】
<第3実施形態>
【0109】
次に、第3実施形態について説明する。なお、第1実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0110】
第3実施形態では、
図7のステップS300の予備動作及びステップS312の把持動作の他の例について説明する。把持力制御装置30の構成、
図5、6の処理、及び
図7のステップS300及びステップS312以外の処理については第1実施形態と同一であるので説明は省略する。
【0111】
本実施形態では、
図7のステップS300の予備動作では、指F1、F2の速度を制御することにより、指F1、F2がワークWに接触したことを検知するまで指F1、F2を移動させる。指F1、F2がワークWに接触したか否かについては、押圧力Ps又は駆動力Piを用いて判定する。すなわち、
図5のステップS106で決定された力が押圧力Psである場合は、押圧力Psを上記(2)式により算出し、算出した押圧力Psが予め定めた接触検知レベル以上となった場合に指F1、F2がワークWに接触したと判定する。また、
図5のステップS106で決定された力が駆動力Piである場合は、駆動力Piを上記(1)式により算出し、算出した駆動力Piが予め定めた接触検知レベル以上となった場合に指F1、F2がワークWに接触したと判定する。
【0112】
ステップS312では、
図10に示すように、ステップS300の予備動作が終了したt1の時点から、目標速度の大きさを小さくした速度制御により指F1、F2が閉じるように移動させる。移動に伴い、押圧力Ps又は駆動力Piは徐々に上昇する。そして、t2の時点でステップS306で算出された押圧力Ps又はステップS308で算出された駆動力Piが把持力設定値に到達すると、
図7のステップS310の判定が肯定判定となり、ステップS314へ移行する。
【0113】
このように、本実施形態では、予備動作において指F1、F2がワークWに接触するまで速度制御により移動させるので、予備動作目標位置を設定する必要がなく、簡単な制御でワークWを把持することができる。
【0114】
なお、把持力設定値に近い値であって把持力設定値よりも小さい値を閾値として設定し、算出された押圧力Ps又は駆動力Piが閾値以上になった場合に指F1、F2がさらに減速するように制御してもよい。
【0115】
<第4実施形態>
【0116】
次に、第4実施形態について説明する。なお、第1実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0117】
第4実施形態では、
図7のステップS310の完了条件の判定及びステップS312の把持動作の他の例について説明する。把持力制御装置30の構成、
図5、6の処理、及び
図7のステップS310及びステップS312以外の処理については第1実施形態と同一であるので説明は省略する。
【0118】
本実施形態では、
図7のステップS312では、
図11に示すように、ステップS300の予備動作が終了したt1の時点から、トルク制限付き位置制御により指F1、F2の位置が目標範囲内となるように移動させる。目標範囲は、例えば予め定めた目標位置を中心として前後にマージンを設定した範囲である。すなわち、例えば目標位置をA、マージンをαとした場合、目標範囲は、A±αとなる。
【0119】
そして、ステップS310の完了条件は、第1条件として押圧力Ps又は駆動力Piが把持力設定値になった場合と、第2条件として指F1、F2の位置が目標範囲内となった場合を含む。そして、第1条件及び第2条件の少なくとも一方を満たした場合に完了条件を満たしたものとする。
図11に示した例では、第2条件が充足されたため押圧力Ps又は駆動力Piは把持完了後も把持力設定値に到達しない。別の例において、もし第1条件が充足されるのであれば、指F1、F2の位置は把持完了後も目標範囲に到達しない。
【0120】
このように、指F1、F2の位置が目標範囲内となった場合も完了条件を満たすものとされるため、例えばワークWが柔らかいときに、ワークWの寸法を圧縮しすぎないようにしたい場合でも、適切にワークWを把持することができる。
【0121】
<第5実施形態>
【0122】
次に、第5実施形態について説明する。なお、第1実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0123】
第5実施形態では、触覚センサS1、S2の異常を判定する場合について説明する。把持力制御装置30の構成、
図6、7の処理については第1実施形態と同一であるので説明は省略する。
【0124】
図12に本実施形態に係る把持力制御処理のフローチャートを示す。
図12に示す把持力制御処理は、
図5に示す把持力制御処理と比較して、ステップS50~54の処理が追加されている点が異なる。
【0125】
図12に示すように、ステップS50では、CPU30が、制御部36として、触覚センサS1、S2に異常があるか否かを判定する。
【0126】
具体的には、指F1、F2が開いた状態と閉じた状態との間で指F1、F2を駆動させて、グリッパGRの位置、駆動力Pi、及び押圧力Psを時系列で取得し、同一の時刻における駆動力Piと押圧力Psとの間の差異が許容範囲外か否かを判定する。
【0127】
そして、駆動力Piと押圧力Psとの間の差異が許容範囲外の場合は、触覚センサS1、S2の少なくとも一方に異常があると判定する。なお、グリッパ製品の仕様上の把持力範囲の下限値未満の領域については異常判定の対象外としてもよい。
【0128】
ステップS52では、CPU30が、制御部36として、ステップS50で触覚センサS1、S2の少なくとも一方が異常と判定されたか否かを判定し、異常と判定された場合はステップS54へ移行し、異常と判定されなかった場合はステップS100へ移行する。
【0129】
ステップS54では、ステップS50で触覚センサS1、S2の少なくとも一方が異常であることを示すメッセージをモニタ30Fに表示する等して報知する。これにより、オペレータは触覚センサS1、S2の少なくとも一方に異常が発生していることを把握することができ、異常が発生したままで把持力制御が行われてしまうのを防ぐことができる。
【0130】
<第6実施形態>
【0131】
次に、第6実施形態について説明する。なお、第5実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0132】
第6実施形態では、触覚センサS1、S2の異常を判定する場合の他の例について説明する。把持力制御装置30の構成、
図6、7の処理、
図12のステップS50以外の処理については第5実施形態と同一であるので説明は省略する。
【0133】
本実施形態では、
図12のステップS50では、指F1、F2が開いた状態と閉じた状態との間で指F1、F2を駆動させて押圧力Psを時系列で取得し、同一の指F1、F2の位置において異常判定時に取得した押圧力Psと過去に取得した押圧力Psとの間の差異が許容範囲外か否かを予め定めた閾値との比較により判定する。許容範囲外であれば、触覚センサS1、S2の少なくとも一方に異常があると判定する。なお、異常判定時に取得した押圧力Psはストレージ30Dに記憶しておき、次回の異常判定に用いてもよい。
【0134】
このように、触覚センサS1、S2の異常判定を行うことにより、オペレータは触覚センサS1、S2の少なくとも一方に異常が発生していることを把握することができ、異常が発生したままで把持力制御が行われてしまうのを防ぐことができる。
【0135】
<第7実施形態>
【0136】
次に、第7実施形態について説明する。なお、第5実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0137】
第7実施形態では、触覚センサS1、S2の異常を判定する場合の他の例について説明する。把持力制御装置30の構成、
図6、7の処理、
図12のステップS50以外の処理については第5実施形態と同一であるので説明は省略する。
【0138】
本実施形態では、
図12のステップS50では、グリッパ製品の仕様上の把持力範囲の下限値g_minを取得する。把持力範囲の下限値g_minは例えばストレージ30Dに予め記憶しておく。そして、指F1、F2が閉じている状態でグリッパ製品の仕様上の把持力範囲の下限値g_min未満で指F1、F2を駆動させているときに、指F1、F2が閉じていることによって生じるはずの触覚センサS1、S2の検出値が取得できない場合に異常と判定する。具体的には、
図13に示すように、把持力範囲の下限値g_min未満の範囲で指令駆動力iを徐々に上昇させる。これにより、触覚センサS1、S2が正常の場合、把持力範囲の下限値g_min未満の範囲Aにおいて触覚センサS1、S2の押圧力Psは徐々に上昇していくはずであるが、触覚センサS1、S2が異常の場合、検出値が取得できない。従って、把持力範囲の下限値g_min未満の範囲で指令駆動力iを徐々に上昇させた場合に、これに伴って押圧力Psが徐々に上昇しなかった場合に異常と判定する。
【0139】
<第8実施形態>
【0140】
次に、第8実施形態について説明する。なお、第5実施形態と同一部分については同一符号を付し、詳細な説明は省略する。
【0141】
第8実施形態では、触覚センサS1、S2の異常を判定する場合の他の例について説明する。把持力制御装置30の構成、
図6、7の処理、
図12のステップS50以外の処理については第5実施形態と同一であるので説明は省略する。
【0142】
本実施形態では、
図12のステップS50では、CPU30が、制御部36として、グリッパ製品の仕様上の把持力範囲の下限値g_min及び触覚センサS1、S2の仕様上の最小検出値を取得する。そして、触覚センサS1、S2の最小検出値に対応する押圧力Psが、グリッパ製品の仕様上の把持力範囲の下限値g_min以上であるか否かを判定し、触覚センサS1、S2の最小検出値に対応する押圧力Psが、グリッパ製品の仕様上の把持力範囲の下限値g_min以上の場合に異常と判定する。すなわち、グリッパ製品の仕様上の把持力範囲の下限値g_min未満の押圧力に対応する検出値を触覚センサS1、S2が検出できない場合に異常と判定する。
【0143】
上記実施形態は、本開示の構成例を例示的に説明するものに過ぎない。本開示は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0144】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した把持力制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、把持力制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0145】
また、上記各実施形態では、ピッキングプログラムがストレージ30D又はROM30Bに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0146】
10 ロボットシステム
20 ロボット
30 把持力制御装置
32 駆動力算出部
34 押圧力算出部
36 制御部
40 駆動電流検出部
42 モータ駆動部
44 速度検出部
F1、F2 指
GR グリッパ
M モータ
S1、S2 触覚センサ
W ワーク