以下、図面を参照して、本実施の形態に係る墨出し支援システムについて詳細に説明する。なお、図中、同一または相当する部分には、同じ符号を付す。本実施の形態では、墨出し情報を含む図面データを変換した投影画像を建屋の床面に投影して墨出し作業を支援する例について説明する。墨出し情報は、例えば、設備の設置位置、アンカーボルトの穴あけ位置、シートの貼付位置などである。以下、投影画像の元の図面データに対応する床面の領域を対象面という。
図1に示すように、墨出し支援システム100は、投影画像を対象面に投影する墨出し支援装置1と、墨出し情報を含む図面データを投影画像に変換する情報処理装置2と、ユーザが使用するユーザ端末3とを備える。図面データは、例えば墨出し作業を実行する建屋の壁、柱などの位置を記したCAD図面である。墨出し支援装置1は、例えばドローンに代表される自律飛行する無人航空機(UAV:Unmanned Aerial Vehicle)である。情報処理装置2は、例えばコンピュータである。ユーザ端末3は、例えばタブレット端末である。墨出し支援装置1およびユーザ端末3はそれぞれ、情報処理装置2に無線で接続している。
ユーザ端末3は、入力画面を表示する表示部31と、ユーザからの入力を受け付ける入力部32と、表示部31および入力部32を制御する制御部33と、情報処理装置2と通信する通信部34とを備える。表示部31は、例えば液晶画面である。入力部32は、例えば、タッチパネルである。制御部33は、例えばCPU(Central Processing Unit)、メモリなどが組み込まれた筐体である。ユーザが入力画面の表示指示を入力部32に入力すると、制御部33は、入力画面を生成し、表示部31に表示させる。ユーザが入力画面に墨出し支援装置1の投影条件を入力すると、制御部33は、入力された投影条件を示す投影条件情報を生成し、通信部34を介して情報処理装置2に送信する。投影条件は、墨出し支援装置1の投影位置、投影方向などである。
墨出し支援装置1は、投影画像を指向方向に投影する投影部11と、周辺の物体の位置および大きさと墨出し支援装置1の加速度および角速度とを検知するセンサ部12と、投影部11が投影した投影画像を撮影する撮影部13と、墨出し支援装置1を移動させ、投影部11の指向方向および撮影部13の撮影方向を変化させる駆動部14とを備える。また、墨出し支援装置1は、インクを射出するマーキング部15と、墨出し支援装置1に電力を供給する電力源16と、墨出し支援装置1を制御するプロセッサ部17と、情報処理装置2およびユーザ端末3と通信する通信部18とを備える。
投影部11は、例えば、レーザープロジェクタである。投影部11は、プロセッサ部17からの指示に従って、投影画像を対象面に投影する。センサ部12は、例えば、レーザー光の出射および反射により距離情報を得るLRF(Laser Range Finder)、慣性センサおよびジャイロセンサである。センサ部12は、周辺の物体の位置および大きさと墨出し支援装置1の加速度および角速度とを検知する。撮影部13は、例えば、デジタルカメラである。撮影部13は、プロセッサ部17からの指示に従って、投影部11によって投影された投影画像を撮影する。
駆動部14は、例えばプロペラを有するロータ、ならびに、投影部11および撮影部13を水平方向および垂直方向に回動させる2軸ロータである。駆動部14は、プロセッサ部17からの指示に従って、墨出し支援装置1を移動させ、投影部11の指向方向および撮影部13の撮影方向を変化させる。マーキング部15は、例えば、インクジェットノズルである。マーキング部15は、プロセッサ部17からの指示に従って、インクを射出する。
電力源16は、例えば、リチウムイオンバッテリーである。電力源16は、投影部11、センサ部12、駆動部14、撮影部13、マーキング部15、プロセッサ部17および通信部18に電力を供給する。通信部18は、例えば、無線LAN(Local Area Network)に接続する無線通信装置である。通信部18は、情報処理装置2との通信を確立し、投影位置までの移動経路を示す移動経路情報、投影部11および撮影部13の回動量を示す回動量情報、ならびに、投影画像を示す投影画像情報を情報処理装置2から受信する。通信部18は、移動経路情報受信部、回動量情報受信部および投影画像情報受信部の例である。
プロセッサ部17は、例えばマイクロコンピュータである。プロセッサ部17は、センサ部12が検知した周辺の物体の位置および大きさと墨出し支援装置1の加速度および角速度とを示す検知情報を、通信部18を介して情報処理装置2に送信する。プロセッサ部17は、検知情報を定期的に情報処理装置2に送信してもよいし、情報処理装置2からの要求に応答して送信してもよい。プロセッサ部17は、通信部18が受信した移動経路情報に基づいて駆動部14を制御し、墨出し支援装置1を投影位置まで移動させる。プロセッサ部17は、通信部18が受信した回動量情報に基づいて駆動部14を制御し、投影部11の指向方向および撮影部13の撮影方向を変化させる。プロセッサ部17は、通信部18が受信した投影画像情報が示す投影画像を投影部11に投影させる。プロセッサ部17は、撮影部13を制御し、投影部11が投影した投影画像を撮影させる。プロセッサ部17は、撮影部13の撮影画像を示す撮影画像情報を、通信部18を介して情報処理装置2に送信する。通信部18は、検知情報送信部および撮影画像情報送信部の例である。
情報処理装置2は、墨出し支援装置1およびユーザ端末3から受信した情報を処理する演算記憶部21と、墨出し支援装置1およびユーザ端末3と通信する通信部22とを備える。通信部22は、例えば、無線LANに接続する無線通信装置である。通信部22は、ユーザ端末3からユーザによって入力された投影条件を示す投影条件情報を受信する。通信部22は、墨出し支援装置1から検知情報を受信する。通信部22は、投影条件情報取得部および検知情報受信部の例である。
演算記憶部21は、例えばCPU、メモリなどが組み込まれた筐体である。演算記憶部21は、予め取得した図面データを記憶している。情報処理装置2は、例えば外部の装置またはシステムから図面データを受信してもよいし、ユーザが情報処理装置2に図面データを入力してもよい。演算記憶部21は、通信部22が受信した投影条件情報および検知情報に基づいて、墨出し支援装置1の現在位置から投影位置までの移動経路と、投影部11の指向方向および撮影部13の撮影方向を投影方向と一致させる投影部11および撮影部13の回動量とを算出する。演算記憶部21は、墨出し支援装置1の現在位置から投影位置までの移動経路を示す移動経路情報、および、投影部11および撮影部13の回動量を示す回動量情報を、通信部22を介して墨出し支援装置1に送信する。演算記憶部21は、通信部22が受信した検知情報に基づいて、図面データを投影画像に変換する。演算記憶部21は、図面データを変換した投影画像を示す投影画像情報を、通信部22を介して、墨出し支援装置1に送信する。通信部22は、移動経路情報送信部、回動量情報送信部および投影画像情報送信部の例である。
ここで、図2を用いて、墨出し支援装置1の機能構成について説明する。墨出し支援装置1のセンサ部12は、センシング範囲に存在する壁、床、天井、柱などの物体の位置および大きさを検知する外界センサ部121と、墨出し支援装置1の加速度および角速度を検知する内界センサ部122と、を備える。外界センサ部121は、例えばLRFである。センシング範囲は、外界センサ部121の性能によって決まる外界センサ部121から一定の距離までの範囲である。内界センサ部122は、例えば慣性センサおよびジャイロセンサである。
駆動部14は、墨出し支援装置1を飛行によって移動させる移動駆動部141と、投影部11の指向方向および撮影部13の撮影方向を変化させる方向回動部142と、を備える。移動駆動部141は、例えばプロペラを有するロータである。方向回動部142は、例えば水平方向および垂直方向に回転して投影部11および撮影部13を回動させる2軸ロータである。
プロセッサ部17は、投影部11を制御する投影制御部171と、外界センサ部121および内界センサ部122の検知情報を取得する検知情報収集部172と、移動駆動部141および方向回動部142を制御する駆動制御部173と、撮影部13を制御する撮影制御部174と、マーキング部15を制御するマーキング制御部175とを備える。
投影制御部171は、投影部11を制御して、通信部18が受信した投影画像情報が示す投影画像を、対象面に投影させる。墨出し作業者は、投影された投影画像に含まれる設備の設置位置、アンカーボルトの穴あけ位置、シートの貼付位置などの墨出し情報に基づいて、対象面に墨出しを行う。予め決められた投影時間が経過すると、投影制御部171は、投影部11に投影画像の投影を終了させる。なお、投影時間はユーザが設定してもよい。あるいは、墨出し作業者の墨出しが完了すると、ユーザがユーザ端末3に投影の終了指示を入力してもよい。この場合、ユーザ端末3は入力された終了指示を示す終了指示情報を、通信部34を介して情報処理装置2に送信する。情報処理装置2は、終了指示情報を墨出し支援装置1に送信し、墨出し支援装置1が終了指示情報を受信すると、プロセッサ部17の投影制御部171は、投影部11に投影画像の投影を終了させる。
検知情報収集部172は、外界センサ部121および内界センサ部122から取得した検知情報を、通信部18を介して情報処理装置2に送信する。駆動制御部173は、移動駆動部141を制御して、通信部18が受信した移動経路情報が示す移動経路で、投影位置に墨出し支援装置1を移動させる。駆動制御部173は、方向回動部142を制御して、通信部18が受信した回動量情報が示す投影部11および撮影部13の回動量で、投影部11および撮影部13を回動させる。墨出し支援装置1は、投影部11の指向方向および撮影部13の撮影方向を変化させる機能を備えるので、例えば真上からの投影画像の投影および撮影が困難である場合も、投影画像の投影および撮影が可能である。
撮影制御部174は、撮影部13を制御して、対象面に投影された投影画像を撮影させる。撮影制御部174は、撮影部13の撮影画像を示す撮影画像情報を、通信部18を介して情報処理装置2に送信する。マーキング制御部175は、マーキング部15を制御してインクを射出させる。駆動制御部173が移動駆動部141を制御して墨出し支援装置1を移動させながら、マーキング制御部175がマーキング部15を制御してインクを射出させることで、対象面に線、形などを記入することができる。その他の構成要素の機能は前述のとおりである。
続いて、図3を用いて、情報処理装置2の機能構成について説明する。情報処理装置2の演算記憶部21は、墨出し支援装置1の現在位置および向きを演算する現在位置演算部211と、墨出し支援装置1の現在位置から投影位置までの移動経路、ならびに、投影部11の指向方向および撮影部13の撮影方向と投影方向とを一致させる回動量を算出する投影経路演算部212と、墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度を演算する相対位置演算部213とを備える。また、演算記憶部21は、図面データを投影画像に変換する投影画像生成部214と、撮影画像を画像変換処理し、投影画像の元の図面データとの差異を算出して投影画像が正常であるか否かを判定する撮影画像処理部215と、各種情報を記憶する記憶部216とを備える。
通信部22は、ユーザ端末3から受信したユーザによって入力された投影条件を示す投影条件情報を記憶部216に記憶させる。通信部22は、墨出し支援装置1から受信した外界センサ部121および内界センサ部122の検知情報および撮影部13の撮影画像を示す撮影画像情報を記憶部216に記憶させる。現在位置演算部211は、記憶部216が記憶する検知情報に基づいて、墨出し支援装置1の現在位置および向きを算出する。墨出し支援装置1の現在位置とは、図面データが示す図面上の現在位置の座標および床面からの高さである。相対位置演算部213は、記憶部216が記憶する検知情報に基づいて、墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度を演算する。
記憶部216は、予め取得した図面データを記憶している。投影画像生成部214は、現在位置演算部211が算出した墨出し支援装置1の向きと相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度とに基づいて、記憶部216が記憶する図面データを投影画像に変換する図面変換処理を実行する。投影画像生成部214は、図面変換処理を実行した際に設定したパラメータを記憶部216に記憶させる。
撮影画像処理部215は、撮影画像情報が示す撮影画像から投影画像を抽出する。撮影画像処理部215は、記憶部216が記憶するパラメータを用いて、撮影画像から抽出した投影画像に図面変換処理とは逆の処理を行う画像変換処理を実行する。撮影画像処理部215は、画像変換処理を行った撮影画像と投影画像の元の図面データとの差異を算出する。撮影画像処理部215は、画像変換処理を行った撮影画像と投影画像の元の図面データとの差異が閾値を超える場合には、投影画像が異常であることを示すエラー情報を出力する。エラー情報の出力は、画面表示でもよいし、音声出力でもよいし、通信部22を介してユーザ端末3に送信してもよい。撮影画像処理部215がエラー情報をユーザ端末3に送信した場合、ユーザ端末3の制御部33は、通信部34を介して情報処理装置2から受信したエラー情報を表示部31に表示させる。
続いて、図4Aおよび図4Bを用いて、墨出し支援装置1、情報処理装置2およびユーザ端末3が実行する処理について説明する。図4Aは、ユーザ端末3に表示された入力画面の一例を示す図である。図4Bは、墨出し支援装置1が投影する投影画像の一例である。ユーザが投影条件の入力画面を表示させる指示をユーザ端末3の入力部32に入力すると、制御部33は、情報処理装置2から図面データを取得する。制御部33は、図面データを表示して投影条件の入力を受け付ける入力画面を、表示部31に表示させる。
図4Aに示すように、ユーザは、入力画面に表示された図面データ41上で、墨出し支援装置1の投影位置の水平面(図中のXY平面)における2次元座標42を指定する。また、ユーザは、入力画面に表示された図面データ上で、墨出し支援装置1の投影位置の垂直方向(図中のZ方向)の座標である飛行高さ43を指定する。つまり、ユーザは、入力画面に表示された図面データ上で、墨出し支援装置1の投影位置の3次元座標(X,Y,Z)を指定する。なお、ユーザは、例えば、座標(X1,Y1,Z1)でN分停滞し、その後、座標(X2,Y2,Z2)に移動し、M分停滞するといったように、複数の投影位置と停滞時間とを指定してもよい。
次に、ユーザは、入力画面に表示された図面データ41上で領域44を投影範囲として指定する。例えば、ユーザは入力画面に表示された図面データ41上でドラッグした線を対角線とする領域44を投影範囲として指定する。あるいは、ユーザは図4Bに示す投影部11から投影画像47までの最大距離L1の値を入力して、最大距離L1で規定される図面データ41上の領域44を投影範囲として指定してもよい。図面データ41上で投影範囲を指定するのは、投影部11の性能および現地の明るさによって、広い範囲に投影し過ぎた場合、投影部11からの距離が離れると投影画像が見えにくくなり、作業が困難となるといった影響が出るためである。投影部11の性能および現地の明るさに対して図面データ41のサイズが十分に小さい場合、あるいは、図面データ41が予め分割された図面データである場合、ユーザは投影範囲を指定せず、図面データ41の全範囲を投影範囲としてもよい。また、ユーザは、複数の投影位置と停滞時間とを指定する場合には、各投影位置での投影範囲を指定する。
制御部33は、指定された投影範囲の中心点45の3次元座標(XC,YC,0)を算出する。例えば、図4Aに示すように投影範囲が四角形の場合、その対角線の交点を中心点とする。制御部33は、ユーザが指定した墨出し支援装置1の投影位置の3次元座標(X,Y,Z)と、投影範囲と、投影範囲の中心点45の3次元座標(XC,YC,0)と、を示す投影条件情報を生成し、通信部34を介して情報処理装置2に送信する。なお、入力画面に墨出し支援装置1による墨出しを指示する墨出し指示ボタンを含んでもよい。ユーザが墨出し指示ボタンをタップした場合、制御部33は、墨出し支援装置1に対する墨出し指示を示す墨出し指示情報を生成し、通信部34を介して情報処理装置2に送信する。
情報処理装置2の演算記憶部21の投影経路演算部212は、通信部22がユーザ端末3から投影条件情報を受信すると、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標および床面からの高さと投影位置の3次元座標(X,Y,Z)とが一致するか否か、つまり、墨出し支援装置1が投影位置に到着したか否かを判定する。投影経路演算部212は、墨出し支援装置1の現在位置の図面上の座標および床面からの高さと投影位置の3次元座標(X,Y,Z)とが一致しないと判定した場合、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標および床面からの高さを示す情報と、図面データとに基づいて、墨出し支援装置1が現在位置から、投影条件情報が示す投影位置の3次元座標(X,Y,Z)に移動するまでの移動経路を算出する。墨出し支援装置1の現在位置の図面上の座標から投影位置の2次元座標(X,Y)までの移動経路は、例えば、図面上の最短経路とする。投影経路演算部212は、移動経路演算部の例である。
投影経路演算部212は、算出した移動経路を示す移動経路情報を、通信部22を介して墨出し支援装置1に送信する。移動経路情報は、例えば、墨出し支援装置1の現在位置の図面上の座標から投影位置の2次元座標(X,Y)までの移動経路と、投影位置における飛行高さZとを示す。
墨出し支援装置1のプロセッサ部17の駆動制御部173は、通信部18を介して情報処理装置2から移動経路情報を受信すると、移動駆動部141を制御して、移動経路情報が示す移動経路で、投影位置の3次元座標(X,Y,Z)に移動させる。駆動制御部173は、例えば、移動経路情報が示す投影位置の2次元座標(X,Y)までの移動経路で墨出し支援装置1を移動させ、飛行高さZまで上昇または下降させる。
情報処理装置2の投影経路演算部212は、墨出し支援装置1の現在位置の図面上の座標および床面からの高さと投影位置の3次元座標(X,Y,Z)とが一致すると判定した場合、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標および床面からの高さ、つまり投影位置の3次元座標(X,Y,Z)と、墨出し支援装置1の向きθと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離L2および対象面に対する指向方向の角度φとに基づいて、投影部11の指向方向の延長線と床面の交点48の3次元座標(XD,YD,0)を算出する。以下、投影部11の指向方向の延長線と床面の交点48の3次元座標を指向方向座標という。投影経路演算部212は、算出した指向方向座標(XD,YD,0)と、投影条件情報が示す投影範囲の中心点45の3次元座標(XC,YC,0)とが一致するか否か、つまり、指向方向と投影方向とが一致するか否かを判定する。
投影経路演算部212は、指向方向座標(XD,YD,0)と、投影条件情報が示す投影範囲の中心点45の3次元座標(XC,YC,0)とが一致しないと判定した場合、現在位置演算部211が算出した墨出し支援装置1の現在位置(X,Y,Z)および向きθと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離L2および対象面に対する指向方向の角度φとに基づいて、指向方向座標(XD,YD,0)と、投影条件情報が示す投影範囲の中心点45の3次元座標(XC,YC,0)とを一致させる投影部11および撮影部13の水平方向の回転量および水平方向の回転量を算出する。投影経路演算部212は、算出した投影部11および撮影部13の水平方向の回転量および垂直方向の回転量を示す回動量情報を、通信部22を介して墨出し支援装置1に送信する。投影経路演算部212は、回動量演算部の例である。
墨出し支援装置1のプロセッサ部17の駆動制御部173は、通信部18を介して、情報処理装置2から回動量情報を受信すると、方向回動部142を制御して、回動量情報が示す投影部11および撮影部13の水平方向の回転量および垂直方向の回転量で、投影部11および撮影部13を回動させる。
情報処理装置2の投影画像生成部214は、指向方向座標(XD,YD,0)と、投影範囲の中心点45の3次元座標(XC,YC,0)とが一致すると判定した場合、現在位置演算部211が算出した墨出し支援装置1の向きθと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離L2および対象面に対する指向方向の角度φとに基づいて、記憶部216が記憶する図面データを投影画像に変換する図面変換処理を実行する。
ここで、投影画像生成部214が実行する図面変換処理について図5を用いて説明する。図面変換処理は、図5に示す切り抜き処理、拡大縮小処理、射影変換処理および回転変換処理を含む。投影画像生成部214は、まず、投影条件情報が示す投影範囲の画像データを切り抜く切り抜き処理を実行する。次に、投影画像生成部214は、切り抜いた画像データを、墨出し支援装置1の現在位置(X,Y,Z)から投影範囲の中心点45の3次元座標(XC,YC,0)までの距離、つまり墨出し支援装置1の現在位置(X,Y,Z)から指向方向座標(XD,YD,0)までの距離L2に応じて、投影された際に寸法が合う大きさに拡大または縮小する拡大縮小処理を実行する。次に、投影画像生成部214は、拡大または縮小した画像データに対し、対象面に対する指向方向の角度φに応じて射影変換を行う射影変換処理を実行する。次に、投影画像生成部214は、射影変換した画像データを、墨出し支援装置1の向きθに応じて回転させる回転変換処理を実行する。なお、図面データの全範囲を投影範囲とする場合は、図面変換処理に切り抜き処理を含まなくてよい。
投影画像生成部214は、図面変換処理に含まれる各処理を行った際に設定したパラメータを記憶部216に記憶させる。投影画像生成部214は、生成した投影画像を示す投影画像情報を、通信部22を介して墨出し支援装置1に送信する。墨出し支援装置1のプロセッサ部17の投影制御部171は、投影部11を制御して、通信部18が受信した投影画像情報が示す投影画像を対象面に投影させる。撮影制御部174は、撮影部13を制御して、対象面に投影された投影画像を撮影させる。撮影制御部174は、撮影部13が撮影した撮影画像を示す撮影画像情報を、通信部18を介して情報処理装置2に送信する。
情報処理装置2の撮影画像処理部215は、通信部22を介して墨出し支援装置1から撮影画像情報を受信すると、撮影画像情報が示す撮影画像から投影画像を抽出する。通信部22は、撮影画像情報受信部の例である。撮影画像処理部215は、記憶部216が記憶するパラメータを用いて、撮影画像から抽出した投影画像に図面変換処理とは逆の処理を行う画像変換処理を実行する。画像変換処理は、逆回転変換処理、逆射影変換処理および逆拡大縮小処理を含む。撮影画像処理部215は、まず、回転変換処理で設定したパラメータを用いて撮影画像から抽出した投影画像を逆向きに回転させる逆回転変換処理を実行する。次に、撮影画像処理部215は、射影変換処理で設定したパラメータを用いて、逆回転変換処理を実行した投影画像に対し、逆向きの射影変換を行う逆射影変換処理を実行する。次に、撮影画像処理部215は、拡大縮小処理で設定したパラメータを用いて、逆射影変換処理を実行した投影画像を逆に縮小または拡大する逆拡大縮小処理を実行する。
撮影画像処理部215は、切り抜き処理で設定したパラメータを用いて、記憶部216が記憶する図面データを切り抜いて、投影画像の元の図面データを生成する。撮影画像処理部215は、画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異を算出する。画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異は、例えば、寸法差異、画像の歪み、投影の薄れなどである。これにより、例えば投影部11から対象面までの距離が遠いことで、投影画像の照度が低下してしまったり、例えば対象面が著しく傾いていたり、凹凸があったりすることで、投影画像が変形してまったり、実際よりも大きく投影されてしまったりすることによる寸法差異、歪みなどを検出することができる。
撮影画像処理部215は、画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異が閾値を超えるか否かを判定する。画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異が閾値を超える場合、撮影画像処理部215は、投影画像が異常であることを示すエラー情報を出力する。これにより、ユーザは投影画像の異常を知ることができ、墨出しの失敗を防ぐことができる。
ここで、情報処理装置2が墨出し指示情報を受信した場合の処理について説明する。情報処理装置2の演算記憶部21の投影経路演算部212は、通信部22が設計条件情報に墨出し指示情報を受信した場合、現在位置演算部211が算出した墨出し支援装置1の現在位置および向きを示す情報と、図面データとに基づいて、墨出し支援装置1が対象面に墨出し情報を記入する移動経路と、インクの射出タイミングとを算出する。投影経路演算部212は、算出した移動経路とインクの射出タイミングとを示す墨出し経路情報を、通信部22を介して墨出し支援装置1に送信する。通信部22は、墨出し指示情報取得部および墨出し経路情報送信部の例である。投影経路演算部212は、墨出し経路演算部の例である。
墨出し支援装置1のプロセッサ部17は、通信部18を介して情報処理装置2から墨出し経路情報を受信すると、駆動制御部173が移動駆動部141を制御して、墨出し経路情報が示す移動経路で、墨出し支援装置1を移動させる。通信部18は、墨出し経路情報受信部の例である。このとき、墨出し支援装置1の飛行高さは、マーキング部15から床面までの距離がインクの射程に入る飛行高さとする。駆動制御部173は、墨出し支援装置1の飛行高さだけでなく墨出し支援装置1の姿勢を制御してもよい。マーキング制御部175は、マーキング部15を制御して、墨出し経路情報が示すインクの射出タイミングでインクを射出させる。この動作によって、墨出し支援装置1は、墨出し情報が示す設備の設置位置、アンカーボルトの穴あけ位置、シートの貼付位置などの墨出し情報を対象面に記入する。これにより、例えば、墨出し作業者が対象面に墨出しができない場合でも、対象面に墨出しを行うことができる。あるいは、投影画像の線、形などを対象面に転記することができる。
ここで、ユーザ端末3が実行する投影条件設定処理のフローについて、図4Aおよび図6を用いて説明する。図6に示す投影条件設定処理は、ユーザ端末3に電源が投入されると開始する。ユーザ端末3の制御部33は、入力部32に投影条件の入力画面の表示指示が入力されたか否かを判定する(ステップS11)。投影条件の入力画面の表示指示が入力されていない場合(ステップS11;NO)、制御部33は、ステップS11を繰り返して、投影条件の入力画面の表示指示の入力を待機する。
投影条件の入力画面の表示指示が入力された場合(ステップS11;YES)、制御部33は、情報処理装置2から取得した図面データを表示して投影条件の入力を受け付ける入力画面を、表示部31に表示させる(ステップS12)。制御部33は、入力画面に墨出し支援装置1の投影位置が入力されたか否かを判定する(ステップS13)。制御部33は、入力画面に墨出し支援装置1の投影位置が入力されていないと判定すると(ステップS13;NO)、ステップS13を繰り返して、墨出し支援装置1の投影位置の入力を待機する。
図4Aに示すように、ユーザは入力画面に表示された図面データ41上で、墨出し支援装置1の投影位置の水平面(図中のXY平面)における2次元座標42を指定する。また、ユーザは、入力画面に表示された図面データ上で、墨出し支援装置1の投影位置の垂直方向(図中のZ方向)の座標である飛行高さ43を指定する。ユーザが入力画面に表示された図面データ上で、墨出し支援装置1の投影位置の3次元座標(X,Y,Z)を指定すると、ユーザ端末3の制御部33は、入力画面に墨出し支援装置1の投影位置が入力されたと判定する。
図6に戻り、制御部33は、入力画面に墨出し支援装置1の投影位置が入力されたと判定すると(ステップS13;YES)、入力画面に墨出し支援装置1の投影範囲が入力されたか否かを判定する(ステップS14)。制御部33は、入力画面に墨出し支援装置1の投影範囲が入力されていないと判定すると(ステップS14;NO)、ステップS14を繰り返して、墨出し支援装置1の投影範囲の入力を待機する。
図4Aに示すように、ユーザは、入力画面に表示された図面データ41上で領域44を投影範囲として指定すると、ユーザ端末3の制御部33は、入力画面に墨出し支援装置1の投影範囲が入力されたと判定する。
図6に戻り、制御部33は、入力画面に墨出し支援装置1の投影範囲が入力されたと判定すると(ステップS14;YES)、入力された投影範囲の中心点を算出する(ステップS15)。
図4Aに示すように投影範囲が四角形の場合、その対角線の交点を中心点とする。制御部33は、投影範囲の中心点45の3次元座標(XC,YC,0)を算出する。
図6に戻り、制御部33は、入力された墨出し支援装置1の投影位置と、投影範囲と、投影範囲の中心点とを示す投影条件情報を生成し、通信部34を介して情報処理装置2に送信する(ステップS16)。このとき、制御部33は、入力画面を閉じてもよい。
図4Aの例では、制御部33は、ユーザが指定した墨出し支援装置1の投影位置の3次元座標(X,Y,Z)と、投影範囲と、投影範囲の中心点45の3次元座標(XC,YC,0)と、を示す投影条件情報を生成し、通信部34を介して情報処理装置2に送信する。
図6に戻り、ユーザ端末3の電源がOFFになっていない場合(ステップS17;NO)、処理はステップS11に戻り、ステップS11~ステップS17を繰り返す。ユーザ端末3の電源がOFFになった場合(ステップS17;YES)、処理を終了する。なお、図面データの全範囲を投影範囲とする場合は、ステップS14を省略してもよい。また、図6に示すステップS16で投影条件情報を送信後に、入力画面を閉じない場合は、ステップS13に戻り、ステップS13~ステップS16を繰り返してもよい。この場合は、ユーザが入力画面を閉じる指示を入力したときに、制御部33は、入力画面を閉じる。
続いて、情報処理装置2が実行する移動回動設定処理のフローについて、図4Bおよび図7を用いて説明する。図7に示す移動回動設定処理は、情報処理装置2の通信部22がユーザ端末3から投影条件情報を受信すると開始する。演算記憶部21の投影経路演算部212は、現在位置演算部211が算出した墨出し支援装置1の現在位置と投影条件情報が示す投影位置とが一致するか否かを判定する(ステップS21)。ステップS21で投影経路演算部212は、墨出し支援装置1の現在位置の図面上の座標および床面からの高さと投影位置の3次元座標とが一致するか否かを判定する。
投影経路演算部212は、墨出し支援装置1の現在位置と投影位置とが一致しないと判定した場合(ステップS21;NO)、現在位置演算部211が算出した墨出し支援装置1の現在位置を示す情報と、図面データとに基づいて、墨出し支援装置1が現在位置から投影位置に移動するまでの移動経路を算出する(ステップS22)。投影経路演算部212は、算出した移動経路を示す移動経路情報を、通信部22を介して墨出し支援装置1に送信し(ステップS23)、処理はステップS21に戻る。
図4Bの例では、投影経路演算部212は、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標、床面からの高さ、および、向きを示す情報と、図面データとに基づいて、墨出し支援装置1が現在位置から、投影条件情報が示す投影位置の3次元座標(X,Y,Z)に移動するまでの移動経路を算出する。移動経路情報は、例えば、墨出し支援装置1の現在位置から投影位置の2次元座標(X,Y)までの移動経路と、投影位置における飛行高さZとを示す。
図7に戻り、投影経路演算部212は、墨出し支援装置1の現在位置と投影位置とが一致すると判定すると(ステップS21;YES)、現在位置演算部211が算出した墨出し支援装置1の現在位置つまり投影位置と、墨出し支援装置1の向きと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度とに基づいて、指向方向座標を算出する(ステップS24)。
図4Bの例では、投影経路演算部212は、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標、つまり投影位置の3次元座標(X,Y,Z)と、墨出し支援装置1の向きθと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離L2および対象面に対する指向方向の角度φとに基づいて、指向方向座標(XD,YD,0)を算出する。
図7に戻り、投影経路演算部212は、指向方向座標と投影条件情報が示す投影範囲の中心点とが一致するか否かを判定する(ステップS25)。投影経路演算部212は、指向方向座標と投影範囲の中心点とが一致しないと判定した場合(ステップS25;NO)、現在位置演算部211が算出した墨出し支援装置1の現在位置および向きと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度とに基づいて、指向方向座標と、投影条件情報が示す投影範囲の中心点とを一致させる投影部11および撮影部13の水平方向の回転量および水平方向の回転量を算出する(ステップS26)。投影経路演算部212は、算出した投影部11および撮影部13の水平方向の回転量および垂直方向の回転量を示す回動量情報を、通信部22を介して墨出し支援装置1に送信し(ステップS27)、処理はステップS25に戻る。
図4Bの例では、投影経路演算部212は、指向方向座標(XD,YD,0)と、投影条件情報が示す投影範囲の中心点45の3次元座標(XC,YC,0)とが一致しないと判定した場合、投影経路演算部212は、現在位置演算部211が算出した墨出し支援装置1の現在位置の図面上の座標(X,Y,Z)および向きθと、相対位置演算部213が算出した墨出し支援装置1の対象面までの投影部11の指向方向の距離L2および対象面に対する指向方向の角度φとに基づいて、指向方向座標(XD,YD,0)と、投影条件情報が示す投影範囲の中心点45の3次元座標(XC,YC,0)とを一致させる投影部11および撮影部13の水平方向の回転量および水平方向の回転量を算出する。投影経路演算部212は、算出した投影部11および撮影部13の水平方向の回転量および垂直方向の回転量を示す回動量情報を、通信部22を介して墨出し支援装置1に送信する。
図7に戻り、投影経路演算部212は、指向方向座標と投影範囲の中心点とが一致すると判定すると(ステップS25;YES)、処理を終了する。
続いて、情報処理装置2が実行する投影画像生成処理のフローについて、図5および図8を用いて説明する。図8に示す投影画像生成処理は、移動回動設定処理が完了すると開始する。情報処理装置2の演算記憶部21の投影画像生成部214は、図5に示す切り抜き処理、拡大縮小処理、射影変換処理および回転変換処理を含む図面変換処理を行う。
投影画像生成部214は、まず、投影条件情報が示す投影範囲の画像データを切り抜く切り抜き処理を実行する(ステップS31)。次に、投影画像生成部214は、切り抜いた画像データを、投影範囲の中心点までの距離、つまり相対位置演算部213が算出した指向方向座標までの距離に応じて、投影された際に寸法が合う大きさに拡大または縮小する拡大縮小処理を実行する(ステップS32)。次に、投影画像生成部214は、拡大または縮小した画像データに対し、相対位置演算部213が算出した対象面に対する指向方向の角度に応じて射影変換を行う射影変換処理を実行する(ステップS33)。次に、投影画像生成部214は、射影変換した画像データを、現在位置演算部211が算出した墨出し支援装置1の向きに応じて回転させる回転変換処理を実行する(ステップS34)。
投影画像生成部214は、ステップS31~ステップS34で各処理を行った際に設定したパラメータを記憶部216に記憶させる。投影画像生成部214は、変換した投影画像を示す投影画像情報を、通信部22を介して墨出し支援装置1に送信し(ステップS35)、処理を終了する。
図6に示す投影条件設定処理のステップS13およびステップS14で複数の投影位置および投影範囲と停滞時間とが入力された場合には、情報処理装置2は、各投影位置での停滞時間の経過後に、図7に示す移動回動設定処理および図8に示す投影画像生成処理を実行する。
続いて、墨出し支援装置1が実行する墨出し支援処理のフローについて、図9を用いて説明する。図9に示す墨出し支援処理は、墨出し支援装置1に電源が投入されると開始する。墨出し支援装置1のプロセッサ部17の駆動制御部173は、通信部18が情報処理装置2から移動経路情報を受信したか否かを判定する(ステップS41)。通信部18が情報処理装置2から移動経路情報を受信していない場合(ステップS41;NO)、ステップS41を繰り返して移動経路情報の受信を待機する。通信部18が情報処理装置2から移動経路情報を受信した場合(ステップS41;YES)、駆動制御部173は、移動駆動部141を制御して、移動経路情報が示す移動経路で、墨出し支援装置1を投影位置に移動させる(ステップS42)。
図4Bの例では、駆動制御部173は、例えば、移動経路情報が示す投影位置の2次元座標(X,Y)までの移動経路で墨出し支援装置1を移動させ、飛行高さZまで上昇または下降させる。
図9に戻り、駆動制御部173は、通信部18が情報処理装置2から回動量情報を受信したか否かを判定する(ステップS43)。通信部18が情報処理装置2から回動量情報を受信していない場合(ステップS43;NO)、ステップS43を繰り返して回動量情報の受信を待機する。通信部18を介して、情報処理装置2から回動量情報を受信した場合(ステップS43;YES)、駆動制御部173は、方向回動部142を制御して、回動量情報が示す投影部11および撮影部13の水平方向の回転量および垂直方向の回転量で、投影部11および撮影部13を回動させる(ステップS44)。
プロセッサ部17の投影制御部171は、通信部18が情報処理装置2から投影画像情報を受信したか否かを判定する(ステップS45)。通信部18が情報処理装置2から投影画像情報を受信していない場合(ステップS45;NO)、ステップS45を繰り返して投影画像情報の受信を待機する。通信部18を介して、情報処理装置2から投影画像情報を受信した場合(ステップS45;YES)、投影制御部171は、投影部11を制御して、通信部18が受信した投影画像情報が示す投影画像を対象面に投影させる(ステップS46)。
プロセッサ部17の撮影制御部174は、撮影部13を制御して、対象面に投影された投影画像を撮影させる(ステップS47)。撮影制御部174は、撮影部13が撮影した撮影画像を示す撮影画像情報を、通信部18を介して情報処理装置2に送信する(ステップS48)。プロセッサ部17の投影制御部171は、予め決められた投影時間が経過していない場合(ステップS49;NO)、投影部11を制御して、投影画像を対象面に投影し続ける。予め決められた投影時間が経過すると(ステップS49;YES)、処理を終了する。なお、ステップS49で、終了指示情報を受信したか否かを判定してもよい。この場合、プロセッサ部17の投影制御部171は、終了指示情報を受信していない場合(ステップS49;NO)、投影部11を制御して、投影画像を対象面に投影し続ける。終了指示情報を受信すると(ステップS49;YES)、処理を終了する。
続いて、情報処理装置2が実行する投影画像判定処理のフローについて、図10を用いて説明する。図10に示す投影画像判定処理は、情報処理装置2の通信部22がユーザ端末3から撮影画像情報を受信すると開始する。撮影画像処理部215は、撮影画像情報が示す撮影画像から投影画像を抽出する(ステップS51)。撮影画像処理部215は、記憶部216が記憶するパラメータを用いて、撮影画像から抽出した投影画像に、図面変換処理とは逆の処理を行う画像変換処理を実行する。
撮影画像処理部215は、まず、回転変換処理で設定したパラメータを用いて撮影画像から抽出した投影画像を逆向きに回転させる逆回転変換処理を実行する(ステップS52)。次に、撮影画像処理部215は、射影変換処理で設定したパラメータを用いて、逆回転変換処理を実行した投影画像に対し、逆向きの射影変換を行う逆射影変換処理を実行する(ステップS53)。次に、撮影画像処理部215は、拡大縮小処理で設定したパラメータを用いて、逆射影変換処理を実行した投影画像を逆に縮小または拡大する逆拡大縮小処理を実行する(ステップS54)。
撮影画像処理部215は、切り抜き処理で設定したパラメータを用いて、記憶部216が記憶する図面データを切り抜いて、投影画像の元の図面データを生成する(ステップS55)。撮影画像処理部215は、画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異を算出する(ステップS56)。画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異は、例えば、寸法差異、画像の歪み、投影の薄れなどである。
撮影画像処理部215は、画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異が閾値を超えるか否かを判定する(ステップS57)。画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異が閾値を超えない場合(ステップS57;NO)、処理を終了する。画像変換処理を実行した撮影画像と投影画像の元の図面データとの差異が閾値を超える場合(ステップS57;YES)、撮影画像処理部215は、投影画像が異常であることを示すエラー情報を出力し(ステップS58)、処理を終了する。なお、図面データの全範囲を投影範囲とする場合は、ステップS51を省略してもよい。
以上説明したとおり、実施の形態に係る墨出し支援システム100によれば、墨出し支援装置1の向きと墨出し支援装置1の対象面までの投影部11の指向方向の距離および対象面に対する指向方向の角度とに基づいて、墨出し情報を含む図面データを変換した投影画像を、移動可能な墨出し支援装置1が投影位置に移動して対象面に投影することで、墨出し作業を支援する際の利便性が向上する。
情報処理装置2のハードウェア構成について図11を用いて説明する。図11に示すように、情報処理装置2は、一時記憶部101、記憶部102、計算部103、入力部104、送受信部105および表示部106を備える。一時記憶部101、記憶部102、入力部104、送受信部105および表示部106はいずれもBUSを介して計算部103に接続されている。
計算部103は、例えばCPUである。計算部103は、記憶部102に記憶されている制御プログラムに従って、演算記憶部21の現在位置演算部211、投影経路演算部212、相対位置演算部213、投影画像生成部214および撮影画像処理部215の各処理を実行する。
一時記憶部101は、例えばRAM(Random-Access Memory)である。一時記憶部101は、記憶部102に記憶されている制御プログラムをロードし、計算部103の作業領域として用いられる。
記憶部102は、フラッシュメモリ、ハードディスク、DVD-RAM(Digital Versatile Disc - Random Access Memory)、DVD-RW(Digital Versatile Disc - ReWritable)などの不揮発性メモリである。記憶部102は、情報処理装置2の処理を計算部103に行わせるためのプログラムを予め記憶する。また、記憶部102は、計算部103の指示に従って、このプログラムが記憶するデータを計算部103に供給し、計算部103から供給されたデータを記憶する。演算記憶部21の記憶部216は、記憶部102に構成される。
入力部104は、キーボード、ポインティングデバイスなどの入力装置と、キーボード、ポインティングデバイスなどの入力装置をBUSに接続するインタフェース装置である。例えば、ユーザが情報処理装置2に図面データを直接入力する場合、入力部104を介して、入力された図面データが計算部103に供給される。
送受信部105は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェースである。送受信部105は、通信部22として機能する。
表示部106は、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などの表示装置である。例えば、ユーザが情報処理装置2に図面データを直接入力する場合、表示部106は、図面データの入力画面を表示する。
図3に示す情報処理装置2の演算記憶部21の現在位置演算部211、投影経路演算部212、相対位置演算部213、投影画像生成部214、撮影画像処理部215および記憶部216の処理は、制御プログラムが、一時記憶部101、計算部103、記憶部102、入力部104、送受信部105および表示部106などを資源として用いて処理することによって実行する。
その他、前記のハードウェア構成およびフローチャートは一例であり、任意に変更および修正が可能である。
計算部103、一時記憶部101、記憶部102、入力部104、送受信部105、表示部106などの情報処理装置2の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、前記の動作を実行するためのコンピュータプログラムを、フレキシブルディスク、CD-ROM(Compact Disc - Read Only Memory)、DVD-ROM(Digital Versatile Disc - Read Only Memory)などのコンピュータが読み取り可能な記録媒体に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する情報処理装置2を構成してもよい。また、インターネットなどの通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロードすることで情報処理装置2を構成してもよい。
また、情報処理装置2の機能を、OS(Operating System)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体、記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して提供することも可能である。例えば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、通信ネットワークを介して前記コンピュータプログラムを提供してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できる構成にしてもよい。
上述した実施の形態では、墨出し支援装置1がマーキング部15を備えるが、例えば、墨出し支援装置1に墨出しをさせる必要がない場合には、墨出し支援装置1はマーキング部15を備えなくてもよい。この場合、プロセッサ部17は、マーキング制御部175を備えなくてよい。
上述した実施の形態では、墨出し支援装置1の駆動部14は、方向回動部142を備えるが、固定された投影部11の指向方向および撮影部13の撮影方向での投影画像の投影および撮影が常に可能である場合には、駆動部14は、方向回動部142を備えなくてもよい。この場合、投影条件情報に投影方向を含まなくてもよい。また、固定された投影部11の指向方向および撮影部13の撮影方向が鉛直方向である場合には、情報処理装置2の演算記憶部21は、相対位置演算部213を備えなくてもよい。投影画像生成部214は、現在位置演算部211が算出した墨出し支援装置1の現在位置および向きに基づいて、記憶部216が記憶する図面データを投影画像に変換する図面変換処理を実行する。このとき、図面変換処理に射影変換処理を含まなくてよい。
上述した実施の形態では、情報処理装置2は、撮影画像処理部215を備えるが、例えば、投影部11から対象面までの距離が投影画像の照度が低下するほど遠くなること、対象面が著しく傾いていたり凹凸があったりすることがなく、投影画像が正常であるか否かを判定する必要がない場合には、情報処理装置2は、撮影画像処理部215を備えなくてもよい。
上述した実施の形態では、駆動部14は、墨出し支援装置1を飛行によって移動させる移動駆動部141を備えるが、墨出し支援装置1の移動は飛行による移動に限らない。例えば、墨出し支援装置1は平面移動が可能な自走装置であって、投影部11および撮影部13の高さを変更できる昇降機構を備えるものであってもよい。
上述した実施の形態では、墨出し支援システム100は、ユーザ端末3を備えるが、これに限らない。例えば、ユーザが情報処理装置2に投影条件情報を入力してもよいし、情報処理装置2は、他の装置またはシステムから投影条件情報を取得してもよい。
上述した実施の形態では、墨出し支援装置1が投影画像を建屋の床面に投影する例について説明したが、これに限らず、墨出し支援装置1が投影画像を投影する面は、ユーザが墨出し作業をする面であればよい。例えば、墨出し支援装置1は、投影画像を建屋の天井面、壁面など他の面に投影してもよい。
なお、本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。即ち、本開示の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
本出願は、2019年12月9日に出願された、日本国特許出願特願2019-221975号に基づく。本明細書中に日本国特許出願特願2019-221975号の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。