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

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

▶ 株式会社安川電機の特許一覧

特許7302672ロボットシステム、コントローラ及び制御方法
<>
  • 特許-ロボットシステム、コントローラ及び制御方法 図1
  • 特許-ロボットシステム、コントローラ及び制御方法 図2
  • 特許-ロボットシステム、コントローラ及び制御方法 図3
  • 特許-ロボットシステム、コントローラ及び制御方法 図4
  • 特許-ロボットシステム、コントローラ及び制御方法 図5
  • 特許-ロボットシステム、コントローラ及び制御方法 図6
  • 特許-ロボットシステム、コントローラ及び制御方法 図7
  • 特許-ロボットシステム、コントローラ及び制御方法 図8
  • 特許-ロボットシステム、コントローラ及び制御方法 図9
  • 特許-ロボットシステム、コントローラ及び制御方法 図10
  • 特許-ロボットシステム、コントローラ及び制御方法 図11
  • 特許-ロボットシステム、コントローラ及び制御方法 図12
  • 特許-ロボットシステム、コントローラ及び制御方法 図13
  • 特許-ロボットシステム、コントローラ及び制御方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-26
(45)【発行日】2023-07-04
(54)【発明の名称】ロボットシステム、コントローラ及び制御方法
(51)【国際特許分類】
   B25J 19/06 20060101AFI20230627BHJP
