特許第5909486号(P5909486)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社日立産機システムの特許一覧

<>
  • 特許5909486-自己位置姿勢推定システム 図000002
  • 特許5909486-自己位置姿勢推定システム 図000003
  • 特許5909486-自己位置姿勢推定システム 図000004
  • 特許5909486-自己位置姿勢推定システム 図000005
  • 特許5909486-自己位置姿勢推定システム 図000006
  • 特許5909486-自己位置姿勢推定システム 図000007
  • 特許5909486-自己位置姿勢推定システム 図000008
  • 特許5909486-自己位置姿勢推定システム 図000009
  • 特許5909486-自己位置姿勢推定システム 図000010
  • 特許5909486-自己位置姿勢推定システム 図000011
  • 特許5909486-自己位置姿勢推定システム 図000012
  • 特許5909486-自己位置姿勢推定システム 図000013
  • 特許5909486-自己位置姿勢推定システム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5909486
(24)【登録日】2016年4月1日
(45)【発行日】2016年4月26日
(54)【発明の名称】自己位置姿勢推定システム
(51)【国際特許分類】
   G05D 1/02 20060101AFI20160412BHJP
【FI】
   G05D1/02 J
【請求項の数】4
【全頁数】15
(21)【出願番号】特願2013-522770(P2013-522770)
(86)(22)【出願日】2012年6月19日
(86)【国際出願番号】JP2012065626
(87)【国際公開番号】WO2013002067
(87)【国際公開日】20130103
【審査請求日】2014年3月31日
(31)【優先権主張番号】特願2011-143921(P2011-143921)
(32)【優先日】2011年6月29日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール特許業務法人
(72)【発明者】
【氏名】槙 修一
(72)【発明者】
【氏名】松本 高斉
(72)【発明者】
【氏名】正木 良三
【審査官】 牧 初
(56)【参考文献】
【文献】 特開2009−217333(JP,A)
【文献】 特開2010−176283(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00−1/12
(57)【特許請求の範囲】
【請求項1】
移動体に搭載され、移動体の位置姿勢推定を行う自己位置姿勢推定システムであって、
移動体に設けられた距離センサからの計測データと地図データを照合することで前記移動体の位置と姿勢を推定する位置姿勢推定部と、
前記位置姿勢推定部の位置姿勢推定結果の信頼度の評価値を算出する位置姿勢推定評価値算出部と、を備え、
前記位置姿勢推定評価値算出部は、前記距離センサからの計測データと地図データの一致度及び位置姿勢推定結果の分散を算出することにより前記位置姿勢推定部の位置姿勢推定結果の信頼度の評価値を算出することを特徴とする位置姿勢推定システム。
【請求項2】
前記移動体において取得する前記距離センサからの計測データは地図データの作成に使用されることを特徴とする請求項1に記載の位置姿勢推定システム。
【請求項3】
前記移動体の移動量を計測するエンコーダからの計測データによって移動量を推定する移動量推定部を備えることを特徴とする請求項1に記載の位置姿勢推定システム。
【請求項4】
前記移動体は、前記評価値に応じて、減速または停止を行うことを特徴とする請求項1に記載の位置姿勢推定システム。
【発明の詳細な説明】
【技術分野】
【0001】
発明は、移動体に搭載され、自己位置姿勢を推定する機能を有する自己位置姿勢
推定システムに関する。
【背景技術】
【0002】
所定の領域内で自律移動ロボットを物品の搬送などの作業を行う作業システムを組み込んだ自律移動ロボットシステムがある。
このようなシステムにおいて、自律移動ロボットは、自律移動に不可欠な位置姿勢の推定が正常に行われているか否かの判定機能の実現が非常に重要になっている。位置姿勢推定が正常に動作していないと直ちにこれを検出し、動作モードを通常走行から速度制限や緊急停止などのモードに切り換え、トラブルに対処することができる。
また、不安全状況を引き起こす危険を未然に防止し、危険な場所を回避しながら目的地に移動する自律移動ロボットに関することが特許文献1(特開2005−242409号公報)に開示されている。
【0003】
また、特許文献2(特開2011−43405号公報)には、自己位置推定を高精度に行うために、検出領域内の物体との距離情報を検出する距離センサを備え、距離センサにより検出された物体との距離情報に基づいて、自己位置を推定することが開示されている。また、特許文献3(特開2011−65308号公報)には、測定装置の測定データに基づいて自己位置を推定しながら自律移動する装置について開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−242409号公報
【特許文献2】特開2011−43405号公報
【特許文献3】特開2011−65308号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1には、移動環境に設けられた標識、例えば、マークやパターン、超音波発生器、レーザ発光装置などを用い、検出手段として、それぞれの標識に対応したCCD又はCMOSセンサなどの画像センサ、超音波受信器、レーザ光受光素子があり、これらの検出結果により位置方向を示し、自己位置推定の誤りを検知でき、危険回避を行うことができると記載してある。しかし、この方式は、標識の設置や登録等の作業コストが大きくなるなどの課題がある。
【0006】
また、特許文献2は、位置姿勢推定評価値として、一致度を用いる手法が提案されているが、長い廊下など同じ風景が連続する場合に正しく評価することができない。さらに、特許文献3は、誤差分散地図を用いて、位置姿勢推定の信頼度を評価しながら運用する手法が提案されているが、ランドマークに対するセンサの特性が既知であることを前提としており、未知の環境で安全なシステムを構築することが難しい。
【0007】
本発明は、上記課題を解消するため、移動ロボットにおいて、パーティクルフィルタを用いて位置姿勢推定を行い、その位置姿勢推定の状態を判定する量としてパーティクルの分散により位置姿勢推定の閾値を求め、移動ロボットの減速、停止を行うことを目的とする。
また、本発明は、上記課題を解消するため、移動ロボットなどの移動体に搭載される自己位置姿勢推定システムにおいて、パーティクルフィルタを用いて位置姿勢推定を行い、その位置姿勢推定の状態を判定する量としてパーティクルの分散により位置姿勢推定の閾値を求め、位置姿勢推定が正常に動作していない場合に、位置姿勢推定が正常に動作していないことを示す情報、信号を出力可能とすることを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上記課題を解決するため、移動体に搭載され、移動体の位置姿勢推定を行う
自己位置姿勢推定システムを、移動体に設けられた距離センサからの計測データと地図デ
ータを照合することで移動体の位置と姿勢を推定する位置姿勢推定部と、位置姿勢推定部
の位置姿勢推定結果の信頼度の評価値を算出する位置姿勢推定評価値算出部と、を備え、
位置姿勢推定評価値算出部は、距離センサからの計測データと地図データの一致度及び位
置姿勢推定結果の分散を算出することにより位置姿勢推定部の位置姿勢推定結果の信頼度の評価値を算出するようにした。
【発明の効果】
【0014】
本発明によれば、移動ロボットの位置姿勢推定が正常に行われているか否かを判定し、正常でない場合はロボットを減速させたりあるいは緊急停止させたりできるため、衝突事故を未然に防ぐことができる。
また、本発明によれば、移動体の位置姿勢推定が正常に行なわれているか否かを判定し、正常でない場合は、正常に行なわれていないことを示す情報、または信号を移動体に出力することを可能とする。
【図面の簡単な説明】
【0015】
図1】本発明の自律移動ロボットのシステムブロック図を示す。
図2】障害物のある地図と移動ロボットの経路及び計測状態を示す。
図3】移動ロボットの走行時の計測状態を示す。
図4】移動ロボットの走行時の計測状態を示す。
図5】パーティクルフィルタを説明する図を示す。
図6】移動ロボットの動作モード判定部の内容を説明する図を示す。
図7】移動ロボットの動作モード判定部の内容を説明する図を示す。
図8】障害物が動いた場合の移動ロボットの動作モード判定部の内容を説明する図を示す。
図9】位置姿勢推定評価値に基づく減速又は停止の処理フローチャートを示す。
図10】環境変化があった場合の地図変更を行うフローチャートを示す。
図11】移動ロボットの走行経路を示す図である。
図12】移動ロボットの試行時に位置姿勢推定評価値の閾値を決めるフローチャートを示す。
図13】本発明の自律移動ロボットにおけるオドメトリなしの場合のシステムブロック図を示す。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態を図面を用いて説明する。
以下の明細書では、移動ロボット、及び移動体に搭載される自己位置姿勢推定システムについて説明している。ここで、前記「自己位置姿勢推定」を示す名称について、以下に確認的に説明をする。
「自己位置姿勢推定」は、移動ロボットもしくは自己位置姿勢推定システムが搭載されている移動体の自己の位置(x、y)と姿勢θを推定することを意味し、位置のみ、姿勢のみしか推定を行わない場合も含む。
学会等では、多くの場合、「姿勢」を省略し、単に「自己位置推定」と表記されており、この名称も、以下の明細書にて説明している「自己位置姿勢推定」と同義である。
なお、英語での名称についても、以下に説明する。
英語の名称としては、”position and orientation estimation”と訳される。
”position”は位置(x、y)、”orientation”は姿勢θに相当する。
学会等では、”orientation”を省略し、単に”position estimation”と表記されることがあり、”position and orientation estimation”と同義であり、以下の明細書にて説明されている。
同様に”pose estimation”、”position and posture estimation”、”configuration estimation”、との名称としても同義であり、以下の明細書にて説明がされているものである。
なお、以下の実施の形態の説明では、移動体として、移動ロボットを例にして説明する。
また、移動体に搭載される自己位置姿勢推定システムは、前記移動ロボットに搭載されている位置姿勢推定部を含み構成されるシステムにて説明するものとする。
(実施例1)
【0017】
図1は、本発明の実施例の自律移動ロボットのシステムブロック図である。
図1において、1は自律移動ロボット、9は位置姿勢推定部、2は位置姿勢推定部の結果を評価するための位置姿勢推定評価値計算部、3は動作モードを判定する動作モード判定部、5は距離を計測するレーザ距離センサ、6は、障害物の特徴を記載した地図を記憶した地図記憶部、7は移動ロボットの位置姿勢を制御する位置姿勢制御部で、8a、8bは車輪の回転数を計測するエンコーダである。また、50は地図と地図上におけるロボットの位置姿勢とレーザ距離センサの計測データなどを表示する画像表示器である。
【0018】
自律移動ロボット1は、障害物との距離dを計測するためのレーザ距離センサ5と、地図記憶部6に記憶した障害物の特徴を記載した地図と、車輪の回転数を計算するエンコーダ8a、8bを備え、距離d22と地図6と回転数をもとにロボット1の位置姿勢を推定する位置姿勢推定部9と、位置姿勢推定結果を評価するための評価値計算部2と計算された評価値をもとに動作モードを判定する動作モード判定部3と動作モードと位置姿勢推定結果をもとに移動ロボット1の位置姿勢を制御する位置姿勢制御部7から構成される。
ここで、基準となる座標系(世界座標系)に対する移動ロボット1の位置を(x,y)、x軸を基準とした移動ロボット1の姿勢をθとし、まとめて(x,y,θ)で表すことにする。
【0019】
次に、図3を用いて本実施例で使用されているレーザ距離センサ5について説明する。
図3において、1は移動ロボット、61は壁、14は障害物である作業台、22は移動ロボットのレーザ距離センサ5から障害物までの距離データ、23は移動後のロボットで、24はその移動量uを表している。
移動ロボット1に搭載したレーザ距離センサ5は、±W(deg)の範囲を分解能Δθで、移動ロボット1の周囲にある物体との距離を計測する(例えばW=90、θ=0.5)。この計測データを距離データd22と呼ぶ。このデータは、移動ロボット1の周囲にある計測物の形状を計測していることになる。そして、この距離データd22と地図の情報を照合することで、移動ロボット1の位置姿勢を推定することができる。
【0020】
次に、図2乃至図5を用いて位置姿勢推定部9に実装されているパーティクルフィルタの説明を行う。
図2において、10は移動ロボットが走行する領域を表す地図で、11,12,13,14及び16は障害物を表している。17,18は、搬送用荷物の積み下ろし場所で、32,33は作業員を示している。
また、図2に示す地図で、積み下ろし場所17、18間の経路は、下側の通路と右側の通路の経路19、障害物11,13と障害物12,14の間の通路の経路20、及び左側の通路から上側の通路の通る経路21を示している。
【0021】
図4において、25は移動前の移動ロボットの位置を示している。27は移動量ue26だけ移動した状態を表している。
さらに図5において、28は移動ロボットが移動する前のパーティクルで、30は移動量ue29だけ移動し、この領域でのパーティクルを表し、31は分散したパーティクルの重み付けが大きいパーティクルを表したものである。
パーティクルフィルタは、複数のセンサからの位置姿勢推定結果を確率的に融合し、推定誤差を軽減することが可能である。移動ロボット1の位置姿勢候補はパーティクルと呼ばれる複数の候補(xi,yi,θi);i=1,・・・,Mによって表現される。レーザ距離センサによる位置姿勢推定結果として複数の解を持つ場合にも有効な手段である。
【0022】
パーティクルフィルタは、予測ステップ、更新ステップの2ステップで実行される。予測ステップでは、エンコーダ8a,8bから算出されるオドメトリを用いて移動ロボット1の移動後の位置を推定する。更新ステップでは、レーザ距離センサと地図による位置推定結果に基づいて予測されたロボットの位置姿勢を更新する。
【0023】
以下、予測ステップと更新ステップについて詳しく述べる。
1)予測ステップ
予測ステップについて図3乃至図5を用いて説明する。ここでは説明の簡単のためM=1とする。
図3は移動ロボット1が初期位置姿勢(x0,y0,θ0)から移動量uだけ移動し、23の位置姿勢(x,y,θ)でレーザ距離センサ5によって計測物61、62との距離を計測した状態を表している。ここで、移動ロボット1の初めの位置姿勢(x0,y0,θ0)は既知であるとする。図4は初期位置姿勢(x0,y0,θ0)25からエンコーダ8a,8bの値を用いて移動量ue=(ue_x,ue_y,ue_θ)26を計算し、この値から移動後の位置姿勢を予測した状態を表す。このとき移動後の位置姿勢(x,y,θ)に対して予測値27は(x0+ue_x,y0+ue_y,θ0+ue_θ)となる。この移動量(ue_x,ue_y,ue_θ)の値には車輪のスリップ等誤差が含まれているため、予測ステップではエンコーダ8a,8bの誤差分布に従う位置姿勢候補を用いて予測値を複数個生成する。この複数個の位置姿勢候補を、予測パーティクル(xp,yp,θp);p=1,・・・,Nで表し、擬似乱数などを利用して作成する。
図5は初期パーティクル28(M=5)から移動量ueに基づいて生成された予測パーティクル30(xp,yp,θp);p=1,・・・,MNを示している。予測パーティクル30はエンコーダ8a、8bの誤差の分だけ初期パーティクル28より広い面積に分布していることが分かる。
【0024】
2)更新ステップ
次に、更新ステップについて図3乃至図5で説明する。
更新ステップでは、まず予測パーティクル(xp,yp,θp);p=1,・・・,Nに対して、距離データd22と地図10、14との一致具合を計算する。具体的には、位置姿勢(xp,yp,θp)で距離データd22を計測したと仮定し、地図10、14と距離データd22の重なっている点数を計算する。この値を一致度Rと呼ぶ。一致度Rは、真の位置姿勢(x,y,θ)と予測パーティクル(xp,yp,θp)が近い距離にあれば高い値となり、大幅にずれていると低い値となる。図4はパーティクル27に対して、図3のレーザ距離センサ5による距離データd22を当てはめ、一致度を計算した例である。移動量ue26に誤差が含まれるため、そのままあてはめると地図10、14とずれていることがわかる。
【0025】
次に、すべての予測パーティクル(xp,yp,θp);p=1,・・・,Nに対してこの一致度Rを計算することで、もっとも一致の高い位置姿勢(xe,ye,θe)を見つける。この位置姿勢(xe,ye,θe)がレーザ距離センサ5で観測した位置姿勢(x,y,θ)に近いであろうから、この点をロボットの位置姿勢推定結果とし、次のステップの(x0,y0,θ0)とする。
【0026】
図5に示すように、初期位置が正確にわからない場合は、ロボットの位置姿勢は複数のパーティクルによって表現される。このときはM点の初期パーティクル(x0i,y0i,θ0i)それぞれに対して、予測ステップを適用し、生成された予測パーティクル(xp,yp,θp);p=1,・・・,MN、に対して一致度を計算する。そのなかで一致度がもっとも高いものをロボットの推定位置姿勢として採用する。その後、一致度に従ってMN点の中からM点を選定することで、初期パーティクル(x0i,y0i,θ0i)を更新する。
【0027】
以上がパーティクルフィルタのアルゴリズムである。上記更新ステップでは(xp,yp,θp)に対して計算された一致度のもっとも高いものを推定結果として採用した。しかしながら、ここで注意しなければならないのは、最大値となる一致度を持つパーティクルが2点存在する場合があることである。この状況において、一致度最大である2点間の距離が近い場合はどちらを選んでも本質的な問題とはならないが、問題となるのは2点間の距離が離れている場合である。この場合、どちらのパーティクルを選ぶべきか、一致度で区別することができない。また、2点ではなく複数点でも一致度が同じ値で最大値となってしまう場合がある。このような状況では、推定結果のばらつきが大きくなるため、移動ロボットがこの値をそのまま制御に用いるのは性能面、安全面において好ましくない。よって、推定結果の信頼性の評価を行うため、位置姿勢推定評価値Eを定義する必要がある。この値Eを用いれば、移動ロボット1が位置姿勢推定値を取捨選択する、もしくは、減速・停止することが可能であり、移動ロボット1はより安全な自律移動を行うことができる。
【0028】
ここで、複数個のパーティクルの一致度が最大となり、この最大一致度であるパーティクル間の距離が広くなると状態は、パーティクル31の分散値が大きい状態であると考えられるため、本実施例では、このような位置姿勢推定評価値Eとしてパーティクルの平均値周りの分散σを適用する。
分散が大きくなってしまう例としては、移動ロボット1周辺に環境変化(地図に記載された計測物の移動、作業員等)がある場合に距離データd22と地図10,14が一致せず、パーティクルが広範囲に分布することがある。また、距離データd22と地図10,14が良く一致する場合でも、長い廊下などでは廊下の長手方向にパーティクルが広範囲に分布してしまう。このような状況において、パーティクルの分散を用いることで位置姿勢推定結果の信頼性を評価することが可能となる。
【0029】
位置姿勢推定評価値計算部2では、パーティクルの分散を計算するが、本実施例では次のような評価式を用いる。
【0030】
E×E=σx×σx+σy×σy+α×σθ×σθ (数1)
x,y,θの標準偏差σx,σy,σθに対して、それぞれの和をとったものである。αは正規化定数であり、位置の分散と姿勢の分散の平均値をそろえる値に設定する。
このように、Eの値として分散の和をとれば1次元化することができ、評価が簡単になる効果がある。この他に共分散行列の固有値や、x、y、θの分散を個別に評価する方法があり、評価方法が複雑化するがより細やかな評価が可能となる。
【0031】
次に、動作モード判定部3について、図6図7図8を用いて詳しく説明する。
図6は、移動ロボットの前に作業員32,33が重なった状態で立っている場合のパーティクル31を示している。また、図7は、移動ロボットの前に作業員32,33が並んだ状態で立っている場合のパーティクル31を示している。
図8は、障害者が地震や人がぶつかって動いた場合を示している。図8(a)は移動ロボットの距離を計測している状態を示し、図8(b)はその時のパーティクル31を示す。
【0032】
図8は、最大一致度が複数点表れる状態を示している。図8(a)では地図作成後に、作業員32,33の接触等により作業台14が意図せずに移動してしまった状況で移動ロボット1がレーザ距離センサによる計測を行った状況を示している。地図は移動前の作業台62の配置が記載されているため、距離データd22と地図10、14が完全に一致する位置姿勢(x,y,θ)は存在しない。この状態でパーティクルフィルタによって位置姿勢推定を行った結果を図8(b)に示す。一致度が高い場所としては本来の位置と、この位置とは別に移動ロボット進行方向に対して左側にもできている。これは作業台14が移動してしまったために、通路幅が狭くなり、通路の両側の壁に対して距離データd22が一致するものが出現してしまうためである。この状況では大きく分けて、40、41が一致しているものと、40,42が一致しているものの2パターンが更新ステップ後にも残り、パーティクルが広く分布するため、位置姿勢推定評価値Eの値が増加し、位置姿勢推定状態として不安定になりつつあるということを評価することが可能となる。
【0033】
図6、7は、移動中の移動ロボット1の前方に現場の作業員32、33が存在する場合を表している。図6は作業員32、33によって移動ロボット1前方の距離データが半分ほど隠されている。このとき、図5の状態に比べて前後方向の計測点数が減少したことにより、移動ロボット1の前後方向に対して相対的に一致度の高いパーティクルが増加する。よって、更新ステップによって選ばれるパーティクルが移動ロボット1の前後方向に通常より広く分布するため位置姿勢推定評価値Eの値は大きくなるため、移動ロボット1は減速の制御を行い、より安全な移動が可能となる。
【0034】
図7は、移動ロボット1の前方を作業員32、33が完全に隠しており、移動ロボット1の前後方向の座標を推定することがほぼできない状態にある。このとき位置姿勢推定評価値Eの値は図6の状態からさらに悪化するため、この値に基づいて動作モード判定部は移動ロボット1を安全に停止させる。
【0035】
移動ロボット1を安全に停止させる方法として、レーザ距離センサの計測範囲の中で、ロボットの進行方法にロボットの移動速度に比例する大きさの物体検出エリアを設け、そのエリアに計測物が検出された場合に危険とみなして停止するものがある。しかしながら、この手法を用いるとロボット旋回時に不要に壁を検出し、ノイズを検出してしまうなどの問題があり、作業効率を下げる原因となってしまう。本発明は位置推定結果の信頼性に基づいた、本質的に必要な停止処理であり、ノイズを検出して不要に停止するといったことは起こらないことが本発明の特徴である。
【0036】
また、移動ロボット1は一旦停止閾値を越えてしまったため、その原因が作業員の遮りであるか、環境変化であるかなどを特定するまで復帰することはできない。このときには、作業員が移動ロボット1の状態を確認、操作することを想定し、自動的に手動モードに切り替わることも特徴である。
【0037】
図9は、位置姿勢推定評価値Eに基づいて、移動ロボット1の減速・停止を行う処理のフローチャートである。
先ず、移動ロボット1は、荷物の積み下ろし場所17または18に荷積みを行い、目的地に向かって自律移動をする(ステップ201)。そして、移動している間、移動ロボット1は、センシングを行い、位置姿勢推定を行う(ステップ202)。次に、位置姿勢推定結果に対して、位置姿勢推定評価値Eの計算処理を実施する(ステップ203)。
移動ロボット1は、位置姿勢推定結果から目的地に到達したかを判定する(ステップ204)。到達していれば動作を終了し、到達していなければ位置姿勢推定評価値Eに基づき、動作モードの変更を行い、位置姿勢推定評価値Eと閾値E1との比較を行う(ステップ205)。ここで、位置姿勢推定評価値Eが閾値E1より大きければ、移動ロボット1は通常走行モードから減速モードに移行する(ステップ206)。
評価値Eが閾値E1より小さければ、自律移動のステップ201へ戻る。
減速モード(ステップ206)になると、次に位置姿勢推定評価値Eと閾値E2とを比較し、評価値Eが大きければ、すなわち停止の閾値を超えてしまった場合、自律移動は事実上不可能の状態であるため、手動モードへ移行する(ステップ208)。
【0038】
評価値Eが閾値E2より小さければ、動作モードは減速モードの状態で、自律移動を継続する(ステップ201に戻る)。
手動モードに切り替わったら(ステップ208)、切り替わったことを作業者に通知し(ステップ209)、移動ロボット1は停止する。
本実施例では、減速の閾値は1段階のみ設けているが、多段階に閾値を設けて減速することも可能である。
【0039】
図10は、停止閾値を越えてしまった場合の移動ロボット1の復帰手順を示すフローチャートを示す。
まず移動ロボット1は位置姿勢推定を行っている(ステップ301)。次にステップ301の位置姿勢推定結果に対する評価値を計算する(ステップ302)。次に移動ロボット1は現在停止中であることを作業員/管理者に通知を行う(ステップ303)。通知を受けた作業員は移動ロボット1に取り付けられた画像表示器50を確認し、位置姿勢推定評価値Eが停止閾値E2より小であることと、距離データdと地図10、14が良く一致していることを確認する(ステップ304)。このとき、画像表示器には地図6と移動ロボット1の位置と、距離データdと評価値E、一致度Rなどが表示されている。距離データは地図と重なっている点と重なっていない点で色分けされており、環境変化がある点について一目瞭然な状態となっていることが特徴である。
【0040】
ステップ304で作業員が現状を確認後、閾値を超えた原因が作業員である場合に、手動モードを解除し、移動ロボット1を作業に復帰させる(ステップ308)。距離データdと地図10、14が一致しておらず、その原因が作業台など、計測物の移動であると認められた場合、作業者/管理者は移動ロボット1が停止した周辺の地図を更新する(ステップ306)。地図の更新には、手動モードに切り替えられた移動ロボット1を操作し、距離データdを収集しても良いし、地図作成専用の器具を用いても良い。また、このとき地図の更新は移動ロボット1の表示で確認しながらロボット上で行っても良いし、距離データdのみを持ち帰り、別のPCで地図作成を行うことも可能である。その後、移動ロボット1は更新された地図を読み込み、作業に復帰する。
【0041】
図11は、ロボット1の作業現場環境を示している。作業現場には荷の積み下ろし場所17、18が存在し、それを結ぶ移動経路19、20、21が設定されている。ロボット1がこの環境において自律移動を行うためには、まず現場の地図を作成する必要がある。次に地図作成が正しく行われているかの確認のため、ロボット1は現場で試走を行う。
この試走における計測データに基づいて閾値Eを設定する。閾値の値はセンサの特性から決定されるべきものであるが、センサの特性は計測物の材質や色に依存するため、すべての組み合わせを把握することは難しい。よって、実際に計測を行うことで、現場に適した閾値を設定することができるため、より安全な自律移動が可能となる。
【0042】
図12は、この閾値決めの処理のフローチャートを示す。
先ず、移動ロボット1は環境地図の作成を行う(ステップ101)。次に、移動ロボット1は、ステップ101で作成された地図を用いて、ロボットが実際に運用される経路にそって自律移動を行う(ステップ102)。このとき移動ロボット1は実際に位置姿勢推定を行い、この結果を地図記憶部6に保存しながら移動を行う。このとき、移動ロボット1が問題なく移動経路を走破した場合、記憶部6に保存された位置姿勢推定評価値を用いて、閾値決めのためのデータ処理を行う(ステップ103)。閾値が決まったら実際の走行で運用する(ステップ104)。
【0043】
具体的には、移動ロボット1が問題なく試走を終えた場合において、走行中に計算された位置姿勢推定評価値Eの最大値EmaxなどEの統計量を利用して閾値の設定を行う。減速の閾値として2Emax>E1>Emaxの値を利用し、停止の閾値としてはE2=2Emaxを用いる。閾値としてこのような値を用いるのは、Emaxまでの値は地図作成直後の試走で発生した値であり、この範囲であれば通常走行可能であることが保証されているためである。ここまでが移動ロボット1の実運用における準備段階である。
【0044】
本実施例において、パーティクルフィルタの推定結果を一致度最大のパーティクルとしたが、パーティクルの平均値をもって位置姿勢推定結果としても良い。
本実施例において、位置姿勢推定評価値として、パーティクルの分散を用いたが、パーティクルの広がりを表す統計量、たとえば、パーティクルすべてを含む長方形、楕円の面積などそのまま本発明に適用することが可能である。
【0045】
また、評価値として一致度Rを用いることもできる。一致度は環境変化の程度をそのまま表すものであり、移動ロボット1の周囲環境の情報を与える重要な値である。
ただし、本実施例で述べたとおり一致度のみでは位置推定結果の信頼性を評価することができないため、分散を含めた形で評価を行う。評価方法としては、一致度Rと分散を個別に評価した結果を統合しても良いし、多次元評価がわずらわしい場合には、一次元的に評価できる評価関数を作成しても良い。具体的な評価関数の例としては次式のようなものを用いる。
【0046】
E=R/(1+σ/2σmax) (数2)
この式において、σmaxは図11の試走行で決定される標準偏差の最大値を表す。この式は分散値が良い値であるときは、一致度で評価を行い、一致度が良いときは分散値で評価を行うといった形となっている。標準偏差σは0の時が最良であるが、このときはE=Rとなる。このときE=0.5は計測物50%であることを表す。また、Rは1が最良であり、このとき、評価値はE=1/(1+σ/2σmax)となり、σ=2σmaxのとき、E=0.5となる。よって、停止閾値を0.5とすれば一致度を含めた、より良い評価が可能となる。
【0047】
本実施例において、位置姿勢推定方法としてパーティクルフィルタを適用して位置姿勢推定評価値の説明を行ったが、推定方法としてカルマンフィルタを利用し、位置姿勢推定評価値としては、推定誤差の共分散行列を用いてもよい。また、オドメトリがない状態、つまり、予測が全くできない状態でも、移動量uをも誤差とみなし、パーティクルフィルタ、カルマンフィルタを適用することもできる。
【0048】
さらにまた、初期位置姿勢(x0,y0,θ0)を中心とした探索領域(x0±Lx,y±Ly,θ0±Lθ)を設け、その探索領域内を(x0±k1Δx、y0±k2Δy、θ0±k3Δθ);(ただし、k1,k2,k3は整数。)とし、とびとびに表現される格子点上で一致度を計算すれば、パーティクルフィルタと同様の位置姿勢推定評価値を定義することができる。具体的には、一致度を重みとして探索領域内で画像処理における主成分分析を行い、その主成分値を用いればよい。以下これを詳しく述べる。
【0049】
図13はオドメトリがない状態の位置姿勢推定システムの構成図である。図1と異なりオドメトリの入力が位置姿勢処理部に入力されていない。このとき、移動後のロボット位置姿勢予測ができないために計算コストが増加するため、高性能のCPUを利用する必要がある。
しかしながら、エンコーダなしの車輪を用いることが可能となり、位置姿勢推定システムを手軽に活用できるメリットもある。
この場合における位置姿勢推定方式としてマッチング処理を例として、位置姿勢推定評価値の算出方法について述べる。
マッチング処理においては、パーティクルフィルタのようにランダムに選んだ位置姿勢に対して一致度を計算するのではなく、初期位置姿勢(x0,y0,θ0)を中心とした限られた領域を、格子点状に選んだ位置姿勢に対して一致度を計算することで最も一致度の高い点を検出し、推定位置姿勢とする方式である。初期位置姿勢(x0,y0,θ0)としては前回の位置姿勢推定結果を用いる。
【0050】
具体的な処理方法としては以下のように行う。
まず、初期位置姿勢(x0,y0,θ0)を中心とした探索領域(x0±Lx,y±Ly, θ0±Lθ)を設け、その領域内のとびとびの点(X,Y,Θ)=(x0±k1Δx, y0±k2Δy, θ0±k3Δθ)で表現される格子点上で一致度を計算する。
ここで、Lx、Ly、Lθは正の実数であり、ロボットの移動速度を考慮した大きさに設定する。前記のとおり、k1,k2,k3は整数であり、Δx、Δy、Δθは格子点の幅を表す。このとき、この各点における一致度をR(X,Y,Θ)で表し、この値が最も高い(X,Y,Θ)を位置姿勢推定結果とする。以上がマッチング処理の概略である。
【0051】
次に位置姿勢評価値の計算方法について述べる。図7の状態でマッチング処理を行った場合、ロボット前方の作業員がレーザ光を遮っている。このため、ロボット両側にある壁としか一致せず、R(X,Y,Θ)のなかで壁に沿った位置姿勢に対する一致度が相対的に高くなる。
逆に、R(X,Y,Θ)の計算結果として、一致度の高い値が広く分布する方向には推定結果が不定となることを表しているため、このR(X,Y,Θ)における一致度の分散度を計算することでパーティクルフィルタと同様の位置姿勢評価値を定義することができる。この一致度が強く分散する方向を検出するために、まずRの共分散行列B(3×3行列)を計算する。
【0052】
B=ΣR(X,Y,Θ)(X−μ,Y−μ,Θ−μθ)(X−μ,Y−μ,Θ−μθ) (数3)
(上付きのTはベクトルの転置を表す。μ、μy、μθはX,Y,ΘのR (X,Y,Θ)で重み付けした平均値を表す。Σは探索領域内の格子点(X,Y,Θ)に対する総和を表す。)
次に、Bを固有値分解すれば、次式のように表現される。
【0053】
B = λ + λ + λ (数4)
このvは3次元の固有ベクトル(行ベクトル)であり一致度が分散する方向を表す。λ1≧λ≧λ3は固有値であり、それぞれλ1はvの方向に一致度がどの程度分散しているのを表している。このような手法は主成分分析とも呼ばれ、λ1は第一主成分、λ2は第二主成分などと呼ばれる。
この主成分値λを用いることによって、パーティクルフィルタと同様に、位置姿勢推定ができない状態を検出することが可能となる。
評価を行う際の閾値はパーティクルフィルタと同様に決定する。
【符号の説明】
【0054】
1‥自律移動ロボット
2‥位置姿勢推定評価値計算部 3‥動作モード判定部
5‥レーザ距離センサ 6‥地図記憶部 7‥位置姿勢制御部
8a、8b‥エンコーダ 9‥位置姿勢推定部 10‥地図
14‥作業台 19,20,21‥移動経路
22‥距離データd 24‥移動量u
31‥パーティクル 32、33‥作業員
50‥画像表示器
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13