(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024085261
(43)【公開日】2024-06-26
(54)【発明の名称】組立システム、制御方法、およびプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240619BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022199698
(22)【出願日】2022-12-14
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1) 発行日 :令和3年12月15日 刊行物 :第22回 計測自動制御学会 システムインテグレーション部門講演会 予稿集 公益社団法人計測自動制御学会 システムインテグレーション部門 発行 *参加者専用アドレスより公開(参加者のみ閲覧可) (2) 開催日 :令和3年12月15日 集会名、開催場所 :第22回 計測自動制御学会 システムインテグレーション部門講演会(会期:令和3年12月15日~17日) 公益社団法人計測自動制御学会 システムインテグレーション部門 主催 オンライン開催
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(71)【出願人】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(72)【発明者】
【氏名】小松 洋音
(72)【発明者】
【氏名】浅野 伸
(72)【発明者】
【氏名】杉浦 篤
(72)【発明者】
【氏名】川部 満久
(72)【発明者】
【氏名】尾形 哲也
(72)【発明者】
【氏名】森 裕紀
(72)【発明者】
【氏名】菅 佑樹
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707BS12
3C707CS04
3C707CS08
3C707DS01
3C707ES03
3C707ET03
3C707EU14
3C707EV07
3C707HS27
3C707KS03
3C707KS21
3C707KS34
3C707KS35
3C707KS37
3C707KS38
3C707KT01
3C707KT05
3C707KV01
3C707KW03
3C707KX06
3C707LT12
3C707LT17
3C707LV19
3C707LW12
3C707LW15
3C707NS24
3C707WA16
(57)【要約】
【課題】より円滑に締結することができる。
【解決手段】組立システムは、複数の関節部を有するアームと、アームによって移動され、ナットを保持して回転させるエンドエフェクタと、各関節部の関節角を取得する第1センサと、対象物に設けられたボルトにナットが接触した場合に、伝達された接触力及びトルクを取得する第2センサとを有するマニピュレータと、制御装置とを備える。制御装置は、各関節部の関節角と、接触力及びトルクとを所定周期で取得し、各関節部の関節角に基づきナットの位置座標及び姿勢角を算出し、第1時刻でのナットの位置座標及び姿勢角と、第1時刻での接触力及びトルクとが入力されると、ナットがボルトに締結された状態を示す目標位置座標及び目標姿勢角に近づいた、第1時刻よりも後の第2時刻でのナットの位置座標及び姿勢角を示す指令値を出力するように学習された学習済みモデルを用いて、エンドエフェクタを制御する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
複数の関節部を有するアームと、
前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、
各々の前記関節部の関節角を取得する第1センサと、
施工対象物に設けられたボルトに前記ナットが接触した場合に、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、
を有するマニピュレータと、
前記マニピュレータを制御する制御装置と、
を備え、
前記制御装置は、
各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得する取得部と、
前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出する算出部と、
第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御する制御部と、
を備える組立システム。
【請求項2】
前記第1学習済みモデルは、
前記ナットの前記目標位置座標および目標姿勢角から、ランダムに与えられた量外れた前記ナットの既知位置座標および既知姿勢角が、前記目標位置座標および目標姿勢角になるように前記エンドエフェクタを制御する教示動作中に取得された複数の前記ナットの位置座標および姿勢角と、
各々の前記ナットの位置座標および姿勢角が取得された時刻に対応する前記接触力およびトルクと、
を含む教師データセットが入力される学習ステップが繰り返し実行されたことで、前記入力に応じた前記指令値を出力するように学習されている
請求項1に記載の組立システム。
【請求項3】
前記エンドエフェクタに設けられ、前記施工対象物を撮像した画像を生成する撮像装置を更に備え、
前記取得部は、前記画像を第2所定周期で更に取得し、
前記制御部は、
前記ナットが前記ボルトに接触していない第1位置で前記取得された第3時刻における前記画像と、前記第3時刻における前記ナットの位置座標および姿勢角とが入力されると、前記ナットが前記ボルトに接触した第2位置に前記ナットが近づいた、前記第3時刻よりも後の第4時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第2学習済みモデルを用いて、前記エンドエフェクタを制御する
請求項1に記載の組立システム。
【請求項4】
前記第2学習済みモデルは、
前記第2位置から前記第1位置に前記エンドエフェクタを移動させるダイレクトティーチング動作中に取得された複数の前記画像と、
各々の前記画像が取得された時刻に対応する前記ナットの位置座標および姿勢角と、
を含む教師データセットが入力される学習ステップが繰り返し実行されたことで、前記入力に応じた前記指令値を出力するように学習されている
請求項3に記載の組立システム。
【請求項5】
前記制御部は、
前記第2位置で前記取得された前記画像と、前記画像が取得された時刻に対応する前記ナットの位置座標および姿勢角と、前記画像が取得された時刻に対応する前記接触力およびトルクとが入力されると、前記ナットおよび前記ボルトの螺合の成否を示す判定結果を出力するように学習された第3学習済みモデルを用いて、前記エンドエフェクタを制御する
請求項3または請求項4に記載の組立システム。
【請求項6】
前記ナットの位置座標は、前記マニピュレータが持つ原点に準拠した世界座標系で表現されており、
前記制御装置は、前記算出された前記ナットの位置座標を前記世界座標系からボルト中心座標系に変換する座標変換部を更に備え、
前記制御部は、前記変換された前記ナットの位置座標を前記第1学習済みモデルに入力する
請求項1から請求項4のうちいずれか1項に記載の組立システム。
【請求項7】
前記制御装置は、前記取得された各々の前記関節部の関節角に基づく前記エンドエフェクタの自重に関する補正値を用いて、前記取得された前記接触力を補正する補正部を更に備え、
前記制御部は、前記補正された前記接触力を前記第1学習済みモデルに入力する
請求項1から請求項4のうちいずれか1項に記載の組立システム。
【請求項8】
前記第2センサは、各々の前記関節部が有するモータの電流値を取得可能な電流センサである
請求項1から請求項4のうちいずれか1項に記載の組立システム。
【請求項9】
前記マニピュレータが載置された台座部と、
前記台座部を前記施工対象物の周囲で移動可能にさせる移動機構と、
を更に備える
請求項1から請求項4のうちいずれか1項に記載の組立システム。
【請求項10】
前記エンドエフェクタは、
基部と、前記基部から延びるとともに前記軸線を中心とした筒状を成し、先端側に前記ナットの少なくとも一部を収容可能な収容部が形成されたソケット部とを有するナットランナと、
前記ソケット部の外周側に回動可能に固定されて前記軸線に交差する方向に延びる第1部分と、前記第1部分から前記先端側に延びる延在部および前記延在部の先端に設けられて前記軸線に近づくように前記延在部から突出することで前記ナットに当接する爪部を有する第2部分とを有するナット保持部材と、
前記基部と前記第1部分との間に設けられ、前記第1部分に対して前記先端側に向かう弾性力を付与する弾性部材と、
を有する
請求項3または請求項4に記載の組立システム。
【請求項11】
前記撮像装置は、前記収容部よりも前記基部に近い側の前記ソケット部内に配置され、
前記撮像装置は、
前記ナットの孔を通じて、前記施工対象物を撮像した前記画像を生成する撮像部と、
前記ナットの孔を通じて、前記施工対象物に向けて光を照射する照明部と、
を有する
請求項10に記載の組立システム。
【請求項12】
複数の関節部を有するアームと、
前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、
各々の前記関節部の関節角を取得する第1センサと、
施工対象物に設けられたボルトに前記ナットが接触した場合に、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、
を有するマニピュレータを制御する制御方法であって、
各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、
前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出するステップと、
第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御するステップと、
を実行する制御方法。
【請求項13】
複数の関節部を有するアームと、
前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、
各々の前記関節部の関節角を取得する第1センサと、
施工対象物に設けられたボルトに前記ナットが接触した場合に、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、
を有するマニピュレータを制御する制御装置のコンピュータに、
各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、
前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出するステップと、
第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、組立システム、制御方法、およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボットが備えるエンドエフェクタのワークに対する接触状態の変化をセンサが検知し、当該センサが検知した接触状態の変化に基づき、ワークに対するエンドエフェクタのずれ量を推定して補正するロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、上記特許文献1に記載の技術では、エンドエフェクタの手探り動作によって生じたボルトの頭部に対するソケットの接触状態の変化に基づいてずれ量を補正しているに留まるため、人間が行うような締結動作の再現が難しい。そのため、例えば、ソケットにボルトの頭部がはまるまでに時間がかかる場合がある。したがって、より円滑に締結することができる組立技術が期待されている。
【0005】
本開示は上記課題を解決するためになされたものであって、より円滑に締結することができる組立システム、制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本開示に係る組立システムは、複数の関節部を有するアームと、前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、各々の前記関節部の関節角を取得する第1センサと、施工対象物に設けられたボルトに前記ナットが接触した場合に、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、を有するマニピュレータと、前記マニピュレータを制御する制御装置と、を備え、前記制御装置は、各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得する取得部と、前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出する算出部と、第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御する制御部と、を備える。
【0007】
本開示に係る制御方法は、複数の関節部を有するアームと、前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、各々の前記関節部の関節角を取得する第1センサと、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、を有するマニピュレータを制御する制御方法であって、各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出するステップと、第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御するステップと、を実行する。
【0008】
本開示に係るプログラムは、複数の関節部を有するアームと、前記アームによって移動されるとともに、ナットを保持して前記ナットを軸線回りに回転させるエンドエフェクタと、各々の前記関節部の関節角を取得する第1センサと、前記エンドエフェクタから伝達された接触力およびトルクを取得する第2センサと、を有するマニピュレータを制御する制御装置のコンピュータに、各々の前記関節部の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、前記取得された各々の前記関節部の関節角に基づき、前記ナットの位置座標および姿勢角を算出するステップと、第1時刻における前記ナットの位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナットが前記ボルトに締結された状態を示す前記ナットの目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナットの位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデルを用いて、前記エンドエフェクタを制御するステップと、を実行させる。
【発明の効果】
【0009】
本開示によれば、より円滑に締結することができる組立システム、制御方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の第1実施形態に係る組立システムの全体を示す概略構成図である。
【
図2】本開示の第1実施形態に係るエンドエフェクタ、ナット、およびボルトを一列に並べて表示した図である。
【
図3】本開示の第1実施形態に係るナットランナの内部を軸線方向から見た図である。
【
図4】本開示の第1実施形態に係るエンドエフェクタにナットを保持させる際のナット保持部材の動きを説明するための図である。
【
図5】本開示の第1実施形態に係るエンドエフェクタからカラーを取り外す際のナット保持部材の動きを説明するための図である。
【
図6】本開示の第1実施形態に係る撮像装置が撮像した画像の一例を模式的に示す図である。
【
図7】本開示の第1実施形態に係る制御装置の機能ブロック図である。
【
図8】本開示の第1実施形態に係るナットの位置座標が表現される座標系を概念的に説明するための図である。
【
図9】本開示の第1実施形態に係るエンドエフェクタが保持したナットがボルトに接触した際にボルトから受ける接触力を概念的に説明するための図である。
【
図10】本開示の第1実施形態に係る補正部が接触力の補正に用いる補正値を概念的に説明するための図である。
【
図11】本開示の第1実施形態に係る第1学習済みモデルの学習ステップの一例を示すフローチャートである。
【
図12】本開示の第1実施形態に係る第2学習済みモデルを教示する際のダイレクトティーチング動作の一例を示す図である。
【
図13】本開示の第1実施形態に係る制御装置の動作の一例を示すフローチャートである。
【
図14】本開示の第2実施形態に係る組立システムの全体を示す概略構成図である。
【
図15】本開示の第3実施形態に係る組立システムの全体を示す概略構成図である。
【
図16】本開示の第3実施形態の変形例に係る組立システムの全体を示す概略構成図である。
【
図17】本開示の実施形態に係るコンピュータの構成を示すハードウェア構成図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、組立システムを実施するための形態を説明する。
【0012】
<組立システムの第1実施形態>
組立システムは、例えば組立工場などで稼動する自動化システムの一部であり、マニピュレータを制御することで複数の部品が一体化するように組み付ける。以下、組立システムが組立の対象とする部品を「施工対象物」と称する。
図1に示すように、施工対象物200は、例えば第1部品210と第2部品220とに分かれており、例えば作業台300(作業用机)の上に据え置かれている。組立システム100は、マニピュレータ10を制御することで、第1部品210および第2部品220を一体化させる。施工対象物200の例として、航空機部品の1つであるパネルや、船舶部品の1つであるパネルなどが挙げられる。組立システム100は、例えば、マニピュレータ10と、制御装置30とを備えている。
【0013】
(マニピュレータの構成)
本実施形態では、マニピュレータ10は、結合具としてのナット202を保持した状態で、全体の姿勢を変えることでナット202を移動させるとともに、当該ナット202を施工対象物200に設けられた結合具としてのボルト201に自動で締結させるロボットである。マニピュレータ10は、複数の関節部110を備える多関節ロボットである。本実施形態では、6つの関節部110を備える6軸の多関節ロボットをマニピュレータ10の一例として説明する。マニピュレータ10は、施工対象物200に接着剤などで仮固定されたボルト201にナット202を締結することで、第1部品210および第2部品220を一体化させている。
【0014】
図2に示すように、本実施形態では、マニピュレータ10が扱うナット202は、ナット本体202aと、ナット本体202aに一体に設けられたカラー202bとを有するカラーナットである。ナット202には、雌ねじ部としてのナット孔202hがナット本体202aおよびカラー202bの両方に亘って形成されている。本実施形態では、カラー202bは、外殻が六角柱状に形成されている。ナット202は、マニピュレータ10によってボルト201に締結される過程で、カラー202bのみが外され(カラー切り)、ナット本体202aがボルト201に締結された状態となる。ボルト201は、施工対象物200としての第1部品210および第2部品220のそれぞれに設けられた孔(図示省略)などに挿通されるとともに第2部品220から突出することで、雄ねじ部201aがむき出しとされている。本実施形態では、ボルト201は、例えば頭部を有さないスタッドボルト(植え込みボルト)である。マニピュレータ10は、むき出しとされたボルト201の雄ねじ部201aにナット202のナット孔202hを螺合させて締結させる。
図1に戻り、マニピュレータ10は、例えば、アーム11と、エンコーダ130と、力覚センサ140と、エンドエフェクタ12と、台座部15とを有している。
【0015】
(アーム)
アーム11は、マニピュレータ10の本体部分を成している。アーム11は、地面に配置された台座部15の上に載置されている。具体的には、アーム11の一端は、台座部15に固定されている。アーム11は、台座部15を基点に姿勢を変えることで台座部15の周囲を3次元的に移動可能である。アーム11は、例えば、複数(6つ)の関節部110と、第1接続部118aと、第2接続部118bと、第3接続部118cとを有している。
【0016】
各々の関節部110は、例えば円筒状を成しており、当該関節部110を回動可能にするためのモータ117を内部に有している。関節部110が有するモータ117には、例えばサーボモータが挙げられる。モータ117は、回転駆動することで、当該モータ117が回動の中心とする回動軸線回りに関節部110の全体を回動させる。以下、アーム11が備える6つの関節部110を台座部15に近い側から順に、「第1関節部111」、「第2関節部112」、「第3関節部113」、「第4関節部114」、「第5関節部115」、「第6関節部116」と称する。また、第1関節部111のモータ117を「第1モータ117a」と称し、第2関節部112のモータ117を「第2モータ117b」と称し、第3関節部113のモータ117を「第3モータ117c」と称し、第4関節部114のモータ117を「第4モータ117d」と称し、第5関節部115のモータ117を「第5モータ117e」と称し、第6関節部116のモータ117を「第6モータ117f」と称する。各々のモータ117(第1モータ117a~第6モータ117f)の回動は、制御装置30(後述)によって制御されている。
【0017】
第1関節部111は、台座部15の上面に固定されている。第1関節部111は、アーム11の上記一端に相当している。第1モータ117aは、例えば鉛直方向に延びるパン軸としての第1回動軸線O1を中心に回動可能であり、第1関節部111の全体を当該第1回動軸線O1回りに回動させる。第2関節部112は、第1関節部111と一体の状態で第1関節部111の外面から延びるように設けられている。第2モータ117bは、例えば水平方向に延びるチルト軸としての第2回動軸線O2を中心に回動可能であり、第2関節部112の全体を当該第2回動軸線O2回りに回動させる。第2関節部112には、第2回動軸線O2に交差する方向に延びる第1接続部118aが設けられている。第1接続部118aは、円筒状を成しており、第2関節部112の外面から延びている。第3関節部113は、第1接続部118aの第2関節部112から延びた先に一体に設けられている。第3モータ117cは、例えば水平方向に延びるチルト軸としての第3回動軸線O3を中心に回動可能であり、第3関節部113の全体を当該第3回動軸線O3回りに回動させる。第3関節部113には、第3回動軸線O3に交差する方向に延びる第2接続部118bが設けられている。第2接続部118bは、円筒状を成しており、第3関節部113の外面から延びている。第4関節部114は、第2接続部118bの第3関節部113から延びた先に一体に設けられている。第4モータ117dは、例えば水平方向に延びるチルト軸としての第4回動軸線O4を中心に回動可能であり、第4関節部114の全体を当該第4回動軸線O4回りに回動させる。第5関節部115は、第4関節部114と一体に設けられている。第5モータ117eは、例えば第4回動軸線O4と交差する方向に延びるパン軸としての第5回動軸線O5を中心に回動可能であり、第5関節部115の全体を当該第5回動軸線O5回りに回動させる。第5関節部115には、第5回動軸線O5に交差する方向に延びる第3接続部118cが設けられている。第3接続部118cは、円筒状を成しており、第5関節部115の外面から延びている。第6関節部116は、第3接続部118cの第5関節部115から延びた先に一体に設けられている。第6関節部116は、アーム11の上記一端とは反対側の他端に相当している。第6モータ117fは、例えば第5回動軸線O5と平行に延びるパン軸としての第6回動軸線O6を中心に回動可能である。上述した各々の関節部110がモータ117によって回動することで、アーム11の姿勢が3次元的に変化する。以下、第6回動軸線O6を単に「軸線Ar1」と称する。また、当該軸線Ar1が延びる方向を「軸線方向Da」と称し、軸線方向Daにおける一方側を単に「一方側Da1」と称し、一方側Da1とは反対の側を「他方側Da2」と称する。各々の関節部110のモータ117は、制御対象装置Sの一例である。
【0018】
(エンコーダ)
エンコーダ130は、関節部110の回転角を取得可能なセンサである。以下、各々の関節部110(第1関節部111~第6関節部116)の回転角(θ1~θ6)を「関節角」と称する。エンコーダ130は、例えば、各々の関節部110のモータ117に1つずつ設けられている。以下、第1モータ117aに設けられたエンコーダ130を「第1エンコーダ131」と称し、第2モータ117bに設けられたエンコーダ130を「第2エンコーダ132」と称し、第3モータ117cに設けられたエンコーダ130を「第3エンコーダ133」と称し、第4モータ117dに設けられたエンコーダ130を「第4エンコーダ134」と称し、第5モータ117eに設けられたエンコーダ130を「第5エンコーダ135」と称し、第6モータ117fに設けられたエンコーダ130を「第6エンコーダ136」と称する。各々のエンコーダ130は、モータ117から取得した関節角(センサデータ)を制御装置30に送信する。エンコーダ130は、第1センサ13の一例である。第1センサ13は、有線または無線通信によって制御装置30に接続されている。
【0019】
(力覚センサ)
力覚センサ140は、アーム11に接続されたロードセルである。具体的には、力覚センサ140は、第6関節部116に軸線方向Daにおける一方側Da1から固定されている。力覚センサ140には、第6関節部116とは反対側(軸線方向Daにおける一方側Da1)にエンドエフェクタ12(後述)が設けられている。力覚センサ140は、エンドエフェクタ12から伝達された力に関するデータを取得可能である。具体的には、力覚センサ140は、エンドエフェクタ12が保持したナット202がボルト201に接触した場合に、当該力覚センサ140に対してエンドエフェクタ12の側である一方側Da1から伝達された接触力の大きさを3軸の方向成分(Fx,Fy,Fz)ごとに取得可能であるとともに、軸ごとに働く各々の接触力の軸回りに作用するトルク(Mx,My,Mz)の大きさを取得可能である。以下、力覚データが取得した接触力(単位:N)およびトルク(単位:N・m)をまとめて「力データ」と称する場合がある。すなわち、力覚センサ140は、6軸の力データを取得可能である。力覚センサ140は、取得した力データ(センサデータ)を制御装置30に送信する。力覚センサ140は、第2センサ14の一例である。第2センサ14は、有線または無線通信によって制御装置30に接続されている。
【0020】
(エンドエフェクタ)
エンドエフェクタ12は、ナット202を保持してナット202を回転軸線Ar回りに回転させる。回転軸線Arは、例えば、軸線Ar1に対してオフセットされた位置で軸線方向Daに延びる仮想軸線である。なお、回転軸線Arは、軸線Ar1と一致していてもよい。本実施形態では、エンドエフェクタ12は、力覚センサ140に一方側Da1から設けられている。したがって、エンドエフェクタ12は、アーム11によって移動されるとともに、施工対象物200に設けられたボルト201に対して保持したナット202を締結する。
図1および
図2に示すように、エンドエフェクタ12は、例えば、撮像装置20と、本体部120と、ナットランナ121と、ナット保持部材124と、弾性部材128とを有している。
図2中では、図示の便宜上、ナットランナ121のソケット部123を断面で内部が見えるように示している。
【0021】
(撮像装置)
図1、
図2、および
図3に示すように、撮像装置20は、エンドエフェクタ12に設けられ、施工対象物200を撮像した画像を生成する。本実施形態では、撮像装置20は、後述のエンドエフェクタ12が有するナットランナ121のソケット部123の内部に、ソケット部123に対して回転不能の状態で配置されている。具体的には、
図2に示すように、撮像装置20は、後述の収容部123rよりも基部122に近い側のソケット部123内(後述の収容空間R)に配置されている。撮像装置20は、例えば、撮像部21と、照明部22とを有している。撮像部21は、後述のナット保持部材124によって保持されたナット202のナット孔202hを通じて施工対象物200を撮像した画像を生成する。撮像部21には、例えば、CCDイメージセンサやCMOSイメージセンサなどの半導体素子(固体撮像素子)が組み込まれたセンサモジュールを例示することができる。なお、撮像部21は、これに代えて、ファイバスコープなどであってもよい。照明部22は、ナット孔202hを通じて施工対象物200に向けて光を照射する。照明部22には、例えば、LED(Light Emitting Diode)などの素子を例示することができる。
図6は、撮像装置20が撮像した画像の一例を模式的に示す図である。
図6中では、施工対象物200に設けられたボルト201をやや斜め上方から撮像した画像の一例を模式的に示している。なお、
図6中では、ボルト201の中心線Ar2(符号の図示は省略)を中心とした穴が形成されたボルト201を一例として示しているが、ボルト201には穴が形成されていなくてもよい。
図6に示すように、撮像装置20は、ナット孔202hを通じて施工対象物200およびボルト201に光を照射した状態で、施工対象物200の表面や、ボルト201の雄ねじ部201aおよびボルト201の端面201eなどを撮像することができる。撮像装置20は、有線または無線通信によって制御装置30に接続されている。撮像装置20は、撮像した画像を制御装置30に送信する。
【0022】
(本体部)
本体部120は、力覚センサ140に固定されている。本体部120には、ナットランナ121のソケット部123(後述、
図2参照)が挿通されており、本体部120は、当該ソケット部123を回転軸線Ar回りに回転させるための締結用モータ120a(
図1参照)を内部に有している。本体部120の締結用モータ120aの回転は、制御装置30によって制御されている。本体部120の締結用モータ120aは、制御対象装置Sの一例である。
【0023】
(ナットランナ)
図2に示すように、ナットランナ121は、例えば、基部122と、ソケット部123とを有している。基部122は、例えば回転軸線Arを中心とした円板状を成しており、本体部120に一方側Da1から固定されている。基部122は、一方側Da1を向く前面122aを有している。ソケット部123は、基部122の前面122aよりも一方側Da1に延びるように設けられて、回転軸線Arを中心とした円筒状を成している。ソケット部123は、基部122および本体部120内に挿通されており、本体部120内に設けられた締結用モータ120aによって回動可能に保持されている(
図1参照)。ソケット部123は、内部を画定する円筒面状の内周面123iと、外側を向く円筒面状の外周面123oとを有している。以下、ソケット部123の内部の空間を「収容空間R」と称する。ソケット部123は、一方側Da1に配置された先端部分に開口123eを有している。本実施形態では、開口123eは、回転軸線Arに対して直交する正円形に形成されている。また、ソケット部123には、当該開口123eを含み、ナット202の少なくとも一部を収容可能な収容部123rが形成されている。収容部123rは、収容空間Rにおける一方側Da1に配置されている。
【0024】
図2および
図3に示すように、収容部123rは、例えば、複数のテーパ面123aと、複数の締結面123bと、位置決め面123cとで構成されている。各々のテーパ面123aは、開口123eが広がる方向に対して傾斜して配置されている。具体的には、各々のテーパ面123aは、他方側Da2に向かうにしたがって回転軸線Arに近づくように、開口123eが広がる方向に対して傾斜して配置されている。本実施形態では、6つのテーパ面123aが回転軸線Ar回りに並んで配置されており、回転軸線Ar回りに隣り合うテーパ面123a同士は、互いに接続されている。収容部123rにおける複数のテーパ面123aによって画定された領域は、回転軸線Arに直交する断面が正六角形を成すとともに、他方側Da2に向かうにしたがって小さくなるテーパ状を成している。
【0025】
各々の締結面123bは、1つのテーパ面123aに対応するように他方側Da2からテーパ面123aに接続されており、開口123eが広がる方向に対して垂直に配置されている。本実施形態では、締結面123bは、6つの締結面123bが回転軸線Ar回りに並んで配置されており、回転軸線Ar回りに隣り合う締結面123b同士は、互いに接続されている。収容部123rにおける複数の締結面123bによって画定された領域は、回転軸線Arに直交する断面が軸線方向Daに一定とされた六角柱状を成している。複数の締結面123bによって画定された領域は、例えば、ナット202のカラー202bがちょうど収まる大きさとされている。
【0026】
位置決め面123cは、複数(6つ)の締結面123bと、ソケット部123の上記内周面123iとを互いに接続する面であり、一方側Da1を向いている。本実施形態では、位置決め面123cは、開口123eが広がる方向に対して平行に配置されている。すなわち、位置決め面123cは、各々の締結面123bに対して垂直に配置されている。位置決め面123cは、収容部123rにナット202が収容された際、当該ナット202を位置決めさせるための面である。
図3に示すように、位置決め面123cは、一方側Da1から見て、正六角形の中央部分から正円形を取り除いた形状を成している。この位置決め面123cにナット202のカラー202bが一方側Da1から当接することで、ナット202が位置決めされる。つまり、位置決め面123cによってナット202の位置が位置決めされることで、当該ナット202が収容部123rよりも他方側Da2の収容空間Rに入り込むことがない。
【0027】
(ナット保持部材)
ナット保持部材124は、ナットランナ121の収容部123rにナット202のカラー202bが収容された際、当該ナット202が収容部123rから一方側Da1へ抜け落ちることがないようにナット202を保持する。
図2に戻り、ナット保持部材124は、ソケット部123の外周側に設けられている。本実施形態では、2つのナット保持部材124がソケット部123の外周側でソケット部123を間に挟むように設けられている。なお、3つ以上のナット保持部材124がソケット部123を中心にして回転軸線Ar回りに等間隔に配置されてもよい。ナット保持部材124は、例えば、回動軸125と、第1部分126と、第2部分127とを有している。
【0028】
回動軸125は、ソケット部123の外周面123oに回動可能に設けられている。第1部分126は、回動軸125に固定されており、回転軸線Arに交差する方向に延びる棒状の部材である。第2部分127は、第1部分126からソケット部123の先端側に向かって延びる延在部127aと、当該延在部127aの先端に設けられて回転軸線Arに近づくように延在部127aから突出する爪部127bとを有している。延在部127aは、回転軸線Arに沿って延びる棒状の部材である。延在部127aは、第1部分126と共にL字状を成している。爪部127bは、延在部127aから回転軸線Arに近づくにしたがって他方側Da2に向かっており、回転軸線Arに近づくにしたがって先細りした形状を成している。爪部127bは、ソケット部123の開口123eよりも一方側Da1に配置されている。また、
図2および
図3に示すように、爪部127bの先端は、締結面123bよりも回転軸線Arに近い側に位置している。爪部127bの先端は、ナット202のカラー202bがソケット部123の収容部123rに収容された際、弾性部材128(後述)の弾性力によってナット202の側面に当接する。具体的には、ナット202が収容部123rに収容された際、当該ナット202は、2つの爪部127bによって把持される(拘束される)。
【0029】
(弾性部材)
弾性部材128は、ナットランナ121の基部122と、ナット保持部材124の第1部分126との間に設けられたばねである。具体的には、弾性部材128は、一端が基部122の前面122aに固定されており、他端が第1部分126に固定されている。したがって、弾性部材128は、基部122と第1部分126とを互いに接続している。弾性部材128は、第1部分126に対してソケット部123の先端側(一方側Da1)に向かう弾性力を付与している。本実施形態では、1つの弾性部材128が1つのナット保持部材124に対応するように、基部122と第1部分126との間に設けられている。なお、複数の弾性部材128が1つのナット保持部材124に対応するように、基部122と第1部分126との間に設けられてもよい。また、弾性部材128は、第1部分126に対してソケット部123の先端側(一方側Da1)に向かう弾性力を付与することが可能であれば、ばねに限定されることはない。
【0030】
以下、
図4および
図5を参照して、エンドエフェクタ12のナット保持部材124にナット202を保持させる際のナット保持部材124の動き、および、エンドエフェクタ12のナット保持部材124からカラー202bを取り外す際のナット保持部材124の動きを説明する。
【0031】
図4中の(a)に示すように、組立システム100を利用するオペレータ(熟練作業員)などの手によって扱われたナット202のカラー202bが一方側Da1から爪部127bに当接した状態で、弾性部材128の弾性力に抗しながら他方側Da2に押圧されることで、ナット保持部材124の第2部分127および第1部分126は、回動軸125と共に回動する。第2部分127および第1部分126が回動軸125と共に回動することで、爪部127b同士の間隔は、ナット202が通ることができる程度に広がる。そして、
図4中の(b)に示すように、爪部127bの間を通り抜けたナット202のカラー202bは、収容部123r内に入り込み、テーパ面123aによって他方側Da2に案内されながら、締結面123bおよび位置決め面123cによって画定された領域で位置決めされる。この際、弾性部材128が第1部分126を一方側Da1に押圧しているため、第1部分126から延びる延在部127aと一体の爪部127bは、ナット本体202aの側面に当接する。つまり、ナット本体202aは、カラー202bが収容部123rに収容された際、2つの爪部127bによって把持される(拘束される)。なお、オペレータの手に代えて、治具やアクチュエータなどを用いてナット202をエンドエフェクタ12のナット保持部材124に保持させてもよい。
【0032】
図5中の(a)に示すように、ナットランナ121のソケット部123の回転によってナット202がボルト201に締結された際、ナット202のナット本体202aのみがボルト201に締結された状態でカラー202bがナット本体202aから外れる(破断する)。そして、ナット本体202aから分離されたカラー202bは、ナット保持部材124の爪部127bによって保持される。つまり、ナット202がカラー切りされる。そして、
図5中の(b)に示すように、オペレータなどの手によって第1部分126が弾性部材128の弾性力に抗しながら他方側Da2に押圧されることで、第1部分126および第2部分127が回動軸125を中心に回動した結果、爪部127b同士の間隔は、カラー202bが通ることができる程度に広がる。これによって、爪部127bによって保持されていたカラー202bが爪部127b同士の隙間から落下する。すなわち、第1部分126は、ナット本体202aとボルト201との締結が終わった後にナット保持部材124によって保持されたカラー202bを、爪部127b同士の隙間から落下させるためのレバーとして機能している。
【0033】
(制御装置の構成)
制御装置30は、エンドエフェクタ12に保持されたナット202が施工対象物200に設けられたボルト201に締結されるように、マニピュレータ10の各々の関節角、およびエンドエフェクタ12の本体部120が有する締結用モータ120aを制御する。
図7に示すように、制御装置30は、例えば、取得部31と、算出部32と、座標変換部33と、補正部34と、判定部35と、制御部36と、学習部37と、カウンタ部38と、記憶部39とを備えている。
【0034】
(取得部)
取得部31は、エンコーダ130(第1センサ13)および力覚センサ140(第2センサ14)から送信されるセンサデータをリアルタイムで受信することで経時的に取得する。取得部31は、エンコーダ130から各々の関節部110(第1関節部111~第6関節部116)の関節角を第1所定周期で取得し、力覚センサ140から力データを第1所定周期で取得する。第1所定周期は、例えば、エンコーダ130または力覚センサ140のサンプリングレートなどに基づき決定される。また、取得部31は、撮像装置20から送信される画像をリアルタイムで受信することで経時的に取得する。取得部31は、画像を第2所定周期で撮像装置20から取得する。第2所定周期は、例えば、撮像装置20のフレームレート(fps:flames per second)などに基づき決定される。なお、第2所定周期は、第1所定周期と同じであってもよく、異なっていてもよい。また、取得部31は、直近の施工の対象となるボルト201の中心位置座標を、記憶部39によってあらかじめ記憶されている施工対象物200のCADデータ395(Computer-Aided Design)などから取得する。施工対象物200のCADデータ395は、例えば、施工対象物200の輪郭を3次元的に示した点群データなどを含む。当該点群データを構成する各々の点には、マニピュレータ10が持つ原点(0,0,0)に準拠した世界座標系で表現される3次元の座標(Xw,Yw,Zw)が割り当てられている。
【0035】
取得部31は、取得した各々の関節部110の関節角を算出部32に送るとともに記憶部39に記憶させ、取得した力データを補正部34に送るとともに記憶部39に記憶させ、取得したボルト201の中心位置座標を座標変換部33に送るとともに記憶部39に記憶させ、取得した画像を判定部35および制御部36に送るとともに記憶部39に記憶させる。また、取得部31は、取得したボルト201の中心位置座標を座標変換部33に送った際、直近の施工の対象となるボルト201の中心位置座標を取得した旨を示す取得フラグをカウンタ部38に送る。取得フラグは、例えば1である。なお、カウンタ部38は、取得部31から受け付けた取得フラグを受け付けるたびに順次加算していき、取得フラグの加算結果を第6判定部356に送る。
【0036】
(算出部)
算出部32は、取得部31から受け付けた各々の関節部110(第1関節部111~第6関節部116)の関節角に基づき、ナット202の位置座標および姿勢角を算出する。具体的には、
図8に示すように、算出部32は、各々の関節部110の関節角に基づき、マニピュレータ10が持つ原点に準拠したナット202の端面202eの中心部分の位置座標(Xn,Yn,Zn)、および当該位置座標が表現される世界座標系の3座標面(XY平面、YZ平面、ZX平面)のそれぞれに対する傾斜角度である姿勢角(θx,θy,θz)を算出する。
図8中では、図示の便宜上、ナット202の位置座標(Xn,Yn,Zn)のみを示している。マニピュレータ10が持つ原点は、マニピュレータ10中に設定された任意の一点であってもよいし、マニピュレータ10と施工対象物200との位置関係を調整するためのキャリブレーションなどがなされた後に設定された施工対象物200中の任意の一点であってもよい。
図8中では、施工対象物200中にマニピュレータ10が持つ原点が配置された場合を一例として示している。
【0037】
算出部32は、算出したナット202の位置座標を座標変換部33に送るとともに記憶部39に記憶させ、算出したナット202の姿勢角を判定部35および制御部36に送るとともに記憶部39に記憶させる。なお、算出部32は、上記の算出動作に代えて、記憶部39にあらかじめ記憶されている、各々の関節部110の関節角と、ナット202の位置座標および姿勢角とが互いに関連付いた対応関係情報(関数など)に各々の関節角を入力することで出力された位置座標および姿勢角をナット202の位置座標および姿勢角として取得してもよい。
【0038】
(座標変換部)
座標変換部33は、取得部31から受け付けたボルト201の中心位置座標に基づき、算出部32から受け付けたナット202の位置座標をボルト中心座標系によって表現された位置座標に変換する。具体的には、座標変換部33は、世界座標系で表現されたナット202の位置座標を示すベクトルから、受け付けた直近の施工の対象とするボルト201の中心位置座標を示すベクトルを減算することによって、
図8中に矢印A(ベクトル)で示すように、ナット202の位置座標をボルト中心座標系(Xb,Yb,Zb)に変換する。本実施形態では、ボルト201の中心位置座標(ボルト中心座標系の原点)は、例えば、ボルト201の中心線Ar2上のどこかに配置されており、例えば、施工対象物200の表面とボルト201の中心線Ar2とが仮想的に交わる個所に配置されている。座標変換部33は、ボルト中心座標系に変換したナット202の位置座標を判定部35および制御部36に送るとともに記憶部39に記憶させる。
【0039】
(補正部)
補正部34は、取得部31から受け付けた力データに含まれる接触力を補正する。
図9は、エンドエフェクタ12が保持したナット202がボルト201に接触した際にナット202がボルト201から受ける接触力を概念的に説明するための図である。
図9中では、図示の便宜上、軸線方向Daに働く接触力を矢印Fbで示し、回転軸線Ar回りに作用するトルクを矢印Ftで示している。
図10は、補正部34が接触力(矢印Fb)の補正に用いる補正値(矢印Fg1)を概念的に説明するための図である。
図10中では、Dvが鉛直方向を示しており、CGがエンドエフェクタ12の重心位置を示している。補正部34は、エンドエフェクタ12の自重(矢印Fg)に基づく補正値(矢印Fg1)を接触力に加算することで、取得部31から受け付けた接触力(矢印Fb)を補正する。補正値(矢印Fg1)は、例えば、重力に伴うエンドエフェクタ12の自重(矢印Fg)が軸線方向Daにおける一方側Da1に方向成分を有する場合(
図10中の(a))に負の値を示す。一方、補正値(矢印Fg1)は、例えば、エンドエフェクタ12の自重(矢印Fg)が軸線方向Daにおける他方側Da2に方向成分を有する場合(
図10中の(b))に正の値を示す。補正値は、例えば、各々の関節部110の関節角に関連付いた対応関係情報(関数など)として、記憶部39にあらかじめ記憶されている。補正部34は、記憶部39に記憶されている当該対応関係情報を適時に参照することで補正値を取得する。補正部34は、補正後の接触力を含む力データを判定部35および制御部36に送るとともに記憶部39に記憶させる。
【0040】
(判定部)
判定部35は、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、補正部34から受け付けた力データに基づき、各種の判定の処理を行う。
図7に戻り、判定部35は、例えば、第1判定部351と、第2判定部352と、第3判定部353と、第4判定部354と、第5判定部355と、第6判定部356とを有している。
【0041】
(第1判定部)
第1判定部351は、補正部34から受け付けた力データに基づき、ナット202がボルト201に接触しているか否かを判定する。以下、第1判定部351による判定を「第1判定」と称する。第1判定部351は、例えば、受け付けた力データに含まれる接触力が所定の接触力の大きさを示す第1しきい値未満である場合に、ナット202がボルト201に接触していないと判定する。一方、第1判定部351は、取得した力データに含まれる接触力が第1しきい値以上である場合に、ナット202がボルト201に接触していると判定する。以下、ナット202がボルト201に接触していない時のナット202の位置を「第1位置」と称し、ナット202がボルト201に接触している時のナット202の位置を「第2位置」と称する。後述のナット202およびボルト201が螺合した状態は、ナット202が第2位置に位置した状態に含まれる。なお、第1しきい値は、例えば記憶部39にあらかじめ記憶されている。第1判定部351は、記憶部39に記憶されている第1しきい値を適時に参照することで上記第1判定を行う。第1判定部351は、ナット202がボルト201に接触している否かを示す第1判定の結果を制御部36に送る。
【0042】
(第2判定部)
第2判定部352は、算出部32から受け付けたナット202の姿勢角、および座標変換部33から受け付けたナット202の位置座標に基づき、ナット202の状態に異常があるか否かを判定する。以下、第2判定部352による判定を「第2判定」と称する。第2判定部352は、受け付けたナット202の位置座標がボルト中心座標系で表現された所定の座標領域(3次元領域)を逸脱している場合に、ナット202の位置座標に問題があると判定する。一方、第2判定部352は、受け付けたナット202の位置座標が座標領域内である場合に、ナット202の位置座標に問題がないと判定する。また、第2判定部352は、受け付けたナット202の姿勢角が所定の姿勢角しきい値以上である場合に、ナット202の姿勢角に問題があると判定する。一方、第2判定部352は、受け付けたナット202の姿勢角が姿勢角しきい値未満である場合に、ナット202の姿勢角に問題がないと判定する。第2判定部352は、ナット202の位置座標および姿勢角のうち1つ以上に問題があると判定した場合に、ナット202の状態に異常があると判定する。一方、第2判定部352は、ナット202の位置座標および姿勢角のいずれにも問題がないと判定した場合に、ナット202の状態に異常がないと判定する。なお、上記の座標領域および姿勢角しきい値は、例えば記憶部39にあらかじめ記憶されている。第2判定部352は、記憶部39に記憶されている座標領域および姿勢角しきい値を適時に参照することで上記第2判定を行う。第2判定部352は、第2判定の結果を制御部36に送る。
【0043】
(第3判定部)
第3判定部353は、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、補正部34から受け付けた力データに基づき、ナット202の螺合が成功したか否かを判定する。すなわち、第3判定部353は、ナット202およびボルト201の螺合の成否を判定する。本明細書中における「螺合」とは、例えば、ナット202の雌ねじ部としてのナット孔202h内における、端面202eに最も近い最初の一山が、ボルト201の露出した雄ねじ部201aにおける、端面201eに最も近い最初の一山にはまった(かかった)状態などを意味する。本実施形態では、第3判定部353は、画像と、ナット202の位置座標および姿勢角と、力データとを含むデータセットが入力されると、ナット202およびボルト201の螺合の成否を示す判定結果を出力するように学習された学習済みモデルを用いて判定を行う。以下、第3判定部353による判定を「第3判定」と称し、第3判定部353が第3判定に用いる学習済みモデルを「第3学習済みモデル393」と称する。すなわち、第3学習済みモデル393は、画像と、ナット202の位置座標および姿勢角と、力データとを含むデータセットを入力要素とし、ナット202およびボルト201の螺合の成否を示す判定結果を出力要素としている。第3学習済みモデル393は、例えば記憶部39にあらかじめ記憶されている。第3判定部353は、記憶部39に記憶されている第3学習済みモデル393に上記データセットを入力することで出力された判定結果を第3判定の結果として取得する。
【0044】
第3学習済みモデル393は、例えば、ディープニューラルネットワーク(DNN:Deep Neural Network)などの深層学習モデル(教師あり学習モデル)である。第3学習済みモデル393は、上記データセットが入力されるとともに、入力されたデータセットに対するナット202の螺合の成否(螺合できている、あるいは螺合できていないと人間によって正確に判断された正解データ)が教示される学習ステップが、複数回(例えば数百回)繰り返されることで生成される(学習する)。なお、第3学習済みモデル393には、例えば、畳み込みニューラルネットワーク(CNN)や回帰型ニューラルネットワーク(RNN)などの深層学習モデルが用いられてよい。
【0045】
第3判定部353は、ナット202およびボルト201の螺合が失敗したことを第3判定の結果が示す場合に、リトライ動作(後述)が必要であることを示すフラグ(i=1)を出力する。一方、第3判定部353は、ナット202およびボルト201の螺合が成功したことを第3判定の結果が示す場合に、リトライ動作が必要でないことを示すフラグ(i=0)を出力する。以下、第3判定部353が出力するリトライ動作の要否に関するフラグ(i=1または0)を「リトライフラグ」と称する。すなわち、第3判定部353が出力するリトライフラグは、第3判定の結果を示し、1または0の値である。第3判定部353は、第3判定の結果であるリトライフラグを制御部36およびカウンタ部38に送るとともに記憶部39に記憶させる。なお、カウンタ部38は、第3判定部353から受け付けたリトライフラグを受け付けるたびに順次加算していき、リトライフラグの加算結果を第6判定部356に送る。
【0046】
(第4判定部)
第4判定部354は、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、補正部34から受け付けた力データに基づき、ナット202の締結が成功したか否かを判定する。すなわち、第4判定部354は、ナット202およびボルト201の締結の成否を判定する。本明細書中における「締結」とは、例えば、ナット202の雌ねじ部としてのナット孔202h内における、端面202eから最も遠い最後の一山が、ボルト201の露出した雄ねじ部201aにおける、端面201eから最も遠い最後の一山にはまった状態などを意味する。本実施形態では、第4判定部354は、画像と、ナット202の位置座標および姿勢角と、力データとを含むデータセットが入力されると、ナット202およびボルト201の締結の成否を示す判定結果を出力するように学習された学習済みモデルを用いて判定を行う。以下、第4判定部354による判定を「第4判定」と称し、第4判定部354が第4判定に用いる学習済みモデルを「第4学習済みモデル394」と称する。すなわち、第4学習済みモデル394は、画像と、ナット202の位置座標および姿勢角と、力データとを含むデータセットを入力要素とし、ナット202およびボルト201の締結の成否を示す判定結果を出力要素としている。第4学習済みモデル394は、例えば記憶部39にあらかじめ記憶されている。第4判定部354は、記憶部39に記憶されている第4学習済みモデル394に上記データセットを入力することで出力された判定結果を第4判定の結果として取得する。
【0047】
第4学習済みモデル394は、例えば、ディープニューラルネットワーク(DNN)などの深層学習モデル(教師あり学習モデル)である。第4学習済みモデル394は、上記データセットが入力されるとともに、入力されたデータセットに対するナット202の締結の成否(締結できている、あるいは締結できていないと人間によって正確に判断された正解データ)が教示される学習ステップが、複数回(例えば数百回)繰り返されることで生成される(学習する)。なお、第4学習済みモデル394には、例えば、畳み込みニューラルネットワーク(CNN)や回帰型ニューラルネットワーク(RNN)などの深層学習モデルが用いられてよい。
【0048】
第4判定部354は、ナット202およびボルト201の締結が失敗したことを第4判定の結果が示す場合に、リトライ動作が必要であることを示すフラグ(i=1)を出力する。一方、第4判定部354は、ナット202およびボルト201の締結が成功したことを第4判定の結果が示す場合に、リトライ動作が必要でないことを示すフラグ(i=0)を出力する。以下、第4判定部354が出力するリトライ動作の要否に関するフラグ(i=1または0)を、第3判定部353が出力するリトライフラグと区別することなく「リトライフラグ」と称する。すなわち、第4判定部354が出力するリトライフラグは、第4判定の結果を示し、1または0の値である。第4判定部354は、第4判定の結果であるリトライフラグを第5判定部355、制御部36、およびカウンタ部38に送るとともに記憶部39に記憶させる。なお、カウンタ部38は、第4判定部354から受け付けたリトライフラグを受け付けるたびに順次加算していき、リトライフラグの加算結果を第6判定部356に送る。
【0049】
(第5判定部)
第5判定部355は、第4判定部354から受け付けた第4判定の結果がナット202の締結が成功したことを示す場合(i=0)に、カラー202bが破断して切断(カラー切り)されたか否かを判定する。具体的には、第5判定部355は、例えば補正部34から受け付けた力データに基づき、ナット202のカラー202bがナット本体202aから分離しているか否かを判定する。以下、第5判定部355による判定を「第5判定」と称する。第5判定部355は、例えば、受け付けた力データに含まれる接触力が所定の接触力の大きさを示す第2しきい値未満である場合に、カラー202bが切断されたと判定する。一方、第5判定部355は、取得した力データに含まれる接触力が第2しきい値以上である場合に、カラー202bが切断されていないと判定する。
【0050】
なお、第2しきい値は、例えば記憶部39にあらかじめ記憶されている。第5判定部355は、記憶部39に記憶されている第2しきい値を適時に参照することで上記第5判定を行う。また、第5判定部355は、上記の判定動作に代えて、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、補正部34から受け付けた力データに基づき、ナット202の締結が成功したか否かを判定してもよい。この場合、第5判定部355は、画像と、ナット202の位置座標および姿勢角と、力データとを含むデータセットが入力されると、カラー202bが切断されたか否かを示す判定結果を出力するように学習された第5学習済みモデル396などを用いて判定を行ってもよい。第5学習済みモデル396は、例えば記憶部39にあらかじめ記憶されている。第5判定部355は、第5判定の結果を制御部36に送るとともに記憶部39に記憶させる。
【0051】
(第6判定部)
第6判定部356は、カウンタ部38から受け付けた各種のフラグの加算結果に基づき、所定の判定を行う。以下、第6判定部356による判定を「第6判定」と称する。第6判定部356は、カウンタ部38から受け付けた取得フラグの加算結果に基づき、すべてのボルト201にナット202を締結したか否かを判定する。具体的には、第6判定部356は、カウンタ部38から受け付けた取得フラグの加算結果が施工対象物200に設けられた施工の対象となるボルト201の数である場合に、すべてのボルト201にナット202を締結したと判定する。一方、第6判定部356は、カウンタ部38から受け付けた取得フラグの加算結果が施工対象物200に設けられたボルト201の数未満である場合に、すべてのボルト201にナット202を締結していないと判定する。施工対象物200に設けられたボルト201の数は、例えば記憶部39のCADデータ395などにあらかじめ記憶されており、整数(例えば数千から数万)である。
【0052】
また、第6判定部356は、カウンタ部38から受け付けたリトライフラグの加算結果に基づき、所定回数リトライしたか否かを判定する。具体的には、第6判定部356は、カウンタ部38から受け付けたリトライフラグの加算結果が所定のリトライしきい値以上である場合に、所定回数リトライしたと判定する。一方、第6判定部356は、カウンタ部38から受け付けたリトライフラグの加算結果がリトライしきい値未満である場合に、所定回数リトライしていないと判定する。リトライしきい値は、例えば記憶部39にあらかじめ記憶されており、整数である。第6判定部356は、記憶部39に記憶されているリトライしきい値を適時に参照することで上記第6判定を行う。第6判定部356は、第6判定の結果を学習部37および制御部36に送る。
【0053】
(制御部)
制御部36は、判定部35から受け付けた各種の判定の結果に基づき、エンドエフェクタ12の動きを制御する。制御部36は、例えば、第1制御部361と、第2制御部362と、第3制御部363とを有している。
【0054】
(第1制御部)
第1制御部361は、ナット202がボルト201に接触していると第1判定の結果が示す場合(ナット202が第2位置に位置する場合)に、算出部32から受け付けたナット202の姿勢角と、座標変換部33から受け付けたナット202の位置座標と、補正部34から受け付けた力データとを含むデータセットに基づき、ボルト201に対するナット202の締結動作を実行する。ここでいう「締結動作」は、ナット202が第2位置に位置した状態で、ナット202およびボルト201が螺合するようにナット202の位置座標および姿勢角を変化させること、ならびに、ナット202およびボルト201が螺合した状態(ナット202が第2位置に位置した状態)で、ナット202およびボルト201が締結するようにナット202を回転させることなどを含む。具体的には、第1制御部361は、学習済みモデルを用いて、エンドエフェクタ12の移動および回転を制御する。ここでいう「エンドエフェクタ12の移動」は、例えばアーム11が有する各々の関節部110のモータ117の関節角を制御した結果、エンドエフェクタ12およびエンドエフェクタ12に保持されたナット202が移動することを意味し、「エンドエフェクタ12の回転」は、例えばエンドエフェクタ12の本体部120の締結用モータ120aを制御した結果、ナット202が回転することを意味する。以下、第1制御部361がエンドエフェクタ12の上記制御に用いる学習済みモデルを「第1学習済みモデル391」と称する。第1学習済みモデル391は、例えば記憶部39にあらかじめ記憶されている。
【0055】
第1学習済みモデル391は、第1時刻におけるナット202の位置座標および姿勢角と、第1時刻における接触力およびトルクとを含むデータセットが入力されると、ナット202がボルト201に締結された状態を示すナット202の目標位置座標および目標姿勢角に近づいた、第1時刻よりも後の第2時刻におけるナット202の位置座標および姿勢角を示す指令値を出力するように学習されている。すなわち、第1学習済みモデル391は、第1時刻におけるナット202の位置座標および姿勢角と、第1時刻における接触力およびトルクとを含むデータセットを入力要素とし、第2時刻におけるナット202の位置座標および姿勢角を示す指令値を出力要素としている。第1時刻と第2時刻との間の時間間隔は、例えば、上記第1所定周期である。ナット202の目標位置座標および目標姿勢角は、例えば、ナット202の雌ねじ部と、施工の対象となるボルト201の雄ねじ部201aとが互いに正確に噛み合って締結が完了した状態を示すナット202の位置座標および姿勢角を意味する。本実施形態では、第1制御部361は、記憶部39に記憶されている第1学習済みモデル391に上記データセットを入力することで出力された指令値に基づき、制御対象装置Sとしての各々の関節部110のモータ117の関節角、およびエンドエフェクタ12の締結用モータ120aを制御して、ナット202の位置座標および姿勢角を制御する。第1学習済みモデル391は、例えば、ディープニューラルネットワーク(DNN)などの深層学習モデル(教師あり学習モデル)である。なお、第1学習済みモデル391には、例えば、畳み込みニューラルネットワーク(CNN)や回帰型ニューラルネットワーク(RNN)などの深層学習モデルが用いられてよい。また、第1制御部361は、経時的に変化させた各々の関節部110の関節角、およびエンドエフェクタ12の締結用モータ120aの回転速度(ナット202の回転に伴うねじ送り速度)などを毎時刻で記憶部39に逐次記憶させる。
【0056】
(第2制御部)
第2制御部362は、取得部31から受け付けた画像と、算出部32から受け付けたナット202の姿勢角と、座標変換部33から受け付けたナット202の位置座標とを含むデータセットに基づき、エンドエフェクタ12の移動および回転を制御する。具体的には、第2制御部362は、学習済みモデルを用いて、エンドエフェクタ12の移動および回転を制御して、ナット202がボルト201に接触していない第1位置に位置するナット202を、ナット202がボルト201に接触した第2位置に位置させる。すなわち、第2制御部362は、第1位置に位置するナット202を、施工の対象となるボルト201に外部からアプローチさせる。以下、第2制御部362がエンドエフェクタ12の制御に用いる学習済みモデルを「第2学習済みモデル392」と称する。第2学習済みモデル392は、例えば記憶部39にあらかじめ記憶されている。
【0057】
第2学習済みモデル392は、第1位置で取得された第3時刻における画像と、第3時刻におけるナット202の位置座標および姿勢角とを含むデータセットが入力されると、第2位置にナット202が近づいた、第3時刻よりも後の第4時刻におけるナット202の位置座標および姿勢角を示す指令値を出力するように学習されている。すなわち、第2学習済みモデル392は、第1位置で取得された第3時刻における画像と、第3時刻におけるナット202の位置座標および姿勢角とを含むデータセットを入力要素とし、第4時刻におけるナット202の位置座標および姿勢角を示す指令値を出力要素としている。第3時刻と第4時刻との間の時間間隔は、例えば、上記第2所定周期である。本実施形態では、第2制御部362は、記憶部39に記憶されている第2学習済みモデル392に上記データセットを入力することで出力された指令値に基づき、制御対象装置Sとしての各々の関節部110のモータ117の関節角を制御して、ナット202をボルト201に近づける(アプローチさせる)。第2学習済みモデル392は、例えば、ディープニューラルネットワーク(DNN)などの深層学習モデル(教師あり学習モデル)である。なお、第2学習済みモデル392には、例えば、畳み込みニューラルネットワーク(CNN)や回帰型ニューラルネットワーク(RNN)などの深層学習モデルが用いられてよい。
【0058】
(第3制御部)
第3制御部363は、ナット202およびボルト201の螺合が失敗したことを示す第3判定の結果(i=1)を受け付けた場合、または、ナット202およびボルト201の締結が失敗したことを示す第4判定の結果(i=1)を受け付けた場合に、リトライ動作を実行する。具体的には、第3制御部363は、過去の所定時刻から第3判定または第4判定の結果を受け付けた時刻に至るまでに行われたエンドエフェクタ12の制御(後述の締結動作ステップS106,S4など)をさかのぼるように逆順に実施する。ここでいう「過去の所定時刻」は、例えば、エンドエフェクタ12の制御が開始された時刻(後述の締結動作ステップS106,S4などが開始された時刻)を意味する。第3制御部363は、記憶部39に記憶された各々の関節部110の関節角の時系列上のデータ、および、エンドエフェクタ12の締結用モータ120aの回転速度(ナット202の回転に伴ったねじ送り速度)などを適時に参照しながら、エンドエフェクタ12の移動および回転を逆順に制御する。
【0059】
(学習部)
学習部37は、第6判定部356から受け付けた第6判定の結果が、すべてのボルト201にナット202を締結したことを示す場合に、記憶部39に記憶されている各種のデータに基づき、第1学習済みモデル391におけるパラメータの重み値を修正する。学習部37は、例えば誤差逆伝播法などを用いて、第1学習済みモデル391におけるパラメータの重み値を修正する(学習させる)。学習部37は、第1学習済みモデル391が持つパラメータを修正した際、修正した旨を示す修正フラグをカウンタ部38に送る。修正フラグは、例えば1である。
【0060】
なお、カウンタ部38は、学習部37から受け付けた修正フラグを受け付けるたびに順次加算していき、修正フラグの加算結果を第6判定部356に送る(返す)。第6判定部356は、カウンタ部38から受け付けた修正フラグの加算結果と所定数値とを比較する。第6判定部356は、修正フラグの加算結果が所定数値以上である場合に、所定回数修正したと判定する。一方、第6判定部356は、修正フラグの加算結果が所定数値未満である場合に、所定回数修正していないと判定する。所定数値は、例えば記憶部39にあらかじめ記憶されており、整数である。第6判定部356は、記憶部39に記憶されている所定数値を適時に参照することで当該第6判定を行う。
【0061】
(第1学習済みモデルの教示方法)
以下、第1制御部361が用いる第1学習済みモデル391の学習ステップ(教示のされ方)について
図11を参照して説明する。
図11は、第1学習済みモデル391の学習ステップの一例を示すフローチャートである。なお、以下では説明の便宜上、学習がなされる前のモデルであっても区別することなく「学習済みモデル」と称する。
【0062】
はじめに、取得部31は、直近の施工の対象となるボルト201のデータを、記憶部39にあらかじめ記憶されているCADデータ395などから取得する(ステップS101)。次いで、取得部31は、ナット202の既知位置座標および既知姿勢角を取得する(ステップS102)。ここでいう取得部31が取得するナット202の「既知位置座標および既知姿勢角」は、例えば記憶部39によってあらかじめ記憶されているばらつき生成モデル397(
図7参照)から取得される。ばらつき生成モデル397は、取得部31によって参照された場合に、ボルト201の端面201eにおける任意の位置座標(第2位置)および姿勢角を、例えば正規分布などの確率分布にしたがってばらつかせ(誤差をあえてランダムに与えた状態)、取得部31に出力する。ばらつき生成モデル397が平均とする位置座標は、例えば、ボルト201の端面201eの中心位置座標であり、ばらつき生成モデル397が平均とする姿勢角は、例えば、回転軸線Arとボルト201の中心線Ar2とが一直線に一致した時の姿勢角である。ボルト201の端面201eの中心位置座標は、例えば、ボルト中心座標系(Xb,Yb,Zb)で表現されている。つまり、取得部31は、ばらつき生成モデル397を参照することでナット202の既知位置座標および既知姿勢角を取得する。次いで、第2制御部362は、第2学習済みモデル392を用いて、対象となるボルト201にナット202をアプローチさせる(ステップS103)。なお、ステップS103では、ボルト201にナット202をアプローチさせるに当たり、第2学習済みモデル392を用いなくてもよい。この場合、制御部36は、例えば記憶部39にあらかじめ記憶されている所定のアプローチ動作などにしたがって、対象となるボルト201にナット202をアプローチさせてもよい。次いで、第1判定部351は、ナット202がボルト201に接触したか否かを判定する第1判定を行う(ステップS104)。ナット202がボルト201に接触したことを第1判定の結果が示す場合(ステップS104:YES)、制御部36による制御またはオペレータの手動などによって、ナット202の位置座標および姿勢角をステップS102で取得されたナット202の既知位置座標および既知姿勢角に修正する(ステップS105)。一方、ナット202がボルト201に接触していないことを第1判定の結果が示す場合(ステップS104:NO)、ステップS103の処理に戻る。ステップS105に次いで、締結動作ステップS106を実行する。
【0063】
締結動作ステップS106では、制御部36は、あらかじめ定められた手順にしたがったナット202の締結動作を開始する。本実施形態では、あらかじめ定められた手順にしたがったナット202の締結動作を「教示動作」と称する。ここでいう「あらかじめ定められた手順」とは、ナット202の既知位置座標(第2位置)および既知姿勢角から、ナット202の目標位置座標および目標姿勢角に転じさせるためのナット202の位置座標および姿勢角を示す指令値を時系列で示したデータなどを意味している。当該データは、例えば記憶部39にあらかじめ記憶されている。なお、あらかじめ定められた手順は、例えば、締結動作の開始時刻におけるナット202の既知位置座標および既知姿勢角と、締結動作の開始時刻よりも後の複数の時刻と、各々の時刻に対応するナット202の位置座標および姿勢角の指令値とが互いに関連付いた対応関係情報(関数など)であってもよい。制御部36は、あらかじめ定められた手順にしたがって、エンドエフェクタ12の移動および回転を制御する。制御部36がエンドエフェクタ12を制御する教示動作中、取得部31、算出部32、座標変換部33、および補正部34は、処理の結果を記憶部39に逐次記憶させる。教示動作中に記憶部39に記憶された取得部31、算出部32、座標変換部33、および補正部34の処理の結果は、第1学習済みモデル391の学習に用いる教師データセットとされる。あらかじめ定められた手順に含まれる最後の指令値に基づき、制御部36がエンドエフェクタ12を制御し終えた場合に、締結動作ステップS106が終了する。
【0064】
締結動作ステップS106に次いで、第4判定部354は、ナット202の締結が成功したか否かを判定する第4判定を行う(ステップS107)。ナット202の締結が成功したことを第4判定の結果が示す場合(ステップS107:YES)、第6判定部356は、すべてのボルト201にナット202を締結したか否かの判定を行う(ステップS108)。一方、ナット202の締結が失敗したことを第4判定の結果が示す場合(ステップS107:NO)、リトライ動作ステップS111を実行する。リトライ動作ステップS111では、第3制御部363は、上述のリトライ動作を行う。リトライ動作が終了した場合、ステップS105の処理に戻る。
【0065】
ここで、ステップS108の判定の処理の説明に戻り、すべてのボルト201にナット202を締結したことを第6判定の結果が示す場合(ステップS108:YES)、締結動作ステップS106で取得された各種のデータに基づき、学習部37は、第1学習済みモデル391が持つパラメータの重み値を修正する(ステップS109)。一方、すべてのボルト201にナット202を締結していないと第6判定の結果が示す場合(ステップS108:NO)、ステップS101の処理に進む。ステップS109の処理に次いで、第6判定部356は、第1学習済みモデル391が持つパラメータの重み値を学習部37が所定回数に亘って修正したか否かを判定する(ステップS110)。第6判定部356の判定の結果が、所定回数修正したことを示す場合(ステップS110:YES)、学習ステップが完了する。一方、第6判定部356の判定の結果が、所定回数修正していないことを示す場合(ステップS110:NO)、ステップS109の処理に戻る。
【0066】
以上説明した一連の処理動作を経る学習ステップにより取得された各種のデータに基づき、学習部37がパラメータの重み値を繰り返し修正するため、第1学習済みモデル391は、入力に応じた指令値を出力するように教示される。すなわち、第1学習済みモデル391は、ナット202の目標位置座標および目標姿勢角から、ランダムに与えられた量外れたナット202の既知位置座標および既知姿勢角が、目標位置座標および目標姿勢角になるようにエンドエフェクタ12を制御する教示動作中に取得された複数のナット202の位置座標および姿勢角と、各々のナット202の位置座標および姿勢角が取得された時刻に対応する接触力およびトルクとを含む教師データセットが入力される学習ステップが繰り返し実行されたことで、入力に応じた指令値を出力するように学習されている。
【0067】
(第2学習済みモデルの教示方法)
また、第2制御部362が用いる第2学習済みモデル392は、第1位置から第2位置にエンドエフェクタ12を移動させるダイレクトティーチング動作中に取得された複数の画像と、各々の画像が取得された時刻に対応するナット202の位置座標および姿勢角とを含む教師データセットが入力される学習ステップが繰り返し実行されたことで、入力に応じた指令値を出力するように学習(逆教示)されている。具体的には、本実施形態における逆教示は、エンドエフェクタ12を第2位置から第1位置へ移動(ダイレクトティーチング動作)させた際に取得部31により取得された画像と、ナット202の位置座標および姿勢角の時系列上のデータセットの時系列が逆になるように変換し、逆時系列に変換されたデータセットを上記教師データセットとして第2学習済みモデル392に学習させることである。また、ここでいう「ダイレクトティーチング動作」とは、
図12に一例として示すように、オペレータの手動などによって、第2位置から第1位置にナット202が移動するようにエンドエフェクタ12を移動させる動作のことを意味する。なお、第2学習済みモデル392を学習(逆教示)させるための上記学習ステップは、例えば数十回から数百回に亘って繰り返し行われる。
【0068】
(制御装置の動作)
続いて、本実施形態における制御装置30の動作の一例について
図13を参照して説明する。ただし、以下に説明する処理の順番は、以下の例に限定されず、適宜入れ替えられてもよい。
【0069】
はじめに、第2制御部362は、第2学習済みモデル392を用いて、施工の対象となるボルト201にナット202をアプローチさせる(ステップS1)。次いで、第2判定部352は、ナット202の状態に異常があるか否かを判定する第2判定を行う(ステップS2)。ナット202の状態に異常があることを第2判定の結果が示す場合(ステップS2:YES)、例えば制御部36の動作によりナット202をボルト201から一度離間させた後、ステップS1の処理に戻る。一方、ナット202の状態に異常がないことを第2判定の結果が示す場合(ステップS2:NO)、第1判定部351は、ナット202がボルト201に接触したか否かを判定する第1判定を行う(ステップS3)。ナット202がボルト201に接触していないことを第1判定の結果が示す場合(ステップS3:NO)、例えば制御部36の動作によりナット202をボルト201から一度離間させた後、ステップS1の処理に戻る。一方、ナット202がボルト201に接触したことを第1判定の結果が示す場合(ステップS3:YES)、締結動作ステップS4を実行する。締結動作ステップS4では、第1制御部361は、第1学習済みモデル391を用いてエンドエフェクタ12の移動および回転を制御することで対象となるボルト201に対するナット202の締結動作を実行する。締結動作ステップS4では、第1制御部361が締結動作を実行している際、第3判定部353は、ナット202の螺合が成功したか否かを判定する第3判定を行ってよい。ナット202の螺合が成功したことを第3判定の結果が示す場合、第1制御部361は、締結動作を実行し続ける。一方、ナット202の螺合が失敗したことを第3判定の結果が示す場合、第1制御部361は、締結動作を停止する。第1制御部361が締結動作を停止した場合、例えば、リトライ動作ステップS8を実行する。
【0070】
第1制御部361による締結動作が終了した場合、第4判定部354は、ナット202の締結が成功したか否かを判定する第4判定を行う(ステップS5)。ナット202の締結が成功したことを第4判定の結果が示す場合(ステップS5:YES)、第5判定部355は、カラー202bが破断して切断されたか否かを判定する(ステップS6)。一方、ナット202の締結が失敗したことを第4判定の結果が示す場合(ステップS5:NO)、リトライ動作ステップS8を実行する。リトライ動作ステップS8では、第3制御部363は、上述のリトライ動作を行う。リトライ動作ステップS8が終了した場合、第6判定部356は、所定回数リトライしたか否かを判定する第6判定を行う(ステップS9)。所定回数リトライしたことを第6判定の結果が示す場合(ステップS9:YES)、例えば、制御装置30は動作を終了する。一方、所定回数リトライしていないことを第6判定の結果が示す場合(ステップS9:NO)、ステップS1の処理に進む。ここで、ステップS6の判定の処理の説明に戻り、カラー202bが切断されていないことを第5判定の結果が示す場合(ステップS6:NO)、締結動作ステップS4に戻る。一方、カラー202bが切断されたことを第5判定の結果が示す場合(ステップS6:YES)、第6判定部356は、すべてのボルト201にナット202を締結したか否かを判定する(ステップS7)。すべてのボルト201にナット202を締結していないことを第6判定の結果が示す場合(ステップS7:NO)、ステップS1の処理に進む。一方、すべてのボルト201にナット202を締結したことを第6判定の結果が示す場合(ステップS7:YES)、例えば、制御装置30は動作を終了する。
【0071】
以上説明した制御装置30の動作は、施工対象物200の組立工程で繰り返し実行される。
【0072】
(作用・効果)
本実施形態では、第1時刻における各々の関節部110の関節角に基づくナット202の位置座標および姿勢角と、第1時刻におけるエンドエフェクタ12から伝達された接触力およびトルクとを入力とする第1学習済みモデル391により出力された第2時刻におけるナット202の位置座標および姿勢角の指令値に基づき、エンドエフェクタ12の移動および回転が制御される。この際、第1学習済みモデル391が出力する第2時刻における指令値のナット202の位置座標および姿勢角は、ナット202がボルト201に締結された状態を示すナット202の目標位置座標および目標姿勢角に近づいている。つまり、第1学習済みモデル391に対しての入力が行われるたびに、ナット202の状態を、ナット202がボルト201に締結された状態に向けて遷移させることができる。したがって、施工対象物200に設けられたボルト201にナット202をより円滑に締結することができる。
【0073】
また、本実施形態では、第1学習済みモデル391は、目標位置座標および目標姿勢角から外れたあらかじめ把握されている既知位置座標および既知姿勢角を示すナット202をボルト201に締結される教示が繰り返し実行されることで上記入出力がなされるようにあらかじめ学習されている。そのため、例えば、実運用時にナット202およびボルト201の締結を行う際にナット202のボルト201に対する位置座標のずれや姿勢角のずれが生じても、実際に締結にかかった時間が、予測された締結にかかる時間から乖離することを抑制することができる。その結果、例えば、組立にかかる工数などを低減させることができる。
【0074】
また、本実施形態では、ナット202がボルト201に接触していない第1位置で取得された第3時刻における施工対象物200を撮像した画像と、第3時刻におけるナット202の位置座標および姿勢角とを入力とする第2学習済みモデル392により出力された第4時刻におけるナット202の位置座標および姿勢角を示す指令値に基づき、エンドエフェクタ12の移動および回転が制御される。この際、第2学習済みモデル392が出力する第4時刻における指令値のナット202の位置座標および姿勢角は、ナット202がボルト201に接触した第2位置の位置座標および姿勢角に近づいている。つまり、第2学習済みモデル392に対しての入力が行われるたびに、第1位置に位置するナット202を、第2位置に向けて遷移させることができる。したがって、ナット202を施工対象物200に設けられたボルト201により円滑にアプローチさせることができる。また、画像を第2学習済みモデル392の入力要素とするため、例えば画像を入力要素に採用しない場合と比較して、上記の作用をより高い精度で実現することができる。
【0075】
また、本実施形態では、第2学習済みモデル392は、第1位置から第2位置にエンドエフェクタ12を移動させるダイレクトティーチング動作中に取得された複数の画像と、各々の画像が取得された時刻に対応するナット202の位置座標および姿勢角とを含む教師データセットが入力される学習ステップが繰り返し実行されることで上記入出力がなされるようにあらかじめ学習されている(逆教示されている)。発明者らは、組立システム100を利用するオペレータの手動によってエンドエフェクタ12を移動させるダイレクトティーチング動作を用いて第2学習済みモデル392を教示させるに当たって、ナット202の位置が第1位置から第2位置に移動するようにエンドエフェクタ12を移動させる動作よりも、第2位置から第1位置に移動するようにエンドエフェクタ12を移動させる動作の方が容易であること、および、動作中のエンドエフェクタ12のブレなどが発生しにくいことを見出した。その結果、ノイズなどの割合が少ないより高品質な教師データセットを取得することができる。
【0076】
また、本実施形態では、第2位置で取得された画像と、画像が取得された時刻に対応するナット202の位置座標および姿勢角と、画像が取得された時刻に対応する接触力およびトルクとが入力されると、ナット202およびボルト201の螺合の成否を示す判定結果を出力するように学習された第3学習済みモデル393を用いて、エンドエフェクタ12を制御する。これにより、例えば、ナット202およびボルト201の螺合が誤った状態で締結に向かうことを回避できる。その結果、例えば、組立における歩留まりの低下などを抑制することができる。
【0077】
また、本実施形態では、ナット202の位置座標が表現される座標系が、世界座標系からボルト中心座標系に変換される。これにより、世界座標系で表現されるナット202の位置座標がボルト201ごとに生じる固有の位置座標であるのに対して、ボルト201中心座標といった同一の尺度でナット202のボルト201に対する相対的な位置座標を表すことができる。その結果、ボルト201ごとに教示する必要が生じないため、汎化性が高まるとともに、第1学習済みモデル391の教示にかかる労力および時間を削減することができる。
【0078】
また、本実施形態では、関節部110の関節角に基づくエンドエフェクタ12の自重に関する補正値を用いて取得された接触力を補正する。これにより、エンドエフェクタ12から伝達された接触力よりも実際に生じた接触力に近づいた接触力を第1学習済みモデル391の入力要素とすることができるため、汎化性を高めることができる。
【0079】
また、本実施形態におけるエンドエフェクタ12によれば、弾性部材128が第1部分126に対してソケット部123の先端側に向かう弾性力を付与することで、ナットランナ121の収容部123rにカラー202bが収容されたナット202を、ナット保持部材124の爪部127bが把持する機構である。これにより、例えばナット202を吸引して保持する機構を備えたエンドエフェクタ12などと比較して、より簡易な構成でエンドエフェクタ12がナット202を保持することができる。また、撮像装置20がナットランナ121のソケット部123内に配置されており、当該撮像装置20は、ナット孔202hを通じて施工対象物200に向けて光を照射するとともに、施工対象物200を撮像した画像を生成する。すなわち、撮像装置20の撮像範囲を集中的に照らしながら画像を生成することができる。したがって、施工現場の照明環境などの影響を受けにくい。
【0080】
<組立システムの第2実施形態>
次に、本開示に係る組立システム100の第2実施形態について
図14を参照して説明する。なお、以下に説明する第2実施形態では、上記の第1実施形態と共通する構成については図中に同符号を付してその説明を省略する。第2実施形態では、組立システム100は、力覚センサ140を備えておらず、当該力覚センサ140に代えて、電流センサ141を備えている。本実施形態では、第1実施形態で説明した力データが、電流センサ141が取得する電流値に対応しており、上述した力データを電流値に適宜置き換えて読めばよい。
【0081】
(電流センサ)
電流センサ141は、各々の関節部110(第1関節部111~第6関節部116)が有するモータ117(第1モータ117a~第6モータ117f)の電流値を取得可能なセンサである。電流センサ141は、有線または無線通信によって各々の関節部110が有するモータ117に接続されている。電流センサ141は、第2センサ14の一例である。電流センサ141は、取得したモータ117の電流値を制御装置30に送信する。なお、電流センサ141は、例えば、マニピュレータ10に設けられてもよく、制御装置30に設けられてもよい。
【0082】
(制御装置)
本実施形態では、取得部31は、電流センサ141から各々のモータ117を流れる電流の電流値を第1所定周期で取得し、取得した電流値を判定部35および制御部36に送るとともに記憶部39に記憶させる。第1判定部351は、取得部31から受け付けた電流値に基づき、第1判定を行う。第3判定部353は、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、取得部31から受け付けた電流値に基づき、第3判定を行う。この際、第3学習済みモデル393は、画像と、ナット202の位置座標および姿勢角と、電流値とを含むデータセットが入力されると、ナット202およびボルト201の螺合の成否を示す判定結果を出力するように学習されている。第4判定部354は、取得部31から受け付けた画像、算出部32から受け付けたナット202の姿勢角、座標変換部33から受け付けたナット202の位置座標、ならびに、取得部31から受け付けた電流値に基づき、第4判定を行う。この際、第4学習済みモデル394は、画像と、ナット202の位置座標および姿勢角と、電流値とを含むデータセットが入力されると、ナット202およびボルト201の締結の成否を示す判定結果を出力するように学習されている。第5判定部355は、第4判定部354から受け付けた第4判定の結果がナット202の締結が成功したことを示す場合に、取得部31から受け付けた電流値に基づき、ナット202のカラー202bがナット本体202aから分離しているか否かを判定する。第1制御部361は、ナット202がボルト201に接触していると第1判定の結果が示す場合に、算出部32から受け付けたナット202の姿勢角と、座標変換部33から受け付けたナット202の位置座標と、取得部31から受け付けた電流値とを含むデータセットに基づき、ボルト201に対するナット202の締結動作を実行する。この際、第1学習済みモデル391は、第1時刻におけるナット202の位置座標および姿勢角と、第1時刻における電流値とを含むデータセットが入力されると、ナット202がボルト201に締結された状態を示すナット202の目標位置座標および目標姿勢角に近づいた、第1時刻よりも後の第2時刻におけるナット202の位置座標および姿勢角を示す指令値を出力するように学習されている。
【0083】
(作用・効果)
本実施形態では、電流センサ141が取得した各々の関節部110が有するモータ117の電流値に、第1実施形態で説明した力データを代替させることができる。すなわち、各々のモータ117の電流値は、ナット202がボルト201に接触した際にエンドエフェクタ12から伝達される接触力およびトルクを示している。これにより、マニピュレータ10が力覚センサ140を備える必要がない。したがって、例えば、マニピュレータ10全体のサイズおよび重量を抑えることができる。
【0084】
<組立システムの第3実施形態>
次に、本開示に係る組立システム100の第3実施形態について
図15を参照して説明する。なお、以下に説明する第3実施形態では、上記の第1実施形態と共通する構成については図中に同符号を付してその説明を省略する。第3実施形態では、組立システム100は、移動機構16と、キャリブレーション機構17とを更に備えている。
【0085】
(移動機構)
移動機構16は、台座部15を施工対象物200の周囲で移動可能にさせる。本実施形態では、移動機構16は、台座部15に設けられた複数の車輪160である。移動機構16は、作業台300の周囲を走行可能である。
図15中では、4つの車輪160が台座部15に設けられている場合を一例として示している。車輪160は、床面に当接した状態で回動可能に台座部15に設けられている。車輪160の駆動(回転)は、制御装置30によって制御されてもよいし、組立システム100を利用するオペレータによる手動などであってもよい。
【0086】
(キャリブレーション機構)
キャリブレーション機構17は、施工対象物200と、移動機構16との相対的な位置を決定する。具体的には、キャリブレーション機構17は、例えば、世界座標系で表現された施工対象物200中の任意の一点と、マニピュレータ10が持つ原点に準拠した世界座標系の任意の一地点とを一致させる(キャリブレーションする)。つまり、キャリブレーション機構17により、施工対象物200に対する移動機構16の位置がキャリブレーションされる。キャリブレーション機構17は、例えば、マニピュレータ10などに設けられている。
【0087】
(作用・効果)
本実施形態では、台座部15に当該台座部15を施工対象物200の周囲で移動可能にする車輪160が設けられているため、より広い範囲でマニピュレータ10が動作を行うことができる。したがって、例えば、サイズが大きい施工対象物200を施工する場合に、施工対象物200の配置や姿勢などを変更させる必要が生じにくい。
【0088】
<第3実施形態の変形例>
次に、本開示に係る組立システム100の第3実施形態の変形例について
図16を参照して説明する。本変形例では、上記第3実施形態に対して移動機構16の構成が異なっている。
【0089】
(移動機構)
本変形例では、移動機構16は、台座部15と床面との間に配置された直動式の電動スライダ161である。電動スライダ161は、一方向に長尺に延びている。電動スライダ161は、例えば作業台300に隣接して床面上に固定されている。電動スライダ161は、台座部15を下方から支持した状態で当該台座部15に接続されており、台座部15を上記一方向に移動させる。電動スライダ161の駆動(台座部15の直動)は、制御装置30によって制御されてもよいし、オペレータによる手動などであってもよい。なお、本変形例で説明した電動スライダ161は、床面上に固定されている構成に代えて、当該床面とは別体として配置され、例えば電動スライダ161とは異なる移動機構16に搭載されていてもよい。
【0090】
(作用・効果)
当該構成によっても、上記の第3実施形態で説明した作用・効果と同様の作用・効果が奏される。
【0091】
(その他の実施形態)
以上、本開示の実施形態について図面を参照して詳述したが、具体的な構成は各実施形態の構成に限られるものではなく、本開示の要旨を逸脱しない範囲内での構成の付加、省略、置換、およびその他の変更が可能である。
【0092】
なお、第1実施形態で説明した第1制御部361は、取得部31から画像を受け付けてもよい。この場合、第1制御部361が制御に用いる第1学習済みモデル391は、受け付けた画像を上述の入力要素に加えてもよい。なおこの場合、第1学習済みモデル391は、入力に対する出力である上記指令値に加えて、サブタスクとして、第2時刻における予測画像を生成して出力してもよい。
【0093】
また、第1実施形態で説明した第1学習済みモデル391は、入力に対する出力である上記指令値に加えて、サブタスクとして、第2時刻における接触力の予測値およびトルクの予測値を生成して出力するように学習されてもよい。接触力の予測値およびトルクの予測値は、第2時刻で取得部31によって取得されると第1学習済みモデル391により予測された接触力およびトルクを示す値である。これら接触力の予測値およびトルクの予測値は、第1制御部361による制御に用いられることはない。発明者らは、第1学習済みモデル391が第2時刻における接触力の予測値およびトルクの予測値をサブタスクとして出力することで、他の出力要素である指令値の精度が向上することを見出した。
【0094】
また、第1実施形態で説明した第2制御部362が制御に用いる第2学習済みモデル392は、入力に対する出力である上記指令値に加えて、サブタスクとして、第4時刻における予測画像を生成して出力するように学習されてもよい。予測画像は、第4時刻で取得部31によって取得されると第2学習済みモデル392により予測された画像である。当該予測画像は、第2制御部362による制御に用いられることはない。発明者らは、第2学習済みモデル392が第4時刻における接触力の予測値およびトルクの予測値をサブタスクとして出力することで、他の出力要素である指令値の精度が向上することを見出した。
【0095】
また、第1実施形態で説明した第1学習済みモデル391、第2学習済みモデル392、第3学習済みモデル393、第4学習済みモデル394、および第5学習済みモデル396のそれぞれは、深層学習モデルに限定されることはなく、他の機械学習モデル(例えばSVM(Support Vector Machine)などの教師あり学習モデル)であってもよい。
【0096】
また、第1実施形態で説明した制御装置30は、座標変換部33および補正部34を備えていなくてもよい。この場合、取得部31は、取得した力データを判定部35および制御部36に送ればよい。またこの場合、取得部31は、ボルト201の中心位置座標を取得した際、直近の施工の対象となるボルト201の中心位置座標を取得した旨を示す取得フラグをカウンタ部38に送ればよい。そして、算出部32は、算出したナット202の位置座標および姿勢角を判定部35および制御部36に送ればよい。そして、第1判定部351は、取得部31から受け付けた力データに基づき第1判定を行い、第2判定部352は、算出部32から受け付けたナット202の位置座標および姿勢角に基づき第2判定を行い、第3判定部353は、取得部31から受け付けた画像、算出部32から受け付けたナット202の位置座標および姿勢角、ならびに、取得部31から受け付けた力データに基づき第3判定を行い、第4判定部354は、取得部31から受け付けた画像、算出部32から受け付けたナット202の位置座標および姿勢角、ならびに、取得部31から受け付けた力データに基づき第4判定を行い、第5判定部355は、第4判定部354から受け付けた第4判定の結果がナット202の締結が成功したことを示す場合に、取得部31から受け付けた力データに基づき、第5判定を行えばよい。そして、第1制御部361は、ナット202がボルト201に接触していると第1判定の結果が示す場合に、算出部32から受け付けたナット202の位置座標および姿勢角と、取得部31から受け付けた力データとを含むデータセットに基づき、ボルト201に対するナット202の締結動作を実行し、第2制御部362は、取得部31から受け付けた画像と、算出部32から受け付けたナット202の位置座標および姿勢角とを含むデータセットに基づき、エンドエフェクタ12の移動および回転を制御すればよい。
【0097】
また、第2実施形態で説明した制御装置30は、取得部31から電流値を受け付けるとともに、受け付けた電流値を接触力およびトルクを含む力データに変換する電流値変換部(図示省略)などを更に備えてもよい。この場合、電流値変換部は、例えば、電流値から変換した接触力およびトルクを含む力データを補正部34などに送ればよい。電流値変換部は、例えば、各々のモータ117(第1モータ117a~第6モータ117f)を流れる電流の電流値と、接触力およびトルクとが互いに関連付いた対応関係情報(関数など)に基づき、電流値を力データに変換してもよい。この場合、対応関係情報は、例えば記憶部39にあらかじめ記憶されており、電流値変換部は、記憶部39に記憶されている対応関係情報を適時に参照することで上記の変換を行えばよい。
【0098】
また、第1判定部351は、第1判定を行うに当たり、取得部31から受け付けた画像を更に用いてもよい。すなわち、第1判定部351は、画像と、力データとに基づき、第1判定を行ってよい。この場合、第1判定部351は、画像と、力データとを含むデータセットが入力されると、第1判定の結果を出力するように学習された所定の学習済みモデルを用いて判定を行う。すなわち、当該学習済みモデルは、画像と、力データとを含むデータセットを入力要素とし、第1判定の結果を出力要素とする。当該学習済みモデルは、例えば記憶部39にあらかじめ記憶されており、第1判定部351は、記憶部39に記憶されている当該学習済みモデルに上記データセットを入力することで出力された第1判定の結果を取得してもよい。
【0099】
また、第2判定部352は、第2判定を行うに当たり、取得部31から受け付けた画像を更に用いてもよい。すなわち、第2判定部352は、画像と、ナット202の位置座標および姿勢角とに基づき、第2判定を行ってよい。この場合、第2判定部352は、画像と、ナット202の位置座標および姿勢角とを含むデータセットが入力されると、第2判定の結果を出力するように学習された所定の学習済みモデルを用いて判定を行う。すなわち、当該学習済みモデルは、画像と、ナット202の位置座標および姿勢角とを含むデータセットを入力要素とし、第2判定の結果を出力要素とする。当該学習済みモデルは、例えば記憶部39にあらかじめ記憶されており、第2判定部352は、記憶部39に記憶されている当該学習済みモデルに上記データセットを入力することで出力された第2判定の結果を取得してもよい。
【0100】
また、第3判定部353は、ナット202の螺合の成否を判定するに当たり、取得部31から受け付けた画像を用いなくてもよい。この場合、第3学習済みモデル393は、ナット202の位置座標および姿勢角と、力データとを含むデータセットを入力要素とし、ナット202およびボルト201の螺合の成否を示す判定結果を出力要素とする。
【0101】
また、第5判定部355は、補正部34から受け付けた力データに基づき、切断に必要なトルクを示す第3しきい値を超えたか否かの切断に関する判定、および締結用モータ120aが停止状態から回転状態になったか否かのエンドエフェクタ12の駆動に関する判定を、第5判定を行う前に併せて行ってもよい。つまり、第5判定部355は、上記切断に関する判定が、データ(接触力)が第3しきい値を超えたことを示し、かつ、エンドエフェクタ12の駆動に関する判定が、締結用モータ120aが回転状態であることを示した場合に、上記第5判定を行ってもよい。なお、第3しきい値は、例えば記憶部39にあらかじめ記憶されており、第5判定部355は、記憶部39に記憶されている第3しきい値を適時に参照することで上記切断に関する判定を行う。
【0102】
(コンピュータの構成)
図17は、本実施形態に係るコンピュータ1100の構成を示すハードウェア構成図である。コンピュータ1100は、例えば、プロセッサ1110と、メインメモリ1120と、ストレージ1130と、インターフェース1140とを備えている。
【0103】
上述の制御装置30は、例えば1以上のコンピュータ1100に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ1130に記憶されている。プロセッサ1110は、プログラムをストレージ1130から読み出してメインメモリ1120に展開し、当該プログラムにしたがって上記処理を実行する。また、プロセッサ1110は、プログラムにしたがって、上述した記憶部39に対応する記憶領域をメインメモリ1120に確保する。プログラムは、コンピュータ1100に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージ1130に既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。また、コンピュータ1100は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサ1110によって実現される機能の一部またはすべてが当該集積回路によって実現されてよい。ストレージ1130の例としては、磁気ディスク、光磁気ディスク、半導体メモリなどが挙げられる。ストレージ1130は、コンピュータ1100のバスに直接的に接続された内部メディアであってもよいし、インターフェース1140または通信回線を介してコンピュータ1100に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ1100に配信される場合、配信を受けたコンピュータ1100が当該プログラムをメインメモリ1120に展開し、上記処理を実行してもよい。上記実施形態では、ストレージ1130は、一時的でない有形の記憶媒体である。また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ1130に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0104】
<付記>
各実施形態に記載の組立システム、制御方法、およびプログラムは、例えば以下のように把握される。
【0105】
(1)第1の態様に係る組立システム100は、複数の関節部110を有するアーム11と、前記アーム11によって移動されるとともに、ナット202を保持して前記ナット202を軸線(回転軸線Arまたは軸線Ar1)回りに回転させるエンドエフェクタ12と、各々の前記関節部110の関節角を取得する第1センサ13(エンコーダ130)と、施工対象物200に設けられたボルト201に前記ナット202が接触した場合に、前記エンドエフェクタ12から伝達された接触力およびトルクを取得する第2センサ14(力覚センサ140,電流センサ141)と、を有するマニピュレータ10と、前記マニピュレータ10を制御する制御装置30と、を備え、前記制御装置30は、各々の前記関節部110の関節角と、前記接触力およびトルクとを第1所定周期で取得する取得部31と、前記取得された各々の前記関節部110の関節角に基づき、前記ナット202の位置座標および姿勢角を算出する算出部32と、第1時刻における前記ナット202の位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナット202が前記ボルト201に締結された状態を示す前記ナット202の目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナット202の位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデル391を用いて、前記エンドエフェクタ12を制御する制御部36と、を備える。
【0106】
これにより、第1学習済みモデル391に対しての入力が行われるたびに、ナット202の状態を、ナット202がボルト201に締結された状態に向けて遷移させることができる。
【0107】
(2)第2の態様に係る組立システム100は、(1)の組立システム100であって、前記第1学習済みモデル391は、前記ナット202の前記目標位置座標および目標姿勢角から、ランダムに与えられた量外れた前記ナット202の既知位置座標および既知姿勢角が、前記目標位置座標および目標姿勢角になるように前記エンドエフェクタ12を制御する教示動作中に取得された複数の前記ナット202の位置座標および姿勢角と、各々の前記ナット202の位置座標および姿勢角が取得された時刻に対応する前記接触力およびトルクと、を含む教師データセットが入力される学習ステップが繰り返し実行されたことで、前記入力に応じた前記指令値を出力するように学習されていてもよい。
【0108】
これにより、上記作用をより具体的な設定で実現することができる。また、例えば、実運用時にナット202およびボルト201の締結を行う際にナット202のボルト201に対する位置座標のずれや姿勢角のずれが生じても、実際に締結にかかった時間が、予測された締結にかかる時間から乖離することを抑制することができる。
【0109】
(3)第3の態様に係る組立システム100は、(1)の組立システム100であって、前記エンドエフェクタ12に設けられ、前記施工対象物200を撮像した画像を生成する撮像装置20を更に備え、前記取得部31は、前記画像を第2所定周期で更に取得し、前記制御部36は、前記ナット202が前記ボルト201に接触していない第1位置で前記取得された第3時刻における前記画像と、前記第3時刻における前記ナット202の位置座標および姿勢角とが入力されると、前記ナット202が前記ボルト201に接触した第2位置に前記ナット202が近づいた、前記第3時刻よりも後の第4時刻における前記ナット202の位置座標および姿勢角を示す指令値を出力するように学習された第2学習済みモデル392を用いて、前記エンドエフェクタ12を制御してもよい。
【0110】
これにより、第2学習済みモデル392に対しての入力が行われるたびに、第1位置に位置するナット202を、第2位置に向けて遷移させることができる。
【0111】
(4)第4の態様に係る組立システム100は、(3)の組立システム100であって、前記第2学習済みモデル392は、前記第2位置から前記第1位置に前記エンドエフェクタ12を移動させるダイレクトティーチング動作中に取得された複数の前記画像と、各々の前記画像が取得された時刻に対応する前記ナット202の位置座標および姿勢角と、を含む教師データセットが入力される学習ステップが繰り返し実行されたことで、前記入力に応じた前記指令値を出力するように学習されていてもよい。
【0112】
これにより、ノイズなどの割合が少ないより高品質な教師データセットを取得することができる。
【0113】
(5)第5の態様に係る組立システム100は、(3)または(4)の組立システム100であって、前記制御部36は、前記第2位置で前記取得された前記画像と、前記画像が取得された時刻に対応する前記ナット202の位置座標および姿勢角と、前記画像が取得された時刻に対応する前記接触力およびトルクとが入力されると、前記ナット202および前記ボルト201の螺合の成否を示す判定結果を出力するように学習された第3学習済みモデル393を用いて、前記エンドエフェクタ12を制御してもよい。
【0114】
これにより、例えば、ナット202およびボルト201の螺合が誤った状態で締結されることを回避できる。
【0115】
(6)第6の態様に係る組立システム100は、(1)から(4)のうちいずれか1つの組立システム100であって、前記ナット202の位置座標は、前記マニピュレータ10が持つ原点に準拠した世界座標系で表現されており、前記制御装置30は、前記算出された前記ナット202の位置座標を前記世界座標系からボルト中心座標系に変換する座標変換部33を更に備え、前記制御部36は、前記変換された前記ナット202の位置座標を前記第1学習済みモデル391に入力してもよい。
【0116】
これにより、世界座標系で表現されるナット202の位置座標がボルト201ごとに生じる固有の位置座標であるのに対して、ボルト201中心座標といった同一の尺度でナット202のボルト201に対する相対的な位置座標を表すことができる。
【0117】
(7)第7の態様に係る組立システム100は、(1)から(4)のうちいずれかの1つの組立システム100であって、前記制御装置30は、前記取得された各々の前記関節部110の関節角に基づく前記エンドエフェクタ12の自重に関する補正値を用いて、前記取得された前記接触力を補正する補正部34を更に備え、前記制御部36は、前記補正された前記接触力を前記第1学習済みモデル391に入力してもよい。
【0118】
これにより、エンドエフェクタ12から伝達された接触力よりも実際に生じた接触力に近づいた接触力を第1学習済みモデル391の入力要素とすることができる。
【0119】
(8)第8の態様に係る組立システム100は、(1)から(4)のうちいずれかの1つの組立システム100であって、前記第2センサ14は、各々の前記関節部110が有するモータ117の電流値を取得可能な電流センサ141であってもよい。
【0120】
これにより、例えば、第2センサ14としての力覚センサ140などを用いる場合と比較して、マニピュレータ10全体のサイズおよび重量を抑えることができる。
【0121】
(9)第9の態様に係る組立システム100は、(1)から(4)のうちいずれかの1つの組立システム100であって、前記マニピュレータ10が載置された台座部15と、前記台座部15を前記施工対象物200の周囲で移動可能にさせる移動機構16(車輪160、電動スライダ161)と、を更に備えてもよい。
【0122】
これにより、より広い範囲でマニピュレータ10が動作を行うことができる。
【0123】
(10)第10の態様に係る組立システム100は、(3)または(4)の組立システム100であって、前記エンドエフェクタ12は、基部122と、前記基部122から延びるとともに前記軸線を中心とした筒状を成し、先端側に前記ナット202の少なくとも一部を収容可能な収容部123rが形成されたソケット部123とを有するナットランナ121と、前記ソケット部123の外周側に回動可能に固定されて前記軸線に交差する方向に延びる第1部分126と、前記第1部分126から前記先端側に延びる延在部127aおよび前記延在部127aの先端に設けられて前記軸線に近づくように前記延在部127aから突出することで前記ナット202に当接する爪部127bを有する第2部分127とを有するナット保持部材124と、前記基部122と前記第1部分126との間に設けられ、前記第1部分126に対して前記先端側に向かう弾性力を付与する弾性部材128と、を有してもよい。
【0124】
これにより、例えば、ナット202を吸引して保持する機構を備えたエンドエフェクタ12などと比較して、より簡易な構成でエンドエフェクタ12がナット202を保持することができる。
【0125】
(11)第11の態様に係る組立システム100は、(10)の組立システム100であって、前記撮像装置20は、前記収容部123rよりも前記基部122に近い側の前記ソケット部123内に配置され、前記撮像装置20は、前記ナット202の孔(ナット孔202h)を通じて、前記施工対象物200を撮像した前記画像を生成する撮像部21と、前記ナット202の孔(ナット孔202h)を通じて、前記施工対象物200に向けて光を照射する照明部22と、を有してもよい。
【0126】
これにより、撮像装置20の撮像範囲を集中的に照らしながら画像を生成することができる。
【0127】
(12)第12の態様に係る制御方法は、複数の関節部110を有するアーム11と、前記アーム11によって移動されるとともに、ナット202を保持して前記ナット202を軸線回りに回転させるエンドエフェクタ12と、各々の前記関節部110の関節角を取得する第1センサ13と、施工対象物200に設けられたボルト201に前記ナット202が接触した場合に、前記エンドエフェクタ12から伝達された接触力およびトルクを取得する第2センサ14と、を有するマニピュレータ10を制御する制御方法であって、各々の前記関節部110の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、前記取得された各々の前記関節部110の関節角に基づき、前記ナット202の位置座標および姿勢角を算出するステップと、第1時刻における前記ナット202の位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナット202が前記ボルト201に締結された状態を示す前記ナット202の目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナット202の位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデル391を用いて、前記エンドエフェクタ12を制御するステップと、を実行する。
【0128】
(13)第13の態様に係るプログラムは、複数の関節部110を有するアーム11と、前記アーム11によって移動されるとともに、ナット202を保持して前記ナット202を軸線回りに回転させるエンドエフェクタ12と、各々の前記関節部110の関節角を取得する第1センサ13と、施工対象物200に設けられたボルト201に前記ナット202が接触した場合に、前記エンドエフェクタ12から伝達された接触力およびトルクを取得する第2センサ14と、を有するマニピュレータ10を制御する制御装置30のコンピュータ1100に、各々の前記関節部110の関節角と、前記接触力およびトルクとを第1所定周期で取得するステップと、前記取得された各々の前記関節部110の関節角に基づき、前記ナット202の位置座標および姿勢角を算出するステップと、第1時刻における前記ナット202の位置座標および姿勢角と、前記第1時刻における前記接触力およびトルクとが入力されると、前記ナット202が前記ボルト201に締結された状態を示す前記ナット202の目標位置座標および目標姿勢角に近づいた、前記第1時刻よりも後の第2時刻における前記ナット202の位置座標および姿勢角を示す指令値を出力するように学習された第1学習済みモデル391を用いて、前記エンドエフェクタ12を制御するステップと、を実行させる。
【符号の説明】
【0129】
10…マニピュレータ 11…アーム 12…エンドエフェクタ 13…第1センサ 14…第2センサ 15…台座部 16…移動機構 17…キャリブレーション機構 20…撮像装置 21…撮像部 22…照明部 30…制御装置 31…取得部 32…算出部 33…座標変換部 34…補正部 35…判定部 36…制御部 37…学習部 38…カウンタ部 39…記憶部 100…組立システム 110…関節部 111…第1関節部 112…第2関節部 113…第3関節部 114…第4関節部 115…第5関節部 116…第6関節部 117…モータ 117a…第1モータ 117b…第2モータ 117c…第3モータ 117d…第4モータ 117e…第5モータ 117f…第6モータ 118…接続部 118a…第1接続部 118b…第2接続部 118c…第3接続部 120…本体部 120a…締結用モータ 121…ナットランナ 122…基部 122a…前面 123…ソケット部 123a…テーパ面 123b…締結面 123c…位置決め面 123e…開口 123i…内周面 123o…外周面 123r…収容部 124…ナット保持部材 125…回動軸 126…第1部分 127…第2部分 127a…延在部 127b…爪部 128…弾性部材 130…エンコーダ 131…第1エンコーダ 132…第2エンコーダ 133…第3エンコーダ 134…第4エンコーダ 135…第5エンコーダ 136…第6エンコーダ 140…力覚センサ 141…電流センサ 160…車輪 161…電動スライダ 200…施工対象物 201…ボルト 201a…雄ねじ部 201e,202e…端面 202…ナット 202a…ナット本体 202b…カラー 202h…ナット孔 210…第1部品 220…第2部品 300…作業台 351…第1判定部 352…第2判定部 353…第3判定部 354…第4判定部 355…第5判定部 356…第6判定部 361…第1制御部 362…第2制御部 363…第3制御部 391…第1学習済みモデル 392…第2学習済みモデル 393…第3学習済みモデル 394…第4学習済みモデル 395…CADデータ 396…第5学習済みモデル 397…ばらつき生成モデル 1100…コンピュータ 1110…プロセッサ 1120…メインメモリ 1130…ストレージ 1140…インターフェース Ar…回転軸線 Ar1…軸線 Ar2…中心線 CG…エンドエフェクタの重心位置 Da…軸線方向 Da1…一方側 Da2…他方側 Dv…鉛直方向 Fb…接触力 Fg…自重 Fg1…補正値 Ft…トルク O1…第1回動軸線 O2…第2回動軸線 O3…第3回動軸線 O4…第4回動軸線 O5…第5回動軸線 O6…第6回動軸線 R…収容空間 S…制御対象装置