IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニチユ三菱フォークリフト株式会社の特許一覧

特許7179102移動体の制御方法、移動体及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-17
(45)【発行日】2022-11-28
(54)【発明の名称】移動体の制御方法、移動体及びプログラム
(51)【国際特許分類】
   G05D 1/02 20200101AFI20221118BHJP
   B66F 9/24 20060101ALI20221118BHJP
【FI】
G05D1/02 H
B66F9/24 L
【請求項の数】 13
(21)【出願番号】P 2021017821
(22)【出願日】2021-02-05
(65)【公開番号】P2022120728
(43)【公開日】2022-08-18
【審査請求日】2021-03-31
(73)【特許権者】
【識別番号】000232807
【氏名又は名称】三菱ロジスネクスト株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】▲高▼尾 健司
(72)【発明者】
【氏名】北島 克将
(72)【発明者】
【氏名】竹内 瑞穂
(72)【発明者】
【氏名】杉本 喜一
【審査官】山村 秀政
(56)【参考文献】
【文献】特開2017-182502(JP,A)
【文献】国際公開第2016/181733(WO,A1)
【文献】特開2005-258754(JP,A)
【文献】特開2016-204067(JP,A)
【文献】特開2017-178567(JP,A)
【文献】特開平11-278799(JP,A)
【文献】特開平11-322294(JP,A)
【文献】特開2015-225450(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
B66F 9/24
(57)【特許請求の範囲】
【請求項1】
自動で移動する移動体の制御方法であって、
前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得するステップと、
前記センサの複数の検出結果に対応する点群を同一座標系で重畳するステップと、
重畳した前記点群の位置に基づいて、前記目標物の位置及び姿勢を特定するステップと、
を含み、
前記点群を同一座標系で重畳するステップにおいては、
一以上の直線候補を取得し、
前記直線候補から規定距離以上の手前側の前記点群については他の前記点群よりも優先度が低い定数のスコアを付与し、少なくとも1回の検出によって取得された前記点群について前記スコアを積算したスコア積算値を算出し、前記スコア積算値に基づいて前記直線候補から直線を選択し、
前記直線と前記センサの複数の検出結果に対応する点群との位置関係に基づき、前記センサの複数の検出結果に対応する点群のうちから、前記同一座標系で重畳する点群を抽出して、抽出した前記点群を同一座標系で重畳する、
移動体の制御方法。
【請求項2】
前記目標物の位置及び姿勢に基づいて、前記目標物に対して所定の位置及び姿勢となる目標位置までのアプローチパスを設定するステップと、
前記アプローチパスに沿って前記移動体を移動させるステップと、をさらに含む、請求項1に記載の移動体の制御方法。
【請求項3】
目標物が設置される設置領域を横切る広域パスの情報を取得するステップと、
前記広域パスに沿って前記移動体を移動させるステップと、をさらに含み、
前記点群を取得するステップにおいては、前記移動体が前記広域パスに沿って移動中に、前記センサに前記目標物を複数回検出させる、請求項1又は請求項2に記載の移動体の制御方法。
【請求項4】
前記目標物の位置及び姿勢を決定するステップにおいては、
重畳した前記点群の近似線を算出し、
重畳した前記点群を前記近似線上に射影することで、前記同一座標系の点群を前記近似線の座標系の点群に変換し、
前記近似線の座標系における前記点群の位置に基づき、前記目標物の位置を特定し、前記近似線に基づき、前記目標物の姿勢を特定する、請求項1から請求項3のいずれか1項に記載の移動体の制御方法。
【請求項5】
前記目標物は、複数の柱と前記柱同士の間の開口とが形成されており、
前記目標物の位置及び姿勢を決定するステップにおいては、
前記近似線の座標系の点群に基づき、前記柱毎に基準位置を特定し、
前記基準位置同士の距離が所定の距離範囲内である場合には、前記基準位置に基づいて、前記目標物の位置を特定する、請求項4に記載の移動体の制御方法。
【請求項6】
前記目標物の位置及び姿勢を決定するステップにおいては、
前記近似線の座標系の点群を、前記柱毎にクラスタリングし、
クラスタリングされた点群毎に、基準位置を算出する、請求項4に記載の移動体の制御方法。
【請求項7】
前記目標物の位置及び姿勢を決定するステップにおいては、
クラスタリングされた前記点群の重心を、前記基準位置とする、請求項5に記載の移動体の制御方法。
【請求項8】
前記目標物の位置及び姿勢を決定するステップにおいては、
クラスタリングされたそれぞれの前記点群に対し、点群を数えるために設定した所定区間の位置を、前記近似線の座標系において所定長さずつ移動させながら、前記所定区間の位置毎に、所定区間に含まれる前記点群の数を算出し、
前記所定区間の位置毎の前記点群が含まれる数に基づいて、前記基準位置を特定する、請求項5に記載の移動体の制御方法。
【請求項9】
前記目標物の位置及び姿勢を決定するステップにおいては、
点群を数えるために設定した第1区間及び第2区間の位置を、前記第1区間と前記第2区間との相対位置を固定させつつ、前記近似線の座標系において所定長さずつ移動させながら、前記第1区間に含まれる前記点群の数と、前記第2区間に含まれる前記点群の数とを、前記第1区間及び前記第2区間の位置毎に算出し、
前記第1区間及び前記第2区間の位置毎の前記点群が含まれる数に基づいて、前記基準位置を特定する、請求項5に記載の移動体の制御方法。
【請求項10】
前記点群を同一座標系で重畳するステップにおいては、
前記直線に対して所定の距離範囲内にある前記点群を、前記同一座標系で重畳する点群として抽出する、請求項に記載の移動体の制御方法。
【請求項11】
前記点群の検出精度に対する信頼度を算出して、前記信頼度に応じた重みを前記点群に割り当てるステップをさらに含み、
前記目標物の位置及び姿勢を決定するステップにおいては、
前記重みにも基づき、前記目標物の位置及び姿勢を特定する、請求項1から請求項10のいずれか1項に記載の移動体の制御方法。
【請求項12】
自動で移動する移動体であって、
前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得する検出制御部と、
前記センサの複数の検出結果に対応して同一座標系で重畳する点群に基づき特定された、前記目標物の位置及び姿勢の情報を取得する目標物情報取得部と、
を含み、
前記検出制御部は、
一以上の直線候補を取得し、
前記直線候補から規定距離以上の手前側の前記点群については他の前記点群よりも優先度が低い定数のスコアを付与し、少なくとも1回の検出によって取得された前記点群について前記スコアを積算したスコア積算値を算出し、前記スコア積算値に基づいて前記直線候補から直線を選択し、
前記直線と前記センサの複数の検出結果に対応する点群との位置関係に基づき、前記センサの複数の検出結果に対応する点群のうちから、前記同一座標系で重畳する点群を抽出して、抽出した前記点群を同一座標系で重畳する、
移動体。
【請求項13】
自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、
前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得するステップと、
前記センサの複数の検出結果に対応する点群を同一座標系で重畳するステップと、
重畳した前記点群に基づいて、前記目標物の位置及び姿勢を特定するステップと、
を含み、
前記点群を同一座標系で重畳するステップにおいては、
一以上の直線候補を取得し、
前記直線候補から規定距離以上の手前側の前記点群については他の前記点群よりも優先度が低い定数のスコアを付与し、少なくとも1回の検出によって取得された前記点群について前記スコアを積算したスコア積算値を算出し、前記スコア積算値に基づいて前記直線候補から直線を選択し、
前記直線と前記センサの複数の検出結果に対応する点群との位置関係に基づき、前記センサの複数の検出結果に対応する点群のうちから、前記同一座標系で重畳する点群を抽出して、抽出した前記点群を同一座標系で重畳すること
を、コンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動体の制御方法、移動体及びプログラムに関する。
【背景技術】
【0002】
周囲を検出するセンサを備えて自動で移動する移動体が知られている。このような移動体としては、例えば、荷物が搭載されたパレットを搬送する自動フォークリフトがある。特許文献1には、測域センサで計測される距離データに基づいて、パレットの前面の中心位置及び方向を特定して、パレットの荷取り作業を行う旨が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-178567号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような移動体においては、パレットなどの対象物の検出精度を向上させることが求められている。
【0005】
本開示は、上述した課題を解決するものであり、対象物の検出精度の低下を抑制可能な移動体の制御方法、移動体及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係る移動体の制御方法は、自動で移動する移動体の制御方法であって、前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得するステップと、前記センサの複数の検出結果に対応する点群を同一座標系で重畳するステップと、重畳した前記点群の位置に基づいて、前記目標物の位置及び姿勢を特定するステップと、を含む。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係る移動体は、自動で移動する移動体であって、前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得する検出制御部と、前記センサの複数の検出結果に対応して同一座標系で重畳する点群に基づき特定された、前記目標物の位置及び姿勢の情報を取得する目標物情報取得部と、を含む。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、自動で移動する移動体の制御方法をコンピュータに実行させるプログラムであって、前記移動体に設けられたセンサに目標物を複数回検出させて、前記センサの複数回の検出結果を点群として取得するステップと、前記センサの複数の検出結果に対応する点群を同一座標系で重畳するステップと、重畳した前記点群に基づいて、前記目標物の位置及び姿勢を特定するステップと、を、コンピュータに実行させる。
【発明の効果】
【0009】
本開示によれば、対象物の検出精度の低下を抑制することができる。
【図面の簡単な説明】
【0010】
図1図1は、第1実施形態に係る移動制御システムの模式図である。
図2図2は、移動体の構成の模式図である。
図3図3は、管理システムの模式的なブロック図である。
図4図4は、情報処理装置の模式的なブロック図である。
図5図5は、移動体の制御装置の模式的なブロック図である。
図6図6は、目標物の検出を説明する模式図である。
図7図7は、点群の抽出を説明するための模式図である。
図8図8は、直線候補の具体例を示す模式図である。
図9図9は、スコアの一例を示すグラフである。
図10図10は、直線の検出の一例を説明する模式図である。
図11図11は、点群の重畳の具体例を説明するための模式図である。
図12図12は、近似線の一例を示す模式図である。
図13図13は、近似線に射影された計測点の一例を示す模式図である。
図14図14は、計測点のヒストグラムの一例を示す模式図である。
図15図15は、目標物の位置の特定方法の一例を説明する模式図である。
図16図16は、第2パスに沿った移動の一例を示す模式図である。
図17図17は、目標物の位置及び姿勢検出の処理フローを説明するフローチャートである。
図18図18は、第1変形例における目標物の位置の特定方法の例を説明する模式図である。
図19図19は、第2変形例における目標物の位置の特定方法の例を説明する模式図である。
図20図20は、第2実施形態に係る移動体の制御装置の模式的なブロック図である。
図21図21は、信頼度の算出方法の一例を説明するための模式図である。
図22図22は、信頼度の算出方法の他の一例を説明するための模式図である。
図23図23は、重畳された測定点毎の重みの一例を示す模式図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0012】
(第1実施形態)
(移動制御システムの全体構成)
図1は、第1実施形態に係る移動制御システムの模式図である。図1に示すように、第1実施形態に係る移動制御システム1は、移動体10、管理システム12、及び情報処理装置14を含む。移動制御システム1は、設備Wに所属する移動体10の移動を制御するシステムである。設備Wは、例えば倉庫など、物流管理される設備である。移動制御システム1においては、移動体10によって設備Wの領域AR内に配置された目標物Pをピックアップして搬送させる。領域ARは、例えば設備Wの床面であり、目標物Pが設置されたり移動体10が移動したりする領域である。目標物Pは、本実施形態では、パレット上に荷物が積載された搬送対象物である。目標物Pは、複数の柱PAと、柱PA同士の間に形成される開口PBとが、前面Paに形成されている。前面Paとは、移動体10がアプローチしてくる側の面を指す。移動体10は、開口PBに後述するフォーク24を挿入することで、目標物Pを保持する。ただし、目標物Pは、パレット上に荷物が積載されたものに限られず任意の形態であってよく、例えばパレットを有さず荷物のみであってもよい。以下、領域ARに沿った一方向を、方向Xとし、領域Aに沿った方向であって方向Xに交差する方向を、方向Yとする。本実施形態では、方向Yは、方向Xに直交する方向である。方向X、方向Yは、水平方向といってもよい。また、方向X、方向Yに直交する方向を、すなわち鉛直方向を、方向Zとする。
【0013】
設備W内の領域ARには、複数の設置領域AR0が設けられている。設置領域AR0は、目標物Pが設置される領域である。設置領域AR0は、目標物Pを設置すべき領域として、予め設定される。設置領域AR0は、例えば白線などで区分されており、設置領域AR0の位置(座標)、形状、及び大きさは、予め設定されている。設置領域AR0内においては、目標物Pは、前面Paが方向X側を向くように配置されている。図1の例では、目標物Pは、方向Zから見て前面Paに直交する軸PXが方向Xと沿うように、すなわち目標物Pの向きが設置領域AR0に対してずれないように、設置領域AR内に配置されている。ただし、目標物Pは、軸PXが方向Xと沿っていることに限られず、軸PXが方向Xから傾斜して、すなわち設置領域ARに対して向きがずれて設置されていてもよい。例えば、目標物Pは、軸PXと方向Xとの傾斜角度が、45度以下となるように、設置領域AR0に配置されることが好ましい。
【0014】
なお、本実施形態では、設置領域AR0は、設備Wの床である領域ARに設けられているが、それに限られず、例えば目標物Pを設備Wに搬入した車両の荷台内に設けられてもよい。また、本実施形態では、設置領域AR0は、目標物P毎に区画されており、設置領域AR0には目標物Pが1つ配置されるが、それに限られない。例えば、設置領域AR0は、フリースペースとして、複数の目標物Pが設置されるように設定されていてもよい。また、図1の例では設置領域AR0は矩形であるが、形状及び大きさは任意であってよい。また、領域ARに設けられる設置領域AR0の数も任意であってよい。
【0015】
移動体10は、自動で移動可能な装置である。本実施形態では、移動体10は、フォークリフトであり、さらにいえば、いわゆるAGF(Automated Guided Forklift)である。図1に例示するように、移動体10は、設備Wにおける領域AR上を移動する。移動体10は、第1パスR1(広域パス)に従って、第1位置A1から第2位置A2まで移動しつつ、後述するセンサ26によって、目標物Pを複数回検出する。移動体10は、センサ26による複数回の検出結果から点群を取得し、点群に基づき目標物Pの位置及び姿勢を特定する。移動体10は、第2位置A2に到達したら、目標物Pの位置及び姿勢に基づいて設定された第2パスR2(アプローチパス)に従って、第2位置A2から目標位置A3まで移動して、目標物Pをピックアップする。なお、ここでの目標物Pの位置とは、方向X及び方向Yの二次元座標系COにおける目標物Pの座標を指し、目標物Pの姿勢とは、方向X及び方向Yに直交する方向から見た場合の目標物Pの向き(回転角度)を指す。また、目標位置A3は、目標物Pに対して所定の位置及び姿勢となる位置及び姿勢である。本実施形態では、目標位置A3は、移動体10が目標物Pをピックアップ可能な位置及び姿勢といえる。例えば、目標位置A3は、移動体10が横方向に移動することなく、直進することで、後述の移動体10のフォーク24を、目標物Pの開口PBに挿入することができる移動体10の位置及び姿勢であってよい。この場合、移動体10は、目標位置A3から直進して目標物Pをピックアップして、目標物Pを他の場所に搬送する。なお、目標物Pの位置及び姿勢の具体的な特定方法や、第1パスR1、第2パスR2に従った移動の詳細については、後述する。また、図1に示す第1パスR1や第2パスR2は一例である。
【0016】
(移動体)
図2は、移動体の構成の模式図である。図2に示すように、移動体10は、車体20と、マスト22と、フォーク24と、センサ26と、制御装置28とを備えている。車体20は、車輪20Aを備えている。マスト22は、車体20の前後方向における一方の端部に設けられている。マスト22は、前後方向に直交する上下方向(ここでは方向Z)に沿って延在する。フォーク24は、マスト22に方向Zに移動可能に取付けられている。フォーク24は、マスト22に対して、車体20の横方向(上下方向及び前後方向に交差する方向)にも移動可能であってよい。フォーク24は、一対のツメ24A、24Bを有している。ツメ24A、24Bは、マスト22から車体20の前方向に向けて延在している。ツメ24Aとツメ24Bとは、マスト22の横方向に、互いに離れて配置されている。以下、前後方向のうち、移動体10においてフォーク24が設けられている側の方向を、前方向とし、フォーク24が設けられていない側の方向を、後方向とする。
【0017】
センサ26は、車体20の周辺に存在する対象物の位置及び姿勢の少なくとも1つを検出する。センサ26は、移動体10に対する対象物の位置と、移動体10に対する対象物の姿勢とを検出するともいえる。本実施形態では、センサ26は、マスト22と、車体20の四隅とに、すなわち車体20の前方向側の左右の端部と後方向側の左右の端部とに、設けられている。ただし、センサ26の設けられる位置はこれに限られず、任意の位置に設けられてもよいし、設けられる数も任意であってよい。例えば、移動体10に設けられる安全センサを、センサ26として流用してもよい。安全センサを流用することで、新たにセンサを設ける必要がなくなる。
【0018】
センサ26は、周囲の対象物からの反射光を検出(受光)することで、対象物の位置及び姿勢を検出する。さらに言えば、センサ26は、光を照射するセンサであり、より詳しくは光としてレーザ光を照射する。センサ26は、照射したレーザ光の反射光を検出することで、対象物の位置及び姿勢を検出する。センサ26は、一方向に走査しつつレーザ光を照射し、照射したレーザ光の反射光から、対象物の位置及び姿勢を検出する。すなわち、センサ26は、いわゆる2D-LiDAR(Light Detection And Ranging)であるともいえる。本実施形態では、センサ26は、水平方向に、すなわち方向Zに直交する方向に、レーザ光を走査する。ただし、センサ26は、以上のものに限られず任意の方法で対象物を検出するセンサであってよく、例えば、複数の方向に走査されるいわゆる3D-LiDARであってもよいし、カメラであってもよい。
【0019】
制御装置28は、移動体10の移動を制御する。制御装置28については後述する。
【0020】
(管理システム)
図3は、管理システムの模式的なブロック図である。管理システム12は、設備Wにおける物流を管理するシステムである。管理システム12は、本実施形態ではWMS(Warehouse Management System)であるが、WMSに限られず任意のシステムであってよく、例えば、その他の生産管理系システムのようなバックエンドシステムでも構わない。管理システム12が設けられる位置は任意であり、設備W内に設けられてもよいし、設備Wから離れた位置に設けられて、離れた位置から設備Wを管理するものであってもよい。管理システム12は、コンピュータであり、図3に示すように、通信部30と記憶部32と制御部34とを含む。
【0021】
制御部34は、演算装置、すなわちCPU(Central Processing Unit)である。制御部34は、作業決定部36を含む。制御部34は、記憶部32からプログラム(ソフトウェア)を読み出して実行することで、作業決定部36を実現して、その処理を実行する。なお、制御部34は、1つのCPUによって処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、作業決定部36を、ハードウェア回路で実現してもよい。また、記憶部32が保存する制御部34用のプログラムは、管理システム12が読み取り可能な記録媒体に記憶されていてもよい。
【0022】
作業決定部36は、搬送する対象となる目標物Pを決定する。具体的には、作業決定部36は、例えば入力された作業計画に基づき、搬送する対象となる目標物Pの情報を示す作業内容を決定する。作業内容は、搬送する対象となる目標物Pを特定する情報であるともいえる。本実施形態の例では、作業内容は、どの設備にあるどの目標物Pを、いつまでに、どこに搬送するかを、作業内容として決定する。すなわち、作業決定部36は、対象となる目標物Pが保管されている設備と、対象となる目標物Pと、目標物Pの搬送先と、目標物Pの搬送時期とを、を示す情報である。作業決定部36は、決定した作業内容を、通信部30を介して、情報処理装置14に送信する。
【0023】
(情報処理装置)
図4は、情報処理装置の模式的なブロック図である。情報処理装置14は、設備Wに設けられ、少なくとも、移動体10の移動に関する情報などを移動体10と送受信する装置、いわゆる地上システムである。情報処理装置14は、コンピュータであり、図4に示すように、通信部40と記憶部42と制御部44とを含む。通信部40は、制御部44に用いられて、管理システム12や移動体10などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部42は、制御部44の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。
【0024】
制御部44は、演算装置、すなわちCPUである。制御部44は、作業内容取得部50と、移動体選定部52と、第1パス取得部54とを含む。制御部44は、記憶部42からプログラム(ソフトウェア)を読み出して実行することで、作業内容取得部50と移動体選定部52と第1パス取得部54とを実現して、それらの処理を実行する。なお、制御部44は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、作業内容取得部50と移動体選定部52と第1パス取得部54との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部42が保存する制御部44用のプログラムは、情報処理装置14が読み取り可能な記録媒体に記憶されていてもよい。
【0025】
(作業内容取得部及び移動体選定部)
作業内容取得部50は、管理システム12が決定した作業内容の情報、すなわち搬送対象となる目標物Pの情報を取得する。作業内容取得部50は、作業内容における目標物Pの情報から、目標物Pが設置されている設置領域AR0を特定する。例えば、記憶部42には、目標物Pと、その目標物Pが設置されている設置領域AR0とが、関連付けて記憶されており、作業内容取得部50は、記憶部42からその情報を読み出すことで、設置領域AR0を特定する。移動体選定部52は、対象となる移動体10を選定する。移動体選定部52は、例えば、設備Wに所属する複数の移動体から、対象となる移動体10を選定する。移動体選定部52は、任意の方法で対象となる移動体10を選定してよいが、例えば、作業内容取得部50が特定した設置領域AR0に基づき、その設置領域AR0にある目標物Pの搬送に適した移動体10を、対象となる移動体10として選定してよい。
【0026】
(第1パス取得部)
第1パス取得部54は、作業内容取得部50が特定した設置領域AR0までの第1パスR1の情報を、取得する。第1パスR1は、例えば設置領域AR0毎に、予め設定されている。第1パス取得部54は、例えば記憶部42から、作業内容取得部50が特定した設置領域AR0に対して設定された第1パスR1を、取得する。以下、第1パスR1について具体的に説明する。
【0027】
図1に示すように、第1パスR1は、移動体10が向かう設置領域AR0(目標物P)よりも方向X側で、方向Yに沿って設置領域AR0(目標物P)を横切る軌道となっている。より詳しくは、第1パスR1は、検出軌道R1aと、検出軌道R1aに接続されるアプローチ軌道R1bとを含む。
【0028】
図1に示すように、検出軌道R1aは、設置領域AR0(目標物P)よりも方向X側で、方向Yに沿って設置領域AR0(目標物P)を横切る軌道である。検出軌道R1aは、設置領域AR0までの方向Xにおける距離が、所定距離の範囲内となるように設定されることが好ましい。ここでの所定距離は、検出軌道R1aを移動中の移動体10のセンサ26によって、設置領域AR0内の目標物Pの位置及び姿勢が検出可能な距離である。より詳しくは、本実施形態においては、検出軌道R1aは、第1位置A1から第2位置A2までの軌道である。第1位置A1は、設置領域AR0よりも方向X側であり、かつ、設置領域AR0よりも方向Yと反対方向側の位置として設定されている。第2位置A2は、設置領域AR0よりも方向X側であり、かつ、設置領域AR0よりも方向Y側の位置として設定されている。本実施形態においては、第1位置A1と第2位置A2は、設置領域AR0までの方向Xにおける距離が、所定距離の範囲内となるように設定されており、第1位置A1と第2位置A2との方向Xにおける位置(X座標)は、一致している。検出軌道R1aは、第1位置A1から第2位置A2までの、方向Yに沿った直線軌道として設定される。ただし、第1位置A1と第2位置A2との、方向Xにおける位置(X座標)は、一致していなくてもよい。また、検出軌道R1aは、直線軌道であることに限られず、第1位置A1から第2位置A2までで任意の軌跡を描く軌道であってよい。
【0029】
図1に示すように、アプローチ軌道R1bは、第2位置A2から設置領域AR0に向かう軌道である。より詳しくは、アプローチ軌道R1bは、第2位置A2から、設定位置A3zまでの軌道である。設定位置A3zは、設置領域AR0内における目標物Pの位置及び姿勢が所定の状態を満たす(目標物Pが設置領域AR0に対してずれ無く理想的に配置されている)と仮定した場合に、目標物Pに対して所定の位置及び姿勢となる位置及び姿勢である。すなわち、設定位置A3zは、目標物Pの位置及び姿勢が所定の状態を満たすと仮定した場合に、移動体10が目標物Pをピックアップ可能な位置及び姿勢であり、目標物Pの位置及び姿勢が所定の状態を満たす場合の目標位置A3であるともいえる。図1の例では、アプローチ軌道R1bは、第2位置A2から、第2位置A2よりも方向Yと反対側の中間位置ASB0までの直線軌道と、中間位置ASB0から設定位置A3zまでの曲線軌道と、を含む。第2位置A2から中間位置ASB0までの直線軌道は、検出軌道R1aに重なることが好ましい。
【0030】
なお、図示は省略するが、第1パスR1は、移動体10の移動開始位置から第1位置A1までの軌道も含んでよい。
【0031】
ただし、第1パスR1は、以上のような軌道であることに限られない。例えば、第1パスR1は、アプローチ軌道R1bを含まないものであってよい。すなわち、第1パスR1は、少なくとも、第1位置A1から第2位置A2までの検出軌道R1aを含むものであってよい。さらにいえば、第1パスR1は、検出軌道R1aのような設置領域AR0(目標物P)を横切る軌道を含むことにも限られず、例えば、設置領域AR0(目標物P)の前面に向けて直線的に近づいていく軌道などであってもよい。またさらにいえば、第1パスR1は、移動体10が後方向に直進して設置領域AR0(目標物P)を横切り第2位置A2で切り返すことに限られず、移動体10が前方向に直進して旋回することで設置領域AR0(目標物P)の前面に向けて近づいていく軌道などであってもよい。
【0032】
第1パスR1は、設備Wの地図情報に基づき予め設定される。設備Wの地図情報は、設備Wに設置されている障害物(柱など)や移動体10が走行可能な通路などの位置情報を含んだ情報であり、領域AR内で移動体10が移動可能な領域を示す情報といえる。また、第1パスR1は、設備Wの地図情報に加えて、移動体10の車両仕様の情報にも基づき、設定されてよい。車両仕様の情報とは、例えば、移動体10の大きさや最小旋回半径など、移動体10が移動可能な経路に影響を及ぼす仕様である。車両仕様の情報にも基づき第1パスR1が設定されている場合、第1パスR1は、移動体毎に設定されてよい。なお、第1パスR1は、人によって、地図情報や車両仕様の情報などに基づき設定されてもよいし、情報処理装置14などの装置によって、地図情報や車両仕様の情報などに基づき、自動的に設定されてもよい。自動的に第1パスR1を設定する場合、例えば通過して欲しいポイント(Waypoint)を指定してもよく、この場合、通過して欲しいポイントを通過しつつ、最短、かつ障害物(壁などの固定物)を避けた第1パスR1の設定が可能となる。
【0033】
なお、第1パス取得部54は、予め設定された第1パスR1を読み出すことなく、演算によって第1パスR1を設定してもよい。この場合、第1パス取得部54は、対象となる移動体10の位置情報と、設置領域AR0の位置情報と、設備Wの地図情報とに基づき、移動体10の現在位置から、第1位置A1、第2位置A2を経由して、移動先である設定位置A3zまでの経路を、第1パスR1として生成してよい。
【0034】
情報処理装置14は、取得した第1パスR1の情報を、通信部40を介して、対象となる移動体10に送信する。第1パスR1は、設置領域AR0に向かう経路であるため、移動体10の移動に関する情報であるといえる。
【0035】
(移動体の制御装置)
次に、移動体10の制御装置28について説明する。図5は、移動体の制御装置の模式的なブロック図である。制御装置28は、移動体10を制御する。制御装置28は、移動体10のセンサ26による複数回の検出結果に基づいて設定された第2パスR2に沿って、移動体10を目標位置A3まで移動させて、移動体10に目標物Pをピックアップさせる。制御装置28は、コンピュータであり、図5に示すように、通信部60と記憶部62と制御部64とを含む。通信部60は、制御部64に用いられて、情報処理装置14などの外部の装置と通信するモジュールであり、例えばアンテナなどを含んでよい。通信部40による通信方式は、本実施形態では無線通信であるが、通信方式は任意であってよい。記憶部62は、制御部64の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。
【0036】
制御部64は、演算装置、すなわちCPUである。制御部64は、第1パス情報取得部70と、移動制御部72と、検出制御部74と、点群重畳部76と、目標物情報取得部78と、第2パス情報取得部80とを含む。制御部64は、記憶部62からプログラム(ソフトウェア)を読み出して実行することで、第1パス情報取得部70と移動制御部72と検出制御部74と点群重畳部76と目標物情報取得部78と第2パス情報取得部80とを実現して、それらの処理を実行する。なお、制御部64は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、第1パス情報取得部70と移動制御部72と検出制御部74と点群重畳部76と目標物情報取得部78と第2パス情報取得部80との少なくとも一部を、ハードウェア回路で実現してもよい。また、記憶部62が保存する制御部64用のプログラムは、制御装置28が読み取り可能な記録媒体に記憶されていてもよい。
【0037】
(第1パス情報取得部)
第1パス情報取得部70は、第1パスR1の情報を取得する。第1パス情報取得部70は、その移動体10が作業対象として選定された際に、情報処理装置14から第1パスR1の情報を取得してもよいし、予め記憶部62に記憶された第1パスR1の情報を読み出してもよい。
【0038】
(移動制御部)
移動制御部72は、移動体10の駆動部やステアリングなどの移動機構を制御して、移動体10の移動を制御する。移動制御部72は、第1パス情報取得部70が取得した第1パスR1や、後段の第2パス情報取得部80が取得した第2パスR2に従って、移動体10を移動させる。移動制御部72は、移動体10の位置情報を逐次把握することで、第1パスR1や第2パスR2を通るように、移動体10を移動させる。移動体10の位置情報の取得方法は任意であるが、例えば本実施形態では、設備Wに図示しない検出体が設けられており、移動制御部72は、検出体の検出に基づき移動体10の位置及び姿勢の情報を取得する。具体的には、移動体10は、検出体に向けてレーザ光を照射し、検出体によるレーザ光の反射光を受光して、設備Wにおける自身の位置及び姿勢を検出する。ここでの移動体10の位置とは、設備Wの領域Aにおける方向X及び方向Yの二次元座標系COにおける座標であり、以下においても、位置とは、別途説明が無い限り、二次元座標系COにおける座標を指す。また、移動体10の姿勢とは、方向X及び方向Yに直交する方向Zから見た場合の移動体10の向き(回転角度)である。また、移動体10の位置及び姿勢の情報の取得方法は、検出体を用いることに限られず、例えば、SLAM(Slmultaneous Localization and Mapping)などの自己位置推定技術を用いてもよい。
【0039】
(検出制御部)
検出制御部74は、センサ26に目標物Pの前面Paを複数回検出させて、センサ26の複数回の検出結果を点群として取得する。検出制御部74の具体的な処理内容は後述する。
【0040】
(点群重畳部)
点群重畳部76は、検出制御部74が取得した、センサ26の複数の検出結果に対応する点群を同一座標系で重畳する。点群重畳部76の具体的な処理は後述する。
【0041】
(目標物位置情報取得部)
目標物情報取得部78は、重畳された点群の位置に基づいて特定された、目標物Pの位置及び姿勢の特定結果を取得する。目標物情報取得部78の具体的な処理は後述する。
【0042】
(第2パス情報取得部)
第2パス情報取得部80は、目標物の位置及び姿勢に基づいて設定された、目標位置A3までの第2パスR2の情報を取得する。第2パス情報取得部80の具体的な処理は後述する。
【0043】
(制御装置の処理)
次に、移動体10が目標物Pに向かう際の制御装置28の処理について説明する。
【0044】
(第1パスに沿った移動)
制御装置28の移動制御部72は、第1パス情報取得部70が取得した第1パスR1に従って、移動体10を移動させる。移動制御部72は、現在の移動体10の位置から、第1位置A1を経由して第2位置A2まで、第1パスR1を通るように、移動体10を移動させる。
【0045】
(点群の取得)
図6は、目標物の検出を説明する模式図である。検出制御部74は、図6に示すように、移動体10が、第1パスR1に沿って第1位置A1から第2位置A2までの間を移動中に、すなわち検出軌道R1aを移動中に、センサ26に、目標物Pの前面Paを複数回検出させる。検出制御部74は、センサ26に、位置が既知である設置領域AR0に向けて検出を行わせることで、目標物Pの前面Paを検出させる。具体的には、検出制御部74は、センサ26に、目標物Pが設置された設置領域ARに向けて、レーザ光LTを照射させる。レーザ光LTは目標物Pの前面Paで反射され、センサ26は、目標物Pの前面Paからの反射光を受光する。検出制御部74は、センサ26が受光した反射光の検出結果に基づき、計測点Mの集合である点群M0を取得する。計測点Mとは、レーザ光LTが反射された位置(座標)を示す点であり、点群M0とは、レーザ光LTが反射された位置を示す点の集合を指す。本実施形態では、検出制御部74は、反射光の検出結果と移動体10の位置に基づき、反射光が反射された箇所の、方向X及び方向Yの二次元座標系COにおける位置(座標)を、計測点Mとして算出する。ただし、検出制御部74は、二次元座標系COにおける位置を計測点Mとすることに限られず、センサ26や移動体10を基準とした座標系における位置を、計測点Mとしてもよい。
【0046】
(点群の抽出)
図7は、点群の抽出を説明するための模式図である。検出制御部74は、センサ26による1回の検出(レーザ光LTの1回のスキャン)により取得した点群M0に含まれる計測点Mのうちから、後述する点群重畳部76によって重畳される計測点Mを、言い換えれば目標物Pの位置及び姿勢の特定に用いる計測点Mを、抽出する。検出制御部74は、抽出した計測点Mの情報を、記憶部62に含まれるバッファに保存する。本実施形態では、検出制御部74は、センサ26による1回の検出により取得した計測点Mに基づき、目標物Pの前面Paに対応する直線L(直線Lの位置及び姿勢)を算出し、直線Lと計測点Mとの位置関係に基づいて、抽出する計測点Mを選定する。以下、計測点Mを抽出する処理の例を具体的に説明する。
【0047】
(直線候補の取得)
図7に示すように、検出制御部74は、設置領域AR0の位置に基づき、検知対象領域ROIaを設定する。検知対象領域ROIaは、いわゆるROI(Regions Of Interest)である。検出制御部74は、設置領域AR0の位置に基づき、目標物Pの前面Paを含むと推定される領域を特定し、その領域を検知対象領域ROIaとする。検出制御部74は、例えば、設置領域AR0より幅が大きい検知対象領域ROIaを設定し、センサ26による1回の検出により取得した点群M0に含まれる計測点Mのうちから、検知対象領域ROIa内の計測点Mを抽出する。検出制御部74は、目標物Pの前面Paに対応する直線L0を検出するために、一以上の直線候補を取得する。検出制御部74は、一以上の直線候補のそれぞれについて、直線候補から規定距離以上の手前側の計測点Mについては他の計測点Mよりも選択における優先度が低い定数のスコアを付与する。検出制御部74は、検知対象領域ROIa内の計測点Mについてスコアを積算したスコア積算値に基づいて、一以上の直線候補の中から、目標物Pの前面Paに対応する直線L0を選択する。
【0048】
図8は、直線候補の具体例を示す模式図である。例えば、図8に示すように、検出制御部74は、検知対象領域ROIaより幅が狭い検知対象領域ROIbをさらに設定し、検知対象領域ROIbの中の点群M0から選択した2つの計測点Mを結ぶ直線を、直線候補として取得してもよい。図8では、検出制御部74が、検知対象領域ROIbの中の点群M0に基づいて4つの直線候補L1、L2、L3、L4を取得する例を示している。検知対象領域ROIbは、隣接する荷物などが入り込まない程度の幅に設定されることが好ましい。検知対象領域ROIbは、設置領域AR0より幅が大きくてもよいし、小さくてもよい。
【0049】
ここで、直線候補の取得方法について具体例を説明する。検出制御部74は、検知対象領域内の点群M0からRANSACアルゴリズムにより選択した2つの計測点Mを結ぶ直線を、直線候補として取得するように構成されてもよい。この場合の検知対象領域は、検知対象領域ROIbであるが、検知対象領域ROIaであってもよいし、検知対象領域ROIa、ROIbとは異なる領域であってもよい。RANSAC(RANdom SAmple Consensus)は、ランダムに2つの点を選択して評価値を算出する手法である。なお、本開示に係る直線候補の取得手法には、RANSACを用いた手法に限られず、PROSAC(PROgressive SAmple Consensus)等の他のアルゴリズムが使用されてもよい。
【0050】
検出制御部74は、検知対象領域の幅方向中央の右側及び左側のそれぞれの点群M0から1つずつ選択した2つの計測点Mを結ぶ直線を、直線候補として取得するように構成されてもよい。この場合、組み合わせの数が有限となるため、すべての2点の組み合わせについて直線候補としてもよい。
【0051】
(直線L0の検出)
検出制御部74は、一以上の直線候補のそれぞれについてスコア積算値を算出し、スコア積算値に基づいて、目標物Pの前面Paに対応する直線L0を検出する。検出制御部74は、スコア積算値が示す優先度が高い直線候補に対して、検知対象領域ROIb外かつ検知対象領域ROIa内の点群M0を含めて、それを直線L0として選択(すなわち検出)し、この様な点群M0についても後続の処理の対象としてもよい。以降では、一例として、検出制御部74が、スコア積算値に基づいて、図8に示す直線候補L1を直線L0として選択するものとする。
【0052】
ここで、スコア積算値について説明する。例えば、スコア積算値の高い直線候補を優先的に線分検出に使用する直線として選択する場合には、「優先度が低い定数のスコア」は、スコア積算値を小さくするような値のスコアを意味する。一方、例えば、スコア積算値の低い直線候補を優先的に選択する場合には、「優先度が低い定数のスコア」は、スコア積算値を大きくするような値のスコアを意味する。
【0053】
検出制御部74は、スコア積算値の算出において、点群M0を構成する各計測点Mと直線候補との垂直距離を利用する。具体的には、検出制御部74は、直線候補から規定距離未満の計測点Mについては、直線候補から規定距離以上の手前側(検出時の移動体10の位置に近い側)の計測点Mよりも優先度が高く、かつ直線候補に近いほど優先度が高いスコアを付与する。例えば、検出制御部74は、規定距離以上の手前側の計測点Mはマイナスの定数のスコアを付与するのに対し、規定距離未満の計測点Mはプラスのスコアを付与する。プラスのスコアの値は、直線候補からの距離に依存する変数である。
【0054】
図9は、スコアの一例を示すグラフである。このグラフの横軸は、Y方向(深度)に対応し、計測点Mと直線候補との距離を示し、横軸方向の右に行くほど奥側(検出時の移動体10の位置から遠い側)であることを意味する。深度がゼロの位置は直線候補の位置である。縦軸は付与するスコアの値を示している。図9に示す例では、直線候補から規定距離以上の手前側の計測点Mにはマイナスの定数のスコアが付与される。このように、直線候補から規定距離以上の手前側の計測点Mには、直線候補と計測点Mとの距離によらず一定のペナルティを課している。直線候補から規定距離未満の計測点Mには、直線候補に近いほど大きいプラスのスコアが付与される。
【0055】
検出制御部74は、スコア積算値の算出において、直線候補から規定距離以上の奥側の計測点Mについては、スコア積算値の積算対象から除外する。「スコア積算値の積算対象から除外する」とは、それらの計測点Mをスコア積算値の積算対象から実質的に除外することを意味し、それらの計測点Mにゼロのスコアを付与することであってもよいし、それらの計測点Mにスコアを付与しないことであってもよい。図9に示す例では、直線候補から規定距離以上の奥側の計測点Mにゼロのスコアが付与される。この様なスコア積算値の算出方法を採用すると、図8に示す例では、直線候補L1が直線L0線として選択される。なお、検出制御部74は、スコア積算値が示す優先度が高い複数の直線を検出してもよい。
【0056】
(直線Lの検出)
検出制御部74は、目標物Pの幅方向における両端点の位置を特定し、直線L0を両端点で区切った線分を、直線Lとして検出する。具体的には、検出制御部74は、直線L0から一以上の線分を抽出し、抽出した一以上の線分の中から設計情報から定まる目標物Pの両端の長さに対応する両端長さを有する一つの線分又は二以上の線分の組み合わせを探索する。「対応する長さ」とは、許容誤差の範囲内の長さを意味する。目標物Pの設計情報は、目標物Pの寸法(例えば、両端の長さ、開口PBの位置及び間隔等)を示す情報であり、例えば、制御装置28の記憶部62から読み出される。検出制御部74は、見つかった線分又は二以上の線分の組み合わせを、直線Lとする。
【0057】
図10は、直線の検出の一例を説明する模式図である。図10に示すように、例えば、検出制御部74は、選択した直線L0から3つの線分(丸で囲まれた計測点M)を抽出し、目標物Pの両端の長さに対応する両端長さWDを有する一つの線分又は二以上の線分の組み合わせを探索する。図10に示す例では、探索の結果、3つの線分の組み合わせの両端長さが検出されており、直線L0に沿った、両端長さWDの線分が、直線Lとして検出されるといえる。
【0058】
(直線Lに基づく点群の抽出)
検出制御部74は、以上のようにして検出した直線Lと計測点Mとの位置関係に基づき、点群重畳部76によって重畳される計測点Mを抽出する。例えば、検出制御部74は、直線Lに対して所定の距離範囲内にある計測点Mを、点群重畳部76によって重畳される計測点Mとして抽出してよい。このように直線Lと計測点Mとの位置関係に基づき計測点Mを抽出することで、目標物Pの前面Paに対応しない計測点Mを除去し、目標物Pの前面Paに対応する計測点Mを適切に抽出して、目標物Pの位置及び姿勢の検出精度を向上させることができる。また、検出制御部74は、目標物Pの設計情報などから取得された目標物Pの前面Paにおける柱PAや開口PBの相対位置に基づき、開口PBの位置にある推定される計測点Mを除外して、柱PAの位置にあると推定される計測点Mを抽出してもよい。
【0059】
なお、以上の説明では、検出制御部74は、センサ26による1回の検出により取得した点群M0を用いて直線Lを検出していたが、それに限られず、センサ26による複数回の検出により取得した点群M0を用いて直線Lを検出してもよい。すなわち、検出制御部74は、少なくとも1回の検出によって取得された点群M0に基づき、直線Lを検出してもよい。また、直線Lの検出方法は、以上の方法に限られず、任意の方法を用いてもよい。
【0060】
また、計測点Mを抽出する方法は、上記のように直線Lを用いることに限られず、検出制御部74は、任意の方法で計測点Mを抽出してもよい。さらに言えば、計測点Mを抽出する処理自体も必須ではなく、センサ26による1回の検出により取得した点群M0に含まれる計測点Mの全てを、点群重畳部76によって重畳される計測点Mとしてもよい。
【0061】
(複数回の検出)
検出制御部74は、移動体10が第1パスR1(検出軌道R1a)を移動中に、センサ26に、目標物Pの前面Paの検出を、複数回行わせる。言い換えれば、検出制御部74は、移動体10が第1パスR1(検出軌道R1a)を移動中に、センサ26に、目標物Pの前面Paへのレーザ光LTのスキャンを、複数回行わせる。検出制御部74は、センサ26による複数回の検出結果を、点群M0として取得する。検出制御部74は、センサ26の検出結果毎に(センサ26が検出する度に)、以上で説明した、計測点Mを算出して計測点Mを抽出する処理を、実行する。
【0062】
このように、本実施形態では、第1パスR1を移動中に、センサ26に複数回の検出を行わせるものである。すなわち、検出制御部74は、第1パスR1上での移動体10の位置毎にセンサ26に検出を行わせるため、各検出結果が取得された際の移動体10の位置は、互いに異なる。ただし、センサ26に検出させるタイミングは、第1パスR1を移動中であることに限られない。例えば、移動体10を停止させた状態でセンサ26に検出を行わせてもよい。また、検出制御部74は、1つのセンサ26に複数回の検出を行わせることに限られず、複数のセンサ26に同じ目標物Pを検出させることで、センサ26の複数回の検出結果を取得して点群M0としてもよい。
【0063】
(点群の重畳)
図11は、点群の重畳の具体例を説明するための模式図である。図11に示すように、点群重畳部76は、検出制御部74によって抽出された計測点M(点群M0)を、同一の座標系で重畳する。言い換えれば、点群重畳部76は、センサ26による複数回の検出結果に対応する計測点Mのうちで、検出制御部74によって抽出された計測点Mの、同一の座標系における位置(座標)の情報を取得する。本実施形態における同一の座標系とは、方向X及び方向Yの二次元座標系COであり、設備Wにおける座標系であるともいえる。すなわち、点群重畳部76は、検出制御部74によって抽出されたそれぞれの計測点Mを、二次元座標系COで重畳する(二次元座標系CO上でプロットする)。なお、計測点Mが二次元座標系COでの位置として算出される場合には、それぞれの計測点Mの座標系が共通するため、点群重畳部76は、それぞれの計測点Mに対して座標系の変換処理を行うことなく、それぞれの計測点Mの二次元座標系COでの位置の情報を取得できる。ただし例えば、それぞれの計測点Mが、移動体10を基準とした座標系など、同一の座標系における位置として算出されていない場合には、点群重畳部76は、計測点Mが検出された際の移動体10の二次元座標系COでの位置に基づき、それぞれの計測点Mの座標変換を行って、二次元座標系COでの計測点Mの位置を算出する。なお、それぞれの計測点Mを重畳する座標系は、二次元座標系COに限られず、例えば三次元座標系などであってもよい。
【0064】
(目標物の位置及び姿勢の特定)
目標物情報取得部78は、点群重畳部76によって二次元座標系COで重畳された各計測点M(点群M0)の位置に基づき、目標物Pの位置及び姿勢を特定する。以下、重畳された計測点Mに基づく目標物Pの位置及び姿勢の特定方法の具体例を説明する。
【0065】
(近似線の算出)
図12は、近似線の一例を示す模式図である。本実施形態では、目標物情報取得部78は、重畳された各計測点Mの近似線N(二次元座標系COでの近似線Nの位置及び姿勢)を算出し、近似線Nに基づき、目標物Pの位置及び姿勢を特定する。図12に示すように、近似線Nは、重畳された各計測点Mの近似線であり、センサ26による複数の検出結果に対応する各計測点Mの近似線であるといえる。本実施形態においては、目標物情報取得部78は、重畳された各計測点Mに対して最小二乗法によって直線フィッティングを行うことで、近似線Nを算出する。ただし、近似線Nの算出方法は、最小二乗法に限られず、任意の方法を用いてよい。例えば、センサ26による最初の検出で取得された点群M0に基づき算出した直線Lを近似線Nとしてもよいし、重畳された各計測点Mを用いて、RANSACを用いて直線を複数生成し、それぞれの直線の傾き分布から、前面Paに近い直線を、近似線Nとしてよい。なお、RANSACを用いた直線の生成方法は、上述の直線候補の生成方法と同様としてよい。また、本実施形態では、目標物Pの前面Paが平面状であるため、近似線Nを直線として算出するが、近似線は直線であることに限られない。例えば前面Paが曲面であることが既知である場合などには、それに合わせて、近似線Nを曲線として算出してもよい。
【0066】
(計測点の射影)
図13は、近似線に射影された計測点の一例を示す模式図である。目標物情報取得部78は、重畳された各計測点M(点群M0)を、近似線N上に射影することで、図13の例に示すように、二次元座標系COの計測点Mを近似線Nの座標系の計測点MAに変換する。言い換えれば、計測点MAは、二次元座標系COにおける計測点Mが、射影変換によって近似線Nの座標系となったものといえる。なお、近似線Nの座標系は、一次元の座標であり、近似線Nの座標系における計測点MAは、近似線Nに沿った方向における計測点の位置を指す。例えば、目標物情報取得部78は、近似線Nに対して計測点Mから垂線を引いて、垂線と近似線Nとの交点を、計測点MAとしてよい。
【0067】
本実施形態では、目標物情報取得部78は、近似線Nに基づき、目標物Pの姿勢を特定し、近似線Nの座標系における計測点MA(点群)の位置に基づき、目標物Pの位置を特定する。より詳しくは、目標物情報取得部78は、それぞれの計測点MAの位置に基づき位置毎の計測点MAの数を算出して、位置毎の計測点MAの数に基づいて計測点MAをクラスタリングすることで、目標物Pの位置を特定する。以下、この処理の具体例について説明する。
【0068】
(位置毎の計測点の数の算出)
図14は、計測点のヒストグラムの一例を示す模式図である。目標物情報取得部78は、近似線Nの座標系の計測点MAに基づき、近似線Nの座標系における位置毎の計測点MAの数を算出する。例えば、目標物情報取得部78は、近似線Nの座標系を複数の単位範囲に区分して、それぞれの計測点MAを、いずれかの単位範囲に割り当てる。すなわち、目標物情報取得部78は、近似線Nの座標系における計測点MAの位置を範囲に含む単位範囲に、その計測点MAを割り当てる。目標物情報取得部78は、計測点MAを単位範囲に割り当てる処理を計測点MA毎に実行して、単位範囲毎の計測点MAの数を算出する。図14は、単位範囲毎の計測点MAの数の一例を示すヒストグラムである。目標物情報取得部78は、図14に示すような、近似線Nの座標系における単位範囲毎の計測点MAの数を示すヒストグラムを生成してもよい。
【0069】
(計測点のクラスタリング)
目標物情報取得部78は、近似線Nの座標系における位置毎の計測点MAの数に基づき、近似線Nの座標系の計測点MAを、目標物Pの柱PAの個数分にクラスタリング(分類)することで、柱PAの個数分のクラスタ(測定点MAの集合)を生成する。すなわち、目標物情報取得部78は、近似線Nの座標系における位置毎の計測点MAの数に基づき、計測点MAが目標物Pのどの柱PAの位置を示す計測点であるかを特定する。具体的には、目標物情報取得部78は、計測点MAの数が所定数以上となる単位範囲を含む範囲RAを、前面Paの柱PAの個数分、抽出する。そして、目標物情報取得部78は、同じ範囲RAに含まれる計測点MAを、同じクラスタとする。さらにいえば、ここでの範囲RAは、その範囲RAに含まれている単位範囲の全てにおいて計測点MAの数が所定数以上となる、近似線Nの座標系における範囲(区間)を指すことが好ましい。この場合、範囲RA同士は重ならないものとする。また、ここでの所定数は、任意に設定してよいが、例えば単位範囲毎の計測点MAの数の最大値に基づき決定してよく、例えば最大値の1/3を所定数として設定してよい。
【0070】
本実施形態の例では、目標物Pは、図11に示すように、前面Paの柱PAとして、幅方向(図11の例ではY方向)における中央の柱PA1と、幅方向において柱PA1の一方側にある柱PA2と、柱PA1の他方側にある柱PA3との3つを有している。そのため、本実施形態の例では、目標物情報取得部78は、図14に示すように、計測点MAの数が所定数以上となる範囲RAとして、範囲RA1、RA2、RA3の3つを抽出する。そして、目標物情報取得部78は、近似線Nの座標系において中央に位置する範囲RA1に含まれる計測点MAを、柱PA1に対応する計測点としてクラスタリングし、範囲RA1の一方側にある範囲RA2に含まれる計測点MAを、柱PA2に対応する計測点としてクラスタリングし、範囲RA1の他方側にある範囲RA3に含まれる計測点MAを、柱PA3に対応する計測点としてクラスタリングする。ただし、柱PAの数は3つに限られず任意であり、クラスタの数は、柱PAの数に応じて決まる。また、計測点MAをクラスタリングする方法は上記に限られず、任意の方法で行ってもよい。
【0071】
(目標物の位置及び姿勢の特定)
図15は、目標物の位置の特定方法の一例を説明する模式図である。上述のように、目標物情報取得部78は、近似線Nに基づき、二次元座標系COにおける目標物Pの姿勢を特定する。例えば、目標物情報取得部78は、二次元座標系COにおける近似線Nの傾きを、目標物Pの姿勢とする。また、目標物情報取得部78は、クラスタリングされた計測点MAの位置に基づいて、二次元座標系COにおける目標物Pの位置を特定する。具体的には、目標物情報取得部78は、クラスタリングされた計測点MAの位置に基づいて、目標物Pの位置として、目標物Pの前面Paの両端点の位置を算出する。そして、目標物情報取得部78は、算出した両端点で近似線Nを区切った線分を、目標物Pの前面Paの位置及び姿勢として特定する。なお、前面Paの両端点とは、前面Paの幅方向における一方側の端点と他方側の端点とを指す。
【0072】
本実施形態では、目標物情報取得部78は、クラスタ毎に基準位置Cを算出する。そして、目標物情報取得部78は、クラスタ毎の基準位置C同士の距離に基づいて、算出した基準位置Cを目標物Pの位置の特定に用いてよいかを判断する。クラスタは柱PA毎に分類されるため、基準位置Cは、それぞれの柱PAの位置に対応する位置といえる。目標物情報取得部78は、基準位置C同士の間の距離が所定の距離範囲内であるかを判断し、所定の距離範囲内である場合には、その基準位置Cを目標物Pの位置の特定に用いると判断する。この場合、目標物情報取得部78は、算出した基準位置Cに基づき、目標物Pの位置を特定する。例えば、目標物情報取得部78は、算出した基準位置Cのうちの少なくとも1つを用いて、目標物Pの前面Paの幅方向における中央位置を算出し、中央位置に基づき目標物Pの前面Paの両端点の位置を算出してよい。一方、基準位置C同士の間の距離が、所定の距離範囲の範囲外である場合には、すなわち、所定の距離範囲よりも短い距離である場合、又は所定の距離範囲よりも長い距離である場合には、その基準位置Cを目標物Pの位置の特定に用いないと判断する。この場合は、算出した基準位置Cを用いて目標物Pの位置の特定を行わず、例えば、センサ26による検出処理を再度行わせて、目標物Pの位置及び姿勢の特定処理をやり直す。なお、所定の距離範囲は、任意に設定されてよいが、例えば設計値における柱PAの中央位置同士の間の距離に、所定のマージンを持たせた数値範囲であってよい。
【0073】
本実施形態の例では、目標物情報取得部78は、基準位置Cとして、それぞれのクラスタの計測点MAの重心の位置を算出する。目標物情報取得部78は、重心同士の間の距離が所定の距離範囲内であるかを判断し、所定の距離範囲内である場合には、その重心の位置を目標物Pの基準位置Cの特定に用いると判断する。そして、目標物情報取得部78は、算出した重心の位置に基づき、目標物Pの位置を特定する。図15の例では、柱PA1に対応するクラスタM0A1に含まれる計測点MAの重心が基準位置C1であり、柱PA2に対応するクラスタM0A2に含まれる計測点MAの重心が基準位置C2であり、柱PA3に対応するクラスタM0A3に含まれる計測点MAの重心が基準位置C3である。この場合、目標物情報取得部78は、基準位置C1と基準位置C2との距離と、基準位置C1と基準位置C3との距離とが、所定の距離範囲の範囲内であるかを判定する。目標物情報取得部78は、基準位置C1と基準位置C2との距離と、基準位置C1と基準位置C3との距離とが、所定の距離範囲の範囲内である場合には、基準位置C1を目標物Pの前面Paの中央位置として、目標物Pの位置を算出する。一方、基準位置C1と基準位置C2との距離と、基準位置C1と基準位置C3との距離との少なくとも一方が、所定の距離範囲の範囲外である場合には、算出した基準位置C1を用いて目標物Pの位置の特定を行わず、例えば、センサ26による検出処理を再度行わせて、目標物Pの位置及び姿勢の特定処理をやり直す。
【0074】
なお、計測点MAは近似線Nの座標系における位置であるため、基準位置Cも近似線Nの座標系における位置として算出される。従って、目標物情報取得部78は、近似線Nの座標系における基準位置Cを、X方向及びY方向の二次元座標系COに変換して、目標物Pの中央位置としてよい。ただし、目標物情報取得部78は、それぞれのクラスタの計測点MAに対応する二次元座標系COにおける計測点Mを抽出し、抽出したクラスタ毎の計測点Mに基づき、二次元座標系COにおける目標物Pの基準位置Cを算出してもよい。この場合、目標物Pの基準位置Cが二次元座標系CO上の座標として算出されるため、その後の座標変換が不要となる。
【0075】
目標物情報取得部78は、以上のようにして、目標物Pの位置及び姿勢を特定する。ただし、目標物情報取得部78による目標物Pの位置及び姿勢の特定方法は以上の説明に限られず、目標物情報取得部78は、二次元座標系COで重畳された測定点M(点群M0)の位置に基づいて、任意の方法で、目標物Pの位置及び姿勢を特定してよい。
【0076】
(第2パスの設定)
図16は、第2パスに沿った移動の一例を示す模式図である。第2パス情報取得部80は、目標物情報取得部78が特定した目標物Pの位置及び姿勢から、目標位置A3を設定する。例えば、第2パス情報取得部80は、目標物Pの位置及び姿勢から、目標物Pをピックアップ可能な(直進することでフォーク24を目標物Pの開口PBに挿入することができる)位置及び姿勢を算出して、目標位置A3として設定する。一例として、開口PBの入口から、目標物Pの開口PBの軸方向に1000mm平行移動した箇所を、目標位置A3としてもよい。そして、第2パス情報取得部80は、図16に示すように、開始位置である第2位置A2から、設定した目標位置A3までの軌道を、第2パスR2として設定する。第2パス情報取得部80は、目標位置A3の情報に基づいて任意の方法で第2パスR2を設定してよいが、例えば、モデル予測制御(MPC:Model Predictive Control)によって、第2パスR2を算出してもよい。
【0077】
(第2パスに沿った移動)
移動制御部72は、第2位置A2から目標位置A3まで、第2パスR2を通るように、移動体10を移動させる。移動体10が目標位置A3に到着したら、移動制御部72は、目標位置A3から移動体10を直進させて、フォーク24を目標物Pの開口PBに挿入させて、目標物Pをピックアップさせる。移動制御部72は、目標物Pをピックアップした移動体10を、設定された搬送先まで搬送させる。
【0078】
このように、移動制御部72は、第2位置A2から目標位置A3まで、第2パスR2に沿って移動体10を移動させるが、それに限られず、例えば、第2パスR2に沿った移動と直接フィードバック制御による移動とを切り替えて、移動体10を目標位置A3まで移動させてもよい。直接フィードバックによる制御としては、例えば「尾里淳,丸典明 著「線形ビジュアルサーボによる全方向移動ロボットの位置と姿勢の制御」、日本機械学会論文集(C編)、第77巻、第774号、p.215-224、2011年2月25日」に記載されているような、ビジュアルサーボ方式による制御が挙げられる。また例えば、移動制御部72は、移動体10が第2パスR2に沿って目標位置A3に到着したら、直接フィードバックによる制御に切り替えて、目標物Pをピックアップするよう、移動体10を移動させてもよい。
【0079】
(目標物の位置及び姿勢検出の処理フロー)
次に、以上説明した目標物Pの位置及び姿勢検出についての、処理フローを説明する。図17は、目標物の位置及び姿勢検出の処理フローを説明するフローチャートである。制御装置28の検出制御部74は、移動体10が第1パスR1に沿って第1位置A1から第2位置A2までの間を移動中に、センサ26に目標物Pを複数回検出させる。すなわち本実施形態では、第1パスR1に沿って移動させつつ、センサ26に目標物Pを検出させる。図17に示すように、検出制御部74は、センサ26による検出結果から、点群M0(計測点M)を取得する(ステップS10)。そして、検出制御部74は、点群M0に基づいて、目標物Pの前面Paに対応する直線Lを算出する(ステップS12)。本実施形態では、検出制御部74は、計測点Mから直線候補を検出し、スコア積算値に基づいて直線L0を算出する。そして、検出制御部74は、目標物Pの幅方向における両端点の位置を特定し、直線L0を両端点で区切った線分を、直線Lとして検出する。なお、両端点の特定ができなかった場合には、計測点Mの抽出及び重畳を行うことなく、後述のステップS18に移動してよい。直線Lを検出したら、検出制御部74は、直線Lに基づき、取得した計測点Mのうちから、一部の計測点Mを抽出する(ステップS14)。本実施形態では、検出制御部74は、計測点Mと直線Lとの位置関係に基づき、計測点Mを抽出する。
【0080】
制御装置28の点群重畳部76は、検出制御部74によって抽出された計測点Mを、同一の座標系(ここでは二次元座標系CO)で重畳する(ステップS16)。なお、ステップS16においては、センサ26が前回検出してから今回検出するまでの移動体10の移動距離が、所定距離以上である場合に、計測点Mを重畳し、所定距離未満である場合には、計測点Mを重畳することなく、後述のステップS18に進んでもよい。移動距離は任意の方法で取得してよいが、例えば、センサ26が前回検出を行った際の移動体10の位置と、今回検出した際の移動体10の位置とから、センサ26が前回検出してから今回検出するまでの移動距離を算出することで、取得されてよい。
【0081】
点群重畳部76は、同一の座標系で重畳された計測点Mの数が十分であるかを判定し(ステップS18)、十分であると判定しない場合には(ステップS18;No)、すなわち計測点Mの数が十分ではないと判定した場合には、ステップS10に戻り、センサ26による他の検出結果(他のスキャンによる検出結果)による点群M0を取得させることで、点群M0の取得を繰り返す。このように計測点Mの数が十分となるまでセンサ26の検出を繰り返させることで、点群重畳部76は、センサ26の複数の検出結果に対応する十分な数の計測点Mを、同一の座標系で重畳することができる。なお、計測点Mの数が十分であるかの判定は、任意の方法で行ってよい。例えば、点群重畳部76は、計測点Mの数が閾値以上であるかを判定基準としてよい。この場合例えば、点群重畳部76は、重畳された計測点Mの数が閾値以上である場合には、計測点Mの数が十分であると判定し、閾値未満である場合には、計測点Mの数が十分でないと判定する。この場合の閾値は任意の数に設定されていてよいが、例えば1回の検出(スキャン)で抽出される一般的な計測点Mの数より多い数として、設定されることが好ましい。また例えば、点群重畳部76は、センサ26による検出の回数(スキャンの回数)を判定基準としてよい。この場合例えば、点群重畳部76は、センサ26による検出の回数が所定回数以上である場合には、計測点Mの数が十分であると判定し、所定回数未満である場合には、計測点Mの数が十分でないと判定する。ここでの所定回数は、例えば、2回以上の任意の回数として設定されてよい。
【0082】
なお、本実施形態では、センサ26が1回検出する度に、計測点Mを重畳する処理を行って、ステップS18で十分な数の計測点Mが重畳されたかを判断するが、それに限られない。例えば、センサ26が任意の複数回検出してから、計測点Mを重畳する処理を行って、ステップS18で十分な数の計測点Mが重畳されたかを判断してもよい。
【0083】
計測点Mの数が十分であると判定された場合(ステップS18;Yes)、制御装置28の目標物情報取得部78は、点群重畳部76によって重畳された各計測点M(点群M0)の位置に基づき、重畳された計測点Mの近似線Nを算出する(ステップS20)。目標物情報取得部78は、点群重畳部76によって重畳された各計測点Mを、近似線Nの座標系に変換して(ステップS22)、近似線Nの座標系の計測点MAを取得する。そして、目標物情報取得部78は、計測点MAをクラスタリングして、基準位置Cを算出する(ステップS24)。本実施形態では、目標物情報取得部78は、計測点MAをクラスタ毎に分類して、クラスタ毎に基準位置Cを算出する。そして、目標物情報取得部78は、基準位置C同士の距離が所定の距離範囲内であるかを判断して(ステップS26)、所定の距離範囲内にない場合には(ステップS26;No)、ステップS10に戻る。また、クラスタリングが実行できない場合にも(例えば柱PAの個数分のクラスタに分類することができない場合にも)、ステップS10に戻ってよい。
【0084】
基準位置C同士の距離が所定の距離範囲内である場合には(ステップS26;Yes)、目標物情報取得部78は、近似線Nと基準位置Cとに基づき、目標物Pの位置及び姿勢を特定する(ステップS28)。本実施形態では、目標物情報取得部78は、近似線Nに基づいて目標物Pの姿勢を特定し、基準位置Cに基づき、目標物Pの位置を特定する。具体的には、本実施形態の例では、目標物情報取得部78は、計測点MAのクラスタのそれぞれの重心を基準位置Cとして特定して、重心同士の距離を算出する。そして、重心同士の距離が所定の距離範囲内である場合には、目標物Pの基準位置Cと近似線Nとから、目標物Pの前面Paの両端点の位置を算出し、算出した両端点で近似線Nを区切った線分を、目標物Pの前面Paとして特定する。
【0085】
ステップS28での目標物Pの位置及び姿勢の特定ができたら、制御装置28は、目標物Pの位置及び姿勢に基づいて第2パスR2を生成して、第2パスR2に沿って移動体10を移動させて、目標物Pの前面Paにアプローチさせる。
【0086】
(効果)
以上説明したように、本実施形態に係る移動体10において、検出制御部74は、センサ26に目標物Pの前面Paを複数回検出させて、センサ26の複数回の検出結果を点群M0として取得する。また、点群重畳部76は、センサ26の複数の検出結果に対応する点群M0を同一座標系で重畳する。また、目標物情報取得部78は、重畳した点群M0の位置に基づいて、目標物Pの位置及び姿勢を特定する。本実施形態に係る移動体10は、目標物Pの位置及び姿勢の検出のために、センサ26による複数の検出結果を同一の座標系での点群M0として重畳することで、検出精度の低下を抑制することができる。さらに言えば、第1パスR1に沿って移動している最中に、センサ26に複数回検出させることで、目標物Pを適切に検出させて、目標物Pの検出精度の低下を更に好適に抑制できる。
【0087】
なお、本実施形態では、移動体10の制御装置28が、センサ26の検出結果から点群M0を抽出し、抽出された点群M0を重畳して、目標物Pの位置及び姿勢を特定し、目標物Pの位置及び姿勢から第2パスR2を生成していた。ただし、これらの処理は、移動体10が実施することに限られず、例えば情報処理装置14などの他の装置がこれらの処理の少なくとも一部を実行して、移動体10は、その結果を取得するものであってもよい。すなわち例えば、移動体10の点群重畳部76は、同一座標系(二次元座標系CO)で重畳された点群M0(計測点M)の情報を取得するものであってよく、自身で点群M0を重畳してもよいし、重畳された点群M0の情報を外部の装置から取得してもよい。また例えば、移動体10の目標物情報取得部78は、目標物Pの位置及び姿勢の情報を取得するものであってよく、自身で目標物Pの位置及び姿勢を特定することにより、目標物Pの位置及び姿勢の情報を取得してもよいし、外部の装置から目標物Pの位置及び姿勢の情報を取得してもよい。目標物情報取得部78が外部の装置から目標物Pの位置及び姿勢の情報を取得する場合には、移動体10は、重畳された点群M0の情報を用いて演算する必要はないため、重畳された点群M0の情報を取得する必要はないといえる。また例えば、移動体10の第2パス情報取得部80は、第2パスR2の情報を取得するものであってよく、自身で目標物Pの位置及び姿勢に基づき第2パスR2を設定してもよいし、外部の装置から第2パスR2の情報を取得してもよい。第2パス情報取得部80が外部の装置から第2パスR2の情報を取得する場合には、移動体10は、目標物Pの位置及び姿勢を用いて演算する必要はないため、重畳された点群M0の情報や、目標物Pの位置及び姿勢の情報を取得する必要はないといえる。
【0088】
(変形例)
第1実施形態においては、目標物Pの位置の特定に用いる基準位置Cとして、クラスタ毎の計測点MAの重心を用いたが、重心を基準位置Cとして用いることに限られない。以下、第1実施形態の変形例について説明する。以降の変形例において、第1実施形態と共通する箇所は、説明を省略する。
【0089】
(第1変形例)
図18は、第1変形例における目標物の位置の特定方法の例を説明する模式図である。第1変形例においては、目標物情報取得部78は、所定区間SEと、検知区間RAとを設定する。所定区間SEとは、近似線の座標系において予め設定された所定の範囲となる区間であり、言い換えれば、近似線に沿って所定の長さとなる区間である。所定区間SEの長さは任意に設定してよいが、例えば設計値における柱PAの幅を用いることができる。検知区間RAとは、近似線の座標系において、予め設定された所定の範囲であり、かつ予め設定された所定の位置(座標)となる区間である。検知区間RAは、柱PAが存在していると想定される位置であり、検知区間RAの位置は任意の方法で設定されてよい。また、検知区間RAの範囲(長さ)も、任意に設定されてよいが、例えば所定区間SEの範囲(長さ)よりも長く設定される。検知区間RAは、目標物Pの柱PAの個数分、すなわち計測点MAのクラスタの個数分、設定される。図18の例では、中央の柱PA1に対応する検知区間RA1と、一方側の柱PA2に対応する検知区間RA2と、他方側の柱PA3に対応する検知区間RA3とが設定された例を示している。なお、検知区間RAの位置や長さは、計測点MAのクラスタの位置に基づき、検知区間RAにクラスタが含まれるように、設定されてもよい。この場合例えば、検知区間RA1が、中央の柱PA1に対応するクラスタM0A1を含むように設定され、検知区間RA2が、一方側の柱PA2に対応するクラスタM0A2を含むように設定され、検知区間RA3が、他方側の柱PA3に対応するクラスタM0A1を含むように設定されてよい。
【0090】
第1変形例の目標物情報取得部78は、図18の例に示すように、所定区間SEの位置を検知区間RAの範囲内で移動させながら、所定区間SEの範囲に含まれる計測点MAの数であるクラスタ計測点数を、所定区間SEの位置を移動させる毎に、算出する。すなわち、目標物情報取得部78は、クラスタ計測点数(所定区間SEの範囲に含まれる計測点MAの数)を、所定区間SEの位置毎に算出する。目標物情報取得部78は、例えば、所定区間SEの位置を、単位範囲(計測点MAの数をカウントした範囲)の長さずつ移動させて、単位範囲の長さだけ位置がずれたそれぞれの所定区間SEでのクラスタ計測点数を算出する。ただし、所定区間SEの位置を移動させる距離は単位範囲の長さであることに限られず、目標物情報取得部78は、所定区間SEの位置を所定長さずつ移動させて、所定長さだけ位置がずれたそれぞれの所定区間SEでのクラスタ計測点数を算出するといえる。
【0091】
そして、第1変形例の目標物情報取得部78は、クラスタ計測点数に基づいて、基準位置Cを特定する。例えば、目標物情報取得部78は、検知区間RAの範囲内での位置毎の所定区間SEのうちで、クラスタ計測点数が最大となる所定区間SEの位置に基づき、基準位置Cを特定する。この場合例えば、目標物情報取得部78は、クラスタ計測点数が最大となる所定区間SEの基準となる位置(例えば中央位置)を、基準位置Cとしてよい。目標物情報取得部78は、検知区間RA毎に、すなわちクラスタ毎に、同様の方法で基準位置Cを特定する。従って、図18の例では、検知区間RA1においてクラスタ計測点数が最大となる所定区間SEの中央位置が、基準位置C1とされ、検知区間RA2においてクラスタ計測点数が最大となる所定区間SEの中央位置が、基準位置C2とされ、検知区間RA3においてクラスタ計測点数が最大となる所定区間SEの中央位置が、基準位置C3とされる。
【0092】
基準位置Cを特定したら、第1変形例においても、第1実施形態と同様の方法で目標物Pの位置を特定するため、以降の説明は省略する。
【0093】
第1変形例のように、所定区間SEの位置毎のクラスタ計測点数を算出し、クラスタ計測点数に基づきクラスタ毎に基準位置を設定することで、目標物Pの位置を高精度に算出できる。
【0094】
(第2変形例)
図19は、第2変形例における目標物の位置の特定方法の例を説明する模式図である。第2変形例においては、目標物情報取得部78は、近似線の座標系での所定区間SEと、検知区間RAとを設定する。第2変形例においては、柱PA毎に、すなわちクラスタ毎に、所定区間SEを設定する点で、第1実施形態とは異なる。図19の例では、目標物情報取得部78は、所定区間SE1(第1区間)と、所定区間SE2(第2区間)と、所定区間SE3(第3区間)とを設定する。所定区間SE1、SE2、SE3は、近似線の座標系において、予め設定された所定の範囲となる区間であり、言い換えれば、近似線に沿って所定の長さとなる区間である。所定区間SEの長さは任意に設定してよい。ただし後述のように、クラスタ計測点数を算出する際には、所定区間SE1と所定区間SE2と所定区間SE3とは、互いの距離(すなわち相対位置)が固定されたまま、位置が移動される。すなわち例えば、所定区間SE1と所定区間SE2との距離をDIaとし、所定区間SE1と所定区間SE3との距離をDIbとすると、クラスタ計測点数を算出するために、所定区間SE1、SE2、SE3とを動かしたとしても、所定区間SE1と所定区間SE2との距離は距離DIaのまま固定され、所定区間SE1と所定区間SE3との距離は距離DIbのまま固定される。検知区間RAとは、近似線の座標系において、予め設定された所定の位置であり、かつ、予め設定された所定の範囲となる区間である。第2変形例においては、検知区間RAは、目標物Pの柱PAの個数分設定されることに限られず、1つ設定されていればよい。
【0095】
第2変形例の目標物情報取得部78は、図19の例に示すように、所定区間SE1、SE2、SE3同士の距離(相対位置)を固定しつつ、所定区間SE1、SE2、SE3の近似線Nの座標系における位置を検知区間RAの範囲内で移動させながら、所定区間SE1、SE2、SE3のクラスタ計測点数を、所定区間SE1、SE2、SE3の位置を移動させる毎に、算出する。すなわち、目標物情報取得部78は、クラスタ計測点数を、所定区間SE1、SE2、SE3の位置毎に算出する。目標物情報取得部78は、例えば、所定区間SE1、SE2、SE3の位置を、計測点MAの数を割り当てた単位範囲の長さずつ移動させて、単位範囲の長さだけ位置がずれたそれぞれの所定区間SE1、SE2、SE3でのクラスタ計測点数を算出する。ただし、所定区間SE1、SE2、SE3の位置を移動させる距離は単位範囲であることに限られず、目標物情報取得部78は、所定区間SE1、SE2、SE3の位置を所定長さずつ移動させて、所定長さだけ位置がずれたそれぞれの所定区間SE1、SE2、SE3でのクラスタ計測点数を算出するといえる。
【0096】
そして、第2変形例においては、目標物情報取得部78は、クラスタ計測点数に基づいて、基準位置Cを特定する。例えば、目標物情報取得部78は、検知区間RAの範囲内での位置毎の所定区間SE1、SE2、SE3のうちで、所定区間SE1、SE2、SE3でのクラスタ計測点数の合計値が最大となる所定区間SE1、SE2、SE3の位置に基づき、基準位置C1、C2、C3を特定する。例えば、目標物情報取得部78は、所定区間SE1、SE2、SE3でのクラスタ計測点数の合計値を、所定区間SE1、SE2、SE3の位置毎に算出し、クラスタ計測点数の合計値が最大となった際の所定区間SE1、SE2、SE3の基準となる位置(たとえは中央位置)を、基準位置C1、C2、C3として特定する。図19の例では、目標物情報取得部78は、クラスタ計測点数の合計値が最大となる所定区間SE1、SE2、SE3の中央位置を、それぞれ、基準位置C1、C2、C3としている。
【0097】
基準位置Cを特定したら、第2変形例においても、第1実施形態と同様の方法で目標物Pの位置を特定するため、以降の説明は省略する。
【0098】
第2変形例のように、所定区間SEの位置毎のクラスタ計測点数に基づき基準位置を設定することで、目標物Pの位置を高精度に算出できる。さらに、第2変形例においては、所定区間SE1、SE2、SE3の相対位置を固定しながら、クラスタ計測点数を算出するため、計測点MAを柱PA毎にクラスタリングする処理(計測点MAをクラスタ毎に区分する処理)が、不要となる。
【0099】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態においては、点群の検出精度に対する信頼度を算出して、信頼度に応じた重みにも基づき目標物Pの位置及び姿勢を特定する点で、第1実施形態とは異なる。第2実施形態において第1実施形態と構成が共通する箇所は、説明を省略する。なお、第2実施形態は、第1実施形態の第1変形例及び第2変形例にも適用可能である。
【0100】
図20は、第2実施形態に係る移動体の制御装置の模式的なブロック図である。図20に示すように、第2実施形態に係る移動体10の制御装置28Aは、制御部64が重み割り当て部82Aを含む点で、第1実施形態とは異なる。
【0101】
(信頼度の算出)
重み割り当て部82Aは、測定点M(点群M0)の検出精度の信頼度を算出する。重み割り当て部82Aは、センサ26による1回の検出(1回のスキャン)毎に、信頼度を算出する。すなわち、重み割り当て部82Aは、センサ26による同じ検出(同じスキャン)で取得された計測点Mについて、同じ信頼度を割り当てる。
【0102】
重み割り当て部82Aは、任意の方法で測定点Mの信頼度を算出してよいが、信頼度の算出方法の例を以下で説明する。
【0103】
例えば、重み割り当て部82Aは、センサ26による1回の検出で取得すべき理想の計測点Mの数に対する、センサ26による1回の検出で取得された実際の計測点Mの数の比率に基づき、そのセンサ26の検出で取得された計測点Mの信頼度を算出する。理想の計測点Mの数は、任意の方法で算出してよいが、例えば、検出した際の移動体10と、検出制御部74が検出した直線L(目標物Pの前面Paに対応する直線L)との位置関係に基づき、算出してよい。すなわち、直線Lを目標物Pの前面Paとして扱えば、検出した際の移動体10の位置と、目標物Pの前面Pa(直線L)の位置と、センサ26の性能(例えば角度分解能)とから、目標物Pの前面Paで観測されるはずの計測点Mの個数を算出できる。本例では、重み割り当て部82Aは、検出した際の移動体10の位置と、目標物Pの前面Pa(直線L)の位置と、センサ26の角度分解能とから、目標物Pの前面Paで観測されるはずの計測点Mの個数を、理想の計測点Mの数として算出する。なお、角度分解能とは、2つの対象点を分離して検知できる角度を示している。また、ここでの移動体10の位置は、移動体10の基準となる位置でもよいし、検出したセンサ26の位置であってもよい。
【0104】
図21は、信頼度の算出方法の一例を説明するための模式図である。本例では、図21の例に示すように、重み割り当て部82Aは、直線Lに基づき柱PAの両端点の位置を取得し、検出した際の移動体10の位置と柱PAの一方の端点とを結ぶ直線と、検出した際の移動体10の位置と柱PAの他方の端点とを結ぶ直線との、なす角度θを算出する。そして、重み割り当て部82Aは、角度θを角度分解能で除した値を、その柱PAについての理想の測定点Mの数として算出する。また、重み割り当て部82Aは、センサ26による1回の検出でその柱PAとして取得された測定点Mの実際の数を算出する。重み割り当て部82Aは、例えば、センサ26によるその検出によって取得された測定点Mのうちで、その柱PAに対応するクラスタに割り当てられた測定点Mを、その柱PAとして取得された測定点Mの実際の数として算出する。重み割り当て部82Aは、その柱PAについての理想の測定点Mの数に対する、その柱PAとして取得された測定点Mの実際の数の比率を、その柱PAに対応する測定点Mの信頼度として算出する。重み割り当て部82Aは、柱PA毎に、同様の方法で、測定点Mの信頼度を算出し、柱PA毎の測定点Mの信頼度に基づき、センサ26によるその検出で取得された測定点Mの信頼度を算出する。例えば、重み割り当て部82Aは、センサ26によるその検出における柱PA毎の測定点Mの信頼度のうちの最小値を、その検出で取得された各測定点Mの信頼度として算出してよい。
【0105】
なお、以上の説明では、重み割り当て部82Aは、柱PA毎に、測定点Mの信頼度を算出したが、それに限られない。この場合例えば、重み割り当て部82Aは、それぞれの柱PAについての理想の測定点Mの数を上記と同様の方法で算出し、それらを合計することで、全ての柱PAについての理想の測定点の数の合計値を算出する。そして、重み割り当て部82Aは、センサ26によるその検出によって取得された測定点Mのうちで、それぞれの柱PAとして取得された測定点Mの合計値を、測定点Mの実際の数の合計値として算出する。この場合例えば、重み割り当て部82Aは、各クラスタに含まれる測定点Mの合計値を、測定点Mの実際の数の合計値として算出してよい。そして、重み割り当て部82Aは、理想の測定点の数の合計値に対する、実際の測定点の数の合計値の比率を、その検出で取得された各測定点Mの信頼度として算出してよい。
【0106】
図22は、信頼度の算出方法の他の一例を説明するための模式図である。図22の例では、目標物Pに対して所定の位置となる基準位置AR1に移動体10が位置していると仮定して、理想の測定点Mの数を算出する点で、図21の例とは異なる。図22の例の説明で、図21の例と共通する箇所は、説明を省略する。
【0107】
具体的には、図22の例に示すように、重み割り当て部82Aは、直線Lに基づき、基準位置AR1を算出する。重み割り当て部82Aは、直線Lに対して移動体10が所定の位置及び姿勢となるような位置を、基準位置AR1として算出する。具体的には、重み割り当て部82Aは、基準位置AR1と直線L上の基準点とを結ぶ直線LXの長さが、検出した際の移動体10の位置から直線Lの基準点までの長さと等しくなり、かつ、直線LXが直線Lに対して直交するように、基準位置AR1を算出する。ここでの直線L上の基準点は、任意の位置であってよいが、例えば直線Lの中点であってよい。すなわち、重み割り当て部82Aは、レーザ光の入射角が0°となる位置を、基準位置AR1の位置としてよい。
【0108】
図22の例では、基準位置AR1と柱PAの一方の端点とを結ぶ直線と、基準位置AR1から柱PAの他方の端点とを結ぶ直線とのなす角度θを算出する。そして、重み割り当て部82Aは、角度θを角度分解能で除した値を、その柱PAについての理想の測定点Mの数として算出する。重み割り当て部82Aは、その柱PAについての理想の測定点Mの数に対する、その柱PAとして取得された測定点Mの実際の数の比率を、その柱PAに対応する測定点Mの信頼度として算出する。重み割り当て部82Aは、柱PA毎に、同様の方法で、測定点Mの信頼度を算出し、柱PA毎の測定点Mの信頼度に基づき、センサ26によるその検出で取得された測定点Mの信頼度を算出する。なお、図22の例でも、柱PA毎に測定点Mの信頼度を算出することに限られず、図21の例と同様に、理想の測定点の数の合計値に対する、実際の測定点の数の合計値の比率を、その検出で取得された各測定点Mの信頼度として算出してよい。
【0109】
図21及び図22の例では、理想の測定点の数に対する、実際の測定点の数の比率に基づき、測定点Mの信頼度を算出したが、信頼度の算出方法はそれに限られない。例えば、重み割り当て部82Aは、直線Lの残差に基づき、測定点Mの信頼度を算出してもよい。残差とは、計測点Mと直線Lとの間の距離を指す。重み割り当て部82Aは、直線PSAの残差が小さいほど、信頼度を高く設定することが好ましい。例えば、重み割り当て部82Aは、それぞれの計測点Mについて、二次元座標系COにおける、計測点Mと直線Lとの間の距離を残差として算出し、算出した残差の合計値が小さいほど信頼度を高く設定してよい。例えば、重み割り当て部82Aは、測定点Mの合計値に対する残差の合計値の比率を、その検出で取得された各測定点Mの信頼度として算出してよい。
【0110】
また例えば、重み割り当て部82Aは、直線Lの算出に用いた測定点Mのうちの一部の測定点Mを除去して、残った測定点Mを直線フィッティングして算出した直線L’と、直線Lとの差分に基づいて、その検出で取得された各測定点Mの信頼度を算出してよい。例えば、重み割り当て部82Aは、直線L’と直線Lとの最短距離に基づき、各測定点Mの信頼度を算出してよい。この場合例えば、重み割り当て部82Aは、直線L’と直線Lとの最短距離が短いほど、信頼度を高くする。また例えば、重み割り当て部82Aは、直線L’のX座標と直線LのX座標との差分と、直線L’のY座標と直線LのY座標との差分と、直線L’の姿勢(角度)と直線Lの姿勢(角度)との差分とに基づき、各測定点Mの信頼度を算出してよい。この場合、重み割り当て部82Aは、それらの差分が小さいほど、信頼度を高くする。
【0111】
また例えば、重み割り当て部82Aは、検出した際の移動体10と目標物P(直線L)との位置関係に基づき、各測定点Mの信頼度を算出してよい。この場合例えば、重み割り当て部82Aは、検出した際の移動体10と目標物P(直線L)との距離が短いほど、各測定点Mの信頼度を高くする。また例えば、重み割り当て部82Aは、検出した際の移動体10と目標物P(直線L)とを結んだ直線の、直線Lの垂線に対する角度が小さいほど、各測定点Mの信頼度を高くする。
【0112】
また例えば、重み割り当て部82Aは、移動体10が位置している床上の位置(すなわち領域AR内で移動体10が位置している箇所)の、水平方向に対する傾斜角度に基づき、各測定点Mの信頼度を算出してよい。この場合例えば、重み割り当て部82Aは、検出した際の移動体10が位置している箇所の、水平方向に対する傾斜角度の情報を取得し、傾斜角度に基づき、各測定点Mの信頼度を算出する。重み割り当て部82Aは、傾斜角度が小さいほど、各測定点Mの信頼度を高くする。なお、傾斜角度の情報は任意の方法で取得してよいが、例えば移動体10に傾斜角度を検出するセンサを搭載し、そのセンサの検出結果を取得してよい。
【0113】
(重みの割り当て)
図23は、重畳された測定点毎の重みの一例を示す模式図である。重み割り当て部82Aは、算出した信頼度に基づき、計測点Mに重みを割り当てる。重み割り当て部82Aは、信頼度が高いほど、すなわち検出精度が高いほど、重みが大きくなるように、計測点Mに重みを割り当てる。上述のように、信頼度は、センサ26による1回の検出で取得された計測点M毎に割り当てられるため、重みも、センサ26による1回の検出で取得された計測点M毎に割り当てられる。図23の例では、測定点MA1、MA2、MA3が同じ検出で取得され、測定点MB1、MB2、MB3が、同じ検出であるが、測定点MA1、MA2、MA3とは別の検出によって取得され、測定点MC1、MC2、MC3が、同じ検出であるが、測定点MA1、MA2、MA3、MB1、MB2、MB3とは別の検出によって取得されている。その場合、測定点MA1、MA2、MA3については、測定点MA1、MA2、MA3を含む点群M0について算出された信頼度に基づき、同じ重みが割り当てられ、測定点MB1、MB2、MB3については、測定点MB1、MB2、MB3を含む点群M0について算出された信頼度に基づき、同じ重みが割り当てられ、測定点MC1、MC2、MC3については、測定点MC1、MC2、MC3を含む点群M0について算出された信頼度に基づき、同じ重みが割り当てられることになる。
【0114】
(目標物の位置及び姿勢の特定)
第2実施形態においては、目標物情報取得部78は、点群重畳部76によって二次元座標系COで重畳された各計測点Mの位置に加えて、各測定点Mの重みにも基づき、目標物Pの位置及び姿勢を特定する。具体的には、目標物情報取得部78は、近似線Nの座標系における位置毎の計測点MAの数と、その測定点MAに対応する測定点Mの重みとに基づき、目標物Pの位置を特定する。例えば、第1実施形態においては、目標物情報取得部78は、近似線Nの座標系における位置毎の計測点MAの数に基づき、基準位置Cを算出していたが、第2実施形態においては、目標物情報取得部78は、近似線Nの座標系における位置毎の計測点MAの数と、その測定点MAに対応する測定点Mの重みとに基づき、基準位置Cを特定してよい。すなわち例えば、目標物情報取得部78は、測定点Mの重みを質量として取り扱い、各測定点Mのモーメントが釣り合う位置を、基準位置Cとしてよい。また例えば、第1変形例(所定区間SEの位置毎のクラスタ計測点数に基づきクラスタ毎に基準位置を設定)に適用する場合には、目標物情報取得部78は、クラスタ計測点数と重みとを乗じた値が最大となる所定区間SEの位置を、基準位置Cとして設定してよい。また例えば、第2変形例(所定区間SE1、SE2、SE3の位置毎のクラスタ計測点数に基づき基準位置を設定)に適用する場合には、目標物情報取得部78は、クラスタ計測点数と重みとを乗じた値の合計値が最大となる所定区間SE1、SE2、SE3の位置に基づき、基準位置Cを設定してよい。
【0115】
以上のように、信頼度に基づき算出された重みも考慮することで、目標物Pの検出精度の低下をより好適に抑制できる。
【0116】
(本開示の効果)
以上説明したように、本開示における移動体10の制御方法は、自動で移動する移動体10の制御方法であって、移動体10に設けられたセンサ26に目標物Pを複数回検出させて、センサ26の複数回の検出結果を点群M0として取得するステップと、センサ26の複数の検出結果に対応する点群M0を同一座標系(ここでは二次元座標系CO)で重畳するステップと、重畳した点群M0の位置に基づいて、目標物Pの位置及び姿勢を特定するステップと、を含む。本開示の制御方法は、目標物Pの位置及び姿勢の検出のために、センサ26による複数の検出結果を同一の座標系での点群M0として重畳することで、目標物Pの検出精度の低下を抑制することができる。
【0117】
本開示の制御方法は、目標物Pの位置及び姿勢に基づいて、目標物Pに対して所定の位置及び姿勢となる目標位置A3までのアプローチパス(第2パスR2)を設定するステップと、第2パスR2に沿って移動体10を移動させるステップと、をさらに含む。本開示の制御方法は、センサ26による複数の検出結果により取得された点群M0に基づき第2パスR2を設定するため、第2パスR2を高精度に生成することができ、目標物Pに対して適切にアプローチすることが可能となる。
【0118】
本開示の制御方法は、目標物Pが設置される設置領域AR0を横切る広域パス(第1パスR1)の情報を取得するステップと、第1パスR1に沿って移動体10を移動させるステップと、をさらに含む。点群M0を取得するステップにおいては、移動体10が第1パスR1に沿って移動中に、センサ26に目標物Pを複数回検出させる。本制御方法によると、目標物Pを横切って移動している最中に、センサ26に複数回検出させることで、目標物Pを適切に検出させて、目標物Pの検出精度の低下を更に好適に抑制できる。
【0119】
目標物の位置及び姿勢を決定するステップにおいては、重畳した点群M0の近似線Nを算出し、重畳した点群M0を近似線N上に射影することで、同一座標系の点群M0(測定点M9を近似線Nの座標系の点群(測定点MA)に変換する。そして、近似線Nの座標系における点群(測定点MA)の位置に基づき、目標物Pの位置を特定し、近似線Nに基づき、目標物Pの姿勢を特定する。本制御方法によると、複数回の検出で取得された測定点MAの近似線Nから目標物Pの姿勢を特定し、近似線Nの座標系における測定点MAの位置から目標物Pの位置を特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0120】
目標物Pは、複数の柱PAと柱PA同士の間の開口PBとが形成されており、目標物Pの位置及び姿勢を決定するステップにおいては、近似線Nの座標系の点群(測定点MA)に基づき、柱PA毎に基準位置Cを特定し、基準位置C同士の距離が所定の距離範囲内である場合には、基準位置Cに基づいて、目標物Pの位置を特定する。本制御方法によると、基準位置C同士の距離が所定の距離範囲内である場合には、点群の検出精度が高いと判断して、その基準位置Cを用いて目標物Pの位置を特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0121】
目標物Pの位置及び姿勢を決定するステップにおいては、近似線Nの座標系の点群(計測点MA)を、柱PB毎にクラスタリングし、クラスタリングされた点群(計測点MA)毎に、基準位置Cを算出する。本制御方法によると、測定点MAをクラスタに分類し、それぞれのクラスタにおける基準位置Cに基づいて、目標物Pの位置を特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0122】
目標物Pの位置及び姿勢を決定するステップにおいては、クラスタリングされた点群(計測点MA)の重心を、基準位置Cとする。本制御方法によると、クラスタ毎の重心を基準位置Cとして目標物Pの位置を特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0123】
目標物Pの位置及び姿勢を決定するステップにおいては、クラスタリングされたそれぞれの点群(測定点MA)に対し、点群(測定点MA)を数えるために設定した所定区間SEの位置を、近似線Nの座標系において所定長さずつ移動させながら、所定区間SEの位置毎に、所定区間SEに含まれる点群の数(クラスタ計測点数)を算出し、所定区間SEの位置毎のクラスタ計測点数に基づいて、基準位置Cを特定する。本制御方法によると、所定区間SEの位置毎のクラスタ計測点数に基づいて、基準位置Cを特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0124】
目標物Pの位置及び姿勢を決定するステップにおいては、点群(測定点MA)を数えるために設定した第1区間(例えば所定区間SE1)及び第2区間(例えば所定区間SE2)の位置を、第1区間と第2区間との相対位置を固定させつつ、近似線Nの座標系において所定長さずつ移動させながら、第1区間に含まれる点群(測定点MA)の数と、第2区間に含まれる点群(測定点MA)の数とを、第1区間及び第2区間の位置毎に算出する。そして、第1区間及び第2区間の位置毎のクラスタ計測点数に基づいて、基準位置Cを特定する。本制御方法によると、第1区間及び第2区間の位置毎のクラスタ計測点数に基づいて、基準位置Cを特定するため、目標物Pの検出精度の低下を更に好適に抑制できる。
【0125】
点群M0を同一座標系で重畳するステップにおいては、少なくとも1回の検出によって取得された点群M0に基づき、目標物Pの前面Paに対応する直線Lを算出し、直線Lと点群M0との位置関係に基づき、同一座標系で重畳する点群M0を抽出する。本制御方法によると、目標物Pの位置及び姿勢の特定に用いる点群M0をこのような方法で抽出することで、目標物Pの前面Paに対応しない点群M0を除外し、目標物Pの前面Paに対応する点群M0を適切に用いて、目標物Pの位置及び姿勢を特定できる。そのため、本制御方法によると、目標物Pの検出精度の低下を更に好適に抑制できる。
【0126】
点群M0を同一座標系で重畳するステップにおいては、直線Lに対して所定の距離範囲内にある点群M0を、同一座標系で重畳する点群M0として抽出する。本制御方法によると、目標物Pの位置及び姿勢の特定に用いる点群M0をこのような方法で抽出することで、目標物Pの検出精度の低下を更に好適に抑制できる。
【0127】
本開示の制御方法は、点群M0の検出精度に対する信頼度を算出して、信頼度に応じた重みを点群M0に割り当てるステップをさらに含む。目標物Pの位置及び姿勢を決定するステップにおいては、重みにも基づき、目標物Pの位置及び姿勢を特定する。本制御方法によると、信頼度に基づき算出された重みも考慮することで、目標物Pの検出精度の低下をより好適に抑制できる。
【0128】
本開示の移動体10は、自動で移動するものであって、移動体10に設けられたセンサ26に目標物Pを複数回検出させて、センサ26の複数回の検出結果を点群M0として取得する検出制御部74と、センサ26の複数の検出結果に対応して同一座標系で重畳する点群M0に基づき特定された、目標物Pの位置及び姿勢の情報を取得する目標物情報取得部78と、を含む。本開示の移動体10によると、目標物Pの位置及び姿勢の検出のために、センサ26による複数の検出結果を同一の座標系での点群M0として重畳することで、目標物Pの検出精度の低下を抑制することができる。
【0129】
本開示のプログラムは、自動で移動する移動体10の制御方法をコンピュータに実行させるプログラムであって、移動体10に設けられたセンサ26に目標物Pを複数回検出させて、センサ26の複数回の検出結果を点群M0として取得するステップと、センサ26の複数の検出結果に対応する点群M0を同一座標系(ここでは二次元座標系CO)で重畳するステップと、重畳した点群M0の位置に基づいて、目標物Pの位置及び姿勢を特定するステップと、を、コンピュータに実行させる。本プログラムによると、目標物Pの検出精度の低下を抑制することができる。
【0130】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0131】
10 移動体
26 センサ
70 第1パス情報取得部
72 移動制御部
74 検出制御部
76 点群重畳部
78 目標物情報取得部
80 第2パス情報取得部
M、MA 計測点
M0 点群
N 近似線
P 目標物
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23