【FI】
B25J19/06
【請求項の数】 13
(21)【出願番号】P 2021565653
(86)(22)【出願日】2020-12-17
(86)【国際出願番号】 JP2020047245
(87)【国際公開番号】W WO2021125288
(87)【国際公開日】2021-06-24
【審査請求日】2022-06-22
(31)【優先権主張番号】62/948,820
(32)【優先日】2019-12-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】伊藤 俊樹
(72)【発明者】
【氏名】熊谷 弘
(72)【発明者】
【氏名】戸畑 享大
(72)【発明者】
【氏名】出口 央
(72)【発明者】
【氏名】中村 啓介
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2010-188515(JP,A)
【文献】特開2017-013180(JP,A)
【文献】特開2013-139075(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
ワークを搬送する搬送装置と、
前記搬送装置が搬送する前記ワークを含む対象エリアを撮影して環境画像データを生成する環境撮像装置と、
前記環境画像データに基づいて、前記ワークの現在位置と、1以上の物体の占有領域とを特定する環境特定装置と、
前記ワークに対し作業するようにロボットを制御するコントローラと、
を備え、
前記コントローラは、
前記ワークの現在位置に基づいて、前記ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、
前記インタロック領域が、前記ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、前記ロボットによる前記ワークに対する作業可否を判定する作業可否判定部と、
前記作業可否判定部が作業可と判定した場合、前記ワークの現在位置に基づいて前記ロボットを制御する制御実行部と、
を有するロボットシステム。
【請求項2】
前記コントローラは、前記ワークの現在位置に基づいて、予め定められた動作プログラムを修正するプログラム修正部を更に備え、
前記制御実行部は、前記作業可否判定部が作業可と判定した場合、修正後の動作プログラムに基づいて、前記ロボットを制御する、請求項1記載のロボットシステム。
【請求項3】
前記環境特定装置は、前記ワークと共に移動する確認対象領域内における前記1以上の物体の占有領域を特定する、請求項1又は2記載のロボットシステム。
【請求項4】
前記ロボットの動作範囲と重複する動作範囲にて、前記ワークに対し作業するように第2ロボットを制御する第2コントローラを更に備え、
前記第2コントローラは、
前記ワークの現在位置に基づいて、前記ワークと共に移動する第2インタロック領域を特定するインタロック領域特定部と、
前記第2インタロック領域が前記第2ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、前記第2ロボットによる前記ワークに対する作業可否を判定する第2作業可否判定部と、
前記第2作業可否判定部が作業可と判定した場合、前記ワークの現在位置に基づいて前記第2ロボットを制御する制御実行部と、を有する、請求項1~3のいずれか一項記載のロボットシステム。
【請求項5】
前記ロボット以外の他の物体の占有領域は、作業者が占める人占有領域を含む、請求項1~4のいずれか一項記載のロボットシステム。
【請求項6】
前記環境撮像装置は、前記対象エリアに対する距離画像データと、輝度画像データとを含む前記環境画像データを生成し、
前記環境特定装置は、前記距離画像データと、前記輝度画像データとに基づいて、前記1以上の物体の占有領域を特定する、請求項1~5のいずれか一項記載のロボットシステム。
【請求項7】
前記環境特定装置は、前記環境画像データに基づいて、前記ワークに付されたマーカを認識し、前記対象エリア内における前記マーカの位置に基づいて前記ワークの現在位置を特定する、請求項1~6のいずれか一項記載のロボットシステム。
【請求項8】
前記インタロック領域特定部は、前記修正後の動作プログラムに基づいて前記ワークに対し作業を行う場合の前記ロボットの占有予定領域を特定し、前記占有予定領域に基づいて前記インタロック領域を特定する、請求項2記載のロボットシステム。
【請求項9】
前記インタロック領域特定部は、前記ワークの現在位置に基づいて、所定のマージンをもって前記ロボットの作業対象位置を取り囲むように前記インタロック領域を特定する、請求項1~のいずれか一項記載のロボットシステム。
【請求項10】
前記確認対象領域は、複数の区画を含み、
前記環境特定装置は、前記1以上の物体の占有領域を前記複数の区画単位で特定し、
前記インタロック領域特定部は、前記インタロック領域を前記複数の区画単位で特定する、請求項3記載のロボットシステム。
【請求項11】
前記環境特定装置は、前記距離画像データと、前記輝度画像データとを含む入力データに基づいて、前記1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて前記1以上の物体の新たな占有領域を特定する、請求項記載のロボットシステム。
【請求項12】
前記ロボットは、ロボット本体と、ロボット本体を保持して搬送する台車と、前記ロボット本体による作業領域を撮影して作業対象画像データを生成する作業対象撮像装置と、を有し、
前記制御実行部は、前記作業対象画像データに更に基づいて前記ロボットを制御する、請求項1~11のいずれか一項記載のロボットシステム。
【請求項13】
搬送装置にワークを搬送させることと、
前記搬送装置が搬送する前記ワークを含む対象エリアを撮影して環境画像データを生成することと、
前記環境画像データに基づいて、前記ワークの現在位置と、1以上の物体の占有領域とを特定することと、
前記ワークの現在位置に基づいて、前記ワークと共に移動するインタロック領域を特定することと、
ロボットによる前記ワークに対する作業可否を、前記インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、
作業可と判定した場合、前記ワークの現在位置に基づいて前記ワークに対し作業するように前記ロボットを制御することと、を含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットシステム、コントローラ及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、複数のロボット毎に、自身の占有領域が他のロボットの占有領域と重なり合う干渉領域が存在した場合に、他のロボットとの通信によって当該他のロボットが干渉領域内に進入したことを検出したとき、自身の占有領域の内側であって干渉領域へ進入する前で動作を停止し、自身の占有領域から他のロボットが退出したとき、自身の目標位置へ移動する動作を再開するロボットの干渉回避方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-148527号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、環境変化に対する柔軟な適応に有効なロボットシステムを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットシステムは、ワークを搬送する搬送装置と、ワークの現在位置と、1以上の物体の占有領域とを特定する環境特定装置と、ワークに対し作業するようにロボットを制御するコントローラと、を備え、コントローラは、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、インタロック領域が、ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、ロボットによるワークに対する作業可否を判定する作業可否判定部と、作業可否判定部が作業可と判定した場合、ワークの現在位置に基づいてロボットを制御する制御実行部と、を有する。
【0006】
本開示の他の側面に係るコントローラは、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定するインタロック領域特定部と、ロボットによるワークに対する作業可否を、インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定する作業可否判定部と、作業可否判定部が作業可と判定した場合、ワークの現在位置に基づいてワークに対し作業するようにロボットを制御する制御実行部と、を備える。
【0007】
本開示の更に他の側面に係る制御方法は、ワークの現在位置に基づいて、ワークと共に移動するインタロック領域を特定することと、ロボットによるワークに対する作業可否を、インタロック領域がロボット以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワークの現在位置に基づいてワークに対し作業するようにロボットを制御することと、を含む。
【発明の効果】
【0008】
本開示によれば、環境変化に対する柔軟な適応に有効なロボットシステムを提供することができる。
【図面の簡単な説明】
【0009】
図1】ロボットシステムの全体構成を例示する模式図である。
図2】ロボットの構成を例示する模式図である。
図3】環境特定装置及びロボットコントローラの構成を例示するブロック図である。
図4】ロボットの占有領域を例示する模式図である。
図5】作業者の占有領域を例示する模式図である。
図6】進捗データを例示するテーブルである。
図7】インタロック領域を例示する模式図である。
図8】インタロック領域と占有領域とが重複する場合を例示する模式図である。
図9】インタロック領域と占有領域とが重複する場合を例示する模式図である。
図10】インタロック領域と占有領域とが重複しない場合を例示する模式図である。
図11】インタロック領域と占有領域とが重複しない場合を例示する模式図である。
図12】環境特定装置及びロボットコントローラのハードウェア構成を例示するブロック図である。
図13】環境特定手順を例示するフローチャートである。
図14】ロボット制御手順を例示するフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔ロボットシステム〕
図1に示すロボットシステム1は、搬送装置と、少なくとも一台のロボットとの協働によって、ワークの生産を行うシステムである。以下、ワークの生産過程において、各ローカル機器の作業対象となる物体の全てを「ワーク」という。例えば「ワーク」は、ロボットシステム1における最終生産物、最終生産物の部品、及び複数の部品を組み合わせたユニット等を含む。一例として、ロボットシステム1は、搬送装置2と、複数台(例えば三台)のロボット3A,3B,3Cと、制御システム100とを備える。
【0012】
搬送装置2は、例えば電動モータ等の動力によりワーク90を搬送する。一例として、搬送装置2は、水平面に沿ってワーク90を一方向に搬送する。このような搬送装置2の具体例としては、ベルトコンベヤ、ローラコンベヤ等が挙げられる。
【0013】
ロボット3A,3B,3Cのそれぞれは、搬送装置2が搬送するワーク90に対して予め定められた作業を行う。ロボット3A,3B,3Cは、互いに動作範囲が重複する二台以上のロボットを含んでいてもよい。一例として、ロボット3Bは、ロボット3Aの動作範囲と重複する動作範囲にて、ワーク90に対し作業を行い、ロボット3Cは、ロボット3Aの動作範囲及びロボット3Bの動作範囲と重複する動作範囲にてワーク90に対し作業を行う。ワーク90に対する作業の具体例としては、搬送装置2が搬送するワーク90(例えばベースパーツ)に対する他のワーク90(例えばサブパーツ)の組付け、搬送装置2が搬送するワーク90におけるパーツ同士の締結(例えばボルト締結)・接合(例えば溶接)等が挙げられる。
【0014】
ロボット3A,3B,3Cの少なくともいずれかは、自律走行可能なロボットであってもよい。図1は、ロボット3A,3B,3Cの全てが自律走行可能である場合を例示している。図2に示すように、ロボット3A,3B,3Cのそれぞれは、ロボット本体4と、搬送台車5とを有する。搬送台車5(台車)は、ロボット本体4を保持し、当該ロボット本体4を搬送するように搬送装置2の周囲を自律走行する。搬送台車5の具体例としては、電動式の所謂AGV(Automated Guided Vehicle)が挙げられる。
【0015】
ロボット本体4は、6軸の垂直多関節ロボットであり、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。
【0016】
基部11は、搬送台車5の上に固定されている。旋回部12は、鉛直な軸線21まわりに旋回するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに揺動するように旋回部12に接続されている。交差は、所謂立体交差のようにねじれの関係にある場合も含む。第2アーム14は、軸線22に実質的に平行な軸線23まわりに揺動するように第1アーム13の先端部に接続されている。第2アーム14は、アーム基部15とアーム端部16とを含む。アーム基部15は、第1アーム13の先端部に接続され、軸線23に交差(例えば直交)する軸線24に沿って延びている。アーム端部16は、軸線24まわりに旋回するようにアーム基部15の先端部に接続されている。第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するようにアーム端部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。
【0017】
このように、ロボット本体4は、基部11と旋回部12とを接続する関節31と、旋回部12と第1アーム13とを接続する関節32と、第1アーム13と第2アーム14とを接続する関節33と、第2アーム14においてアーム基部15とアーム端部16とを接続する関節34と、アーム端部16と第3アーム17とを接続する関節35と、第3アーム17と先端部18とを接続する関節36とを有する。
【0018】
アクチュエータ41,42,43,44,45,46は、例えば電動モータ及び減速機を含み、関節31,32,33,34,35,36をそれぞれ駆動する。例えばアクチュエータ41は、軸線21まわりに旋回部12を旋回させ、アクチュエータ42は、軸線22まわりに第1アーム13を揺動させ、アクチュエータ43は、軸線23まわりに第2アーム14を揺動させ、アクチュエータ44は、軸線24まわりにアーム端部16を旋回させ、アクチュエータ45は、軸線25まわりに第3アーム17を揺動させ、アクチュエータ46は、軸線26まわりに先端部18を旋回させる。
【0019】
先端部18には、作業ツールが設けられる。作業ツールの具体例としては、把持又は吸着により対象物を保持する保持ツール、ねじ締めツール、溶接トーチ等が挙げられる。ロボット本体4は、アクチュエータ41,42,43,44,45,46により関節31,32,33,34,35,36をそれぞれ駆動することで、作業ツールの位置及び姿勢を可動範囲内で自在に調節する。
【0020】
ロボット3A,3B,3Cの具体的な構成は適宜変更可能である。例えばロボット3A,3B,3Cは、上記6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。ロボット3A,3B,3Cは必ずしも自律走行可能でなくてもよく、基部11が搬送装置2の周囲に固定されていてもよい。
【0021】
ロボット3A,3B,3Cのそれぞれは、作業対象カメラ51を更に有してよい。作業対象カメラ51(作業対象撮像装置)は、ロボット本体4による作業領域を撮影して作業対象画像データを生成する。作業対象カメラ51の具体例としては、CCD(Charge Coupled Device)イメージセンサ又はCMOS(Complementary Metal-Oxide-Semiconductor)イメージセンサ等の固体撮像素子と、撮像素子に作業領域を結像させる光学系とを有する電子カメラが挙げられる。
【0022】
例えば作業対象カメラ51は、作業ツールと共に先端部18に取り付けられる。これにより、作業ツールを作業領域に向ける際に、作業対象カメラ51を作業領域に向けることができ、作業領域をより確実に撮影することができる。なお、作業対象カメラ51の設置位置は必ずしも先端部18に限られない。作業領域を撮影し得る限り、作業対象カメラ51はロボット3A,3B,3Cのいずれの部位に設けられていてもよい。
【0023】
ロボットシステム1は、環境撮像装置6を更に備えてもよい。環境撮像装置6は、搬送装置2が搬送するワーク90を含む対象エリアを撮影して環境画像データを生成する。例えば環境撮像装置6は、搬送装置2を鉛直上方から撮影する。環境撮像装置6は、複数種類の画像データを生成するように構成されていてもよい。例えば環境撮像装置6は、対象エリアに対する距離画像データと、輝度画像データとを含む環境画像データを生成してもよい。輝度画像は、対象エリア内の各部の明るさを色彩の分布で表した二次元画像である。距離画像は、対象エリア内の各部までの距離を色彩の分布で表した二次元画像である。色彩の分布で表すことは、色の三属性(色相、明度、及び彩度)の少なくともいずれかの分布で表すことを意味する。
【0024】
例えば環境撮像装置6は、輝度画像データを生成する輝度カメラ7と、距離画像データを生成する距離カメラ8とを含む。輝度カメラ7の具体例としては、CCD(Charge Coupled Device)イメージセンサ又はCMOS(Complementary Metal-Oxide-Semiconductor)イメージセンサ等の固体撮像素子と、撮像素子に作業領域を結像させる光学系とを有する電子カメラが挙げられる。距離カメラ8の具体例としては、赤外光等を対象エリアに出射した後、その反射光が戻ってくるまでの時間に基づいて距離情報を得るTOF(Time of Flight)カメラが挙げられる。なお、環境撮像装置6は、必ずしも複数種類の画像データを生成しなくてもよく、例えば輝度画像データのみを生成するように構成されていてもよい。
【0025】
制御システム100は、環境特定装置200と、ロボットコントローラ300と、搬送コントローラ400とを有する。搬送コントローラ400は、例えばワーク90を所定の速度で搬送するように搬送装置2を制御する。環境特定装置200は、搬送装置2におけるワーク90の現在位置と、ワーク90の近傍における1以上の物体の占有領域とを特定する。物体の具体例としては、ロボット3A,3B,3Cが挙げられる。物体は、ロボット3A,3B,3C以外の他の装置であってもよく、ロボット3A,3B,3Cと協働する作業者(人)であってもよい。
【0026】
環境特定装置200は、環境撮像装置6が生成した環境画像データに基づいて、ワーク90の現在位置と、1以上の物体の占有領域とを特定するように構成されていてもよい。例えば図3に示すように、環境特定装置200は、機能上の構成要素(以下、「機能ブロック」という。)として、画像データ取得部211と、環境画像データ記憶部212と、ワーク位置検出部213と、占有領域検出部214とを有する。
【0027】
画像データ取得部211は、環境撮像装置6が生成した環境画像データを取得する。環境画像データ記憶部212は、画像データ取得部211が取得した環境画像データを記憶する。ワーク位置検出部213は、環境画像データに基づいて、ワーク90の現在位置を特定する。ワーク位置検出部213は、輝度画像データに基づいてワーク90の現在位置を特定してもよい。ワーク位置検出部213は、輝度画像データに基づいて、ワーク90に付されたマーカを認識し、上記対象エリア(環境撮像装置6による撮影対象エリア)内におけるマーカの位置に基づいてワーク90の現在位置を特定する。
【0028】
図4は、搬送装置2を鉛直上方から見た図であり、環境撮像装置6は、図中の対象エリアTA1を撮影する。ワーク90は、複数の作業対象部位92を有する。作業対象部位92は、ロボット3A,3B,3C又は作業者による作業の対象部位である。作業対象部位92に対し行われる作業内容に特に制限はない。例えば、ロボット3A,3B,3C又は作業者によって、作業対象部位92に部品を組み付ける作業等が行われる。
【0029】
ワーク90には、マーカ91が付されている。例えばマーカ91は、ワーク90において、複数の作業対象部位92に含まれない位置に付されている。マーカ91は、画像処理により認識可能であればいかなるものであってもよい。マーカ91の具体例としては、二次元バーコード等が挙げられる。図4の例において、ワーク位置検出部213は、対象エリアTA1におけるマーカ91の位置に基づいて、ワーク90の現在位置を特定する。なお、ワーク位置検出部213は、マーカ91に代えて、ワーク90上の特徴(例えば円形の凹凸等)又はワーク90そのものを画像処理により認識することで、ワーク90の現在位置を特定してもよい。
【0030】
図3に戻り、占有領域検出部214は、環境画像データに基づいて、1以上の物体の占有領域を特定する。占有領域検出部214は、距離画像データと、輝度画像データとに基づいてワーク90の現在位置を特定してもよい。占有領域検出部214は、ワーク90と共に移動する確認対象領域内における1以上の物体の占有領域を特定してもよい。確認対象領域は、複数の区画を含んでもよく、占有領域検出部214は、1以上の物体の占有領域を複数の区画単位で特定してもよい。
【0031】
図4は、占有領域検出部214によるロボット3Aの占有領域の特定結果を例示している。図4の例においては、ワーク90の全ての作業対象部位92を含むように確認対象領域93が定められている。確認対象領域93は、複数の区画として、複数の作業対象部位92を含んでいる。複数の区画は必ずしも複数の作業対象部位92に対応していなくてもよく、複数の作業対象部位92よりも細分化されていてもよい。
【0032】
占有領域検出部214は、環境画像データに基づいて、ロボット3Aのロボット本体4を内包するように内包領域A01を特定し、確認対象領域93と内包領域A01との重複領域を確認対象領域93内におけるロボット3Aの占有領域A02として特定する。
【0033】
この際に、占有領域検出部214は、複数の区画単位で占有領域A02を特定する。例えば占有領域検出部214は、複数の作業対象部位92のうち、内包領域A01と重なる作業対象部位92D,92E,92F,92G,92N,92Pを確認対象領域93内におけるロボット3Aの占有領域A02として特定する。
【0034】
図5は、占有領域検出部214による作業者9が占める占有領域(人占有領域)の特定結果を例示している。占有領域検出部214は、環境画像データに基づいて、作業者9を内包するように内包領域A11を特定し、確認対象領域93と内包領域A11との重複領域を確認対象領域93内における作業者9の占有領域A12として特定する。
【0035】
この際に、占有領域検出部214は、複数の区画単位で占有領域A12を特定する。例えば占有領域検出部214は、複数の作業対象部位92のうち、内包領域A11と重なる作業対象部位92A,92B,92C,92D,92L,92Mを確認対象領域93内における作業者9の占有領域A12として特定する。
【0036】
環境特定装置200は、距離画像データと、輝度画像データとを含む入力データに基づいて、1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて1以上の物体の新たな占有領域を特定するように構成されていてもよい。
【0037】
例えば環境特定装置200は、モデル記憶部215を更に有する。モデル記憶部215は、上記画像認識モデルを記憶する。画像認識モデルの具体例としては、距離画像データ及び輝度画像データ(入力ベクトル)が入力されるのに応じ、1以上の物体の占有領域を表す座標点列データ(出力ベクトル)を出力するニューラルネットワークが挙げられる。
【0038】
ニューラルネットワークは、入力層と、一層又は複数層の中間層と、出力層とを有する。入力層は、入力ベクトルをそのまま次の中間層に出力する。中間層は、一つ前の層からの入力を活性化関数により変換して次の層に出力する。出力層は、入力層から最も遠い中間層からの入力を活性化関数により変換し、変換結果を出力ベクトルとして出力する。このようなニューラルネットワークは、入力ベクトルと出力ベクトルとを対応付けた教師データセットを蓄積した学習データに基づき、各層の活性化関数を最適化することにより生成される。
【0039】
占有領域検出部214は、モデル記憶部215が記憶する画像認識モデルに、新たな距離画像データ及び輝度画像データを入力することで、1以上の物体の新たな占有領域を特定する。
【0040】
なお、機械学習による画像認識モデルに基づいて1以上の物体の占有領域を特定することは必須ではない。占有領域検出部214は、パターンマッチングなどによる画像内の境界認識等、機械学習によらない手法で1以上の物体の占有領域を特定してもよい。
【0041】
環境特定装置200は、ワーク90に対する作業の進捗情報を記憶し、実際の作業の進捗に合わせて進捗情報を更新するように構成されていてもよい。例えば環境特定装置200は、進捗記憶部216と、進捗管理部217とを更に有する。
【0042】
進捗記憶部216は、作業対象部位92に対する作業の進捗情報を記憶する。例えば図6に示すように、進捗記憶部216は、複数の作業対象部位92ごとに、作業の進捗情報を記憶する。図6における進捗情報は、「未」、「済み」、「予約あり」により表されている。「未」は、作業が未完了であることを意味する。「済み」は、作業が完了していることを意味する。「予約あり」は、ロボット3A,3B,3Cのいずれかが作業を行うことを予定していることを意味する。
【0043】
進捗管理部217は、実際の作業の進捗に合わせて、進捗記憶部216が記憶する進捗情報を更新する。例えば進捗管理部217は、後述のロボットコントローラ300A,300B,300Cによるロボット3A,3B,3Cの制御状況と、環境画像データとに基づいて進捗情報を更新する。
【0044】
ロボットコントローラ300(コントローラ)は、ワーク90に対し作業するようにロボット3A,3B,3Cを制御する。ロボットシステム1が複数のロボット3A,3B,3Cを備える場合、制御システム100は、複数のロボット3A,3B,3Cをそれぞれ制御する複数のロボットコントローラ300を備えていてもよい。一例として、ロボットコントローラ300は、ロボット3A,3B,3Cをそれぞれ制御するロボットコントローラ300A,300B,300Cを有する。
【0045】
ロボットコントローラ300Aは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Aによるワーク90に対する作業可否を、インタロック領域がロボット3A以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Aを制御することと、を実行するように構成されている。
【0046】
図3に示すように、ロボットコントローラ300Aは、機能ブロックとして、プログラム保持部311と、作業対象選択部312と、プログラム修正部313と修正済みプログラム保持部314と、インタロック領域特定部315と、作業可否判定部316と、制御実行部317とを有する。
【0047】
プログラム保持部311は、ワーク90に対する作業をロボット3Aに行わせるように予め生成された動作プログラムを記憶する。例えばプログラム保持部311は、複数の作業対象部位92のうち、2以上の作業対象部位92(以下、「2以上の管轄部位」という。)ごとに生成された2以上の動作プログラムを記憶する。全ての作業対象部位92が管轄部位となっていてもよい。例えば動作プログラムは、時系列に並ぶ複数のモーション指令を含む。複数のモーション指令のそれぞれは、先端部18の目標位置・目標姿勢を含む。
【0048】
作業対象選択部312は、進捗記憶部216が記憶する進捗情報と、ワーク位置検出部213が特定したワーク90の現在位置と、ロボット3Aの現在位置とに基づいて、2以上の管轄部位のうちいずれかを選択する。例えば作業対象選択部312は、2以上の管轄部位のうち、作業が未完了で、且つロボット3Aから最も近くに位置する部位を選択する。以下、選択した部位を「選択済み部位」という。
【0049】
プログラム修正部313は、ワーク90の現在位置に基づいて、選択済み部位に対する動作プログラムを修正する。例えば動作プログラムは、ワーク90が所定の基準位置にあることを前提として生成されている。プログラム修正部313は、基準位置と、現在位置との差に基づいて、上記複数のモーション指令のそれぞれにおける目標位置・目標姿勢を修正する。
【0050】
修正済みプログラム保持部314は、プログラム修正部313により修正された動作プログラムを記憶する。以下、修正済みプログラム保持部314が記憶する動作プログラムを「修正済みプログラム」という。
【0051】
インタロック領域特定部315は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定する。インタロック領域は、選択済み部位に対する作業をロボット3Aが実行する際に、他の物体の存在を許容できない領域である。他の物体の存在を許容できないことの具体例としては、インタロック領域内に他の物体が存在する場合に、当該他の物体とロボット3Aとの衝突が生じ得ることが挙げられる。
【0052】
インタロック領域特定部315は、上記修正済みプログラムに基づいてワーク90に対し作業を行う場合のロボット3Aの占有予定領域を特定し、占有予定領域に基づいてインタロック領域を特定してもよい。インタロック領域特定部315は、インタロック領域を確認対象領域の複数の区画単位で特定してもよい。
【0053】
図7の(a)は、インタロック領域特定部315によるインタロック領域の特定結果を例示している。インタロック領域特定部315は、修正済みプログラムに基づいて、選択済み部位である作業対象部位92Mに対し作業を行う場合のロボット3Aの占有予定領域A21を特定し、確認対象領域93と占有予定領域A21との重複領域をインタロック領域A22として特定する。
【0054】
この際に、インタロック領域特定部315は、複数の区画単位でインタロック領域A22を特定する。例えばインタロック領域特定部315は、複数の作業対象部位92のうち、占有予定領域A21と重なる作業対象部位92C,92D,92K,92L,92M,92Nをインタロック領域A22として特定する。
【0055】
なお、作業対象部位が同一であっても、ロボット3Aの配置によってインタロック領域は変わり得る。例えば図7の(b)は、図7の(a)と同じ作業対象部位92Mに対し作業を行う場合であっても、ロボット3Aの配置によってインタロック領域A22が変わることを例示している。具体的に図7の(b)においては、92D,92E,92L,92M,92N,92Pがインタロック領域A22として選択されている。
【0056】
図7の(a)におけるインタロック領域A22と、図7の(b)におけるインタロック領域A22との両方を含む程度に大きなマージンを設定することが許される場合、インタロック領域特定部315は、単に所定のマージンを持って作業対象位置(例えば作業対象部位92M)を取り囲むようにインタロック領域を設定してもよい。
【0057】
例えば、2区画のマージンを持って作業対象部位92Mを取り囲むインタロック領域は、作業対象部位92B,92C,92D,92E,92F,92K,92L,92M,92N,92Pを含むように特定される。このインタロック領域は、図7の(a)におけるインタロック領域A22と、図7の(b)におけるインタロック領域A22との両方を含む。
【0058】
作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体(例えばロボット3B,3C又は作業者9)の占有領域と重複しているか否かに基づいて、ロボット3Aによるワーク90に対する作業可否を判定する。例えば作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体の占有領域と重複していない場合に、ロボット3Aによる選択済み部位への作業は可であると判定する。一方、作業可否判定部316は、インタロック領域が、ロボット3A以外の他の物体の占有領域と重複している場合にロボット3Aによる選択済み部位への作業は不可であると判定する。
【0059】
一例として、図8は、選択済み部位である作業対象部位92Mに対するインタロック領域A31が、ロボット3Bの占有領域A32と重複している場合を例示している。この場合、作業可否判定部316は、ロボット3Aによる作業対象部位92Mへの作業は不可であると判定する。
【0060】
図9は、選択済み部位である作業対象部位92Mに対するインタロック領域A41が、作業者9の占有領域A42と重複している場合を例示している。この場合も、作業可否判定部316は、ロボット3Aによる作業対象部位92Mへの作業は不可であると判定する。
【0061】
図10は、選択済み部位である作業対象部位92Kに対するインタロック領域A51が、ロボット3Cの占有領域A52と重複していない場合を例示している。この場合、作業可否判定部316は、ロボット3Aによる作業対象部位92Kへの作業は可であると判定する。これにより、同一のワーク90に対し、ロボット3A,3Cが同時に作業を行うことが可能となる(図11参照)。
【0062】
制御実行部317は、作業可否判定部316が作業可と判定した場合、ワーク90の現在位置に基づいてロボット3Aを制御する。例えば制御実行部317は、ワーク90の現在位置に基づいて修正された上記修正済みプログラムに基づいて、ロボット3Aを制御する。より具体的には、ロボット3Aの先端部18を上記修正済みプログラムに従って変位させるように、逆運動学演算により関節31,32,33,34,35,36の角度目標値を算出し、アクチュエータ41,42,43,44,45,46によって、関節31,32,33,34,35,36のそれぞれの角度を角度目標値に追従させる。
【0063】
ロボットコントローラ300は、ロボット3Aに設けられた作業対象カメラ51により生成された作業対象画像データに更に基づいてロボット3Aを制御するように構成されていてもよい。例えばロボットコントローラ300は、作業対象位置検出部318を更に有してもよい。
【0064】
作業対象位置検出部318は、作業対象カメラ51が生成した作業対象画像データを取得する。制御実行部317は、作業対象位置検出部318が取得した作業対象画像データに更に基づいて、ロボット3Aを制御する。例えば制御実行部317は、作業対象画像データに基づいて、選択済み部位に対する先端部18の位置・姿勢のずれを特定し、特定したずれを縮小するように先端部18の目標位置・目標姿勢を補正し、補正後の目標位置・目標姿勢に基づいてロボット3Aを制御する。
【0065】
以上においては、作業可否判定部316が作業可と判定した後に、選択済み部位に対する作業をロボット3Aに開始させる構成を例示したが、これに限られない。制御実行部317は、選択済み部位に対する作業をロボット3Aに途中まで遂行させた後にロボット3Aを一時停止させ、作業可否判定部316が作業可と判定するのを待機してもよい。
【0066】
制御実行部317は、予め生成された動作プログラムに基づくことなく、ワーク90の現在位置に応じた動作プログラムをリアルタイムで生成し、生成した動作プログラムに基づいてロボット3Aを制御してもよい。この場合、プログラム修正部313及び修正済みプログラム保持部314は省略可能となる。
【0067】
ロボットコントローラ300Aと同様に、ロボットコントローラ300Bは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Bによるワーク90に対する作業可否を、インタロック領域がロボット3B以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Bを制御することと、を実行するように構成されている。
【0068】
ロボットコントローラ300Cは、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Cによるワーク90に対する作業可否を、インタロック領域がロボット3C以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Cを制御することと、を実行するように構成されている。
【0069】
ロボットコントローラ300B,300Cの具体的な構成はロボットコントローラ300Aと共通である。よって、ロボットコントローラ300B,300Cについての詳細な説明は省略する。
【0070】
図12は、環境特定装置200及びロボットコントローラ300のハードウェア構成を例示するブロック図である。図12に示すように、環境特定装置200は、回路290を有する。回路290は、一つ又は複数のプロセッサ291と、メモリ292と、ストレージ293と、通信ポート294と、入出力ポート295とを含む。ストレージ293は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ293は、搬送装置2におけるワーク90の現在位置と、ワーク90の近傍における1以上の物体の占有領域とを特定することを環境特定装置200に実行させるためのプログラムを記憶している。例えばストレージ293は、上述した各機能ブロックを環境特定装置200に構成させるためのプログラムを記憶している。
【0071】
メモリ292は、ストレージ293の記憶媒体からロードしたプログラム及びプロセッサ291による演算結果を一時的に記憶する。プロセッサ291は、メモリ292と協働して上記プログラムを実行することで、環境特定装置200の各機能ブロックを構成する。通信ポート294は、プロセッサ291からの指令に従って、ネットワーク回線NWを介して、ロボットコントローラ300との間で通信を行う。入出力ポート295は、プロセッサ291からの指令に従って、輝度カメラ7及び距離カメラ8との間で情報の入出力を行う。
【0072】
ロボットコントローラ300は、回路390を有する。回路390は、一つ又は複数のプロセッサ391と、メモリ392と、ストレージ393と、通信ポート394と、ドライバ回路395とを含む。ストレージ393は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ393は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3A,3B,3Cによるワーク90に対する作業可否を、インタロック領域がロボット3A,3B,3C以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3A,3B,3Cを制御することと、をロボットコントローラ300に実行させるためのプログラムを記憶している。例えばストレージ393は、上述した各機能ブロックをロボットコントローラ300に構成させるためのプログラムを記憶している。
【0073】
メモリ392は、ストレージ393の記憶媒体からロードしたプログラム及びプロセッサ391による演算結果を一時的に記憶する。プロセッサ391は、メモリ392と協働して上記プログラムを実行することで、ロボットコントローラ300の各機能ブロックを構成する。通信ポート394は、プロセッサ391からの指令に従って、ネットワーク回線NWを介して、環境特定装置200との間で通信を行う。ドライバ回路395は、プロセッサ391からの指令に従って、ロボット3A,3B,3Cに駆動電力を出力する。
【0074】
なお、回路290,390は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路290,390は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0075】
〔制御手順〕
続いて、制御方法の一例として、制御システム100が実行する制御手順を例示する。この手順は、環境特定装置200が実行する環境特定手順と、ロボットコントローラ300が実行するロボット制御手順とを含む。以下、各手順を詳細に例示する。
【0076】
(環境特定手順)
図13に示すように、環境特定装置200は、ステップS01,S02,S03を実行する。ステップS01では、画像データ取得部211が、環境撮像装置6が生成した環境画像データを取得する。ステップS02では、ワーク位置検出部213が、環境画像データに基づいて、ワーク90の現在位置を特定する。ステップS03では、占有領域検出部214が、環境画像データに基づいて、1以上の物体の占有領域を特定する。環境特定装置200は、以上の手順を繰り返す。
【0077】
(ロボット制御手順)
ロボット制御手順は、ロボットコントローラ300A,300B,300Cで共通である。そこで、以下においては、ロボットコントローラ300Aが実行するロボット制御手順のみを説明し、ロボットコントローラ300B,300Cが実行するロボット制御手順の説明は省略する。
【0078】
この手順は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定することと、ロボット3Aによるワーク90に対する作業可否を、インタロック領域がロボット3A以外の他の物体の占有領域と重複しているか否かに基づいて判定することと、作業可と判定した場合、ワーク90の現在位置に基づいてワーク90に対し作業するようにロボット3Aを制御することと、を含む。
【0079】
図14に示すように、ロボットコントローラ300は、まずステップS11,S12,S13,S14,S15を実行する。ステップS11では、作業対象選択部312が、進捗記憶部216が記憶する進捗情報と、ワーク位置検出部213が特定したワーク90の現在位置と、ロボット3Aの現在位置とに基づいて、2以上の管轄部位のうちいずれかを選択する。ステップS12では、作業対象選択部312が、選択済み部位を「予約あり」に変更することを進捗管理部217に要求する。進捗管理部217は、選択済み部位を「予約あり」にするように、進捗記憶部216の進捗情報を更新する。ステップS13では、プログラム修正部313が、ワーク90の現在位置に基づいて、選択済み部位に対する動作プログラムを修正する。
【0080】
ステップS14では、インタロック領域特定部315が、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定する。ステップS15では、インタロック領域が、ロボット3A以外の他の物体(例えばロボット3B,3C又は作業者9)の占有領域と重複しているか否かに基づいて、ロボット3Aによるワーク90に対する作業可否を作業可否判定部316が判定する。
【0081】
ステップS15において、ロボット3Aによるワーク90に対する作業が可でないと判定した場合、ロボットコントローラ300は処理をステップS13に戻す。以後、ロボット3Aによるワーク90に対する作業が可であると判定されるまで、ワーク90の現在位置に基づく動作プログラムの修正と、ワーク90の現在位置に基づくインタロック領域の特定と、作業可否の判定とが繰り返される。
【0082】
ステップS15において、ロボット3Aによるワーク90に対する作業が可であると判定した場合、ロボットコントローラ300は、所定の制御周期で、修正済みプログラムに基づくロボット3Aの制御を繰り返し実行する。
【0083】
まず、ロボットコントローラ300は、ステップS21,S22を実行する。ステップS21では、制御実行部317が、修正済みプログラムに基づいて、現在の制御周期における先端部18の目標位置・目標姿勢を算出する。ステップS22では、制御実行部317が、先端部18が所定の微調開始位置に到達しているか否かを確認する。一例として、微調開始位置は、選択済み部位の少なくとも一部が作業対象画像データに含まれる位置とされている。
【0084】
ステップS22において、先端部18が微調開始位置に到達していないと判定した場合、ロボットコントローラ300は、ステップS25,S26を実行する。ステップS25では、制御実行部317が、算出済みの目標位置・目標姿勢に先端部18を追従させるように、アクチュエータ41,42,43,44,45,46により関節31,32,33,34,35,36を駆動する。ステップS26では、制御実行部317が、動作プログラムの全てのモーション指令に従った制御が完了したか否かを確認する。
【0085】
ステップS26において、動作プログラムの一部のモーション指令に従った制御が完了していないと判定した場合、ロボットコントローラ300は処理をステップS21に戻す。以後、全てのモーション指令に従った制御が完了するまでは、修正済みプログラムに基づくロボット3Aの制御が上記制御周期で繰り返される。
【0086】
この繰り返しにおいて、ステップS22において先端部18が微調開始位置に到達していると判定した場合、ロボットコントローラ300は、ステップS25の前にステップS23,S24を実行する。ステップS23では、作業対象位置検出部318が、作業対象カメラ51が生成した作業対象画像データを取得する。ステップS24では、制御実行部317が、作業対象画像データに基づいて、選択済み部位に対する先端部18の位置・姿勢のずれを特定し、特定したずれを縮小するように先端部18の目標位置・目標姿勢を補正する。以後、全てのモーション指令に従った制御が完了するまでは、修正済みプログラムと、作業対象画像データとに基づくロボット3Aの制御が上記制御周期で繰り返される。
【0087】
ステップS26において、動作プログラムの全てのモーション指令に従った制御が完了したと判定した場合、ロボットコントローラ300はステップS27を実行する。ステップS27では、作業対象選択部312が、選択済み部位を「済み」に変更することを進捗管理部217に要求する。進捗管理部217は、選択済み部位を「済み」にするように、作業可否判定部316の進捗情報を更新する。以上でロボット制御手順が完了する。
【0088】
〔本実施形態の効果〕
以上に説明したように、ロボットシステム1は、ワーク90を搬送する搬送装置2と、ワーク90の現在位置と、1以上の物体の占有領域とを特定する環境特定装置200と、ワーク90に対し作業するようにロボット3A,3B,3Cを制御するロボットコントローラ300と、を備え、ロボットコントローラ300は、ワーク90の現在位置に基づいて、ワーク90と共に移動するインタロック領域を特定するインタロック領域特定部315と、インタロック領域が、ロボット3A,3B,3C以外の他の物体の占有領域と重複しているか否かに基づいて、ロボット3A,3B,3Cによるワーク90に対する作業可否を判定する作業可否判定部316と、作業可否判定部316が作業可と判定した場合、ワーク90の現在位置に基づいてロボット3A,3B,3Cを制御する制御実行部317と、を有する。
【0089】
本ロボットシステム1は、ワーク90と共に移動するインタロック領域が、他の物体の占有領域と干渉しているか否かに基づいて、ロボット3A,3B,3Cによるワーク90に対する作業可否を判定する。このため、搬送装置2に搬送されて作業対象のワーク90が移動する状況においても、作業対象のワーク90に対しロボットが作業を行う際に、ロボット3A,3B,3Cが他の物体と衝突し得るかを適切に評価し、ロボット3A,3B,3Cによる作業可否を適切に判定することができる。従って、本ロボットシステム1は、環境変化に対する柔軟な適応に有効である。
【0090】
ロボットコントローラ300は、ワーク90の現在位置に基づいて、予め定められた動作プログラムを修正するプログラム修正部313を更に備え、制御実行部317は、作業可否判定部316が作業可と判定した場合、修正後の動作プログラムに基づいて、ロボット3A,3B,3Cを制御してもよい。作業可と判定される際のワーク90の位置は、搬送中のいずれのタイミングで作業可となるかによって変わる。このため、作業可と判定される際のワーク90の位置にロボット3A,3B,3Cの動作を適応させる必要がある。これに対し、本ロボットシステム1は、予め定められた動作プログラムを、ワーク90の現在位置に基づいて修正する。このため、作業可と判定される際のワーク90の位置にロボット3A,3B,3Cの動作を容易に適応させることができる。
【0091】
環境特定装置200は、ワーク90と共に移動する確認対象領域93内における1以上の物体の占有領域を特定してもよい。この場合、1以上の占有領域のうち、インタロック領域との重複確認の対象となる領域を縮小することによって、ロボットコントローラ300における処理負担を軽減することができる。
【0092】
ロボットシステム1は、ロボット3A,3B,3Cの動作範囲と重複する動作範囲にて、ワーク90に対し作業するようにロボット3A,3B,3C(第2ロボット)を制御するロボットコントローラ300(第2コントローラ)を更に備え、第2コントローラは、ワーク90の現在位置に基づいて、ワーク90と共に移動する第2インタロック領域を特定するインタロック領域特定部315と、第2インタロック領域が第2ロボット以外の他の物体の占有領域と重複しているか否かに基づいて、第2ロボットによるワーク90に対する作業可否を判定する作業可否判定部(第2作業可否判定部)と、第2作業可否判定部が作業可と判定した場合、ワーク90の現在位置に基づいて第2ロボットを制御する制御実行部317と、を有していてもよい。この場合、環境変化に対する柔軟な適応性を、動作範囲が互いに重複するロボット3A,3B,3C同士の動作タイミングの調整にも有効活用することができる。
【0093】
ロボット3A,3B,3C以外の他の物体の占有領域は、作業者9が占める人占有領域を含んでいてもよい。この場合、人とロボット3A,3B,3Cとが協働する作業環境においても、ロボット3A,3B,3Cによる作業可否を適切に判断することができる。
【0094】
ロボットシステム1は、搬送装置2が搬送するワークを含む対象エリアを撮影して環境画像データを生成する環境撮像装置6を更に備え、環境特定装置200は、環境画像データに基づいて、ワーク90の現在位置と、1以上の物体の占有領域とを特定してもよい。この場合、環境情報の信頼性を向上させることで、環境情報に基づくロボット3A,3B,3Cの動作の信頼性も向上させることができる。
【0095】
環境撮像装置6は、対象エリアに対する距離画像データと、輝度画像データとを含む環境画像データを生成し、環境特定装置200は、距離画像データと、輝度画像データとに基づいて、1以上の物体の占有領域を特定してもよい。この場合、距離画像データと輝度画像データとの併用により、環境情報の信頼性を更に向上させることができる。
【0096】
環境特定装置200は、環境画像データに基づいて、ワーク90に付されたマーカ91を認識し、対象エリア内におけるマーカ91の位置に基づいてワーク90の現在位置を特定してもよい。この場合、環境画像データをワーク90の位置の検出にも活用することができる。
【0097】
インタロック領域特定部315は、修正後の動作プログラムに基づいてワーク90に対し作業を行う場合のロボット3A,3B,3Cの占有予定領域を特定し、占有予定領域に基づいてインタロック領域を特定してもよい。この場合、より適切な第1インタロック領域を特定することで、実際には作業可であるにもかかわらず作業不可と判定してしまうことを減らし、ロボット3A,3B,3Cの作業効率を向上させることができる。
【0098】
インタロック領域特定部315は、ワーク90の現在位置に基づいて、所定のマージンをもってロボット3A,3B,3Cの作業対象位置を取り囲むようにインタロック領域を特定してもよい。この場合、インタロック領域の特定処理を簡素化し、ロボットコントローラ300における処理負担を軽減することができる。
【0099】
確認対象領域は、複数の区画を含み、環境特定装置200は、1以上の物体の占有領域を複数の区画単位で特定し、インタロック領域特定部315は、インタロック領域を複数の区画単位で特定してもよい。この場合、1以上のロボット重複領域の特定処理と、インタロック領域の特定処理とを簡素化し、環境特定装置200及びロボットコントローラ300における処理負担を更に軽減することができる。
【0100】
環境特定装置200は、距離画像データと、輝度画像データとを含む入力データに基づいて、1以上の物体の占有領域を出力するように、機械学習により生成された画像認識モデルと、新たな距離画像データ及び輝度画像データとに基づいて1以上の物体の新たな占有領域を特定してもよい。この場合、機械学習の活用により、距離画像データと輝度画像データとをより適切に併用して1以上のロボット占有領域を特定することができる。
【0101】
ロボット3A,3B,3Cは、ロボット本体4と、ロボット本体4を保持して搬送する搬送台車5と、ロボット本体4による作業領域を撮影して作業対象画像データを生成する作業対象カメラ51(作業対象撮像装置)と、を有し、制御実行部317は、作業対象画像データに更に基づいてロボット3A,3B,3Cを制御してもよい。この場合、搬送台車5の位置ずれが生じ得る状況においても、ワーク90に対するロボット3A,3B,3Cの作業精度を維持することができる。
【0102】
以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
【符号の説明】
【0103】
1…ロボットシステム、2…搬送装置、3A,3B,3C…ロボット、4…ロボット本体、5…搬送台車(台車)、6…環境撮像装置、9…作業者、51…作業対象カメラ(作業対象撮像装置)、90…ワーク、91…マーカ、93…確認対象領域、200…環境特定装置、300…ロボットコントローラ(コントローラ)、313…プログラム修正部、315…インタロック領域特定部、316…作業可否判定部、317…制御実行部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14