(58)【調査した分野】(Int.Cl.,DB名)
前記変化検知部は、前記画像入力装置により取得された画像のうち、前記作業対象物が搬送される前の画像と、前記作業対象物が搬送された後の画像との差分画像から、前記作業対象物の位置の変化を検知することを特徴とする請求項2記載のロボット教示装置。
前記制御プログラム作成部は、前記ロボットの制御プログラムに対応するロボットの動作制御信号を前記ロボットに出力することを特徴とする請求項1記載のロボット教示装置。
【発明を実施するための形態】
【0009】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面にしたがって説明する。
【0010】
実施の形態1.
図1はこの発明の実施の形態1によるロボット教示装置を示す構成図であり、
図2はこの発明の実施の形態1によるロボット教示装置におけるロボットコントローラ10のハードウェア構成図である。
図1及び
図2において、ウェアラブル機器1は作業者に装着され、画像入力装置2、マイク3、ヘッドマウントディスプレイ4及びスピーカ5を含んでいる。
画像入力装置2は1台のカメラを含んでおり、1台のカメラにより撮影された画像を取得する。
ここで、画像入力装置2に含まれているカメラは、被写体の二次元情報の他に、被写体までの距離を示す奥行き情報も取得可能なステレオカメラを想定している。あるいは、被写体の二次元情報の取得が可能な2次元カメラに対して、被写体までの距離を示す奥行き情報の取得が可能な深度センサが取り付けられているカメラを想定している。
なお、画像入力装置2により取得される画像としては、所定のサンプリング間隔で繰り返し撮影されたコマ撮り動画や、異なる時刻にそれぞれ撮影された静止画などが考えられる。
【0011】
ロボットコントローラ10はウェアラブル機器1の画像入力装置2により取得された画像から、ロボット30の制御プログラムを作成して、その制御プログラムに対応するロボット30の動作制御信号をロボット30に出力する装置である。
なお、ウェアラブル機器1とロボットコントローラ10の間の接続は、有線接続でもよいし、無線接続でもよい。
【0012】
画像記録部11は例えばRAM(Random Access Memory)やハードディスクなどの記憶装置41によって実現されるものであり、画像入力装置2により取得された画像を記録する。
変化検知部12は例えばCPU(Central Processing Unit)を搭載している半導体集積回路、ワンチップマイコン、あるいは、GPU(Graphics Processing Unit)などを実装している変化検知処理回路42によって実現されるものであり、画像記録部11に記録されている画像から、作業対象物の位置の変化を検知する処理を実施する。即ち、画像記録部11に記録されている画像のうち、作業対象物が搬送される前の画像と、作業対象物が搬送された後の画像との差分画像を求め、その差分画像から作業対象物の位置の変化を検知する処理を実施する。
【0013】
手指動作検知部13は例えばCPUを搭載している半導体集積回路、ワンチップマイコン、あるいは、GPUなどを実装している手指動作検知処理回路43によって実現されるものであり、画像記録部11に記録されている画像から作業者の手指の動作を検知する処理を実施する。
データベース14は例えば記憶装置41によって実現されるものであり、作業者の複数の手指の動作として、例えば、作業対象物を回転させる際の動作、作業対象物を押し込む際の動作、作業対象物をスライドさせる際の動作などを記録している。
また、データベース14は各々の手指の動作と作業者の作業内容との対応関係を記録している。
【0014】
作業内容推定部15は例えばCPUを搭載している半導体集積回路、あるいは、ワンチップマイコンなどを実装している作業内容推定処理回路44によって実現されるものであり、手指動作検知部13により検知された手指の動作から、作業対象物に対する作業者の作業内容を推定する処理を実施する。即ち、手指動作検知部13により検知された手指の動作と、データベース14に記録されている作業者の複数の手指の動作とを照合して、手指動作検知部13により検知された手指の動作と対応関係がある作業内容を特定する処理を実施する。
【0015】
制御プログラム作成部16は制御プログラム作成処理部17と動作制御信号出力部18とを含んでいる。
制御プログラム作成処理部17は例えばCPUを搭載している半導体集積回路、あるいは、ワンチップマイコンなどを実装している制御プログラム作成処理回路45によって実現されるものであり、作業内容推定部15により推定された作業内容と、変化検知部12により検知された作業対象物の位置の変化とから、その作業内容の再現と作業対象物の搬送を行うロボット30の制御プログラムを作成する処理を実施する。
動作制御信号出力部18は例えばCPUを搭載している半導体集積回路、あるいは、ワンチップマイコンなどを実装している動作制御信号出力処理回路46によって実現されるものであり、制御プログラム作成処理部17により作成された制御プログラムに対応するロボット30の動作制御信号をロボット30に出力する処理を実施する。
【0016】
映像音声出力部19はヘッドマウントディスプレイ4及びスピーカ5に対する出力インタフェース機器47と、画像入力装置2に対する入力インタフェース機器48とによって実現されるものであり、例えば、画像入力装置2により取得された画像をヘッドマウントディスプレイ4に表示するほか、作業内容の推定処理中である旨を示す情報や、位置変化の検知処理中である旨を示す情報などをヘッドマウントディスプレイ4に表示する処理を実施する。
また、映像音声出力部19は作業内容を指示するガイダンスなどに関する音声データをスピーカ5に出力する処理を実施する。
操作編集部20は画像入力装置2及びマイク3に対する入力インタフェース機器48と、画像入力装置2に対する出力インタフェース機器47とによって実現されるものであり、例えば、マイク3から入力された作業者の音声にしたがって画像記録部11に記録されている画像を編集する処理を実施する。
ロボット30はロボットコントローラ10から出力された動作制御信号にしたがって動作を行う装置である。
【0017】
図1の例では、ロボット教示装置におけるロボットコントローラ10の構成要素である画像記録部11、変化検知部12、手指動作検知部13、データベース14、作業内容推定部15、制御プログラム作成処理部17、動作制御信号出力部18、映像音声出力部19及び操作編集部20のそれぞれが専用のハードウェアで構成されているものを想定しているが、ロボットコントローラ10がコンピュータで構成されていてもよい。
図3はロボットコントローラ10がコンピュータで構成される場合のロボットコントローラ10のハードウェア構成図である。
ロボットコントローラ10がコンピュータで構成される場合、画像記録部11及びデータベース14をコンピュータのメモリ51上に構築するとともに、変化検知部12、手指動作検知部13、作業内容推定部15、制御プログラム作成処理部17、動作制御信号出力部18、映像音声出力部19及び操作編集部20の処理内容を記述しているプログラムをコンピュータのメモリ51に格納し、コンピュータのプロセッサ52がメモリ51に格納されているプログラムを実行するようにすればよい。
図4はこの発明の実施の形態1によるロボット教示装置におけるロボットコントローラ10の処理内容であるロボット制御プログラム作成方法を示すフローチャートである。
【0018】
図5は作業者の作業風景を示す説明図である。
図5では、ウェアラブル機器1である画像入力装置2、マイク3、ヘッドマウントディスプレイ4及びスピーカ5を装着している作業者が、部品箱K1に収納されている円筒形の作業対象物a1〜a8の中から、作業対象物a5を取り出して、作業台であるベルトコンベアに載って移動している部品箱K2の穴に、作業対象物a5を押し込む作業を行う例を示している。
以下、作業対象物a1〜a8を区別しない場合には、作業対象物aと称することがある。
【0019】
図6は作業者による作業直前の画像と作業直後の画像を示す説明図である。
作業直前の画像には、8本の作業対象物a1〜a8を収納している部品箱K1と、作業台であるベルトコンベアに載っている部品箱K2とが映っている。
また、作業直後の画像には、部品箱K1から作業対象物a5が抜き取られたことで、7本の作業対象物a1〜a4,a6〜a8を収納している部品箱K1と、作業対象物a5を収納している部品箱K2とが映っている。
以下、部品箱K1が映っている画像を部品箱画像A、部品箱K2が映っている画像を部品箱画像Bとする。
【0020】
図7はデータベース14に記録されている作業者の複数の手指の動作を示す説明図である。
図7では、作業者の複数の手指の動作の例として、作業対象物aを回転させる際の動作である回転運動の動作と、作業対象物aを押し込む際の動作である押込み運動の動作と、作業対象物aをスライドさせる際の動作であるスライド運動の動作とを示している。
【0021】
次に動作について説明する。
ウェアラブル機器1の画像入力装置2に含まれているカメラは、所定のサンプリング間隔で、作業対象物a1〜a8及び部品箱K1,K2を繰り返し撮影する(
図4のステップST1)。
画像入力装置2に含まれているカメラによって繰り返し撮影された画像は、ロボットコントローラ10の画像記録部11に記録される。
【0022】
ロボットコントローラ10の変化検知部12は、画像記録部11に記録されている画像から、作業対象物aの位置の変化を検知する(ステップST2)。
以下、変化検知部12による作業対象物aの位置の変化検知処理を具体的に説明する。
まず、変化検知部12は、画像記録部11に記録されている複数の画像を読み出し、読み出した各々の画像の中から、例えば、デジタルカメラに搭載されている顔画像の検出処理に用いられる一般的な画像センシング技術を利用して、作業対象物aを収納している部品箱K1の画像である部品箱画像Aと、部品箱K2の画像である部品箱画像Bとを抽出する。
【0023】
画像センシング技術については公知の技術であるため詳細な説明を省略するが、例えば、部品箱K1,K2及び作業対象物aの3次元形状を事前に記憶し、画像記録部11から読み出した画像内に存在している物体の3次元形状を、事前に記憶している3次元形状と照合することで、画像内に存在している物体が、部品箱K1,K2であるのか、作業対象物aであるのか、それ以外の物体であるのかを判別することができる。
【0024】
変化検知部12は、各々の画像の中から部品箱画像A,Bをそれぞれ抽出すると、各々の部品箱画像A,Bから、作業対象物a1〜a8の形状に関する複数の特徴点を検出して、複数の特徴点の3次元位置を特定する。
この実施の形態1では、作業対象物a1〜a8が部品箱K1又は部品箱K2に収納されている状態を想定しているため、作業対象物a1〜a8の形状に関する特徴点として、例えば、部品箱K1又は部品箱K2に収納されている状態での円筒の上端の中心点などが考えられる。特徴点についても、画像センシング技術を利用することで検出することができる。
【0025】
変化検知部12は、各々の部品箱画像A,Bから、作業対象物a1〜a8の形状に関する特徴点を検出して、特徴点の3次元位置を特定すると、作業対象物a1〜a8における特徴点の3次元位置の変化を検出する。
ここで、例えば、撮影時刻T
1,T
2,T
3の部品箱画像Aには、8本の作業対象物a1〜a8が映っている。撮影時刻T
4,T
5,T
6の部品箱画像Aには、7本の作業対象物a1〜a4,a6〜a8が映っているが、作業対象物a5が映っておらず、また、部品箱画像Bにも作業対象物a5が映っていない。撮影時刻T
7,T
8,T
9の部品箱画像Aには、7本の作業対象物a1〜a4,a6〜a8が映っており、部品箱画像Bには、1本の作業対象物a5が映っている場合を想定する。
このような場合、7本の作業対象物a1〜a4,a6〜a8は移動していないため、作業対象物a1〜a4,a6〜a8における特徴点の3次元位置の変化は検出されない。
一方、作業対象物a5は、撮影時刻T
3の後、撮影時刻T
7の前まで間に移動しているため、作業対象物a5における特徴点の3次元位置の変化が検出される。
【0026】
なお、作業対象物a1〜a8における特徴点の3次元位置の変化は、異なる撮影時刻Tにおける部品箱画像A同士の差分や、部品箱画像B同士の差分を求めることで、検出することができる。即ち、作業対象物aにおける特徴点の3次元位置の変化が無ければ、作業対象物aが差分画像に現れないが、作業対象物aにおける特徴点の3次元位置の変化があれば、作業対象物aが差分画像に現れるため、差分画像内の作業対象物aの有無から、作業対象物aにおける特徴点の3次元位置の変化の有無を判別することができる。
【0027】
変化検知部12は、作業対象物aにおける特徴点の3次元位置の変化を検出すると、変化直前の撮影時刻Tと、変化直後の撮影時刻Tとを特定する。
上記の例では、変化直前の撮影時刻Tとして撮影時刻T
3が特定され、変化直後の撮影時刻Tとして撮影時刻T
7が特定される。
図6には、撮影時刻T
3の部品箱画像A,Bと、撮影時刻T
7の部品箱画像A,Bとを表している。
【0028】
変化検知部12は、作業対象物a5における特徴点の3次元位置の変化を検出するとともに、変化直前の撮影時刻Tとして撮影時刻T
3を特定し、変化直後の撮影時刻Tとして撮影時刻T
7を特定すると、撮影時刻T
3の部品箱画像A内の作業対象物a5における特徴点の3次元位置と、撮影時刻T
7の部品箱画像B内の作業対象物a5における特徴点の3次元位置とから、作業対象物a5の位置の変化を示す移動データMを算出する。
例えば、撮影時刻T
3の部品箱画像A内の作業対象物a5における特徴点の3次元位置が(x
1,y
1,z
1)、撮影時刻T
7の部品箱画像B内の作業対象物a5における特徴点の3次元位置が(x
2,y
2,z
2)であるとすれば、下記の式(1)のように、作業対象物a5の移動量ΔMを算出する。
ΔM=(ΔM
x,ΔM
y,ΔM
z) (1)
ΔM
x=x
2−x
1
ΔM
y=y
2−y
1
ΔM
z=z
2−z
1
変化検知部12は、作業対象物a5の移動量ΔMと、移動前の3次元位置(x
1,y
1,z
1)と、移動後の3次元位置(x
2,y
2,z
2)とを含む移動データMを制御プログラム作成処理部17に出力する。
【0029】
ロボットコントローラ10の手指動作検知部13は、画像記録部11に記録されている画像から作業者の手指の動作を検知する(ステップST3)。
以下、手指動作検知部13による手指の動作の検知処理を具体的に説明する。
手指動作検知部13は、画像記録部11に記録されている複数の画像の中から、変化直前の画像から変化直後の画像までの一連の画像の読み出しを行う。
上記の例では、変化検知部12が変化直前の撮影時刻Tとして撮影時刻T
3を特定し、変化直後の撮影時刻Tとして撮影時刻T
7を特定しているので、画像記録部11に記録されている複数の画像の中から、撮影時刻T
3の画像、撮影時刻T
4の画像、撮影時刻T
5の画像、撮影時刻T
6の画像、撮影時刻T
7の画像の読み出しを行う。
【0030】
手指動作検知部13は、撮影時刻T
3〜T
7の画像を読み出すと、読み出した各々の画像の中から、例えば、画像センシング技術を利用して、作業者の手指が映っている部分を検知し、作業者の手指が映っている部分の画像(以下、「手指画像」と称する)を抽出する。
画像センシング技術については公知の技術であるため詳細な説明を省略するが、例えば、人間の手指の3次元形状を事前に記憶に登録し、画像記録部11から読み出した画像内に存在している物体の3次元形状を、事前に記憶している3次元形状と照合することで、画像内に存在している物体が作業者の手指であるか否かを判別することができる。
【0031】
手指動作検知部13は、各々の画像の中から手指画像をそれぞれ抽出すると、例えば、モーションキャプチャ技術を利用して、それぞれ抽出した手指画像から、作業者の手指の動作を検知する。
モーションキャプチャ技術は、以下の特許文献2にも開示されている公知の技術であるため詳細な説明を省略するが、例えば、人間の手指の形状に関する複数の特徴点を検出して、複数の特徴点の3次元位置の変化を追跡することで、作業者の手指の動作を検知することができる。
人間の手指の形状に関する特徴点としては、指の関節、指の先端、指の付け根、手首などが考えられる。
[特許文献2]特開2007−121217号公報
【0032】
この実施の形態1では、複数の手指画像に対する画像処理で、人間の手指の形状に関する複数の特徴点を検出し、複数の特徴点の3次元位置の変化を追跡することで、作業者の手指の動作を検知することを想定しているが、例えば、作業者の手指にマーカ付きグローブを装着している場合には、複数の手指画像に映っているマーカの位置を検出して、複数のマーカの3次元位置の変化を追跡することで、作業者の手指の動作を検知するようにしてもよい。
また、作業者の手指に力覚センサ付きグローブを装着している場合には、力覚センサのセンサ信号の変化を追跡することで、作業者の手指の動作を検知するようにしてもよい。
この実施の形態1では、作業対象物aを回転させる際の動作である回転運動の動作、作業対象物aを押し込む際の動作である押込み運動の動作、あるいは、作業対象物aをスライドさせる際の動作であるスライド運動の動作を検知することを想定しているが、検知動作は、これらの動作に限るものではなく、他の運動を検知するものであってもよい。
【0033】
ここで、
図8は作業者が作業対象物aを回転させる動作を行っているときの特徴点の変化を示す説明図である。
図8において、矢印は、複数の特徴点の間を結んでいるリンクであり、例えば、親指の手根中手関節の特徴点と、親指の中手指関節の特徴点と、親指の指節間関節の特徴点と、親指の先端の特徴点とを結んでいるリンクの変化を見れば、親指の動きの変化を確認することができる。
回転運動の動作としては、例えば、伸ばしている親指を時計方向に回転させながら、指節間関節を曲げた状態で、指節間関節より付け根部分が親指と略平行になっている人差指を時計方向に回転させている動作などが考えられる。
なお、
図8では、親指と人差指の変化に着目している動きと、手の甲の幅、長さ及び手首の向きの変化に着目している動きとを示している。
【0034】
ロボットコントローラ10の作業内容推定部15は、手指動作検知部13が作業者の手指の動作を検知すると、その手指の動作から作業対象物aに対する作業者の作業内容を推定する(ステップST4)。
即ち、作業内容推定部15は、手指動作検知部13により検知された手指の動作と、データベース14に記録されている作業者の複数の手指の動作とを照合して、手指動作検知部13により検知された手指の動作と対応関係がある作業内容を特定する。
図7の例では、回転運動の動作と、押込み運動の動作と、スライド運動の動作とがデータベース14に記録されているので、手指動作検知部13により検知された手指の動作と、データベース14に記録されている回転運動の動作、押込み運動の動作及びスライド運動の動作とを照合する。
【0035】
照合の結果、回転運動の動作、押込み運動の動作及びスライド運動の動作の中で、例えば、回転運動の動作の一致度が最も高ければ、作業者の作業内容が、回転運動の動作であると推定される。
また、押込み運動の動作の一致度が最も高ければ、作業者の作業内容が、押込み運動の動作であると推定され、スライド運動の動作の一致度が最も高ければ、作業者の作業内容が、スライド運動の動作であると推定される。
作業内容推定部15では、手指動作検知部13により検知された手指の動作が、データベース14に記録されている作業者の手指の動作と完全に一致していなくても、データベース14に記録されている作業者の手指の動作の中で、一致度が相対的に高い動作が、作業者の作業内容であると推測されるので、作業者の手指の一部が、例えば手のひら等に隠れていて画像に映っていない場合でも、作業者の作業内容を推定することができる。したがって、少ない台数のカメラでも、作業者の作業内容を推定することができる。
【0036】
ここでは説明の簡単化のために、回転運動の動作、押込み運動の動作及びスライド運動の動作がデータベース14に1つずつ記録されている例を示しているが、実際には、同じ回転運動でも、例えば、回転角度が異なる複数の回転運動の動作がデータベース14に記録されている。また、同じ押込み運動でも、例えば、押込み量が異なる複数の押込み運動の動作がデータベース14に記録されている。また、同じスライド運動でも、例えば、スライド量が異なる複数のスライド運動の動作がデータベース14に記録されている。
したがって、作業者の作業内容が、例えば、回転運動の動作であると推定されるだけでなく、回転角度が例えば60度の回転運動の動作であると推定される。
【0037】
ロボットコントローラ10の制御プログラム作成処理部17は、作業内容推定部15により推定された作業内容と、変化検知部12により検知された作業対象物aの位置の変化とから、その作業内容の再現と作業対象物aの搬送を行うロボット30の制御プログラムを作成する(ステップST5)。
即ち、制御プログラム作成処理部17は、変化検知部12から出力された移動データMから、部品箱K1に収納されている3次元位置(x
1,y
1,z
1)の作業対象物a5を部品箱K2の3次元位置(x
2,y
2,z
2)まで移動させる制御プログラムP1を作成する。
このとき、3次元位置(x
1,y
1,z
1)から3次元位置(x
2,y
2,z
2)への移動経路が、最短経路となるような制御プログラムP1が考えられるが、他の作業対象物a等が搬送経路に存在しているような場合には、他の作業対象物a等を迂回する経路となるような制御プログラムP1が作成される。
したがって、3次元位置(x
1,y
1,z
1)から3次元位置(x
2,y
2,z
2)への移動経路は、各種の経路が考えられるが、ロボット30の関節の自由度に基づいて、ロボット30のアームが移動可能な方向を考慮しながら、例えば、カーナビゲーション装置の経路探索技術を利用して、適宜、決定するようにすればよい。
【0038】
図9はロボット30が水平多関節型のロボットである場合の作業対象物a5の搬送例を示す説明図である。
ロボット30が水平多関節型のロボットである場合、3次元位置(x
1,y
1,z
1)に存在する作業対象物a5を真上に引き上げてから、水平方向に移動し、その後、作業対象物a5を3次元位置(x
2,y
2,z
2)まで下げるような制御プログラムP1を作成する。
図10はロボット30が垂直多関節型のロボットである場合の作業対象物a5の搬送例を示す説明図である。
ロボット30が垂直多関節型のロボットである場合、3次元位置(x
1,y
1,z
1)に存在する作業対象物a5を真上に引き上げてから、放物線を描くように移動し、その後、作業対象物a5を3次元位置(x
2,y
2,z
2)まで下げるような制御プログラムP1を作成する。
【0039】
次に、制御プログラム作成処理部17は、作業内容推定部15により推定された作業内容を再現するロボット30の制御プログラムP2を作成する。
例えば、作業内容推定部15により推定された作業内容が、回転角度が90度の回転運動の動作であれば、作業対象物aを90度回転させる制御プログラムP2を作成し、その作業内容が、押込み量が3cmの押込み運動の動作であれば、作業対象物aを3cm押し込む制御プログラムP2を作成する。また、その作業内容が、スライド量が5cmのスライド運動の動作であれば、作業対象物aを5cmスライドさせる制御プログラムP2を作成する。
なお、
図5、
図9及び
図10の例では、作業内容として、作業対象物a5を部品箱K2の穴に押し込む動作を想定している。
この実施の形態1では、部品箱K1に収納されている作業対象物a5を搬送してから、その作業対象物a5を部品箱K2の穴に押し込む作業例を示しているが、これに限るものではなく、例えば、部品箱K1に収納されている作業対象物a5を搬送せずに、部品箱K1に収納されている作業対象物a5を回転させる作業や、その作業対象物aを更に押し込む作業などであってもよい。このような作業の場合には、作業対象物a5を搬送する制御プログラムP1を作成せずに、作業内容推定部15により推定された作業内容を再現する制御プログラムP2だけを作成することになる。
【0040】
ロボットコントローラ10の動作制御信号出力部18は、制御プログラム作成処理部17が制御プログラムを作成すると、その制御プログラムに対応するロボット30の動作制御信号をロボット30に出力する(ステップST6)。
例えば、作業対象物aを回転させる場合、動作制御信号出力部18は、ロボット30が有する複数の関節のうち、どの関節を動かせばよいかを記憶しており、また、作業対象物aの回転量と、当該関節を動かすモータの回転量との対応関係を記憶しているので、動作対象の関節と接続されているモータを特定する情報と、制御プログラムが示す作業対象物aの回転量に対応するモータの回転量とを示す動作制御信号を作成して、その動作制御信号をロボット30に出力する。
【0041】
例えば、作業対象物aを押し込む場合、動作制御信号出力部18は、ロボット30が有する複数の関節のうち、どの関節を動かせばよいかを記憶しており、また、作業対象物aの押込み量と、当該関節を動かすモータの回転量との対応関係を記憶しているので、動作対象の関節と接続されているモータを特定する情報と、制御プログラムが示す作業対象物aの押込み量に対応するモータの回転量とを示す動作制御信号を作成して、その動作制御信号をロボット30に出力する。
例えば、作業対象物aをスライドさせる場合、動作制御信号出力部18は、ロボット30が有する複数の関節のうち、どの関節を動かせばよいかを記憶しており、また、作業対象物aのスライド量と、当該関節を動かすモータの回転量との対応関係を記憶しているので、動作対象の関節と接続されているモータを特定する情報と、制御プログラムが示す作業対象物aのスライド量に対応するモータの回転量とを示す動作制御信号を作成して、その動作制御信号をロボット30に出力する。
ロボット30は、動作制御信号出力部18から動作制御信号を受けると、その動作制御信号が示す回転量だけ、その動作制御信号が示すモータを回転させることで、作業対象物aに対する作業を行う。
【0042】
ここで、作業者は、ヘッドマウントディスプレイ4を装着しているが、そのヘッドマウントディスプレイ4が、外界が透けて見える光学シースルータイプであれば、ヘッドマウントディスプレイ4を装着していても、ガラス越しに部品箱K1,K2や作業対象物aを見ることができる。
一方、そのヘッドマウントディスプレイ4が、ビデオタイプであれば、部品箱K1,K2や作業対象物aを直接見ることができないので、映像音声出力部19が、画像入力装置2により取得された画像をヘッドマウントディスプレイ4に表示することで、作業者が、部品箱K1,K2や作業対象物aを確認できるようにする。
【0043】
映像音声出力部19は、変化検知部12が作業対象物の位置の変化を検知する処理を実施している場合、位置の変化の検知処理中である旨を示す情報をヘッドマウントディスプレイ4に表示し、また、作業内容推定部15が作業者の作業内容を推定する処理を実施している場合、作業内容の推定処理中である旨を示す情報をヘッドマウントディスプレイ4に表示する。
作業者は、ヘッドマウントディスプレイ4の表示内容を見ることで、現在、ロボット30の制御プログラムの作成が行われていることを認識することができる。
また、映像音声出力部19は、例えば、作業内容を指示するガイダンスが事前に登録されている場合、あるいは、外部からガイダンスが与えられる場合、そのガイダンスに関する音声データをスピーカ5に出力する。
これにより、作業者は、作業内容を確実に把握して、正しい作業を円滑に行うことができる。
【0044】
作業者は、マイク3を通じて、ロボットコントローラ10の操作を行うことができる。
即ち、作業者がロボットコントローラ10の操作内容を発すると、操作編集部20が、マイク3から入力された作業者の音声を解析して、ロボットコントローラ10の操作内容を認識する。
また、作業者が、ロボットコントローラ10の操作内容に対応するジェスチャを行うと、操作編集部20が、画像入力装置2により取得された画像を解析して、ロボットコントローラ10の操作内容を認識する。
ロボットコントローラ10の操作内容として、部品箱K1,K2や作業対象物aが映っている画像を、再度、ヘッドマウントディスプレイ4に表示する再生操作や、再生中の画像に映っている一連の作業の中の一部の作業を指定して、一部の作業のやり直しを要求する操作などが考えられる。
【0045】
操作編集部20は、部品箱K1,K2や作業対象物aが映っている画像の再生操作を受けると、画像記録部11に記録されている画像を読み出して、その画像をヘッドマウントディスプレイ4に表示する。
また、操作編集部20は、一部の作業のやり直しを要求する操作を受けると、スピーカ5から一部の作業のやり直しを促すアナウンスを出力させるとともに、画像入力装置2に対して画像の取得指令を出力する。
【0046】
操作編集部20は、作業者が一部の作業のやり直しを行うと、画像入力装置2により取得された一部の作業が映っている画像を、画像記録部11に記録されている画像にはめ込む画像編集を行う。
これにより、画像記録部11に記録されている画像は、一連の作業のうち、一部の作業がやり直された画像に変更される。
操作編集部20は、画像の編集が完了すると、画像記録部11から編集後の画像を取得する指示を変化検知部12及び手指動作検知部13に出力する。
これにより、変化検知部12及び手指動作検知部13の処理が開始され、最終的には、編集後の画像に基づいて、ロボット30の動作制御信号が作成されて、その動作制御信号がロボット30に出力される。
【0047】
以上で明らかなように、この実施の形態1によれば、画像入力装置2により取得された画像から作業者の手指の動作を検知する手指動作検知部13と、手指動作検知部13により検知された手指の動作から作業対象物aに対する作業者の作業内容を推定する作業内容推定部15とを設け、制御プログラム作成部16が、作業内容推定部15により推定された作業内容を再現するロボット30の制御プログラムを作成するように構成したので、数多くのカメラを設置することなく、ロボット30の制御プログラムを作成することができる効果を奏する。
即ち、作業内容推定部15では、手指動作検知部13により検知された手指の動作が、データベース14に記録されている作業者の手指の動作と完全に一致していなくても、他の動作より一致度が相対的に高い動作が、作業者の作業内容であると推測されるので、作業者の手指の一部が、例えば手のひら等に隠れていて画像に映っていない場合でも、作業者の作業内容を推定することができる。したがって、数多くのカメラを設置することなく、ロボット30の制御プログラムを作成することができる。
【0048】
また、この実施の形態1によれば、画像入力装置2により取得された画像から、作業対象物aの位置の変化を検知する変化検知部12を備え、制御プログラム作成部16が、作業内容推定部15により推定された作業内容と、変化検知部12により検知された作業対象物の位置の変化とから、作業内容の再現と作業対象物aの搬送を行うロボットの制御プログラムを作成するように構成したので、作業対象物aの搬送を伴う場合でも、ロボット30の制御プログラムを作成することができる効果を奏する。
【0049】
また、この実施の形態1によれば、画像入力装置として、ウェアラブル機器1に実装されている画像入力装置2が用いられるように構成したので、作業台の近辺に固定のカメラを設置することなく、ロボット30の制御プログラムを作成することができる効果を奏する。
【0050】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
画像入力装置(2)により取得された画像から作業対象物の位置の変化を検知する変化検知部(12)と、画像入力装置(2)により取得された画像から作業者の手指の動作を検知する手指動作検知部(13)と、手指動作検知部(13)により検知された手指の動作から作業対象物に対する作業者の作業内容を推定する作業内容推定部(15)とを設け、制御プログラム作成部(16)が、作業内容推定部(15)により推定された作業内容と、変化検知部(12)により検知された作業対象物の位置の変化とから、作業内容の再現と作業対象物の搬送を行うロボット(30)の制御プログラムを作成する。