特表-19150726IP Force 特許公報掲載プロジェクト 2015.5.11 β版

▶ 本田技研工業株式会社の特許一覧
再表2019-150726ロボットシステム及びロボットの制御方法
(19)【発行国】日本国特許庁(JP)
【公報種別】再公表特許(A1)
(11)【国際公開番号】WO/0
(43)【国際公開日】2019年8月8日
【発行日】2020年11月26日
(54)【発明の名称】ロボットシステム及びロボットの制御方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20201030BHJP
【FI】
   B25J13/08 Z
【審査請求】有
【予備審査請求】未請求
【全頁数】32
【出願番号】特願2019-568886(P2019-568886)
(21)【国際出願番号】PCT/0/0
(22)【国際出願日】2018年11月27日
(31)【優先権主張番号】特願2018-16084(P2018-16084)
(32)【優先日】2018年2月1日
(33)【優先権主張国】JP
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
(71)【出願人】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】100077665
【弁理士】
【氏名又は名称】千葉 剛宏
(74)【代理人】
【識別番号】100116676
【弁理士】
【氏名又は名称】宮寺 利幸
(74)【代理人】
【識別番号】100191134
【弁理士】
【氏名又は名称】千馬 隆之
(74)【代理人】
【識別番号】100136548
【弁理士】
【氏名又は名称】仲宗根 康晴
(74)【代理人】
【識別番号】100136641
【弁理士】
【氏名又は名称】坂井 志郎
(74)【代理人】
【識別番号】100180448
【弁理士】
【氏名又は名称】関口 亨祐
(72)【発明者】
【氏名】石塚 康孝
(72)【発明者】
【氏名】有光 健
(72)【発明者】
【氏名】合田 かさね
(72)【発明者】
【氏名】吉田 裕
(72)【発明者】
【氏名】村岡 浩太郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707AS07
3C707BS12
3C707CT05
3C707CV08
3C707CW08
3C707HS27
3C707KS31
3C707KW01
3C707LT11
3C707LW12
3C707MS21
(57)【要約】
ロボットシステム(10)及びロボット(14)の制御方法において、検出部(12a)は、学習時に、ソケット(16c)をボルト(24)の頭部(26)の設定位置に接触させ、設定位置に対して設定動作範囲で回動させたときの接触状態を、学習用波形データとして検出する。学習部(13a)は、検出された複数の学習用波形データを学習し、その学習結果を判断部(12c)に書き込む。判断部(12c)は、実作業時に、ソケット(16c)がボルト(24)の頭部(26)に接触したときの接触状態の変化を示す実波形データと、書き込まれた学習結果とに基づいて、ボルト(24)に対するソケット(16c)のずれを認識する。
【特許請求の範囲】
【請求項1】
ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び/又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットシステムにおいて、
前記ロボット及び/又は前記エンドエフェクタを制御する制御部と、該制御部によって前記エンドエフェクタの前記ワークに対する接触状態を変化させたときの前記接触状態の時間変化を示すデータを検出する検出部と、前記データを学習する学習部と、該学習部での前記データの学習結果を用いて、前記エンドエフェクタの前記ワークに対する実作業時での該エンドエフェクタの前記ワークに対する接触状態を判断する判断部とを有し、
前記検出部は、前記ワークの表面における複数の設定位置の各々について、予め、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出し、
前記学習部は、検出された複数の前記学習用データを学習し、複数の前記学習用データの学習結果を前記判断部に書き込み、
前記判断部は、前記実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識し、
前記制御部は、前記判断部での判断結果に基づいて前記ずれ量を推定することを特徴とするロボットシステム。
【請求項2】
請求項1記載のロボットシステムにおいて、
前記検出部は、前記実作業時に、前記エンドエフェクタを前記ワークの表面の任意の位置に接触させたときに前記センサが検知した接触状態の変化と、該任意の位置に対して任意の動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、実データとして検出し、
前記判断部は、検出された前記実データと、書き込まれた前記学習結果に含まれる、該実データに類似している学習用データの学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識することを特徴とするロボットシステム。
【請求項3】
請求項2記載のロボットシステムにおいて、
複数の前記学習用データは、前記エンドエフェクタの前記ワークに対するずれの種類に応じて異なる特徴を有し、
前記学習部は、複数の前記学習用データについて、前記ずれの種類に応じた異なる特徴を学習し、
前記判断部は、前記実作業時には、前記学習結果を用いて、前記実データの示す接触状態を判断することで、前記実データに対応するずれの種類を特定し、書き込まれた前記学習結果に含まれる、特定した前記ずれの種類に応じた学習用データの学習結果と前記実データとを用いて、前記ワークに対する前記エンドエフェクタのずれを認識することを特徴とするロボットシステム。
【請求項4】
請求項1〜3のいずれか1項に記載のロボットシステムにおいて、
前記エンドエフェクタの前記ワークに対する接触状態が閾値を超えないように、前記制御部が前記ロボット及び/若しくは前記エンドエフェクタを制御するか、又は、外力可動機構によって前記エンドエフェクタを可動範囲内で移動させることにより、前記エンドエフェクタを前記ワークに接触させることを特徴とするロボットシステム。
【請求項5】
請求項1〜4のいずれか1項に記載のロボットシステムにおいて、
前記センサは、前記ロボットにおける前記エンドエフェクタの近傍に取り付けられた接触覚センサであることを特徴とするロボットシステム。
【請求項6】
請求項5記載のロボットシステムにおいて、
前記接触覚センサは、前記エンドエフェクタの中心軸と略同軸に前記ロボットに取り付けられているか、又は、該接触覚センサの軸が前記中心軸とは異なる状態で前記ロボットに取り付けられ、
前記接触覚センサの軸が前記中心軸と異なる場合、前記エンドエフェクタは、前記接触覚センサを介して前記ロボットに取り付けられていることを特徴とするロボットシステム。
【請求項7】
請求項1〜6のいずれか1項に記載のロボットシステムにおいて、
前記ワークは、対象物に組み立てられる部材、又は、該対象物に締め付けられる部材であり、
前記エンドエフェクタは、前記部材を前記対象物に組み立てる工具、又は、締め付ける工具であることを特徴とするロボットシステム。
【請求項8】
ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び/又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットの制御方法において、
前記ワークの表面における設定位置について、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出部が検出する第1ステップと、
検出された前記学習用データを学習部が学習する第2ステップと、
前記第1ステップと前記第2ステップとの順に繰り返し実行した後に、前記学習部での複数の前記学習用データの学習結果を判断部に書き込む第3ステップと、
前記エンドエフェクタの前記ワークに対する実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を前記判断部が取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する第4ステップと、
制御部が前記判断部での判断結果に基づいて前記ずれ量を推定する第5ステップと、
を有することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットのエンドエフェクタをワークに接触させて作業を行う際に、エンドエフェクタのワークに対するずれ量を補正するロボットシステム及びロボットの制御方法に関する。
【背景技術】
【0002】
従来より、ロボットのエンドエフェクタをワークに接触させて該ワークに対する作業を行う際、例えば、対象物とワークとの組立作業や締付作業において、ワークの公差、ワークの設置レイアウトのばらつき等の不定条件により、ワークに対して適切な作業を行えない場合がある。
【0003】
そこで、特許第4850956号公報、特許第6006256号公報、及び、特開2017−94438号公報には、ロボットと別個に設けたカメラを用いてエンドエフェクタ及びワークを撮像し、撮像した画像から基準位置や作業対象部位を画像認識することで、エンドエフェクタの目標位置を算出する非接触検知型の制御装置が開示されている。
【0004】
また、特開2015−155126号公報には、エンドエフェクタに複数又は多軸検出タイプの力覚センサを取り付けた状態で、エンドエフェクタを目標位置(中心位置)に収束させるような力覚値又はモーメント値を事前に設定し、その後の実作業において、ロボット又はエンドエフェクタに対して、事前に設定した力覚値又はモーメント値に追従させるフィードバック制御(力覚倣い制御)を行わせる接触検知型の制御装置が開示されている。
【発明の概要】
【0005】
しかしながら、特許第4850956号公報、特許第6006256号公報、及び、特開2017−94438号公報の技術では、上述のカメラ、エンドエフェクタ及びワークの周辺を照らす照明装置、並びに、カメラが撮像した画像を処理する画像認識ソフトウェア等が必要とされる。また、ワークに対するエンドエフェクタのずれ量、照明装置の輝度変化、外乱光の遮断等、カメラが撮像した画像を安定化させるための専用のシステム機器や、撮像した画像を処理する専用のコンピュータ(PC)等の付帯機器も必要となる。この結果、ロボットの制御システムを構築するためのコストがかかる。
【0006】
また、特開2015−155126号公報の技術では、事前に設定した力覚値又はモーメント値に追従するようにフィードバック制御を行うため、制御システムを廉価に構成することが可能である。しかしながら、エンドエフェクタのワークに対するずれ量に応じた力の変化を直接検出するため、ロボットの先端に力覚センサを設ける必要がある。この場合、実作業時における力覚センサの配置が制約を受ける。また、ワークのエンドエフェクタとの接触部分をC面に設定する必要がある等、ワークの表面をエンドエフェクタに対応させる必要がある。この結果、適用可能な作業が、ピンと穴との嵌め合い等の特定の作業に限られてしまう。さらに、エンドエフェクタとワークとの接触時のがたつきの影響を排除するために、実作業を行う毎に、専用の治具やロボットハンドを設ける必要があり、汎用性が低い。
【0007】
本発明は、このような課題を考慮してなされたものであり、低コストで汎用性の高いロボットシステム及びロボットの制御方法を提供することを目的とする。
【0008】
本発明は、ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び/又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットシステムに関する。
【0009】
この場合、前記ロボットシステムは、前記ロボット及び/又は前記エンドエフェクタを制御する制御部と、該制御部によって前記エンドエフェクタの前記ワークに対する接触状態を変化させたときの前記接触状態の時間変化を示すデータを検出する検出部と、前記データを学習する学習部と、該学習部での前記データの学習結果を用いて、前記エンドエフェクタの前記ワークに対する実作業時での該エンドエフェクタの前記ワークに対する接触状態を判断する判断部とを有する。
【0010】
そして、前記検出部は、前記ワークの表面における複数の設定位置の各々について、予め、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出する。また、前記学習部は、検出された複数の前記学習用データを学習し、複数の前記学習用データの学習結果を前記判断部に書き込む。さらに、前記判断部は、前記実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。前記制御部は、前記判断部での判断結果に基づいて前記ずれ量を推定する。
【0011】
また、本発明は、ロボットのエンドエフェクタのワークに対する接触状態の変化をセンサが検知した際に、該センサが検知した前記接触状態の変化に基づき前記ワークに対する前記エンドエフェクタのずれ量を推定し、前記ロボット及び/又は前記エンドエフェクタを制御することで前記ずれ量を補正するロボットの制御方法に関する。この制御方法は、下記の第1〜第5ステップを有する。
【0012】
すなわち、前記第1ステップでは、前記ワークの表面における設定位置について、前記エンドエフェクタを前記設定位置に接触させたときに前記センサが検知した接触状態の変化と、該設定位置に対して設定動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、学習用データとして検出部が検出する。
【0013】
前記第2ステップでは、検出された前記学習用データを学習部が学習する。
【0014】
前記第3ステップでは、前記第1ステップと前記第2ステップとの順に繰り返し実行した後に、前記学習部での複数の前記学習用データの学習結果を判断部に書き込む。
【0015】
前記第4ステップでは、前記エンドエフェクタの前記ワークに対する実作業時に、前記エンドエフェクタが前記ワークの表面に接触したときの前記センサが検出した接触状態の変化を前記判断部が取得し、取得した前記接触状態の変化と、書き込まれた前記学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。
【0016】
前記第5ステップでは、制御部が前記判断部での判断結果に基づいて前記ずれ量を推定する。
【0017】
このように、本発明によれば、前記エンドエフェクタの前記ワークに対するずれ量が多次元方向のずれ量であっても、単一の前記センサが検出した前記接触状態の変化に基づいて前記ワークに対する前記エンドエフェクタのずれを認識し、この認識結果(判断結果)に基づいて前記ずれ量を推定することができる。従って、本発明では、上記の各公報の技術と比較して、シンプルなシステム構成で前記ずれ量を推定可能であるため、低コストで高い実装性のシステムを構築することができる。
【0018】
また、前記データ(前記学習用データ)が1次元の時間変化のロギングデータであるため、上記の各公報の技術と比較して、取得した前記接触状態の変化のデータの取り扱いが容易である。この結果、専用のコンピュータ(PC)を用いることなく、一般的なFA機器において、前記接触状態(前記ずれ)を認識し、この認識結果(判断結果)を用いて前記ロボット及び/又は前記エンドエフェクタを制御することが可能となる。これにより、高いシステム稼働率を達成することができる。
【0019】
さらに、人手による手探りの作業と同様の手法で、前記ロボットが前記ワークの複数の設定位置に対して前記エンドエフェクタを手探り動作させることで、前記学習部が複数の前記データを学習し、さらに、その学習結果と、前記実作業の際に取得された接触状態の変化とに基づいて前記ずれを認識する。これにより、前記ずれ量を容易に推定することができる。この結果、特開2015−155126号公報の技術と比較して、ワークの公差やワークの設置レイアウトのばらつき、ワークのがたつき等の外乱に対するロバスト性が向上する。
【0020】
さらにまた、本発明では、上述の人工知能による学習機能を用いて、前記設定動作範囲での前記学習用データの獲得と、該学習用データの学習とを繰返し行うことで、自律的に接触状態の特徴を獲得し、前記ずれの認識や前記ずれ量の推定を行うことができる。これにより、該ずれ量を推定するための判断ロジックの開発や調整に必要な工数を少なくすることができる。この結果、システムの導入期間の短縮化を図ることができる。
【0021】
このように、本発明によれば、上記の各公報の技術と比較して、低コストで汎用性の高いロボットシステム及びロボットの制御方法を実現することができる。
【0022】
ここで、前記検出部は、前記実作業時に、前記エンドエフェクタを前記ワークの表面の任意の位置に接触させたときに前記センサが検知した接触状態の変化と、該任意の位置に対して任意の動作範囲で前記エンドエフェクタを手探り動作させたときに前記センサが検知した接触状態の変化とを、実データとして検出する。これにより、前記判断部は、検出された前記実データと、書き込まれた前記学習結果に含まれる、該実データに類似している学習用データの学習結果とに基づいて、前記ワークに対する前記エンドエフェクタのずれを認識する。この結果、前記制御部で前記ずれ量を精度良く推定することが可能となる。従って、本発明では、前記ずれ量を推定するための認識・判断処理システムを容易に構築することができる。
【0023】
また、複数の前記学習用データは、前記エンドエフェクタの前記ワークに対するずれの種類に応じて異なる特徴を有する。そこで、前記学習部は、複数の前記学習用データについて、前記ずれの種類に応じた異なる特徴を学習する。前記判断部は、前記実作業時には、前記学習結果を用いて、前記実データの示す接触状態を判断することで、前記実データに対応するずれの種類を特定する。これにより、前記判断部は、書き込まれた前記学習結果に含まれる、特定した前記ずれの種類に応じた学習用データの学習結果と前記実データとを用いて、前記ワークに対する前記エンドエフェクタのずれを認識する。この結果、前記制御部において、前記ずれ量を一層精度良く推定することができる。
【0024】
さらに、前記エンドエフェクタの前記ワークに対する前記接触状態が閾値を超えないように、前記制御部が前記ロボット及び/若しくは前記エンドエフェクタを制御するか、又は、外力可動機構によって前記エンドエフェクタを可動範囲内で移動させることにより、前記ワークを傷付けることなく前記エンドエフェクタを前記ワークに接触させることができる。
【0025】
また、前記センサが前記ロボットにおける前記エンドエフェクタの近傍に取り付けられた接触覚センサであれば、前記接触状態の変化を容易に検出することができると共に、一層の低コスト化及び該センサの耐久性の向上を図ることができる。
【0026】
この場合、前記接触覚センサは、前記エンドエフェクタの中心軸と略同軸に前記ロボットに取り付けられているか、又は、該接触覚センサの軸が前記中心軸とは異なる状態で前記ロボットに取り付けられてもよい。前記接触覚センサの軸が前記中心軸と異なる場合、前記エンドエフェクタは、前記接触覚センサを介して前記ロボットに取り付けられていればよい。いずれの場合でも、前記接触状態の変化を容易に検出することができる。
【0027】
なお、前記ワークが対象物に組み立てられる部材、又は、該対象物に締め付けられる部材であり、前記エンドエフェクタが前記部材を前記対象物に組み立てる工具、又は、締め付ける工具であれば、前記対象物と前記部材との組立作業や締付作業において、前記ずれ量を容易に補正することができる。
【図面の簡単な説明】
【0028】
図1】本実施形態に係るロボットシステムの学習時の構成図である。
図2】本実施形態に係るロボットシステムの実作業時の構成図である。
図3図1及び図2のソケットへの接触力と、該接触力によってナットランナがZ方向に直動する場合を図示したロボットの構成図である。
図4図1図3のソケットをZ方向に直動させる直動機構が設けられている場合を図示した概略斜視図である。
図5図4の直動機構の内部構成図である。
図6図1図3のナットランナをZ方向に直動させる直動機構が設けられている場合を図示した概略構成図である。
図7図6の直動機構の概略構成図である。
図8図8Aは、ナットランナのソケットとボルトとの接触前の状態を示す説明図であり、図8Bは、図8Aのソケットとボルトとが嵌合したときの接触状態を示す説明図である。
図9図9Aは、ボルトに対するソケットの平行ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図9Bは、図9Aのソケットとボルトとの接触状態を示す説明図である。
図10図10Aは、ボルトに対するソケットの傾斜ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図10Bは、図10Aのソケットとボルトとの接触状態を示す説明図である。
図11図11Aは、ボルトに対するソケットの位相ずれが発生しているときのソケットとボルトとの接触状態を示す説明図であり、図11Bは、ソケットとボルトとの接触位置を図示した説明図である。
図12図12Aは、ボルトに対するソケットの平行・傾斜ずれが発生しているときのソケットとボルトとの接触前の状態を示す説明図であり、図12Bは、図12Aのソケットとボルトとの接触状態を示す説明図である。
図13】接触前の状態から接触状態に至るまでのソケットのボルトとの接触力の時間変化を示した図である。
図14図14A図14Cは、ソケットのボルトに対する手探り動作の一例を図示した説明図である。
図15】ボルトを組み付けるか又は締め付けるときにソケットに作用するトルクの変化を示した図である。
図16】ボルトを組み付けるか又は締め付けるときにソケットに作用するモーメントの時間変化を示した図である。
図17図1のロボットシステムの学習時の動作を示すフローチャートである。
図18図1のロボットシステムの実作業時の動作を示すフローチャートである。
図19】ボルトに対するソケットの接触状態を図示した説明図である。
図20】学習時に学習部が取得した学習用波形データの図である。
図21】実作業時のロボットシステムの動作の流れを概略的に図示した説明図である。
図22】実作業時に学習部が取得した実波形データの図である。
図23】ボルトに対するソケットのずれ量の補正動作を図示した説明図である。
【発明を実施するための形態】
【0029】
以下、本発明に係るロボットシステム及びロボットの制御方法について好適な実施形態を例示し、添付の図面を参照しながら説明する。
【0030】
[1.本実施形態の構成]
図1及び図2は、本実施形態に係るロボットシステム10の構成図である。
【0031】
<1.1 ロボットシステム10の概要>
ロボットシステム10は、制御装置12と、学習装置13と、制御装置12又は学習装置13によって制御されるロボット14と、ロボット14の先端部に装着されたロボットハンドやハンドツール等のエンドエフェクタとしてのナットランナ16と、ロボット14の先端部に取り付けられたセンサ18とを備える。
【0032】
制御装置12は、PLC(Programmable Logic Controller)で構成され、図示しないメモリに格納されたプログラムを読み出して実行することにより、検出部12a、制御部12b及び判断部12cの機能を実現する。また、学習装置13は、主にPCで構成され、図示しないメモリに格納されたプログラムを読み出して実行することにより、人工知能の学習機能を備えた学習部13aの機能を実現する。制御装置12と学習装置13とは、双方向でのデータ通信が可能である。この場合、図1の学習時には、学習装置13がロボット14を制御しつつ所定の深層学習を行い、その学習結果を制御装置12に供給する。一方、学習後の図2の実作業時には、制御装置12が学習結果を用いてロボット14及びナットランナ16を制御し、所定の作業を行わせる。
【0033】
すなわち、図1の学習時には、学習部13aがロボット14を制御し、検出部12aは、センサ18の検知結果から、後述する波形データ(学習用波形データ)を生成(検出)する。学習部13aは、検出部12aで検出された学習用波形データ(学習用データ)を学習し、その学習結果を判断部12cに書き込む。
【0034】
一方、図2の実作業時には、制御部12bがロボット14及びナットランナ16を制御し、検出部12aは、センサ18の検知結果から、後述する波形データ(実波形データ)を検出する。判断部12cは、学習結果を用いて、検出部12aで検出された実波形データ(実データ)に対して所定の認識処理(判断処理)を行う。制御部12bは、判断部12cでの認識結果(判断結果)に基づいて、ロボット14及びナットランナ16を制御することで、ロボット14及びナットランナ16に所定の作業を行わせる。
【0035】
従って、本実施形態に係るロボットシステム10は、学習時には、学習部13aが制御部12bの機能を奏することに留意する。なお、ロボットシステム10では、1台のPLCで制御装置12を実現してもよいし、又は、複数のPLCを用いて、検出部12a、制御部12b及び判断部12cの各処理をそれぞれ割り当てることで、並列処理を行ってもよい。要は、学習部13aを有する学習装置13と、検出部12a、制御部12b及び判断部12cを有する制御装置12とが、処理負荷の観点から、別個の装置であればよい。すなわち、学習作業では、非常に多くのメモリ容量や演算容量を必要とするので、主として、PCが学習装置13として機能する。一方、実作業では、学習結果のパラメータを用いて、所定の認識処理と制御処理とが行われるため、必要最小限のメモリ容量と演算容量とがあればよい。従って、一般的なFA機器であるPLCが制御装置12として機能する。
【0036】
<1.2 ロボットシステム10の各部の構成>
ここで、ロボットシステム10の各部の構成について、詳しく説明する。
【0037】
ロボット14は、例えば、6軸の多関節ロボットであればよい。すなわち、ロボット14は、基端部である取付台としての第1ベース14a、第2ベース14b、第1アーム14c、第1関節部14d、第2アーム14e、第2関節部14f、及び、先端部であるエンドエフェクタ着脱部14gを有し、この順に接続されている。エンドエフェクタ着脱部14gには、センサ18及びナットランナ16が取り付けられている。
【0038】
第2ベース14bは、鉛直軸(重力方向のZ軸)である第1軸j1を中心に旋回可能(回転可能)に第1ベース14aに軸支されている。第1アーム14cは、鉛直軸に直交する水平軸(X軸又はY軸)である第2軸j2を中心に俯仰可能(回転可能)に第2ベース14bに軸支されている。第1関節部14dは、第2軸j2と平行な第3軸j3を中心に俯仰可能(回転可能)に第1アーム14cの先端部に軸支されている。第2アーム14eは、第1関節部14dから第2アーム14eの先端部に向かう方向(長手方向)に沿った第4軸j4を中心に回転可能に第1関節部14dに軸支されている。第2関節部14fは、第3軸j3と平行な第5軸j5を中心に回転可能に第2アーム14eの先端部に軸支されている。エンドエフェクタ着脱部14gは、第2関節部14fから先端部に向かう方向に沿った第6軸j6を中心に回転可能に第2関節部14fに軸支されている。
【0039】
センサ18は、例えば、6軸成分(X軸、Y軸及びZ軸の3軸方向の力成分、X軸、Y軸及びZ軸の3軸方向のモーメント成分)を検出可能な接触覚センサである。センサ18は、第6軸j6と略同軸になるように、該センサ18の上面がエンドエフェクタ着脱部14gの先端部に取り付けられる。センサ18のエンドエフェクタ着脱部14gとは反対の底面には、ナットランナ支持部材20が取り付けられている。
【0040】
ナットランナ支持部材20は、第6軸j6と直交する方向に延びる板状部材である。ナットランナ支持部材20の一端部には、センサ18の底面が取り付けられ、ナットランナ支持部材20の他端部には、ナットランナ16が第6軸j6と略平行に取り付けられている。従って、ナットランナ16は、ナットランナ支持部材20及びセンサ18を介して、エンドエフェクタ着脱部14gに装着されている。なお、ナットランナ支持部材20の両側面には、ナットランナ16及びセンサ18から引き出される不図示の配線を保持するための側板22がナットランナ支持部材20の長手方向に沿って設けられている。
【0041】
ナットランナ16は、ナットランナ支持部材20に支持される柱状の駆動部16aと、駆動部16aから下方に延びるナットランナ16の軸16bの先端(下端)に取り付けられ、駆動部16aの駆動によって該軸16bを中心に回転可能なソケット16cとを有する。駆動部16aは、第6軸j6と略平行にナットランナ支持部材20を挿通した状態で支持されている。従って、ナットランナ16の軸16bは、第6軸j6と略平行に下方に延びている。ソケット16cは、ワークとしてのボルト24の頭部26に嵌合可能な凹部16dを有する。また、ボルト24は、不図示の作業台に配置された車体やモータ等の対象物28のネジ孔に螺合される。
【0042】
なお、本実施形態に係るロボットシステム10は、ワークがボルト24である場合に限定されることはなく、対象物28に組み立てられる部材、又は、該対象物28に締め付けられる部材でもよい。従って、ロボットシステム10において、エンドエフェクタは、ナットランナ16に限定されることはなく、上記の部材を対象物28に組み立てるか、又は、締め付ける工具(ハンドツール)であってもよい。つまり、ロボットシステム10では、締付作業だけでなく、ロボットハンドやハンドツール(エンドエフェクタ)による各種の組立作業、例えば、ダウエルピンの嵌合、カプラとコネクタとの嵌合、ボルトとタップ穴との軸合わせ、各種の軸部材と穴との嵌合、を行うことが可能である。また、ワークは、締付部材だけではなく、嵌合や組立に用いられる部品であってもよい。以下の説明では、一例として、ワークとしてのボルト24がフランジ30付きの六角ボルトであり、エンドエフェクタとしてのナットランナ16のソケット16cにおける六角形状の凹部16dが、六角ボルトの頭部26に嵌合する場合について説明する。
【0043】
制御装置12の制御部12bは、ロボット14に制御信号を供給することにより、ロボット14内部の不図示のモータを駆動させ、モータの軸(第1〜第6軸j1〜j6)を回転させることにより、該ロボット14を動作させる。これにより、例えば、ソケット16cの凹部16dを、ボルト24の頭部26に嵌合させることができる。また、制御部12bは、ナットランナ16に制御信号を供給することにより、ナットランナ16の駆動部16aを駆動させ、軸16bを中心にソケット16cを回転させる。これにより、ソケット16cの凹部16dがボルト24の頭部26に嵌合している場合、対象物28に対するボルト24の組立作業や締付作業を行うことができる。
【0044】
センサ18は、ナットランナ16のソケット16cがボルト24に接触したときに、ソケット16cのボルト24に対する接触状態の変化、具体的には、該ソケット16cがボルト24から受ける接触力(反力)の3軸成分、及び、接触力のモーメントの3軸成分を逐次検出し、これらの6軸成分の検出結果を制御装置12に順次出力する。なお、センサ18は、ボルト24に対するソケット16cの接触状態の変化を検出できればよいので、図1に示すように、ナットランナ16と同軸に配置されてなくてもよい。勿論、ナットランナ16と略同軸に配置されている場合は、接触力の変化を検知することが可能である。
【0045】
なお、センサ18は、第1〜第6軸j1〜j6の近傍に設けられ、モータのトルクを検出するトルクセンサであってもよい。この場合、複数のトルクセンサは、モータのトルクを検出し、その検出結果を制御装置12に出力する。制御装置12の検出部12aは、複数のトルクセンサの検出結果に基づいて、ボルト24に対するソケット16cの接触力の変化を推定すればよい。
【0046】
さらに、センサ18は、ソケット16cのボルト24に対する接触状態の変化を検出できればよいので、ソケット16cとボルト24との接触状態が変化するときに発生する音を検出するマイクロフォン等の音響センサや、ソケット16cとボルト24との接触状態が変化するときに発生する振動を検出する各種の振動センサでもよい。また、センサ18が音響センサのような非接触式のセンサである場合には、ロボット14に取り付けることなく、ソケット16c及びボルト24の近傍に配置されていればよい。いずれの場合でも、制御装置12の検出部12aは、センサ18の検知結果からソケット16cとボルト24との接触状態の時間変化を波形データとして検出することが可能である。
【0047】
以下の説明では、ロボット14に取り付けられた接触覚センサをセンサ18として用い、ソケット16cのボルト24に対する接触状態の変化をセンサ18で検知する場合について説明する。
【0048】
図1の学習時において、学習装置13の学習部13aは、ロボット14を制御することで、ソケット16cをボルト24の頭部26に接触させる手探り動作を実行させる。
【0049】
手探り動作とは、人手による手探りの作業と同様の手法で、ボルト24の頭部26に対してソケット16cの接触状態を変化させることで、ソケット16cの凹部16dとボルト24の頭部26とを嵌合させるための作業をいう。従って、手探り動作は、エンドエフェクタ(ナットランナ16)とワーク(ボルト24)との接触状態を変化させるものであれば、どのような動作であってもよい。例えば、後述するボルト24に対するソケット16cの回動、ボルト24に対してソケット16cをX方向及びY方向に並進させる平動、ボルト24の締付軸方向(Z方向)での捻り、又は、回動と平動とを組み合わせた枢動によって、手探り動作を行わせることが可能である。さらに、エンドエフェクタ(ナットランナ16)に不図示の振動付与機構を取り付け、エンドエフェクタとワークとを接触させた状態で、該振動付与機構からエンドエフェクタに各種の振動(例えば、超音波振動)を付与することにより、手探り動作を行わせることも可能である。
【0050】
制御装置12の検出部12aは、手探り動作の際に、センサ18から入力された6軸成分に基づいて、例えば、接触力F(図3及び図4参照)のZ軸成分(接触力Fz)の時間経過を学習用波形データとして検出し、検出した学習用波形データを学習部13aに供給する。学習部13aは、供給された学習用波形データの特徴を学習し、その学習結果を判断部12cに書き込む。学習部13aの機能や手探り動作の詳細については後述する。
【0051】
一方、図2の実作業時において、制御装置12の制御部12bは、ロボット14及びナットランナ16を制御することで、ソケット16cとボルト24の頭部26とを嵌合させ、ボルト24を対象物28に螺合させる。この場合、検出部12aは、センサ18から入力された6軸成分に基づいて、例えば、接触力Fzの時間経過を、実波形データとして検出し、検出した実波形データを判断部12cに供給する。
【0052】
判断部12cは、学習時に書き込まれた学習結果を用いて、供給された実波形データの示す接触状態を認識し、その認識結果から接触状態、すなわち、ボルト24の頭部26に対するソケット16cのずれの有無を認識(判断)する。判断部12cでの認識結果(判断結果)は、制御部12bに供給される。制御部12bは、供給された認識結果に基づいて、ボルト24の頭部26に対するソケット16cのずれ量を推定し、推定したずれ量を制御量としてロボット14及びナットランナ16を制御する。これにより、対象物28に対するボルト24の組立作業や締付作業を正確に行うことが可能となる。判断部12cの機能や実作業の詳細については、後述する。
【0053】
なお、上記の説明では、検出部12aが学習時に学習用波形データを検出し、実作業時に実波形データを検出する処理等について説明した。本実施形態では、上記のような波形データの処理に代えて、数式処理等によるデータ処理を適用することも可能である。
【0054】
この場合、例えば、検出部12aは、学習時に、センサ18から逐次入力される6軸成分に基づき、接触力Fzのデータを学習用データとして検出し、一方で、実作業時に、センサ18から逐次入力される6軸成分に基づき、接触力Fzのデータを実データとして検出すればよい。これにより、学習部13aは、深層学習により学習用データの特徴を学習し、その学習結果を判断部12cに書き込むことができる。また、判断部12cは、書き込まれた学習結果を用いて、数式処理等により、実データの示す接触状態を認識し、その認識結果からボルト24の頭部26に対するソケット16cのずれの有無を認識することができる。
【0055】
以下の説明では、学習時に検出部12aが学習用波形データを検出し、一方で、実作業時に検出部12aが実波形データを検出する場合について説明する。
【0056】
図1及び図2では、ナットランナ16周辺の構成を概略的に図示している。ここで、ナットランナ16周辺の具体的な構成について、図3図7を参照しながら説明する。
【0057】
図3に示すように、ソケット16cがボルト24の頭部26(図1及び図2参照)に接触した場合、ソケット16cは、接触力F(Fz)の負荷を受けることになる。この場合、ソケット16cのボルト24に対する接触力Fが閾値を超えない程度に、ボルト24とソケット16cとを接触させつつ、ソケット16cの負荷を軽減させる必要がある。なお、閾値とは、ボルト24が損傷しない程度の接触力Fの上限値(ボルト24にかかる負荷の最大値)をいう。
【0058】
そこで、ボルト24との接触に伴うソケット16cの負荷を軽減するためには、(1)センサ18の検知結果に基づきロボット14を制御することでナットランナ16をZ方向(図1図3の紙面の上方向)に移動させる、(2)ソケット16c又はナットランナ16を上方向に移動させる、ことが考えられる。図4図7は、上記(2)の対応を具体化したものであり、外力可動機構としての直動機構27(図4及び図5参照)又は直動機構29(図6及び図7参照)をナットランナ16に設けたものである。
【0059】
図4及び図5の直動機構27は、ソケット16cのZ方向へのストローク量(移動量)が、接触力F(Fz)の値に対して線形的に変化するように構成されている。この場合、直動機構27は、ナットランナ16の駆動部16a及び軸16bと、ソケット16cとの間に設けられている。
【0060】
直動機構27は、Z方向に延びる段付きのロッド27aを備える。ロッド27aの一端部は、ナットランナ16の軸16bに嵌合している。ロッド27aの他端部は、Z方向に延びる筒状の連結部材27bに挿入されている。連結部材27bは、ロッド27aが挿入される連結部材27bの一端部には、フランジが設けられている。連結部材27bの他端部には、ソケット16cの基端部が嵌合されている。
【0061】
ロッド27aの径方向外側には、ロッド27aと連結部材27bの一端部側を収容するベアリングホルダ27cが配置されている。ベアリングホルダ27cは、Z方向に延びる段付きの筒状部材であり、駆動部16a側の一端部には、フランジ27dが形成されている。フランジ27dは、駆動部16aに固定された一方の板体27eと、ソケット16c側の他方の板体27fとで挟まれている。この場合、2つの板体27e、27fとフランジ27dとをネジ部材27gで一体に締結することにより、ベアリングホルダ27cが駆動部16aに固定される。
【0062】
ベアリングホルダ27cの内周面のフランジ27d側と、ロッド27aの外周面の一端部側との間には、2つのベアリング27hが設けられている。また、連結部材27bの一端部(フランジ)は、ベアリングホルダ27cの内周面に形成された突起27iに係合している。これにより、ソケット16c及び連結部材27bが、図5に示す位置よりもソケット16c側に突出することが阻止される。さらに、連結部材27bの一端部とロッド27aの一端部との間には、スプリング27jが介挿されている。スプリング27jは、ソケット16cに向かう方向(接触力Fzとは逆方向)への弾発力を有する。
【0063】
なお、駆動部16a又はベアリングホルダ27cをナットランナ支持部材20(図1図3参照)に固定することにより、ナットランナ16及び直動機構27をナットランナ支持部材20に支持することができる。
【0064】
図4及び図5の直動機構27では、ソケット16cがボルト24の頭部26と接触して、ソケット16cが接触力Fzを受けた場合、該接触力Fzは、ソケット16c及び連結部材27bを介してスプリング27jに伝わる。この結果、スプリング27jは、接触力Fzによって、弾発力に抗して駆動部16a側に縮む。この場合、スプリング27jは、接触力Fzの値に対して、Z方向に線形的に変形する。これにより、ソケット16c及び連結部材27bのストローク量を、接触力Fzに対して線形に変化させることができる。従って、スプリング27jの縮み量がストローク量、すなわち、ソケット16cの可動範囲となる。
【0065】
一方、ソケット16cとボルト24の頭部26との接触状態が解除された場合、スプリング27jは、弾発力によって連結部材27bをソケット16c側に変位させる。この結果、ソケット16c及び連結部材27bは、図5の位置に復帰する。なお、駆動部16aが駆動して、軸16bが回転した場合、ロッド27a、連結部材27b及びソケット16cは、一体に回転する。
【0066】
図6及び図7に示す直動機構29は、ナットランナ16全体のZ方向へのストローク量が、接触力F(Fz)の値に対して線形的に変化するように構成されている。この場合、直動機構29は、ナットランナ16の駆動部16aに設けられている。
【0067】
直動機構29は、ナットランナ支持部材20と略平行に延び、駆動部16aの下端部に固定されるベース下板29aと、ナットランナ支持部材20と略平行に延び、駆動部16aの中央部に固定されるベース上板29bとを有する。ベース下板29aとベース上板29bとは、Z方向に延びる4本の直動ロッド29cによって連結されている。この場合、4本の直動ロッド29cは、ナットランナ支持部材20をZ方向に貫通して設けられた4つの筒状のホルダ29dを挿通することで、ベース下板29aとベース上板29bとを連結する。4本の直動ロッド29cにおいて、ベース下板29aとホルダ29dとの間には、スプリング29eがそれぞれ介挿されている。各スプリング29eは、ソケット16cに向かう方向(接触力Fzとは逆方向)への弾発力を有する。また、直動機構29において、ベース下板29aからは、ナットランナ支持部材20を貫通して上方に延びる複数本のロッド29fが設けられている。また、直動機構29は、ナットランナ支持部材20に固定され、先端部がベース下板29aに連結されたダンパ29gをさらに有する。
【0068】
従って、ナットランナ16及び直動機構29は、ベース上板29b及びホルダ29dを介して、ナットランナ支持部材20に支持されている。
【0069】
直動機構29では、ソケット16cがボルト24の頭部26(図1及び図2参照)と接触して、ソケット16cが接触力F(Fz)を受けた場合、該接触力Fzは、ソケット16c、軸16b、駆動部16a、ベース下板29aを介して、各スプリング29e及びダンパ29gに伝わる。この結果、各スプリング29eは、接触力Fzによって、弾発力に抗して上方に縮む。これにより、直動機構29を構成するベース下板29a、ベース上板29b、直動ロッド29c及びロッド29fと、ベース下板29a及びベース上板29bに固定されたナットランナ16とは、Z方向に沿って、一体に上方に変位する。
【0070】
この場合、スプリング29eは、接触力Fzの値に対して、Z方向に線形的に変形する。これにより、ベース下板29a、ベース上板29b、直動ロッド29c、ロッド29f及びナットランナ16のストローク量を、接触力Fzに対して線形に変化させることができる。従って、各スプリング29eの縮み量がストローク量、すなわち、ナットランナ16の可動範囲となる。また、ダンパ29gは、接触力Fzを受けることでナットランナ16及びベース下板29aに発生する振動や衝撃を吸収する。
【0071】
一方、ソケット16cとボルト24の頭部26との接触状態が解除された場合、スプリング29eは、弾発力によってベース下板29aを下方に変位させる。この結果、ベース下板29a、ベース上板29b、直動ロッド29c、ロッド29f及びナットランナ16は、図6及び図7の位置に復帰する。
【0072】
なお、以下の説明では、図1及び図2の概略図に従って、ロボットシステム10の構成及び動作について説明する。そのため、一部の説明では、直動機構27、29の構成及び動作を省略する場合があることに留意する。
【0073】
[2.ソケット16cとボルト24とのずれに関する説明]
本実施形態に係るロボットシステム10の動作説明に先立ち、ナットランナ16を用いてボルト24と対象物28との組立作業又は締付作業を行う際、ナットランナ16のソケット16cとボルト24との間で各種のずれが発生している場合の問題点等について、図8A図16を参照しながら説明する。ここでは、必要に応じて、図1及び図2も参照しながら説明する。
【0074】
図8A及び図8Bは、ソケット16cとボルト24との間で各種のずれが発生していない場合の説明図である。一方、図9A図12Bは、ソケット16cとボルト24との間で何らかのずれが発生している場合を図示した説明図である。
【0075】
図8Aの場合、ソケット16cの中心軸32(図1及び図2に示すナットランナ16の軸16b)とボルト24の中心軸34とが略同軸であり、後述する各種のずれが発生していない。そのため、Z軸に沿ってソケット16cを下降させると、図8Bに示すように、ソケット16cの凹部16dとボルト24の頭部26とが嵌合する。図8Bでは、ソケット16cとボルト24との接触箇所を太い実線で図示している。すなわち、図8Bでは、ソケット16cの凹部16dとボルト24の頭部26とが面接触すると共に、ソケット16cの先端とボルト24の頭部26のフランジ30とが線接触又は面接触している。
【0076】
一方、図9A及び図9Bは、ボルト24の中心軸34に対してソケット16cの中心軸32がY方向に相対的にずれている場合を図示している。以下、2つの中心軸32、34が相対的に平行にずれている場合を「平行ずれ」と呼称する。この場合、Z軸に沿ってソケット16cを下降させると、図9Bに示すように、ソケット16cの先端がボルト24の頭部26に当接し、ソケット16cの凹部16dとボルト24の頭部26とを嵌合させることができない。すなわち、ソケット16cの先端とボルト24の頭部26とが線接触又は面接触している。また、平行ずれにおいて、ソケット16cは、ボルト24の頭部26との接触箇所を中心に、矢印方向に回動する手探り動作が可能である。
【0077】
図10A及び図10Bは、ボルト24の中心軸34に対してソケット16cの中心軸32が角度θだけ傾斜している場合を図示している。以下、一方の中心軸に対して他方の中心軸が傾斜している場合を「傾斜ずれ」と呼称する。この場合、Z軸に沿ってソケット16cを下降させると、図10Bに示すように、ボルト24の頭部26の一部がソケット16cの凹部16dに挿入され、ソケット16cの先端がボルト24の頭部26のフランジ30に当接している。しかしながら、ソケット16cの凹部16dとボルト24の頭部26とを嵌合させることができない。すなわち、ソケット16cの先端とボルト24の頭部26のフランジ30とが点接触又は線接触している。また、傾斜ずれにおいて、ソケット16cは、ボルト24の頭部26のフランジ30との接触箇所(図10Bでは大きな点で示す箇所)を中心に、矢印方向に回動する手探り動作が可能である。
【0078】
図11A及び図11Bは、ソケット16cの中心軸32回りの位相と、ボルト24の中心軸34回りの位相とがずれている場合を図示している。以下、ソケット16cの位相とボルト24の位相とがずれている場合を「位相ずれ」と呼称する。この場合、Z軸に沿ってソケット16cを下降させると、ボルト24の頭部26の一部がソケット16cの凹部16dに挿入された状態となり、ソケット16cの凹部16dとボルト24の頭部26とを嵌合させることができない。すなわち、ソケット16cの凹部16dとボルト24の頭部26の6つの頂点とが点接触する状態となる。位相ずれにおいて、ソケット16cの凹部16dとボルト24の頭部26の各頂点とが点接触している場合、ボルト24に対してソケット16cを中心軸32、34回りに回転させることができない。なお、位相ずれにおいても、平行ずれが生じていれば、図9A及び図9Bと同様の状況となる。
【0079】
図12A及び図12Bは、ボルト24の中心軸34に対してソケット16cの中心軸32がY方向に相対的にずれていると共に、ボルト24の中心軸34に対してソケット16cの中心軸32が角度θだけ傾斜している場合を図示している。すなわち、図12A及び図12Bは、図9A及び図9Bの平行ずれと、図10A及び図10Bの傾斜ずれとの双方が発生している場合を図示したものである。以下、このようなずれを「平行・傾斜ずれ」と呼称する。この場合、Z軸に沿ってソケット16cを下降させると、図12Bに示すように、ソケット16cの先端がボルト24の頭部26に当接し、ソケット16cの凹部16dとボルト24の頭部26とを嵌合させることができない。すなわち、ソケット16cの先端とボルト24の頭部26とが点接触又は線接触している。また、平行・傾斜ずれにおいて、ソケット16cは、ボルト24の頭部26との接触箇所(図12Bでは大きな点で示す箇所)を中心に、矢印方向に回動する手探り動作が可能である。
【0080】
図13は、図8A図12Bの場合において、ボルト24に対してソケット16cを下降させる場合に、ソケット16cの下降開始からの経過時間と、ソケット16cのボルト24に対する接触力(反力)との関係を示す図である。図13の接触力は、例えば、ソケット16cがボルト24から受ける反力のZ方向成分(接触力Fz)である。ここで、ソケット16cの下降開始の時点からソケット16cがボルト24の頭部26に当接(接触)するまでの経過時間(ストローク)を到達時間と呼称する。
【0081】
図13に示すように、いずれの場合でも、接触力Fzは、到達時間となるまでは略0レベルであり、一方で、到達時間後は、時間経過に伴って直線的に増加する。但し、到達時間後の接触力Fzの時間変化(傾き)は、ずれの種類によって異なる特徴を有する。
【0082】
具体的に、各種のずれが発生していない場合(図8A及び図8B参照)は、図13に実線で示すように、各種のずれが発生している場合(図9A図12B参照)と比較して、到達時間が最も長い。すなわち、各種のずれが発生していない場合は、ボルト24の頭部26に到達するまでのソケット16cの移動距離が最も長いためである。従って、破線で示す平行ずれ(図9A及び図9B参照)、二点鎖線で示す傾斜ずれ(図10A及び図10B参照)、一点鎖線で示す位相ずれ(図11A及び図11B参照)、並びに、点線で示す平行・傾斜ずれ(図12A及び図12B参照)では、ずれが発生していない場合よりも到達時間が短い。
【0083】
そのため、図13について、到達時間及び接触力Fzの傾きを比較することにより、ずれの種類を特定し、各種のずれの特徴を把握することができる。例えば、ずれが発生していない場合(図13の実線)と、位相ずれの場合(図13の一点鎖線)とでは、到達時間の違いを比較することで、両者を区別することができる。また、平行ずれの場合(図13の破線)と、位相ずれの場合(図13の一点鎖線)とでは、接触力Fzの傾きを比較することで、両者を区別することができる。さらに、傾斜ずれの場合(図13の二点鎖線)は、到達時間及び接触力Fzの傾きの違いから、他の結果と区別することができる。平行・傾斜ずれの場合(図13の点線)は、接触力Fzの傾きが最も小さいという結果から、他の結果と区別することができる。
【0084】
以上の結果より、各種のずれの特徴を予め特定しておけば、実際のソケット16cによるボルト24の組立作業又は締付作業(実作業)において、センサ18が検出したボルト24に対するソケット16cの接触力Fzと、各種のずれの特徴との比較に基づき、発生しているずれの種類を特定し、実際に発生しているずれ量を補正して、ソケット16cとボルト24とを正常に嵌合させることが可能になる。また、ソケット16cとボルト24とが嵌合したか否かを判断することも可能となる。
【0085】
図14A図14Cは、ロボット14によるソケット16cのボルト24に対する手探り動作を図示した説明図である。図14A図14Cは、一例として、平行ずれ(図9A及び図9B参照)の場合を図示している。図14Aのソケット16cとボルト24との接触状態から、ロボット14を制御することで、図14Aの紙面上、大きな点で示す接触箇所を中心に、反時計方向にソケット16cが回動すると、図14B及び図14Cの状態となる。この場合、ボルト24の頭部26の上端と、ソケット16cの下端との間隔が、ソケット16cとボルト24との干渉代diとなる。
【0086】
ロボットシステム10は、直動機構27、29(図4図7参照)を有するので、干渉代diの分だけスプリング27j、29eが縮んで、ソケット16c又はナットランナ16のZ方向へのストローク量に変換される。これにより、手探り動作によってソケット16cを回動させる場合、直動機構27、29が接触力Fzの値に応じてソケット16c又はナットランナ16をZ方向に直動させるので、ソケット16cの負荷を軽減することができる。
【0087】
また、接触力Fzは、スプリング27j、29e及びナットランナ支持部材20等を介して、ナットランナ支持部材20に取り付けられたセンサ18に伝達される。これにより、センサ18は、ソケット16cの中心軸32と同軸でなくても、接触力Fzを容易に検知することができる。なお、ロボットシステム10では、上記の平行ずれに限定されることはなく、他の種類のずれ(図10A図12B参照)の場合でも、手探り動作を行った際に、ソケット16cの負荷が軽減されると共に、接触力Fzを検知することが可能である。
【0088】
図15は、ソケット16cを中心軸32回りに回転させて、ボルト24を対象物28に締め付ける場合の回転角度φとソケット16cに作用するトルクとの関係を示す図である。この場合、回転角度φは、時間に応じた角度である。実線は、中心軸32、34が略同軸である状態(図8B参照)で、ソケット16cを回転させたときの結果である。また、破線は、平行ずれ(図9B参照)や噛み込みが発生している状態で、ソケット16cを回転させたときの結果である。さらに、一点鎖線は、ソケット16cがボルト24に接触していない状態で、該ソケット16cを回転させたときの結果である。
【0089】
図15の実線の結果であれば、ソケット16cを用いてボルト24を正常に締め付けることが可能である。従って、実線の正常な結果と、実際の締付動作の結果とを比較することで、ずれの発生の有無や、組立作業又は締付作業の異常の発生の有無を検知することができる。
【0090】
図16は、ソケット16cを用いてボルト24を締め付ける場合に、ソケット16cに作用するモーメントの時間変化を示した図である。実線は、ソケット16cとボルト24とが嵌合している状態での結果であり、破線は、位相ずれ(図11A及び図11B参照)が発生している状態での結果である。図16の実線の結果であれば、ソケット16cを用いてボルト24を正常に締め付けることが可能である。従って、実線の正常な結果と、実際の締付動作での結果とを比較することで、ソケット16cとボルト24とが正常な接触状態であるか否かを認識することが可能である。
【0091】
[3.本実施形態の動作]
そこで、上記の知見を適用した本実施形態に係るロボットシステム10の動作(ロボット14の制御方法)について、図17図23を参照しながら説明する。この動作説明では、必要に応じて、図1図16も参照しながら説明する。ここでは、実作業で発生するずれ量を補正して、ボルト24を対象物28に適切に締め付けるための動作について説明する。なお、図17図23の説明では、主として、傾斜ずれが発生している場合であって、センサ18がソケット16cのボルト24に対する反力(接触力)を検出する場合について説明する。また、ボルト24を対象物28に組み立てる場合でも、図17図23と同様の動作であることに留意する。
【0092】
ロボットシステム10では、図17のフローに従って、各種のずれ等の学習を行う。先ず、図17のステップS1において、学習装置13の学習部13aは、学習条件のデータに応じた制御信号をロボット14に供給してモータを駆動させる。これにより、ロボット14が動作を開始し、エンドエフェクタ着脱部14gに装着したナットランナ16の下降を開始させることで、ソケット16cの位置制御を開始する。また、センサ18は、ソケット16cのボルト24に対する接触状態(例えば、接触力(反力))の検出を開始する。センサ18は、検出結果を制御装置12に逐次出力する。なお、図17では、後述する実作業で用いるソケット16c及びボルト24と同じ種類のソケット16c及びボルト24を使用する。
【0093】
この場合、ソケット16cがボルト24の頭部26に当接するまでは、略0レベルの検出結果がセンサ18から制御装置12に逐次出力される。また、制御装置12の検出部12aは、ナットランナ16の下降開始時刻からの計時を行い、センサ18からの検出結果(接触力)と下降開始時刻からの経過時間とを紐付け、不図示のメモリに記憶する。
【0094】
ソケット16cがボルト24に当接すると、ソケット16cは、ボルト24の頭部26を押圧するため、ボルト24から反力を受ける。ナットランナ16には、反力(接触力)の値に応じてソケット16c又はナットランナ16をZ方向に直動させる直動機構27、29が設けられている。そのため、ソケット16cがボルト24から接触力を受けた場合でも、該ソケット16cの負荷を軽減することができる。
【0095】
センサ18は、ナットランナ16又は直動機構27、29からナットランナ支持部材20を介して伝わる接触力を検出し、その検出結果を検出部12aに逐次出力する。検出部12aは、ソケット16cのボルト24の頭部26に対する接触力の大きさ(例えば、Z方向成分である接触力Fz)と経過時間との関係から、ソケット16cがボルト24に当接したことを認識することができる。すなわち、検出部12aは、経過時間と接触力Fzとから、接触力Fzの時間変化の結果を得ることができる。
【0096】
次のステップS2(第1ステップ)において、学習部13aは、ソケット16cとボルト24の頭部26とが当接している状態で、図19に示すように、例えば、Y−Z平面上で、ソケット16cとボルト24の頭部26との当接位置(大きな点で示す設定位置)を中心に、ソケット16cが時計方向及び反時計方向に回動する手探り動作を行うように、ロボット14を制御する。なお、図19において、dは、中心軸34と、ボルト24の頭部26に対するソケット16cの接触箇所との間隔である。ステップS2での手探り動作において、設定位置に対してソケット16cを回動させる方向の順序、及び、設定位置に対してソケット16cを回動させる範囲(設定動作範囲)は、適宜設定すればよい。また、制御部12bは、接触力が所定の閾値を超えないように、ロボット14を制御して、ソケット16cをボルト24の頭部26に接触させる。なお、閾値とは、ボルト24が損傷しない程度の接触力の上限値(ボルト24にかかる負荷の最大値)をいう。
【0097】
この場合も、センサ18は、ソケット16cのボルト24の頭部26に対する接触力を逐次検出し、その検出結果を制御装置12に出力する。検出部12aは、逐次入力されるセンサ18の検出結果を経過時間と紐付けてメモリに記憶する。この結果、検出部12aは、図20に示すような経過時間と接触力(Z方向成分の接触力Fz)との関係を示す波形データ(学習用波形データ)を収集(検出)することができる。そして、検出部12aは、検出した学習用波形データを学習部13aに供給する。なお、ソケット16cは、設定位置を中心に時計方向及び反時計方向に回動する手探り動作を行うので、学習用波形データの横軸である経過時間は、ボルト24の中心軸32に対する角度θに対応したものとなる。
【0098】
次のステップS3(第2ステップ)において、学習部13aは、深層学習によって、収集した学習用波形データを学習する。この場合、学習部13aは、周知のニューラルネットワークにより、学習用波形データの特徴、すなわち、ずれによる接触力Fzの時間変化の特徴(図20の波形の傾向)を学習する。なお、深層学習の手法は公知であるため、その詳細な説明は省略する。
【0099】
次のステップS4において、学習部13aは、学習用波形データに対する深層学習を繰り返し行うかどうかを判断する。実作業で想定される各種のずれに応じた波形の学習が完了していない場合、学習部13aは、さらなる学習が必要と判断する(ステップS4:YES)。そして、学習部13aは、ステップS1に戻り、さらなる学習を行うための手探り動作を行う。
【0100】
図13図15及び図16に示すように、ずれの種類によって、接触力Fzの時間変化(傾き)、トルクの変化及びモーメントの時間変化は、それぞれ異なる。そのため、ステップS1〜S4の処理を繰り返し行うことにより、学習部13aは、同じずれに対する波形の特徴や、異なるずれの種類に対する波形の特徴を確実に学習することができる。つまり、学習部13aは、ずれの種類毎に、ステップS1〜S4の処理を繰り返し行うことで、各種のずれに応じた特徴を学習することができる。
【0101】
なお、図20は、ステップS1〜S4の処理を繰り返し行ったときの複数の学習用波形データを重ね合わせたものである。また、本実施形態では、ボルト24の頭部26の表面における設定位置を変更して、ステップS1〜S4の処理を行うことにより、複数の設定位置毎に学習用波形データを取得し、学習部13aでずれの特徴を学習することができる。さらに、本実施形態では、ステップS1〜S4の処理を繰り返し行うことで、検出部12aは、図13図15及び図16の結果を学習用波形データとして検出し、学習部13aは、これらの学習用波形データを学習することも可能である。
【0102】
一方、実作業で想定される各種のずれに応じた波形の学習が十分に行われたと判断した場合(ステップS4:NO)、学習部13aは、次のステップS5に進む。ステップS5において、学習部13aは、学習用波形データを用いた深層学習を終了すると共に、ソケット16cとボルト24との接触動作の終了をロボット14に指示する。これにより、ロボット14は、ナットランナ16を上方に退避させ、ボルト24の頭部26からソケット16cを離間させる。
【0103】
このようにして学習用波形データを収集し、波形の特徴を予め学習した後のステップS6(第3ステップ)において、学習部13aは、複数の学習用波形データの学習結果を判断部12cに書き込む。その後、ロボットシステム10では、図18のフローチャートに示す実作業が行われる。図21は、実作業のプロセスの概要を図示した説明図であり、図18の各ステップに概ね対応している。
【0104】
図18のステップS11において、制御部12bは、ロボット14を制御して、ナットランナ16を下降させ、ソケット16cをボルト24の頭部26に当接させることで、ソケット16cを用いたボルト24の締付動作を開始させる。これにより、次のステップS12において、ナットランナ16の駆動部16aが駆動して、軸16b及びソケット16cが中心軸32回りに回転し、対象物28に対するボルト24の締付けが行われる。
【0105】
次のステップS13において、検出部12aは、図15に示すソケット16cに作用するトルクの波形データ(実波形データ)を収集(検出)する。なお、検出部12aは、センサ18が検出したモーメント成分を用いて、トルクを算出することができる。検出された実波形データは、判断部12cに供給される。
【0106】
次のステップS14において、判断部12cは、供給された実波形データと、事前に書き込まれた学習結果のうち、トルクに関する学習用波形データの学習結果とに基づいて、実波形データが何らかのずれのある異常波形であるか否かを判断する。この場合、実波形データが、例えば、図15の破線で示す波形データであれば、判断部12cは、異常波形と判断し(ステップS14:YES)、ステップS15に進む。
【0107】
次のステップS15において、判断部12cは、異常波形であったため、ボルト24に対してソケット16cのずれを補正し、正常な締付状態に修正するためのリトライモードを起動する。
【0108】
リトライモードにおいて、ステップS16では、制御部12bは、判断部12cでの判断結果に基づき、ロボット14を制御して、ボルト24に対するソケット16cの手探り動作を実行させる。この場合、図17のステップS2と同様の手探り動作を行えばよい。
【0109】
これにより、ステップS17において、センサ18がソケット16cのボルト24に対する接触状態を検知し、その検知結果を検出部12aに逐次出力する。この結果、検出部12aは、図22に示す接触力Fzと時間との関係を示す実波形データを検出することができる。そして、検出部12aは、検出した実波形データを判断部12cに供給する。
【0110】
ステップS18(第4ステップ)において、判断部12cに実波形データが供給されると、次のステップS19において、判断部12cは、供給された実波形データと、事前に書き込まれた学習結果のうち、接触力に関する学習用波形データ(図20参照)の学習結果とに基づいて、実波形データの示すソケット16cとボルト24との接触状態、すなわち、ソケット16cのボルト24に対するずれを認識すると共に、ずれの種類を特定する。判断部12cでの当該ずれに対する認識結果(判断結果)は、制御部12bに供給される。
【0111】
次のステップS20(第5ステップ)において、制御部12bは、ステップS19の認識結果(判断結果)に基づいて、ボルト24に対するソケット16cのずれ量を算出(推定)する。次のステップS21において、制御部12bは、推定したずれ量を制御量としてロボット14を制御することで、図21及び図23に示すように、ソケット16cの中心軸32とボルト24の中心軸34とが略同軸となるように、ずれ量を補正する。
【0112】
次のステップS22において、判断部12cは、ステップS21によるソケット16cの位置を補正した結果、ソケット16cとボルト24とが嵌合したか否かを判断する。この場合、例えば、図13に示すような実波形データを検出部12aで検出し、判断部12cにおいて、検出された波形データと、図13に応じた学習用波形データの学習結果とに基づいて、ソケット16cとボルト24との嵌合の有無を判断すればよい。
【0113】
ソケット16cとボルト24とが嵌合していないと判断される場合(ステップS22:NO)、ステップS16に戻り、リトライモードが引き続き実行される。一方、ソケット16cとボルト24とが嵌合していると判断される場合(ステップS22:YES)、ステップS23に進み、判断部12cは、リトライモードを完了させると共に、ステップS22での判断結果を制御部12bに通知する。制御部12bは、ナットランナ16を制御することで、軸16b及びソケット16cを回転させ、ボルト24の締付作業を実行する。
【0114】
そして、対象物28とボルト24とが螺合して、該ボルト24の締付けが完了した場合(ステップS24:YES)、ステップS25において、制御部12bは、ナットランナ16の駆動を停止させると共に、ロボット14を制御してナットランナ16を上方に退避させ、ボルト24の頭部26からソケット16cを離間させる。これにより、ボルト24に対する一連の締付動作が完了する。なお、ステップS24でのボルト24の締付けの完了の判断は、例えば、センサ18で検出される接触力が所定値に到達した場合に締付け完了と判断するか、又は、締付作業の開始から所定時間経過したときに締付け完了と判断すればよい。
【0115】
なお、ステップS24でボルト24の締付けが完了していないと判断した場合(ステップS24:NO)、ステップS12に戻り、ステップS12以降の処理が再度実行される。また、ステップS14で実波形データが異常波形でなかった場合(ステップS14:NO)、判断部12cは、ソケット16cとボルト24とが嵌合していると判断し、ステップS15〜S23の処理をスキップし、ステップS24の処理を実行する。
【0116】
このように、上記の動作では、ステップS14でずれの発生を示す異常な実波形データである場合のみステップS15〜S22のリトライモードが起動して、ずれの補正を行うので、サイクルタイムの影響を最小限に抑えながら、ボルト24の締付けの成功率を高めることができる。
【0117】
上記の動作説明では、主として、傾斜ずれ(図10A及び図10B参照)の場合について説明した。一方、平行ずれ(図9A及び図9B参照)の場合は、ステップS21において、ロボット14を制御し、2つの中心軸32、34が略同軸となるように、ソケット16cをX方向又はY方向に沿って平行移動させればよい。また、位相ずれ(図11A及び図11B参照)の場合は、ステップS21において、ナットランナ16を制御し、ソケット16cの凹部16dと、ボルト24の頭部26とが同相となるように、ソケット16cを中心軸32回りに回転させればよい。さらに、平行・傾斜ずれ(図12A及び図12B参照)の場合は、ステップS21において、傾斜ずれ及び平行ずれでのずれ量の補正方法を適用することで、2つの中心軸32、34を略同軸に補正すればよい。
【0118】
[4.本実施形態の効果]
以上説明したように、本実施形態に係るロボットシステム10及びロボット14の制御方法によれば、ナットランナ16の軸16bに取り付けられたソケット16cのボルト24に対するずれ量が、多次元方向のずれ量であっても、単一のセンサ18が検出したソケット16cとボルト24との接触状態の変化に基づいて、ボルト24に対するソケット16cのずれを認識し、この認識結果(判断結果)に基づいて、ずれ量を推定することができる。従って、本実施形態では、上記の各公報の技術と比較して、シンプルなシステム構成でずれ量を推定可能である。この結果、低コストで高い実装性のシステムを構築することができる。
【0119】
また、学習用波形データが1次元の時間変化のロギングデータであるため、上記の各公報の技術と比較して、取得した接触状態の変化のデータの取り扱いが容易である。この結果、専用のコンピュータ(PC)を用いることなく、一般的なFA機器において、接触状態(ずれ)を認識し、この認識結果(判断結果)を用いてロボット14及び/又はナットランナ16を制御することが可能となる。これにより、高いシステム稼働率を達成することができる。
【0120】
さらに、人手による手探りの作業と同様の手法で、ロボット14がボルト24の複数の設定位置に対してソケット16cを手探り動作させることで、学習部13aが複数の学習用波形データを学習し、さらに、判断部12cにおいて、その学習結果と、実作業の際に取得された接触状態の変化(実波形データ)とに基づいて、ずれを認識する。これにより、制御部12bにおいて、ずれ量を容易に推定することができる。この結果、特開2015−155126号公報の技術と比較して、ボルト24の公差やボルト24の設置レイアウトのばらつき、ボルト24のがたつき等の外乱に対するロバスト性が向上する。
【0121】
さらにまた、本実施形態では、人工知能による学習機能を用いて、設定動作範囲での学習用波形データの獲得と、該学習用波形データの学習とを繰返し行うことで、自律的に接触状態の特徴を獲得し、ずれの認識やずれ量の推定を行うことができる。これにより、該ずれ量を推定するための判断ロジックの開発や調整に必要な工数を少なくすることができる。この結果、ロボットシステム10の導入期間の短縮化を図ることができる。
【0122】
このように、本実施形態では、上記の各公報の技術と比較して、低コストで汎用性の高いロボットシステム10及びロボット14の制御方法を実現することができる。
【0123】
ここで、検出部12aは、実作業時に、ソケット16cをボルト24の表面の任意の位置に接触させたときにセンサ18が検知した接触状態の変化と、該任意の位置に対して任意の動作範囲でソケット16cを手探り動作させたときにセンサ18が検知した接触状態の変化とを、実波形データとして検出する。これにより、判断部12cは、検出された実波形データと、書き込まれた学習結果に含まれる、該実波形データに類似している学習用波形データの学習結果とに基づいて、ボルト24に対するソケット16cのずれを認識する。この結果、制御部12bでずれ量を精度良く推定することが可能となる。従って、本実施形態では、ずれ量を推定するための認識・判断処理システムを容易に構築することができる。
【0124】
また、複数の学習用波形データは、ソケット16cのボルト24に対するずれの種類に応じて異なる特徴を有する。そこで、学習部13aは、複数の学習用波形データについて、ずれの種類に応じた異なる特徴を学習する。判断部12cは、実作業時には、学習結果を用いて、実波形データの示す接触状態を判断することで、実波形データに対応するずれの種類を特定する。これにより、判断部12cは、書き込まれた学習結果に含まれる、特定したずれの種類に応じた学習用波形データの学習結果と実波形データとを用いて、ボルト24に対するソケット16cのずれを認識する。この結果、制御部12bにおいて、ずれ量を一層精度良く推定することができる。
【0125】
さらに、ソケット16cのボルト24に対する接触状態が閾値を超えないように、制御部12bがロボット14及び/若しくはナットランナ16を制御するか、又は、直動機構27、29によってソケット16c若しくはナットランナ16を可動範囲内(スプリング27j、29eの縮み量の範囲内)で移動させることにより、ボルト24を傷付けることなくソケット16cをボルト24に接触させることができる。
【0126】
また、センサ18がロボット14におけるナットランナ16の近傍に取り付けられた接触覚センサであるため、接触状態の変化を容易に検出することができると共に、一層の低コスト化及び該センサ18の耐久性の向上を図ることができる。
【0127】
この場合、センサ18は、中心軸32と略同軸にロボット14に取り付けられているか、又は、該センサ18の軸が中心軸32とは異なる状態でロボット14に取り付けられてもよい。センサ18の軸が中心軸32と異なる場合、ナットランナ16は、センサ18を介してロボット14に取り付けられる。いずれの場合でも、接触状態の変化を容易に検出することができる。
【0128】
さらに、本実施形態では、ソケット16cを用いてボルト24を組み立てるか、又は、締め付けるので、対象物28とボルト24との組立作業や締付作業において、ずれ量を容易に補正することができる。
【0129】
なお、本発明は、上述の実施形態に限らず、この明細書の記載内容に基づき、種々の構成を採り得ることは勿論である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
【国際調査報告】