(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】無人移動体
(51)【国際特許分類】
G05D 1/43 20240101AFI20240813BHJP
G06T 7/70 20170101ALI20240813BHJP
【FI】
G05D1/43
G06T7/70 A
(21)【出願番号】P 2021050934
(22)【出願日】2021-03-25
【審査請求日】2024-01-05
(73)【特許権者】
【識別番号】302060926
【氏名又は名称】株式会社フジタ
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100182936
【氏名又は名称】矢野 直樹
(72)【発明者】
【氏名】山口 瞳
(72)【発明者】
【氏名】久保田 善経
(72)【発明者】
【氏名】園木 匠
【審査官】牧 初
(56)【参考文献】
【文献】特開2007-52527(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00- 1/87
B25J 1/00-21/02
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
追従対象に追従して移動する無人移動体において、
本体部と、
一端が前記本体部に取り付けられ他端が前記追従対象に取り付けられたリードと、
前記本体部に設けられ、前記リードを画角に収めるカメラ部と、
前記カメラ部により撮影された撮影画像の中から、前記追従対象に取り付けられた前記リードの他端を検出するリード検出部と、
前記リード検出部により検出された前記リードの他端に基づいて前記追従対象の位置を算出する位置算出部と、を備え、
前記位置算出部により算出された前記追従対象の位置に移動する、
無人移動体。
【請求項2】
前記追従対象を見失ったか否かを判定する追従対象判定部と、
前記撮影画像に写る前記リードの延伸方向を検出するリード方向検出部と、
前記追従対象判定部により前記追従対象を見失ったと判定されると、前記リード方向検出部により検出された延伸方向に基づいて前記追従対象の移動先を推定する移動先推定部と、を更に備え、
前記移動先推定部により推定された移動先を前記カメラ部の画角に収める、
請求項1に記載の無人移動体。
【請求項3】
前記カメラ部による撮影画像はカラー画像であり、
前記リード方向検出部は、前記リードの色に基づいて前記撮影画像に対する閾値を設定し、設定された閾値に基づいて前記撮影画像を二値化し、二値化された撮影画像に基づいて前記リードの延伸方向を検出する、
請求項2に記載の無人移動体。
【請求項4】
前記画角に収めた前記移動先に前記追従対象が写らない場合、前記位置算出部は、前記リード方向検出部により検出された延伸方向に基づく仮位置を前記追従対象の位置として算出する、
請求項2又は請求項3に記載の無人移動体。
【請求項5】
前記リード方向検出部は、前記撮影画像に写る前記リードが弛んでいるか否かを判定し、前記リードが弛んでいると判定した場合には、前記リードの前記一端と前記他端とを結ぶ線分の延伸方向を前記リードの延伸方向として検出する、
請求項2から請求項4の何れか一項に記載の無人移動体。
【請求項6】
前記リードは、伸縮性をもつ、
請求項1から請求項5の何れか一項に記載の無人移動体。
【請求項7】
前記追従対象の動きに伴う外力に応じて前記リードの繰り出し及び巻き取りを行うリード収容部、を更に備える、
請求項1から請求項6の何れか一項に記載の無人移動体。
【請求項8】
前記追従対象から前記リードが取り外されたか否かを判定する取外し判定部、を更に備え、
前記取外し判定部により前記リードが前記追従対象から取り外されたと判定されると、前記追従対象に対する追従を停止する、
請求項1から請求項7の何れか一項に記載の無人移動体。
【請求項9】
前記追従対象が階段を移動するか否かを判定する階段判定部と、
前記階段判定部により前記追従対象が前記階段を移動すると判定されると、前記階段の形態を判定する形態判定部と、
前記形態判定部により判定された前記階段の形態に応じて、前記位置算出部により算出される前記階段上の前記追従対象の位置を補正する位置補正部と、を更に備える、
請求項1から請求項8の何れか一項に記載の無人移動体。
【請求項10】
前記階段判定部は、前記リード方向検出部により検出される前記リードの延伸方向が前記階段を指す方向か否かによって、前記追従対象が前記階段を移動するか否かを判定する、
請求項2を引用する請求項9に記載の無人移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、追従対象に追従して移動する無人移動体に関する。
【背景技術】
【0002】
追従対象(追従対象者である作業者や追従対象物である他の無人移動体等)に追従して自動的に移動するロボット等の無人移動体が知られている。例えば特許文献1に、この種の無人移動体の具体的構成が記載されている。
【0003】
特許文献1に記載の無人移動体には、リード型入力デバイスが設けられている。リード型入力デバイスは、紐やチェーン等のリードにより作業者と無人移動体とを物理的に連結するデバイスである。作業者は、リード型入力デバイスのリードを所定回数引っ張る等の特定のアクションを取ることにより、無人移動体を操作することができる。
【0004】
特許文献1において、無人移動体は、作業者に引かれているリードの方向及びリードの長さ(又はリードにかかる力)をもとに作業者の位置を算出し、算出された位置に移動することにより作業者に追従する。リードを利用して作業者の位置を算出することにより、例えば無人移動体の周囲に多数の人物がいる場合にも、追従対象者である作業者を誤認識することが避けられる。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2017/56334号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1において、リードの方向や長さ、リードにかかる力を検出するためには、作業者によってリードが引かれてぴんと張った状態になければならない。この状態でなければ、リードの方向や長さを精度良く検出することができず、また、リードにかかる力を検出することができないため、作業者の位置を算出することが難しい。
【0007】
なお、特許文献1には、「リード31が引かれている、引かれていないに関わらず、θ(すなわちリードの方向)もL(すなわちリードの長さ)も検知できる構成のリード型入力デバイスだとなお良い。」との記載がある。しかし、その具体的構成は不明である。リードが引かれていない状態でリードの方向や長さ、リードにかかる力を検出する構成を特許文献1の内容から把握することは難しい。
【0008】
本発明は上記の事情に鑑みてなされたものであり、追従対象によってリードが引かれているか否かに拘わらず追従対象の位置を算出することができる無人移動体を提供することである。
【課題を解決するための手段】
【0009】
本発明の一実施形態に係る無人移動体は、追従対象に追従して移動する装置であり、本体部と、一端が本体部に取り付けられ他端が追従対象に取り付けられたリードと、本体部に設けられ、リードを画角に収めるカメラ部と、カメラ部により撮影された撮影画像の中から、追従対象に取り付けられたリードの他端を検出するリード検出部と、リード検出部により検出されたリードの他端に基づいて追従対象の位置を算出する位置算出部と、を備え、位置算出部により算出された追従対象の位置に移動する。
【0010】
本発明の一実施形態に係る無人移動体は、追従対象を見失ったか否かを判定する追従対象判定部と、撮影画像に写るリードの延伸方向を検出するリード方向検出部と、追従対象判定部により追従対象を見失ったと判定されると、リード方向検出部により検出された延伸方向に基づいて追従対象の移動先を推定する移動先推定部と、を更に備え、移動先推定部により推定された移動先をカメラ部の画角に収める構成としてもよい。
【0011】
カメラ部による撮影画像は例えばカラー画像である。この場合、リード方向検出部は、リードの色に基づいて撮影画像に対する閾値を設定し、設定された閾値に基づいて撮影画像を二値化し、二値化された撮影画像に基づいてリードの延伸方向を検出する。
【0012】
本発明の一実施形態において、画角に収めた移動先に追従対象が写らない場合、位置算出部は、リード方向検出部により検出された延伸方向に基づく仮位置を追従対象の位置として算出してもよい。
【0013】
本発明の一実施形態において、リード方向検出部は、撮影画像に写るリードが弛んでいるか否かを判定し、リードが弛んでいると判定した場合には、リードの一端と他端とを結ぶ線分の延伸方向をリードの延伸方向として検出してもよい。
【0014】
本発明の一実施形態において、リードは、例えば伸縮性をもつ。
【0015】
本発明の一実施形態に係る無人移動体は、追従対象の動きに伴う外力に応じてリードの繰り出し及び巻き取りを行うリード収容部、を更に備える構成としてもよい。
【0016】
本発明の一実施形態に係る無人移動体は、追従対象からリードが取り外されたか否かを判定する取外し判定部、を更に備え、取外し判定部によりリードが追従対象から取り外されたと判定されると、追従対象に対する追従を停止する構成としてもよい。
【0017】
本発明の一実施形態に係る無人移動体は、追従対象が階段を移動するか否かを判定する階段判定部と、階段判定部により追従対象が階段を移動すると判定されると、階段の形態を判定する形態判定部と、形態判定部により判定された階段の形態に応じて、位置算出部により算出される階段上の追従対象の位置を補正する位置補正部と、を更に備える構成としてもよい。
【0018】
本発明の一実施形態において、階段判定部は、リード方向検出部により検出されるリードの延伸方向が階段を指す方向か否かによって、追従対象が階段を移動するか否かを判定してもよい。
【発明の効果】
【0019】
本発明の一実施形態によれば、追従対象によってリードが引かれているか否かに拘わらず追従対象の位置を算出することができる無人移動体が提供される。
【図面の簡単な説明】
【0020】
【
図1】本発明の一実施形態に係る無人移動体を模式的に示す図である。
【
図2】本発明の一実施形態に係る無人移動体のリード部の内部構造を模式的に示す図である。
【
図3】本発明の一実施形態に係る無人移動体の胴体部に内蔵された構成要素を示すブロック図である。
【
図4】本発明の一実施形態において制御装置が実行する追従移動処理を示すフローチャートである。
【
図5】本発明の一実施形態において制御装置が実行する追従対象者特定処理を示すフローチャートである。
【
図6】
図5のステップS204で生成される二値画像の一例を示す図である。
【
図7】
図4のステップS102~S107の説明を補足する図である。
【
図8】
図4のステップS109で作業者の仮位置を算出する方法の一例を説明するための図である。
【
図9】本発明の一実施形態において制御装置が実行する階段移動処理を示すフローチャートである。
【発明を実施するための形態】
【0021】
以下、本発明の一実施形態に係る無人移動体について図面を参照しながら説明する。本実施形態では、無人移動体として多足歩行ロボットを例に取るが、本発明に係る無人移動体はこれに限らない。無人移動体は、追従対象に追従して移動することが可能なものであればよく、例えばキャタピラや車輪を備える台車型の無人移動体やドローン等の無人飛行体であってもよい。なお、無人移動体は、巡視に必要な撮像装置(カメラ)、又は資材を運搬するための荷台や台車を備えてもよい。
【0022】
本実施形態では、建設現場や土木現場のような地面や床面、壁面、天井、資材等の配置が日々変わる場所で、追従対象に無人移動体を追従させて移動させることを想定している。しかし、無人移動体の追従移動場所はこれに限らない。農地、テーマパーク、商業施設、倉庫、災害現場等の別の場所で追従対象に無人移動体を追従させて移動させてもよい。
【0023】
図1は、本発明の一実施形態に係る無人移動体1を模式的に示す図である。無人移動体1は、4足歩行可能なロボットであり、
図1に示されるように、本体部10、カメラ部20、固定具30、リード部40及び電源ボタン50を備える。なお、無人移動体1の構成要素を図示する
図1並びに後述の
図2及び
図3においては、本実施形態の説明に必要な主たる構成要素を図示する。例えば、無人移動体1に必須な構成要素であるバッテリや駆動機構など、一部の構成要素については、その図示を適宜省略する。
【0024】
概説すると、無人移動体1は、カメラ部20による撮影画像内に写るリード41(詳しくは後述)に基づいて追従対象である作業者2の位置を算出し、算出された位置へ移動することによって作業者2に追従する構成となっている。このような構成であることにより、リード41が引かれているか否かに拘わらず作業者2の位置を算出することができる。
【0025】
なお、追従対象は、人に限らない。別の実施形態では、他の無人移動体が追従対象であってもよい。また、追従対象に追従する無人移動体は1台に限らず複数台あってもよい。一例として、無人移動体1を作業者2に追従させて移動させ、更に、他の無人移動体を無人移動体1に追従させて移動させてもよい。
【0026】
後述するSLAM(Simultaneous Localization and Mapping)処理では、ワールド座標系(X,Y,Z)とローカル座標系(x、y、z)が定義される。原点が不動のワールド座標系では、鉛直方向をZ軸方向とし、Z軸方向と直交しかつ互いに直交する2つの水平方向をそれぞれX軸方向、Y軸方向とする。
【0027】
これに対し、無人移動体1を基点とするローカル座標系は、無人移動体1の移動に伴って原点が移動する。ローカル座標系では、鉛直方向をz軸方向とし、z軸方向と直交しかつ互いに直交する2つの水平方向をそれぞれx軸方向、y軸方向とする。互いに直交するこれら3軸方向は右手系をなす。説明の便宜上、x軸方向正側を前側とも呼び、x軸方向負側を後側とも呼び、y軸方向正側を左側とも呼び、y軸方向負側を右側とも呼び、z軸方向正側を上側とも呼び、z軸方向負側を下側とも呼ぶ。
【0028】
なお、ローカル座標系における方向の呼称は、構成要素の相対的な位置関係を説明するために便宜的に用いる呼称であり、絶対的な方向を示すものではない。例えば無人移動体1の姿勢が傾いた場合、x軸方向及びy軸方向は、水平面に対してその姿勢に応じた傾きをもつ方向となり、z軸方向は、鉛直面に対してその姿勢に応じた傾きをもつ方向となる。
【0029】
本体部10は、胴体部11及び4本の脚部12を備える。脚部12は、胴体部11の側面に2本ずつ設けられる。各脚部12は、x軸方向において間隔を空けて設けられている。本体部10は、4本の脚部12を個別に駆動可能に構成されており、各脚部12の個別の駆動に伴って各方向に自在に移動することができる。
【0030】
なお、胴体部11の形状や脚部12の数、関節数、取付位置等は、
図1に示されるものに限らない。本体部10の態様には自由度があり、各種の設計変更が可能である。
【0031】
カメラ部20及び固定具30は、胴体部11の前部に設けられる。
【0032】
カメラ部20は、RGB-D画像を取得するステレオカメラである。カメラ部20は、RGBのカラー画像を撮影すると同時に、一対のカメラ間の距離(基線長)、カメラの焦点距離及び視差に基づいて画角内の各物体までの距離情報(3次元点群データ)を取得する。
【0033】
カメラ部20のイメージセンサは、例えばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサである。このイメージセンサは、CCD(Charge Coupled Device)イメージセンサ等の他のイメージャであってもよい。また、本実施形態において、イメージセンサのカラーフィルタは、RGB原色系フィルタであるが、CMYG補色系フィルタ等の他のカラーフィルタであってもよい。
【0034】
本実施形態では、カメラ部20を用いて距離情報を取得するが、スキャナ式レーザ距離センサ等の別の手段で距離情報を取得する構成も本発明の範疇である。
【0035】
固定具30は、カメラ部20の下方であって、カメラ部20の画角に収まる位置に設けられる。より詳細には、固定具30は、カメラ部20の基線の中点から垂直下方向に延びる線上に位置するように、胴体部11の前部に設けられる。これにより、固定具30は、常時、撮影画像内の定点位置(本実施形態では下部中央)に写る。
【0036】
固定具30は、例えば、胴体部11の前部に据え付けられた棒状部材を有する。この棒状部材の先端には球体状部材が形成される。この球体状部材に引っ掛かるように、リード部40が有するリード41の一端(以下「リード端41a」と記す。)が括り付けられる。
【0037】
なお、固定具30の形状や取付位置、向き等は、
図1に示されるものに限らない。一例として、固定具30は、胴体部11の上面に据え付けられてもよい。また、
図1の例では、固定具30は、棒状部材の長手方向がx軸方向に向く姿勢で据え付けられているが、棒状部材の長手方向が他の方向(例えばz軸方向)に向く姿勢で据え付けられてもよい。また、カラビナやスナップフック等の着脱が容易な固定具がリード端41aに取り付けられてもよい。この場合、固定具30は、リード端41aに取り付けられた固定具を装着可能な取付金具であってもよい。すなわち、固定具30の態様には自由度があり、各種の設計変更が可能である。
【0038】
図2は、リード部40の内部構造を模式的に示す図である。
図2に示されるように、リード部40は、リード41及びリード収容部42を備える。
【0039】
リード41は、伸縮性をもつ素材で作製された紐であり、例えばゴム紐である。リード41の全長は、例えば5m~20mである。なお、リード41の全長は5mより短くてもよく、また、20mより長くてもよい。また、リード41は、例えば平紐であり、適度に幅(例えば10mm以上)があって撚れにくい。また、リード41には、夜光塗料や蛍光塗料、蓄光塗料等が塗布されてもよい。これにより、現場が薄暗かったり暗部となったりする場合にも、カメラ部20によりリード41を撮影することができる。
【0040】
リード収容部42は、リード41を繰り出し及び巻き取り可能に収容する装置であり、例えば愛玩動物の散歩時に使用されるリードを収容する装置と同様の構造を持つ。
【0041】
リード収容部42は、筐体43を備える。筐体43の外装面には、カラビナ等の金具を取り付けるための取付部44が形成される。例えば取付部44に取り付けられた金具が作業者2のベルトループやハーネスに取り付けられることにより、リード収容部42が作業者2の腰に固定された状態となる。
【0042】
リード41は、筐体43内部に設けられたリール45に巻き付けられている。リール45には内歯車46が形成される。内歯車46の内側には内歯車46と噛み合う外歯車47が設けられる。外歯車47は、巻きばね等の付勢部材48により正方向(
図2では時計回り方向であり、言い換えるとリード41を巻き取る方向)に付勢される。
【0043】
リード41には、作業者2の動きに伴う外力が加わる。この外力が付勢部材48による付勢力よりも強いと、この付勢力に抗して外歯車47及び内歯車46が逆方向(
図2では反時計回り方向であり、言い換えるとリード41を繰り出す方向)に回転する。これにより、リール45に巻き付けられたリード41が筐体43の開口部49から繰り出される。
【0044】
リード41を繰り出すことによって蓄えられた付勢力に対して上記外力が弱いと、外歯車47及び内歯車46が正方向に回転する。これにより、リード41が開口部49を介して筐体43内に入り、リール45に巻き取られる。
【0045】
このように、リード41は、一端(リード端41a)が固定具30を介して本体部10に取り付けられ他端がリード収容部42を介して作業者2に取り付けられる。また、リード収容部42は、追従対象の動きに伴う外力に応じてリード41の繰り出し及び巻き取りを行う。
【0046】
なお、リード部40は、リード収容部42を備えない構成としてもよい。この場合、リード41の他端が、直接、作業者2のベルトループやハーネスに取り付けられる。また、リード41の他端には、カラビナやスナップフック等の着脱が容易な固定具が取り付けられてもよい。この場合、この固定具により、リード41の他端が作業者2のベルトループやハーネスに取り付けられる。
【0047】
図3は、胴体部11に内蔵された構成要素を示すブロック図である。胴体部11には、カメラ部20に加えて、IMU(Inertial Measurement Unit)50及び制御装置100が設けられる。
【0048】
IMU50は、例えば9軸センサ(3軸加速度、3軸ジャイロ及び3軸コンパス)を備えるセンサモジュールである。IMU50は、無人移動体1の自己位置を推定するために必要な各種情報(例えば加速度、角速度、角度等)を逐次採取する。なお、自己位置は、GPS(Global Positioning System)、BLE(Bluetooth(登録商標) Low Energy)ビーコン、Wi-Fi(登録商標)、地磁気センサ、気圧センサ、超音波センサ等を用いて推定してもよい。
【0049】
制御装置100は、無人移動体1を制御する装置である。制御装置100は、例えばマイクロコンピュータであり、ハードウェア構成としては、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、周辺回路と通信するためのインタフェース、これらのポートを結ぶバスライン等を備える。
【0050】
図3に示されるように、制御装置100は、機能構成として、駆動指示部102、駆動制御部104、自己位置推定部106、リード検出部108、位置算出部110、記録部112、移動先推定部114、リード方向検出部116、追従対象距離判定部118、取外し判定部120、追従対象判定部122、階段判定部124、形態判定部126、位置補正部128及び踊り場判定部130を備える。
【0051】
駆動指示部102は、撮影画像内に写るリード41に基づいて算出(検出)された作業者2の位置へ無人移動体1を移動させるための指示信号を生成し、生成された指示信号を駆動制御部104に送信する。
【0052】
駆動制御部104は、駆動指示部102より受信した指示信号に従って胴体部11及び各脚部12を駆動制御する。これにより、無人移動体1が歩行動作を行い、作業者2を検出した位置へ移動する。なお、無人移動体1は、追従移動時、作業者2を正面に捉える姿勢に逐次駆動制御されてもよく、また、次の移動先(詳しくは後述)に向く姿勢に逐次駆動制御されてもよい。
【0053】
自己位置推定部106は、カメラ部20より取得される3次元点群データに基づいてSLAM処理、すなわち無人移動体1の自己位置の推定と環境地図の作成を同時に行う。本実施形態では、SLAM処理の精度を向上させるため、IMU50より採取される加速度、角速度、角度等の各種情報を用いたオドメトリ(Odometry)手法による自己位置の推定結果も併用する。
【0054】
図4は、本発明の一実施形態において制御装置100が実行する追従移動処理を示すフローチャートである。
図5は、本発明の一実施形態において制御装置100が実行する追従対象者特定処理を示すフローチャートである。
【0055】
例えば、作業者2に対する追従移動の開始を指示する開始指示操作が行われると、追従移動処理及び追従対象者特定処理が並行して実行開始される。また、作業者2に対する追従移動の停止を指示する停止指示操作が行われると、追従移動処理及び追従対象者特定処理は終了する。作業者2は、リモートコントローラや本体部10に設けられた不図示の操作ボタンを用いて開始指示操作や停止指示操作を行うことができる。
【0056】
開始指示操作が行われると、追従移動処理が開始される。
図4に示されるように、追従移動処理では、まず、自己位置推定部106によるSLAM処理の実行が開始される(ステップS101)。追従移動処理の実行中、常時、SLAM処理が実行されて、無人移動体1の自己位置の推定と環境地図の作成が行われる。
【0057】
SLAM処理の実行が開始されると、自己位置推定部106は、SLAM処理で作成される環境地図の原点(すなわちワールド座標系の原点)と、無人移動体1を基点とするローカル座標系の原点を定義する。一例として、最初に取得された距離画像フレームの原点(カメラ部20とのXYZの各軸方向の距離がゼロとなる点、すなわちカメラ部20の位置)がワールド座標系の原点及びローカル座標系の原点として定義される。
【0058】
ワールド座標系の原点は不動である。追従移動処理の実行中、ワールド座標系の原点は、最初に取得された距離画像フレームの原点から動かない。これに対し、ローカル座標系の原点は移動する。追従移動処理の実行中、ローカル座標系の原点は、最新の距離画像フレームの原点に更新される。すなわち、無人移動体1の移動に伴ってローカル座標系の原点も移動する。
【0059】
開始指示操作が行われると、追従対象者特定処理も開始される。
図5に示されるように、追従対象者特定処理では、まず、リード検出部108により初期値が設定される(ステップS201)。具体的には、リード検出部108は、撮影画像内に写る特定の線(具体的にはリード41)を検出するため、撮影画像内におけるリード端41aの位置を設定するとともに検出対象の線の色に基づいて撮影画像に対する閾値を設定する。
【0060】
ここで、リード端41aが括り付けられた固定具30は、常時、撮影画像内の定点位置(下部中央)に写る。そのため、リード端41aも常時、撮影画像内の定点位置に写る。そこで、本実施形態では、リード端41aが括り付けられた固定具30の先端の位置がリード端41aの位置として設定される。なお、固定具30の先端の位置は、カメラ部20と固定具30との位置関係から既知である。
【0061】
リード検出部108は、例えば、YCbCr色空間において、検出対象の線の色(すなわちリード41の色であり、例えば赤)に対応するプロットを中心とした所定領域(例えば赤とみなせるYCbCr色空間内の領域)を定義する。リード検出部108は、この領域を定義するCr成分の値を、線を検出するための閾値として設定する。
【0062】
リード検出部108は、カメラ部20によるRGB-D画像からRGB画像を取得する(ステップS202)。リード検出部108は、取得されたRGB画像をYCbCr画像に変換する(ステップS203)。リード検出部108は、YCbCr画像を上記閾値に基づいて二値化する(ステップS204)。
【0063】
図6に、ステップS204で生成される二値画像の一例を示す。
図6の例では、Cr成分の値が閾値内(上記所定領域に入る値)の画素は、その画素値が白の値(例えば1)に変換される。また、Cr成分の値が閾値外(上記所定領域に入らない値)の画素は、その画素値が黒の値(例えば0)に変換される。
【0064】
なお、撮影画像内に写るリード41の色は光源によって変わることがある。そのため、二値化処理に用いる閾値は、例えば撮影画像内に写るリード端41aの色に応じて動的に変化させてもよい。
【0065】
リード検出部108は、ステップS204で生成される二値画像から、ステップS201で設定されたリード端41aの位置を始端位置L
Sとし終端位置L
Eまで延伸する線L(
図6参照)をハフ変換で検出する(ステップS205)。すなわち、リード検出部108は、撮影画像の中からリード41の他端(終端位置L
E)を含む線Lを検出する。
【0066】
線Lの終端位置LEは、開口部49から筐体43の外部に繰り出されたリード41のうちの最も開口部49寄りの部分となる。そうすると、線Lの終端位置LEには、リード収容部42を腰に取り付けた作業者2がいるはずである。そこで、位置算出部110は、終端位置LEに人が写るか否かを判定する(ステップS206)。例示的には、位置算出部110は、カメラ部20により取得される距離情報に基づいて終端位置LEに写る物体の形状や大きさの推定を行い、パターンマッチングにより物体が人であるか否かを判定する。
【0067】
終端位置LEに写る物体が人(すなわち作業者2)であると判定されると(ステップS206:YES)、位置算出部110は、作業者2の位置を算出して記録部112に記録する(ステップS207)。例示的には、位置算出部110は、終端位置LEに写る作業者2の足と歩行面(地面や床面)との交点を作業者2の位置として算出し記録する。
【0068】
このように、位置算出部110は、リード検出部108により検出されたリード41の他端(終端位置LE)に基づいて作業者2の位置を算出し記録する。なお、ワールド座標系のX座標値及びY座標値で作業者2の位置が記録される。便宜上、記録部112に記録される作業者2の位置を「歩行記録位置」と記す。
【0069】
終端位置LEに写る物体が人でないと判定される(又は終端位置LEに物体が検出されない)場合(ステップS206:NO)、歩行記録位置の算出及び記録が行われることなく、追従対象者特定処理はステップS208に進む。
【0070】
詳しくは後述するが、無人移動体1が作業者2を見失った場合、移動先推定部114が撮影画像内に写るリード41の延伸方向に基づいて作業者2の移動先を推定する。そこで、追従対象者特定処理では、リード方向検出部116によりリード41の延伸方向が検出される。
【0071】
ここで、リード41は、伸縮性をもち、また、作業者2の動きに伴う外力に応じてリード収容部42に繰り出し及び巻き取り可能に収容される。そのため、リード41は、基本的に、無人移動体1の追従移動中ぴんと張った状態にある。そのため、ハフ変換により検出される線Lは、通常、直線となる。この場合、リード方向検出部116は、線Lの延伸方向をリード41の延伸方向として検出する。
【0072】
これに対し、例えば無人移動体1と作業者2との距離差が急速に縮まる等の状況では、リード収容部42によるリード41の巻き取り速度が追い付かないため、リード41が重力方向に弛むことがある。この場合、ハフ変換により検出される線Lは、直線として検出されず曲線となる。この場合、リード方向検出部116は、リード41の延伸方向を検出することができない。
【0073】
そこで、リード方向検出部116は、撮影画像に写るリード41が弛んでいるか否かを判定する(ステップS208)。例示的には、ハフ変換により検出される線Lが直線の場合、リード41が弛んでいないと判定する。ハフ変換により検出される線Lが直線でない場合、リード41が弛んでいると判定する。
【0074】
リード41が弛んでいると判定されると(ステップS208:YES)、リード方向検出部116は、始端位置LSと終端位置LEとを結ぶ線部の延伸方向をリード41の延伸方向として検出する(ステップS209)。すなわち、リード方向検出部116は、リード41の一端と他端とを結ぶ線分の延伸方向をリード41の延伸方向として検出する。
【0075】
リード41が弛んでないと判定されると(ステップS208:NO)、リード方向検出部116は、直線である線Lの延伸方向をリード41の延伸方向として検出する(ステップS210)。
【0076】
リード方向検出部116は、ステップS209又はステップS210で検出されたリード41の延伸方向を、XYZの3次元ベクトルデータとして、ステップS207で記録された歩行記録位置と関連付けて記録部112に記録する(ステップS211)。なお、歩行記録位置の算出及び記録が行われていない場合、ステップS211の処理は行われない。次いで、追従対象者特定処理は、ステップS202に戻り、ステップS202以降の処理が実行される。
【0077】
図4の追従移動処理の説明に戻る。追従対象距離判定部118は、カメラ部20により取得される距離情報に基づいて、
図5のステップS206で作業者2と判定された物体と無人移動体1との距離が所定距離(例えば50cm)以上離れているか否かを判定する(ステップS102)。
【0078】
作業者2との距離が50cm以上離れていると判定されると(ステップS102:YES)、駆動指示部102は、次の歩行記録位置を無人移動体1の次の移動先として指定し、指定された移動先へ移動するための指示信号を生成する(ステップS103)。この指示信号に従って駆動制御部104が胴体部11及び各脚部12を駆動制御することにより、無人移動体1が次の移動先に向けて移動する(ステップS104)。ここで、「次の歩行記録位置」は、無人移動体1の移動先として未だ指定されていない歩行記録位置のうち、時系列上で最も前に記録部112に記録された歩行記録位置である。
【0079】
追従対象距離判定部118は、追従移動処理の実行中、常時、無人移動体1と作業者2との距離を検出する。追従対象距離判定部118により検出される距離が常時50cm以上に保たれるように、駆動指示部102は、駆動制御部104への指示信号に含まれる速度指示情報を調整する。この速度指示情報により、作業者2との距離が50cm以上に保たれるように、無人移動体1の移動速度が制御される。
【0080】
附言するに、無人移動体1の移動速度は、作業者2の移動速度に合わせて変化するだけでなく、追従対象距離判定部118により検出される距離によっても変化する。一例として、作業者2との距離が遠いほど無人移動体1の移動速度が増加し、作業者2との距離が近いほど無人移動体1の移動速度が低下する。また、無人移動体1が作業者2を見失った場合も無人移動体1の移動速度が増加する。作業者2を見失った場合、無人移動体1が最高速度で移動するようにしてもよい。
【0081】
作業者2との距離が50cm未満と判定されると(ステップS102:NO)、駆動指示部102は、停止指示操作が行われたか否かを判定する(ステップS112)。停止指示操作が行われたと判定されると(ステップS112:YES)、追従移動処理は終了する。停止指示操作が行われていないと判定されると(ステップS112:NO)、追従移動処理はステップS103に進む。
【0082】
なお、無人移動体1や作業者2の移動状況によっては、両者の距離が一時的にかなり近くなる可能性もある。両者の衝突を避けるため、無人移動体1は、作業者2との距離が30cm以下になった時点で強制的に停止してもよい。
【0083】
また、取外し判定部120は、追従移動処理の実行中、常時、作業者2からリード41(より正確にはリード部40)が取り外されたか否かを判定する。作業者2からリード部40が取り外されると、付勢部材48による付勢力よりリード41がリール45に巻き取られる。リード41がリール45に巻き取られることにより、リード収容部42が胴体部11の目の前にぶら下がった状態となり、無人移動体1とリード収容部42との距離が例えば30cm以下となる。
【0084】
そこで、リード検出部108により検出される線Lの終端位置LEと無人移動体1との距離が30cm以下でかつ位置算出部110によるパターンマッチングで作業者2が検出されない場合、取外し判定部120は、作業者2からリード41が取り外されたと判定する。この場合、無人移動体1は、作業者2に対する追従を停止する。
【0085】
ステップS103で指定された移動先への移動中、追従対象判定部122は、作業者2を見失ったか否かを判定する(ステップS105)。例示的には、追従対象判定部122は、更に次の歩行記録位置が記録部112に記録されていないか否かによって、作業者2を見失ったか否かを判定する。
【0086】
作業者2を見失っておらず(ステップS105:NO)かつ作業者2との距離が50cm以上離れていると判定されると(ステップS102:YES)、駆動指示部102は、記録部112に記録された更に次の歩行記録位置を更に次の移動先として指定し、この移動先へ移動するための指示信号を生成する(ステップS103)。これにより、無人移動体1は、前回のステップS103で指定された移動先に到達後、今回のステップS103で指定された移動先に向けて移動する(ステップS104)。ステップS102~S105が繰り返し実行されることにより、無人移動体1は、作業者2に追従するように、歩行記録位置を順に経由して移動する。
【0087】
作業者2を見失ったと判定される場合(ステップS105:YES)、記録部112には、次の歩行記録位置(次の移動先)までしか作業者2の位置が記録されていない状態にある。
【0088】
そこで、無人移動体1が次の移動先に到達すると、移動先推定部114は、到達した移動先に対応する歩行記録位置と関連付けて記録部112に記録されたリード41の延伸方向に基づいて作業者2の移動先を推定する(ステップS106)。駆動制御部104は、推定された移動先をカメラ部20の画角に収めるように、駆動指示部102による指示信号に従って無人移動体1を旋回させる(ステップS107)。旋回のための指示信号には、例えば無人移動体1の姿勢角(ヨー角、ロール角、ピッチ角)を制御するための制御情報が含まれる。
【0089】
ここで、
図7に、ステップS102~S107の説明を補足する図を示す。
図7中、符号P
1~P
4は歩行記録位置を示す。これらの歩行記録位置は、歩行記録位置P
1、P
2、P
3、P
4の順に記録部112に記録されている。従って、
図7のA図では、歩行記録位置P
1が無人移動体1の次の移動先となる。
【0090】
ステップS102~S105を繰り返し実行することにより、無人移動体1は、作業者2に追従するように、歩行記録位置P1、P2、P3を順に経由して移動する。ここで、作業者2は、無人移動体1にとって死角となる曲がり角の先にいる。そのため、記録部112には、歩行記録位置P4の次の歩行記録位置が記録されていない。そのため、歩行記録位置P4への移動中、追従対象判定部122は、作業者2を見失ったと判定する(ステップS105:YES)。
【0091】
無人移動体1が歩行記録位置P
4に到達すると(
図7のB図参照)、移動先推定部114は、歩行記録位置P
4と関連付けて記録されたリード41の延伸方向に基づいて作業者2の移動先を推定する(ステップS106)。ここでは、
図6の線Lと同様に、右斜め前方へ向かう方向がリード41の延伸方向として記録部112に記録されているものとする。この場合、ステップS107において、駆動制御部104は、ステップS106で推定された移動先をカメラ部20の画角に収めるように、駆動指示部102による指示信号に従って無人移動体1を旋回させる(
図7のC図参照)。
【0092】
無人移動体1の旋回後、
図7のC図に示されるように、作業者2がカメラ部20の画角に収まる位置にいると、追従移動処理と並行して実行中の追従対象者特定処理により、この位置が歩行記録位置として記録部112に記録されることとなる。
【0093】
追従対象判定部122は、次の歩行記録位置の記録の有無により、ステップS106で推定された移動先に作業者2がいるか否かを判定する(ステップS108)。作業者2がいる場合、上述したように、追従対象者特定処理により歩行記録位置が記録される。この結果、YES判定となる。この場合、追従移動処理がステップS102に戻り、ステップS102以降の処理が実行される。作業者2がいない場合、言い換えると、画角に収めた移動先に作業者2が写らない場合(ステップS108:NO)、追従移動処理は、ステップS109に進む。
【0094】
ステップS109において、位置算出部110は、この時点で追従対象者特定処理により検出されたリード41の延伸方向に基づく作業者2の仮位置を、歩行記録位置として算出して記録部112に記録する。
【0095】
図8を用いて、作業者2の仮位置を算出する方法の一例を説明する。
図8の例では、無人移動体1にとって死角となる曲がり角の先に作業者2がいる。撮影画像には、リード41のうち曲がり角の先にある部分は写らない。すなわち、撮影画像には、壁の角部AAに当たる部分までしかリード41が写らない。そのため、追従対象者特定処理のステップS205では、リード41のうち、壁の角部AAに当たる部分が線Lの終端位置L
Eとして検出される。
【0096】
位置算出部110は、壁の角部AA(言い換えると終端位置L
E)に対して所定の角度方向(例えば
図8に示されるように壁面BBに対して135度をなす方向)に延びる線上の位置であって、無人移動体1の回避距離、横幅及び所定のマージンを加算した距離Dだけ角部AAから離れた位置を仮位置P
0として算出する。なお、無人移動体1は、カメラ部20やスキャナ式レーザ距離センサ等で取得される距離情報を参照しながら、壁等の物体に衝突しないように物体から少なくとも所定間隔を空けて移動する。この所定間隔が「回避距離」である。
【0097】
歩行記録位置として算出された仮位置は、次の歩行記録位置にあたる。そこで、駆動指示部102は、仮位置を無人移動体1の次の移動先として指定し、仮位置へ移動するための指示信号を生成する(ステップS110)。この指示信号に従って駆動制御部104が胴体部11及び各脚部12を駆動制御することにより、無人移動体1が仮位置に向けて移動する(ステップS111)。無人移動体1が仮位置に到達すると、追従移動処理がステップS106に戻り、ステップS106以降の処理が実行される。
【0098】
無人移動体1は、各脚部12の個別の駆動により階段の昇降が可能である。
図9は、無人移動体1が作業者2に追従して階段を移動する際に制御装置100が実行する階段移動処理を示すフローチャートである。
【0099】
階段移動処理も追従移動処理及び追従対象者特定処理と並行して実行される。すなわち、開始指示操作が行われると階段移動処理も開始され、停止指示操作が行われると階段移動処理も終了する。
【0100】
階段判定部124は、無人移動体1の近傍に階段があるか否かを判定する(ステップS301)。例示的には、撮影画像内に階段が写るか否かによって、無人移動体1の近傍に階段があるか否かを判定する。撮影画像内に写る物体が階段か否かは、例えば、SLAM処理により推定される自己位置及び作成される環境地図をもとに判定することができる。
【0101】
無人移動体1の近傍に階段があると判定されると(ステップS301:YES)、階段判定部124は、作業者2がこの階段を移動するか(昇降するか)否かを判定する(ステップS302)。例示的には、この判定処理時点でリード方向検出部116により検出されるリード41の延伸方向が階段を指す方向か否かによって、作業者2が階段を移動するか否かを判定する。また、
図4のステップS103で無人移動体1の次の移動先として指定された歩行記録位置が階段に位置するか否かによって、作業者2が階段を移動するか否かが判定されてもよい。
【0102】
作業者2が階段を移動すると判定されると(ステップS302:YES)、駆動制御部104は、無人移動体1を階段と正対させるように、駆動指示部102より受信される指示信号に従って胴体部11及び各脚部12を駆動制御する(ステップS303)。無人移動体1は、駆動制御部104による駆動制御により旋回や平行移動を行って姿勢や向きを変えて、階段と正対する。
【0103】
踏み板面の奥行寸法が板面幅方向において一定の階段(直階段、かね折れ階段、折り返し階段等)を「通常階段」と記す。また、踏み板面の奥行寸法が板面幅方向において一定でない階段(螺旋階段等)を「非通常階段」と記す。例えば螺旋階段は、螺旋の内周側ほど踏み板面の奥行が狭く螺旋の外周側ほど踏み板面の奥行が広い。そのため、無人移動体1が螺旋の内周側を歩行しようとすると、階段の段差を踏み外す虞がある。
【0104】
そこで、形態判定部126は、階段の形態を判定する(ステップS304)。より詳細には、形態判定部126は、SLAM処理により作成される環境地図上の階段の形状に基づき、無人移動体1が正対する階段が非通常階段か否かを判定する。
【0105】
無人移動体1が正対する階段が通常階段であると判定されると(ステップS304:NO)、無人移動体1は、
図5のステップS207で算出され記録された通常階段上の各歩行記録位置を順に経由して通常階段を移動する(ステップS305)。
【0106】
これに対し、無人移動体1が正対する階段が非通常階段である場合(ステップS304:YES)、位置補正部128は、
図5のステップS207で算出され記録された非通常階段上の各歩行記録位置を補正する(ステップS306)。例示的には、位置補正部128は、非通常階段上の各歩行記録位置を、踏み板面上で奥行が広い位置に変更する。例えば螺旋階段の場合、螺旋の外周寄りの位置に変更される。より詳細には、物体(外周側の壁部等)に衝突しないように、螺旋の最外周から、無人移動体1の回避距離、横幅及び所定のマージンを考慮した距離だけ螺旋の内周に寄った位置に変更される。これにより、無人移動体1は、補正後の各歩行記録位置を順に経由して非通常階段を移動する(ステップS307)。
【0107】
階段判定部124は、SLAM処理により推定される自己位置及び作成される環境地図をもとに無人移動体1が階段を移動し終えたか否かを判定する(ステップS308)。無人移動体1が階段を移動中と判定されると(ステップS308:NO)、ステップS304~S308の処理が繰り返し実行される。
【0108】
無人移動体1が階段を移動し終えたと判定されると(ステップS308:YES)、追従対象判定部122は、
図4のステップS105と同様に、作業者2を見失ったか否かを判定する(ステップS309)。作業者2を見失っていないと判定されると(ステップS309:NO)、階段移動処理はステップS301に戻る。無人移動体1の近傍に階段があると判定されるまで、ステップS301の処理が繰り返し実行される。
【0109】
作業者2を見失ったと判定されると(ステップS309:YES)、移動先推定部114は、
図4のステップS106と同様に、作業者2の移動先を推定する(ステップS310)。駆動制御部104は、
図4のステップS107と同様に、推定された移動先をカメラ部20の画角に収めるように、無人移動体1を旋回させる(ステップS311)。
【0110】
無人移動体1が階段を移動し終えた時点で作業者2を見失う状況に鑑みると、無人移動体1の現在位置が踊り場である可能性がある。そこで、踊り場判定部130は、無人移動体1の現在位置が踊り場であるか否かを判定する(ステップS312)。
【0111】
例示的には、踊り場判定部130は、この判定処理時点でリード方向検出部116により検出されるリード41のZ軸方向における延伸方向が所定の条件を満たすか否かを判定する。例えば、リード41のZ軸方向における延伸方向が水平面に対して上方へ所定角度以上をなす方向又は下方へ所定角度以上をなす方向になるとき、所定の条件が満たされる。なお、リード41のZ軸方向における延伸方向が水平面に対して上方へ所定角度以上をなす方向となる場合、作業者2が階段を上っているものと推定される。リード41のZ軸方向における延伸方向が水平面に対して下方へ所定角度以上をなす方向となる場合、作業者2が階段を下っているものと推定される。
【0112】
リード41のZ軸方向における延伸方向が所定の条件を満たす場合、踊り場判定部130は、今移動してきた階段とその次の階段との間の踊り場が無人移動体1の現在位置であると判定する(ステップS312:YES)。この場合、駆動制御部104は、無人移動体1を次に移動する階段と正対させるように、ステップS303と同様に、旋回や平行移動を行って無人移動体1の姿勢や向きを変える(ステップS313)。次いで、階段移動処理がステップS304に戻り、ステップS304以降の処理が実行される。
【0113】
リード41のZ軸方向における延伸方向が所定の条件を満たさないと判定される場合(ステップS312:NO)、無人移動体1の現在位置が踊り場でなく、階段移動後の階層であるものと推定される。この場合、階段移動処理はステップS301に戻る。無人移動体1の近傍に階段があると判定されるまで、ステップS301の処理が繰り返し実行される。
【0114】
以上のように、本実施形態に係る無人移動体1によれば、撮影画像内に写るリード41の他端に基づいて作業者2の位置が算出される。これにより、リード41が引かれているか否か、リード41がぴんと張っているか否か、に拘わらず、作業者2の位置を精度良く算出することができる。
【0115】
本実施形態に係る無人移動体1によれば、撮影画像内に多数の人物が写る場合にも、リード41によって作業者2を特定することができる。そのため、作業者2の誤認識が避けられる。
【0116】
本実施形態に係る無人移動体1によれば、精度良く位置が算出された作業者2に追従して移動するため、コントローラを用いた移動操作が不要である。作業者2は、移動操作に気を取られることがなく、建設現場や土木現場を高い注意力をもって移動することができる。
【0117】
本実施形態に係る無人移動体1によれば、作業者2を見失った場合にも、リード41の延伸方向に基づいて作業者2の移動先を高い精度で推定することができる。そのため、作業者2を見失った場合にも、継続して、作業者2に追従して移動することができる。
【0118】
以上が本発明の例示的な実施形態の説明である。本発明の実施形態は、上記に説明したものに限定されず、本発明の技術的思想の範囲において様々な変形が可能である。例えば明細書中に例示的に明示される実施形態等又は自明な実施形態等を適宜組み合わせた内容も本発明の実施形態に含まれる。
【符号の説明】
【0119】
1 :無人移動体
10 :本体部
11 :胴体部
12 :脚部
20 :カメラ部
30 :固定具
40 :リード部
41 :リード
42 :リード収容部
43 :筐体
44 :取付部
45 :リール
46 :内歯車
47 :外歯車
48 :付勢部材
50 :電源ボタン
100 :制御装置
102 :駆動指示部
104 :駆動制御部
106 :自己位置推定部
108 :リード検出部
110 :位置算出部
112 :記録部
114 :移動先推定部
116 :リード方向検出部
118 :追従対象距離判定部
120 :取外し判定部
122 :追従対象判定部
124 :階段判定部
126 :形態判定部
128 :位置補正部
130 :踊り場判定部