(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061927
(43)【公開日】2024-05-09
(54)【発明の名称】ロボットコントローラ
(51)【国際特許分類】
B25J 19/06 20060101AFI20240430BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2022169562
(22)【出願日】2022-10-24
(71)【出願人】
【識別番号】000232302
【氏名又は名称】ニデック株式会社
(74)【代理人】
【識別番号】110001933
【氏名又は名称】弁理士法人 佐野特許事務所
(72)【発明者】
【氏名】浪越 孝宏
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707HS27
3C707KS35
3C707KV06
3C707KW05
3C707KX10
3C707MS14
3C707MS15
(57)【要約】 (修正有)
【課題】治具への悪影響を抑制することが可能となるロボットコントローラを提供する。
【解決手段】ロボットコントローラは、ワークを把持可能なロボットを制御するためのロボットコントローラであって、前記ワークを保持するための治具が有する積層構造の積層方向を示す積層方向ベクトル情報を記憶する記憶部と、前記ワークを前記ロボットにより把持するときに、前記積層方向ベクトル情報に基づいて前記ロボットの把持に関する制御を実行する把持制御部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ワークを把持可能なロボットを制御するためのロボットコントローラであって、
前記ワークを保持するための治具が有する積層構造の積層方向を示す積層方向ベクトル情報を記憶する記憶部と、
前記ワークを前記ロボットにより把持するときに、前記積層方向ベクトル情報に基づいて前記ロボットの把持に関する制御を実行する把持制御部と、
を備える、ロボットコントローラ。
【請求項2】
前記治具の少なくとも一部を囲む所定範囲が設定され、
前記把持制御部は、前記ロボットにおける所定位置が前記所定範囲内に含まれるかを判断し、含まれる場合に前記ロボットの把持に関する制御を実行する、請求項1に記載のロボットコントローラ。
【請求項3】
前記所定範囲は、前記積層方向ベクトル情報のベクトル長さを半径とする球体である、請求項2に記載のロボットコントローラ。
【請求項4】
前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれる場合に前記積層方向ベクトル情報のベクトルと前記ロボットの動作方向のなす角度を算出し、算出結果に基づいて前記ロボットの動作速度を減少させる、請求項2に記載のロボットコントローラ。
【請求項5】
前記把持制御部は、前記動作速度の減少量を前記算出結果に応じて連続的に変化させる、請求項4に記載のロボットコントローラ。
【請求項6】
前記把持制御部は、前記算出結果と角度閾値との関係に応じて、前記動作速度を減少させるか否かを切り替える、請求項4に記載のロボットコントローラ。
【請求項7】
前記把持制御部は、前記算出結果と、前記ロボットと前記治具との距離に基づいて前記動作速度を減少させる、請求項4に記載のロボットコントローラ。
【請求項8】
前記把持制御部は、前記治具の強度に関するパラメータに基づいて前記動作速度を減少させる、請求項4に記載のロボットコントローラ。
【請求項9】
前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれる場合に前記積層方向ベクトル情報のベクトルと前記ロボットの動作方向のなす角度を算出し、算出結果に基づいて、前記ロボットにかかる過負荷を検出するための負荷検出閾値を低下させる、請求項2に記載のロボットコントローラ。
【請求項10】
前記把持制御部は、前記負荷検出閾値の低下量を前記算出結果に応じて連続的に変化させる、請求項9に記載のロボットコントローラ。
【請求項11】
前記把持制御部は、前記算出結果と角度閾値との関係に応じて、前記負荷検出閾値を低下させるか否かを切り替える、請求項9に記載のロボットコントローラ。
【請求項12】
前記把持制御部は、前記算出結果と、前記ロボットと前記治具との距離に基づいて前記負荷検出閾値を低下させる、請求項9に記載のロボットコントローラ。
【請求項13】
前記把持制御部は、前記治具の強度に関するパラメータに基づいて前記負荷検出閾値を低下させる、請求項9に記載のロボットコントローラ。
【請求項14】
前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれるかを複数の前記治具ごとに判断する、請求項2に記載のロボットコントローラ。
【請求項15】
前記把持制御部は、前記ロボットにかかる負荷が検出された場合に、前記負荷のベクトルを前記積層方向ベクトル情報のベクトル方向の成分と当該ベクトル方向に直交する方向の成分とに分解した場合の前記直交する方向の成分の大きさに基づいて、前記ロボットの動作を制御する、請求項1に記載のロボットコントローラ。
【請求項16】
前記ロボットは、開閉可能な把持部を有するハンドを備え、
前記把持制御部は、前記ハンドの姿勢に基づいて前記把持部の開閉方向を算出し、前記開閉方向と前記積層方向ベクトル情報のベクトルとのなす角度を算出し、当該角度の算出結果に基づいて通知制御を実行する、請求項1に記載のロボットコントローラ。
【請求項17】
前記治具は、3Dプリンタにより前記積層構造を形成された治具である、請求項1に記載のロボットコントローラ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットコントローラに関する。
【背景技術】
【0002】
従来、ワークを把持することが可能なハンドを備えるロボットが知られている(例えば特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特に産業用ロボットを用いた製品の組み立て工程においては、ワークを保持するための治具が用いられることが多い。しかしながら、ロボットのハンドがワークに接触することで、ワークを保持する治具に負荷がかかり、治具に悪影響を及ぼすおそれがあり、ロボット制御の改善が求められる。
【0005】
上記状況に鑑み、本開示は、治具への悪影響を抑制することが可能となるロボットコントローラを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の例示的なロボットコントローラは、ワークを把持可能なロボットを制御するためのロボットコントローラであって、前記ワークを保持するための治具が有する積層構造の積層方向を示す積層方向ベクトル情報を記憶する記憶部と、前記ワークを前記ロボットにより把持するときに、前記積層方向ベクトル情報に基づいて前記ロボットの把持に関する制御を実行する把持制御部と、を備える。
【発明の効果】
【0007】
本開示の例示的なロボットコントローラによれば、治具への悪影響を抑制することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、治具の一例を模式的に示す図である。
【
図2】
図2は、治具に対する負荷の方向の一例を示す図である。
【
図3】
図3は、本開示の例示的な実施形態に係るロボットシステムのブロック図である。
【
図4】
図4は、ロボットの一例を模式的に示す図である。
【
図5】
図5は、本開示の例示的な実施形態に係るロボット制御に関するフローチャートである。
【
図6】
図6は、ロボットの作業環境の一例を示す模式図である。
【
図7】
図7は、治具に設定される所定範囲の一例を示す図である。
【
図8】
図8は、微小動作の移動量の分解を示す図である。
【
図9】
図9は、所定範囲が重複する例を示す図である。
【
図10】
図10は、ロボット制御の変形例を説明するための図である。
【
図11】
図11は、平行チャック型ハンドの一例を示す図である。
【発明を実施するための形態】
【0009】
以下に図面を参照して本開示の例示的な実施形態を説明する。
【0010】
<1.3Dプリンタにより製造される治具>
3Dプリンタは、樹脂等を使用して複雑な構造の立体モデルを、金型不要で簡単に形成することができるため、様々な分野で活用されている。製品を組み立てるための工場においては、製品の生産時に補助的に使用される器具である治具が用いられる。治具は、ワークを保持するために使用される。ワークに合わせた治具を製造することで、ワークを作業しやすい位置または角度に固定することが可能となる。
【0011】
治具を製造するために3Dプリンタが用いられる場合がある。
図1は、3Dプリンタで製造された治具の一例を模式的に示す図である。3Dプリンタは下から材料を積層するように治具を形成するため、
図1に示すように製造された治具Jは、積層方向Djに材料が積層された構造を有する。なお、
図1では、治具Jに保持されるワークWが図示される。
【0012】
しかしながら、3Dプリンタを用いて製造された治具は、
図2に示すように、積層方向Djの負荷(LAなど)に対しては強度が強いが、積層方向Djに直交する方向の負荷(LB,LCなど)に対しては強度が弱いという特徴を有する。
【0013】
ワークを把持可能な構成を有するロボットの作業環境に治具を配置する場合、ロボットがワークに接触すると、ワークを保持する治具に負荷がかかる。治具が3Dプリンタにより製造された場合、負荷がかかる方向によっては治具に悪影響を及ぼすおそれがある。従って、このような治具への悪影響を抑制すべく、ロボットの適切な制御が求められる。
【0014】
<2.ロボットシステム>
図3は、本開示の例示的な実施形態に係るロボットシステム10の構成を示す図である。ロボットシステム10は、ロボット1と、ロボットコントローラ2と、ティーチングペンダント3と、外部PC(パソコン)4と、を有する。
【0015】
ロボット1は、
図4に一例を模式的に示すように、産業用の多関節ロボット(ロボットアーム)である。ロボット1は、各関節軸にモータが搭載されており、先端部にハンド1Aを有する。ハンド1Aは、ワークを把持するように構成される。なお、ハンド1Aは、指によってワークを把持する構成であってもよいし、吸着によってワークを把持する構成であってもよい。モータの駆動によりハンド1Aは所定の位置・姿勢に制御される。
【0016】
また、ロボット1は、各関節部にトルクセンサ1Bを有する。トルクセンサ1Bは、各関節軸にかかるトルクを検出するように構成され、例えばひずみゲージにより構成される。各関節軸のトルクを検出して総合的に評価することで、ハンド1Aの把持状態を推測することができる。なお、ハンド1Aの把持状態を把握するためには、トルクセンサの代わりに、ハンド1Aの手首部に設けられる力覚センサ、あるいはハンド1Aの指先に設けられる触覚センサを用いてもよい。
【0017】
ロボットコントローラ2は、ロボット1を制御するための装置であり、制御部21と、記憶部22と、を有する。ロボットコントローラ2は、例えばPCにより構成される。制御部21は、記憶部22に記憶されたロボットプログラム22A、教示点データ22B、および制御プログラム22Cを用いて各種制御を実行する。
【0018】
ロボットコントローラ2には、ティーチングペンダント3と呼ばれる操作装置が接続される。ティーチングペンダント3を用いて、ロボットコントローラ2にロボット1の位置姿勢を登録することができる。例えば、ティーチングペンダント3における操作によりロボット1の関節を制御し、所望の位置姿勢のときにティーチングペンダント3において登録操作をすると、そのときの位置姿勢がロボットコントローラ2に登録される。このような登録作業をティーチングと呼び、登録された位置姿勢は、教示点と呼ばれる。教示点は、教示点データ22Bとして記憶部22に登録される。なお、教示点は、ロボット1の先端部(ハンド1A)の位置姿勢情報である。
【0019】
ロボットプログラム22Aは、例えばBASICまたはPythonなどのプログラミング言語により構成される。外部PC4において、教示点データ22Bを用いた動作指令をプログラミングすることでロボットプログラム22Aを生成することが可能である。制御プログラム22Cは、ロボットプログラム22Aにより指令される動作を実現するための制御を行うプログラムである。制御部21に含まれる把持制御部21Aは、ロボット1によるワークの把持に関する制御を実行する。把持制御部21Aは、制御プログラム22Cに従って制御を実行する。
【0020】
<3.ロボット制御>
次に、ロボットコントローラ2による制御について、
図5に示すフローチャートを参照して説明する。
図5に示す制御は、把持制御部21Aにより実行され、ハンド1Aがワークを把持するための目標地点に到達するまでの制御を示す。
【0021】
ここで、ロボット1の作業環境の一例を
図6に模式的に示すが、当該作業環境においては、3Dプリンタを用いて製造された治具J(J1,J2)が複数配置されることとする。なお、本開示は、治具Jが単数配置される作業環境に適用することも可能である。
【0022】
図5に示す処理が開始されると、まずステップS1で、把持制御部21Aは、ロボット1の先端部(ハンド1A)の現在位置を取得する。なお、ハンド1Aの位置などの各種位置座標は、
図6に示すように固定座標系(X,Y,Z)において特定される。
【0023】
次に、ステップS2に進み、把持制御部21Aは、目標地点(目標座標)に移動するための、ロボット一制御周期分の微小動作を算出する。そして、ステップS3で、把持制御部21Aは、微小動作後のハンド1Aの位置が治具Jの所定範囲内であるかを判定する。ここで、治具Jの所定範囲の一例について、
図7を用いて説明する。
【0024】
図7は、治具Jにあらかじめ設定される所定範囲Sを示す図である。
図7に示す所定範囲Sは、中心Csを中心とする球体の空間である。所定範囲Sの半径は、治具Jの積層方向を示す積層方向ベクトルVjの長さとしている。所定範囲Sは、治具Jの全体を取り囲む。なお、所定範囲Sは、治具Jの一部を取り囲んでもよい。中心Csの位置と所定範囲Sの半径をあらかじめ記憶部22に格納させることで、治具Jの所定範囲Sを設定することができる。なお、
図6に示すように、複数の治具J(J1,J2)が設定される場合は、治具Jごとに中心Csおよび半径が設定されることで、治具Jごとに所定範囲S(S1,S2)が設定される。
【0025】
なお、治具Jの所定範囲は、球体に限らず、例えば立方体などであってもよい。
【0026】
ステップS3において治具Jの所定範囲Sが上記のように球体である場合は、ハンド1Aの微小動作後の位置と中心Csの位置との間の距離が設定された半径以下であるかにより、ハンド1Aが治具Jの所定範囲S内であるかを判定できる。これにより、ハンド1Aが治具Jに近い位置にあるかを判定できる。なお、ステップS3では、複数の治具Jのうち一つについて判定される。
【0027】
ステップS3において治具Jの所定範囲内である場合は(ステップS3のY)、ステップS4に進む。ステップS4において、
図8に示すように、把持制御部21Aは、治具Jの積層方向ベクトルVjとハンド1Aの微小動作方向とがなす角度θを算出する。角度θは、0度から90度の範囲で算出される。角度θが90度に近いほど、微小動作方向が治具Jの強度が弱い方向であることを示す。ここで、積層方向Djを示す積層方向ベクトルVjは、治具Jごとにあらかじめ記憶部22に格納される(
図6のVj1,Vj2)。
【0028】
次に、ステップS5で、
図8に示すように、把持制御部21Aは、微小動作の移動量Mを治具Jの積層方向Djの成分M1とそれに直交する方向の成分M2に分解する。
【0029】
そして、ステップS6に進み、把持制御部21Aは、上記直交する方向の成分(移動量成分)M2を減少させる。ここでは、上記算出された角度θが90度に近いほど減少量を大きくする。例えば、角度θに比例した減少量とする。
【0030】
次に、ステップS7に進み、把持制御部21Aは、上記直交する方向の減少後の成分と積層方向Djの成分とから微小動作を更新する。これにより、ロボット1制御周期における微小動作の移動量が減少され、ハンド1Aの動作速度が減少される。従って、ハンド1Aが治具Jに近づいた場合に、ハンド1Aがワークに接触する前にあらかじめハンド1Aの動作速度を減少させ、ハンド1Aがもしワークに接触した場合でも治具Jの強度が弱い方向への負荷を抑制できる。なお、更新後の微小動作における移動量が、移動量の減衰によって最低移動量よりも小さくなった場合は、更新後の微小動作における移動量を最低移動量とする。
【0031】
なお、ステップS4で算出される角度θが所定の角度閾値以上であるか否かに応じて、ステップS6における減少処理を実行するかを切り替えてもよい。この場合、ステップS6では、減少量を一定値とする。
【0032】
ステップS7の後、ステップS8で、把持制御部21Aは、負荷検出閾値の低下処理を実行する。負荷検出閾値は、ハンド1Aにかかる過負荷を検出するための閾値であり、例えばロボット1に設けられるトルクセンサ1Bのトルク検出閾値である。この場合、ステップS8では、トルク検出閾値が初期値から低下される。この場合の低下量は、例えばステップS4で算出された角度θに比例した低下量である。あるいは、角度θが所定の角度閾値以上であるか否かに応じて、トルク検出閾値を一定値だけ低下させるかを切り替えてもよい。
【0033】
なお、負荷検出閾値は、トルクセンサ1Bにより検出されるトルクから推測される負荷の閾値であってもよい。また、トルク検出閾値などの負荷検出閾値の初期値は、治具Jごとに異ならせてもよい。3Dプリンタで製造された治具Jの強度は、材質(ABS、PLAなど)、または内部の充填率、充填方式によって変化するため、治具Jの強度に応じて上初期値を設定する。具体的には、強度が強いほど、初期値を大きくすればよい。
【0034】
一方、ステップS3で治具Jの所定範囲S外である場合は(ステップS3のN)、ステップS9に進む。
【0035】
ステップS8(またはステップS3)の後、ステップS9に進み、把持制御部21Aは、全ての治具Jについて処理されたかを判定する。全ての治具Jについて処理されていない場合は(ステップS9のN)、ステップS3に戻る。ここで、治具Jの所定範囲S内である場合は(ステップS3のY)、ステップS4以降の処理が実行される。
【0036】
例えば
図9に示すように、治具J1の所定範囲S1と治具J2の所定範囲S2とが重複領域SAで重なる場合、重複領域SAにハンド1Aが位置する場合に治具J1,J2それぞれについてステップS4以降の処理が実行される。
【0037】
全ての治具Jについて処理が完了した場合は(ステップS9のY)、ステップS10に進み、把持制御部21Aは、ハンド1Aの微小動作を実行する。そして、ステップS11で、把持制御部21Aは、ハンド1Aが目標地点に到達したかを判定する。もし到達していない場合は(ステップS11のN)、ステップS1に戻る。この場合、ステップS2で算出される微小動作の移動量は、ステップS10で実行された微小動作の移動量と同じとする。もし到達している場合は(ステップ11のY)、
図5の処理は完了となる。
【0038】
なお、把持制御部21Aは、
図5の処理と並行して負荷検出閾値を用いた制御を実行している。具体的には、例えば、ハンド1Aの現在位置が複数の治具Jのいずれの所定範囲S内に位置しているかを判定し、ハンド1Aが位置している所定範囲Sについて中心Csの位置とハンド1Aの位置との距離を算出し、最も距離が短い治具Jについての負荷検出閾値と現在の負荷検出値(例えばトルクセンサ1Bのトルク検出値)を比較する。比較結果として、負荷検出値が負荷検出閾値を上回っている場合、ロボット1の動作を停止させる。ステップS8において負荷検出閾値が低下されている場合、ロボット1の動作が停止しやすくなり、過負荷による治具Jへの悪影響を抑制することができる。
【0039】
また、
図5の処理は、製品の量産時におけるロボット1の稼働時に実行されるが、ティーチング後の動作確認のときに実行されてもよい。これにより、例えば、動作速度の減少を確認した場合に、ハンド1Aの軌跡を変更するように再度ティーチングすることも可能である。
【0040】
以上を換言すれば、ロボットコントローラ2は、ワークを把持可能なロボット1を制御するためのロボットコントローラであって、ワークを保持するための治具Jが有する積層構造の積層方向Djを示す積層方向ベクトル情報Vjを記憶する記憶部22と、ワークをロボット1により把持するときに、積層方向ベクトル情報Vjに基づいてロボット1の把持に関する制御を実行する把持制御部21Aと、を備える。
【0041】
これにより、ロボット1によりワークを把持するときに、積層構造の治具Jにおける強度の弱い方向へ過負荷がかかりにくくなり、治具Jへの悪影響を抑制できる。また、ロボットプログラム22A自体は特に意識して調整する必要がない。
【0042】
また、治具Jの少なくとも一部を囲む所定範囲Sが設定され、把持制御部21Aは、ロボット1における所定位置が所定範囲S内に含まれるかを判断し、含まれる場合にロボット1の把持に関する制御を実行する。これにより、ロボット1が治具Jに近づいた場合に自動的に制御を実行することができる。
【0043】
また、所定範囲Sは、積層方向ベクトル情報Vjのベクトル長さを半径とする球体である。これにより、所定範囲を特定しやすくなる。
【0044】
また、把持制御部21Aは、ロボット1における所定位置が所定範囲S内に含まれる場合に積層方向ベクトル情報のベクトルVjとロボット1の動作方向のなす角度θを算出し、算出結果に基づいてロボット1の動作速度を減少させる。
【0045】
これにより、ロボット1が治具Jに近づいた場合に、ロボット1の動作方向と治具Jの強度が弱い方向との関係に応じて、ロボット1がワークに接触する前にあらかじめロボット1の移動速度を減少させるので、治具への悪影響を抑制できる。
【0046】
また、把持制御部21Aは、動作速度の減少量を上記算出結果に応じて連続的に変化させてもよい。この場合、動作速度の減少制御をより細かく実行できる。
【0047】
また、把持制御部21Aは、上記算出結果と角度閾値との関係に応じて、動作速度を減少させるか否かを切り替えるようにしてもよい。これにより、演算負荷を抑制できる。
【0048】
また、
図5の処理において、把持制御部21Aは、算出された角度θに加えて、所定範囲Sの中心Csと微小動作後の位置との距離に応じて、ステップS6における減少量を変化させてもよい。具体的には、上記距離が短いほど、上記減少量を大きくする。すなわち、把持制御部21Aは、前記算出結果と、ロボット1と治具Jとの距離に基づいて動作速度を減少させる。これにより、動作速度の減少制御をより細かく実行できる。
【0049】
また、先述したように、3Dプリンタで製造された治具Jの強度は、材質、または内部の充填率、充填方式などによって変化する。そこで、これらの強度に関するパラメータをロボットコントローラ2が3Dプリンタから取得し、把持制御部21Aは、
図5の処理において、算出された角度θに加えて、上記取得されたパラメータに応じて、ステップS6における減少量を変化させてもよい。具体的には、強度が強いほど、減少量を小さくする。すなわち、把持制御部21Aは、治具Jの強度に関するパラメータに基づいて動作速度を減少させる。これにより、動作速度の減少制御をより細かく実行できる。
【0050】
また、把持制御部21Aは、ロボット1における所定位置が所定範囲S内に含まれる場合に積層方向ベクトル情報のベクトルVjとロボット1の動作方向のなす角度θを算出し、算出結果に基づいて、ロボット1にかかる過負荷を検出するための負荷検出閾値を低下させる。
【0051】
これにより、ロボット1が治具Jに近づいた場合に、ロボット1の動作方向と治具の弱い方向との関係に応じて、ロボット1がワークに接触する前にあらかじめ負荷検出閾値を低下させるので、過負荷の場合の動作(例えば停止)を行いやすくなり、治具Jへの悪影響を抑制できる。
【0052】
また、把持制御部21Aは、負荷検出閾値の低下量を上記算出結果に応じて連続的に変化させてもよい。これにより、負荷検出閾値の低下をより細かく制御できる。
【0053】
また、把持制御部21Aは、上記算出結果と角度閾値との関係に応じて、負荷検出閾値を低下させるか否かを切り替えることとしてもよい。これにより、演算負荷を抑制できる。
【0054】
また、
図5の処理において、把持制御部21Aは、算出された角度θに加えて、所定範囲Sの中心Csと微小動作後の位置との距離に応じて、ステップS8における低下量を変化させてもよい。具体的には、上記距離が短いほど、上記低下量を大きくする。すなわち、把持制御部21Aは、上記算出結果と、ロボット1と治具Jとの距離に基づいて負荷検出閾値を低下させる。これにより、負荷検出閾値の制御をより細かく実行できる。
【0055】
また、把持制御部21Aは、
図5の処理において、算出された角度θに加えて、上記取得された治具Jの強度に関するパラメータに応じて、ステップS8における低下量を変化させてもよい。具体的には、強度が強いほど、低下量を小さくする。すなわち、把持制御部21Aは、治具Jの強度に関するパラメータに基づいて負荷検出閾値を低下させる。これにより、負荷検出閾値の制御をより細かく実行できる。
【0056】
また、把持制御部21Aは、ロボット1における所定位置が所定範囲S内に含まれるかを複数の治具Jごとに判断する。これにより、積層構造を有する治具が複数配置される場合に対応できる。
【0057】
また、治具Jは、3Dプリンタにより積層構造を形成された治具である。少量多品種生産などで対象物に合わせて個別に形状が異なる治具が必要な場合、3Dプリンタで治具を製造することが効率的であり、そのような状況で本技術が有効となる。
【0058】
<4.ロボット制御の変形例>
また、負荷が検出された場合の制御としては、次のような制御を実行してもよい。例えばトルクセンサ1Bの検出に基づきハンド1Aにかかる負荷が検出された場合に、
図10に示すように、把持制御部21Aは、検出された負荷のベクトルLを積層方向ベクトルVjの方向の成分L1と、当該方向に直交する方向の成分L2に分解する。把持制御部21Aは、成分L2の大きさが一定値以上になった場合、ロボット1の動作を緊急停止させる。なお、この場合、ロボット1を負荷のベクトルLの方向にハンド1Aを移動させるようにしてもよい。これにより、治具Jの強度が弱く負荷成分を増やす方向(L2の方向と逆方向)と逆方向の成分を含む方向にハンド1Aを移動させることができる。このようにハンド1Aの逆転動作を行った後は、ロボット1の動作を停止させる。これにより、ロボット1の停止後に治具Jに負荷がかかり続けることを防ぐことができる。
【0059】
すなわち、把持制御部21Aは、ロボット1にかかる負荷が検出された場合に、負荷のベクトルを積層方向ベクトル情報のベクトル方向の成分L1と当該ベクトル方向に直交する方向の成分とに分解した場合の上記直交する方向の成分L2の大きさに基づいて、ロボット1の動作を制御する。これにより、ロボット1に負荷がかかった場合に、治具Jにおける弱い方向の負荷成分が大きい場合に適切な動作制御(停止または逆転動作)を実行できる。
【0060】
<5.オペレータへの通知制御>
ハンド1Aが、例えば
図11に示すような平行チャック型ハンドである場合、チャックとして構成される把持部11を閉じる場合にワークに対してかける力の加減を調整できないため、把持部11が閉じた瞬間に治具Jに負荷がかかって治具Jに悪影響を及ぼすおそれがある。そこで、把持制御部21Aは、ハンド1Aの姿勢に基づいて把持部11の開閉方向Docを算出し、開閉方向Docと積層ベクトルVjとがなす角度を算出する。算出された角度が90度に近い場合は、把持制御部21Aは、オペレータへアラートを通知する。通知は、例えば音声または表示などにより行う。これにより、オペレータへチャックを閉じても問題ないかどうかの事前確認を促す。
【0061】
すなわち、ロボット1は、開閉可能な把持部11を有するハンド1Aを備え、把持制御部21Aは、ハンド1Aの姿勢に基づいて把持部11の開閉方向Docを算出し、開閉方向Docと積層方向ベクトル情報のベクトルVjとのなす角度を算出し、当該角度の算出結果に基づいて通知制御を実行する。これにより、把持部11の開閉方向Docが治具Jにおける弱い方向に近い場合に、オペレータに通知することができる。
【0062】
<6.その他>
以上、本開示の実施形態を説明した。なお、本開示の範囲は上述の実施形態に限定されない。本開示は、発明の主旨を逸脱しない範囲で上述の実施形態に種々の変更を加えて実施することができる。また、上述の実施形態で説明した事項は、矛盾を生じない範囲で適宜任意に組み合わせることができる。
【0063】
<7.付記>
以上のように、本開示の一態様に係るロボットコントローラ(2)は、ワークを把持可能なロボット(1)を制御するためのロボットコントローラであって、前記ワークを保持するための治具(J)が有する積層構造の積層方向を示す積層方向ベクトル情報(Vj)を記憶する記憶部(22)と、前記ワークを前記ロボットにより把持するときに、前記積層方向ベクトル情報に基づいて前記ロボットの把持に関する制御を実行する把持制御部(21A)と、を備える(第1の構成)。
【0064】
また、上記第1の構成において、前記治具の少なくとも一部を囲む所定範囲(S)が設定され、前記把持制御部は、前記ロボットにおける所定位置が前記所定範囲内に含まれるかを判断し、含まれる場合に前記ロボットの把持に関する制御を実行する構成としてもよい。(第2の構成)。
【0065】
また、上記第2の構成において、前記所定範囲は、前記積層方向ベクトル情報のベクトル長さを半径とする球体である構成としてもよい(第3の構成)。
【0066】
また、上記第2または第3の構成において、前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれる場合に前記積層方向ベクトル情報のベクトルと前記ロボットの動作方向のなす角度(θ)を算出し、算出結果に基づいて前記ロボットの動作速度を減少させる構成としてもよい(第4の構成)。
【0067】
また、上記第4の構成において、前記把持制御部は、前記動作速度の減少量を前記算出結果に応じて連続的に変化させる構成としてもよい(第5の構成)。
【0068】
また、上記第4の構成において、前記把持制御部は、前記算出結果と角度閾値との関係に応じて、前記動作速度を減少させるか否かを切り替える構成としてもよい(第6の構成)。
【0069】
また、上記第4または第5の構成において、前記把持制御部は、前記算出結果と、前記ロボットと前記治具との距離に基づいて前記動作速度を減少させる構成としてもよい(第7の構成)。
【0070】
また、上記第4または第5の構成において、前記把持制御部は、前記治具の強度に関するパラメータに基づいて前記動作速度を減少させる構成としてもよい(第8の構成)。
【0071】
また、上記第2または第3の構成において、前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれる場合に前記積層方向ベクトル情報のベクトルと前記ロボットの動作方向のなす角度を算出し、算出結果に基づいて、前記ロボットにかかる過負荷を検出するための負荷検出閾値を低下させる構成としてもよい(第9の構成)。
【0072】
また、上記第9の構成において、前記把持制御部は、前記負荷検出閾値の低下量を前記算出結果に応じて連続的に変化させる構成としてもよい(第10の構成)。
【0073】
また、上記第9の構成において、前記把持制御部は、前記算出結果と角度閾値との関係に応じて、前記負荷閾値を低下させるか否かを切り替える構成としてもよい(第11の構成)。
【0074】
また、上記第9または第10の構成において、前記把持制御部は、前記算出結果と、前記ロボットと前記治具との距離に基づいて前記負荷閾値を低下させる構成としてもよい(第12の構成)。
【0075】
また、上記第9または第10の構成において、前記把持制御部は、前記治具の強度に関するパラメータに基づいて前記負荷検出閾値を低下させる構成としてもよい(第13の構成)。
【0076】
また、上記第2から第13のいずれかの構成において、前記把持制御部は、前記ロボットにおける前記所定位置が前記所定範囲内に含まれるかを複数の前記治具ごとに判断する構成としてもよい(第14の構成)。
【0077】
また、上記第1から第14のいずれかの構成において、前記把持制御部は、前記ロボットにかかる負荷が検出された場合に、前記負荷のベクトルを前記積層方向ベクトル情報のベクトル方向の成分と当該ベクトル方向に直交する方向の成分とに分解した場合の前記直交する方向の成分の大きさに基づいて、前記ロボットの動作を制御する構成としてもよい(第15の構成)。
【0078】
また、上記第1から第15のいずれかの構成において、前記ロボットは、開閉可能な把持部を有するハンドを備え、前記把持制御部は、前記ハンドの姿勢に基づいて前記把持部の開閉方向を算出し、前記開閉方向と前記積層方向ベクトル情報のベクトルとのなす角度を算出し、当該角度の算出結果に基づいて通知制御を実行する構成としてもよい(第16の構成)。
【0079】
また、上記第1から第16のいずれかの構成において、前記治具は、3Dプリンタにより前記積層構造を形成された治具であることとしてもよい(第17の構成)。
【産業上の利用可能性】
【0080】
本開示の技術は、例えば、産業用のロボットシステムに利用することができる。
【符号の説明】
【0081】
1 ロボット
1A ハンド
1B トルクセンサ
2 ロボットコントローラ
3 ティーチングペンダント
10 ロボットシステム
11 チャック
21 制御部
21A 把持制御部
22 記憶部
22A ロボットプログラム
22B 教示点データ
22C 制御プログラム
Cs 中心
Dj 積層方向
Doc 開閉方向
J 治具
J1,J2 治具
S 所定範囲
S1,S2 所定範囲
SA 重複領域
Vj 積層方向ベクトル
W ワーク