JP6549545B2 - 人の行動を学習してロボットを制御する制御装置およびロボットシステム - Google Patents

人の行動を学習してロボットを制御する制御装置およびロボットシステム Download PDF

Info

Publication number
JP6549545B2
JP6549545B2 JP2016200378A JP2016200378A JP6549545B2 JP 6549545 B2 JP6549545 B2 JP 6549545B2 JP 2016200378 A JP2016200378 A JP 2016200378A JP 2016200378 A JP2016200378 A JP 2016200378A JP 6549545 B2 JP6549545 B2 JP 6549545B2
Authority
JP
Japan
Prior art keywords
unit
robot
person
learning
work
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016200378A
Other languages
English (en)
Other versions
JP2018062016A (ja
Inventor
柴田 幸雄
幸雄 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP2016200378A priority Critical patent/JP6549545B2/ja
Priority to US15/724,417 priority patent/US10486306B2/en
Priority to DE102017009223.0A priority patent/DE102017009223B4/de
Priority to CN201710933803.6A priority patent/CN107914270B/zh
Publication of JP2018062016A publication Critical patent/JP2018062016A/ja
Application granted granted Critical
Publication of JP6549545B2 publication Critical patent/JP6549545B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40005Vision, analyse image at one station during manipulation at next station
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40116Learn by operator observation, symbiosis, show, watch
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40202Human robot coexistence

Description

本発明は、人の行動を学習してロボットを制御する制御装置、ロボットシステムおよび生産システムに関する。
従来、ロボットシステムでは、ロボットが動作している期間中、人の安全を確保するために、人がロボットの作業領域に入れないように安全対策が講じられていた。例えば、ロボットの周りには安全柵が設置され、ロボットの動作期間中には安全柵の内部に人が入ることが禁じられていた。
近年では、人とロボットが協働して作業を行うロボット(協働ロボット)が研究・開発され、実用化されている。このようなロボット(ロボットシステム)では、例えば、ロボットの周りに安全柵を設けない状態で、ロボットと人(作業者)が協働して作業を行うようになっている。
ところで、従来、人と共存、協調することが予定されるロボット(協働ロボット,協調作業ロボット)として、撮像手段と、可動部を逆入力可能に駆動する関節を持つ少なくとも1本の作業腕と、作業腕を支持する胴部と、作業場所の天井又は壁に基部を着脱可能に固定されて吊り下げられるとともに先端部で胴部と撮像手段とを支持する支持部材と、撮像手段が撮像した画像に基づき前記作業場所での作業対象物と当該作業ロボットとの相対位置を認識し、その相対位置に基づき前記作業対象物に対する作業を前記作業腕に行わせる作動制御手段と、前記作業が人と共存、協調して行う作業であることを認識すると、前記作業腕の関節を作動させるモータの出力を低下させる出力制御手段と、を具えてなる吊下げ型作業ロボットの技術が開示されている(例えば、特許文献1参照)。
特開2011−051056号公報
上述した特許文献1に開示された技術で解決する課題は、協働ロボット(ロボット)を作業場所に投入する場合、作業場所の近傍の床上の障害物があってもロボットを配置することができ、そのロボットを配置した際に、作業者の安全を確保しようとするもので、高精度の位置決めも作業命令の大規模な改変も必要としないというものである。
すなわち、上述した従来技術は、ロボットを作業者(人)に近接して配置することは可能であっても、例えば、テーブルに置かれた組立対象品に対して、ロボットと人が交互にアクセスして組立対象品を組み上げるといった複数の工程を協働して行う作業に適用するのは困難である。すなわち、従来技術は、人の行動を認識した結果に基づいて、ロボットの行動を制御するものではなかった。
本発明は、上述した課題に鑑み、人の行動を認識して人の行動を学習する機械学習装置を利用し、人の行動を学習してロボットを制御する制御装置、ロボットシステムおよび生産システムの提供を目的とする。
本発明に係る第1実施形態の第1例によれば、人とロボットが協働して作業を行うロボットの制御装置であって、前記人と前記ロボットが協働して作業を行う期間中に、前記人の行動を分類する認識部、および、前記人の行動を学習する学習部を含む機械学習装置と、前記認識部で分類した結果に基づいて、前記ロボットの行動を制御する行動制御部と、を備える制御装置が提供される。
本発明に係る第1実施形態の第2例によれば、人とロボットが協働して作業を行うロボットの制御装置であって、前記人と前記ロボットが協働して作業を行う期間中に、前記人の顔を認識し、前記人に対応するニューラルネットワークの重みに基づいて、前記人の行動を分類する認識部、および、前記人の行動を学習する学習部を含む機械学習装置と、前記認識部で分類した結果に基づいて、前記ロボットの行動を制御する行動制御部と、を備える制御装置が提供される。
前記認識部は、画像入力に基づいたデータを状態変数として受け取って、人の行動を分類した出力を生成し、前記学習部は、前記認識部により生成された前記人の行動を分類した出力を受け取るとともに、入力された教師データに基づいて、誤差を計算する誤差計算部と、前記誤差計算部の出力に基づいて、前記人の行動により前記ロボットの行動を制御するための誤差モデルを更新する誤差モデル更新部と、を備えることができる。
本発明に係る第1実施形態の第3例によれば、人とロボットが協働して作業を行うロボットの制御装置であって、上位コントローラと通信してニューラルネットワークからの重みを読込み、読み込んだ前記重みに基づいて、認識部により前記人の行動を分類するとともに、前記人の行動を学習する機械学習装置と、前記認識部で分類した結果に基づいて、前記ロボットの行動を制御する行動制御部と、を備える制御装置が提供される。
本発明に係る第1実施形態の第4例によれば、人とロボットが協働して作業を行うロボットの制御装置であって、前記人と前記ロボットが協働して作業を行う期間中に、前記人が前記ロボットの作業領域または可動領域に入ったか否かを判定する認識部と、前記認識部で判定した結果に基づいて、前記ロボットの行動を制限または停止し、前記人が協働して作業を行う前記ロボットの行動待機または行動再開を制御する行動制御部と、を備える制御装置が提供される。
前記ロボットは、産業用ロボット、フィールドロボット、または、サービスロボットであってもよい。前記認識部は、ニューラルネットワークおよびテンプレートマッチングのうち少なくとも一方を使用することができる。前記制御装置は、撮影を行うカメラを複数備え、それぞれのカメラで撮影された画像に基づいて、前記認識部により前記人の行動を認識し、前記認識部の出力をAND回路の入力とし、前記AND回路の出力を前記認識部の出力とすることができる。前記制御装置は、前記人と前記ロボットが協働して行動を行った後、上位コントローラに対して、作業情報および学習情報を送ることができる。
前記作業情報は、商品名、工程、画像認識によって特定された人、前記ロボットの種類、および、前記人と前記ロボットの作業時間のうち少なくとも1つを含み、前記作業時間は、作業開始から作業終了までの時間、作業毎における前記人と前記ロボットの動作時間と休止時間のうち少なくとも1つで構成されてもよい。前記学習情報は、ニューラルネットワークの重みであるのが好ましい。
本発明に係る第2実施形態によれば、上記第1実施形態の制御装置を複数備えるロボットシステムであって、複数の前記制御装置は、通信回線を介して互いに接続され、前記制御装置のそれぞれは、人の行動を個別に学習してその学習した情報を、前記通信回線を介して送信することにより、複数の前記制御装置で共有するロボットシステムが提供される。
本発明に係る第3実施形態の第1例によれば、複数のロボット、および、複数の前記ロボットを制御する複数の制御装置を含むセルと、前記セルに含まれる前記制御装置に対して通信可能に接続されたセルコントローラと、前記セルコントローラに通信可能に接続された管理コントローラと、を備える生産システムであって、前記セルコントローラは、前記セルに含まれる前記制御装置から送信された作業情報および学習情報を取得し、前記管理コントローラに対して、前記作業情報および前記学習情報を送信し、前記作業情報のうち、前記作業時間について比較用作業時間との差分を取り、その差分が任意に設定した値よりも大きい場合には、前記作業情報を送ってきた前記制御装置に対し、作業が遅いこと、標準作業方法、および、適切な作業時間として比較用作業時間のうち少なくとも1つを送信して表示させる生産システムが提供される。
本発明に係る第3実施形態の第2例によれば、複数のロボット、および、複数の前記ロボットを制御する複数の制御装置を含むセルと、前記セルに含まれる前記制御装置に対して通信可能に接続されたセルコントローラと、前記セルコントローラに通信可能に接続された管理コントローラと、を備える生産システムであって、前記管理コントローラは、前記セルコントローラから送られてきた作業情報と学習情報を取得して、前記作業情報および前記学習情報を記憶するとともに、特定の商品・特定の工程に対する重みを決定する生産システムが提供される。決定された前記重みは、1人の重み、複数人の重みのうちから選んだ1人の重み、あるいは、複数人の重みをまとめた重みであってもよい。
本発明に係る制御装置、ロボットシステムおよび生産システムによれば、人の行動を認識し、人の行動を学習してロボットの行動を制御することができるという効果を奏する。
図1は、本実施形態に係るロボットシステムの一例を適用した構成例を概略的に示す図である。 図2は、図1におけるロボットシステムの一例を示すブロック図である。 図3は、ニューロンのモデルを模式的に示す図である。 図4は、図3に示すニューロンを組み合わせて構成した演算層が三層のニューラルネットワークを模式的に示す図である。 図5は、図2に示すロボットシステムにおける認識部および学習部の一例を説明するための図である。 図6は、組立対象品の一例を説明するための図である。 図7は、側面から見たロボットを除き、天井から見た状態の一例を示す図である。 図8は、組立対象品のネジにユニットの穴を入れる場合の一例を説明するための図である。 図9は、図7と同様に、ユニットおよびケーブルが実装されていない組立対象品が所定の位置に置かれた様子を示す図である。 図10は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その1)である。 図11は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その2)である。 図12は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その3)である。 図13は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その4)である。 図14は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その5)である。 図15は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図(その6)である。 図16は、図7および図9に示す図において、ユニットが実装された組立対象品の状態を示す図である。 図17は、図16に示す組立対象品に対する処理の一例を説明するための図(その1)である。 図18は、図16に示す組立対象品に対する処理の一例を説明するための図(その2)である。 図19は、図16に示す組立対象品に対する処理の一例を説明するための図(その3)である。 図20は、図16に示す組立対象品に対する処理の一例を説明するための図(その4)である。 図21は、図16に示す組立対象品に対する処理の一例を説明するための図(その5)である。 図22は、図16に示す組立対象品に対する処理の一例を説明するための図(その6)である。 図23は、図16に示す組立対象品に対する処理の一例を説明するための図(その7)である。 図24は、図16に示す組立対象品に対する処理の一例を説明するための図(その8)である。 図25は、図16に示す組立対象品に対する処理の一例を説明するための図(その9)である。 図26は、組立対象品が排出された状態の一例を説明するための図である。 図27は、組立対象品の筐体内に身体の一部が入っていないことを確認するための構成の一例を説明するための図である。 図28は、顔の認証を、ニューラルネットワークを使用して行う一例を説明するための図である。 図29は、ニューラルネットワークの出力層とその前の層(中間層(隠れ層)の最後の層)を示す図である。 図30は、図29に示すニューラルネットワークにおいて、「失敗」を出力する場合を示す図である。 図31は、テンプレートマッチングについての一例を説明するための図である。 図32は、図29の行動Bを、テンプレートマッチングをして認識する場合について説明するための図である。 図33は、図29の行動Cを、テンプレートマッチングをして認識する場合について説明するための図である。 図34は、本実施形態に係る生産システムの一例を示すブロック図である。
以下、本発明に係る制御装置、ロボットシステムおよび生産システムの実施形態を、添付図面を参照して詳述する。なお、以下の図面において、理解を容易にするために、人やロボット等の縮尺は、適宜変更されている。ここで、ロボットシステムとは、人とロボットが協働して、予め定められた作業を行うシステムである。また、以下の記載では、一例として、人とロボットが協働して組立対象品にユニットとケーブルを組み上げる作業を説明するが、本発明の適用は、これに限定されないのはもちろんである。
図1は、本実施形態に係るロボットシステムの一例を適用した構成例を概略的に示す図であり、図2は、図1におけるロボットシステムの一例を示すブロック図である。まず、図1および図2を参照して、本実施形態に係るロボットシステムの一例を説明する。本実施形態のロボット(協働ロボット)1は、アーム4と複数の旋回・回転軸とを含む多関節ロボットである。なお、以下の記載では、一例として、多関節ロボットを使用したものを説明するが、本発明の適用は、多関節ロボットに限定されないのはいうまでもない。
ロボットシステム3は、ロボット1に取り付けられたエンドエフェクタとしてのハンド6を備える。把持用ハンド6−1は、ユニットやケーブルを把持および解放する機能を有する。また、例えば、後述する図12のように、ドライバ用ハンド6−2に取り換えることにより、エンドエフェクタとしてのドライバ用ハンド6−2を備え、ドライバでネジ(本明細書では、ビスを含めてネジと称する)を締める機能を有することになる。さらに、図示されていないが、例えば、ハンドチェンジャにより、把持用ハンド6−1とドライバ用ハンド6−2を交換することができる。なお、ハンドチェンジャについては、周知の技術であるので詳細な説明は省略する。また、ハンドエンドエフェクタは、把持用ハンドやドライバ用ハンドに限られず、作業の内容に応じたエンドエフェクタを用いることができる。
図2に示されるように、ロボット1は、それぞれの旋回・回転軸を駆動するアーム駆動装置44を含む。アーム駆動装置44は、旋回・回転軸の内部に配置されているアーム駆動モータを含み、アーム駆動モータが駆動することにより、アーム4を旋回・回転して所望の角度にすることができる。なお、ロボット1は、産業用ロボットに限定されるものではなく、フィールドロボットやサービスロボットに対しても適用することが可能である。
ロボット1は、ハンド6−1を閉じたり開いたりする把持用ハンド駆動装置45を備える。また、ハンドチェンジャにて、ドライバ用ハンドに取り換えた場合、ハンド6−2のドライバでネジを締めるドライバ用ハンド駆動装置48を備える。把持用ハンド駆動装置45は、ハンド6−1を駆動する把持用ハンド駆動シリンダと、把持用ハンド駆動シリンダに圧縮空気を供給するための空気ポンプおよび電磁弁を含む。
ドライバ用ハンド駆動装置48は、ハンド6−2のドライバを駆動させるために、圧縮空気を供給するための空気ポンプおよび電磁弁を含む。なお、圧縮空気を使用せずに、電気的に開閉、またはドライバを電気的に回転させてもよい。また、ハンドを交換すると精度上問題となる場合は、複数台のロボットを使用し、あるいは、ハンドを工夫するなどの対応を行うことになる。ここでは、ハンドを交換しても精度上問題がないと仮定する。また、図が複雑となるため、ハンド駆動装置は、図1には図示しない。
組立対象品50を組み立てるとき、例えば、力センサ49による力の変化の検出を行う。力センサ49は、どこに設けてもかまわないが、ここでは、理解を容易にするために手首部に設けるものする。なお、力センサ49としては、ロボット1に作用する力を検出可能な任意の検出器を採用することができる。
ロボット1は、制御装置2(行動制御部43)の行動指令に基づいて駆動する。制御装置2は、バスを介して互いに接続されたCPU(Central Processing Unit)、RAM(Random Access Memory)、および、ROM(Read Only Memory)等を有する演算処理装置を含む。制御装置2は、様々な情報を記憶する記憶部59を含む。制御装置2は、アーム駆動装置44および把持用ハンド駆動装置45およびドライバ用ハンド駆動装置48を制御する行動制御部43を含む。行動制御部43からの行動指令により、アーム駆動装置44および把持用ハンド駆動装置45およびドライバ用ハンド駆動装置48が駆動する。ここで、本実施形態の制御装置2は、ロボット1の外側からロボット1に加えられる外力を推定する外力算出部46を含む。
図2に示されるように、制御装置2は、入力部41および表示部42を含む。表示部42は、ロボット1の運転に関する情報等を表示可能に形成されている。表示部42としては、液晶表示装置を例示することができる。入力部41は、人が制御装置2に所望の指令を入力可能に形成されている。入力部41としては、キーボード等を例示することができる。なお、図1における組立対象品50は、例えば、台(車輪は示されていないが、台車でもよいし、ベルトコンベアでもよい)に乗って、実装面が天井を向くように置いてある。また、人(作業者)80は、作業中で無い直立状態の場合を示す。さらに、天井には、カメラ7が取り付けられており、角度を変えることができるとともに、拡大・縮小ができるようになっている。また、カメラ7は、組立対象品50、人80およびロボット1の映像を得ることができるものとする。カメラ8は、例えば、人80の正面を撮影する(写す)位置に設置するのが好ましい。
図2を参照して、さらに、説明を続ける。本実施形態における制御装置2は、人80の行動を学習し、人80の行動に対してロボット1が適切な行動を行うように、人80の動作を学習する機械学習装置5を備える。本実施形態の機械学習装置5は、画像入力51(カメラ7またはカメラ8の画像)から人80の行動を認識部53で認識(分類)し、学習部54で学習する。学習は、後述するニューラルネットワークにおける各々の重みを見つけ出す。学習部54がニューラルネットワークの重みをアップデートした場合は、認識部53は、学習部54よりアップデートされた重みを得る。認識部53がアップデートされた重みを得た後は、そのアップデートされた重みでニューラルネットワークの演算を行う。予め定められた人80の行動と判断した場合、ロボット1は、それに対応した行動を行うように行動制御部43により制御される。前処理部52は、例えば、認識部53が高速に動作できるように、画像に前処理(例えば、次元圧縮等)を施す。画像に対する前処理については、知られている様々な手法を適用することができ、その説明は省略する。
ここで、認識部53と学習部54は、例えば、電源ON時に、認識部53により人80の顔を認証し、記憶部59に保存されている重みを使用し、または、上位コントローラから人80に対応した重みを入手して使用する。なお、認識部53による顔認証ではなく、人80の情報が入っている記憶媒体、例えば、USB(Universal Serial Bus)メモリをUSBポートに挿入することにより、人80を判別してもよい。あるいは、キーボードからのIDやID+パスワード、若しくは、IDカード+読み取り器等により人80を判別してもよい。判別した結果、記憶部59に保存されている重みを使用し、あるいは、上位コントローラから重みを入手して使用してもよい。なお、複数人の重みのうちから選んだ1人の重みまたは複数人の重みをまとめた重みを、上位コントローラから送って使用することもできる。また、学習部54の重みがアップデートされた場合、記憶部59に学習情報(ニューラルネットワークの各々の重み)を保存する。なお、少なくとも使用可能な1つ(一人)の重みは、前もって記憶されているものと仮定する。
また、図2に示されるように、複数の制御装置2の機械学習装置5は、通信媒体を介して相互にデータを共有または交換するように構成してもよい。例えば、それぞれが制御装置2で制御されるロボットシステム3を複数備えた機械工場において、すなわち、ロボットシステム3を複数備える生産システムにおいて、それぞれのロボットシステム3の機械学習装置5は、通信媒体、例えば、イーサネット(登録商標)やインターネット等の通信回線を介して相互にデータを共有または交換することができるようになっている。なお、機械学習装置5の学習部54は、例えば、それぞれの制御装置2に設けずに、上位コントローラ上に設けることも可能である。このように、学習した情報を共有または交換することにより、学習の回数を増やすことができる。この結果、学習の精度を高めることができる。
制御装置2は、作業時間を測定する作業時間測定部47を備える。本実施形態の作業時間測定部47は、組立開始から終了までの時間、作業毎における人80とロボット1の動作時間と休止(停止)時間を測定する。本実施形態の作業時間測定部47は、行動制御部43の指令に基づいて作業時間を測定している。なお、本明細書において、例えば、人80といえば、ロボット1と協働して作業(処理)を行う人を示し、人とのみ記載している場合は、実際にロボット1と協働して処理(作業)を行う人だけでなく、例えば、ロボット1と直接協働作業を行わない人を含むものとする。
ここで、機械学習装置について説明する。機械学習装置は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準等を解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けることができる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング:Deep Learning)」と呼ばれる手法がある。
なお、図2に示す機械学習装置5は、「ニューラルネットワーク(教師あり)」を適用したものである。これらの機械学習(機械学習装置5)は、汎用の計算機若しくはプロセッサを用いることもできるが、例えば、GPGPU(General-Purpose computing on Graphics Processing Units)や大規模PCクラスター等を適用すると、より高速処理が可能になる。
まず、教師あり学習とは、ある入力と結果(ラベル)のデータの組を大量に機械学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル(誤差モデル)、すなわち、その関係性を帰納的に獲得するものである。例えば、後述のニューラルネットワーク等のアルゴリズムを用いて実現することが可能である。
また、教師なし学習とは、入力データのみを大量に機械学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形等を行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすること等ができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することできる。
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。本実施形態においては、実際に、人80とロボットシステム3を動かさなくても取得することができるデータ(画像データやシミュレーションのデータ等)を教師なし学習で利用することにより、学習を効率的に行うことが可能になる。
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、よいスタート地点から学習をスタートさせることもできる。
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法を学ぶものである。以下に、例として、Q学習の場合で説明を続けるが、Q学習に限定されるものではない。
Q学習は、ある環境状態sの下で、行動aを選択する価値Q(s,a)を学習する方法である。つまり、ある状態sのとき、価値Q(s,a)の最も高い行動aを最適な行動として選択すればよい。しかし、最初は、状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、ある状態sの下で様々な行動aを選択し、その時の行動aに対して、報酬が与えられる。それにより、エージェントは、よりよい行動の選択、すなわち、正しい価値Q(s,a)を学習していく。
行動の結果、将来にわたって得られる報酬の合計は、Q(s,a)=E[Σ(γt)rt]となる。ここで、E[Σ(γt)rt]は期待値を表している。価値Q(s,a)を 最大化したいが、最適な行動に従って状態変化したときにとるものであり、それは、分かっていないので、探索しながら学習することになる。このような価値Q(s,a)の更新式は、例えば、次の式(1)により表すことができる。
Figure 0006549545
上記の式(1)において、stは、時刻tにおける環境の状態を表し、atは、時刻tにおける行動を表す。行動atにより、状態はst+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1(γ=1をとる場合は累積和の範囲を無限大までとしないで有限区間とする)のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した式(1)は、試行atの結果、帰ってきた報酬rt+1を元に、状態stにおける行動atの評価値Q(st,at)を更新する方法を表している。すなわち、状態sにおける行動aの評価値Q(st,at)よりも、報酬rt+1 + 行動aによる次の状態における最良の行動max aの評価値Q(st+1,max at+1)の方が大きければ、Q(st,at)を大きくし、反対に小さければ、Q(st,at)を小さくすることを示している。つまり、ある状態におけるある行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
ここで、Q(s,a)の計算機上での表現方法は、すべての状態行動ペア(s,a)に対して、その値をテーブルとして保持しておく方法と、Q(s,a)を近似するような関数を用意する方法がある。後者の方法では、前述の式(1)は、確率勾配降下法等の手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、ニューラルネットワークを用いることができる。
次に、ニューラルネットワークについて説明する。図3は、ニューロンのモデルを模式的に示す図であり、図4(a)は、図3に示すニューロンを組み合わせて構成した演算層が三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、図3に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
図3に示されるように、ニューロンは、複数の入力x(図3では、一例として入力x1〜x3)に対する出力(結果)yを出力するものである。各入力x(x1,x2,x3)には、この入力xに対応する重みw(w1,w2,w3)が乗算される。これにより、ニューロンは、次の式(2)により表現される結果yを出力する。なお、入力x、結果yおよび重みwは、すべてベクトルである。また、下記の式(2)において、θは、バイアスであり、fkは、活性化関数である。
Figure 0006549545
図4(a)を参照して、図3に示すニューロンを組み合わせて構成した演算層が三層のニューラルネットワークを説明する。図4(a)に示されるように、ニューラルネットワークの左側から複数の入力x(ここでは、一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは、一例として、結果y1〜入力y3)が出力される。具体的に、入力x1,x2, x3は、3つのニューロンN11〜N13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてW1と標記されている。
ニューロンN11〜N13は、それぞれ、z11〜z13を出力する。図4(a)において、これらz11〜z13は、まとめて特徴ベクトルZ1と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルZ1は、重みW1と重みW2との間の特徴ベクトルである。z11〜z13は、2つのニューロンN21およびN22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてW2と標記されている。
ニューロンN21,N22は、それぞれz21,z22を出力する。図4(a)において、これらz21,z22は、まとめて特徴ベクトルZ2と標記されている。この特徴ベクトルZ2は、重みW2と重みW3との間の特徴ベクトルである。z21,z22は、3つのニューロンN31〜N33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてW3と標記されている。
最後に、ニューロンN31〜N33は、それぞれ、結果y1〜結果y3を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みWを学習し、そのパラメータを用いて予測モードにおいて、ロボットの行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論等多様なタスクが可能なのはいうまでもない。
ここで、予測モードで実際に動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
また、重みW1〜W3は、誤差逆伝搬法(誤差逆転伝播法:バックプロパゲーション:Backpropagation)により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力xが入力されたときの出力yと真の出力y(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。このようなニューラルネットワークは、演算層を二層とすることも、四層以上に、さらに層を増やすことも可能である(層を増やした場合、深層学習と称される)。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。
なお、図4(a)と同じ演算層が三層のニューラルネットワークについて、入力層、中間層(隠れ層)、出力層と呼ぶ場合を図4(b)に示す。本実施例の機械学習装置5は、例えば、ニューラルネットワークを使用するために、図2に示すように、画像入力51、前処理部52、認識部53、学習部54を備えている。ただし、本発明に適用される機械学習方法は、ニューラルネットワークに限定されない。また、機械学習(機械学習装置5)は、例えば、GPGPUや大規模PCクラスター等を適用することで実現可能なのは、前述した通りである。また、本実施形態においては、様々な機械学習方法のうち、上述したニューラルネットワークを採用した教師あり学習を行う。なお、本実施形態は、様々な手法が適用可能なのは、前述した通りである。
図5は、図2に示すロボットシステムにおける認識部および学習部の一例を説明するための図であり、本実施形態のロボットシステム3の制御装置2において、「教師あり学習」を適用した機械学習装置5の認識部53、学習部54を説明するためのものである。ここで、図5(a)は、認識部53、学習部54の入出力信号を示すブロック図であり、図5(b)は、「教師あり学習」を適用した認識部53、学習部54の一例を示すブロック図である。図5(a)に示されるように、機械学習装置5における認識部53は、外部から環境の状態を観測するための状態変数(状態量、入力データ)が入力され、学習部54には、状態変数(状態量、入力データ)が入力されるとともに教師データ(ラベル)(正解ラベル,正解データともいう)が入力される(学習データセットを与える時は「あるデータと教師データ(ラベル)」が入力される)。
図5(b)に示されるように、学習部54は、誤差計算部541および誤差モデル更新部(学習モデル更新部)542を含む。誤差計算部541は、教師データ(ラベル)と認識部53からの出力(出力層および中間層の出力)を受け取り、その教師データ(ラベル)と、認識部53からの出力の誤差(差分)を計算(例えば、二乗誤差計算)する。この誤差(差分)に基づいて、誤差関数(目的関数)を計算する。そして、誤差が小さくなるように、誤差モデル更新部542により学習モデルが更新される(誤差関数(目的関数)を基にして、例えば、誤差逆伝播法/勾配降下法で重みWが更新される)。
初期学習(学習データセットを使用した学習)として、状態変数(入力データ)は、例えば、それが何であるか明確である画像データであり、教師データ(ラベル)は、例えば、図29を参照して、後に詳述する出力層のどの出力が有効になるかといったことを示すデータが対応する。具体的に、例えば、「ユニットAのネジ締め作業」の画像入力に対して、教師データ(ラベル)は、出力Cが有効ということになる。
これらの学習データセットを使用して、例えば、画像入力に対する認識部53の出力と教師データを入力として、誤差計算部541はその誤差を計算する。この誤差(差分)に基づいて、誤差関数(目的関数)を計算する。誤差が小さくなるように、誤差モデル更新部542により学習モデルが更新される(誤差関数(目的関数)を基にして、例えば、誤差逆伝播法/勾配降下法で重みWが更新される)。重みWが更新された場合は、認識部53に変更された重みWを渡す。尚、誤差モデル更新部542がコントローラなど他から重みを受け取ったときにも認識部53へその重みを渡す。
なお、近年では、初期の重みWとして「ランダムな値を入れる」という方法が使われているので、重みWの初期値はランダムな値としてもよい。また、学習データセットは、例えば、制御装置2や機械学習装置5や学習部54や認識部53などに内蔵したフラッシュメモリ(Flash Memory)等の不揮発性メモリに保持したデータ、セルコントローラや管理コントローラに保持されたデータ、通信回線を介してオンラインで提供されたデータ、あるいは、USBから入力されたデータ等を使用することができる。これらの記述が学習データセットの与え方や保存場所を特定するものではない。
実作業に使用する場合、認識部53は、前処理部52の画像データの出力を状態変数(入力データ)として入力し、ニューラルネットワークにおける入力から図29や図30の各出力までを計算し、各出力の値を出す。出力(例えば、出力C)の値が有効となった場合は、行動制御部へその出力(例えば、出力C)が有効となったことを伝えるとともに、その出力(出力層および中間層の出力、例えば、出力C)の値を誤差計算部541へ入力する。誤差計算部541は、入力された値の内、出力層の出力の値と教師データとの誤差を計算する。この誤差(差分)に基づいて、誤差関数(目的関数)を計算する。誤差計算部541は、誤差関数(目的関数)と認識部53からの出力を誤差モデル更新部542へ入力し、誤差モデル更新部542は、誤差関数(目的関数)を基にして、例えば、誤差逆伝播法/勾配降下法で重みWを更新する。
なお、図5(b)では、認識部53から誤差計算部541へ出力層と中間層の出力が渡されるとしたが、誤差計算部541と誤差モデル更新部542にそれぞれ出力を渡してもよい。また、図5(b)では、状態変数(状態量、入力データ)が誤差モデル更新部542へ入力されるとしたが、認識部53から渡してもよい。さらに、誤差計算部541に与えられる、認識部53からの出力の値 は、後に詳述する図29または図30の出力層のどの出力が有効になったか(例えば、出力C)とともに、図30では失敗信号を含むものとする。(後述するように、正常に次の動作に移り、その動作が完了した場合に、「失敗」とならなかった場合は成功となる。)
図6は、組立対象品の一例を説明するための図であり、図6(a)は、組立対象品50にA,Bのユニットが実装された状態を示し、図6(b)は、組立対象品50に何も実装されていない状態を示し、そして、図6(c)は、組立対象品50にユニットA、Bとケーブルが実装された状態を示す。
図7は、側面図側面から見たロボットを除き、天井から見た状態の一例を示す図であり、図7(a)は、ロボット1の側面図を示し、図6(b)は、ロボット1を上方から見た図を示し、そして、図7(c)は、組立対象品50を人(作業者)80とともに上方から見た図を示す。なお、組立対象品50は、図7では、実装部分が天井を向くように置いてある。また、組立対象品50の「○」の部分は、ネジやネジ穴を示す。図8は、組立対象品のネジにユニットの穴を入れる場合の一例を説明するための図であり、図8(a)〜図8(d)は、処理の時間的な流れを示す。
図7(c)に示されるように、組立対象品50にネジとネジ穴があるのは、例えば、図8(a)のように、ユニット側のねじ穴部分に、ネジの頭よりも大きい穴と、ネジの径よりやや大きい穴がつながった状態の穴を開け、図8(b)のようにネジが浮いた状態のところに、図8(c)のようにユニットの穴を入れ、図8(d)のようにユニットを移動した場合、ネジ穴ではなく、ネジとなるためである。
図7において、組立対象品50を挟んで上から見た人80の頭と肩、および、ロボット1を示す。なお、実装されるA,Bのユニットやケーブルは、図示されていないロボット1のアーム4が届く範囲に置かれているものとする。上から見たロボット1の上(正立での紙面の上)にロボット1を側面から見た場合を示す。上から見たロボット1と側面から見たロボット1は同一のロボットである。なお、図示していないが、人80の顔と行動が分かるところにカメラ8が設置してあるものとする。
図2では、床からポールを経由してカメラ8が設置されているが、ロボット1の行動上邪魔になり、あるいは、ロボット1が人80の像を遮るような場合には、天井から吊り下げて人80の顔と行動を撮影してもよい。また、壁が近くにある場合には、カメラを壁に設置することもできる。
ここで、顔の認証において、後述する図28のように、ニューラルネットワークを使用して行ってもよいが、テンプレートマッチングを使用することもできる。テンプレートマッチングについて、簡単に述べる。テンプレートと呼ばれる抽出したい画像が、抽出用画像に存在しているかを調べるために、図31に示すように、例えば、左上端から右上端に向かって少しずつ移動し、テンプレートと同じか、どれだけ似ているかを計算によって求める。右端まで移動すると、左上端から少し下に移動し、同様に計算を行う。この場合、右下端まで移動したら終了である。調べる方法(例えば、正規化相関を使用した方法や幾何学形状を使用した方法)、前処理、高速化などについては周知の事実などで省略する。
図28は、顔の認証を、ニューラルネットワークを使用して行う一例を説明するための図であり、ニューラルネットワークの出力層とその前の層(中間層(隠れ層)の最後の層)を表したものであり、出力層の出力の値(確率)がある値以上でその出力が有効とする。例えば、出力Cの出力の値(確率)がある値以上で江田さんと判断する。なお、出力層の出力の値(確率)がある値以上でその出力が有効としたが、出力層の出力の値(確率)がある値以上で他の出力との差がある値以上の場合にその出力が有効としてもよい。また、ある出力を有効とする方法について最も簡単な方法を述べたが、これ以外の方法で行うことに制限を加えるものではない。以降において、出力層の出力の値(確率)がある値以上でその出力が有効としたが、考え方は、前述した通りである。なお、ニューラルネットワークとテンプレートマッチングを併用することも可能である。
以上において、本実施形態において、顔の認証を行うのは、ニューラルネットワークやテンプレートマッチングに限定されるものではなく、他の様々な手法を適用することもできる。すなわち、ニューラルネットワークおよびテンプレートマッチング以外に、顔の認証ができるものであれば、それを使用することができる。
図9は、図7と同様に、ユニットおよびケーブルが実装されていない組立対象品が所定の位置に置かれた様子を示す図である。なお、図9(a)〜図9(c)は、図7(a)〜図7(c)に対応する。図10〜図15は、図9に示す組立対象品にユニットを実装しネジを締める場合の一例を説明するための図である。
図9(a)〜図9(c)において、ユニットおよびケーブルが実装されていない組立対象品50が図の位置に置かれると、例えば、天井のカメラ7によって、A、Bのユニットが実装されるネジまたはネジ穴の位置が画像認識され、位置合わせが行われるとともに、時間計測がスタートし、組み立てを開始する。時間計測は、組立開始から終了までの時間、および、人80とロボット1の作業毎における動作時間と休止時間である。このデータは、一例としては、後述するセルコントローラで処理するが、これに限定されず、制御装置2で処理することもでき、また、管理コントローラで処理してもよい。なお、ここでは、ネジまたはネジ穴としたが、マーカを複数個所つけることによって画像認識を行うこともできる。
図9(a)〜図9(c)は、側面図にてロボット1のユニット把持用ハンド6−1が、図示しないユニット置台からユニットAをつかんで組立対象品50にユニットAを実装する準備を行っている状態を示す。ここで、天井からのカメラ7に撮影される人が組立対象品50におけるユニットAの実装近辺に身体の一部がない(存在しない)ことを画像認識で確認し、図10のように組立対象品50のユニットAの実装位置にロボット1のアーム4を動かしてユニットAを実装する。この時、人がユニットAの実装近辺に身体の一部が入った場合やロボット1のアーム4等の移動軌跡上に身体の一部が入った場合など、ロボット1のアーム4等やユニットAと干渉すると判断される場合は、ロボット1のアーム4等が人を傷つけないように、スピードを減速するかまたは停止する。どの範囲に入ったらスピードを減速するか、またどの範囲に入ったら停止するかは、任意で設定できるとする。
組立対象品50におけるユニットAの実装近辺に身体の一部が入ったことやロボット1のアーム4等の移動軌跡上に身体の一部が入ったことを画像認識する方法は、例えば、カメラ7およびカメラ8の画像から輪郭を抽出し、ユニット近傍や移動軌跡上にその輪郭があるかないかを判断する。また、輪郭を抽出するには、ソーベルフィルタ等を使用すればよいが、これらは、すでに知られた技術なので、ここでは、説明を省略する。なお、ユニットAの実装近辺に身体の一部が入ったことやロボット1のアーム4等の移動軌跡上に身体の一部が入ったことを画像認識する方法は、これ以外の様々な方法で行うことができるのはいうまでもない。
図27は、組立対象品の筐体内に身体の一部が入っていないことを確認するための構成の一例を説明するための図である。図27に示されるように、組立対象品50の筐体内に身体の一部が入っていないことを確認するために、組立対象品50の外形(例えば、図27に示す例では、四角形状)を画像認識してその輪郭の四角形状のどこも途切れていないことにより、身体の一部(人80)が組立対象品の筐体内に入っていないことを確認することができる。この場合、四角形状の辺を際立たせるために、組立対象品50の背後(底)から軽いライトを照射するのが好ましい。
Aのユニットが、ロボット1によって組立対象品50のAの実装位置に実装されると、ロボット1のアーム4は、例えば、元の位置に戻り、図示しないユニット置台からユニットBをつかんで組立対象品50にユニットBを実装する準備を行う。天井からのカメラ7に撮影される人が組立対象品50におけるユニットBの実装近辺に身体の一部がないことを画像認識で確認し、図11のように組立対象品50のユニットBの実装位置に、ユニットBを実装する。この時、人がユニットBの実装近辺に身体の一部が入った場合やロボット1のアーム4等の移動軌跡上に入った場合など安全上の問題が発生した場合は、ロボット1のアーム4等が人を傷つけないように、スピードを減速するかまたは停止する。
ユニットBがロボット1によって組立対象品50のユニットBの実装位置に実装されると、次の作業が、例えば、人80と協働してのネジ締めの場合、ロボット1は図示しないハンドチェンジャにより、図12のように、ドライバ9Rがついたドライバ用ハンド6−2を手首に実装する。
人(腕)80とドライバ9Mが、図13のようにユニットAのネジを締める位置に移動すると、ロボット1のアーム4はユニットAのネジを締める位置に移動し、ドライバ用ハンド6−2を使ってネジ締めを開始する。ユニットAのネジ締めが終了したら、人(腕)80とドライバ9MがユニットAからユニットBの左下に移動するので、ロボット1のアーム4もユニットAからユニットBの右上へ移動する。移動後、人80が図14のユニットBの左下のネジを締め、ロボット1がユニットBの右上のネジを締めるとする。
さらに、人(腕)80とドライバ9MがユニットBの左下からユニットBの右下に移動するので、ロボット1のアーム4もユニットBの右上から左上へ移動する。移動後、人80が図15のユニットBの右下のネジを締め、ロボット1がユニットBの左上のネジを締めるとする。
次に、図16〜図25を参照して、ユニットAおよびユニットBに必要なケーブルを布線する(ケーブルをユニットに配線し、あるいは、ルートにしたがってタイラップバンド等で固定することを、ここでは布線と称する)処理を説明する。図16は、図7および図9に示す図において、ユニットが実装され、ネジが締められた組立対象品の状態を示す図である。なお、図16(a)〜図16(c)は、図7(a)〜図7(c)あるいは図9(a)〜図9(c)に対応する。
まず、ユニットA用ケーブルを布線するとする。図16(a)において、ロボット1は、図示しないハンドチェンジャにより、ドライバ用ハンド6−2をケーブル把持用ハンド6−1に取り換えて、ロボット1のケーブル把持用ハンド6−1が図示しないケーブル置台からユニットA用ケーブルをつかんで保持する。移動については、例えば、天井からのカメラ7に撮影される人がロボット1のアーム4等の移動軌跡上にない(存在しない)ことを画像認識により確認し、図17に示されるように、組立対象品50における適切な位置に移動するように、行動制御部43はロボット1のアーム4を制御する。この時、人の身体の一部がロボット1のアーム4等の移動軌跡上に入った場合など安全上の問題が発生した場合は、ロボット1のアーム4等が人を傷つけないように、スピードを減速するかまたは停止する。どの範囲に入ったらスピードを減速するか、またどの範囲に入ったら停止するかは、任意で設定することができるものとする。
ロボット1のケーブル把持用ハンド6−1が適切な位置で停止したら、人80はユニットA用ケーブルを受け取るために、例えば、図18のように、ユニットA用ケーブルを持つと、ロボット1の力センサ49の値が変化する(値が小さくなる)ため、制御装置2の行動制御部43は人80がユニットA用ケーブルを受け取ったと判断し、人からロボット1のアーム4が遠ざかるようにして移動するように制御する。次のロボット1の行動として、図示していないケーブル置台からユニットB用ケーブルをつかんで保持する。
図19は、人80がユニットA用ケーブルを布線している状態を示す。ロボット1のアームの移動時間を短縮するために、前もってユニットB用ケーブルを移動してもよいが、人80が作業中の場合などで人と干渉するまたは作業の邪魔になると判断される場合は、図20の「ロボットアーム近傍待機位置例」のように、ケーブルを把持したロボット1のアームの最終の位置から少し離れて待機(行動待機)するのが好ましい。なお、どこで待機するかは、任意である。人と干渉しない(人80とロボット1のアーム4等がぶつからない)、邪魔しないと判断した場合は、ロボット1は、待機せずに移動速度を減速してロボット1のアーム4を最終の位置に移動してもよい。
図21は、人80が作業(この場合はユニットA用ケーブルの布線)を終了し、待機する例を示す。人80が待機すると、ロボット1のアーム4は、移動を再開(行動再開)する。図22は、移動を再開し、ユニットB用ケーブルを適切な位置へ移動させた例を示す。ロボット1のケーブル把持用ハンド6−1が適切な位置で停止したら、人80は、ユニットB用ケーブルを受け取るために、例えば、図23のように、ユニットB用ケーブルを持つ。これにより、ロボット1の力センサ49の値が変化する(値が小さくなる)ため、制御装置2の行動制御部43は、人80がユニットB用ケーブルを受け取ったと判断し、人からロボット1のアーム4が遠ざかるようにして移動するように制御する。
図24は、人80がユニットB用ケーブルを布線している状態を示し、図25となって、作業が終了(組立対象品50が完成)する。図26は、組立対象品50が排出された状態の一例を説明するための図である。
次に、人80の行動とロボットの行動の詳細について説明する。図29は、ニューラルネットワークの出力層とその前の層(中間層(隠れ層)の最後の層)を表したものである。出力層の出力は、出力Aとして「待機状態1」から出力Nの「待機状態4」まであるとする。また、構成に応じて図30のように、例えば、出力Oに後述する「失敗」を出力する。人80(腕)とドライバ9MがユニットAのネジを締める位置に移動したかどうかは、図29の出力層の出力Bの値(確率)がある値以上であるかどうかで判断されるとする。(出力層の出力Bの値(確率)がある値以上かどうかで判断できるとする)。出力Bの値(確率)がある値以上であった場合、人80(腕)とドライバ9Mが「ユニットAのネジを締める位置に移動」と認識部53が認識(判定,判断)する。行動制御部43は、ロボット1のアーム4をユニットAのネジを締める位置に移動するように制御する。
上述した例では、人80(腕)とドライバ9Mが「ユニットAのネジを締める位置に移動」後に、ロボット1のアーム4をユニットAのネジを締める位置に移動するように記載しているが、これは人80の行動によりロボット1の行動が決まることを容易に理解するためのものであって、実際には図29の出力をもっと分けて、人(腕)80とドライバ9MがユニットAのネジを締める位置に移動し始めたらロボット1のアーム4もユニットAのネジを締める位置に移動するように制御する。
この移動の動作に関しては、例えば、テンプレートマッチングを使用して物体移動の検出ができる。後述する図32、図33を使って説明する方法を適用してもよいが、例えば、カメラから必ず見えるところに印をつけて、テンプレートマッチングで印の動きを追うことにより物体移動の検出を行ってもよい。このように、図29に基づいて記載しているのは、ほんの一部であり、本発明における人の行動によりロボット1を制御する考え方は、そのような記載されたものに限定されるものではない。
ここで、図29の出力Cの値(確率)がある値以上であった場合、人(腕)80とドライバ9Mによる「ユニットAのネジ締め作業」と認識部53が判断(判定)する。行動制御部43は、ロボット1のドライバ用ハンド6−2のドライバ9Rを使用してロボット1がユニットAのネジ締めを行うように制御する(図13参照)。
また、図29の出力Dの値(確率)がある値以上であった場合、人(腕)80とドライバ9Mが「ユニットBの左下のネジを締める位置に移動」と認識部53が判断する。行動制御部43は、ロボット1のドライバ用ハンド6−2のドライバ9Rを使用してユニットBのネジを締めることができるよう、右上の位置に移動するように制御する。さらに、図29の出力Eの値(確率)がある値以上であった場合、人80(腕)とドライバ9Mによる「ユニットBの左下のネジ締め作業」と認識部53が判断する。行動制御部43は、ロボット1のドライバ用ハンド6−2のドライバ9Rを使用してロボット1がユニットBの右上のネジ締めを行うように制御する(図14参照)。
次に、図29の出力Fの値(確率)がある値以上であった場合、人80(腕)とドライバ9Mが「ユニットBの右下のネジを締める位置に移動」と認識部53が判断する。行動制御部43は、ロボット1のドライバ用ハンド6−2のドライバ9RでユニットBのネジを締めることができるよう、左上の位置に移動するように制御する。また、図29の出力Gの値(確率)がある値以上であった場合、人80(腕)とドライバによる「ユニットBの右下のネジ締め作業」と認識部53が判断する。行動制御部43は、ロボット1のドライバ用ハンド6−2のドライバ9Rを使用してロボット1がユニットBの左上のネジ締めを行うように制御する(図15参照)。
さらに、図29の出力Hの値(確率)がある値以上であった場合、人80が「待機状態2」と認識部53が判断する。行動制御部43は、ロボット1がユニットA用ケーブルを把持・移動する(図16および図17参照)。また、図29の出力Iの値(確率)がある値以上であった場合、人80が「ユニットA用ケーブル受け取り」と認識部53が判断する。ロボット1の力センサ49が変化すると、制御装置2の行動制御部43は、人80がユニットA用ケーブルを受け取ったと判断し、人からロボット1のアーム4が遠ざかるようにして移動するように制御するのはすでに記述した通りである(図18参照)。
そして、ロボット1は、ユニットB用ケーブルを把持・移動するが、図29の出力Jの(確率)がある値以上であった場合、「ユニットAの布線作業」と認識部53が判断する。行動制御部43は、ロボット1を近傍待機させる(図19および図20参照)。また、図29の出力Kの値(確率)がある値以上であった場合、人80が「待機状態3」と認識部53が判断する。行動制御部43は、ロボット1の移動を再開させる(図21および図22参照)。
さらに、図29の出力Lの値(確率)がある値以上であった場合、人80が「ユニットB用ケーブル受け取り」と認識部53が判断する。ロボット1の力センサ49が変化すると、制御装置2の行動制御部43は、人80がユニットB用ケーブルを受け取ったと判断し、人からロボット1のアーム4が遠ざかるようにして移動するように制御するのはすでに記述した通りである(図23参照)。また、図29の出力Mの(確率)がある値以上であった場合、「ユニットBの布線作業」と認識部53が判断する。行動制御部43は、ロボット1が停止(待機)を継続するよう制御装置する(図24参照)。
そして、図29の出力Nの値(確率)がある値以上であった場合、人80が「待機状態4」と認識部53が判断し、制御装置2は図示しない排出装置を起動して組立対象品50を排出するとともに、図示しないローダ装置を起動して次に組み立てる組立対象品50を図1の位置に設置する。
以上、作業手順の詳細を述べたが、手順を飛ばした場合は、ロボット1を停止(または待機状態)にするとともに、例えば、パトライト(登録商標)等を使用してアラーム表示を行い、あるいは、画面表示として飛ばされた作業を表示する。なお、作業が終了した時点で、作業情報と学習情報のデータを後述するセルコントローラに送る。また、図29の出力に対応するための入力画像は、この場合、天井に吊り下げられたカメラ7が好ましいと考えられる。組立対象品50のユニットとケーブルの状態が撮影するため、および、人(腕)80とドライバ9Mの位置が特定し易いからである。
なお、機械学習装置をもう1つ準備し、例えば、カメラ8からの画像を入力とした認識部の出力と、カメラ7からの画像を入力とした認識部のANDをとれば、精度をさらに向上させることができる。また、以上の説明では、カメラは2台としたが、3台以上備えてもよい。さらに、テンプレートマッチングと併用することもできる。
ここまでは、すべて有効作業に対応するニューラルネットワークの出力が有効になる(成功:正しい動作に移る)場合を説明したが、対応する出力が有効とならない(失敗:次の動作に移らない)場合や、誤って動き出す(失敗:次の動作への待ちなのに次の動作へ移る)場合の対応を説明する。失敗した場合は、例えば、手や腕を特定の形に変えて失敗であることを認識させたり、例えば、フットスイッチを用意してフットスイッチを足で押して失敗信号を出力したりすることで失敗したことを知らせることができる。次の動作への待機中の場合は、次の動作へ進み、待機中であるはずなのに次の動作に移った場合は、動作前の元の状態に戻る。
図30は、図29に示すニューラルネットワークにおいて、「失敗」を出力する場合を示す図である。なお、手や腕の特定の形と、フットスイッチとの併用の場合は、図30に示す「出力0」とフットスイッチからの失敗信号のオア(論理積)をとればよい。また、フットスイッチの失敗信号のみの場合は、フットスイッチからの失敗信号が図30の「出力0」相当となる。さらに、失敗したことは、学習部54へも知らせる。ここでは、失敗を知らせる方法を2つ例示したが、これ以外に様々な手法を適用することができるのはいうまでもない。
次に、テンプレートマッチングを使用して人の行動を判断することについて説明する。ここで、図29(図30)の出力を、行動と読み替えて使用する。図32は、図29の行動Bを、テンプレートマッチングをして認識する場合について説明するための図である。例えば、ロボット1がユニットA、ユニットBを組立対象品50に実装し終えると、次の作業は「ユニットAのネジを締める位置に移動」なので、人80がユニットAのネジを締める点を中心に、任意の範囲を抽出画像とし、テンプレートの画像が存在しているか調べる。図32のようにユニットAのネジを締める位置に移動するドライバMが画像に含まれる(撮影される)とテンプレートの画像と同じか似ていると計算の数値(通常同じ(一致)ならば数値が0、似ているならば数値が小)となるので、行動Bと判断することができる。
また、図33は、図29の行動Cを、テンプレートマッチングをして認識する場合について説明するための図である。例えば、次の作業は「ユニットAのネジ締め作業」なので、人80がユニットAのネジを締める点に移動したことが分かるように、ネジ位置の狭い範囲を抽出画像とし、テンプレートの画像が存在しているか調べる。図33のようにユニットAのネジを締める位置にドライバMが画像に含まれると、上記に述べたように計算の数値が0か、小さな数値になるので、この時点を「ユニットAのネジ締め作業」開始と判断するか、ネジ位置にドライバがきてから実際にネジを締め始めるまではほんの少しの時間があるので任意の時間待って「ユニットAのネジ締め作業」開始と判断すればよい。
さらに、ネジ締め作業開始を明確にしたければ、カメラ8の画像の人80のドライバ9Mが下に移動し始めたところでネジ締め作業開始と判断すればよい。基本的な考え方について行動Bと行動Cを例に説明したが、他の行動の判断も同様である。
次に、ロボットシステムを1つまたは複数含んだ生産システムについて説明する。図34は、本実施形態に係る生産システムの一例を示すブロック図である。図34に示されるように、生産システム10は、少なくとも1つ、好ましくは複数(図34に示す例では、n個)のロボット1a〜1n、ならびに、ロボット1a〜1nを制御する少なくとも1つ(通常は、ロボットと同数:n個)の制御装置2a〜2nを含むセル16と、制御装置2a〜2nの各々と通信可能に構成されたセルコントローラ18と、セルコントローラ18と通信可能に構成された上位の管理コントローラ20とを備えている。制御装置2a〜2nは、それぞれロボット1a〜1nの行動制御を行うとともに、作業に関する情報(作業情報)と、機械学習装置5の学習部54で学習したニューラルネットワークの各々の重みを学習情報としてセルコントローラ18に送信する。
ここで、作業情報とは、商品名、工程、画像認識等によって特定された人80、ロボット1の種類、人80とロボット1の作業時間等で構成される。人80とロボット1の作業時間はさらに組立開始から終了までの時間と作業毎における人80とロボット1の動作時間と休止(停止)時間で構成される。なお、セル16は、予め定められた作業を実施するための複数のロボットの集合である。また、ロボット1a〜1nは、多関節ロボットに限定されない。各ロボットは互いに同一のものでも異なるものでもよい。また、セル16は、製品を製造する工場に設置可能であるのに対して、管理コントローラ20は、工場とは異なる建屋等に設置可能である。セルコントローラ18は高速な処理が必要な場合は工場に設置し、高速な処理が必要でない場合は工場とは異なる建屋等に設置可能である。
また、セルコントローラ18と制御装置2a〜2nとは、例えば、イントラネット等のネットワーク(第一通信部22)を介して接続することができる。さらに、管理コントローラ20は、例えば、インターネット等のネットワーク(第二通信部24)を介して、セルコントローラ18と通信可能に接続することができる。ただし、これは単なる例であり、第一通信部22は、セルコントローラ18と制御装置2a〜2nとを通信可能に接続するものであればどのようなものでもよく、また、第二通信部24は、セルコントローラ18と管理コントローラ20とを通信可能に接続するものであればどのようなものでもよい。セルコントローラ18は、セル16からの情報を処理するように構成されており、具体的には、制御装置2a〜2nに情報を送出し、制御装置2a〜2nからのそれぞれ、作業情報と、学習情報を受信する。
図34に示されるように、セルコントローラ18は、第一通信部22を介してセル16から前述の情報を受信するとともに、第二通信部24を介して管理コントローラ20が持つ情報を取得する。セルコントローラ18は、入力部14および表示部15を含む。表示部15は、セルコントローラ18に関する情報を表示可能に形成されている。表示部15としては、液晶表示装置を例示することができる。入力部14は、人がセルコントローラ18に所望の指令を入力可能に形成されている。入力部14としては、キーボード等を例示することができる。なお、管理コントローラ20にも図示していないが、入力部および表示部を含むのが好ましい。
セルコントローラ18の作業情報・学習情報取得部11は、セル16の各々の制御装置から作業情報と学習情報を取得する。作業情報・学習情報取得部11は、作業情報と学習情報を対応づけて記憶部に保存するとともに、作業情報の内、作業時間のデータを時間処理部へ送る。時間処理部12は、取得した作業時間のうち、人80の作業毎時間と、同じ商品で同じ工程における人の適切な作業毎時間を記憶部13よりリードし、比較を行う。比較は「人80の作業毎時間−(マイナス)人の適切な作業毎時間」で行い、もし、差分が任意に設定した時間よりも大きい場合(人の適切な作業毎時間が明らかに短い場合)は、遅い作業(時間がかかっている作業)を、第一通信部22を介して対応する制御装置2へ送信する(図2参照)。遅い作業の情報は、制御装置2の通信部55を介して表示制御部56や図示しない音声制御部に入力され、人80のそばに設置した表示器に作業詳細、標準作業時間(適切と考えられる作業時間)、実作業時間(作業における実際にかかった時間)等を表示し、あるいは、ロボット等に設置したスピーカによる音声ガイダンスにより作業詳細や時間を教える。
なお、人の適切な作業毎時間の情報は前もって準備するか、送られてきた同じ商品・同じ工程における、作業時間の各々について時間を、例えば、平均するなどして使用すればよい。また、ロボット1の行動については、機械学習方法のうち、前記したQ学習を採用した強化学習を行うことで作業毎のロボット1の行動を最適化することもできる。なお、機械学習を使用してロボット1の行動を最適化する技術文献として、近年、様々な提案がなされており、その詳細は省略する。
セルコントローラ18は、第二通信部24を介して作業情報と学習情報を管理コントローラ20に送信する。すべての作業情報と学習情報を送信してもよいし、任意のインターバルにて、インターバル間における作業時間が最も長いものと短いものについて作業情報と学習情報を送信してもよいし、作業時間の平均を併せて送信してもよい。この他、作業情報と学習情報のどの内容をどのように処理して送信するかは任意である。
管理コントローラ20は、セルコントローラ18と第二通信部24を介して接続されている。管理コントローラ20は、第二通信部24を介してセルコントローラ18から作業情報と学習情報を受信する。受信した作業情報と学習情報を対応づけて作業情報・学習情報保存部23へ保存する。
管理コントローラの学習情報選択部21を使用した重みの決め方について第1の実施形態について説明する。商品αが量産されているとする。不特定の人物が、商品αの作業経験が無い、例えば、工程3につく場合、不特定の人物の重みは無い。このような場合の重みの決め方について述べる。ここで、複数人(例えば、Aさん、Bさん、Cさん)が、商品α・工程3の作業の経験があり、管理コントローラ20の作業情報・学習情報保存部23に作業情報・学習情報が保存されているとする。
Aさん、Bさん、Cさんが商品α・工程3の作業を行っている時、作業に対応するニューラルネットワークの出力が有効になったと判断した時の、対応する入力した画像を作業毎に必要枚数を管理コントローラ20の作業情報・学習情報保存部23に保存しておく。商品α・工程3のAさんの学習情報(重み)を作業情報・学習情報保存部23から読み出して、学習情報選択部21の認識部28へ入力する。作業情報・学習情報保存部23に保存されているBさんの画像を読み出して画像入力26へ入力し、前処理(前処理部27による前処理)を行い、認識部28で認識(分類)を行い、比較部29へ入力する。同様に、Cさんの画像を画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部29へ入力する。
また、商品α・工程3のBさんの学習情報(重み)を作業情報・学習情報保存部23から読み出して、学習情報選択部21の認識部28へ入力する。作業情報・学習情報保存部23に保存されているAさんの画像を読み出して画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部29へ入力する。同様に、Cさんの画像を画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部29へ入力する。
また、商品α・工程3のCさんの学習情報(重み)を作業情報・学習情報保存部23から読み出して、学習情報選択部21の認識部28へ入力する。作業情報・学習情報保存部23に保存されているAさんの画像を読み出して画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部29へ入力する。同様にBさんの画像を画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部へ入力する。
各重みに対する各人物の各作業におけるニューラルネットワークの出力の値が分かるので、重み毎に、各人物の各作業に対応するニューラルネットワークの出力の値がある値以上で他の出力との差がある値以上あるか、または出力の値と他の出力との差がどの程度あるかが分かる。例えば、Aさんの重みに対して複数(Bさん、Cさん)のニューラルネットワークの出力値が得られるので、Aさんの重みに対する複数の出力値が適切かどうか比較部29で判断する。ここで、例えば、Aさんの重みについて、Bさんの各作業の画像に対するニューラルネットワークの出力は適切だが、Cさんの各作業の画像に対するニューラルネットワークの出力は失敗が多い場合は、Aさんの重みは適切とは言い難い。同様に、Bさん、Cさんの重みに対する複数の出力値が適切かどうか比較部29で判断する。複数の重みに対して、最もよい重みを選択する。選択された最もよい人の重みを商品α・工程3の重みとして、作業情報・学習情報保存部に商品α・工程3の情報とともに保存する。すぐに使用するものであれば対応するセルの制御装置(機械学習装置の認識部と学習部)に重みを送信する。
管理コントローラの学習情報選択部21を使用した重みの決め方について、第2の実施形態について説明する。商品αが量産されているとする。特定の人物(例えば、Fさん)が、商品αの作業経験が無い、例えば、工程3につく場合について述べる。複数人(例えば、Aさん、Bさん、Cさん)が、商品α・工程3の作業の経験があり、管理コントローラ20の作業情報・学習情報保存部23に作業情報・学習情報が保存されているとする。
Fさんの商品α・工程3の各作業に対する入力画像(可能ならば教師つき)を用意する。商品α・工程3のAさんの学習情報(重み)を作業情報・学習情報保存部23から読み出して、学習情報選択部21の認識部28へ入力する。用意したFさんの各作業に対する画像を画像入力26へ入力し、前処理27を行い、認識部28で認識(分類)を行い、比較部29へ入力する。各作業におけるニューラルネットワークの出力の値が分かるので、誤差の合計を計算する(教師あり学習の場合。誤差の計算は周知の事実なので、省略する)。または各作業に対応する認識部の出力の値がある値以上で他の出力との差がある値以上あるか、または出力の値と他の出力との差がどの程度あるかを見てもよい。Aさんが終了したら次にBさん、Bさんが終了したらCさんと、Aさんの時と同様にすすめて各作業に対するニューラルネットワークの出力の値を出して、Aさん、Bさん、Cさんの各重みの場合の結果を比較部29で比較を行い、例えば、誤差の合計が最も小さい人の重みを選択する。選択した重みは作業情報・学習情報保存部23に商品α・工程3・Fさんの情報とともに保存する。すぐに使用するものであれば対応するセルの制御装置(機械学習装置の認識部と学習部)に重みを送信する。
学習情報選択部21を使用しない場合の重みの決め方について、第3の実施形態について説明する。商品αが量産されているとする。特定の人物(例えば、Fさん)が、商品αの作業経験が無い、例えば、工程3につく場合について述べる。複数人(例えば、Aさん、Bさん、Cさん)が、商品α・工程3の作業の経験があり、管理コントローラ20の作業情報・学習情報保存部23に作業情報・学習情報が保存されているとする。管理コントローラから対応するセルの制御装置の学習部と認識部にAさんの重みを送信し、Fさんが各作業を行った結果(例えば、対応する出力の値と他の出力の差)を見る。次にBさんの重みを送信し、同様にFさんの各作業の結果を見る。次にCさんの重みを送信し、同様にFさんの各作業を行った結果を見る。このうち、最も認識が高かった人の重みをFさんの商品α・工程3の重みとして使用する。
商品α・工程3のAさん、Bさん、Cさんの重みを1つの重みにまとめて、まとめた1つの重みを商品α・工程3の重みとして使用してよい。まとめた重みは作業情報・学習情報保存部23に商品α・工程3の情報とともに保存する。また、まとめた1つの重みを、上記第1〜第3の実施形態に使用することができる。なお、分散学習や転移学習で複数人の重みをまとめることができる。例えば、第1の実施形態において、まとめた重みを学習情報選択部21の認識部28へ入力する。作業情報・学習情報保存部23に保存されているAさんの画像を読み出して画像入力26へ入力し、前処理27を行い、認識部28で認識を行い、比較部29へ入力する。また、Bさん、Cさんについても、同様に行う。
比較部29にて1つにまとめた重み、Aさんの重み、Bさんの重み、Cさんの重みのうち、最もよい重みを選択する。選択された重みは、商品α・工程3における最もよい重みとして作業情報・学習情報保存部23に商品α・工程3の情報とともに保存する。なお、重みの決め方について、作業者が、第1の実施形態は不特定の人物、第2、第3の実施形態は特定の人物として説明したが、すでに作業経験がある人(例えば、Aさん)の自分自身(Aさん)の重みをコントローラから制御装置2に送る場合、例えば、商品α・工程3における複数人の重みをまとめた重みとAさんの重みのどちらがよいかを学習情報選択部21を使用して判断し、よりよい方を送ることもできる。また、例えば、制御装置2の機械学習装置5に学習部54を設けたが、セルコントローラ、管理コントローラに設けてもよい。なお、画像を画像入力26へ入力したが、前処理を行った画像であれば、認識部28に入力することができるのはいうまでもない。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
1,1a〜1n ロボット(協働ロボット)
2,2a〜2n 制御装置
3 ロボットシステム
4 アーム
5 機械学習装置
6 ハンド
7,8 カメラ
10 生産システム
11 作業情報・学習情報取得部
12 時間処理部
13,59 記憶部
14,41 入力部
15,42 表示部
16 セル
18 セルコントローラ
20 管理コントローラ
21 学習情報選択部
22 第一通信部
23 作業情報・学習情報保存部
24 第二通信部
26,51 画像入力
27,52 前処理部
28,53 認識部
29 比較部
43 行動制御部
44 アーム駆動装置
45 把持用ハンド駆動装置
46 外力算出部
47 作業時間測定部
48 ドライバ用ハンド駆動装置
49 力センサ
50 組立対象品
54 学習部
55 通信部
56 表示制御部
541 誤差計算部
542 誤差モデル更新部

Claims (9)

  1. 人とロボットが協働して作業を行うロボットの制御装置であって、
    前記人と前記ロボットが協働して作業を行う期間中に、前記人の顔を認識し、前記人に対応するニューラルネットワークの重みに基づいて、前記人の行動を分類する認識部、および、画像入力に基づいたデータを状態変数として受け取り、前記認識部によって分類された前記人の行動に基づいて、前記人の行動を学習して出力する学習部を含む機械学習装置と、
    前記認識部によって分類された前記人の行動および前記学習部での学習結果に基づいて、前記ロボットの行動を制御する行動制御部と、を備える、
    ことを特徴とする制御装置。
  2. 前記認識部は、前記状態変数を受け取って、人の行動を分類した出力を生成し、
    前記学習部は、
    前記認識部により生成された前記人の行動を分類した出力を受け取るとともに、入力された教師データに基づいて、誤差を計算する誤差計算部と、
    前記誤差計算部の出力に基づいて、前記人の行動により前記ロボットの行動を制御するための誤差モデルを更新する誤差モデル更新部と、を備える、
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記ロボットは、産業用ロボット、フィールドロボット、または、サービスロボットである、
    ことを特徴とする請求項1または請求項2に記載の制御装置。
  4. 前記認識部は、ニューラルネットワークおよびテンプレートマッチングのうち少なくとも一方を使用する、
    ことを特徴とする請求項1乃至請求項のいずれか1項に記載の制御装置。
  5. 撮影を行うカメラを複数備え、それぞれのカメラで撮影された画像に基づいて、前記認識部により前記人の行動を認識し、前記認識部の出力をAND回路の入力とし、前記AND回路の出力を前記認識部の出力とする、
    ことを特徴とする請求項1乃至請求項のいずれか1項に記載の制御装置。
  6. 前記制御装置は、
    前記人と前記ロボットが協働して行動を行った後、上位コントローラに対して、作業情報および学習情報を送る、
    ことを特徴とする請求項1乃至請求項のいずれか1項に記載の制御装置。
  7. 前記作業情報は、商品名、工程、画像認識によって特定された人、前記ロボットの種類、および、前記人と前記ロボットの作業時間のうち少なくとも1つを含み、
    前記作業時間は、作業開始から作業終了までの時間、作業毎における前記人と前記ロボットの動作時間と休止時間のうち少なくとも1つで構成される、
    ことを特徴とする請求項に記載の制御装置。
  8. 前記学習情報は、ニューラルネットワークの重みである、
    ことを特徴とする請求項または請求項に記載の制御装置。
  9. 請求項1乃至請求項のいずれか1項に記載の制御装置を複数備えるロボットシステムであって、
    複数の前記制御装置は、通信回線を介して互いに接続され、
    前記制御装置のそれぞれは、人の行動を個別に学習してその学習した情報を、前記通信回線を介して送信することにより、複数の前記制御装置で共有する、
    ことを特徴とするロボットシステム。
JP2016200378A 2016-10-11 2016-10-11 人の行動を学習してロボットを制御する制御装置およびロボットシステム Active JP6549545B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016200378A JP6549545B2 (ja) 2016-10-11 2016-10-11 人の行動を学習してロボットを制御する制御装置およびロボットシステム
US15/724,417 US10486306B2 (en) 2016-10-11 2017-10-04 Control device for controlling robot by learning action of person, robot system, and production system
DE102017009223.0A DE102017009223B4 (de) 2016-10-11 2017-10-04 Steuervorrichtung zum Steuern eines Roboters durch Lernen einer Aktion einer Person, Robotersystem und Produktionssystem
CN201710933803.6A CN107914270B (zh) 2016-10-11 2017-10-10 控制装置、机器人系统及生产系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016200378A JP6549545B2 (ja) 2016-10-11 2016-10-11 人の行動を学習してロボットを制御する制御装置およびロボットシステム

Publications (2)

Publication Number Publication Date
JP2018062016A JP2018062016A (ja) 2018-04-19
JP6549545B2 true JP6549545B2 (ja) 2019-07-24

Family

ID=61695762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016200378A Active JP6549545B2 (ja) 2016-10-11 2016-10-11 人の行動を学習してロボットを制御する制御装置およびロボットシステム

Country Status (4)

Country Link
US (1) US10486306B2 (ja)
JP (1) JP6549545B2 (ja)
CN (1) CN107914270B (ja)
DE (1) DE102017009223B4 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013031394A1 (ja) * 2011-09-02 2013-03-07 日本電気株式会社 電池制御システム、電池制御装置、電池制御方法、および記録媒体
JP6333871B2 (ja) * 2016-02-25 2018-05-30 ファナック株式会社 入力画像から検出した対象物を表示する画像処理装置
JP6706173B2 (ja) * 2016-08-09 2020-06-03 株式会社日立製作所 制御装置、制御方法、および制御プログラム
JP6517762B2 (ja) * 2016-08-23 2019-05-22 ファナック株式会社 人とロボットが協働して作業を行うロボットの動作を学習するロボットシステム
US10919153B2 (en) * 2017-03-06 2021-02-16 Canon Kabushiki Kaisha Teaching method for teaching operations to a plurality of robots and teaching system used therefor
DE102017111651A1 (de) * 2017-05-29 2018-11-29 Schunk Gmbh & Co. Kg Spann- Und Greiftechnik Antriebseinheit einer Automationskomponente, insbesondere einer Greif-, Spann- und Wechsel- oder Schwenkeinheit
JP6817974B2 (ja) * 2018-01-10 2021-01-20 株式会社 日立産業制御ソリューションズ 計算機システム
CA3035713A1 (en) * 2018-03-05 2019-09-05 Royal Bank Of Canada Device and method for machine-learning step-size adaptation
EP3810374B1 (en) 2018-06-19 2022-06-01 BAE SYSTEMS plc Workbench system
GB2576402B (en) * 2018-06-19 2021-05-05 Bae Systems Plc Workbench system
EP3584038A1 (en) * 2018-06-19 2019-12-25 BAE SYSTEMS plc Workbench system
JP7166088B2 (ja) * 2018-06-28 2022-11-07 株式会社小松製作所 作業車両による作業を判定するためのシステム、方法、及び学習済みモデルの製造方法
JP7034035B2 (ja) * 2018-08-23 2022-03-11 株式会社日立製作所 自律学習型ロボット装置及び自律学習型ロボット装置の動作生成方法
JP7205148B2 (ja) * 2018-10-04 2023-01-17 カシオ計算機株式会社 ロボット、制御方法、及び、プログラム
JP6916157B2 (ja) * 2018-10-23 2021-08-11 ファナック株式会社 人と協働作業を行うロボットシステム、及びロボット制御方法
JP7053443B2 (ja) * 2018-12-07 2022-04-12 ファナック株式会社 操作装置にて手動操作を行うロボットの制御装置
EP3670106A1 (en) * 2018-12-18 2020-06-24 Siemens Aktiengesellschaft Task-specific robot grasping system and method
US11491650B2 (en) * 2018-12-19 2022-11-08 Abb Schweiz Ag Distributed inference multi-models for industrial applications
JP2020142344A (ja) * 2019-03-08 2020-09-10 トヨタ自動車株式会社 環境監視システム
CN110000785B (zh) * 2019-04-11 2021-12-14 上海交通大学 农业场景无标定机器人运动视觉协同伺服控制方法与设备
JP7333197B2 (ja) * 2019-05-28 2023-08-24 川崎重工業株式会社 制御システム、機械装置システム及び制御方法
JP7235596B2 (ja) * 2019-05-31 2023-03-08 ファナック株式会社 協働ロボットシステム
JP7021158B2 (ja) * 2019-09-04 2022-02-16 株式会社東芝 ロボットシステムおよび駆動方法
JP7384602B2 (ja) * 2019-09-12 2023-11-21 ファナック株式会社 ロボット制御装置
JP7362107B2 (ja) * 2019-09-30 2023-10-17 Johnan株式会社 制御装置、制御方法およびプログラム
IT201900019049A1 (it) * 2019-10-31 2021-05-01 Claudio Giordano Sviluppo di un nuovo pantografo per treni ad alta velocità
US11345017B2 (en) * 2020-06-11 2022-05-31 Andrew Flessas Method and system for moving cable-mounted objects using robotic mounts
CN112295933B (zh) * 2020-09-17 2022-03-11 东南大学 一种机器人快速分拣货物的方法
JP7452409B2 (ja) * 2020-12-25 2024-03-19 トヨタ自動車株式会社 タスクシステム、制御方法及び制御プログラム
DE102021110984A1 (de) 2020-12-29 2022-06-30 B-Horizon GmbH Verfahren zum automatischen Anpassen des Verhaltens eines mobilen Benutzerendgeräts
CN112935772B (zh) * 2021-01-08 2022-06-07 佛山科学技术学院 视觉引导机器人拧螺丝的方法、装置、存储介质和设备
JP2022156507A (ja) * 2021-03-31 2022-10-14 Johnan株式会社 ロボット制御システム、および制御装置
JP2022156506A (ja) * 2021-03-31 2022-10-14 Johnan株式会社 ロボット制御システム、および制御装置
DE102021114265A1 (de) 2021-06-02 2022-12-08 Bayerische Motoren Werke Aktiengesellschaft Robotervorrichtung eingerichtet zur Ermittlung einer Zielobjektlage eines vorbestimmten Zielobjekts und Verfahren
DE102021114264A1 (de) 2021-06-02 2022-12-08 Bayerische Motoren Werke Aktiengesellschaft Robotervorrichtung eingerichtet zur Ermittlung einer Interaktionsmaschinenlage zumindest eines Elements einer vorbestimmten Interaktionsmaschine und Verfahren
DE102021114268A1 (de) 2021-06-02 2022-12-08 Bayerische Motoren Werke Aktiengesellschaft Robotervorrichtung eingerichtet zur Ermittlung einer Infrastrukturobjektlage eines vorbestimmten Infrastrukturobjekts und Verfahren
DE102022109047A1 (de) 2022-04-13 2023-10-19 B-Horizon GmbH Verfahren zum automatischen Anpassen des Verhaltens eines mobilen Benutzerendgeräts, insbesondere zur Messung von Druck, Gas und/oder Feuchtigkeit auf Basis einer Umgebungsfeuchtigkeit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131274A (ja) * 1992-10-22 1994-05-13 Fanuc Ltd 通信制御方式
JP3211186B2 (ja) * 1997-12-15 2001-09-25 オムロン株式会社 ロボット、ロボットシステム、ロボットの学習方法、ロボットシステムの学習方法および記録媒体
JP3446650B2 (ja) * 1999-03-16 2003-09-16 株式会社デンソー 移動ロボットの安全装置
JP2003080484A (ja) * 2001-09-07 2003-03-18 Tomy Co Ltd 動作反応玩具
JP4792824B2 (ja) * 2004-11-05 2011-10-12 富士ゼロックス株式会社 動作分析装置
JP5035768B2 (ja) * 2006-04-18 2012-09-26 独立行政法人産業技術総合研究所 人間ロボット共存作業用安全装置
KR101686517B1 (ko) * 2009-05-22 2016-12-14 도요타지도샤 히가시니혼 가부시키가이샤 작업 지원 로봇 시스템
JP5167548B2 (ja) * 2009-09-01 2013-03-21 川田工業株式会社 吊下げ型協調作業ロボット
JP2013180369A (ja) * 2012-03-01 2013-09-12 Ihi Corp 適応性機械
JP5549724B2 (ja) * 2012-11-12 2014-07-16 株式会社安川電機 ロボットシステム
JP6397226B2 (ja) * 2014-06-05 2018-09-26 キヤノン株式会社 装置、装置の制御方法およびプログラム
JP6494331B2 (ja) * 2015-03-03 2019-04-03 キヤノン株式会社 ロボット制御装置およびロボット制御方法

Also Published As

Publication number Publication date
JP2018062016A (ja) 2018-04-19
US10486306B2 (en) 2019-11-26
CN107914270B (zh) 2020-04-17
CN107914270A (zh) 2018-04-17
US20180099408A1 (en) 2018-04-12
DE102017009223A1 (de) 2018-04-12
DE102017009223B4 (de) 2021-06-10

Similar Documents

Publication Publication Date Title
JP6549545B2 (ja) 人の行動を学習してロボットを制御する制御装置およびロボットシステム
JP6240689B2 (ja) 人の行動パターンを学習する機械学習装置、ロボット制御装置、ロボットシステム、および機械学習方法
JP6810087B2 (ja) 機械学習装置、機械学習装置を用いたロボット制御装置及びロボットビジョンシステム、並びに機械学習方法
JP7100426B2 (ja) ワークの取り出し動作を学習する機械学習装置、ロボットシステムおよび機械学習方法
US11780095B2 (en) Machine learning device, robot system, and machine learning method for learning object picking operation
CN108873768B (zh) 任务执行系统及方法、学习装置及方法、以及记录介质
JP6506245B2 (ja) 組付動作を学習する機械学習装置および部品組付システム
JP6586243B2 (ja) ロボットの把持のための深層機械学習方法および装置
JP6514166B2 (ja) ロボットの動作プログラムを学習する機械学習装置,ロボットシステムおよび機械学習方法
JP6514171B2 (ja) 最適な物品把持経路を学習する機械学習装置、及び機械学習方法
CN113826051A (zh) 生成实体系统零件之间的交互的数字孪生
CN114728417A (zh) 由远程操作员触发的机器人自主对象学习
JP2024001106A (ja) ロボットが技能を学習し実行するシステム、装置及び方法
CN109614830B (zh) 识别代码读取装置以及机器学习装置
US11904470B2 (en) Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions
JP2006209259A (ja) 操作支援システム及び操作支援方法、並びにコンピュータ・プログラム
US20230104802A1 (en) Control device, control method and storage medium
Martín et al. Reinforcement learning of collision-free motions for a robot arm with a sensing skin
Scheering et al. Distributed multiple view fusion for two-arm distance estimation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190627

R150 Certificate of patent or registration of utility model

Ref document number: 6549545

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150