(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023068343
(43)【公開日】2023-05-17
(54)【発明の名称】情報処理装置、ロボットの制御方法、プログラム、移動体及びロボットシステム
(51)【国際特許分類】
B25J 9/22 20060101AFI20230510BHJP
【FI】
B25J9/22 A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2021179354
(22)【出願日】2021-11-02
(71)【出願人】
【識別番号】000116079
【氏名又は名称】ローレルバンクマシン株式会社
(71)【出願人】
【識別番号】500267170
【氏名又は名称】ローレル機械株式会社
(71)【出願人】
【識別番号】500265501
【氏名又は名称】ローレル精機株式会社
(74)【代理人】
【識別番号】110003177
【氏名又は名称】弁理士法人旺知国際特許事務所
(72)【発明者】
【氏名】中西 秀行
(72)【発明者】
【氏名】繁田 知秀
(72)【発明者】
【氏名】小島 宏幸
(72)【発明者】
【氏名】山縣 芳和
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707CY40
3C707JU07
3C707KS24
3C707KT03
3C707KT15
3C707KX19
3C707LS02
3C707LS06
3C707LV04
3C707LV05
3C707MS28
3C707MT01
(57)【要約】
【課題】ロボットに動作を教示する場合に、作業者の負担が増加することを抑制する。
【解決手段】ロボットコントローラ10は、端末装置30の位置を示す位置情報PINF、及び、端末装置30の姿勢を示す姿勢情報PINFを取得する情報取得部121と、情報取得部121が取得した位置情報PINF及び姿勢情報PINFに基づいて、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成する情報生成部122と、を備えている。
【選択図】
図3
【特許請求の範囲】
【請求項1】
空間上の複数の位置にロボットとは独立して順に移動して配置する移動体の、各位置における位置情報、または前記各位置における位置情報及び前記各位置における姿勢情報を取得する取得部と、
前記取得部が取得した複数の前記位置情報、または前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、
を備えていることを特徴とする情報処理装置。
【請求項2】
前記位置情報及び前記軌道情報または、前記位置情報、前記姿勢情報及び前記軌道情報に基づいて、前記ロボットを動作させる制御部をさらに備えていることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記位置情報により示される位置、または前記位置情報により示される位置及び前記姿勢情報により示される姿勢を補正するための補正情報の入力を受け付ける操作部をさらに備えており、前記制御部は、前記補正情報に基づいて前記軌道情報を補正することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
ロボット、移動体、検出手段及び情報処理装置を有するロボットシステムにおいて、
前記移動体は、
前記移動体の姿勢情報を検知する慣性センサと、
少なくとも前記情報処理装置と通信する通信部と、
を有しており、
前記検出手段は、
前記移動体を検出することで前記移動体の位置情報を検知する検知部と、
少なくとも前記情報処理装置と通信する通信部と、
を有しており、
前記情報処理装置は、
前記移動体が空間上の複数の位置において検知した、姿勢情報および位置情報を取得する取得部と、
前記取得部が取得した複数の前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、
前記軌道情報に基づいて、前記ロボットを動作させる制御部と、
を備えていることを特徴とするロボットシステム。
【請求項5】
ロボット、移動体及び情報処理装置を有するロボットシステムにおいて、
前記移動体は、
前記移動体の位置情報、または姿勢情報および位置情報を検知する慣性センサと、
少なくとも前記情報処理装置と通信する通信部と、
を有しており、
前記情報処理装置は、
前記移動体が空間上の複数の位置において検知した、位置情報、または姿勢情報および位置情報を取得する取得部と、
前記取得部が取得した複数の前記位置情報、または前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、
前記軌道情報に基づいて、前記ロボットを動作させる制御部と、
を備えていることを特徴とするロボットシステム。
【請求項6】
ロボット、移動体、検出手段及び情報処理装置を有するロボットシステムにおいて、
前記移動体は、
少なくとも前記情報処理装置と通信する通信部を有しており、
前記検出手段は、
前記移動体を検出することで前記移動体の位置情報、または位置情報および姿勢情報を検知する撮像検出部と、
少なくとも前記情報処理装置と通信する通信部と、
を有しており、
前記情報処理装置は、
前記移動体が空間上の複数の位置において検知した、位置情報、または位置情報および姿勢情報を取得する取得部と、
前記取得部が取得した複数の前記位置情報、または前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置、または位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、
前記軌道情報に基づいて、前記ロボットを動作させる制御部と、
を備えていることを特徴とするロボットシステム。
【請求項7】
ロボット、移動体及び情報処理装置を有するロボットシステムにおいて、
前記移動体は、
前記移動体の姿勢情報を検知する慣性センサと、
前記ロボットの所定の位置との相対的な位置関係が既知である位置に配置されたマークを撮像し、前記ロボットとの相対位置情報を検知する撮像手段と、
少なくとも前記情報処理装置と通信する通信部と、
を有しており、
前記情報処理装置は、
前記移動体が空間上の複数の位置において検知した、姿勢情報および位置情報を取得する取得部と、
前記取得部が取得した複数の前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、
前記軌道情報に基づいて、前記ロボットを動作させる制御部と、
を備えていることを特徴とするロボットシステム。
【請求項8】
前記移動体または前記情報処理装置には、前記位置情報、または前記位置情報及び前記姿勢情報の検知を実行することを指示する操作部が設けられていることを特徴とする請求項4、6、7のいずれか1つに記載のロボットシステム。
【請求項9】
空間上の複数の位置に順にロボットとは独立して移動して配置した移動体の、各位置における位置情報、及び前記各位置における姿勢情報を取得し、
前記取得した複数の前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成することを特徴とするロボットの制御方法。
【請求項10】
前記複数の位置の少なくとも1つの位置に前記ロボットを移動させ、前記少なくとも1つの位置における前記位置情報および前記姿勢情報を補正することで、前記軌道情報を補正、または補正した前記位置情報および前記姿勢情報により前記軌道情報を生成することを特徴とする請求項9に記載のロボットの制御方法。
【請求項11】
前記位置情報、前記姿勢情報及び前記軌道情報に基づいて、前記ロボットを動作させることを特徴とする請求項9または10に記載のロボットの制御方法。
【請求項12】
ロボットを動作させるプロセッサにより、
空間上の複数の位置に順に移動して配置した移動体の、各位置における位置情報、及び前記各位置における姿勢情報を取得し、
前記取得した複数の前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成することを特徴とするプログラム。
【請求項13】
ロボットの動作する軌道情報を生成するための複数の位置を前記ロボットとは独立して移動する移動体において、
前記複数の位置における前記移動体の位置情報または位置情報と姿勢情報を検知する慣性センサと、
少なくとも前記ロボットを動作させる情報処理装置と通信する通信部と、
を有しており、
前記移動体が空間上の複数の位置において検知した、前記姿勢情報および前記位置情報に基づいて、前記ロボットの動作する軌道情報が生成されることを特徴とする移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、ロボットの制御方法、プログラム、移動体及びロボットシステムに関する。
【背景技術】
【0002】
産業用ロボット等のロボットに動作を教示する方法として、ダイレクトティーチングが知られている(例えば、特許文献1参照)。ダイレクトティーチングは、例えば、作業者がロボットを手動で直接動かすことにより、ロボットに動作点を覚えさせる教示方法である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、ダイレクトティーチングでは、ロボットの重量及び大きさ等によっては作業者の体力的及び時間的な負担が増加する問題がある。
【課題を解決するための手段】
【0005】
本発明の好適な態様に係る情報処理装置は、空間上の複数の位置にロボットとは独立して順に移動して配置する移動体の、各位置における位置情報、または前記各位置における位置情報及び前記各位置における姿勢情報を取得する取得部と、前記取得部が取得した複数の前記位置情報、または前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する生成部と、を備えている。
【0006】
本発明の好適な態様に係るロボットの制御方法は、空間上の複数の位置に順にロボットとは独立して移動して配置した移動体の、各位置における位置情報、及び前記各位置における姿勢情報を取得し、前記取得した複数の前記位置情報及び前記姿勢情報に基づいて、ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する。
【0007】
本発明の好適な態様に係るプログラムは、ロボットを動作させるプロセッサにより、空間上の複数の位置に順に移動して配置した移動体の、各位置における位置情報、及び前記各位置における姿勢情報を取得し、前記取得した複数の前記位置情報及び前記姿勢情報に基づいて、前記ロボットの特定部分の位置及び姿勢を順に規定することで、前記ロボットの動作する軌道情報を生成する。
【0008】
本発明の好適な態様に係るロボットシステムは、ロボット、移動体及び情報処理装置を備え、前記情報処理装置は、前記移動体の位置を示す位置情報、または前記移動体の位置を示す位置情報と前記移動体の姿勢を示す姿勢情報を取得する取得部と、前記取得部が取得した前記位置情報または前記位置情報と前記姿勢情報に基づいて、前記ロボットの特定部分の位置または位置と姿勢を規定する動作情報を生成する生成部と、を備えている。
本発明の好適な態様に係る移動体は、ロボットの動作する軌道情報を生成するための複数の位置を前記ロボットとは独立して移動する移動体において、前記複数の位置における前記移動体の位置情報または位置情報と姿勢情報を検知する慣性センサと、少なくとも前記ロボットを動作させる情報処理装置と通信する通信部とを有しており、前記移動体が空間上の複数の位置において検知した、前記姿勢情報および前記位置情報に基づいて、前記ロボットの動作する軌道情報が生成される。
【発明の効果】
【0009】
本発明によれば、ロボットに動作を教示する場合に、作業者の負担が増加することを抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るロボットシステムの概要を説明するための説明図である。
【
図2】
図1に示したロボットコントローラのハードウェア構成の一例を示す図である。
【
図3】
図1に示したロボットコントローラの構成の一例を示す機能ブロック図である。
【
図4】
図1に示した端末装置のハードウェア構成の一例を示す図である。
【
図5】
図1に示した端末装置の構成の一例を示す機能ブロック図である。
【
図6】
図1に示したロボットシステムの動作の一例を示すシーケンスチャートである。
【
図7】
図2に示した動作テーブルの一例を示す説明図である。
【
図8】操作画面の一例を説明するための説明図である。
【
図9】
図1に示したロボットコントローラの動作の一例を示すフローチャートである。
【
図10】第1変形例に係るロボットシステムの動作の一例を示すシーケンスチャートである。
【
図11】第1変形例に係るロボットコントローラの動作の一例を示すフローチャートである。
【
図12】第3変形例に係るロボットシステムの概要を説明するための説明図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について図面を参照して説明する。なお、各図において、各部の寸法及び縮尺は、実際のものと適宜に異ならせてある。また、以下に述べる実施の形態は、本発明の好適な具体例であるから、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。
【0012】
[1.実施形態]
先ず、
図1を参照しながら、実施形態に係るロボットシステム1の概要の一例について説明する。
【0013】
図1は、実施形態に係るロボットシステム1の概要を説明するための説明図である。
【0014】
なお、以下では、説明の便宜上、現実空間に固定されたワールド座標系ΣWと、撮像装置(検出装置)40に固定された撮像座標系ΣCとを導入する。ワールド座標系ΣWは、例えば、現実空間の所定の位置に原点を有し、互いに直交するXw軸、Yw軸、及び、Zw軸を有する3軸の直交座標系である。本実施形態では、ワールド座標系ΣWの原点である所定の位置が位置Opである場合を想定する。位置Opは、例えば、後述するロボット20の土台部BSPの中心である。また、本実施形態では、Xw-Zw平面が、土台部BSPが固定される床に平行である場合を想定する。また、撮像座標系ΣCは、例えば、撮像装置40の所定の位置に原点を有し、互いに直交するXc軸、Yc軸、及び、Zc軸を有する3軸の直交座標系である。本実施形態では、Zc軸が、撮像装置40が有する光学系の光軸と平行である場合を想定する。以下では、撮像装置40が有する光学系の光軸は、単に、撮像装置40の光軸とも称される。
【0015】
図1に示すロボットシステム1は、例えば、ロボット20の動作を制御するロボット制御ロボットシステムである。例えば、ロボットシステム1は、ロボットコントローラ10、ロボット20、端末装置30及び撮像装置40を有する。ロボットコントローラ10は、「情報処理装置」の一例であり、端末装置30は、「移動体」の一例である。
【0016】
図1に示すロボットコントローラ10及びロボット20は、例えば、有線を用いた接続により、互いに通信可能に接続されている。なお、ロボットコントローラ10とロボット20との接続は、無線を用いた接続であってもよいし、有線及び無線の両方を用いた接続であってもよい。
【0017】
また、ロボットコントローラ10、端末装置30及び撮像装置40は通信部を有しており、互いに通信可能に接続されている。本実施形態では、ロボットコントローラ10、端末装置30及び撮像装置40間の通信が、Bluetooth(登録商標)及びWi-Fi(登録商標)等の近距離無線通信である場合を想定する。なお、ロボットシステム1に含まれる複数の要素間の接続は、複数の要素間を互いに通信可能にする接続であればよく、有線ネットワーク及び無線ネットワークの一方又は両方を含むネットワークを用いた接続であってもよい。
【0018】
ロボットコントローラ10としては、他の装置と通信可能な任意の情報処理装置を採用することができる。ロボットコントローラ10は、例えば、ロボット20の動作を制御する。ロボットコントローラ10の構成は、後述する
図2及び
図3において説明される。
【0019】
ロボット20は、例えば、工場等に設置される多関節ロボットである。例えば、ロボット20は、土台部BSPと、ボディ部BDPと、複数のアーム部AP(AP1、AP2、AP3及びAP4)と、先端部HPとを有する。先端部HPは、「特定部分」の一例である。
【0020】
土台部BSPは、床等の所定の場所に固定される。ボディ部BDPは、回転軸AX1を軸として回転可能に土台部BSPに接続される。アーム部AP1は、回転軸AX2を軸として回転可能にボディ部BDPに接続される。アーム部AP2は、回転軸AX3を軸として回転可能にアーム部AP1に接続される。アーム部AP3は、回転軸AX4を軸として回転可能にアーム部AP2に接続される。アーム部AP4は、回転軸AX5を軸として回転可能にアーム部AP3に接続される。但し、アーム部AP1、AP2、AP3及びAP4の各々の回転角度は、360度未満に制限される。
【0021】
また、先端部HPは、第1先端部HP1と、第1先端部HP1に接続された第2先端部HP2とを有する。第1先端部HP1は、回転軸Hyを軸として回転可能にアーム部AP4に接続される。また、第1先端部HP1は、回転軸Hxを軸として回転可能である。第2先端部HP2は、回転軸Hzを軸として回転可能に第1先端部HP1に接続される。但し、第1先端部HP1が回転軸Hxを軸として回転する場合の回転角度は、360度未満に制限される。同様に、第2先端部HP2が回転軸Hzを軸として回転する場合の回転角度は、360度未満に制限される。
【0022】
ここで、第2先端部HP2は、第1先端部HP1に接続されているため、第1先端部HP1が回転軸Hy又は回転軸Hxを軸として回転した場合、第1先端部HP1と一緒に回転する。すなわち、第2先端部HP2は、回転軸Hx、Hy及びHzの各々を軸として回転可能である。
【0023】
なお、本実施形態では、ロボット20が床等の所定の場所に固定される場合を想定するが、ロボット20は、所定の場所に固定されずに、ロボット20自体が移動可能であってもよい。ロボット20自体が移動する場合、ロボット20本体の原点(例えば、重心又は中心等)を「特定部分」として捉えてもよい。
【0024】
端末装置30としては、信号を送信可能な任意の可搬型の情報処理装置を採用することができる。例えば、端末装置30は、リモートコントローラ及びスマートフォン等の可搬型の情報端末であってもよい。端末装置30は、例えば、所定の作業を実行するロボット20の先端部HPの位置及び姿勢を規定する場合に、作業者Uに把持され、所定の作業に対応する移動経路(軌道情報)に沿うように、作業者Uによりロボットとは独立して移動させられる。作業者Uは、「ユーザ」の一例である。なお、ロボット20の先端部HPの位置は、例えば、ロボット20の動作点に対応する。また、所定の作業に対応する移動経路は、例えば、所定の作業を実行するロボット20の先端部HPの移動経路として規定される経路である。すなわち、作業者Uは、所定の作業に対応する移動経路に沿うように端末装置30を移動させることにより、所定の作業に対応する先端部HPの軌道をロボット20に教示(ティーチング)する。
【0025】
例えば、作業者Uが端末装置30を移動させる作業では、作業者Uがロボット20を手動で直接動かす作業に比べて、作業者Uの体力的及び時間的な負担が軽減される。従って、本実施形態では、作業者Uがロボット20を手動で直接動かす態様に比べて、ロボット20に軌道を教示する場合における作業者Uの体力的及び時間的な負担が増加することを抑制することができる。
【0026】
なお、本実施形態では、端末装置30の姿勢等の説明を分かり易くするために、端末装置30の形状が直方体である場合を想定する。また、以下では、便宜上、互いに直交するXm軸、Ym軸、及び、Zm軸を用いて、端末装置30の姿勢等が説明される。例えば、Xm軸は、位置Pを通り、面SF3に垂直な軸であり、Ym軸は、位置Pを通り、面SF1に垂直な軸であり、Zm軸は、端末装置30の位置Pを通り、面SF2に垂直な軸である。位置Pは、例えば、端末装置30の面SF1の中心である。なお、端末装置30の形状は直方体に限定されない。
【0027】
端末装置30の位置は、例えば、端末装置30の位置Pの座標で表される。また、端末装置30の姿勢は、例えば、Xm軸を軸として回転した場合のXm軸の回転角度、Ym軸を軸として回転した場合のYm軸の回転角度、及び、Zm軸を軸として回転した場合のZm軸の回転角度を用いて表される。なお、本実施形態では、Xm軸がXw軸と平行であり、Ym軸がYw軸と平行であり、かつ、Zm軸がZw軸と平行である場合の端末装置30の姿勢を基準(0度)にして、Xm軸の回転角度、Ym軸の回転角度及びZm軸の回転角度が表される場合を想定する。
【0028】
また、ロボット20の先端部HPの位置は、例えば、第2先端部HP2の面SFhの中心の座標で表される。以下では、第2先端部HP2の面SFhは、先端部HPの面SFhとも称される。また、先端部HPの姿勢は、回転軸Hxを軸として回転した場合の回転軸Hxの回転角度、回転軸Hyを軸として回転した場合の回転軸Hyの回転角度、及び、回転軸Hzを軸として回転した場合の回転軸Hzの回転角度を用いて表される。なお、本実施形態では、回転軸HxがXw軸と平行であり、回転軸HyがYw軸と平行であり、かつ、回転軸HzがZw軸と平行である場合の先端部HPの姿勢を基準(0度)にして、回転軸Hxの回転角度、回転軸Hyの回転角度及び回転軸Hzの回転角度が表される場合を想定する。
【0029】
本実施形態では、端末装置30の位置が撮像装置40により算出され、端末装置30の姿勢が端末装置30により算出される場合を想定する。端末装置30の構成は、後述する
図4において説明されるが、例えば、端末装置30は、端末装置30の姿勢を検出するための慣性センサ38を有する。また、
図1に示す端末装置30では、撮像装置40が端末装置30を容易に認識できるように、互いに異なる2つのマークMK(MK1及びMK2)が面SF2に設けられている。例えば、撮像装置40は、端末装置30を撮像した画像内のマークMKを認識することにより、画像全体のうちの端末装置30を示す部分を容易に認識できる。なお、マークMKの数は1つでもよい。マークMKが位置が既知である1つのマークの場合は、マークMKの画面内の位置と、後出する慣性センサ38により検出される端末装置30の姿勢から、端末装置30の中心となる位置Pを算出することができる。またマークMKが位置が既知の2つ以上のマークであれば、2つのマークMKから端末装置30の中心となる位置Pを算出することができる。また、マークMKの数が少ない場合、何らかの理由で、撮像装置40よりマークMKを撮像できない事も想定されるため、マークMKは、端末装置30の複数の面に設けておくことが好ましい。また、LED(Light Emitting Diode)等の発光素子がマークMKとして採用されてもよい。
【0030】
撮像装置40は、カメラ等の光学的な手段により被写体を撮像するためのハードウェアである。本実施形態では、撮像装置40が3次元カメラである場合を想定する。3次元カメラは、奥行き(対象物までの距離)を算出可能なカメラである。例えば、撮像装置40は、端末装置30を撮像することにより、撮像座標系ΣCにおける端末装置30の位置を算出する。そして、撮像装置40は、端末装置30の位置を示す座標を撮像座標系ΣCからワールド座標系ΣWに変換し、ワールド座標系ΣWにおける端末装置30の位置を示す位置情報をロボットコントローラ10に送信する。なお、本実施形態では、撮像座標系ΣCの座標をワールド座標系ΣWの座標に変換するためのパラメータ等の情報が既知である場合を想定する。また、撮像座標系ΣCにおける端末装置30の位置をワールド座標系ΣWにおける端末装置30の位置に変換する座標変換は、ロボットコントローラ10により実行されてもよい。また、撮像装置40が撮像するタイミングは、端末装置30もしくはロボットコントローラ10からの信号により実行される。
【0031】
このように、本実施形態では、撮像装置40は、端末装置30と撮像装置40との距離を測定する測距装置として用いられる。距離の測定方式としては、TOF(Time Of Flight)方式、FMCW(Frequency Modulated Continuous Wave)方式、及び、ステレオカメラ方式等の既知の方式を採用することができる。
【0032】
TOF方式は、測距装置(例えば、撮像装置40)が赤外光等の光を対象物に投射してから、対象物で反射した反射光を測距装置が受信するまでの時間に基づいて、対象物までの距離を測定する方式である。FMCW方式は、測距装置から送信された送信信号と、対象物で反射した反射信号(測距装置で受信した受信信号)との周波数差に基づいて対象物までの距離を測定する方式である。例えば、距離を測定するセンサとして、TOF方式のLiDAR(Light Detection and Ranging、あるいは、Laser Imaging Detection and Ranging)、又は、FMCW方式のLiDARが採用されてもよい。また、ステレオカメラ方式は、2つのカメラで同一の対象物を撮影した場合の視差に基づいて、対象物までの距離を測定する方式である。なお、距離の測定方式は、上述の例に限定されない。
【0033】
本実施形態では、例えば、ロボットコントローラ10は、端末装置30の位置を示す位置情報を撮像装置40から取得し、端末装置30の姿勢を示す姿勢情報を端末装置30から取得する。そして、ロボットコントローラ10は、撮像装置40から取得した位置情報、及び、端末装置30から取得した姿勢情報に基づいて、ロボット20の先端部HPの位置及び姿勢を規定する。ロボット20の先端部HPの位置及び姿勢の規定方法は、後述する
図6において説明される。
【0034】
なお、ロボットシステム1の構成は、
図1に示した例に限定されない。例えば、ロボットコントローラ10は、ロボット20に含まれてもよい。また、例えば、撮像装置40は、ロボット20に設けられてもよい。また、例えば、ロボット20は、端末装置30及び撮像装置40と通信可能に接続されてもよい。この場合、端末装置30及び撮像装置40の各々とロボット20との接続は、有線及び無線の一方を用いた接続であってもよいし、有線及び無線の両方を用いた接続であってもよい。
【0035】
また、撮像装置40は、端末装置30のXm軸が撮像装置40の光軸に直交していると仮定して算出された端末装置30と撮像装置40との距離の誤差が許容範囲内である場合、単眼カメラでもよい。この場合、撮像装置40は、例えば、端末装置30のXm軸が撮像装置40の光軸に直交していると仮定し、マークMK1及びMK2間の既知の距離と画像内のマークMK1及びMK2の位置と焦点距離とに基づいて、端末装置30と撮像装置40との距離を算出する。なお、焦点距離は、撮像装置40が有する光学系の焦点距離であり、既知の情報である。また、例えば、ロボットコントローラ10が、GPS(Global Positioning System)衛星から送信される衛星信号に基づいて端末装置30の位置を特定でき、かつその精度が目的に対して十分である場合、撮像装置(検出装置)40に替えてGPSを検出装置としても良い。また、GPSに限らず、レーザ光や音波を使用する機器を検出装置としても良い。また、レーザ光や音波は、端末装置30から出射し、検出装置40で検出しても良い。
【0036】
次に、
図2を参照しながら、ロボットコントローラ10のハードウェア構成について説明する。
【0037】
図2は、
図1に示したロボットコントローラ10のハードウェア構成の一例を示す図である。
【0038】
ロボットコントローラ10は、ロボットコントローラ10の各部を制御する処理装置(制御部)12と、各種情報を記憶するメモリ(記憶部)13と、通信装置(通信部)14と、作業者U等による操作を受け付ける操作装置(操作部)15と、表示装置(表示部)16と、ドライバ回路17とを有する。
【0039】
メモリ13は、例えば、処理装置12の作業領域として機能するRAM(Random Access Memory)等の揮発性メモリと、制御プログラムPGr等の各種情報を記憶するEEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性メモリとの、一方又は両方を含む。なお、メモリ13は、ロボットコントローラ10に着脱可能であってもよい。具体的には、メモリ13は、ロボットコントローラ10に着脱されるメモリカード等の記憶媒体であってもよい。また、メモリ13は、例えば、ロボットコントローラ10とネットワーク等を介して通信可能に接続された記憶装置(例えば、オンラインストレージ)であってもよい。
【0040】
図2に示すメモリ13は、制御プログラムPGr及び動作テーブルMTBLを記憶している。制御プログラムPGrは、「プログラム」の一例である。本実施形態では、制御プログラムPGrは、例えば、ロボットコントローラ10がロボット20の動作を制御するためのアプリケーションプログラムを含む。但し、制御プログラムPGrは、例えば、処理装置12がロボットコントローラ10の各部を制御するためのオペレーティングロボットシステムプログラムを含んでもよい。
【0041】
動作テーブルMTBLの詳細は、後述する
図7において説明されるが、動作テーブルMTBLには、例えば、位置情報PINF及び姿勢情報AINF等が記憶される。例えば、位置情報PINFは、端末装置30の位置を示す位置情報であり、ロボット20の先端部HPの位置を規定する位置情報として用いられる。また、姿勢情報AINFは、端末装置30の姿勢を示す姿勢情報であり、ロボット20の先端部HPの姿勢を規定する姿勢情報として用いられる。
【0042】
処理装置12は、ロボットコントローラ10の全体を制御するプロセッサであり、例えば、1又は複数のCPU(Central Processing Unit)を含んで構成される。処理装置12は、例えば、メモリ13に記憶された制御プログラムPGrを実行し、制御プログラムPGrに従って動作することで、後述する
図3に示すロボット制御部120として機能する。なお、制御プログラムPGrは、ネットワーク等を介して他の装置から送信されてもよい。
【0043】
また、例えば、処理装置12が複数のCPUを含んで構成される場合、処理装置12の機能の一部又は全部は、これら複数のCPUが制御プログラムPGr等のプログラムに従って協働して動作することで実現されてもよい。また、処理装置12は、1又は複数のCPUに加え、又は、1又は複数のCPUのうち一部又は全部に代えて、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、又は、FPGA(Field Programmable Gate Array)等のハードウェアを含んで構成されるものであってもよい。この場合、処理装置12の機能の一部又は全部は、DSP等のハードウェアにより実現されてもよい。
【0044】
通信装置14は、ロボットコントローラ10の外部に存在する外部装置と通信を行うためのハードウェアである。例えば、通信装置14は、近距離無線通信によって外部装置と通信する機能を有する。なお、通信装置14は、移動体通信網又はネットワークを介して外部装置と通信する機能をさらに有してもよい。
【0045】
操作装置15は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、スイッチ、ボタン及びセンサ等)である。例えば、操作装置15は、作業者Uの操作を受け付け、操作に応じた操作情報を処理装置12に出力する。なお、例えば、表示装置16の表示面に対する接触を検出するタッチパネルが、操作装置15として採用されてもよい。
【0046】
表示装置16は、外部への出力を実施するディスプレイ等の出力デバイスである。表示装置16は、例えば、処理装置12による制御のもとで、画像を表示する。なお、操作装置15及び表示装置16は、一体となった構成(例えば、タッチパネル)であってもよい。
【0047】
ドライバ回路17は、処理装置12による制御のもとで、ロボット20を駆動するための信号をロボット20に出力するハードウェアである。例えば、ドライバ回路17は、処理装置12による制御のもとで、ロボット20のボディ部BDP、アーム部AP及び先端部HP等を駆動する信号をロボット20に出力する。
【0048】
次に、
図3を参照しながら、ロボットコントローラ10の機能について説明する。
【0049】
図3は、
図1に示したロボットコントローラ10の構成の一例を示す機能ブロック図である。
【0050】
ロボット制御部120は、
図2において説明されたように、処理装置12により実現される。なお、処理装置12が複数のCPUを含んで構成される場合、ロボット制御部120の一部又は全部の機能は、これら複数のCPUが制御プログラムPGrに従って協働して動作することで実現されてもよい。また、処理装置12がDSP等のハードウェアを含んで構成される場合、ロボット制御部120の一部又は全部は、DSP等のハードウェアにより実現されてもよい。
【0051】
ロボット制御部120は、例えば、情報取得部121、情報生成部122、動作制御部123、表示制御部124及び警告部125を有する。情報取得部121は、「取得部」の一例であり、情報生成部122は、「生成部」の一例である。また、動作制御部123は、「制御部」の一例である。
【0052】
情報取得部121は、例えば、端末装置30の位置を示す位置情報PINFを撮像装置(検出装置)40から取得し、端末装置30の姿勢を示す姿勢情報AINFを端末装置30から取得する。例えば、位置情報PINF及び姿勢情報AINF等の情報をロボットコントローラ10に送信する送信操作を作業者Uが端末装置30に対して行った場合に、端末装置30から姿勢情報AINFが送信され、撮像装置40から位置情報PINFが送信される。従って、情報取得部121は、送信操作を作業者Uが端末装置30に対して行った場合に、位置情報PINF及び姿勢情報AINFを取得する。送信操作は、例えば、操作装置(操作部)35が送信ボタンを含む場合、送信ボタンの押下であってもよい。なお、送信操作は、「所定の操作」の一例である。
【0053】
情報生成部122は、情報取得部121が取得した位置情報PINF及び姿勢情報AINFに基づいて、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成する。例えば、情報生成部122は、情報取得部121が取得した位置情報PINF及び姿勢情報AINFを、動作テーブルMTBLに記憶する。これにより、動作テーブルMTBLには、位置情報PINFにより示される位置、及び、姿勢情報AINFにより示される姿勢が登録される。以下では、動作テーブルMTBLに記憶された位置情報PINFにより示される位置は、動作テーブルMTBLに登録された位置とも称される。同様に、動作テーブルMTBLに記憶された姿勢情報AINFにより示される姿勢は、動作テーブルMTBLに登録された姿勢とも称される。
【0054】
例えば、情報生成部122は、動作テーブルMTBLに登録された位置及び姿勢をロボット20の先端部HPの位置及び姿勢として確定することにより、動作テーブルMTBLに登録された位置及び姿勢をロボット20の先端部HPの位置及び姿勢として規定する。この場合、動作テーブルMTBLに記憶された位置情報PINF及び姿勢情報AINF(確定された位置及び姿勢をそれぞれ示す位置情報PINF及び姿勢情報AINF)が、ロボット20の先端部HPの位置及び姿勢を規定する動作情報に該当する。すなわち、情報生成部122は、動作テーブルMTBLに登録された位置及び姿勢を確定することにより、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成する。
【0055】
動作制御部123は、情報取得部121が取得した位置情報PINF及び姿勢情報AINFに基づいて、ロボット20を動作させる。例えば、動作制御部123は、動作テーブルMTBLに登録された位置及び姿勢に基づいてドライバ回路17を制御することにより、ロボット20を動作させる。
【0056】
なお、動作制御部123は、動作テーブルMTBLに登録された位置及び姿勢を補正するための補正情報に基づいて、ロボット20を動作させてもよい。例えば、動作制御部123は、後述する
図8に示す操作画面CHS等に表示されるGUI(Graphical User Interface)を介して、作業者Uにより指示される先端部HPの位置及び姿勢を示す補正情報の入力を受け付けてもよい。そして、動作制御部123は、動作テーブルMTBLに登録された位置及び姿勢を補正情報に基づいて補正してもよい。
【0057】
また、動作制御部123は、作業者Uがロボット20を手動で直接動かすことにより得られる補正情報に基づいて、動作テーブルMTBLに登録された位置及び姿勢を補正してもよい。具体的には、例えば、作業者Uは、動作テーブルMTBLに登録された位置及び姿勢に基づいて動作したロボット20の先端部HPの位置及び姿勢を目視等により確認する。そして、作業者Uは、ロボット20を手動で直接動かすことにより、先端部HPの位置及び姿勢を所望の位置及び姿勢に移動させる。この場合、動作制御部123は、作業者Uが移動させた先端部HPの位置及び姿勢を示す補正情報を取得し、動作テーブルMTBLに登録された位置及び姿勢を補正情報に基づいて補正する。
【0058】
補正情報に基づいて補正された位置及び姿勢は、例えば、動作テーブルMTBLに登録され、動作情報により規定される先端部HPの位置及び姿勢として、情報生成部122により確定される。
【0059】
表示制御部124は、例えば、
図8に示す操作画面CHS等の各種画像を表示装置16に表示させる。
【0060】
警告部125は、例えば、情報取得部121が位置情報PINFを取得する度に、位置情報PINFにより示される位置がロボット20の先端部HPの可動範囲内であるか否かを判定し、位置情報PINFにより示される位置が可動範囲内でない場合に警告する。
【0061】
例えば、警告部125は、端末装置30の位置がロボット20の可動範囲外であることを、警告音等を出力することにより、作業者Uに警告してもよい。あるいは、警告部125は、端末装置30の位置がロボット20の可動範囲外であることを示す警告情報を端末装置30に送信してもよい。この場合、端末装置30は、例えば、端末装置30の位置がロボット20の可動範囲外であることを、警告音等を出力することにより、作業者Uに警告してもよい。
【0062】
警告音等の警告により、作業者Uは、例えば、所定の作業に対応する移動経路に沿うように端末装置30を移動させている最中に、ロボット20の先端部HPの可動範囲外に端末装置30を移動させたか否かを把握できる。この結果、作業者Uが、ロボット20の先端部HPの可動範囲内で端末装置30を効率よく移動させることができる。このため、本実施形態では、所定の作業に対応する移動経路に沿うように端末装置30を移動させる作業の効率を向上させることができる。
【0063】
なお、ロボットコントローラ10の構成は、
図2及び
図3に示した例に限定されない。例えば、警告部125は、省かれてもよい。
【0064】
次に、
図4を参照しながら、端末装置30のハードウェア構成について説明する。
【0065】
図4は、
図1に示した端末装置30のハードウェア構成の一例を示す図である。
【0066】
端末装置30は、端末装置30の各部を制御する処理装置32と、各種情報を記憶するメモリ33と、通信装置(通信部)34と、操作装置(操作部)35と、表示装置(表示部)36と、スピーカ37と、慣性センサ38と、撮像装置39とを有する。
【0067】
メモリ33は、例えば、処理装置32の作業領域として機能するRAM等の揮発性メモリと、制御プログラムPGt等の各種情報を記憶するEEPROM等の不揮発性メモリとの、一方又は両方を含む。なお、メモリ33は、
図2において説明されたロボットコントローラ10のメモリ13と同様に、端末装置30に着脱可能であってもよいし、端末装置30とネットワーク等を介して通信可能に接続された記憶装置(例えば、オンラインストレージ)であってもよい。
【0068】
処理装置32は、端末装置30の全体を制御するプロセッサであり、
図2において説明されたロボットコントローラ10の処理装置12と同様に構成される。例えば、処理装置32は、1又は複数のCPUを含んで構成される。そして、処理装置32は、メモリ33に記憶された制御プログラムPGtを実行し、制御プログラムPGtに従って動作することで、後述する
図5に示す端末制御部320として機能する。なお、制御プログラムPGtは、ネットワーク等を介して他の装置から送信されてもよい。
【0069】
また、例えば、処理装置32が複数のCPUを含んで構成される場合、処理装置32の機能の一部又は全部は、これら複数のCPUが制御プログラムPGt等のプログラムに従って協働して動作することで実現されてもよい。また、処理装置32は、1又は複数のCPUに加え、又は、1又は複数のCPUのうち一部又は全部に代えて、GPU、DSP、又は、FPGA等のハードウェアを含んで構成されるものであってもよい。この場合、処理装置32の機能の一部又は全部は、DSP等のハードウェアにより実現されてもよい。
【0070】
通信装置34は、端末装置30の外部に存在する外部装置と通信を行うためのハードウェアである。例えば、通信装置34は、近距離無線通信によって外部装置と通信する機能を有する。なお、通信装置34は、移動体通信網又はネットワークを介して外部装置と通信する機能をさらに有してもよい。
【0071】
操作装置35は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、スイッチ、ボタン及びセンサ等)である。例えば、操作装置35は、作業者Uの操作を受け付け、操作に応じた操作情報を処理装置32に出力する。なお、例えば、表示装置36の表示面に対する接触を検出するタッチパネルが、操作装置35として採用されてもよい。
【0072】
表示装置36は、外部への出力を実施するディスプレイ等の出力デバイスである。表示装置36は、例えば、処理装置32による制御のもとで、画像を表示する。なお、操作装置35及び表示装置36は、一体となった構成(例えば、タッチパネル)であってもよい。
【0073】
スピーカ37は、処理装置32による制御のもとで各種の音を出力するハードウェアである。
【0074】
慣性センサ38は、例えば、3次元空間を表すXw軸、Yw軸、及び、Zw軸の各々における端末装置30の加速度と、Xw軸、Yw軸、及び、Zw軸の各々を軸として回転した場合の端末装置30の角速度とを検出する。Xw軸、Yw軸、及び、Zw軸の加速度を検出することで、端末装置30の移動距離を計測することができる。またXw軸、Yw軸、及び、Zw軸の角速度を検出することで、端末装置30の重力方向に対する傾き(姿勢)を検出できる。本実施形態の場合は、端末装置30の傾き(姿勢)を検出するため、Xw軸、Yw軸、及び、Zw軸の各々を軸として回転した場合の端末装置30の角速度の検出が必須である。
【0075】
撮像装置39は、カメラ等の光学的な手段により被写体を撮像するためのハードウェアである。例えば、撮像装置39は、被写体を撮像し、撮像した被写体の画像を示す画像情報を生成する。本実施形態では、端末装置30の位置が撮像装置40により測定されるため、撮像装置39は、対象物までの距離を測定する機能を有さなくてもよい。なお、撮像装置39は、対象物までの距離を測定する機能を有してもよい。すなわち、撮像装置39は、3次元カメラでもよいし、3次元カメラ以外のカメラでもよい。
【0076】
次に、
図5を参照しながら、端末装置30の機能について説明する。
【0077】
図5は、
図1に示した端末装置30の構成の一例を示す機能ブロック図である。
【0078】
端末制御部320は、
図4において説明されたように、処理装置(制御部)32により実現される。なお、処理装置32が複数のCPUを含んで構成される場合、端末制御部320の一部又は全部の機能は、これら複数のCPUが制御プログラムPGtに従って協働して動作することで実現されてもよい。また、処理装置32がDSP等のハードウェアを含んで構成される場合、端末制御部320の一部又は全部は、DSP等のハードウェアにより実現されてもよい。
【0079】
端末制御部320は、例えば、操作通知部322、姿勢検出部324、警告制御部326及び表示制御部328を有する。
【0080】
操作通知部322は、ロボットコントローラ10及び撮像装置40の一方又は両方の動作に関する操作を操作装置35が受け付けた場合、操作装置35が受け付けた操作の内容を当該装置に通知する。例えば、操作通知部322は、位置情報PINF及び姿勢情報AINF等の情報をロボットコントローラ10に送信する送信操作を操作装置35が受け付けた場合、位置情報PINFの送信を指示する指示情報を、撮像装置40に送信する。なお、指示情報は、端末装置30からロボットコントローラ10を介して撮像装置40に送信されてもよい。
【0081】
姿勢検出部324は、慣性センサ38の加速度及び角速度の検出結果に基づいて端末装置30の姿勢を検出し、検出した姿勢を示す姿勢情報AINFを生成する。そして、姿勢検出部324は、端末装置30の姿勢を示す姿勢情報AINFを、通信装置(通信部)34を介してロボットコントローラ10に送信する。例えば、姿勢検出部324は、操作装置35が送信操作を受け付けた場合、端末装置30の姿勢を検出し、検出した姿勢を示す姿勢情報AINFをロボットコントローラ10に送信する。
【0082】
警告制御部326は、例えば、通信装置34が警告情報をロボットコントローラ10から受信した場合、警告音をスピーカ37から出力させる。これにより、端末装置30を把持している作業者Uは、端末装置30の位置がロボット20の可動範囲外であることを、把握できる。
【0083】
表示制御部328は、例えば、各種画像を表示装置(表示部)36に表示させる。例えば、表示制御部328は、各種操作に対応するGUIの画像を表示装置36に表示させてもよい。
【0084】
なお、端末装置30の構成は、
図4及び
図5に示した例に限定されない。例えば、表示装置36、スピーカ37及び撮像装置39の一部又は全部は、省かれてもよい。また、例えば、端末装置30は、バイブレータ等の振動発生装置を有してもよい。この場合、警告制御部326は、端末装置30の位置がロボット20の可動範囲外であることを、振動発生装置を振動させることにより、作業者Uに警告してもよい。また、例えば、端末装置30は、LED等の発光素子を有してもよい。この場合、警告制御部326は、端末装置30の位置がロボット20の可動範囲外であることを、発光素子を発光させることにより、作業者Uに警告してもよい。また、例えば、端末装置30の姿勢の検出に用いられるセンサは、慣性センサ38に限定されない。例えば、端末装置30は、慣性センサ38に加え、又は、慣性センサ38に代えて、磁気センサを有してもよい。
【0085】
次に、
図6を参照しながら、ロボットシステム1の動作の概要について説明する。
【0086】
図6は、
図1に示したロボットシステム1の動作の一例を示すシーケンスチャートである。
図6では、所定の作業に対応する動作がロボット20に教示される場合のロボットシステム1の動作を中心に説明する。
図6に示す例では、ロボットコントローラ10が、位置情報PINF及び姿勢情報AINFを取得する度に、位置情報PINFにより示される位置、及び、姿勢情報AINFにより示される姿勢を補正する場合を想定する。
【0087】
先ず、端末装置30は、ロボット20に対する教示の開始を示す教示開始情報TSINFを、ロボットコントローラ10及び撮像装置(検出装置)40に送信する(S300)。例えば、端末装置30は、ロボット20に対する教示を開始する操作を作業者Uが端末装置30に対して行った場合、教示開始情報TSINFを、ロボットコントローラ10及び撮像装置40に送信する。ロボットコントローラ10及び撮像装置40は、教示開始情報TSINFを受信する(S100及びS400)。ロボットコントローラ10及び撮像装置40は、教示開始情報TSINFを受信することにより、ロボット20に対する教示が開始することを認識する。
【0088】
例えば、撮像装置40は、教示開始情報TSINFを受信した場合、端末装置30の撮像を開始してもよい。また、ロボットコントローラ10は、教示開始情報TSINFを受信した場合、ロボット20の先端部HP等を、撮像装置40による端末装置30の撮像の邪魔にならない位置(例えば、撮像装置40の撮像範囲外)に退避させてもよい。なお、撮像装置40による端末装置30の撮像、及び、ロボット20の先端部HPの退避は、教示開始情報TSINFが送信される前(ロボット20に対する教示が開始される前)に、実行されてもよい。
【0089】
次に、端末装置30は、位置情報PINF及び姿勢情報AINF等の情報をロボットコントローラ10に送信する送信操作を受け付ける。なお、
図6に示す例では、ロボット20に対する教示において、作業者Uが送信操作を3回行う場合を想定する。1回の送信操作において、ステップS320~S324の一連の処理、ステップS420~S424の一連の処理、ステップS120~S160の一連の処理、及び、ステップS200~S220の一連の処理が実行される。
図6では、繰り返し実行される処理を互いに区別するために、ステップS120~S160、S200~S220、S320~S324、及び、S420~S424の各々の符号の末尾には、小文字のアルファベット(a、b又はc)が付されている。同様に、位置情報PINF及び姿勢情報AINFの各々の符号の末尾にも、小文字のアルファベット(a、b又はc)が付されている。
【0090】
例えば、端末装置30は、1回目の送信操作を受け付けたことを契機に、位置情報PINFの送信を指示する指示情報TINFを撮像装置40に送信する(S320a)。これにより、撮像装置40は、指示情報TINFを受信する(S420a)。また、端末装置30は、1回目の送信操作を受け付けたことを契機に、端末装置30の姿勢を検出し、検出した姿勢を示す姿勢情報AINFaを生成する(S322a)。そして、端末装置30は、生成した姿勢情報AINFaをロボットコントローラ10に送信する(S324a)。これにより、ロボットコントローラ10は、端末装置30が1回目の送信操作を受け付けたことを契機に生成された姿勢情報AINFaを受信する(S122a)。
【0091】
また、撮像装置40は、指示情報TINFを受信したことを契機に、端末装置30の位置を示す位置情報PINFaを生成する(S422a)。そして、撮像装置40は、生成した位置情報PINFaをロボットコントローラ10に送信する(S424a)。すなわち、撮像装置40は、端末装置30が1回目の送信操作を受け付けたことを契機に、端末装置30の位置を示す位置情報PINFaを生成し、生成した位置情報PINFaをロボットコントローラ10に送信する。これにより、ロボットコントローラ10は、端末装置30が1回目の送信操作を受け付けたことを契機に生成された位置情報PINFaを受信する(S120a)。
【0092】
このように、ロボットコントローラ10は、端末装置30が1回目の送信操作を受け付けたことを契機に、位置情報PINFa及び姿勢情報AINFaを取得する。そして、ロボットコントローラ10は、撮像装置40から取得した位置情報PINFa及び端末装置30から取得した姿勢情報AINFaを、動作テーブルMTBLに記憶する(S124a)。これにより、位置情報PINFaにより示される位置及び姿勢情報AINFaにより示される姿勢が動作テーブルMTBLに登録される。
【0093】
次に、ロボットコントローラ10は、ロボット20の先端部HPの位置及び姿勢を動作テーブルMTBLに登録された位置及び姿勢にする駆動信号CTLmをロボット20に出力する(S140a)。これにより、ロボット20は、駆動信号CTLmを受信する(S200a)。そして、ロボット20は、駆動信号CTLmに従って、ロボット20の先端部HPの位置及び姿勢を移動する(S202a)。
【0094】
次に、ロボットコントローラ10は、動作テーブルMTBLに登録された位置及び姿勢を補正する(S160a)。例えば、ロボットコントローラ10は、後述する
図8に示す操作画面CHSに表示されるGUIを介して取得した補正情報に基づいて、ロボット20の動作を制御する。これにより、ロボット20の先端部HPの位置及び姿勢は、補正情報により示される位置及び姿勢に移動する(S220a)。
【0095】
ステップS160a及びS220aの処理は、例えば、ロボット20の先端部HPの位置及び姿勢が目標の位置及び姿勢(すなわち、規定されるべき位置及び姿勢)になるまで実行される。また、例えば、ロボットコントローラ10は、動作テーブルMTBLに登録された位置及び姿勢の補正が終了した後、ロボット20の先端部HP等を、撮像装置40による端末装置30の撮像の邪魔にならない位置に退避させる。
【0096】
なお、ロボット20の先端部HPの位置及び姿勢の移動は、作業者Uがロボット20を手動で直接動かすことにより、実現されてもよい。この場合、ロボットコントローラ10は、作業者Uが移動させた先端部HPの位置及び姿勢を示す補正情報に基づいて、動作テーブルMTBLに登録された位置及び姿勢を補正する。
【0097】
ステップS160a及びS220aの処理の終了により、1回目の送信操作に対応する処理(ステップS120a~S160a、S200a~S220a、S320a~S324a、及び、S420a~S422aの一連の処理)は終了する。
【0098】
2回目の送信操作に対応する処理、及び、3回目の送信操作に対応する処理も、1回目の送信操作に対応する処理と同様に実行される。例えば、ロボットコントローラ10は、端末装置30が2回目の送信操作を受け付けたことを契機に、位置情報PINFb及び姿勢情報AINFbを取得する(S120b及びS122b)。また、ロボットコントローラ10は、端末装置30が3回目の送信操作を受け付けたことを契機に、位置情報PINFc及び姿勢情報AINFcを取得する(S120c及びS122c)。
【0099】
作業者Uは、例えば、3回目の送信操作を端末装置30に対して行った後、ロボット20に対する教示を終了する操作を端末装置30に対して行う。端末装置30は、ロボット20に対する教示を終了する操作を受け付けたことを契機に、ロボット20に対する教示の終了を示す教示終了情報TEINFを、ロボットコントローラ10及び撮像装置40に送信する(S340)。ロボットコントローラ10及び撮像装置40は、教示終了情報TEINFを受信する(S180及びS440)。ロボットコントローラ10及び撮像装置40は、教示終了情報TEINFを受信することにより、ロボット20に対する教示が終了したことを認識する。
【0100】
例えば、ロボットコントローラ10は、教示終了情報TEINFを受信した場合、動作テーブルMTBLに登録された位置及び姿勢を、所定の作業に対応する動作を実行するロボット20の先端部HPの位置及び姿勢として確定する。これにより、所定の作業に対応する動作を実行するロボット20の先端部HPの位置及び姿勢を規定する動作情報が動作テーブルMTBLに記憶される。また、例えば、撮像装置40は、教示終了情報TEINFを受信した場合、端末装置30の撮像を終了する。
【0101】
ロボットコントローラ10は、ロボット20に対する教示が終了した後、規定の動作をロボット20に実行させる駆動信号CTLopを、ロボット20に出力する(S190)。そして、ロボット20は、駆動信号CTLopに従って、規定の動作を実行する(S242)。規定の動作は、動作情報により規定される位置及び姿勢に従った動作である。
【0102】
なお、ロボットシステム1の動作は、
図6に示した例に限定されない。例えば、ロボット20に対する教示を開始する操作、及び、ロボット20に対する教示を終了する操作は、ロボットコントローラ10の操作装置15に対して実行されてもよい。また、例えば、動作テーブルMTBLに登録された位置及び姿勢を補正する処理は、必要に応じて実行されればよく、省略されてもよい。また、例えば、ロボットコントローラ10は、2回目又は3回目の送信操作が行われた後に、1回目の送信操作に対応する位置情報PINF及び姿勢情報AINFによりそれぞれ示される位置及び姿勢の補正を実行してもよい。同様に、ロボットコントローラ10は、3回目の送信操作が行われた後に、2回目の送信操作に対応する位置情報PINF及び姿勢情報AINFによりそれぞれ示される位置及び姿勢の補正を実行してもよい。
【0103】
また、例えば、端末装置30は、指示情報TINFを撮像装置40に送信しなくてもよい。この場合、ロボットコントローラ10は、端末装置30から姿勢情報APINFを取得したことを契機に、位置情報PINFの送信を撮像装置40に要求してもよい。
【0104】
次に、
図7を参照しながら、動作テーブルMTBLについて説明する。
【0105】
図7は、
図2に示した動作テーブルMTBLの一例を示す説明図である。
【0106】
図7に示す動作テーブルMTBLは、複数の作業と1対1に対応する複数の動作の各々について、動作情報を記憶する。複数の動作の各々は、例えば、動作IDにより識別される。各動作IDに対応する動作情報は、当該動作IDにより示される動作の教示において、ロボットコントローラ10(より詳細には、情報取得部121)が取得した位置情報PINFの数と同じ数のレコードを有する。各レコードは、位置番号と、ロボット20の先端部HPの位置を規定する位置情報PINF、ロボット20の先端部HPの姿勢を規定する姿勢情報AINF、及びロボット20の動作を示す情報を有する。本実施形態では、情報取得部121が位置情報PINFを取得した順番が位置番号として設定される。
【0107】
位置番号は、例えば、動作情報により示される複数の位置の各々を先端部HPが移動する場合の移動順を示す。例えば、“m001”の動作IDに対応する動作情報が有する位置番号は、先端部HPが位置情報PINFaにより示される位置から位置情報PINFbにより示される位置を経由して位置情報PINFcにより示される位置に移動することを示す。
【0108】
また、例えば、“m001”の動作IDに対応する動作情報は、複数の位置情報PINFa、PINFb及びPINFcと、複数の姿勢情報AINFa、AINFb及びAINFcとを有する。さらに、“m001”の動作IDに対応する動作情報は、複数の位置情報PINFa、PINFb及びPINFcの各々により示される位置においてロボット20に実行させる動作を示す情報を有する。例えば、“m001”の動作IDに対応する動作情報は、位置情報PINFaにより示される位置においてロボット20に実行させる動作を示す情報として、物体への顔料の塗布の開始を示す情報を有する。また、“m001”の動作IDに対応する動作情報は、位置情報PINFbにより示される位置においてロボット20に実行させる動作を示す情報として、物体への顔料の塗布の継続を示す情報を有する。さらに、“m001”の動作IDに対応する動作情報は、位置情報PINFcにより示される位置においてロボット20に実行させる動作を示す情報として、物体への顔料の塗布の終了を示す情報を有する。
【0109】
動作テーブルMTBLは、
図7に示した例に限定されない。例えば、各動作IDに対応する動作情報は、位置情報PINFにより示される位置においてロボット20に実行させる動作を示す情報及び位置番号の一方又は両方を有さなくてもよい。また、ロボット20が行う作業は、物体への顔料の塗布に限定されない。
【0110】
次に、
図8を参照しながら、動作テーブルMTBLに登録された位置及び姿勢の補正を行うための操作画面CHSの概要について説明する。
【0111】
図8は、操作画面CHSの一例を説明するための説明図である。なお、
図8では、操作画面CHSが確認画面と補正画面との間で切り替え可能である場合を想定する。確認画面は、動作テーブルMTBLに登録された位置及び姿勢に従ってロボット20を動作させるための操作画面CHSである。なお、確認画面では、動作テーブルMTBLに登録された位置及び姿勢の補正はできない。補正画面は、動作テーブルMTBLに登録された位置及び姿勢に従ってロボット20を動作させ、動作テーブルMTBLに登録された位置及び姿勢を補正するための操作画面CHSである。
図8では、操作画面CHSが補正画面である場合を例にして、操作画面CHSの概要を説明する。
【0112】
例えば、ロボットコントローラ10の表示制御部124は、操作画面CHSを表示装置16に表示させるための表示情報を、表示装置16に出力する。これにより、操作画面CHSが表示装置16に表示される。表示制御部124による表示情報の生成は、操作画面CHSを表示するための操作がロボットコントローラ10に対して実行されたことを契機に実行されてもよいし、教示開始情報TSINFをロボットコントローラ10が受信したことを契機に実行されてもよい。
【0113】
操作画面CHSは、複数の表示ウィンドウWD(WDs、WDid、WDp及びWDc)を含む。表示ウィンドウWDsには、現在の操作画面CHSが確認画面であるか補正画面であるかが表示される。表示ウィンドウWDidには、実行させる動作に対応する動作IDが表示される。表示ウィンドウWDpには、現在の位置番号が表示される。表示ウィンドウWDcには、現在の位置番号におけるロボット20の先端部HPの位置及び姿勢が表示される。例えば、
図1において説明されたように、先端部HPの位置は、先端部HPの面SFhの中心の座標で表され、先端部HPの姿勢は、回転軸Hxの回転角度、回転軸Hyの回転角度及び回転軸Hzの回転角度を用いて表される。
【0114】
さらに、操作画面CHSには、GUI用の複数のボタンBT(BTs、BTm、BTc、BTcn、BTd、BTh及びBTf)等が表示される。ボタンBTsは、現在の操作画面CHSを、確認画面及び補正画面の一方から他方に切り替えるためのGUIである。
図8に示す例では、作業者UがボタンBTsを選択(例えば、押下)した場合、操作画面CHSは、補正画面から確認画面に切り替わる。
【0115】
ボタンBTmは、ロボット20の動作を制御するためのGUIである。例えば、「開始」のボタンBTmが押下された場合、ロボットコントローラ10の動作制御部123は、ロボット20を動作テーブルMTBLに登録された位置及び姿勢に従ってロボット20を動作させる。また、「停止」のボタンBTmが押下された場合、動作制御部123は、ロボット20の動作を停止する。また、例えば、「前」のボタンBTmが押下された場合、動作制御部123は、先端部HPの位置及び姿勢を、現在の位置番号から1つ前の位置番号に対応する位置及び姿勢に移動させる。また、例えば、「次」のボタンBTmが押下された場合、動作制御部123は、先端部HPの位置及び姿勢を、現在の位置番号から次の位置番号に対応する位置及び姿勢に移動させる。
【0116】
ボタンBTcは、動作テーブルMTBLに登録された位置及び姿勢を補正するための補正情報の入力を受け付けるGUIである。ボタンBTcは、「受付部」の一例である。なお、ボタンBTc等を含む操作画面CHSが表示される表示装置16を「受付部」として捉えてもよい。動作制御部123は、例えば、ボタンBTcを介して受け付けた補正情報に基づいて、先端部HPの位置及び姿勢の一方又は両方を移動させる。
【0117】
例えば、Xw軸に対応する「+」及び「-」のボタンBTcのうち、「+」のボタンBTcが押下された場合、動作制御部123は、先端部HPの位置をXw軸の正の方向に移動させる。また、Xw軸に対応する「+」及び「-」のボタンBTcのうち、「-」のボタンBTcが押下された場合、動作制御部123は、先端部HPの位置をXw軸の負の方向に移動させる。
【0118】
また、例えば、回転軸Hxに対応する「+」及び「-」のボタンBTcのうち、「+」のボタンBTcが押下された場合、動作制御部123は、回転軸Hxの回転角度が大きくなるように、回転軸Hxを軸として先端部HPを回転させる。また、例えば、回転軸Hxに対応する「+」及び「-」のボタンBTcのうち、「-」のボタンBTcが押下された場合、動作制御部123は、回転軸Hxの回転角度が小さくなるように、回転軸Hxを軸として先端部HPを回転させる。例えば、回転軸Hxに沿う所定の方向から回転軸Hxを見た場合、回転軸Hxの回転角度は、回転軸Hxを軸として先端部HPを右回りに回転させることにより、大きくなり、回転軸Hxを軸として先端部HPを左回りに回転させることにより、小さくなる。
【0119】
ボタンBTcnは、補正情報に基づいて補正された位置及び姿勢を、動作情報により規定される先端部HPの位置及び姿勢として確定せずに、取り消すためのGUIである。例えば、ボタンBTcnが押下された場合、動作制御部123は、先端部HPの位置及び姿勢を、補正前の先端部HPの位置及び姿勢(現在の位置番号における先端部HPの位置及び姿勢)に移動させる。
【0120】
ボタンBTdは、動作テーブルMTBLに登録された位置及び姿勢を、動作情報により規定される先端部HPの位置及び姿勢として確定するためのGUIである。例えば、ボタンBTcnが押下された場合、情報生成部122は、動作テーブルMTBLに登録された位置及び姿勢を、動作情報により規定される先端部HPの位置及び姿勢として確定する。
【0121】
また、ボタンBThは、作業者Uがロボット20を手動で直接移動させた場合の先端部HPの位置及び姿勢を示す補正情報を動作制御部123に取得させるためのGUIである。例えば、ボタンBThが押下された場合、動作制御部123は、作業者Uがロボット20を手動で直接移動させた場合の先端部HPの位置及び姿勢を示す補正情報を取得する。そして、表示制御部124は、表示装置16を制御して、補正情報により示される位置(座標)及び姿勢(回転角度)を表示ウィンドウWDcに表示する。
【0122】
また、ボタンBTfは、操作画面CHSの表示を終了させるためのGUIである。なお、ボタンBTcの押下等により補正が実行された後に、ボタンBTdが押下されずに、ボタンBTfが押下された場合、動作テーブルMTBLに登録された位置及び姿勢は、補正が実行される前の内容から変更されなくてもよい。あるいは、ボタンBTcの押下等により補正が実行された後に、ボタンBTdが押下されずに、ボタンBTfが押下された場合、動作テーブルMTBLに登録された位置及び姿勢が、動作情報により規定される先端部HPの位置及び姿勢として確定されてもよい。また、ボタンBTcの押下等により補正が実行された後に、ボタンBTdが押下されずに、ボタンBTfが押下された場合、動作テーブルMTBLに登録された位置及び姿勢を変更するか否かを選択するためのGUIが表示されてもよい。
【0123】
なお、操作画面CHSの例は、
図8に示した例に限定されない。例えば、作業者Uは、目標となる先端部HPの位置及び姿勢を示す数値(座標及び角度等)を表示ウィンドウWDcに直接入力してもよい。この場合、表示ウィンドウWDcは、「受付部」に該当する。例えば、動作制御部123は、表示ウィンドウWDcを介して補正情報を受け付ける。そして、動作制御部123は、表示ウィンドウWDcを介して受け付けた補正情報に基づいて、先端部HPの位置及び姿勢の一方又は両方を移動させる。
【0124】
また、操作画面CHSが確認画面である場合、例えば、ボタンBTc、BTcn及びBTdは、作業者Uによる操作ができないように、操作画面CHSに表示される。あるいは、操作画面CHSが確認画面である場合、ボタンBTc、BTcn及びBTdは、操作画面CHSに表示されなくてもよい。また、ロボット20の動作の確認は補正画面でも行えるため、確認画面及び補正画面のうちの補正画面のみに対応する操作画面CHSが採用されてもよい。
【0125】
また、
図8では、ボタンBTcが「受付部」の一例である場合を例示したが、ボタンBTc等と同様の機能が割り当てられた物理的なボタンが操作装置15としてロボットコントローラ10に設けられている場合、操作装置15も、「受付部」の一例である。
【0126】
また、操作画面CHSは、端末装置30が有する表示装置36に表示されてもよい。この場合、操作画面CHSを表示装置36に表示させるための表示情報は、ロボットコントローラ10の表示制御部124により生成されてもよいし、端末装置30の表示制御部328により生成されてもよい。また、例えば、ボタンBTc等と同様の機能が割り当てられた物理的なボタンが操作装置35として端末装置30に設けられてもよい。
【0127】
次に、
図9を参照しながら、ロボットコントローラ10の動作の概要について説明する。
【0128】
図9は、
図1に示したロボットコントローラ10の動作の一例を示すフローチャートである。なお、
図9は、ロボット20に対する教示を開始する操作を作業者Uが端末装置30又はロボットコントローラ10に対して行った場合のロボットコントローラ10の動作の一例を示す。
図6において説明された動作については、詳細な説明を省略する。
図9では、ロボット20に対する教示を開始する操作、及び、ロボット20に対する教示を終了する操作が端末装置30の操作装置35に対して実行される場合を想定する。例えば、ステップS120の処理は、ロボット20に対する教示を開始する操作が操作装置35に対して実行された後に、実行される。また、
図9では、ステップS120の処理が実行される前に、操作画面CHSが表示されている場合を想定する。
【0129】
先ず、ステップS120において、処理装置12は、情報取得部121として機能し、端末装置30の位置を示す位置情報PINFを撮像装置40から取得する。
【0130】
次に、ステップS122において、処理装置12は、情報取得部121として機能し、端末装置30の姿勢を示す姿勢情報AINFを端末装置30から取得する。
【0131】
次に、ステップS124において、処理装置12は、情報生成部122として機能し、ステップS120において取得された位置情報PINF及びステップS122において取得された姿勢情報AINFを動作テーブルMTBLに記憶する。
【0132】
次に、ステップS130において、処理装置12は、動作制御部123として機能し、ロボット20の動作確認が行われるか否かを判定する。ロボット20の動作確認が行われるか否かは、ロボット20と撮像装置40のキャリブレーションが事前に行われているか否かによって判断しても良い。ロボット20と撮像装置40のキャリブレーションがなされている場合は、端末装置30とロボット20のキャリブレーションもなされているため、ロボット20の動作確認は不要となる。一方、ロボット20と撮像装置40のキャリブレーションが事前に行われていない場合、ロボット20の動作確認により、端末装置30で教示した位置と、ロボット20の移動する位置を合わせることが必要となる。また、ロボット20の動作確認は、ロボット20と撮像装置40のキャリブレーション以外に、実際のロボット20の動作を確認することで、障害物等を確認し、位置や姿勢を修正するために行っても良い。
判定の操作に関しては、例えば、動作制御部123は、操作画面CHSに表示されたボタンBTmが押下されたか否かを判定することにより、ロボット20の動作確認が行われるか否かを判定してもよい。この場合、動作制御部123は、例えば、教示終了情報TEINF、次の位置情報PINF、又は、次の姿勢情報APINF等をロボットコントローラ10の通信装置14が受信する前に、ボタンBTmが押下された場合、ロボット20の動作確認が行われると判定する。
【0133】
ステップS130における判定の結果が肯定の場合、処理装置12は、処理をステップS140に進める。一方、ステップS130における判定の結果が否定の場合、処理装置12は、処理をステップS182に進める。
【0134】
ステップS140において、処理装置12は、動作制御部123として機能し、動作テーブルMTBLに登録された位置及び姿勢に基づいて、先端部HPの位置及び姿勢を移動させる。そして、処理装置12は、処理をステップS150に進める。
【0135】
ステップS150において、処理装置12は、動作制御部123として機能し、動作テーブルMTBLに登録された位置及び姿勢の補正が実行されるか否かを判定する。例えば、動作制御部123は、操作画面CHSに表示されたボタンBTc又はBThが押下されたか否かを判定することにより、補正が実行されるか否かを判定してもよい。この場合、動作制御部123は、例えば、教示終了情報TEINF、次の位置情報PINF、又は、次の姿勢情報APINF等を通信装置14が受信する前に、ボタンBTc又はBThが押下された場合、補正が実行されると判定する。あるいは、動作制御部123は、例えば、教示終了情報TEINF、次の位置情報PINF、又は、次の姿勢情報APINF等を通信装置14が受信する前に、先端部HPの位置等を示す数値が表示ウィンドウWDcに入力された場合、補正が実行されると判定してもよい。
【0136】
ステップS150における判定の結果が肯定の場合、処理装置12は、処理をステップS160に進める。一方、ステップS150における判定の結果が否定の場合、処理装置12は、処理をステップS182に進める。
【0137】
ステップS160において、処理装置12は、動作制御部123として機能し、動作テーブルMTBLに登録された位置及び姿勢を補正する。例えば、動作制御部123は、操作画面CHSに表示されたボタンBTc等を介して受け付けた補正情報に基づいて、動作テーブルMTBLに登録された位置及び姿勢を補正する。そして、処理装置12は、処理をステップS162に進める。
【0138】
ステップS162において、処理装置12は、情報生成部122として機能し、ステップS160において実行された補正の確定又は取り消しを実行する。例えば、情報生成部122は、ボタンBTdが押下された場合、ステップS160において実行された補正を確定し、ボタンBTcnが押下された場合、ステップS160において実行された補正を取り消す。処理装置12は、ステップS162の処理を実行した後、処理をステップS182に進める。
【0139】
ステップS182において、処理装置12は、動作制御部123として機能し、ロボット20に対する教示が終了したか否かを判定する。例えば、動作制御部123は、次の位置情報PINF、又は、次の姿勢情報APINF等を通信装置14が受信する前に、教示終了情報TEINFを通信装置14が受信した場合、ロボット20に対する教示が終了したと判定する。
【0140】
ステップS182における判定の結果が肯定の場合、処理装置12は、処理をステップS184に進める。一方、ステップS182における判定の結果が否定の場合、処理装置12は、処理をステップS120に戻す。
【0141】
ステップS184において、処理装置12は、情報生成部122として機能し、動作テーブルMTBLに登録された位置及び姿勢を、動作情報により規定される先端部HPの位置及び姿勢として確定する。これにより、先端部HPの位置及び姿勢を規定する動作情報が生成される。これらの規定された位置および姿勢を順につなぐことでロボット20の軌道情報が生成される。ロボット20は、これらの規定された位置および姿勢になるように、順に動作することで、軌道情報にそった動作を実現する。なお、ステップ130~182の動作確認における位置及び姿勢の補正は、軌道情報を生成した後に補正しても良いし、補正した位置および姿勢から軌道情報を生成しても良い。
【0142】
なお、ロボットコントローラ10の動作は、
図9に示した例に限定されない。例えば、ステップS122の処理は、ステップS120の処理より先に実行されてもよいし、ステップS120の処理と並列に実行されてもよい。
【0143】
以上、本実施形態では、ロボットコントローラ10は、情報取得部121及び情報生成部122を有する。情報取得部121は、端末装置30の位置を示す位置情報PINF、及び、端末装置30の姿勢を示す姿勢情報AINFを取得する。情報生成部122は、情報取得部121が取得した位置情報PINF及び姿勢情報AINFに基づいて、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成する。
【0144】
このように、本実施形態では、ロボット20の先端部HPの位置及び姿勢を規定する動作情報が端末装置30の位置及び姿勢に基づいて生成される。例えば、作業者Uが端末装置30の位置及び姿勢を移動させる作業では、作業者Uがロボット20を手動で直接動かす作業に比べて、作業者Uの体力的及び時間的な負担が軽減される。従って、本実施形態では、作業者Uがロボット20を最初から手動で直接動かすことにより、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成する教示方法に比べて、作業者Uの体力的及び時間的な負担が増加することを抑制することができる。
【0145】
また、本実施形態では、情報取得部121は、端末装置30に対して作業者Uが所定の操作を行った場合に位置情報PINF及び姿勢情報AINFを取得する。例えば、所定の操作は、位置情報PINF及び姿勢情報AINF等の情報をロボットコントローラ10に送信する送信操作である。作業者Uは、例えば、端末装置30の位置及び姿勢を目標の位置及び姿勢に移動させたタイミングで所定の操作を行うことにより、目標の位置を示す位置情報PINF及び目標の姿勢を示す姿勢情報AINFを情報取得部121に取得させることができる。この結果、本実施形態では、目標の位置を示す位置情報PINF及び目標の姿勢を示す姿勢情報AINFを情報取得部121に容易に取得させることができる。
【0146】
また、本実施形態では、位置情報PINFは、端末装置30を撮像する撮像装置40により生成される。そして、本実施形態では、情報取得部121は、撮像装置40により生成された位置情報PINFを取得する。このように、本実施形態では、位置情報PINFが撮像装置40により生成されるため、ロボットコントローラ10が端末装置30の位置を測定する態様に比べて、ロボットコントローラ10の処理が煩雑になることを抑制することができる。また、ロボットコントローラ10を含むロボットシステム1は、撮像装置40として、物体の位置を測定する3次元カメラ等の既知のカメラを採用することができる。この結果、本実施形態では、ロボットシステム1を容易に実現することができる。
【0147】
また、本実施形態では、ロボットコントローラ10は、情報取得部121が取得した位置情報PINF及び姿勢情報AINFに基づいて、ロボット20を動作させる動作制御部123をさらに有する。この結果、本実施形態では、情報取得部121が取得した位置情報PINF及び姿勢情報AINFに基づくロボット20の動作を作業者Uに容易に確認させることができる。この結果、本実施形態では、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成するための作業の効率を向上させることができる。
【0148】
また、本実施形態では、動作制御部123は、作業者Uが移動させた先端部HPの位置及び姿勢を示す補正情報を取得し、位置情報PINFにより示される位置、及び、姿勢情報AINFにより示される姿勢を補正情報に基づいて補正してもよい。このように、本実施形態では、情報取得部121が取得した位置情報PINF及び姿勢情報AINFによりそれぞれ示される位置及び姿勢を補正情報に基づいて補正することができるため、ロボット20の先端部HPの位置及び姿勢を精度よく規定することができる。
【0149】
また、本実施形態では、位置情報PINFにより示される位置、及び、姿勢情報AINFにより示される姿勢を補正するための補正情報の入力を受け付ける受付部(例えば、GUIとして操作画面CHSに表示されるボタンBTc等)をさらに有する。作業者Uは、例えば、ボタンBTcを押下することにより、ロボット20の先端部HPの位置及び姿勢を目標の位置及び姿勢に容易に移動させることができる。この結果、本実施形態では、作業者Uの負担が増加することを抑制しつつ、ロボット20の先端部HPの位置及び姿勢を精度よく規定することができる。
【0150】
また、本実施形態では、ロボットコントローラ10は、位置情報PINFにより示される位置が先端部HPの可動範囲内であるか否かを判定し、先端部HPにより示される位置が先端部HPの可動範囲内でない場合に警告する警告部125をさらに有する。この場合、作業者Uは、例えば、警告音等の警告を認識することにより、端末装置30の位置がロボット20の可動範囲外であることを、把握できる。例えば、作業者Uが、端末装置30を移動させる作業が終了した後に、端末装置30の移動経路がロボット20の可動範囲外に存在することを把握した場合、端末装置30を移動させる作業を作業者Uが再度行うことになる場合がある。この場合、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成するための作業の効率は低下する。換言すれば、本実施形態では、ロボット20の先端部HPの位置及び姿勢を規定する動作情報を生成するための作業の効率を向上させることができる。
【0151】
[2.変形例]
本発明は、以上に例示した実施形態に限定されない。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様を併合してもよい。
【0152】
[第1変形例]
上述した実施形態では、端末装置30に対して作業者Uが所定の操作を行った場合に情報取得部121が位置情報PINF及び姿勢情報AINFを取得する場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、情報取得部121は、後述する
図10に示すように、取得期間中に、位置情報PINF及び姿勢情報AINFを繰り返し取得してもよい。
【0153】
図10は、第1変形例に係るロボットシステム1の動作の一例を示すシーケンスチャートである。
図6において説明された動作と同様の動作については、詳細な説明を省略する。
図10に示す動作では、作業者Uにより開始タイミングT1と終了タイミングT2とが指定される取得期間中に、ロボットコントローラ10(より詳細には、情報取得部121)が位置情報PINF及び姿勢情報AINFを繰り返し取得する。
【0154】
図10では、端末装置30が有する操作装置35に対して、作業者Uが、取得期間を開始する開始操作、及び、取得期間を終了する終了操作を行う場合を想定する。例えば、操作装置35が送信ボタンを含む場合、開始操作は、送信ボタンの押下であってもよいし、終了操作は、送信ボタンの押下の解除であってもよい。この場合、送信ボタンが押下されている期間が、取得期間に対応する。また、例えば、操作装置35が開始ボタン及び終了ボタンを含む場合、開始操作は、開始ボタンの押下であってもよいし、終了操作は、終了ボタンの押下であってもよい。
【0155】
また、
図10においても、
図6と同様に、繰り返し実行される処理を互いに区別するために、ステップS120~S124、S322~S324、及び、S422~S424の各々の符号の末尾には、小文字のアルファベット(a、b又はc)が付されている。また、位置情報PINF及び姿勢情報AINFの各々の符号の末尾にも、小文字のアルファベット(a、b又はc)が付されている。
【0156】
先ず、端末装置30は、ロボット20に対する教示を開始する操作を受け付けたことを契機に、教示開始情報TSINFをロボットコントローラ10及び撮像装置(検出装置)40に送信する(S300)。これにより、ロボットコントローラ10及び撮像装置40は、教示開始情報TSINFを受信する(S100及びS400)。
【0157】
次に、端末装置30は、取得期間を開始する開始操作を受け付けたことを契機に、取得期間の開始を示す開始情報PSINFをロボットコントローラ10及び撮像装置40に送信する(S302)。これにより、ロボットコントローラ10及び撮像装置40は、開始情報PSINFを受信する(S102及びS402)。なお、開始情報PSINFは、端末装置30からロボットコントローラ10を介して撮像装置40に送信されてもよい。ロボットコントローラ10及び撮像装置40は、開始情報PSINFを受信することにより、取得期間が開始することを認識する。
【0158】
取得期間では、端末装置30は、端末装置30の姿勢を示す姿勢情報AINFを生成する処理と、生成した姿勢情報AINFをロボットコントローラ10に送信する処理とを含む一連の処理を繰り返し実行する(S322及びS324)。また、撮像装置40は、端末装置30の位置を示す位置情報PINFを生成する処理と、生成した位置情報PINFをロボットコントローラ10に送信する処理とを含む一連の処理を繰り返し実行する(S422及びS424)。そして、ロボットコントローラ10は、位置情報PINF及び姿勢情報AINFを取得する処理と、取得した位置情報PINF及び姿勢情報AINFを動作テーブルMTBLに記憶する処理とを含む一連の処理を繰り返し実行する(S120、S122及びS124)。
【0159】
次に、端末装置30は、取得期間を終了する終了操作を受け付けたことを契機に、取得期間の終了を示す終了情報PEINFをロボットコントローラ10及び撮像装置40に送信する(S326)。これにより、ロボットコントローラ10及び撮像装置40は、終了情報PEINFを受信する(S126及びS426)。なお、終了情報PEINFは、端末装置30からロボットコントローラ10を介して撮像装置40に送信されてもよい。ロボットコントローラ10及び撮像装置40は、終了情報PEINFを受信することにより、取得期間が終了したことを認識する。
【0160】
ロボットコントローラ10は、ロボット20の先端部HPの位置及び姿勢を動作テーブルMTBLに登録された位置及び姿勢にする駆動信号CTLmをロボット20に出力する(S140)。これにより、ロボット20は、駆動信号CTLmを受信する(S200a)。そして、ロボット20は、駆動信号CTLmに従って、ロボット20の先端部HPの位置及び姿勢を移動する(S202)。
【0161】
次に、ロボットコントローラ10は、動作テーブルMTBLに登録された位置及び姿勢を補正する(S160)。例えば、ロボット20の先端部HPの位置及び姿勢は、補正情報により示される位置及び姿勢に移動する(S220)。
【0162】
端末装置30は、ロボット20に対する教示を終了する操作を受け付けたことを契機に、教示終了情報TEINFをロボットコントローラ10及び撮像装置40に送信する(S340)。ロボットコントローラ10及び撮像装置40は、教示終了情報TEINFを受信する(S180及びS440)。ロボットコントローラ10及び撮像装置40は、教示終了情報TEINFを受信することにより、ロボット20に対する教示が終了したことを認識する。
【0163】
ロボットコントローラ10は、ロボット20に対する教示が終了した後、規定の動作をロボット20に実行させる駆動信号CTLopを、ロボット20に出力する(S190)。そして、ロボット20は、ロボットコントローラ10から受信した駆動信号CTLopに従って、規定の動作を実行する(S240及びS242)。
【0164】
なお、ロボットシステム1の動作は、
図10に示した例に限定されない。例えば、動作テーブルMTBLに登録された位置及び姿勢を補正する処理は、必要に応じて実行されればよく、省略されてもよい。また、取得期間中に位置情報PINF及び姿勢情報AINFを情報取得部121が繰り返し取得する間隔は、所定の周期でもよい。あるいは、端末装置30は、位置情報PINFを送信してから所定の距離だけ移動する度に、次の位置情報PINF、及び、
図6において説明された指示情報TINFを送信してもよい。この場合、端末装置30の移動量は、例えば、慣性センサ38の検出結果に基づいて算出されてもよい。
【0165】
次に、
図11を参照しながら、第1変形例に係るロボットコントローラ10の動作の概要について説明する。
【0166】
図11は、第1変形例に係るロボットコントローラ10の動作の一例を示すフローチャートである。
図11に示す動作は、取得期間が終了した後に、ロボット20の動作確認等が実行されることを除いて、
図9に示した動作と同様である。
図9及び
図10において説明された動作については、詳細な説明を省略する。なお、ステップS104の処理は、例えば、ロボット20に対する教示を開始する操作が操作装置35に対して実行された後に、実行される。
【0167】
先ず、ステップS104において、処理装置12は、情報取得部121として機能し、取得期間が開始するか否かを判定する。例えば、情報取得部121は、ロボットコントローラ10の通信装置14が開始情報PSINFを受信したか否かを判定することにより、取得期間が開始するか否かを判定する。この場合、情報取得部121は、例えば、通信装置14が開始情報PSINFを受信した場合に、取得期間が開始すると判定する。
【0168】
ステップS104における判定の結果が肯定の場合、処理装置12は、処理をステップS120に進める。一方、ステップS104における判定の結果が否定の場合、処理装置12は、処理をステップS104に戻す。
【0169】
ステップS120、S122及びS124の一連の処理は、
図6に示したステップS120、S122及びS124の一連の処理と同様である。例えば、ステップS120、S122及びS124では、処理装置12は、情報取得部121として機能し、位置情報PINF及び姿勢情報AINFを取得し、取得した位置情報PINF及び姿勢情報AINFを動作テーブルMTBLに記憶する。そして、処理装置12は、ステップS124の処理を実行した後、処理をステップS128に進める。
【0170】
ステップS128において、処理装置12は、情報取得部121として機能し、取得期間が終了したか否かを判定する。例えば、情報取得部121は、通信装置14が終了情報PEINFを受信したか否かを判定することにより、取得期間が終了したか否かを判定する。この場合、情報取得部121は、例えば、通信装置14が終了情報PEINFを受信した場合に、取得期間が終了したと判定する。
【0171】
ステップS128における判定の結果が肯定の場合、処理装置12は、処理をステップS130に進める。一方、ステップS128における判定の結果が否定の場合、処理装置12は、処理をステップS120に戻す。
【0172】
ステップS130からステップS184までの一連の処理は、
図6に示したステップS130からステップS184までの一連の処理と同様である。例えば、ステップS130、S140、S150、S160及びS182では、処理装置12は、動作制御部123として機能し、ステップS162及びS184では、処理装置12は、情報生成部122として機能する。
【0173】
例えば、ステップS130において、動作制御部123は、ロボット20の動作確認が行われるか否かを判定する。ステップS130における判定の結果が肯定の場合、動作制御部123は、ステップS140において、動作テーブルMTBLに登録された位置及び姿勢に基づいて先端部HPの位置及び姿勢を移動させる。そして、処理装置12は、処理をステップS150に進める。一方、ステップS130における判定の結果が否定の場合、動作制御部123は、ステップS182において、ロボット20に対する教示が終了したか否かを判定する。
【0174】
ステップS150において、動作制御部123は、動作テーブルMTBLに登録された位置及び姿勢の補正が実行されるか否かを判定する。ステップS150における判定の結果が肯定の場合、動作制御部123は、ステップS160において、動作テーブルMTBLに登録された位置及び姿勢を補正する。そして、処理装置12は、処理をステップS162に進める。一方、ステップS150における判定の結果が否定の場合、動作制御部123は、ステップS182において、ロボット20に対する教示が終了したか否かを判定する。
【0175】
ステップS162において、情報生成部122は、ステップS160において実行された補正の確定又は取り消しを実行する。ステップS162の処理が実行された後、ステップS182において、動作制御部123は、ロボット20に対する教示が終了したか否かを判定する。
【0176】
ステップS182における判定の結果が肯定の場合、処理装置12は、処理をステップS184に進める。一方、ステップS182における判定の結果が否定の場合、処理装置12は、処理をステップS130に戻す。
【0177】
ステップS184において、情報生成部122は、動作テーブルMTBLに登録された位置及び姿勢を、動作情報により規定される先端部HPの位置及び姿勢として確定する。これにより、先端部HPの位置及び姿勢を規定する。これらの規定された位置および姿勢を順につなぐことでロボット20の軌道情報が生成される。ロボット20は、これらの規定された位置および姿勢になるように、順に動作することで、軌道情報にそった動作を実現する。なお、ステップ130~182の動作確認における位置及び姿勢の補正は、軌道情報を生成した後に補正しても良いし、補正した位置および姿勢から軌道情報を生成しても良い。
【0178】
なお、ロボットコントローラ10の動作は、
図11に示した例に限定されない。例えば、ステップS122の処理は、ステップS120の処理より先に実行されてもよいし、ステップS120の処理と並列に実行されてもよい。
【0179】
以上、本変形例においても、上述した実施形態と同様の効果を得ることができる。また、本変形例では、情報取得部121は、作業者Uにより開始タイミングT1と終了タイミングT2とが指定される取得期間中に、位置情報PINF及び姿勢情報AINFを繰り返し取得する。このため、本変形例では、ロボット20の動作点を多量に規定する場合においても、作業者Uの負担が増加することを抑制しつつ、位置情報PINF及び姿勢情報AINFを情報取得部121に取得させることができる。さらに、本変形例では、ロボット20の先端部HPの位置の経路を、複数の位置情報PINFにより示される複数の点に基づいて定められる軌道(例えば、複数の点を補間することにより定められる軌道)として、規定することができる。この結果、本変形例では、ロボット20の先端部HPの位置及び姿勢を滑らかに移動させることができる。
【0180】
[第2変形例]
上述した実施形態及び変形例では、慣性センサ38により、端末装置30の傾き(姿勢)を検出し、撮像装置(検出装置)40により端末装置30の位置を検出していた。本変形例では、端末装置30の慣性センサ38により、端末装置30の傾き(姿勢)と位置を検出するものである。従って本変形例において撮像装置40は必ずしも必要ではない。
本変形例における慣性センサ38は、前述したように3次元空間を表すXw軸、Yw軸、及び、Zw軸の各々における端末装置30の加速度センサと、Xw軸、Yw軸、及び、Zw軸の各々を軸として回転した場合の端末装置30の角速度センサとを有している。端末装置30の傾き(姿勢)は、Xw軸、Yw軸、及び、Zw軸に対する角速度センサにより計測する。一方、端末装置30の移動距離は、端末装置30を3次元空間上の複数の位置に順に移動する際のXw軸、Yw軸、及び、Zw軸の加速度センサにより検出する。本変形例では、
図9に示した第1実施形態のフローチャートのS130~S182で示した動作確認と同様に、端末装置30を移動させた各位置の少なくとも1つの位置において、ロボット20に教示する位置及び姿勢の補正を行う。これにより、前述のXw軸、Yw軸、及び、Zw軸の加速度センサにより検出した端末装置30の移動距離から、ロボット20に対する端末装置30の相対位置を算出することができる。
また本変形例では、
図6に示した第1実施形態のシーケンスチャートにおいて、撮像装置40が生成している位置情報PINF(S422a、S422b、S422c)を、端末装置30が生成しロボットコントローラ10に送信する。これ以外は、第1実施形態と同様である。
以上、本変形例においても、上述した実施形態と同様の効果を得ることができる。また、本変形例では、端末装置30の慣性センサ38を使用して、端末装置30の位置及び姿勢を検出するため、撮像装置40を準備する必要がなくロボットシステムを簡易に準備することが可能となる。また撮像装置40により撮像しないため、障害物等により撮像が困難な領域や姿勢を気にすることなく、端末装置30の操作を継続することができ、操作性が非常に優れている。
また、端末装置30を使った位置検出と、第1実施形態で示した撮像装置40を使った位置検出を併用することも可能である。撮像装置40を使った位置検出の場合、障害物等や端末装置30の角度の影響で、マークMKを検出できない場合がある。その場合に、端末装置30を使った位置検出に切り替えることで、検出を継続することが可能となる。この場合、撮像装置40を使って検出した位置から、端末装置30の慣性センサ38を使って検出した位置までの移動距離を算出することで、端末装置30の慣性センサ38を使って検出した位置を特定することができる。
[第3変形例]
上述した実施形態及び変形例では、位置情報PINFが撮像装置(検出装置)40により生成される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、位置情報PINFは、端末装置30により生成されてもよい。この場合、情報取得部121は、端末装置30により生成された位置情報PINF及び姿勢情報AINFを取得する。
【0181】
図12は、第3変形例に係るロボットシステム1Aの概要を説明するための説明図である。
図1から
図11において説明された要素と同様の要素については、同一の符号が付され、詳細な説明は省略される。
【0182】
ロボットシステム1Aは、
図1に示したロボットシステム1から撮像装置40が省かれ、マークMK1及びMK2が端末装置30に設けられる代わりに、複数のマークMK3(MK3a、MK3b及びMK3c)がロボット20に設けられることを除いて、ロボットシステム1と同様である。また、本変形例では、説明の便宜上、撮像座標系ΣCの代わりに、端末装置30に固定された移動体座標系ΣMを導入する。
【0183】
移動体座標系ΣMは、端末装置30の所定の位置に原点を有し、互いに直交するXm軸、Ym軸、及び、Zm軸を有する3軸の直交座標系である。本変形例では、移動体座標系ΣMが有するXm軸、Ym軸、及び、Zm軸が、
図1において説明されたXm軸、Ym軸、及び、Zm軸である場合を想定する。また、本変形例では、Zm軸が、端末装置30が有する撮像装置39の光軸(より詳細には、撮像装置39が有する光学系の光軸)と平行である場合を想定する。
【0184】
また、ワールド座標系ΣWにおけるマークMK3a、MK3b及びMK3cの各々の位置が既知である場合を想定する。すなわち、マークMK3a、MK3b及びMK3cの互いの位置関係(マークMK3の姿勢に相当)も既知である。なお、マークMK3は、ロボット20(
図12に示す例では、土台部BSP)に設けられてもよいし、ロボット20の近傍に設けられてもよい。
【0185】
端末装置30の構成は、
図4及び
図5に示した端末装置30の構成と同様である。なお、端末装置30が有する撮像装置39は、ロボット20の所定の位置(例えば、位置Op)との相対的な位置関係が既知である位置に配置されたマークMK3(MK3a、MK3b及びMK3c)を撮像する。そして、端末装置30は、撮像装置39が撮像したマークMK3の画像を用いて、所定の位置に対する端末装置30の位置を算出し、算出した位置を示す情報を位置情報PINFとして生成する。
【0186】
以下では、撮像装置39が撮像したマークMK3の画像を用いて、端末装置30の位置を算出する方法の一例を説明するが、端末装置30の位置を算出する方法は、以下の例に限定されない。
【0187】
例えば、撮像装置39が有する光学系を起点とし、マークMK3aを終点とするベクトルをVaとする。また、撮像装置39が有する光学系を起点とし、マークMK3bを終点とするベクトルをVbとする。そして、撮像装置39が有する光学系を起点とし、マークMK3cを終点とするベクトルをVcとする。
【0188】
また、マークMK3aを起点とし、マークMK3bを終点とするベクトルをVabとする。マークMK3aを起点とし、マークMK3cを終点とするベクトルをVacとする。そして、マークMK3bを起点とし、マークMK3cを終点とするベクトルをVbcとする。この場合、ベクトルVa、Vb、Vc、Vab、Vac及びVbcは、下記の式(1)、式(2)及び式(3)の関係を満たす。
|Va-Vb|=|Vab| ・・・(1)
|Va-Vc|=|Vac| ・・・(2)
|Vb-Vc|=|Vbc| ・・・(3)
【0189】
なお、ベクトルVab、Vac及びVbcの各々の長さ(|Vab|、|Vac|及び|Vbc|)は、ワールド座標系ΣWにおけるマークMK3a、MK3b及びMK3cの各々の位置が既知であるため、既知である。
【0190】
例えば、端末装置30が有する処理装置32は、マークMK3a、MK3b及びMK3cを撮像した画像から、ベクトルVa、Vb及びVcの各々の方向を示す情報(例えば、画像上の各マークMK3の位置を示す2次元の情報)を取得する。そして、処理装置32は、ベクトルVa、Vb及びVcの各々の長さを、上記の式(1)、式(2)及び式(3)と、ベクトルVa、Vb及びVcの各々の方向を示す情報と、焦点距離とに基づいて算出する。なお、焦点距離は、撮像装置39が有する光学系の焦点距離であり、既知の情報である。
【0191】
また、処理装置32は、ベクトルVa、Vb及びVcの各々の方向を示す情報と、ベクトルVa、Vb及びVcの各々の長さを示す情報とに基づいて、移動体座標系ΣMにおけるマークMK3a、MK3b及びMK3cの各々の位置を算出する。また、処理装置32は、ワールド座標系ΣWにおけるマークMK3a、MK3b及びMK3cの各々の位置と移動体座標系ΣMにおけるマークMK3a、MK3b及びMK3cの各々の位置とに基づいて、ワールド座標系ΣWにおける端末装置30の位置を算出する。そして、処理装置32は、ワールド座標系ΣWにおける端末装置30の位置を示す位置情報PINFをロボットコントローラ10に送信する。
【0192】
なお、上述のワールド座標系ΣWにおける端末装置30の位置を算出する処理は、姿勢検出部324により実行されてもよいし、姿勢検出部324とは別の機能ブロックにより実行されてもよい。例えば、処理装置32は、姿勢検出部324とは別に、ワールド座標系ΣWにおける端末装置30の位置を算出する処理を実行する機能ブロックとして機能してもよい。
【0193】
また、姿勢検出部324は、慣性センサ38の検出結果の代わりに、移動体座標系ΣMにおけるマークMK3a、MK3b及びMK3cの各々の位置を用いて、端末装置30の姿勢を検出してもよい。例えば、姿勢検出部324は、ワールド座標系ΣWにおけるマークMK3a、MK3b及びMK3cの各々の位置と移動体座標系ΣMにおけるマークMK3a、MK3b及びMK3cの各々の位置とに基づいて、端末装置30の姿勢を検出してもよい。この場合、端末装置30は、慣性センサ38を有さなくてもよい。
【0194】
このように、本変形例では、位置情報PINF及び姿勢情報AINFが端末装置30により生成される。そして、ロボットコントローラ10の情報取得部121は、端末装置30により生成された位置情報PINF及び姿勢情報AINFを取得する。
【0195】
なお、本変形例におけるロボットシステム1Aの構成は、
図12に示した例に限定されない。例えば、マークMK3は、QRコード(登録商標)であってもよい。また、LED等の発光素子がマークMK3として採用されてもよい。また、例えば、撮像装置39が3次元カメラである場合、マークMK3の数は1つでもよい。
【0196】
以上、本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。また、本変形例では、端末装置30は、ロボット20の所定の位置との相対的な位置関係が既知である位置に配置されたマークMK3を撮像する撮像装置39を有する。そして、端末装置30は、撮像装置39が撮像したマークMK3の画像を用いて、所定の位置に対する端末装置30の位置を算出し、算出した位置を示す情報を位置情報PINFとして生成する。ロボットコントローラ10の情報取得部121は、端末装置30により生成された位置情報PINFを取得する。すなわち、本変形例では、端末装置30とは別に撮像装置40を配置する必要がないため、ロボットシステム1Aを設置するためのスペースが大きくなること、及び、ロボットシステム1Aが有するロボット20等の装置の配置が煩雑になることを抑制することができる
【0197】
[第4変形例]
上述した第3変形例では、端末装置30の位置及び姿勢が端末装置30により特定される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、端末装置30の位置及び姿勢の一方又は両方は、ロボットコントローラ10により特定されてもよい。この場合、ロボットコントローラ10の情報取得部121は、例えば、撮像装置39が撮像したマークMK3a、MK3b及びMK3cの画像を示す画像情報と、撮像装置39の焦点距離を示す情報とを、端末装置30から取得する。そして、例えば、ロボットコントローラ10の情報生成部122は、第3変形例において説明された方法(撮像装置39が撮像したマークMK3の画像を用いて、端末装置30の位置を算出する方法)と同様の方法により、端末装置30の位置等を特定する。
【0198】
マークMK3a、MK3b及びMK3cの画像を示す画像情報から端末装置30の位置をロボットコントローラ10が特定する場合、当該画像情報は「位置情報」に該当する。同様に、マークMK3a、MK3b及びMK3cの画像を示す画像情報から端末装置30の姿勢をロボットコントローラ10が特定する場合、当該画像情報は、「姿勢情報」に該当する。本変形例においても、上述した第3変形例と同様の効果を得ることができる。
【0199】
[第5変形例]
上述した実施形態及び第1変形例では、姿勢情報AINFが端末装置30により生成される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、姿勢情報AINFは、撮像装置(検出装置)40が撮像したマークMK1及びMK2の画像に基づいて、撮像装置40により生成されてもよい。この場合、情報取得部121は、撮像装置40により生成された位置情報PINF及び姿勢情報AINFを取得する。あるいは、第4変形例と同様に、端末装置30の位置及び姿勢の一方又は両方は、ロボットコントローラ10により特定されてもよい。この場合、ロボットコントローラ10の情報取得部121は、例えば、撮像装置40が撮像したマークMK1及びMK2の画像を示す画像情報と、撮像装置40の焦点距離を示す情報とを、撮像装置40から取得する。本変形例においても、上述した実施形態及び第1変形例と同様の効果を得ることができる。
【0200】
[第6変形例]
上述した実施形態及び変形例では、端末装置30等の可搬型の情報処理装置が「移動体」として採用される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、マークMK1及びMK2が設けられ、作業者Uにより移動可能であれば、情報処理装置以外の物体が、「移動体」として採用されてもよい。情報処理装置以外の物体が「移動体」として採用される場合、例えば、ロボットシステム1は、送信操作を受け付けたことを契機に、位置情報PINFの送信を指示する指示情報TINF等を撮像装置(検出装置)40に送信する送信指示装置をさらに有する。例えば、作業者Uは、両手の一方で、マークMK1及びMK2が設けられた物体を把持し、両手の他方で送信指示装置を操作する。物体の姿勢及び位置は、撮像装置40が撮像したマークMK1及びMK2の画像に基づいて、特定される。物体の姿勢及び位置の特定は、撮像装置40により実行されてもよいし、ロボットコントローラ10により実行されてもよい。本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。
[第7変形例]
上述した実施形態及び変形例では、ロボット20の先端部HPの位置及び姿勢を規定する動作情報が生成される場合を例示したが、本発明はこのような態様に限定されるものではない。例えば、動作情報は、ロボット20の先端部HPの位置及び姿勢のうち、位置のみを規定する情報であってもよい。この場合、例えば、情報取得部121は、端末装置30の位置を示す位置情報PINFを取得する。また、情報生成部122は、情報取得部121が取得した位置情報PINFに基づいて、ロボット20の先端部HPの位置を規定する動作情報を生成する。本変形例においても、上述した実施形態及び変形例と同様の効果を得ることができる。
なお、上述した実施形態及び変形例における移動体30を保有する作業者Uは、本体のロボット20から所定の距離だけシフトした位置でティーチングを行っても構わない。その場合、所定の距離だけ移動体30の位置情報をオフセットすることにより、ティーチングを完結することが出来る。このようにすることにより、ロボット20本体に邪魔されることなくティーチングできると共に、より複雑なティーチングを行うことが出来る。例えば作業者Uの手首に移動体30をつけ、所定時間の間隔でティーチングを自動的に行うことで、実際の作業中にティーチングを行うことができ、「ティーチング」という、わざわざ別の作業が不要になる効果も得られる。また、ダンサーなどあらゆる激しく細かい動きをする人の動作をティーチングすることも可能になる。
【符号の説明】
【0201】
1、1A…ロボットシステム、10…ロボットコントローラ、12…処理装置、13…メモリ、14…通信装置、15…操作装置、16…表示装置、17…ドライバ回路、20…ロボット、30…端末装置、32…処理装置、33…メモリ、34…通信装置、35…操作装置、36…表示装置、37…スピーカ、38…慣性センサ、39…撮像装置、40…撮像装置(検出装置)、120…ロボット制御部、121…情報取得部、122…情報生成部、123…動作制御部、124…表示制御部、125…警告部、320…端末制御部、322…操作通知部、324…姿勢検出部、326…警告制御部、328…表示制御部、AINF…姿勢情報、CHS…操作画面、HP…先端部、MTBL…動作テーブル、PINF…位置情報。