IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NTN株式会社の特許一覧

<>
  • 特許-ワーク取り出し作業装置 図1
  • 特許-ワーク取り出し作業装置 図2
  • 特許-ワーク取り出し作業装置 図3
  • 特許-ワーク取り出し作業装置 図4
  • 特許-ワーク取り出し作業装置 図5
  • 特許-ワーク取り出し作業装置 図6
  • 特許-ワーク取り出し作業装置 図7
  • 特許-ワーク取り出し作業装置 図8
  • 特許-ワーク取り出し作業装置 図9
  • 特許-ワーク取り出し作業装置 図10
  • 特許-ワーク取り出し作業装置 図11
  • 特許-ワーク取り出し作業装置 図12
  • 特許-ワーク取り出し作業装置 図13
  • 特許-ワーク取り出し作業装置 図14
  • 特許-ワーク取り出し作業装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-28
(45)【発行日】2022-08-05
(54)【発明の名称】ワーク取り出し作業装置
(51)【国際特許分類】
   B25J 13/08 20060101AFI20220729BHJP
【FI】
B25J13/08 A
【請求項の数】 11
(21)【出願番号】P 2019060437
(22)【出願日】2019-03-27
(65)【公開番号】P2020157436
(43)【公開日】2020-10-01
【審査請求日】2021-09-16
(73)【特許権者】
【識別番号】000102692
【氏名又は名称】NTN株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】大庭 博明
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特許第6466536(JP,B1)
【文献】特開平5-185388(JP,A)
【文献】国際公開第2019/004481(WO,A1)
【文献】特開2017-154231(JP,A)
【文献】特開2010-89238(JP,A)
【文献】米国特許出願公開第2014/0100696(US,A1)
【文献】米国特許出願公開第2011/0211938(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ワークの取り出しを行う作業装置であって、
ワークを容器から取り出して把持する把持部と、
前記把持部が装着され、前記把持部の向きを調整する角度調整部と、
前記角度調整部が装着される作業ヘッドと、
複数の駆動部により前記作業ヘッドを移動させる位置調整部と、
前記把持部の把持するワークを撮影する第1の撮像装置と、
前記作業装置を制御する情報処理装置とを備え、
前記角度調整部は、
第1および第2のリンクハブと、
前記第1および第2のリンクハブの間に並列に配置された複数のリンクと、
前記複数のリンクのそれぞれを駆動させる複数の駆動部とを含み、
前記情報処理装置は、
前記第1の撮像装置が撮影した画像に基づいて、前記把持部が把持するワークの個数を検出し、
前記把持部が把持するワークの個数が2以上であることに基づいて、前記把持部が把持するワークの個数および画像、前記角度調整部の各駆動部のトルクを機械学習モデルのパラメータとし、前記機械学習モデルにより、前記位置調整部および前記角度調整部の各駆動部に送信するそれぞれの駆動信号を決定し、
決定した前記駆動信号に基づいて、前記位置調整部の各駆動部および前記角度調整部の各駆動部を駆動させることにより、前記把持部にワークの絡まり解き動作をさせる、作業装置。
【請求項2】
前記情報処理装置は、
前記把持部が絡まり解き動作を実行した後に、再度、前記第1の撮像装置が撮影した画像に基づいて、前記把持部が把持するワークの個数を検出し、
前記把持部が把持するワークの個数が2以上であることに基づいて、前記把持部にワークの絡まり解き動作を再度実行させる、請求項1に記載の作業装置。
【請求項3】
前記情報処理装置は、
前記第1の撮像装置が撮影した画像に基づいて、前記把持部が把持するワークの個数が1であるか否かを判定し、
前記把持部が把持するワークの個数が1であることに基づいて、ワークの絡まり解き作業が完了したと判定し、
前記機械学習モデルの学習に用いる報酬データを生成し、前記機械学習モデルに入力する学習データに前記報酬データを加える、請求項1または2に記載の作業装置。
【請求項4】
前記情報処理装置は、
前記第1の撮像装置が撮影した画像に基づいて、前記把持部が把持するワークの個数が0であるか否かを判定し、
前記把持部が把持するワークの個数が0個であることに基づいて、前記機械学習モデルの学習に用いる報酬データを生成せずに、絡まり解き作業を終了する、請求項3に記載の作業装置。
【請求項5】
前記容器内のワークを撮影する第2の撮像装置をさらに備え、
前記情報処理装置は、
前記第2の撮像装置が撮影した画像に基づいて、前記容器内にワークがあるか否かを判定し、
前記容器内にワークがあると判定したことに基づいて、前記把持部を予め定められた取り出し作業の位置に移動させるための前記駆動信号を前記位置調整部および前記角度調整部の各駆動部に送信する、請求項1~4のいずれか1項に記載の作業装置。
【請求項6】
前記情報処理装置は、
前記第2の撮像装置が撮影した画像に基づいて、前記容器内にワークがないと判定すると、前記容器内からのワークの取り出し作業を終了する、請求項5に記載の作業装置。
【請求項7】
前記情報処理装置は、前記位置調整部および前記角度調整部の各駆動部に送信するそれぞれの前記駆動信号を決定するとき、さらに、前記位置調整部の各駆動部のトルクを取得し、前記位置調整部の各駆動部のトルクを前記機械学習モデルのパラメータに加える、請求項1~6のいずれか1項に記載の作業装置。
【請求項8】
前記位置調整部および前記角度調整部の各駆動部に送信されるそれぞれの前記駆動信号は、各駆動部のそれぞれの指令トルク、回転速度および回転量に関する情報を含む、請求項1~7のいずれか1項に記載の作業装置。
【請求項9】
前記位置調整部は、3軸の直動機構を含む、請求項1~8のいずれか1項に記載の作業装置。
【請求項10】
前記位置調整部の駆動部は、ステッピングモータである、請求項1~9のいずれか1項に記載の作業装置。
【請求項11】
前記角度調整部の駆動部は、ステッピングモータである、請求項1~10いずれか1項に記載の作業装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ワーク取り出し作業装置に関し、より特定的には、リンク機構による角度調整機能を備えるワーク取り出し作業装置の機械学習を用いた制御に関する。
【背景技術】
【0002】
自動化された機械加工または組立作業におけるワークピース(以下、ワークと称する)は、ロボットまたは組立装置等(所謂、ワーク取り出し作業装置)によって自動的にピックアップされ、加工装置または組立物にセットされることが多い。
【0003】
取り出されたワークを後工程の組立作業で別のワークに組み付ける場合、ワーク取り出し作業装置は、ワークを1つずつ取り出す必要がある。しかし、バネやクリップの様に絡みやすいワークを扱う場合、ワーク取り出し作業装置は、2つ以上のワークを同時に把持してしまう可能性がある。そのため、ワーク取り出し作業装置には、ワークの取り出しだけでなく、ワーク同士の絡まりを解く機能(以下、絡まり解き機能と呼ぶ)が求められている。
【0004】
また、近年、機械学習の手法が進歩してきたこともあり、ワーク取り出し作業装置の制御の精度向上のために、機械学習を導入することが望まれている。
【0005】
ワークの取り出し制御に関し、例えば、特許文献1(特開2017-030135号公報)は、多関節ロボットを用いた「バラ積みされた状態を含む、乱雑に置かれたワークを取り出すときのロボットの最適な動作が人間の介在無しに選択される機械学習装置」を開示している([要約]参照)。
【0006】
また、絡まり取り制御に関し、例えば、特許文献2(特開平05-185388号公報)は、「ロボットハンドのワーク把持状態を絡み検出用カメラが撮像し、この撮像した撮像情報に基づいてロボットハンドが把持するワークに絡み状態が発生しているか否かを視覚装置にて判定する」部品供給装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0007】
【文献】特開2017-030135号公報
【文献】特開平05-185388号公報
【文献】特開2017-064910号公報
【文献】特開平06-144584号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
例えば、特許文献1および2に開示された技術はいずれも多関節ロボットを前提としている。多関節ロボットは、一般に特異点と呼ばれる構造的に制御できなくなる姿勢を含む。また、多関節ロボットは、ワークに加わる力やモーメントを検出するためのセンサーが必要であり、機械学習と組み合わせた場合に学習用のパラメータが多くなり、学習効率が悪くなる。
【0009】
そのため、多関節ロボットと異なり、構造的に特異点を有さず、効率よく機械学習を行うための技術が必要とされている。
【0010】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、構造的に特異点を有さず、効率よく機械学習を行うための技術を提供することにある。
【課題を解決するための手段】
【0011】
ある実施の形態に従うワーク取り出しを行う作業装置は、ワークを容器から取り出して把持する把持部と、把持部が装着され、把持部の向きを調整する角度調整部と、角度調整部が装着される作業ヘッドと、複数の駆動部により作業ヘッドを移動させる位置調整部と、把持部の把持するワークを撮影する把持部撮像装置と、作業装置を制御する制御装置とを備える。角度調整部は、第1および第2のリンクハブと、第1および第2のリンクハブの間に並列に配置された複数のリンクと、複数のリンクのそれぞれを駆動させる複数の駆動部とを含む。制御装置は、把持部撮像装置が撮影した画像に基づいて、把持部が把持するワークの個数を検出し、把持部が把持するワークの個数が2以上であることに基づいて、把持部が把持するワークの個数および角度調整部の各駆動部のトルクを機械学習モデルのパラメータとし、機械学習モデルにより、位置調整部および角度調整部の各駆動部に送信するそれぞれの駆動信号を決定し、決定した駆動信号に基づいて、位置調整部の各駆動部および角度調整部の各駆動部を駆動させることにより、把持部にワークの絡まり解き動作をさせる。
【発明の効果】
【0012】
ある実施の形態によれば、構造的に特異点を有さず、効率よく機械学習を行うことが可能である。
【0013】
この発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0014】
図1】ある実施の形態に従うワーク取り出し作業システム100の一構成例を示す図である。
図2】角度調整機構111の一構成例を示す図である。
図3】角度調整機構111の回転軸42に姿勢制御用の電動アクチュエータ11を取り付けた一構成例を示す。
図4】把持機構112の一構成例を示す図である。
図5】把持機構112を取り付けた角度調整機構111の一例を示す図である。
図6】情報処理装置102のハードウェアの一構成例を示す図である。
図7】情報処理装置102を実現する機能の一構成例を示す図である。
図8】評価値関数部802の動作の一例を示す図である。
図9】動作パターンテーブル803の一例を示す図である。
図10】ワーク取り出し作業システム100の処理の一例を示すフローチャートである。
図11図10の処理の動作イメージの一例を示す図である。
図12】ワーク取り出し作業システム100の絡まり解き作業の学習処理の一例を示すフローチャートである。
図13】絡まり解き作業の初期学習処理(図12のステップ1230に対応)の一例を示すフローチャートである。
図14】絡まり解き作業の学習処理(図12のステップ1260に対応)の一例を示すフローチャートである。
図15】評価値関数部802の評価値関数Fの更新処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0016】
<A.システム構成>
図1は、本実施の形態に従うワーク取り出し作業システム100の一構成例を示す図である。図1を参照して、ワーク取り出し作業システム100は、ワーク取り出し作業装置101と、情報処理装置102と、制御装置103と、撮像装置114,115とを備える。
【0017】
ワーク取り出し作業装置101は、架台104と、第1の直動ユニット105と、第2の直動ユニット106と、第3の直動ユニット107と、電動アクチュエータ108A,108B,108C(以降、総称する場合は電動アクチュエータ108と呼ぶ)と、作業ヘッド109と、回転ユニット取付部材110と、角度調整機構111と、把持機構112と、ワーク入れ113とを備える。
【0018】
架台104は、第1の直動ユニット105と、第2の直動ユニット106と、第3の直動ユニット107と、それぞれの直動ユニットを駆動させる電動アクチュエータ108A,108B,108Cと、作業ヘッド109とからなる位置調整装置が装着される台である。
【0019】
第1の直動ユニット105、第2の直動ユニット106および第3の直動ユニット107は、それぞれ直交するX軸、Y軸、Z軸方向に作業ヘッド109を移動させる。ある局面において、各直動ユニットは、フレームと、リニアシャフトと、リニアブッシュと、電動アクチュエータ108から動力を伝達するための台形ネジおよびボールネジナットとを備えていてもよい。また、ある局面において、各直動ユニットは、リニアシャフトの代わりに、リニアガイドや、フレームの表面を滑るガイドローラーを備えていてもよい。また、ある局面において、各直動ユニットは、台形ネジの代わりに駆動ベルトを備えていてもよい。また、各直動ユニットの端部には、各電動アクチュエータ108の初期位置の決定と、安全機構のための、衝突検知センサーが設けられていてもよい。
【0020】
電動アクチュエータ108は、それぞれの直動ユニットを駆動させる。ある局面において、電動アクチュエータ108は、ステッピングモータであり、台形ネジや駆動ベルトを介して動力を各直動ユニットに伝達してもよい。また、ある局面において、電動アクチュエータ108は、ACサーボモータまたはエンコーダーを備えたギアードモータであってもよい。情報処理装置102は、ステッピングモータのステップ数や、エンコーダーの回転数によって、作業ヘッド109および把持機構112の現在位置を算出してもよい。
【0021】
作業ヘッド109は、上下方向(Z軸方向)に動作するように第3の直動ユニット107に取り付けられている。また、作業ヘッド109は、作業に必要なパーツを取り付けるためのネジ穴やアタッチメントを備える。
【0022】
回転ユニット取付部材110は、作業ヘッド109に取り付けられており、角度調整機構111を取り付けるためのネジ穴やアタッチメントを備える。角度調整機構111は、把持機構112によって把持されたワークの向きを微調整する。また、角度調整機構111の根元は電動アクチュエータを用いた回転機構となっている。なお、回転機構は、角度調整機構111とは別体でもよい。角度調整機構111の詳細については後述する。把持機構112は、ワーク取り出し作業におけるワーク、例えば、C型サークリップや、ばね、コイル等を把持する。把持機構112の詳細については後述する。ワーク入れ113は、ワークを入れるための箱である。
【0023】
情報処理装置102は、制御装置103を介して、ワーク取り出し作業装置101に対して制御命令を送信し、また、電動アクチュエータ108や角度調整機構111の電動アクチュエータのモータトルク値等を取得する。情報処理装置102の詳細は後述する。
【0024】
制御装置103は、ワーク取り出し作業装置101および情報処理装置102の間のデータを相互に変換する。ある局面において、制御装置103は、マイクロコンピューターからなる制御基板であり、情報処理装置102から、ワーク取り出し作業装置101の電動アクチュエータ108や角度調整機構111の電動アクチュエータに対する指令(指令トルク、回転量、回転速度等)を受信し、それぞれの電動アクチュエータに制御信号を送信してもよい。
【0025】
撮像装置114は、ワーク入れ113を上から撮影することによって得られる画像または映像を情報処理装置102に送信する。情報処理装置102は、撮像装置114から受信した画像または映像に基づいて、ワークの位置を検出し、位置調整装置により、把持機構112をワークの取り出し位置まで移動させる。
【0026】
撮像装置115は、把持機構112が把持するワークを横から撮影することによって得られる画像または映像を情報処理装置102に送信する。情報処理装置102は、撮像装置115から受信した画像または映像に基づいて、把持機構112が把持するワークの個数を検出する。
【0027】
<B.システム構成部品のハードウェア構成>
図2は、角度調整機構111の一構成例を示す図である。図2を参照して、角度調整機構111は、基端側の第1リンクハブ32に対し先端側の第2リンクハブ33を3組のリンク機構34によって姿勢変更可能に連結したものである。先端側の第2リンクハブ33には、図1に示された把持機構112が取り付けられる。なお、ここでは3組のリンク機構34を有する角度調整機構111について示したが、リンク機構34の数は、4組以上であってもよい。
【0028】
各リンク機構34は、基端側の端部リンク部材35、先端側の端部リンク部材36および中央リンク部材37で構成される。リンク機構34は、4つの回転対偶からなる4節連鎖のリンク機構である。基端側および先端側の端部リンク部材35,36はL字状の形状を有する。
【0029】
基端側の端部リンク部材35の一端は、回転軸42を介して、基端側の第1リンクハブ32に回転自在に連結されている。先端側の端部リンク部材36の一端は、回転軸73を介して、先端側の第2リンクハブ33に回転自在に連結されている。中央リンク部材37は、回転軸55,75を介して、両端に端部リンク部材35,36の各他端がそれぞれ回転自在に連結されている。
【0030】
角度調整機構111は、パラレルリンク機構であり、2つの球面リンク機構を組み合わせた構造を有する。端部リンク部材35,36と中央リンク部材37との各回転対偶の中心軸は、ある交差角を持っていてもよいし、平行であってもよい。
【0031】
角度調整機構111は、リンクの動作のみで各リンクハブの中心軸の相対角度を調整可能であり、多関節ロボットのように直列に連結された複数の関節の動作を伴わない。このため、先端のわずかな動きに対して構成部材が大きく動くことは無く素早い動作が可能である。また、角度調整機構111は、リンクを駆動させる電動アクチュエータのモータトルク値から、任意の姿勢における把持機構112の先端に加わる力を検出できる。
【0032】
第2リンクハブ33は、第1リンクハブ32から見て半球面上で姿勢を変える。そのため、第1リンクハブ32から見た第2リンクハブ33の目標位置と、各リンクの姿勢とは、必ず一対一で対応する。よって、角度調整機構111は、ロボットアーム等のマルチリンクを持つ構造と異なり、特異点を有さない。
【0033】
図3は、角度調整機構111の回転軸42に姿勢制御用の電動アクチュエータ11を取り付けた一構成例を示す。電動アクチュエータ11は、減速機構62を備えたロータリアクチュエータ(モータ)である。電動アクチュエータ11は、基端側の第1リンクハブ32の上面に、電動アクチュエータ11の回転軸と回転軸42とが同軸上に位置するように設置されている。電動アクチュエータ11および減速機構62は、一体として設けられてもよい。減速機構62は、モータ固定部材63により基端側の第1リンクハブ32に固定される。ある局面において、電動アクチュエータ11は、ACサーボモータまたはエンコーダーを備えたギアードモータであってもよい。
【0034】
図3に示す例では、電動アクチュエータ11が3組のリンク機構34の全てに設けられているが、本実施の形態に従う角度調整機構111はこれに限られない。角度調整機構111は、リンク機構34のうち少なくとも2組に姿勢制御用の電動アクチュエータ11が設けられていれば、基端側の第1リンクハブ32に対する先端側の第2リンクハブ33の姿勢を確定することができる。
【0035】
図4は、把持機構112の一構成例を示す図である。把持機構112は、対向する2枚の爪で対象物を挟み込む。本実施の形態に従う把持機構112は、エアシリンダを用いて2枚の爪を開閉させる方式である。状態Aは把持機構112の開放時の状態を示す。状態Bは把持機構112の閉じた状態を示す。図4に示す把持機構112は一例であり、本実施の形態に従う把持機構112はこれに限られない。ある局面において、把持機構112は、電動式の開閉機構、対象物を吸着する機構または他の挟み込み機構であってもよい。
【0036】
図5は、把持機構112を取り付けた角度調整機構111の一例を示す図である。角度調整機構111の先端側の第2リンクハブ33は、把持機構112をネジ止めするネジ穴、はめ込み穴またはその他のアタッチメントを備えていてもよい。図5に示す構成によって、ワーク取り出し作業装置101は、把持機構112が複数のワークを把持したときにおける、絡まり解きの動作を行うことができる。
【0037】
なお、本実施の例では、位置調整装置は、角度調整機構111を移動させているが、本実施の形態に従うワーク取り出し作業装置101はこれに限られない。位置調整装置は、角度調整機構111、把持機構112およびワーク入れ113の中のワークを相対的に位置決めできればよく、ある局面において、位置調整装置は、ワーク入れ113を移動させる機構を含んでもよい。
【0038】
<C.回路およびソフトウェア構成>
図6は、情報処理装置102のハードウェアの一構成例を示す図である。図6を参照して、情報処理装置102は、CPU(Central Processing Unit)701と、1次記憶装置702と、2次記憶装置703と、外部機器インターフェース704と、入力インターフェース705と、出力インターフェース706と、通信インターフェース707とを備える。
【0039】
CPU701は、情報処理装置102で動作するプログラムやデータを処理する。1次記憶装置702は、CPU701によって実行されるプログラムおよび参照されるデータを格納する。ある局面において、DRAM(Dynamic Random Access Memory)が1次記憶装置702として使用されてもよい。
【0040】
2次記憶装置703は、プログラムやデータ等を長期間記憶する。一般的に2次記憶装置703は、1次記憶装置702よりも低速であるため、CPU701で直接使用するデータは、1次記憶装置702に配置され、それ以外のデータは、2次記憶装置703に配置される。ある局面において、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶装置が2次記憶装置703として使用されてもよい。
【0041】
外部機器インターフェース704は、情報処理装置102に補助デバイスを接続する場合等に使用される。ある局面において、USB(Universal Serial Bus)インターフェースが、外部機器インターフェース704として使用されてもよい。入力インターフェース705は、キーボードやマウス等を接続するために使用される。ある局面において、USBインターフェースが、入力インターフェース705として使用されてもよい。
【0042】
出力インターフェース706は、ディスプレイ等の出力デバイスを接続するために使用される。ある局面において、HDMI(登録商標)(High-Definition Multimedia Interface)やDVI(Digital Visual Interface)が出力インターフェース706として使用されてもよい。
【0043】
通信インターフェース707は、外部の通信機器と通信するために使用される。ある局面において、LAN(Local Area Network)ポートや、Wi-Fi(登録商標)(Wireless Fidelity)の送受信装置等が、通信インターフェース707として使用されてもよい。また、ある局面において、情報処理装置102は、PC(Personal Computer)またはワークステーションであってもよい。本実施の形態に従う情報処理装置102の処理は、図6に示すハードウェア上で、プログラムとして実行されてもよい。
【0044】
図7は、情報処理装置102を実現する機能の一構成例を示す図である。ある局面において、図7に示す機能の一部は、図6に示すハードウェア上で、プログラムが実行されることにより実現され得る。図7を参照して、情報処理装置102は、信号入力部801と、評価値関数部802と、動作パターンテーブル803と、動作決定部804と、指令生成部805と、動作結果判定部806と、評価値関数学習部807とを含む。
【0045】
信号入力部801は、撮像装置114,115が撮影することによって取得された画像と、ワーク取り出し作業装置101から角度調整機構111の電動アクチュエータ11のモータトルク値とを取得する。ある局面において、信号入力部801は、さらに、位置調整装置の電動アクチュエータ108のモータトルク値を取得してもよい。
【0046】
評価値関数部802は、後述する評価値関数Fを用いて信号入力部に入力された画像から検出されたワークの個数およびモータトルク値等に基づいて各動作パターンに対応するそれぞれの評価値を計算する。
【0047】
動作パターンテーブル803は、位置調整装置および角度調整機構111の各電動アクチュエータの移動量および移動速度、加速度、指令トルク値の内の少なくとも1つが対応付けられた複数の動作パターンを保管する。動作パターンテーブル803は、角度調整機構111に関して、個別のアクチュエータの指令値ではなく、角度調整機構111の角度等を動作パターンに含めてもよい。
【0048】
動作決定部804は、動作パターンテーブル803の動作パターンの中から、評価値が最大となる動作パターンをワーク取り出し作業装置101の次の動作として選択する。指令生成部805は、動作決定部804により選択された動作パターンに基づいて、ワーク取り出し作業装置101の各電動アクチュエータへの指令値を生成し、制御装置103を介して、当該指令値をワーク取り出し作業装置101に送信する。
【0049】
動作結果判定部806は、前回選択された動作パターンの実行前後における、把持機構112が把持しているワーク個数が1のときは報酬1を与え、2つ以上のワークを把持している場合は0を与える。さらに、動作パターンの実行回数が上限回数を超過した場合は-1を与える。
【0050】
評価値関数学習部807は、動作結果判定部が出力した報酬を教師信号として、動作パターンを選択した時の評価値と、教師信号との差に基づいて評価値関数Fを更新する。ある局面において、評価値関数学習部807は、予め定められた回数だけ評価値関数Fを更新するごとに、評価値関数部802で使用する評価値関数Fを最新状態に更新してもよい。
【0051】
図8は、評価値関数部802の動作の一例を示す図である。評価値関数部802は、信号入力部801から、各撮像装置114,115が撮影することによって取得された画像およびモータトルク値等を取得して評価値関数Fに入力する。なお、情報処理装置102は、画像から検出したワークの個数を評価値関数Fに入力してもよい。評価値は動作パターンごとに算出される。図8に示す例では、評価値関数部802は、n個の各動作パターンa~aに対してそれぞれ評価値を算出する。ある局面において、評価値関数部802は、画像(もしくは、画像に写るワークの個数)やモータトルク値等を評価値関数Fの入力として受け付け、各動作パターンのそれぞれの評価値を計算するプログラムであってもよい。
【0052】
評価値関数Fが出力するn個の評価値は、次に実行すべき動作パターンを選択するための指標であり、対応する評価値が最大の値を示す動作パターンが、次に実行すべき最適な動作であること示す。
【0053】
そのため、動作決定部804は、n個の動作パターンの中から、最大の評価値に対応する動作パターンを次の動作として選択する。図9に示す例では、「評価値=0.614」が最大のため、動作決定部804は、「評価値=0.614」に対応する動作パターンan-3を選択する。
【0054】
動作決定部804は、選択した動作パターンan-3を指令生成部805に転送する。指令生成部805は、動作パターンテーブル803を参照し、an-3に対応する指令値を生成して制御装置103に出力する。
【0055】
図9は、動作パターンテーブル803の一例を示す図である。動作パターンテーブル803は、動作パターンごとに、位置調整装置の電動アクチュエータ108の移動量、移動速度、加速度および指令トルク値と、角度調整機構111の根元の回転機構の回転角度、回転速度、加速度、減速度および指令トルク値と、角度調整機構111の折れ角変更量、旋回角変更量、回転速度、加速度、減速度および指令トルク値とを格納する。
【0056】
ある局面において、動作パターンテーブル803は、角度調整機構111の個別の電動アクチュエータの移動量、移動速度、加速度、および指令トルク値を格納してもよい。また、ある局面において、動作パターンテーブル803は、2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって参照されてもよい。
【0057】
<D.ワーク取り出し作業における情報処理装置102の内部処理>
図10は、ワーク取り出し作業システム100の処理の一例を示すフローチャートである。ある局面において、図10の処理を実行するためのプログラムは2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって実行されてもよい。これ以降、情報処理装置102が図10の各ステップを実行するものとして当該処理を説明する。
【0058】
ステップS1005において、情報処理装置102は、撮像装置114がワーク入れ113を上から撮影することによって得られた画像1に基づいて、ワーク入れ113の中のワークの位置を検出する。ある局面において、情報処理装置102は、画像1からワーク入れ113の中のワークの位置を検出するために、既存の画像認識技術を用いてもよい。
【0059】
ステップS1010において、情報処理装置102は、画像1からワークを検出したか否かを判定する。情報処理装置102は、画像1からワークを検出した場合(ステップS1010にてYES)、制御をステップS1015に移す。そうでない場合(ステップS1010にてNO)、情報処理装置102は、ワーク入れ113内から全てのワークの取り出し処理が完了したと判定し、処理を終了する。
【0060】
ステップS1015において、情報処理装置102は、位置調整装置により、把持機構112をワークの取り出し作業のための予め定められた位置に移動させ、ワーク入れ113からワークを取り出す。
【0061】
ステップS1020において、情報処理装置102は、撮像装置115が把持機構112の先端を側面から撮影することによって取得された画像2を基に、把持機構112が把持しているワークの個数を算出する。ある局面において、情報処理装置102は、画像2から把持機構112が把持しているワークの個数を算出するために、既存の画像認識技術を用いてもよい。
【0062】
ステップS1025において、情報処理装置102は、画像2の解析結果に基づいて、把持機構112がワークを1個だけ把持しているか否かを判定する。情報処理装置102は、把持機構112がワークを1個だけ把持していると判定した場合(ステップS1025にてYES)、制御をステップS1030に移す。そうでない場合(ステップS1025にてNO)、制御をステップS1035に移す。
【0063】
ステップS1030において、情報処理装置102は、把持機構112が把持するワークを予め定められた位置に置き、処理を終了する。
【0064】
ステップS1035において、情報処理装置102は、画像2の解析結果に基づいて、把持機構112がワークを1個も把持していないか否かを判定する。情報処理装置102は、把持機構112がワークを1個も把持していないと判定した場合(ステップS1035にてYES)、処理を終了する。そうでない場合(ステップS1035にてNO)、情報処理装置102は制御をステップS1040に移す。
【0065】
ステップS1040において、情報処理装置102は、撮像装置114,115が撮影した各画像と、各電動アクチュエータのモータトルク値とを取得する。ある局面において、情報処理装置102は、各画像および各電動アクチュエータのモータトルク値に加えて、各種センサー値を各種センサーから取得してもよい。
【0066】
ステップS1045において、情報処理装置102は、取得した各画像(もしくは、画像に写るワークの個数)および各電動アクチュエータのモータトルク値を評価値関数部802の入力として、動作パターンごとの評価値を算出する。ステップS1150において、情報処理装置102は、動作パターンごとに算出された評価値の中で最大の評価値を選択し、当該最大の評価値に対応する動作パターンaを次の動作として選択する。
【0067】
ステップS1155において、情報処理装置102は、指令生成部805により、選択した動作パターンaを実行するための指令をワーク取り出し作業装置101に送信する。ワーク取り出し作業装置101は、受信した指令に基づいて、角度調整機構111の電動アクチュエータ11を駆動させることにより、把持機構112に絡まり解き動作をさせる。ある局面において、ワーク取り出し作業装置101は、角度調整機構111の電動アクチュエータ11および位置調整装置の電動アクチュエータ108を駆動させることにより、把持機構112に絡まり解き動作をさせてもよい。
【0068】
ステップS1160において、情報処理装置102は、再度、撮像装置115により把持機構112の先端を側面から撮影することによって取得された画像2を基に、把持機構112が把持しているワークの個数を算出する。
【0069】
ステップS1165において、情報処理装置102は、ステップS1160にて撮影された画像2の解析結果に基づいて、把持機構112がワークを1個だけ把持しているか否かを判定する。情報処理装置102は、把持機構112がワークを1個だけ把持していると判定した場合(ステップS1065にてYES)、絡まり解き作業は完了したため、制御をステップS1030に移す。そうでない場合(ステップS1065にてNO)、絡まり解き作業は未完了のため、情報処理装置102は制御をステップS1035に移す。
【0070】
ステップS1040~S1065において、情報処理装置102は、把持機構112が1個のワークを把持している状態になるまで、評価値に基づいて選択された動作パターンをワーク取り出し作業装置101に実行させ続けることで、ワークの絡まりを解くことができる。
【0071】
図11は、図10の処理の動作イメージの一例を示す図である。状態Xは、把持機構112がワーク入れ113からワークを取り出した直後を表している(ステップS1015に対応)。把持機構112は、絡まった状態の3個のワーク(ワークA,B,C)を把持している。
【0072】
情報処理装置102は、状態Xから、図10のステップS1035~ステップS1065の処理を繰り返すことにより、ワーク取り出し作業装置101に絡まり解き作業をさせる。情報処理装置102は、状態Xのときの各画像(もしくは、画像に写るワークの個数)および各電動アクチュエータのモータトルク値を取得する(ステップS1040に対応)。次に、情報処理装置102は、状態Xのときの各画像(もしくは、画像に写るワークの個数)および各電動アクチュエータのモータトルク値を評価値関数Fの入力として、各動作パターンのそれぞれの評価値を算出する(ステップS1045に対応)。そして、情報処理装置102は、最も評価値の高い動作パターンan-3を選択し(ステップS1050に対応)、動作パターンan-3に対応する指令をワーク取り出し作業装置101に送信する(ステップS1055に対応)。
【0073】
状態Yは、ワーク取り出し作業装置101が動作パターンan-3を実行した直後の様子を示す。情報処理装置102は、把持機構112がワークを1個把持しているか否かを判定する(ステップS1060およびS1065に対応)。状態Yにおいて、把持機構112が把持するワークの数は3個のままであり、絡まり解き作業は完了していない。よって、情報処理装置102は、再度ステップS1035からステップS1065までの処理を繰り返す。
【0074】
状態Zは、ワーク取り出し作業装置101が状態Yのときに動作パターンan-1を実行した直後の様子を示す。状態Zにおいて、ワークB,Cは落下しており、把持機構112が把持するワークの絡まり解き作業は完了していることがわかる。情報処理装置102は、撮像装置115が把持機構112の先端を側面から撮影することによって取得された画像2から、ワークの絡まり解き作業の完了を検出する。ワークの絡まり解き作業が完了した後は、情報処理装置102は、ワーク取り出し作業装置101に、ワークを予め定められた位置に運ばせる。その後、情報処理装置102は、ワーク取り出し作業装置101に、次のワークの取り出し作業を行うための指令を送信してもよい。
【0075】
<E.ワーク取り出し作業の学習処理>
図10および図11で説明した例において、情報処理装置102は、撮像装置114,115により撮影することによって取得された画像1,2の撮影した画像(もしくは、画像に写るワークの個数)、角度調整機構111および位置調整装置の現在のモータトルク値等に基づいて各動作パターンのそれぞれの評価値を計算し、評価値が最大になる動作パターンを順次実行することで動作を成功させる。そのため、図8の評価値関数Fは、画像(もしくは、画像に写るワークの個数)およびモータトルク値等に基づいて次に実行すべき最適な動作パターンに対して最大の評価値を出力するよう最適化されている必要がある。
【0076】
しかし、ワーク取り出し処理の対象となるワークの初期状態(ワーク同士の絡まり方等)は、把持機構112に把持されるごとに変化する可能性ある。また、ワーク取り出し作業装置101が動作パターンを実行することで、把持機構112により把持されたワークの姿勢や絡まり方も変化する可能性がある。これらのあらゆる状態を想定したルールベースの動作プログラムの構築は困難である。よって、本実施の形態に従うワーク取り出し作業システム100は、強化学習により、繰り返し動作を試行する過程で評価値関数Fを最適化する。
【0077】
図12は、ワーク取り出し作業システム100の絡まり解き作業の学習処理の一例を示すフローチャートである。ある局面において、図12の処理を実行するためのプログラムは、2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって実行されてもよい。これ以降、情報処理装置102が図12の各ステップを実行するものとして当該学習処理を説明する。
【0078】
ステップS1210において、情報処理装置102は、変数jに1を代入する。ステップS1220において、情報処理装置102は、変数jの値が定数J1以下であるか否かを判定する。情報処理装置102は、変数jの値が定数J1以下であると判定すると(ステップS1220にてYES)、ステップS1230に制御を移す。そうでない場合(ステップS1220にてNO)、情報処理装置102は、ステップS1250に制御を移す。評価値関数Fが未学習の初期状態において、情報処理装置102は、変数jが定数J1に達するまで、絡まり解き作業初期学習を繰り返し実行する。
【0079】
ステップS1230において、情報処理装置102は、絡まり解き作業の初期学習処理を実行する。絡まり解き作業の初期学習処理については後述する。ステップS1240において、情報処理装置102は、変数jの値をインクリメントする。以降は、情報処理装置102は、上限回数として予め定められた回数J1まで、絡まり解き作業の初期学習処理を繰り返し実行する。
【0080】
ステップS1250において、情報処理装置102は、変数jの値が定数J2以下であるか否かを判定する。情報処理装置102は、変数jの値が定数J2以下であると判定すると(ステップS1250にてYES)、ステップS1260に制御を移す。そうでない場合(ステップS1250にてNO)、情報処理装置102は、学習処理を終了する。
【0081】
ステップS1260において、情報処理装置102は、絡まり解き作業の学習処理を実行する。絡まり解き作業の学習処理については後述する。ステップS1270において、情報処理装置102は、変数jの値をインクリメントする。以降は、情報処理装置102は、変数jが上限値として予め定められた定数J2より大きくなるまで、絡まり解き作業の学習処理を繰り返し実行する。
【0082】
図13は、絡まり解き作業の初期学習処理(図12のステップS1230に対応)の一例を示すフローチャートである。ある局面において、図13の処理を実行するためのプログラムは、2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって実行されてもよい。これ以降、情報処理装置102が図13の各ステップを実行するものとして当該初期学習処理を説明する。
【0083】
ステップS1305において、情報処理装置102は、位置調整装置により、把持機構112を予め定められた位置(ワーク取り出し開始位置)に移動させるための指令をワーク取り出し作業装置101に送信する。
【0084】
ステップS1310において、情報処理装置102は、変数iに1を代入する。ステップS1315において、情報処理装置102は、ワーク取り出し作業装置101の撮像装置114,115の撮影した画像(もしくは、画像に写るワークの個数)と、各電動アクチュエータのモータトルク値とを状態情報S1として取得する。なお、状態情報S1は、さらに、情報処理装置102が各種センサーから取得した各種センサー値を含んでいてもよい。
【0085】
ステップS1320において、情報処理装置102は、動作決定部804により、乱数を用いて次に実行する動作パターンaを選択する。具体的には、情報処理装置102は、1~nの間の乱数に基づいて動作パターンのインデックス番号kを決定する。
【0086】
ステップS1325において、情報処理装置102は、状態情報S1を評価値関数学習部807に保管した後、ワーク取り出し作業装置101に動作パターンaを実行させるための指令を送信する。
【0087】
ステップS1330において、情報処理装置102は、ワーク取り出し作業装置101が動作パターンaを実行した後に、ワーク取り出し作業装置101の撮像装置114,115の撮影した画像(もしくは、画像に写るワークの個数)と、各電動アクチュエータのモータトルク値とを状態S2として取得する。なお、状態S2は、さらに、情報処理装置102が各種センサーから取得した各種センサー値を含んでいてもよい。
【0088】
ステップS1335において、情報処理装置102は、撮像装置115が把持機構112の先端を側面から撮影することによって取得された画像2を基に、把持機構112が把持しているワークの個数を算出する。ある局面において、情報処理装置102は、画像2から把持機構112が把持しているワークの個数を算出するために、既存の画像認識技術を用いてもよい。
【0089】
ステップS1340において、情報処理装置102は、画像2の解析結果に基づいて、把持機構112がワークを1個だけ把持しているか否かを判定する。情報処理装置102は、把持機構112がワークを1個だけ把持していると判定した場合(ステップS1340にてYES)、制御をステップS1345に移す。そうでない場合(ステップS1340にてNO)、情報処理装置102は制御をステップS1360に移す。
【0090】
ステップS1345において、情報処理装置102は、終了判定をTrue(完了)にし、「動作パターンa」に対する報酬Rを1にする。なお、本実施の例では、報酬Rは、成功のときは1、失敗のときは-1、それ以外のときは0とするが、報酬Rの例はこれに限られない。成功時や失敗時のときの報酬ごとに差があればよい。
【0091】
ステップS1350において、情報処理装置102は、評価値関数学習部807に、実行した「動作パターンa」、「状態情報S1,S2」、「報酬R(R=1)」および「終了判定True(完了)」を保存する。ステップS1355において、情報処理装置102は、評価値関数Fの更新処理を実行する。
【0092】
ステップS1360において、情報処理装置102は、画像2の解析結果に基づいて、把持機構112がワークを1個も把持していないか否かを判定する。情報処理装置102は、把持機構112がワークを1個も把持していないと判定した場合(ステップS1360にてYES)、報酬Rを生成せず処理を終了する。そうでない場合(ステップS1360にてNO)、情報処理装置102は制御をステップS1365に移す。
【0093】
ステップS1365において、情報処理装置102は、変数iの値が定数N1より大きいか否かを判定する。定数N1は、絡まり解き作業中に繰り返してよい動作パターンの実行回数の上限値である。情報処理装置102は、変数iの値が定数N1より大きいと判定した場合(ステップS1365にてYES)、動作パターンの実行回数が上限に達したと判断し、制御をステップS1370に移す。そうでない場合(ステップS1365にてNO)、情報処理装置102は制御をステップS1375に移す。
【0094】
ステップS1370において、情報処理装置102は、終了判定をTrueにし、動作パターンaに対する報酬Rを-1にする。ステップS1350以降の処理は前述した通りになる。ステップS1375において、情報処理装置102は、変数iの値をインクリメントする。ステップS1380において、情報処理装置102は、終了判定をFalseにし、実行した「動作パターンa」に対する報酬Rを0にする。
【0095】
ステップS1385において、情報処理装置102は、評価値関数学習部807に、実行した「動作パターンa」、「状態情報S1,S2」、「報酬R(R=0)」および「終了判定False(未完了)」を保存する。ステップS1390において、情報処理装置102は、評価値関数Fの更新処理を実行する。
【0096】
図14は、絡まり解き作業の学習処理(図12のステップS1260に対応)の一例を示すフローチャートである。ある局面において、図14の処理を実行するためのプログラムは、2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって実行されてもよい。これ以降、情報処理装置102が図14の各ステップを実行するものとして当該学習処理を説明する。また、図14において、前述の処理と同一の処理には、同一の符号を付してある。したがって、同一の処理の説明は繰り返さない。
【0097】
ステップS1410において、情報処理装置102は、評価値関数部802により、状態情報S1に基づいて、各動作パターンのそれぞれの評価値を算出する。ステップS1420において、情報処理装置102は、動作パターンテーブル803を参照して、最も評価値が高い動作パターンを選択する。
【0098】
図13の絡まり解きの初期学習処理においては、学習情報が十分にないため、情報処理装置102は、ステップS1320において、乱数で次の動作パターンを選択している。これに対して、図14の絡まり解きの学習処理においては、一定量以上の学習情報が評価値関数学習部807に蓄積されているため、情報処理装置102は、ステップS1410において、評価値関数Fに基づいて各動作パターンの評価値を算出する。情報処理装置102は、図14の処理においても、随時、評価値関数Fを更新することで絡まり解き作業の精度を向上させる。
【0099】
図15は、評価値関数部802の評価値関数Fの更新処理の一例を示すフローチャートである。ある局面において、図15の処理を実行するためのプログラムは2次記憶装置703に記憶され、1次記憶装置702に読み出されることにより、CPU701によって実行されてもよい。これ以降、情報処理装置102が図15の各ステップを実行するものとして更新処理を説明する。
【0100】
ステップS1510において、情報処理装置102は、評価値関数学習部807に保存されている各動作パターンaの「状態情報S1,S2」、「報酬R」および「終了判定」を読み出す。
【0101】
ステップS1520において、情報処理装置102は、ステップS1510にて読み出した各種データを用いて、学習用の評価値関数F’の内部パラメータを更新する。評価値関数F’は、評価値の算出に使用される評価値関数Fとは別に用意する学習用の評価値関数である。評価値関数F’は、評価値関数学習部807によって使用される。評価値関数Fは、評価値関数部802によって使用される。
【0102】
ステップS1530において、情報処理装置102は、学習処理を予め定められた回数繰り返すごとに、評価値関数F’を評価値関数Fにコピーする。情報処理装置102は、図12図14の処理中においても、図15の処理を随時実行してもよい。
【0103】
以下に、評価値関数Fの学習処理の詳細について説明する。評価値関数Fはニューラルネットワークのため、学習には教師信号が必要になる。情報処理装置102は、終了判定に応じて教師信号yを次のように決定する。
【0104】
絡まり解き処理の終了判定がTrueの場合の教師信号yは以下のようになる。
【0105】
【数1】
【0106】
絡まり解き処理の終了判定がFalseの場合の教師信号yは以下のようになる。
【0107】
【数2】
【0108】
ここで、「s'=T2、a'」は「Q(s,a)」が最大になる動作パターンを意味する。情報処理装置102は、上記の教師信号yと、評価値関数Fとの2乗誤差Eを求め、誤差逆伝搬法によりニューラルネットワークの学習を行う。評価値関数Fは、下記の式(3)の式で表される。
【0109】
【数3】
【0110】
また、情報処理装置102は、式(3)を下記の式(4)に代入して誤差を算出する。
【0111】
【数4】
【0112】
誤差逆伝搬法は、上記Eが0になるようにニューラルネットワークの内部パラメータを最適化する。よって、学習が進むにしたがって下記の式(5)の値が0に近づいていく。
【0113】
【数5】
【0114】
強化学習も同様に、学習が十分に行われると、下記の式(6)が成り立つので、誤差逆伝搬法によるニューラルネットワークの学習は強化学習の学習結果と同様になる。
【0115】
【数6】
【0116】
以上説明したように、本実施の形態に従うワーク取り出し作業装置101は、直列多関節の構造を有さず、代わりに直動機構およびパラレルリンクのみの構成を有する。その結果、多関節ロボットが持つ特異点の問題が発生せず、多関節ロボットよりも少ないスペースでの作業を可能にする。また、ワーク取り出し作業装置101は、機械学習においても、パラレルリンクの基端側リンクハブに取付けられた電動アクチュエータおよび位置調整装置の電動アクチュエータのモータトルク値のみを学習データとすることができる。そのため、ワーク取り出し作業装置101は、多関節ロボットと比較して、ワークの絡まり解き処理における学習パラメータが少なく機械学習が容易になる。よって、C型サークリップや、ばね、コイル等の絡まりやすいワークの取り出し作業における絡まり解き処理の精度を向上させることが可能となる。
【0117】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。
【符号の説明】
【0118】
11,108A,108B,108C 電動アクチュエータ、32 第1リンクハブ、33 第2リンクハブ、34 リンク機構、35,36 端部リンク部材、37 中央リンク部材、42,55,73,75 回転軸、62 減速機構、63 モータ固定部材、100 合作業システム、101 合作業装置、102 情報処理装置、103 制御装置、104 架台、105 第1の直動ユニット、106 第2の直動ユニット、107 第3の直動ユニット、109 作業ヘッド、110 回転ユニット取付部材、111 角度調整機構、112 把持機構、113 ワーク入れ、114,115 撮像装置、702 1次記憶装置、703 2次記憶装置、704 外部機器インターフェース、705 入力インターフェース、706 出力インターフェース、707 通信インターフェース、801 信号入力部、802 評価値関数部、803 動作パターンテーブル、804 動作決定部、805 指令生成部、806 動作結果判定部、807 評価値関数学習部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15