(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】ロボット、ロボットシステム及び制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20231211BHJP
【FI】
B25J13/08 A
(21)【出願番号】P 2021565378
(86)(22)【出願日】2020-11-16
(86)【国際出願番号】 JP2020042678
(87)【国際公開番号】W WO2021124760
(87)【国際公開日】2021-06-24
【審査請求日】2022-06-22
(31)【優先権主張番号】P 2019227488
(32)【優先日】2019-12-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【氏名又は名称】松尾 茂樹
(72)【発明者】
【氏名】小川 昌寛
(72)【発明者】
【氏名】入江 俊充
(72)【発明者】
【氏名】小▲柳▼ 健一
(72)【発明者】
【氏名】堀内 智之
(72)【発明者】
【氏名】伊藤 雅人
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2019-126866(JP,A)
【文献】特開2012-228761(JP,A)
【文献】特開2018-187749(JP,A)
【文献】特開平09-272081(JP,A)
【文献】特開平06-218684(JP,A)
【文献】特開2013-078825(JP,A)
【文献】特開2018-171688(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
基部と、
前記基部に対して旋回する旋回部と、
前記旋回部に連結され、作業用のツールの位置及び姿勢を変更する多関節アームと、
前記旋回部に固定されたカメラと、を備え、
前記多関節アームは、
前記旋回部に連結され、前記旋回部の旋回中心軸線に交差する第1軸線まわりに揺動する第1アームを有し、
前記多関節アームによる前記ツールの可動範囲と、前記カメラの視野とが重複して
おり、
前記カメラが、前記第1軸線まわりの前記第1アームの可動範囲外に位置するように、前記第1アームの位置と前記カメラの位置とが、前記第1軸線に沿う方向において互いに異なっている、ロボット。
【請求項2】
前記多関節アームは、
前記第1アームの先端部に連結され、前記第1アームに沿った第2軸線に交差する第3軸線まわりに揺動する第2アームと、
前記第2アームの先端部に連結され、前記第2アームに沿った第4軸線まわりに旋回し、前記第4軸線に交差する第5軸線まわりに揺動する第3アームと、
前記第3アームの先端部に設けられ、前記ツールを保持し、前記第3アームに沿った第6軸線まわりに旋回するツール保持部と、
を更に有する、請求項1記載のロボット。
【請求項3】
前記
第2アームは、前記第2軸まわりに更に旋回する、請求項
2記載のロボット。
【請求項4】
前記視野の中心の光軸は、前記第1軸線に交差する基準面に
含まれており、前記第1アームの可動範囲は、前記第1軸線に沿う方向において前記基準面から離れている、請求項
1記載のロボット。
【請求項5】
前記旋回部の位置と前記カメラの位置とが、前記第1軸線に沿う方向において、少なくとも部分的に一致している、請求項1~4のいずれか一項記載のロボット。
【請求項6】
前記旋回部のうち少なくとも前記第1アームに接続された部分を覆うように前記旋回部に固定される外殻を更に備え、
前記カメラは、前記外殻に内蔵されている、請求項1~5のいずれか一項記載のロボット。
【請求項7】
前記カメラは、前記旋回部において、前記第1軸線よりも上方に配置されている、請求項1~6のいずれか一項記載のロボット。
【請求項8】
前記第1軸線と前記第3軸線とが互い平行であり、
前記第2アームの位置と前記カメラの位置とが、前記第1軸線に沿う方向において、少なくとも部分的に一致している、請求項2記載のロボット。
【請求項9】
請求項1~
8のいずれか一項記載のロボットと、
ワークの前記カメラによる撮像画像に基づいて動作指令を生成する指令生成部と、
前記動作指令に基づいて、前記ツールによる第1作業を前記ワークに対し実行するように前記多関節アームを制御するアーム制御部と、を備えるロボットシステム。
【請求項10】
前記多関節アームが前記第1作業を実行している期間中における前記ワークの前記カメラによる撮像画像に基づいて前記第1作業におけるイレギュラー状態を検知する作業監視部を更に備える、請求項
9記載のロボットシステム。
【請求項11】
前記指令生成部は、前記作業監視部がイレギュラー状態を検知した場合に、前記ワークの前記カメラによる撮像画像に基づいて前記動作指令を修正し、
前記アーム制御部は、修正後の前記動作指令に基づいて前記第1作業を前記多関節アームに継続させる、請求項
10記載のロボットシステム。
【請求項12】
前記指令生成部は、前記第1作業を前記多関節アームが実行している期間中における第2ワークの前記カメラによる撮像画像に基づいて第2動作指令を更に生成し、
前記アーム制御部は、前記第2動作指令に基づいて、前記ツールによる第2作業を前記第2ワークに対し実行するように前記多関節アームを制御する、請求項
10又は
11記載のロボットシステム。
【請求項13】
前記指令生成部が前記動作指令を生成する前に、前記カメラが前記ワークに向くように前記旋回部を旋回させ、その後、前記第1作業を前記多関節アームが完了させるまで前記旋回部を停止させる旋回制御部を更に備える、請求項
9~
12のいずれか一項記載のロボットシステム。
【請求項14】
前記第1作業は、前記ワークをピックアップする作業であり、
前記旋回制御部は、前記第1作業により前記多関節アームが前記ワークをピックアップした状態で前記旋回部を旋回させ、
前記アーム制御部は、前記旋回制御部が前記旋回部を旋回させている期間の少なくとも一部において、ピックアップ中の前記ワークを前記カメラの視野内に配置するように前記多関節アームを制御する、請求項
13記載のロボットシステム。
【請求項15】
前記旋回制御部が前記旋回部を旋回させている期間中における前記ピックアップ中のワークの前記カメラによる撮像画像に基づいて、前記ツールによる前記ワークの保持状態を検査する保持状態監視部を更に備える、請求項
14記載のロボットシステム。
【請求項16】
前記カメラによる前記ワークの撮像画像に基づいて、3次元空間における前記ワークの位置及び姿勢を算出する画像処理部を更に有し、
前記指令生成部は、前記画像処理部が算出した前記ワークの位置及び姿勢に基づいて前記動作指令を生成する、請求項
9~
15のいずれか一項記載のロボットシステム。
【請求項17】
前記旋回部は前記基部の上に設けられ、
前記カメラは、視野の中心の光軸が斜め下方に向くように前記旋回部に設けられている、請求項
9~
16のいずれか一項記載のロボットシステム。
【請求項18】
前記基部の周囲において前記ワークを支持する支持部を更に備え、
前記支持部の上面は、前記旋回部よりも下に位置している、請求項
17記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット、ロボットシステム及び制御方法に関する。
【背景技術】
【0002】
特許文献1には、ワークを支持する作業台と、ワークに対する作業を行うロボットアームと、作業台の上方に設置されたカメラと、を備え、カメラから取得した画像に基づいてワークの位置及び姿勢を特定するロボットシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、カメラ画像のロボット制御への有効活用と、システム構成の簡素化との両立に有効なロボットを提供する。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットは、基部と、基部に対して旋回する旋回部と、旋回部に連結され、作業用のツールの位置及び姿勢を変更する多関節アームと、旋回部に固定されたカメラと、を備え、多関節アームによるツールの可動範囲と、カメラの視野とが重複している。
【0006】
本開示の他の側面に係るロボットシステムは、上記ロボットと、ワークのカメラによる撮像画像に基づいて動作指令を生成する指令生成部と、動作指令に基づいて、ツールによる第1作業をワークに対し実行するように多関節アームを制御するアーム制御部と、を備える。
【0007】
本開示の更に他の側面に係る制御方法は、基部と、基部に対して旋回する旋回部と、旋回部に連結され、作業用のツールの位置及び姿勢を変更する多関節アームと、を備えるロボットの、基部の周囲の作業エリアに配置されたワークの画像を、旋回部に設けられたカメラから取得し、当該画像に基づいて動作指令を生成することと、動作指令に基づいて、ツールによる第1作業をワークに対し実行するように多関節アームを制御することと、を含む。
【発明の効果】
【0008】
本開示によれば、カメラ画像のロボット制御への有効活用と、システム構成の簡素化との両立に有効なロボットを提供する。
【図面の簡単な説明】
【0009】
【
図1】ロボットシステムの概略構成を示す模式図である。
【
図3】コントローラのハードウェア構成を例示するブロック図である。
【
図4】ワークの搬送制御手順を例示するフローチャートである。
【
図5】ワークの搬送制御手順を例示するフローチャートである。
【
図6】ワークの搬送制御手順の変形例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
【0011】
〔ロボットシステム〕
図1に示すロボットシステム1は、製品の生産ラインにおいて、作業対象物(以下、「ワーク」という。)に対し所定の作業を実行するシステムである。作業の具体例としては、ワークをピックアップし、所定の搬送目標位置及び姿勢まで搬送してドロップオフするピックアンドプレース作業が挙げられるが、これに限定されない。作業の他の例としては、ワークを他のワークに溶接する作業、ワークを他のワークにボルト等により締結する作業、ワークに研磨等の加工を施す作業等が挙げられる。
図1に示すように、ロボットシステム1は、ロボット10と、コントローラ100とを有する。
【0012】
ロボット10は、所謂垂直多関節型の産業用ロボットであり、基部11と、旋回部12と、多関節アーム20と、アクチュエータ71,72,73,74,75,76,77と、ツール30と、カメラ40とを有する。
【0013】
基部11は、作業エリア5の近傍に位置するロボット支持台3の上に固定されている。基部11は、AGV(Automated Guided Vehicle)上に固定されていてもよい。旋回部12は、基部11の上に設けられている。旋回部12は、基部11に対して旋回する。例えば旋回部12は、鉛直な軸線51まわりに旋回する。
【0014】
多関節アーム20は、旋回部12に連結され、作業用のツール30の位置及び姿勢を変更する。多関節アーム20は、6以上の独立した自由度を有する。例えば多関節アーム20は、6軸のシリアルリンク型のアームであり、第1アーム21と、第2アーム22と、第3アーム23と、ツール保持部24とを有する。
【0015】
第1アーム21は、旋回部12に連結され、第1アーム21と旋回部12との連結部を通る軸線52まわりに揺動する。軸線52(第1軸線)は、旋回部12の旋回中心軸線(上記軸線51)に交差(例えば直交)している。ここでの交差は、所謂立体交差のようにねじれの関係も含む。以下においても同様である。第1アーム21は、アーム基部25と旋回アーム26とを有する。アーム基部25は、旋回部12に連結され、軸線52に交差(例えば直交)する軸線53に沿っている。旋回アーム26は、アーム基部25の先端部に連結され、軸線53に沿っており、軸線53まわりに旋回する。
【0016】
第2アーム22は、第1アーム21の先端部に連結され、第1アーム21に沿った軸線53(第2軸線)まわりに旋回し、軸線53に交差(例えば直交)する軸線54(第3軸線)まわりに揺動する。例えば第2アーム22は、旋回アーム26の先端部に連結されており、第2アーム22と旋回アーム26との連結部を通る軸線54まわりに揺動する。また、第2アーム22は、旋回アーム26と共に軸線53まわりに旋回する。第2アーム22は、アーム基部27と旋回アーム28とを有する。アーム基部27は、旋回アーム26の先端部に連結され、軸線54に交差(例えば直交)する軸線55に沿っている。旋回アーム28は、アーム基部27の先端部に連結され、軸線55に沿っており、軸線55まわりに旋回する。
【0017】
第3アーム23は、第2アーム22の先端部に連結され、第2アーム22に沿った軸線55(第4軸線)まわりに旋回し、軸線55に交差(例えば直交)する軸線56(第5軸線)まわりに揺動する。例えば第3アーム23は、旋回アーム28の先端部に連結されており、第3アーム23と旋回アーム28との連結部を通る軸線56まわりに揺動する。また、第3アーム23は、旋回アーム28と共に軸線55まわりに旋回する。第3アーム23は、軸線56に交差(例えば直交)する軸線57に沿っている。
【0018】
ツール保持部24は、第3アーム23の先端部に設けられ、ツール30を保持し、第3アーム23に沿った軸線57(第6軸線)まわりに旋回する。
【0019】
このように、ロボット10は、基部11と旋回部12とを連結する関節61と、旋回部12とアーム基部25とを連結する関節62と、アーム基部25と旋回アーム26とを連結する関節63と、旋回アーム26とアーム基部27とを連結する関節64と、アーム基部27と旋回アーム28とを連結する関節65と、旋回アーム28と第3アーム23とを連結する関節66と、第3アーム23とツール保持部24とを連結する関節67とを有する。
【0020】
アクチュエータ71,72,73,74,75,76,77は、例えば電動モータ及び減速機を含み、関節61,62,63,64,65,66,67をそれぞれ駆動する。例えばアクチュエータ71は、基部11に内蔵(例えば基部11の外殻81内に収容)されており、軸線51まわりに旋回部12を旋回させる。アクチュエータ72は、旋回部12に内蔵(例えば旋回部12の外殻82内に収容)されており、軸線52まわりにアーム基部25を揺動させる。アクチュエータ73は、アーム基部25に内蔵(例えばアーム基部25の外殻83内に収容)されており、軸線53まわりに旋回アーム26を旋回させる。アクチュエータ74は、旋回アーム26に内蔵(例えば旋回アーム26の外殻84内に収容)されており、軸線54まわりにアーム基部27を揺動させる。アクチュエータ75は、アーム基部27に内蔵(例えばアーム基部27の外殻85内に収容)されており、軸線55まわりに旋回アーム28を旋回させる。アクチュエータ76は、旋回アーム28に内蔵(例えば旋回アーム28の外殻86内に収容)されており、軸線56まわりに第3アーム23を揺動させる。アクチュエータ77は、第3アーム23に内蔵(例えば第3アーム23の外殻87内に収容)されており、軸線57まわりにツール保持部24を旋回させる。
【0021】
ツール30は、ロボット10がワークWに対し実行する作業においてワークWに作用する。ツール30の具体例としては、ワークWを吸着により保持する吸着ノズル、ワークWを掴むことにより保持するハンド等が挙げられる。ツール30の他の例としては、溶接トーチ、ねじ締めツール(例えば電動ドライバ)、及び研磨ツール(例えばグラインダー)等が挙げられる。
【0022】
カメラ40は、旋回部に固定されており、作業エリア5を撮影する。カメラ40は、CCD(Charged-Coupled Devices)又はCMOS(ComplementaryMetal-Oxide-Semiconductor)センサ等の撮像素子と、視野41の画像を撮像素子に結像させる光学系とを有する。カメラ40は、撮影対象部の輝度、色調等を画素ごとに示す2次元画像(例えばカラー画像、モノクロ画像)を取得するカメラであってもよいし、撮像対象部までの距離を画素ごとに示す距離画像を取得するToF(Time-of-Flight)カメラであってもよい。カメラ40は、2次元画像及び距離画像の両方を取得するカメラであってもよい。
【0023】
カメラ40は、カメラ40を基準とする座標系(以下、「カメラ座標系」という。)と、旋回部12を基準とする座標系(以下、「旋回座標系」という。)との関係が不変となるように旋回部12に固定されている。
図1に例示する旋回座標系は、X軸、Y軸及びZ軸を有する。Z軸は、鉛直上方に向かう座標軸である。Y軸は軸線52に沿った座標軸である。X軸は、Y軸及びZ軸に垂直な座標軸である。旋回座標系の原点は、軸線52と、後述の基準面43(
図2参照)との交点に位置する。以下においては、X軸正方向をロボット10の前方という。
図1に例示するカメラ座標系は、CX軸、CY軸及びCZ軸を有する。CX軸は、視野41の中心の光軸42に沿った座標軸であり、カメラ40から遠ざかる方向を正方向とする。CZ軸は、撮像素子に結像する画像の上方を正方向とする座標軸である。CY軸は、CX軸及びCZ軸に垂直な座標軸である。
【0024】
カメラ40は、旋回部12に内蔵(例えば外殻82内に収容)されていてもよい。例えばカメラ40は、外殻82内において、アクチュエータ72の前方に配置されている。外殻82の前部には、撮像用の窓82a(
図2参照)が形成されており、カメラ40は、窓82aを介して旋回部12の前斜め下方の画像を撮像する。
【0025】
旋回部12におけるカメラ40の配置は、多関節アーム20によるツール30の可動範囲31と、カメラ40の視野41とが重複するように設定されている。例えば、カメラ40の配置は、可動範囲31と視野41とが作業エリア5において重複するように設定されている。
【0026】
例えば、カメラ40は、軸線52に交差(例えば直交)する基準面43(
図2参照)に光軸42が沿うように旋回部12に固定されている。カメラ40は、基準面43において光軸42が斜め下方に向くように旋回部12に固定されていてもよい。一例として、カメラ40は、CX軸(光軸42)が斜め下方に向くように旋回部12に固定されている。具体的に、CX軸は、Y軸に垂直であり、CX軸の正方向は、X軸正方向及びZ軸負方向に向かっている。Y軸まわりでCX軸とX軸とのなす角は、例えば30~60度である。
【0027】
図2は、ロボット10をX軸正方向から見た正面図である。
図2に示すように、Y軸(軸線52)に沿う方向において、第1アーム21の可動範囲A1は、カメラ40の基準面43から離れていてもよい。例えば可動範囲A1は、基準面43に対してY軸負方向にオフセットしている。
【0028】
仮に、軸線52に沿う方向において可動範囲A1と基準面43とが一致する場合、第1アーム21の可動範囲内にカメラ40が位置することとなるので、第1アーム21の可動角を十分に確保するためには、軸線52をカメラ40よりも十分上方に配置する必要がある。このため、多関節アーム20が大型化することとなる。一方、多関節アーム20の大型化を抑制するためにカメラ40の配置高さを低くすると、カメラ40による撮像範囲が狭くなる。このように、多関節アーム20の省スペース化と、カメラ40の撮像範囲の広域化との両立が困難となる。これに対し、軸線52に沿う方向において可動範囲A1が基準面43から離れた構成によって、第1アーム21の可動範囲に影響を及ぼすことなくカメラ40の配置高さを高くし、カメラ40の撮像範囲の広域化を図ることが可能となっている。
図1において、カメラ40は、軸線52よりも下方に位置しているが、カメラ40を軸線52よりも上方に配置することも可能である。
【0029】
なお、軸線54に沿う方向において、第2アーム22の可動範囲A2が第1アーム21から離れていてもよい。更に、軸線56に沿う方向において、第3アーム23の可動範囲A3が第2アーム22から離れていてもよい。以下、軸線54に沿って第2アーム22の可動範囲A2が第1アーム21から離れる方向を、「第2アーム22のオフセット方向」という。軸線56に沿って第3アーム23の可動範囲A3が第2アーム22から離れる方向を、「第3アーム23のオフセット方向」という。
【0030】
図2は、第2アーム22のオフセット方向及び第3アーム23のオフセット方向が、いずれもY軸正方向に向けられた状態を示している。この状態において、第2アーム22の可動範囲A2は、基準面43と重なっていてもよい。また、第3アーム23の可動範囲A3は、基準面43から離れていてもよい。
【0031】
図1に戻り、ロボットシステム1は、基部11の周囲の作業エリア5においてワークWを支持する支持部2を更に備えてもよい。支持部2の上面2aは、旋回部12よりも下に位置していてもよく、基部11よりも下に位置していてもよい。
【0032】
コントローラ100は、ロボット10を制御する。例えばコントローラ100は、作業エリア5に配置されたワークWの画像をカメラ40から取得し、当該画像に基づいて動作指令を生成することと、動作指令に基づいて、ツール30による第1作業をワークWに対し実行するように多関節アーム20を制御することと、を実行するように構成されている。例えばコントローラ100は、機能上の構成(以下、「機能ブロック」という。)として、画像処理部112と、指令生成部113と、アーム制御部114と、旋回制御部111とを有する。
【0033】
画像処理部112は、カメラ40によるワークW(例えば支持部2上に配置されたワークW)の撮像画像に基づいて3次元空間におけるワークWの位置及び姿勢を算出する。例えば画像処理部112は、撮像画像内におけるワークWの形状及び大きさと、既知のワークWの3次元形状及び大きさとに基づいて、カメラ座標系におけるワークWの位置及び姿勢を算出し、算出結果に座標変換を施すことで旋回座標系におけるワークWの位置及び姿勢を算出する。
【0034】
なお、ロボット10は、立体視用に2つのカメラ40を備えていてもよい。この場合、画像処理部112は、2つのカメラ40によるワークWの撮像画像に基づいてカメラ座標系におけるワークWの位置及び姿勢を算出してもよい。
【0035】
指令生成部113は、ワークW(例えば支持部2上に配置されたワークW)のカメラ40による撮像画像に基づいて動作指令を生成する。動作指令は、例えば時系列の複数の命令を含む。各命令は、少なくともツール30の目標位置及び姿勢を含む。例えば指令生成部113は、画像処理部112が算出したワークWの位置及び姿勢に基づいて動作指令を生成する。
【0036】
一例として、ワークWをピックアップするための動作指令を生成する場合、指令生成部113は、画像処理部112が算出したワークWの位置及び姿勢に基づいて、当該ワークWを保持するためのツール30の目標位置及び目標姿勢(以下、「保持位置及び姿勢」という。)を算出し、ツール30を現在位置及び姿勢から保持位置及び姿勢まで変位させるように動作指令を算出する。更に、指令生成部113は、保持位置及び姿勢にてワークWを保持したツール30を、所定の持ち上げ位置及び姿勢まで変位させるように動作指令を算出する。
【0037】
アーム制御部114は、動作指令に基づいて、ツール30による第1作業をワークWに対し実行するように多関節アーム20を制御する。例えばアーム制御部114は、動作指令に従ってツール30を移動させるように、逆運動学演算によって関節62,63,64,65,66,67の動作角度を算出し、算出した動作角度に従って関節62,63,64,65,66,67を動作させるようにアクチュエータ72,73,74,75,76,77を制御する。
【0038】
また、アーム制御部114は、多関節アーム20によるツール30の変位に連動して、ツール30を動作させる。例えば、第1作業がワークWをピックアップする作業である場合、アーム制御部114は、保持位置及び姿勢にツール30が配置された場合に、ツール30にワークWを保持させる。
【0039】
旋回制御部111は、指令生成部113が動作指令を生成する前に、カメラ40がワークWに向くように旋回部12を旋回させ、その後、第1作業を多関節アーム20が完了させるまで旋回部12を停止させる。
【0040】
コントローラ100は、作業監視部115を更に有してもよい。作業監視部115は、多関節アーム20が第1作業を実行している期間中におけるワークWのカメラ40による撮像画像に基づいて第1作業におけるイレギュラー状態を検知する。第1作業がワークWをピックアップする作業である場合、イレギュラー状態の具体例としては、ワークWを保持する位置までツール30を移動させている最中におけるワークWの変位、ツール30によるワークWの保持不良等が挙げられる。
【0041】
作業監視部115がイレギュラー状態を検知した場合に、指令生成部113は、ワークWのカメラ40による撮像画像に基づいて動作指令を修正してもよい。例えば、ワークWを保持する位置までツール30を移動させている最中におけるワークWの変位が作業監視部115により検知された場合、指令生成部113は、画像処理部112が算出した変位後のワークWの位置及び姿勢に基づいて動作指令を修正する。ツール30によるワークWの保持不良が作業監視部115により検知された場合、アーム制御部114がツール30によるワークWの保持を解除させ、その後、画像処理部112が算出したワークWの位置及び姿勢に基づいて指令生成部113が動作指令を修正する。アーム制御部114は、修正後の動作指令に基づいて第1作業を多関節アーム20に継続させる。
【0042】
指令生成部113は、第1作業を多関節アーム20が実行している期間中における他のワークW(例えば支持部2上の他のワークW)のカメラ40による撮像画像に基づいて第2動作指令を更に生成してもよい。例えば、第1作業を多関節アーム20が実行している期間中における上記他のワークW(第2ワーク)のカメラ40による撮像画像に基づいて、画像処理部112が第2ワークの位置及び姿勢を算出する。指令生成部113は、画像処理部112による第2ワークの位置及び姿勢の算出結果に基づいて第2動作指令を算出する。アーム制御部114は、第1作業を多関節アーム20が実行した後に、第2動作指令に基づいて、ツール30による第2作業を第2ワークに対し実行するように多関節アーム20を制御する。
【0043】
第1作業がワークWをピックアップする作業である場合に、旋回制御部111は、第1作業により多関節アーム20がワークWをピックアップした状態で旋回部12を旋回させ、アーム制御部114は、旋回制御部111が旋回部12を旋回させている期間の少なくとも一部において、ピックアップ中のワークWをカメラ40の視野内に配置するように多関節アーム20を制御してもよい。
【0044】
この場合、コントローラ100は、保持状態監視部116を更に有してもよい。保持状態監視部116は、旋回制御部111が旋回部12を旋回させている期間中におけるピックアップ中のワークWのカメラ40による撮像画像に基づいて、ツール30によるワークWの保持状態を検査する。
【0045】
なお、以上に説明した各機能ブロックは、コントローラ100の構成要素であるから、各機能ブロックが実行する処理は、コントローラ100が実行する処理に相当する。
【0046】
図3は、コントローラ100のハードウェア構成を例示するブロック図である。
図3に示すように、コントローラ100は、回路190を有する。回路190は、一つ又は複数のプロセッサ191と、メモリ192と、ストレージ193と、画像処理回路194と、ドライバ回路195とを含む。ストレージ193は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ193は、作業エリア5に配置されたワークWの画像をカメラ40から取得し、当該画像に基づいて動作指令を生成することと、動作指令に基づいて、ツール30による第1作業をワークWに対し実行するように多関節アーム20を制御することと、をコントローラ100に実行させるプログラムを記憶している。
【0047】
メモリ192は、ストレージ193の記憶媒体からロードしたプログラム及びプロセッサ191による演算結果を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、コントローラ100の各機能ブロックを構成する。画像処理回路194は、プロセッサ191からの要求に従って、画像処理を実行する。画像処理の具体例としては、カメラ40から取得した撮像画像におけるワークWの形状及び大きさの認識等が挙げられる。ドライバ回路195は、プロセッサ191からの指令に従って、アクチュエータ71,72,73,74,75,76,77に駆動電力を出力する。
【0048】
なお、回路190は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路190は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。
【0049】
〔ロボットの制御手順〕
続いて、制御方法の一例として、コントローラ100が実行するロボット10の制御手順を例示する。この手順は、基部11と、基部11に対して旋回する旋回部12と、旋回部12に連結され、作業用のツール30の位置及び姿勢を変更する多関節アーム20と、を備えるロボット10の、基部11の周囲の作業エリア5に配置されたワークWの画像を、旋回部12に設けられたカメラ40から取得し、当該画像に基づいて動作指令を生成することと、動作指令に基づいて、ツール30による第1作業をワークWに対し実行するように多関節アーム20を制御することと、を含む。
【0050】
以下、1つの支持部2上において、複数のワークWに対するピックアンドプレース作業をロボット10に実行させる手順を例示する。この手順は、ワークWに対する第1作業を多関節アーム20が実行している期間中における、他のワークW(第2ワーク)のカメラ40による撮像画像に基づいて、第2動作指令を更に生成することと、第1作業を多関節アーム20が実行した後に、第2動作指令に基づいて、ツール30による第2作業を第2ワークに対し実行するように多関節アーム20を制御することとを含む。
【0051】
図4に示すように、コントローラ100は、まずステップS01,S02,S03,S04,S05,S06,S07,S08,S09,S11を実行する。ステップS01では、旋回制御部111が、支持部2上の複数のワークWにカメラ40が向くように旋回部12を旋回させ、複数のワークWにカメラ40が向いた状態で旋回部12を停止させる。以後、旋回制御部111は、複数のワークWに対するピックアンドプレース作業を多関節アーム20が完了させるまで、旋回部12を停止状態に維持する。
【0052】
ステップS02では、画像処理部112が、複数のワークWの撮像画像をカメラ40から取得する。ステップS03では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、いずれかのワークW(以下、「ターゲットワーク」という。)のカメラ座標系における位置及び姿勢を算出する。ステップS04では、画像処理部112が、カメラ座標系における位置及び姿勢に座標変換を施して、旋回座標系におけるターゲットワークの位置及び姿勢を算出する。
【0053】
ステップS05では、指令生成部113が、ターゲットワークの撮像画像に基づいて、ターゲットワークを保持するための動作指令を算出する(以下、「保持指令」という。)。例えば指令生成部113は、画像処理部112が算出したターゲットワークの位置及び姿勢に基づいて、ターゲットワークを保持するためのツール30の目標位置及び姿勢(上記保持位置及び姿勢)を算出する。ステップS06では、アーム制御部114が、保持指令に基づいて、保持位置及び姿勢にツール30を配置するように多関節アーム20を制御する。
【0054】
ステップS07では、画像処理部112が、ターゲットワークの撮像画像をカメラ40から取得する。ステップS08では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、ターゲットワークのカメラ座標系における位置及び姿勢を算出する。ステップS09では、画像処理部112が、カメラ座標系における位置及び姿勢に座標変換を施して、旋回座標系におけるターゲットワークの位置及び姿勢を算出する。
【0055】
ステップS11では、ターゲットワークの位置及び姿勢が正常範囲であるかを作業監視部115が確認する。例えば作業監視部115は、ステップS04において画像処理部112が算出したターゲットワークの位置及び姿勢と、ステップS09において画像処理部112が算出したターゲットワークの位置及び姿勢との差異が許容範囲内であるかを確認する。
【0056】
ステップS11においてターゲットワークの位置及び姿勢が正常範囲でないと判定した場合、コントローラ100は処理をステップS03に戻す。これにより、指令生成部113が、ターゲットワークの撮像画像に基づき保持指令を修正する。アーム制御部114は、修正後の保持指令に基づいて修正後の保持位置及び姿勢にツール30を配置するように多関節アーム20を制御する。
【0057】
ステップS11においてターゲットワークの位置及び姿勢が正常範囲であると判定した場合、コントローラ100は、ステップS12,S13,S14,S15,S16,S17,S18を実行する。ステップS12では、アーム制御部114が、ツール30にワークWを保持させる。
【0058】
ステップS13では、指令生成部113が、ターゲットワークを保持したツール30を、所定の持ち上げ位置及び姿勢まで変位させるように動作指令(以下、「持ち上げ指令」という。)を算出する。ステップS14では、アーム制御部114が、持ち上げ指令に基づいて、持ち上げ位置及び姿勢にツール30を配置するように多関節アーム20を制御する。
【0059】
ステップS15では、画像処理部112が、複数のワークWの撮像画像をカメラ40から取得する。ステップS16では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、ターゲットワークのカメラ座標系における位置及び姿勢を算出する。ステップS17では、画像処理部112が、カメラ座標系における位置及び姿勢に座標変換を施して、旋回座標系におけるターゲットワークの位置及び姿勢を算出する。
【0060】
ステップS18では、ターゲットワークの位置及び姿勢が正常範囲であるかを作業監視部115が確認する。例えば作業監視部115は、ツール30に対するターゲットワークの相対的な位置及び姿勢が正常範囲であるかを確認する。
【0061】
ステップS18においてターゲットワークの位置及び姿勢が正常範囲でないと判定した場合、コントローラ100はステップS19を実行する。ステップS19では、アーム制御部114が、ツール30によるワークWの保持を解除させる。アーム制御部114は、ツール30を持ち上げ位置及び姿勢から保持位置及び姿勢に戻すように多関節アーム20を制御した後に、ツール30によるワークWの保持を解除させてもよい。その後、コントローラ100は処理をステップS03に戻す。これにより、指令生成部113が、ターゲットワークの撮像画像に基づき保持指令を修正する。アーム制御部114は、修正後の保持指令に基づいて修正後の保持位置及び姿勢にツール30を配置するように多関節アーム20を制御する。
【0062】
ステップS18においてターゲットワークの位置及び姿勢が正常範囲であると判定した場合、コントローラ100は、
図5に示すようにステップS21,S22,S23を実行する。ステップS21では、指令生成部113が、ターゲットワークを搬送目標位置及び姿勢に配置するための目標位置及び姿勢(以下、「解放目標位置及び姿勢」という。)までツール30を変位させるように動作指令(以下、「搬送指令」という。)を算出する。ステップS22では、アーム制御部114が、搬送指令に基づいて、解放目標位置及び姿勢に向けたツール30の変位を開始するように多関節アーム20を制御する。ステップS23では、指令生成部113が、複数のワークWのうち未搬送のワークWが残っているかを確認する。
【0063】
ステップS23において未搬送のワークWが残っていると判定した場合、コントローラ100は、ステップS24,S25,S26,S27,S28,S29を実行する。ステップS24では、画像処理部112が、複数のワークWのうち未搬送のワークWの撮像画像をカメラ40から取得する。ステップS25では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、未搬送のワークWから次のターゲットワーク(第2ワーク)を選択し、次のターゲットワークのカメラ座標系における位置及び姿勢を算出する。ステップS26では、画像処理部112が、カメラ座標系における位置及び姿勢に座標変換を施して、旋回座標系における次のターゲットワークの位置及び姿勢を算出する。
【0064】
ステップS27では、指令生成部113が、次のターゲットワークの撮像画像に基づいて、次のターゲットワークの保持指令(第2動作指令)を算出する。例えば指令生成部113は、画像処理部112が算出した次のターゲットワークの位置及び姿勢に基づいて、次のターゲットワークを保持するためのツール30の目標位置及び姿勢(上記保持位置及び姿勢)を算出する。
【0065】
ステップS28では、ツール30が解放目標位置及び姿勢に到達するのをアーム制御部114が待機する。ステップS29では、アーム制御部114が、ツール30によるターゲットワークの保持を解除させる。その後、コントローラ100は処理をステップS06に戻す。これにより、ステップS27において算出された保持指令(第2動作指令)に基づいて、次のターゲットワークに対するピックアンドプレース作業が開始される。
【0066】
ステップS23において未搬送のワークWが残っていないと判定した場合、コントローラ100はステップS31,S32を実行する。ステップS31では、ツール30が解放目標位置及び姿勢に到達するのをアーム制御部114が待機する。ステップS32では、アーム制御部114が、ツール30によるターゲットワークの保持を解除させる。以上で複数のワークWに対するピックアンドプレース作業が完了する。
【0067】
(制御手順の変形例)
以下、支持部2上においてワークWに対するピックアップ作業をロボット10に実行させ、その後旋回部12を旋回させ、その後ワークWを所定の搬送目標位置及び姿勢まで搬送してドロップオフする作業をロボット10に実行させる手順を例示する。この手順は、第1作業により多関節アーム20がワークWをピックアップした状態で旋回部12を旋回させることと、旋回制御部111が旋回部12を旋回させている期間の少なくとも一部において、ピックアップ中のワークWをカメラ40の視野内に配置するように多関節アーム20を制御することと、旋回制御部111が旋回部12を旋回させている期間中におけるピックアップ中のワークWのカメラ40による撮像画像に基づいて、ツール30によるワークWの保持状態を検査することとを含む。この手順において、ワークWに対するピックアップ作業をロボット10に実行させる手順については、上述したステップS01~S19と同じであるため説明を省略する。
【0068】
ステップS18においてターゲットワークの位置及び姿勢が正常範囲であると判定した場合、コントローラ100は、
図6に示すようにステップS41,S42,S43,S44,S45,S46,S47を実行する。ステップS41では、旋回制御部111が、ターゲットワークの搬送目標位置にカメラ40が向くように旋回部12を旋回させることを開始する。ステップS42では、アーム制御部114が、ピックアップ中のターゲットワークをカメラ40の視野41内に配置するように多関節アーム20を制御する。
【0069】
ステップS43では、画像処理部112が、複数のワークWの撮像画像をカメラ40から取得する。ステップS44では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、ターゲットワークのカメラ座標系における位置及び姿勢を算出する。ステップS45では、画像処理部112が、カメラ座標系における位置及び姿勢に座標変換を施して、旋回座標系におけるターゲットワークの位置及び姿勢を算出する。
【0070】
ステップS46では、保持状態監視部116が、ステップS45において算出されたターゲットワークの位置及び姿勢に基づいて、ツール30によるワークWの保持状態を検査する。例えば保持状態監視部116は、ツール30に対するワークWの相対的な位置及び姿勢を算出する。なお、ピックアップの完了時点でのワークWがカメラ40の視野41内に位置し、ツール30によるワークWの保持状態の検査用の撮像画像を取得可能であれば、ステップS42を省略可能である。
【0071】
ステップS47では、ターゲットワークの搬送目標位置にカメラ40が向くまで旋回部12が旋回したかを旋回制御部111が確認する。ステップS47においてターゲットワークの搬送目標位置にカメラ40が向くまで旋回部12が旋回していないと判定した場合、コントローラ100は処理をステップS43に戻す。以後、搬送目標位置にカメラ40が向くまでは、ツール30によるワークWの保持状態の検査が繰り返される。
【0072】
ステップS47においてターゲットワークの搬送目標位置にカメラ40が向くまで旋回部12が旋回したと判定した場合、コントローラ100は、ステップS48,S51,S52,S53,S54,S55,S56,S57を実行する。ステップS48では、旋回制御部111が、旋回部12の旋回を停止させる。以後、旋回制御部111は、ターゲットワークを搬送目標位置及び姿勢まで搬送してドロップオフする作業を多関節アーム20が完了させるまで、旋回部12を停止状態に維持する。
【0073】
ステップS51では、アーム制御部114が、ピックアップ中のターゲットワークをカメラ40の視野41内から退避させるように多関節アーム20を制御する。ステップS52では、画像処理部112が、搬送目標位置の撮像画像をカメラ40から取得する。なお、ワークWがカメラ40の視野41内にあっても、搬送目標位置の撮像画像を取得可能であれば、ステップS51を省略可能である。ステップS53では、画像処理部112が、カメラ40から取得した撮像画像に基づいて、カメラ座標系における搬送目標位置及び姿勢を算出する。ステップS54では、画像処理部112が、カメラ座標系における搬送目標位置及び姿勢に座標変換を施して、旋回座標系における搬送目標位置及び姿勢を算出する。
【0074】
ステップS55では、上記解放目標位置及び姿勢までツール30を変位させるように上記搬送指令を算出する。ステップS56では、アーム制御部114が、搬送指令に基づいて、解放目標位置及び姿勢にツール30を変位させるように多関節アーム20を制御する。ステップS57では、アーム制御部114が、ツール30によるワークWの保持を解除させる。以上でターゲットワークのピックアンドプレース作業が完了する。
【0075】
〔本実施形態の効果〕
以上に説明したように、ロボット10は、基部11と、基部11に対して旋回する旋回部12と、旋回部12に連結され、作業用のツール30の位置及び姿勢を変更する多関節アーム20と、旋回部12に固定されたカメラ40と、を備え、多関節アーム20によるツール30の可動範囲31と、カメラ40の視野41とが重複している。
【0076】
このロボット10では、カメラ40が旋回部12に設けられる。これにより、カメラ40とロボット10とが一体化されることによって、システム構成の簡素化が可能となる。また、多関節アーム20によるツール30の可動範囲と、カメラ40の視野範囲とが重複している。これにより、ツール30と、ツール30による作業対象物(上記ワークW)との両方を含む画像をカメラ40から取得することができる。このため、カメラ40の画像をロボット10の制御に有効活用し易い。従って、このロボット10は、カメラ画像のロボット制御への有効活用と、システム構成の簡素化との両立に有効である。
【0077】
多関節アーム20は6以上の自由度を有していてもよい。この場合、ブレのない画像をカメラ40から取得しながら、ツール30の位置、姿勢を多関節アーム20によって自在に調節することができる。
【0078】
多関節アーム20は、旋回部12に連結され、旋回部12の旋回中心軸線に交差する軸線52まわりに揺動する第1アーム21と、第1アーム21の先端部に連結され、第1アーム21に沿った軸線53まわりに旋回し、軸線53に交差する軸線54まわりに揺動する第2アーム22と、第2アーム22の先端部に連結され、第2アーム22に沿った軸線55まわりに旋回し、軸線55に交差する軸線56まわりに揺動する第3アーム23と、第3アーム23の先端部に設けられ、ツール30を保持し、第3アーム23に沿った軸線57まわりに旋回するツール保持部24と、を有していてもよい。この場合、簡素な構成にて多関節アーム20に6自由度を付与することができる。
【0079】
第1アーム21と、視野41の中心の光軸42は、軸線52に交差する基準面43に沿っており、第1アーム21の可動範囲A1は、軸線52に沿う方向において基準面43から離れていてもよい。この場合、第1アーム21の基端部を視野41の中心から外すことで、多関節アーム20による死角が形成され難い。
【0080】
ロボットシステム1は、ロボット10と、ワークWのカメラ40による撮像画像に基づいて動作指令を生成する指令生成部113と、動作指令に基づいて、ツール30による第1作業をワークWに対し実行するように多関節アーム20を制御するアーム制御部114と、を備える。この場合、カメラ40の画像をロボット10の制御に有効活用することができる。
【0081】
ロボットシステム1は、多関節アーム20が第1作業を実行している期間中におけるワークWのカメラ40による撮像画像に基づいて第1作業におけるイレギュラー状態を検知する作業監視部115を更に備えていてもよい。この場合、カメラ40の画像をロボット10の制御に更に有効活用することができる。
【0082】
指令生成部113は、作業監視部115がイレギュラー状態を検知した場合に、ワークWのカメラ40による撮像画像に基づいて動作指令を修正し、アーム制御部114は、修正後の動作指令に基づいて第1作業を多関節アーム20に継続させてもよい。この場合、カメラ40の画像をロボット10の制御に更に有効活用することができる。
【0083】
指令生成部113は、第1作業を多関節アーム20が実行している期間中における他のワークW(第2ワーク)のカメラ40による撮像画像に基づいて第2動作指令を更に生成し、アーム制御部114は、第2動作指令に基づいて、ツール30による第2作業を第2ワークに対し実行するように多関節アーム20を制御してもよい。この場合、第1作業の実行中に、第2ワークの画像を取得することによって、第1ワーク及び第2ワークに対する作業時間の短縮化を図ることができる。
【0084】
ロボットシステム1は、指令生成部113が動作指令を生成する前に、カメラ40がワークWに向くように旋回部12を旋回させ、その後、第1作業を多関節アーム20が完了させるまで旋回部12を停止させる旋回制御部111を更に備えていてもよい。この場合、第1作業中にもブレのない画像をカメラ40から取得することができる。従って、カメラ40の画像をロボット10の制御に更に有効活用することができる。
【0085】
第1作業は、ワークWをピックアップする作業であり、旋回制御部111は、第1作業により多関節アーム20がワークWをピックアップした状態で旋回部12を旋回させ、アーム制御部114は、旋回制御部111が旋回部12を旋回させている期間の少なくとも一部において、ピックアップ中のワークWをカメラ40の視野41内に配置するように多関節アーム20を制御してもよい。この場合、旋回部12の旋回が、ピックアップ中のワークWとカメラ40との相対的な位置関係に影響を及ぼさないことを利用して、カメラ40の画像をロボット10の制御に更に有効活用することができる。
【0086】
ロボットシステム1は、旋回制御部111が旋回部12を旋回させている期間中におけるピックアップ中のワークWのカメラ40による撮像画像に基づいて、ツール30によるワークWの保持状態を検査する保持状態監視部116を更に備えていてもよい。この場合、旋回中にカメラ40から取得した画像を更に有効活用することができる。
【0087】
ロボットシステム1は、カメラ40によるワークWの撮像画像に基づいて、3次元空間におけるワークWの位置及び姿勢を算出する画像処理部112を更に有し、指令生成部113は、画像処理部112が算出したワークWの位置及び姿勢に基づいて動作指令を生成してもよい。この場合、カメラ40からの画像をロボット10の制御に更に有効活用することができる。
【0088】
旋回部12は基部11の上に設けられ、カメラ40は、視野41の中心の光軸42が斜め下方に向くように旋回部12に設けられていてもよい。この場合、カメラ40がワークWを斜め上方から斜視するので、ツール30と、ワークWとの両方を含む画像を取得し易い。
【0089】
ロボットシステム1は、基部11の周囲においてワークWを支持する支持部2を更に備え、支持部2の上面2aは、旋回部12よりも下に位置していてもよい。この場合、ツール30と、ワークWとの両方を含む画像を更に取得し易い。
【0090】
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。
【符号の説明】
【0091】
1…ロボットシステム、2…支持部、2a…上面、5…作業エリア、10…ロボット、11…基部、12…旋回部、20…多関節アーム、21…第1アーム、22…第2アーム、23…第3アーム、24…ツール保持部、30…ツール、31…ツール30の可動範囲、40…カメラ、41…視野、42…光軸、43…基準面、51…軸線(旋回部12の旋回中心軸線)、52…軸線(第1軸線)、53…軸線(第2軸線)、54…軸線(第3軸線)、55…軸線(第4軸線)、56…軸線(第5軸線)、57…軸線(第6軸線)、111…旋回制御部、112…画像処理部、113…指令生成部、114…アーム制御部、115…作業監視部、116…保持状態監視部、A1…第1アーム21の可動範囲、W…ワーク。