以下、本発明の揺動角制御方法、三次元計測装置およびロボットシステムを添付図面に示す実施形態に基づいて詳細に説明する。
図1は、本発明の好適な実施形態に係るロボットシステムの全体構成を示す図である。図2は、三次元計測装置の全体構成を示す図である。図3は、図2に示す三次元計測装置が有する光走査部を示す平面図である。図4は、光走査部に印加する駆動信号を示す図である。図5は、投影部により投影されるパターン光の一例を示す平面図である。図6は、位相シフト法を用いた三次元計測の手順を示すフローチャートである。図7は、駆動電圧の電圧を変更するタイミングを示すタイミングチャートである。図8は、駆動信号の電圧を変更する手順を示すフローチャートである。図9ないし図11は、それぞれ、駆動電圧の電圧を変更するタイミングを示すタイミングチャートである。
図1に示すロボットシステム1は、人共存型のロボットシステムであり、ロボット2と、レーザー光Lを用いて対象物Xの三次元計測を行う三次元計測装置4と、三次元計測装置4の計測結果に基づいてロボット2の駆動を制御するロボット制御装置5と、ロボット制御装置5と通信可能なホストコンピューター6と、を有する。これら各部は、有線または無線により通信可能とされ、該通信は、インターネットのようなネットワークを介してなされてもよい。なお、ロボットシステム1は、人共存型のものに限定されない。
-ロボット-
ロボット2は、例えば、精密機器やこれを構成する部品の給材、除材、搬送および組立等の作業を行うロボットである。ただし、ロボット2の用途としては、特に限定されない。本実施形態のロボット2は、6軸ロボットであり、図1に示すように、床や天井に固定されるベース21と、ベース21に連結されたロボットアーム22と、を有する。
ロボットアーム22は、ベース21に第1軸O1まわりに回動自在に連結された第1アーム221と、第1アーム221に第2軸O2まわりに回動自在に連結された第2アーム222と、第2アーム222に第3軸O3まわりに回動自在に連結された第3アーム223と、第3アーム223に第4軸O4まわりに回動自在に連結された第4アーム224と、第4アーム224に第5軸O5まわりに回動自在に連結された第5アーム225と、第5アーム225に第6軸O6まわりに回動自在に連結された第6アーム226と、を有する。また、第6アーム226には、ロボット2に実行させる作業に応じたエンドエフェクター24が装着される。
また、ロボット2は、ベース21に対して第1アーム221を回動させる第1駆動装置251と、第1アーム221に対して第2アーム222を回動させる第2駆動装置252と、第2アーム222に対して第3アーム223を回動させる第3駆動装置253と、第3アーム223に対して第4アーム224を回動させる第4駆動装置254と、第4アーム224に対して第5アーム225を回動させる第5駆動装置255と、第5アーム225に対して第6アーム226を回動させる第6駆動装置256と、を有する。第1~第6駆動装置251~256は、それぞれ、例えば、駆動源としてのモーターと、モーターの駆動を制御するコントローラーと、モーターの回転量を検出するエンコーダーと、を有する。そして、第1~第6駆動装置251~256は、それぞれ、ロボット制御装置5によって独立して制御される。
ロボット2としては、本実施形態の構成に限定されず、例えば、ロボットアーム22が有するアームの数が1本~5本であってもよいし、7本以上であってもよい。また、例えば、ロボット2の種類は、スカラロボットや、2つのロボットアーム22を有する双腕ロボットであってもよい。
-ロボット制御装置-
ロボット制御装置5は、ホストコンピューター6からロボット2の位置指令を受け、各アーム221~226が受けた位置指令に応じた位置となるように、第1~第6駆動装置251~256の駆動をそれぞれ独立して制御する。ロボット制御装置5は、例えば、コンピューターから構成され、情報を処理するプロセッサー(CPU)と、プロセッサーに通信可能に接続されたメモリーと、外部インターフェースと、を有する。メモリーにはプロセッサーにより実行可能な各種プログラムが保存され、プロセッサーは、メモリーに記憶された各種プログラム等を読み込んで実行することができる。
-三次元計測装置-
三次元計測装置4は、位相シフト法を用いて対象物Xの三次元計測を行う。図2に示すように、三次元計測装置4は、対象物Xを含む領域にレーザー光Lにより形成したパターン光PLを投影する投影部41と、パターン光PLが投影された対象物Xを含む領域を撮像した撮像画像を取得する撮像部47と、投影部41および撮像部47の駆動を制御する制御部48と、撮像画像に基づいて対象物Xの三次元形状を計測する計測部49と、を備える。なお、三次元計測の手法は、位相シフト法に限定されない。
これら各構成要素のうち、少なくとも投影部41および撮像部47は、それぞれ、ロボット2の第5アーム225に固定されている。そのため、投影部41および撮像部47の相対的な位置関係は、固定されている。また、投影部41は、第5アーム225の先端側すなわちエンドエフェクター24側に向けてレーザー光Lを照射するように配置され、撮像部47は、第5アーム225の先端側を向き、レーザー光Lの照射範囲を含む領域を撮像するように配置されている。
ここで、第5アーム225の先端側にエンドエフェクター24が位置する関係は、第5アーム225以外の第1~第4アーム221~224、第6アーム226が動いても維持される。そのため、第5アーム225に投影部41および撮像部47を固定することにより、三次元計測装置4は、常に、エンドエフェクター24の先端側にレーザー光Lを出射することができると共に、エンドエフェクター24の先端側を撮像することができる。したがって、エンドエフェクター24により対象物Xを把持しようとするときの姿勢、つまり、エンドエフェクター24が対象物Xに対して如何なる姿勢で対向しても、当該姿勢において対象物Xに向けてレーザー光Lを照射することができると共に、対象物Xを撮像することができる。そのため、より確実に対象物Xの三次元計測を行うことができる。
ただし、投影部41および撮像部47の配置は、特に限定されず、第1~第4アーム221~224や第6アーム226に固定されていてもよい。また、投影部41および撮像部47のいずれか一方は、ベース21、床、天井、壁等の可動しない部位に固定されていてもよい。
投影部41は、対象物Xに向けてレーザー光Lを照射することにより、対象物Xに対し図5に示す縞状のパターン光PLを投影する機能を有する。投影部41は、図2に示すように、レーザー光Lを出射するレーザー光源を備える光出射部42と、光出射部42から出射されたレーザー光Lが通過する複数のレンズを含む光学系43と、光学系43を通過したレーザー光Lを対象物Xに向けて走査する光走査部44と、光走査部44の温度を検出する温度センサー45と、光走査部44が有するミラー444の揺動角を検出する揺動角検出部46と、を有する。光出射部42は、駆動制御部483の制御により、レーザー光源の点灯、消灯が制御される。光出射部42からは、レーザー光源の作動状態を示す情報である光強度情報Ipが出力され、情報受付部481に入力される。光出射部42のレーザー光源としては、特に限定されず、例えば、垂直共振器面発光レーザー(VCSEL)、外部共振器型垂直面発光レーザー(VECSEL)等の半導体レーザーを用いることができる。なお、「光走査部44の温度」とは、光走査部44自体の温度の意と、光走査部44の周辺気体の温度の意とを含む。
光学系43は、光出射部42から出射されるレーザー光Lを対象物X付近に集光する集光レンズ431と、集光レンズ431によって集光されたレーザー光Lを後述する揺動軸Jと平行な方向すなわち図2の紙面奥行き方向に延びるライン状とするロッドレンズ432と、を有する。
光走査部44は、ロッドレンズ432によってライン状となったレーザー光Lを走査する機能を有する。これにより、レーザー光Lを二次元的すなわち面状に拡散させて照射することができる。光走査部44としては、特に限定されず、例えば、MEMS(Micro Electro Mechanical Systems)、ガルバノミラー、ポリゴンミラー等を用いることができる。
本実施形態の光走査部44は、MEMSで構成されている。図3に示すように、光走査部44は、板状の可動部441と、可動部441を支持する枠状の支持部442と、可動部441と支持部442とを接続し、可動部441を支持部442に対して揺動軸Jまわりに揺動可能とする梁部443と、可動部441の表面に配置され、レーザー光Lを反射するミラー444と、可動部441の裏面に設けられた永久磁石445と、永久磁石445と対向配置されたコイル446と、を有する。このような光走査部44は、揺動軸Jがライン状のレーザー光Lの延在方向とほぼ一致するように配置されている。そして、コイル446に駆動信号Vdが印加されると、可動部441が揺動軸Jまわりに所定の周期で正・逆交互、すなわち、第1回転方向とこれとは逆の第2回転方向とに揺動する。これにより、後述する所定のタイミングで光出射部42が作動したとき、ライン状のレーザー光Lが面状に走査される。
なお、駆動信号Vdとしては、ミラー444を揺動軸Jまわりに揺動させることができれば、特に限定されず、例えば、図4に示すような正弦波状の交流電圧とすることができる。また、駆動信号Vdの周波数は、ミラー444と梁部443とからなる振動系の共振周波数よりも十分に低い。これにより、ミラー444を非共振で駆動することができ、ミラー444の姿勢制御が容易となる。
揺動角検出部46は、図3に示すように、梁部443と支持部442との境界部に設けられたピエゾ抵抗部461を有する。ピエゾ抵抗部461は、可動部441が揺動軸Jまわりに揺動するのに伴って支持部442に発生する応力に応じて抵抗値が変化する。そのため、ピエゾ抵抗部461の抵抗値変化に基づいて、可動部441の揺動軸Jまわりの傾きすなわちミラー444の揺動角を検知することができる。ただし、揺動角検出部46としては、ミラー444の揺動角を検出することができれば、特に限定されない。
ここで、光走査部44は、温度によってミラー444の揺動軸Jまわりの揺動角が変化する。つまり、コイル446に印加する駆動信号Vdが一定にも関わらず、光走査部44の温度が変化するとミラー444の揺動軸Jまわりの揺動角が変化する。これは、例えば、温度によってコイル446のインピーダンスが変化したり、梁部443の捩じり剛性(ばね定数)が変化したりすることによる。なお、本実施形態では、温度上昇に伴ってミラー444の揺動角が小さくなる。
このように、ミラー444の揺動角が変化すると、それに伴ってレーザー光Lの走査領域の形状や位置が変化してしまい、描画されるパターン光PLの形状や位置がずれてしまう。そこで、三次元計測装置4では、光走査部44の温度を検出する温度センサー45を設け、温度センサー45の検出結果すなわち温度情報Itに基づいて、ミラー444の揺動角が所定範囲内に収まるように、好ましくは前記所定範囲内でかつ一定となるように駆動信号Vdの振幅Wを制御する。所定範囲は、例えば、12時間のロボット2の非動作期間の後、ロボット2が動作を開始し、三次元計測装置4により最初の三次元計測を行う際の、ミラー444の揺動角の範囲のことを示す。
以上、投影部41について説明したが、その構成としては、対象物Xにパターン光PLを投影することができれば、特に限定されない。例えば、本実施形態では、光学系43によってレーザー光Lをライン状に拡散しているが、これに限定されず、例えば、MEMSやガルバノミラーを用いてライン状に拡散させてもよい。つまり、2つの光走査部44を用いてレーザー光Lを二次元走査してもよい。また、例えば、2軸自由度を有するジンバル型のMEMSを用いてレーザー光Lを二次元走査してもよい。
撮像部47は、少なくとも1つの対象物Xにパターン光PLが投影されている状態を撮像する。図2に示すように、撮像部47は、例えば、CMOSイメージセンサー、CCDイメージセンサー等の撮像素子472と集光レンズ473とを備えたカメラ471で構成されている。カメラ471は、計測部49に接続され、画像データを計測部49に送信する。
図2に示すように、制御部48は、温度センサー45から出力される検出信号すなわち光走査部44の温度に関する温度情報Itおよび揺動角検出部46から出力される検出信号すなわちミラー444の揺動軸Jまわりの傾きに関する角度情報Iθを受け付ける情報受付部481と、情報受付部481が受け付けた角度情報Iθおよび光強度情報Ipに基づいて、投影部41および撮像部47の駆動を制御する駆動制御部483と、駆動制御部483からの指令に基づいて駆動信号Vdを生成し、生成した駆動信号Vdをコイル446に印加するミラー駆動部484と、を有する。
このような制御部48は、例えば、コンピューターから構成され、情報を処理するプロセッサー(CPU)と、プロセッサーに通信可能に接続されたメモリーと、外部インターフェースと、を有する。メモリーにはプロセッサーにより実行可能な各種プログラムが記憶されており、プロセッサーは、メモリーに記憶された各種プログラム等を読み込んで実行することができる。
駆動制御部483は、角度情報Iθに基づいてミラー444が所定周期かつ所定揺動角で揺動するような駆動信号Vdを決定する。ミラー駆動部484は、駆動制御部483で決定された駆動信号Vdを生成してコイル446に印加する。この際、駆動制御部483は、温度センサー45の検出結果と予め記憶されているデータとに基づいて駆動信号Vdの更新用の電圧Vを決定するフィードフォワード制御を行うことにより、ミラー444をより好ましい揺動角で揺動させる。この制御については後に詳細に説明する。
また、駆動制御部483は、情報受付部481が受け付けた角度情報Iθに基づいてミラー444の揺動と同期させて光出射部42からレーザー光Lを出射し、例えば、図5に示すような、輝度値の明暗で表現した縞模様の繰返し周期fを有するパターン光PLを対象物X上に投影する。さらに、駆動制御部483は、カメラ471の駆動を制御し、パターン光PLが投影されている状態の対象物Xを含む領域を撮像する。
また、駆動制御部483は、情報受付部481が受け付けた角度情報Iθに基づいて光走査部44の異常、特にミラー444が正常に揺動していないことを検出する。駆動制御部483は、光走査部44の異常を検出した場合、レーザー光Lの出射を停止する。これにより、例えば、故障によりミラー444が止まっているにも関わらずレーザー光Lが出射され続け、レーザー光が一点に連続して照射され続けてしまうといった不具合を抑制することができ、より安全な三次元計測装置4となる。光走査部44の異常を検出した場合、光走査部44を制御してもよい。具体的には、ミラー444の揺動角を所定範囲よりも大きくする制御である。なお、光走査部44の異常は、例えば、駆動信号Vdと角度情報Iθとを比較することにより検出することができる。
次に、対象物Xの三次元計測に用いる位相シフト法について説明する。図6に示すように、駆動制御部483は、対象物Xに第1周期f1をもつ第1パターン光PL1を投影し、第1パターン光PL1が投影された対象物Xを含む領域をカメラ471で撮像するよう各部を制御する第1撮像ステップS1と、対象物Xに第1周期f1よりも短い第2周期f2をもつ第2パターン光PL2を投影し、第2パターン光PL2が投影された対象物Xを含む領域をカメラ471で撮像するよう各部を制御する第2撮像ステップS2と、対象物Xに第2周期f2よりも短い第3周期f3をもつ第3パターン光PL3を投影し、第3パターン光PL3が投影された対象物Xを含む領域をカメラ471で撮像するよう各部を制御する第3撮像ステップS3と、対象物Xに第3周期f3よりも短い第4周期f4をもつ第4パターン光PL4を投影し、第4パターン光PL4が投影された対象物Xを含む領域をカメラ471で撮像するよう各部を制御する第4撮像ステップS4と、を有する。
このように、駆動制御部483は、位相シフト法の中でも異なる周期fを有する複数のパターン光PLを用いる「複数周期位相シフト法」を用いて対象物Xの三次元計測を行う。位相シフト法においては、パターン光PLの周期fが長い程、計測レンジが拡大するが、深度分解能が低下し、パターン光PLの周期fが短い程、計測レンジが縮小するが、深度分解能が向上する。そこで、複数周期位相シフト法を用いることにより、広い計測レンジと高い深度分解能との両立を図ることができる。ただし、複数周期位相シフト法としては、特に限定されず、例えば、複数周期で周期毎に複数回計測する手法であってもよいし、複数周期で周期毎に異なった回数計測する手法であってもよい。
また、駆動制御部483は、第1撮像ステップS1において、対象物Xに第1パターン光PL1をπ/2ずつ位相をずらして4回投影し、その都度、第1パターン光PL1が投影された対象物Xを含む領域をカメラ471で撮像するよう各部を制御する。このことは、第2撮像ステップS2、第3撮像ステップS3および第4撮像ステップS4についても同様である。
計測部49は、第1~第4撮像ステップS1~S4において撮像部47が取得した複数の撮像画像に基づいて、対象物Xの三次元計測を行う。具体的には、対象物Xの姿勢、位置(空間座標)等を含む三次元情報を算出する。そして、計測部49は、算出した対象物Xの三次元情報をホストコンピューター6に送信する。
以上、位相シフト法について説明したが、これに限定されず、例えば、第2撮像ステップS2以降を省略してもよい。また、反対に、第5撮像ステップ、第6撮像ステップまたはそれ以上のステップを有していてもよい。ステップを増やすほど、計測レンジの拡大と深度分解能の向上とを図ることができるが、撮影回数が増す分、撮像画像を取得するのに要する時間が増えて、ロボット2の稼働効率が低下する。そのため、三次元計測の精度および計測レンジとロボット2の稼働効率との兼ね合いからステップの数を適宜設定すればよい。
また、第1撮像ステップS1において、位相をずらした第1パターン光PL1を投影する回数は、4回に限定されず、撮影結果から位相を計算できる回数、すなわち、少なくとも3回以上であればよい。この回数を増やす程、より精度よく位相を計算することができるが、カメラ471による撮像回数が増す分、撮像画像を取得するのに要する時間が増えて、ロボット2の稼働効率が低下する。そのため、三次元計測の精度とロボット2の稼働効率との兼ね合いから第1パターン光PL1の投影回数を適宜設定すればよい。第2撮像ステップS2、第3撮像ステップS3および第4撮像ステップS4についても同様である。
また、パターン光PLとしては、位相シフト法に用いることができるものであれば、特に限定されない。
-ホストコンピューター-
ホストコンピューター6は、計測部49が算出した対象物Xの三次元情報からロボット2の位置指令を生成し、生成した位置指令をロボット制御装置5に送信する。ロボット制御装置5は、ホストコンピューター6から受信した位置指令に基づいて第1~第6駆動装置251~256をそれぞれ独立して駆動し、第1~第6アーム221~226を指示された位置に移動させる。なお、本実施形態では、ホストコンピューター6と計測部49とが別体となっているが、これに限定されず、ホストコンピューター6に計測部49としての機能が搭載されていてもよい。
以上、ロボットシステム1の全体構成について簡単に説明した。次に、三次元計測装置4による三次元測定について詳細に説明する。本実施形態のロボットシステム1では、まず、ロボットアーム22を対象物Xの三次元計測を行うための姿勢とし、次に、ロボットアーム22が前記姿勢で停止している状態において光走査部44の駆動を開始して可動部441を揺動軸Jまわりに揺動させ、次に、光出射部42からレーザー光Lを出射してパターン光PLを対象物Xに投影し、次に、パターン光PLが投影された対象物Xを含む領域をカメラ471で撮像することにより対象物Xの三次元計測を行う。
このように、ロボットアーム22が停止してから光走査部44の駆動を開始することにより、光走査部44を常時駆動させておく場合と比べて、三次元計測装置4の省電力化を図ることができる。また、可動部441を揺動させてからレーザー光Lを出射することにより、レーザー光Lが常に走査され、同じ個所に照射され続けるのを抑制することができる。そのため、仮に、ロボット2と共存する人がいて、その人の眼にレーザー光Lが照射されてしまったとしても、その照射が一瞬で済むため、眼への悪影響をより確実に抑制することができる。したがって、ロボット2と共存する人にとってより安全なロボットシステム1となる。
また、ミラー444は、揺動軸Jまわりに所定の周期で正・逆交互に揺動するため、図7に示すように、ミラー444の揺動には、揺動軸Jまわりの第1回転方向への揺動である往路Aと、第1回転方向とは逆方向の第2回転方向への揺動すなわち往路Aとは反対側に向かう復路Bと、がある。そして、駆動制御部483は、ミラー444の揺動が往路Aであるときに光出射部42からレーザー光Lを出射し、ミラー444の揺動が復路Bであるときには光出射部42からレーザー光Lを出射しないよう各部を制御する。つまり、駆動制御部483は、往路Aだけでレーザー光Lの走査を行う「片側描画」となるように光出射部42を含む各部の駆動を制御する。具体的には、光出射部42のレーザー光源の点灯、消灯のタイミングを制御する。
このように、本発明では、片側描画とすることにより、鮮明なパターン光PLを対象物Xに投影することができる。これは、例えば、往路Aおよび復路Bの両方でレーザー光を出射する場合、往路Aで走査したレーザー光Lで形成されるパターン光PLと復路Bで走査したレーザー光Lで形成されるパターン光PLとのずれが生じ、パターン光PLが不鮮明になるおそれがあるが、片側描画によれば、このようなずれが生じ得ないためである。そのため、対象物Xの三次元計測をより精度よく行うことができる。なお、図7では、上から下に向かう方を往路Aとし、下から上に向かう方を復路Bとしているが、これに限定されず、逆であってもよい。
また、駆動制御部483は、往路Aの両端部すなわち図7中のレーザー光非出射エリアQではレーザー光Lを出射しないよう光出射部42を含む各部を制御する。往路Aの両端部では、ミラー444の揺動速度が著しく遅く、レーザー光Lの走査に向いていないため、このような箇所でレーザー光Lを出射しないことにより、より鮮明なパターン光PLを形成することができる。ただし、これに限定されず、往路Aの両端部においてもレーザー光Lを出射するよう各部を制御してもよい。
また、駆動制御部483は、ミラー444の揺動角が図7中の目標範囲Hに収まるように、好ましくは図7中の目標揺動角±θmとなるようにコイル446に印加する駆動信号Vdの電圧(=振幅W)を制御する。以下、ミラー444の揺動角を目標揺動角±θmとするために駆動制御部483によりどのような制御が行われるかについて詳細に説明する。
まず、三次元計測装置4では、実作業に先立って、使用温度範囲の各温度においてミラー444の揺動角が目標揺動角±θmとなる駆動信号Vdの電圧を測定する。次に、その測定結果に基づいて、ΔV=αΔTとなる係数αを求める。なお、ΔVは駆動信号Vdの電圧変化量を示し、ΔTは光走査部44の温度変化を示す。そして、駆動制御部483は、実作業時において、現状の光走査部44の温度および現状の駆動信号Vdの電圧と、情報受付部481が受け付けた最新の温度情報Itと、上記で求めたαとに基づいて駆動信号Vdの更新用の電圧Vを決定する。また、ミラー駆動部484は、所定のタイミングで駆動信号Vdの電圧を駆動制御部483が決定した更新用の電圧Vに変更する。
上述の制御を図8に示すフローチャートに基づいて説明する。図8では、k回目(ただし、kは1以上の整数)の温度情報It(k)を取得し、取得した温度情報It(k)に応じた電圧V(k)の駆動信号Vdがコイル446に印加されている状態を前提とする。まず、制御部48は、ステップS11として、温度センサー45からk+1回目の温度情報It(k+1)を取得する。次に、制御部48は、ステップS12として、駆動信号Vdの更新用の電圧V(k+1)を決定する。更新用の電圧V(k+1)は、温度が温度情報It(k+1)である光走査部44のコイル446に印加されると、ミラー444の揺動角度が目標角度±θmとなる大きさである。更新用の電圧V(k+1)の決定方法としては、特に限定されないが、例えば、ΔT=It(k+1)-It(k)としたときに、このΔT=Itおよび事前に求めたαを、V(k+1)=V(k)+αΔT(k+1)に代入することにより求めることができる。
次に、制御部48は、ステップS13として、V(k)とV(k+1)とが同じか否かを判断する。そして、V(k)=V(k+1)であれば、制御部48は、ステップS11に戻って、k+2回目の温度情報It(k+2)を取得する。反対に、V(k)≠V(k+1)であれば、制御部48は、ステップS14として、現時刻が、駆動信号Vdの電圧を電圧V(k)から電圧V(k+1)に変更可能な変更タイミングであるか否かを判断する。変更タイミングであれば、制御部48は、ステップS15として、駆動信号Vdの電圧を電圧V(k)から電圧V(k+1)に変更する。反対に、変更タイミングでなければ、制御部48は、ステップS11に戻って、k+2回目の温度情報It(k+2)を取得する。あるいは、鎖線で示すように、変更タイミングとなるまでステップS14を繰り返す。このように、最新の温度情報Itに基づいて駆動信号Vdの電圧を変更することにより、ミラー444の揺動角度の目標揺動角度±θmからのずれを効果的に抑制することができ、ミラー444の揺動角度を目標揺動角度±θmに維持することができる。
温度情報Itを取得し、駆動信号Vdの更新用の電圧Vを決定する周期としては、特に限定されず、例えば、所定時間間隔毎であってもよいし、ランダムであってもよい。また、例えば、三次元計測装置4が起動したときに1度だけ行うものでもよい。
なお、前述の説明では、制御部48は、k+1回目の温度情報It(k+1)を1度だけ取得してΔT(k+1)を求めているが、これに限定されず、k+1回目の温度情報It(k+1)を複数回取得し、回毎にΔT(k+1)を求め、求めたΔT(k+1)の平均値をΔTave(k+1)とし、ΔTave(k+1)とαとを用いて更新用の電圧V(k+1)を求めてもよい。つまり、V(k+1)=V(k)+αΔTave(k+1)にΔTave(k+1)とαとを代入することにより更新用の電圧V(k+1)を求めてもよい。このように、平均値を用いることにより、より高精度な温度情報が得られる。
次に、駆動信号Vdの電圧を変更可能な変更タイミングについて説明する。図7に示すように、各往路Aのパターン光PLの描画開始時刻T1から描画終了時刻T2までの期間を描画区間Pとし、それ以外の区間を非描画区間Nとしたとき、前記変更タイミングとは非描画区間Nのことを言う。なお、非描画区間Nは、駆動開始時刻から1回目のパターン光PLの描画開始時刻T1までの間の区間、n回目のパターン光PLの描画終了時刻T2から、n+1回目のパターン光PLの描画開始時刻T1までの間の区間である(ただし、nは1以上の整数)。つまり、制御部48は、駆動信号Vdの電圧を非描画区間Nで変更し、描画区間Pでは変更しない。これにより、次のような効果が得られる。
駆動信号Vdの電圧を変更する際、駆動信号Vdに駆動周波数成分以外の高周波ノイズが発生し易い。前述したように、駆動信号Vdの周波数は、ミラー444と梁部443とからなる振動系の共振周波数よりも低く設定されているため、高周波ノイズには、振動系の共振周波数と一致する周波数成分もしくは共振周波数に近い周波数成分が混在する。すると、この高周波ノイズによってミラー444に共振駆動モードが励振され、非共振モードで揺動しているミラー444に共振モードの揺動が重畳される。そのため、ミラー444の挙動が乱れ、揺動角が不安定となると共に目標揺動角度±θmからずれる。
このように、駆動信号Vdの電圧を変更する際にはミラー444の揺動が不安定になり易い。そのため、駆動信号Vdの電圧の変更を描画区間Pで行ってしまうと、描画区間P中のミラー444の挙動が乱れ、それに伴って、パターン光PLの画質が低下する。したがって、対象物Xの三次元計測の精度が低下する。これに対して、駆動信号Vdの電圧の変更を非描画区間Nで行えば、電圧の変更によってミラー444の挙動が乱れても、パターン光PLの描画には影響がない。また、次の描画区間Pまでにはミラー444の共振振動が十分に減衰して挙動が安定するため、次の描画区間Pにおけるパターン光PLの画質の低下を抑制することができる。
特に、前述したように、更新用の電圧V(k+1)をαΔT(k+1)から求めるため、駆動信号Vdの電圧の急峻な変化を抑制することができる。そのため、ミラー444の挙動の乱れが小さくなり、その分、乱れが収束するまでの時間が短くなる。したがって、次の描画区間Pまでにミラー444の挙動がより確実に安定する。そのため、次の描画区間Pにおけるパターン光PLの画質の低下を抑制することができる。
ここで、非描画区間Nの中でも、描画終了時刻T2を経過後なるべくすぐに駆動信号Vdの電圧を変更することが好ましい。具体的には、描画終了時刻T2から、最初にミラー444の揺動角が0度となるまでの区間N1内で、駆動信号Vdの電圧を変更することが好ましい。これにより、駆動信号Vdの電圧を変更してから次のパターン光PLの描画を開始するまでの間に十分な時間を確保することができ、次のパターン光PLの描画を開始するまでに、ミラー444の挙動をより確実に安定させることができる。そのため、次の描画区間Pにおけるパターン光PLの画質の低下を抑制することができる。なお、揺動角が0度とは、駆動信号Vdがコイル446に印加されてない状態でのミラー444の角度を言い、目標揺動角度±θmの中央値とも言う。
また、駆動信号Vdの電圧が0となる時刻に駆動信号Vdの電圧を変更することが好ましい。これにより、駆動信号Vdに生じる高周波ノイズを小さくすることができ、ミラー444の挙動の乱れを小さく抑えることができる。したがって、次の描画区間Pにおけるパターン光PLの画質の低下をより効果的に抑制することができる。
前述の説明では、一度の非描画区間Nにおいて駆動信号Vdの電圧を現状の電圧Vから更新用の電圧Vに変更しているが、これに限定されず、例えば、駆動信号Vdの現状の電圧V(k)と更新用の電圧V(k+1)との差が比較的大きい場合には、図9に示すように、複数回の非描画区間Nに分けて駆動信号Vdの電圧を電圧V(k)から更新用の電圧V(k+1)に徐々に変更してもよい。なお、図示では、連続した3回の非描画区間Nに分けて駆動信号Vdの電圧を電圧V(k)から更新用の電圧V(k+1)に変更している。これにより、駆動信号Vdの電圧の急峻な変化が抑制され、電圧を変更した際に生じる高周波ノイズを低減することができる。
非描画区間Nは、主に3種類存在する。その1つは、撮像部47が三次元計測に用いる各画像を撮像する画像撮像区間Q1内にある非描画区間Nである。図10は、第1撮像ステップS1の1枚目の画像PC1および2枚目の画像PC2を撮像する様子を図示しており、各画像撮像区間Q1は、3回の描画区間Pと2回の非描画区間Nとを含んでいる。そのため、必要に応じて、画像撮像区間Q1に含まれる非描画区間Nにおいて駆動信号Vdの電圧を変更することができる。
別の1つは、一度の三次元計測内において連続する画像撮像の間に位置する区間、すなわち、m枚目の画像の撮像の撮像を終えてからm+1枚目の画像の撮像を開始するまでの撮像準備区間Q2内にある非描画区間Nである(ただし、mは1以上の整数である)。図10は、第1撮像ステップS1の1枚目の画像PC1および2枚目の画像PC2を撮像する様子を図示しており、撮像準備区間Q2は、1回の非描画区間Nを含んでいる。そのため、必要に応じて、撮像準備区間Q2に含まれる非描画区間Nにおいて駆動信号Vdの電圧を変更することができる。
さらに別の1つは、図11に示すように、h回目の三次元計測を終えてからh+1回目の三次元計測を開始するまでの非計測区間Q3内にある非描画区間Nである(ただし、hは1以上の整数である)。この非計測区間Q3内には、描画区間Pが含まれておらず、全体が非描画区間Nである。そのため非計測区間Q3内においては、好きなタイミングで駆動信号Vdの電圧を変更することができる。なお、この非計測区間Q3は、前述した画像撮像区間Q1および撮像準備区間Q2と比べて長いため、h+1回目の三次元計測を開始するまでにミラー444の挙動をより確実に安定させることができる。
以上、ロボットシステム1について説明した。このようなロボットシステム1が有する三次元計測装置4は、前述したように、駆動信号Vdを印加することにより揺動軸Jまわりに揺動するミラー444を備え、ミラー444によって光であるレーザー光Lを反射して走査する光走査部44と、撮像部47と、制御部48と、を備え、光走査部44で走査されたレーザー光Lにより形成されるパターン光PLを対象物Xに投影し、パターン光PLが投影されている対象物Xを撮像部47により撮像することにより、対象物Xの三次元計測を行う三次元計測装置である。そして、ミラー444の揺動軸Jまわりの第1回転方向への揺動を往路Aとし、第1回転方向とは逆方向である第2回転方向への揺動を復路Bとしたとき、制御部48は、往路Aのときにだけレーザー光Lを出射してパターン光PLを対象物Xに投影し、n回目の往路Aでのパターン光PLの描画が終了してからn+1回目の往路Aでのパターン光PLの描画が開始されるまでの非描画区間Nにおいて駆動信号Vdの電圧を変更する(ただし、nは、1以上の整数)。このように、駆動信号Vdの電圧の変更を非描画区間Nで行えば、電圧の変更によってミラー444の挙動が不安定となっても、パターン光PLの描画には影響がない。また、次の描画区間Pまでにはミラー444の挙動が安定する。そのため、次の描画区間Pにおけるパターン光PLの画質の低下を抑制することができ、優れた計測精度を有する三次元計測装置4となる。
また、前述したように、ロボットシステム1は、ロボットアーム22を備えるロボット2と、ロボットアーム22に配置されている三次元計測装置4と、を有する。このような構成のロボットシステム1によれば、前述した三次元計測装置4の効果を発揮することができるため、優れた作業性を発揮することができる。
また、前述したように、駆動信号Vdを印加することにより揺動軸Jまわりに揺動するミラー444を備え、ミラー444によって光であるレーザー光Lを反射して走査する光走査部44を有し、光走査部44で走査されたレーザー光Lにより形成されるパターン光PLを対象物Xに投影し、パターン光PLが投影されている対象物Xを撮像部47により撮像することにより対象物Xの三次元計測を行う三次元計測装置におけるミラー444の揺動角制御方法は、ミラー444の揺動軸Jまわりの第1回転方向への揺動を往路Aとし、第1回転方向とは逆方向である第2回転方向への揺動を復路Bとしたとき、往路Aのときにだけレーザー光Lを出射してパターン光PLを対象物Xに投影し、n回目の往路Aでのパターン光PLの描画が終了してからn+1回目の往路Aでのパターン光PLの描画が開始されるまでの非描画区間Nにおいて駆動信号Vdの電圧を変更する(ただし、nは、1以上の整数)。このように、駆動信号Vdの電圧の変更を非描画区間Nで行えば、電圧の変更によってミラー444の挙動が不安定となっても、パターン光PLの描画には影響がない。また、次の描画区間Pまでにはミラー444の挙動が安定する。そのため、次の描画区間Pにおけるパターン光PLの画質の低下を抑制することができ、優れた計測精度を有する三次元計測装置4となる。
また、前述したように、ミラー444の揺動角制御方法は、ミラー444の揺動角が所定範囲内に収まるように、特に本実施形態では、目標揺動角度±θmとなるように駆動信号Vdの電圧を変更する。これにより、ミラー444の挙動が安定し、より高い精度のパターン光PLを描画することができる。
また、前述したように、ミラー444の揺動角制御方法は、温度センサー45により検知された光走査部44の温度に基づいて駆動信号Vdの電圧を変更する。これにより、簡単な制御で、ミラー444の揺動角を所定範囲内、特に本実施形態では目標揺動角度±θmとすることができる。
また、前述したように、ミラー444の揺動角制御方法は、光走査部44の温度は、温度センサー45により複数回検知された光走査部44の温度の平均値である。これにより、より高精度な制御が可能となる。
また、前述したように、ミラー444の揺動角制御方法は、温度センサー45で検知された光走査部44の温度と、光走査部44の温度と駆動信号Vdとの関係を示すデータ、本実施形態では、ΔV=αΔTから求められるαとに基づいて、駆動信号Vdの電圧を変更する。これにより、簡単な制御で、駆動信号Vdの電圧を精度よく変更することができる。
また、前述したように、ミラー444の揺動角制御方法は、n回目の往路Aでのパターン光PLの描画が終了してから、ミラー444の揺動角が0度となるまでの間に駆動信号Vdの電圧を変更する。これにより、駆動信号Vdの電圧を変更してから次のパターン光PLの描画を開始するまでの間に十分な時間を確保することができ、次のパターン光PLの描画を開始するまでに、ミラー444の挙動をより確実に安定させることができる。
また、前述したように、ミラー444の揺動角制御方法は、駆動信号Vdの電圧の変更を複数の非描画区間Nに分けて行う。これにより、駆動信号Vdの電圧の急峻な変化が抑制されるため、電圧を変更した際に生じる高周波ノイズを低減することができる。
また、前述したように、ミラー444の揺動角制御方法は、揺動角検出部46により検出されたミラー444の揺動角に基づいて光走査部44の異常を検出した際、光走査部44およびレーザー光Lを出射する光出射部42の少なくとも一方を制御する。これにより、より安全な制御方法となる。
以上、本発明の揺動角制御方法、三次元計測装置およびロボットシステムを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。