(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-21
(54)【発明の名称】移動ロボットの障害物情報感知方法、装置
(51)【国際特許分類】
G05D 1/02 20200101AFI20221114BHJP
【FI】
G05D1/02 H
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022517836
(86)(22)【出願日】2020-09-17
(85)【翻訳文提出日】2022-04-28
(86)【国際出願番号】 CN2020115818
(87)【国際公開番号】W WO2021052403
(87)【国際公開日】2021-03-25
(31)【優先権主張番号】201910892943.2
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】519059292
【氏名又は名称】杭州海康机器人股▲ふん▼有限公司
【氏名又は名称原語表記】Hangzhou Hikrobot Co., Ltd.
【住所又は居所原語表記】Room 304, Unit B, Building 2, 399 Dangfeng Road, Binjiang District, Hangzhou, Zhejiang 310051, China
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】龍 学雄
(72)【発明者】
【氏名】李 建禹
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
5H301LL06
5H301LL11
(57)【要約】
【課題】本願は、移動ロボットの障害物情報感知方法、装置を開示する。
【解決手段】当該方法は、深度画像データを取得することと、深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの走行経路の範囲内で二次元データを検出することと、検出された二次元データに基づいて障害物情報を取得することとを含む。本願は、従来の障害物回避センサーで立体的な感知または障害物を回避できない欠陥を解消し、広範囲で、異なる高さレベルの障害物を感知できる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
深度画像データを取得することと、
深度画像データを移動ロボット座標系におけるデータに変換することと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、
移動ロボットの走行経路の範囲内で二次元データを検出することと、
検出された二次元データに基づいて障害物情報を取得することとを含む、
移動ロボットの障害物情報感知方法。
【請求項2】
前記深度画像データを移動ロボット座標系におけるデータに変換することと、
深度画像データにおけるいずれかのピクセルに対して、カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることと、
深度画像データにおける全てのピクセルを移動ロボット座標系における三次元点の座標に変換して、移動ロボット座標系における三次元点からなる三次元点群を得ることとを含み、
前記移動ロボットの走行経路の範囲内で二次元データを検出することは、
移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することを含む、
請求項1に記載の方法。
【請求項3】
前記カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることは、
深度カメラの外部パラメーターに基づいて、移動ロボット座標系から深度カメラ座標系への変換関係マトリクスを得ることと、
前記変換関係マトリクスと、ピクセルの深度値と、カメラの内部パラメーターマトリクスの逆マトリクスと、ピクセル座標値からなるマトリクスとの積を計算し、得られた結果をピクセルの移動ロボット座標系における三次元点の座標とすることとを含み、
ピクセル座標値からなるマトリクスは
であり、u、vはそれぞれ画像座標系におけるピクセルの座標である、
請求項2に記載の方法。
【請求項4】
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
移動ロボット座標系におけるいずれかの三次元点の座標に対して、三次元点の座標における移動ロボットの移動平面に垂直する座標値を切り捨て、当該三次元点の移動ロボットの移動平面における二次元投影を得、または、三次元点の座標における移動ロボットの移動平面に垂直する座標値を0に設定し、当該三次元点の移動ロボットの移動平面における二次元投影を得ることと、
移動ロボット座標系における全ての三次元点の座標を移動ロボットの移動平面における二次元投影に変換して、二次元投影からなる二次元点群を得ることとを含む、
請求項2に記載の方法。
【請求項5】
前記移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することは、
移動ロボットの前進方向に前記検索ウィンドウを構築し、前記検索ウィンドウと移動ロボットとの相対位置を固定させることを含み、
前記検出された二次元データに基づいて障害物情報を取得することは、
検索ウィンドウの範囲内で二次元点群があるかを検出し、二次元点群がある場合、障害物が検出されたと判断することを含む、
請求項2に記載の方法。
【請求項6】
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
変換された移動ロボット座標系におけるデータを選別し、運動中衝突する可能性がある障害物に対応するデータを保留することと、
保留された運動中衝突する可能性がある障害物に対応するデータを、移動ロボットの移動平面における投影に変換して、二次元データを得ることとを含む、
請求項1乃至3のいずれかに記載の方法。
【請求項7】
前記移動ロボットの載置面は地面であり、前記運動中衝突する可能性がある障害物に対応するデータを保留することは、前記移動ロボット座標系における三次元点の座標において、z値が第1閾値より大きく、且つ第2閾値より小さい三次元点を保留することを含む、
請求項6に記載の方法。
【請求項8】
検索ウィンドウ内の最も近い障害物の位置に基づいて、移動ロボットが障害物を回避する必要があるかを判断し、回避する必要がある場合、移動ロボットが走行することが可能な走行領域を取得することをトリガすることをさらに含む、
請求項2乃至5のいずれかに記載の方法。
【請求項9】
前記移動ロボットが走行することが可能は走行領域を取得することは、
移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引き、射線において前記起点に最も近い二次元点を障害物の輪郭として、障害物の輪郭の二次元点を得ることと、
障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することと、前記起点を通って前記膨張円周に接する2本の接線を取得することと、2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とし、挟まれる円弧の中心角は180°以下であり、前記延在距離は少なくとも移動ロボット本体の載置面への投影中心と輪郭との最大距離であることと、
全ての障害物の輪郭の二次元点の膨張境界を取得し、全ての二次元点の膨張境界の包絡を膨張輪郭とし、膨張輪郭を境界に、移動ロボットに近い側の領域を走行領域とし、他の側を走行不可領域とすることとを含む、
請求項8に記載の方法。
【請求項10】
前記障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することは、
現在の障害物の輪郭の二次元点の座標を極座標に変換することと、
変換された極座標と延在距離に基づいて、膨張円周の極座標系における方程式を確定することとを含み、
前記起点を通って前記膨張円周に接する2本の接線を取得することは、
前記膨張円周の極座標系における方程式に基づいて、現在の障害物の輪郭の二次元点の膨張円周の接線角度の範囲を確定することを含み、
前記2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とすることは、
前記接線角度の範囲内において、
設定された現在の極角値を前記膨張円周の極座標系における方程式に代入し、円弧上の点の動径ベクトル値を求めることと、動径ベクトル値における小さい値を抽出し、接線で挟まれる円弧上の点の極座標を得ることと、
接線で挟まれる円弧区間における円弧座標点の計算が終わるまで、次の極角値を設定し、前記設定された現在の極角値を前記膨張円周の極座標系における方程式に代入するステップに戻ることと、
円弧上の点に基づいて、現在の二次元点の膨張境界を生成することとを含む、
請求項9に記載の方法。
【請求項11】
前記移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引くことは、画像視野の境界から、移動ロボット本体の載置面への投影中心を起点として等角度に射線を引き、グリッドを生成し、
前記円弧上の点に基づいて、現在の二次元点の膨張境界を生成することは、
現在のグリッド内に膨張輪郭の二次元点がない場合、計算された円弧座標点のうち当該グリッドに位置する円弧座標点を当該グリッドの膨張輪郭の二次元点とすることと、
現在のグリッド内に膨張輪郭を有する二次元点がある場合、計算され円弧座標点のうち当該グリッドに位置する円弧座標点と、膨張輪郭を有する二次元点とは、どちらが移動ロボット本体の載置面への投影中心に近いかを判断し、前記投影中心に近い点を当該グリッドの膨張輪郭の二次元点とすることと、
全てのグリッドの膨張輪郭の二次元点を現在の二次元点の膨張境界とすることとを含む、
請求項10に記載の方法。
【請求項12】
深度画像データを移動ロボット座標系におけるデータに変換することに用いられる、第1データ変換モジュールと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることに用いられる、第2データ変換モジュールと、
移動ロボットの走行経路の範囲内で二次元データを検出し、検出された二次元データに基づいて障害物情報を取得することに用いられる、感知モジュールとを含む、
移動ロボットに障害物情報を感知する装置。
【請求項13】
移動ロボット本体に取り付けられ、深度画像データを取得することに用いられる深度カメラと、
深度画像データを取得することと、深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの走行経路の範囲内で二次元データを検出することと、検出された二次元データに基づいて障害物情報を取得することとに用いられる、障害物感知モジュールと、
障害物情報に基づいて、移動コマンドを生成することに用いられる、移動制御モジュールと、
前記移動コマンドを実行することに用いられる、実行機構モジュールとを含む、
移動ロボット。
【請求項14】
コンピュータプログラムが記録されており、前記コンピュータプログラムはプロセッサによって実行されると、請求項1乃至11のいずれかに記載の移動ロボットの障害物情報感知方法のステップを実行するコンピュータ可読記憶媒体。
【請求項15】
コマンドを含むコンピュータプログラム製品であって、
前記コンピュータプログラム製品がコンピュータで実行されると、前記コンピュータに請求項1乃至11のいずれかに記載の移動ロボットの障害物情報感知方法のステップを実現するコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年9月20日に中国国家知的財産権局に出願された、出願番号が201910892943.2であり、発明名称が「移動ロボットの障害物情報感知方法、装置」である中国特許出願に基づき優先権を主張する。ここで、その全ての内容は、援用により本願に組み込まれる。
【0002】
本願は、ロボット測位ナビゲーション分野に関し、特に、移動ロボットの障害物情報感知方法、装置に関する。
【背景技術】
【0003】
移動ロボットが障害物を感知するために、一般に使用されるセンシング方式は、超音波、赤外線及びレーザを含む。超音波は、障害物の正確な位置と範囲を感知できない。赤外線は、一方向しか感知できない。二次元レーザは、周囲環境における詳細な障害物情報を感知できるが、それが取り付けられた平面における障害物しか感知できなく、取り付けられた平面より低い障害物または取り付けられた平面より高い宙に浮いている障害物を感知できない。
【発明の概要】
【0004】
本願は、周囲空間における障害物情報を立体的に感知できる、移動ロボットの障害物情報感知方法、装置を提供する。
【0005】
本願は、移動ロボットの障害物情報感知方法を提供する。当該方法は、
深度画像データを取得することと、
深度画像データを移動ロボット座標系におけるデータに変換することと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、
移動ロボットの走行経路の範囲内で二次元データを検出することと、
検出された二次元データに基づいて障害物情報を取得することとを含む。
【0006】
前記深度画像データを移動ロボット座標系におけるデータに変換することは、
深度画像データにおけるいずれかのピクセルに対して、カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることと、
深度画像データにおける全てのピクセルを移動ロボット座標系における三次元点の座標に変換して、移動ロボット座標系における三次元点からなる三次元点群を得ることとを含み、
移動ロボットの走行経路の範囲内で二次元データを検出することは、
移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することを含む。
【0007】
好ましくは、前記カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることは、
深度カメラの外部パラメーターに基づいて、移動ロボット座標系から深度カメラ座標系への変換関係マトリクスを得ることと、
前記変換関係マトリクスと、ピクセルの深度値と、カメラの内部パラメーターマトリクスの逆マトリクスと、ピクセル座標値からなるマトリクスとの積を計算し、得られた結果をピクセルの移動ロボット座標系における三次元点の座標とすることとを含み、
ピクセル座標値からなるマトリクスは
であり、u、vはそれぞれ画像座標系におけるピクセルの座標である。
【0008】
好ましくは、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
移動ロボット座標系におけるいずれかの三次元点の座標に対して、三次元点の座標における移動ロボットの移動平面に垂直する座標値を切り捨て、当該三次元点の移動ロボットの移動平面における二次元投影を得、または、三次元点の座標における移動ロボットの移動平面に垂直する座標値を0に設定し、当該三次元点の移動ロボットの移動平面における二次元投影を得ることと、
移動ロボット座標系における全ての三次元点の座標を移動ロボットの移動平面における二次元投影に変換して、二次元投影からなる二次元点群を得ることとを含む。
【0009】
好ましくは、前記移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することは、
移動ロボットの前進方向に前記検索ウィンドウを構築し、前記検索ウィンドウと移動ロボットとの相対位置を固定させることを含み、
前記検出された二次元データに基づいて障害物情報を取得することは、
検索ウィンドウの範囲内に二次元点群があるかを検出し、二次元点群がある場合、障害物が検出されたと判断することを含む。
【0010】
好ましくは、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
変換された移動ロボット座標系におけるデータを選別し、運動中衝突する可能性がある障害物に対応するデータを保留することと、
保留された運動中衝突する可能性がある障害物に対応するデータを、移動ロボットの移動平面における投影に変換して、二次元データを得ることとを含む。
【0011】
好ましくは、前記移動ロボットの載置面は地面であり、前記運動中衝突する可能性がある障害物に対応するデータを保留することは、前記移動ロボット座標系における三次元点の座標において、z値が第1閾値より大きく、且つ第2閾値より小さい三次元点を保留することを含む。
【0012】
好ましくは、当該方法は、検索ウィンドウ内の最も近い障害物の位置に基づいて、移動ロボットが障害物を回避する必要があるかを判断し、回避する必要がある場合、移動ロボットが走行することが可能な走行領域を取得することをトリガすることをさらに含む。
【0013】
好ましくは、前記移動ロボットが走行することが可能な走行領域取得ことは、
移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引き、射線において前記起点に最も近い二次元点を障害物の輪郭として、障害物の輪郭の二次元点を得ることと、
障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することと、前記起点を通って前記膨張円周に接する2本の接線を取得することと、2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とし、挟まれる円弧の中心角は180°以下であり、前記延在距離は少なくとも移動ロボット本体の載置面への投影中心と輪郭との最大距離であることと、
全ての障害物の輪郭の二次元点の膨張境界を取得し、全ての二次元点の膨張境界の包絡を膨張輪郭とし、膨張輪郭を境界に、移動ロボットに近い側の領域を走行領域とし、他の側を走行不可領域とすることとを含む。
【0014】
好ましくは、前記障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することは、
現在の障害物の輪郭の二次元点の座標を極座標に変換することと、
変換された極座標と延在距離とに基づいて、膨張円周の極座標系における方程式を確定することとを含み、
前記起点を通って前記膨張円周に接する2本の接線を取得することは、
前記膨張円周の極座標系における方程式に基づいて、現在の障害物の輪郭の二次元点の膨張円周の接線角度の範囲を確定することを含み、
前記2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とすることは、
前記接線角度の範囲内において、設定された現在の極角値を前記膨張円周の極座標系における方程式に代入し、円弧上の点の動径ベクトル値を求めることと、動径ベクトル値における小さい値を抽出し、接線で挟まれる円弧上の点の極座標を得ることと、
接線で挟まれる円弧区間における円弧座標点の計算が終わるまで、次の極角値を設定し、前記設定された現在の極角値を前記膨張円周の極座標系における方程式に代入するステップに戻ることと、
円弧上の点に基づいて、現在の二次元点の膨張境界を生成することとを含む。
【0015】
好ましくは、前記移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引くことは、画像視野の境界から、移動ロボット本体の載置面への投影中心を起点として等角度に射線を引き、グリッドを生成し、
前記円弧上の点に基づいて、現在の二次元点の膨張境界を生成することは、
現在のグリッド内に膨張輪郭の二次元点がない場合、計算された円弧座標点のうち当該グリッドに位置する円弧座標点を当該グリッドの膨張輪郭の二次元点とすることと、
現在のグリッド内に膨張輪郭を有する二次元点がある場合、計算された円弧座標点のうち当該グリッドに位置する円弧座標点と、膨張輪郭を有する二次元点とは、どちらが移動ロボット本体の載置面への投影中心に近いかを判断し、前記投影中心に近い点を当該グリッドの膨張輪郭の二次元点とすることと、
全てのグリッドの膨張輪郭の二次元点を現在の二次元点の膨張境界とすることとを含む。
【0016】
本願は、移動ロボットの障害物情報感知装置を提供する。当該装置は、
深度画像データを移動ロボット座標系におけるデータに変換することに用いられる、第1データ変換モジュールと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることに用いられる、第2データ変換モジュールと、
移動ロボットの走行経路の範囲内で二次元データを検出し、障害物情報を取得することに用いられる、感知モジュールとを含む。
【0017】
本願は移動ロボットをさらに提供する。前記移動ロボット本体は、
深度画像データを取得ことに用いられる、移動ロボット本体に取り付けている深度カメラと、
深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの視野範囲内で二次元データを検出し、障害物情報を取得することとに用いられる、障害物感知モジュールと、
障害物情報に基づいて、移動コマンドを生成することに用いられる、移動制御モジュールと、
前記移動コマンドを実行することに用いられる、実行機構モジュールとを含む。
【0018】
本願は、コンピュータ可読記憶媒体をさらに提供する。前記記憶媒体には、コンピュータプログラムが記録され、前記コンピュータプログラムはプロセッサによって実行されると、上記いずれかの前記深度カメラを利用する移動ロボットの障害物情報感知方法のステップを実現する。
【0019】
本願は、コマンドを含むコンピュータプログラム製品をさらに提供する。前記コンピュータプログラム製品は、コンピュータで実行されると、前記コンピュータに上記いずれかの前記深度カメラを利用する移動ロボットの障害物情報感知方法のステップを実現する。
【0020】
本願は、深度画像データを移動ロボットの移動平面における投影に変換して、二次元投影データに基づいて検索し、障害物情報を取得し、二次元レーザに類似したデータを得ることで、従来の障害物回避センサーで立体的な感知または障害物を回避できない欠陥を解消し、広範囲で、異なる高さレベルの障害物を感知できる。深度データに対する通常な処理方法と異なるのは、点群データを地平面に投影することで、実用において、二次元環境中に障害物の回避制御に対する成熟した技術を幅広く適用させる。三次元センサーの三次元感知情報を利用でき、二次元環境中に素早く経路を計画できる。
【0021】
本出願の実施例及び従来技術の技術案をより明確に説明するために、以下の実施例及び従来技術に必要な図面を簡単に説明するが、無論、以下に説明される図面は単に本出願の実施例の一部であり、当業者であれば、創造的な働きをせずに、これらの図面に基づいて他の図面を得ることができる。
【図面の簡単な説明】
【0022】
【
図1】本願実施例により提供された画像データに基づいて障害物情報を感知することのあるフローチャートである。
【
図2】移動ロボットが検索ウィンドウによって障害物回避範囲内における最も近い障害物を感知することのある模式図である。
【
図3】障害物の輪郭を感知することのある模式図である。
【
図5】本願実施例に膨張輪郭を実現することのあるフローチャートである。
【
図6】移動ロボットが位置するシナリオの模式図である。
【
図7】
図6に示すシナリオの深度画像データに基づいて感知された二次元点群と、感知された二次元点群に基づいて確定された輪郭を膨張した結果の模式図である。
【
図8】本願実施例により提供された移動ロボット障害物回避システムのある模式図である。
【
図9】本願実施例により提供された障害物感知モジュールのある模式図である。
【発明を実施するための形態】
【0023】
以下、本願の実施例の目的、技術案及び利点をより明確にするために、図面を参照しながら例を挙げて本願の実施例をさらに詳しく説明する。無論、説明される実施例は単に本願の実施例の一部であり、全ての実施例ではない。本願の実施例に基づいて、当業者が創造的な労働を必要とせずに得られる全ての他の実施例は何れも本願の保護範囲に該当する。
【0024】
深度カメラにより取得された深度画像データは、ピクセルの座標に基づいて、ピクセルのグレースケール値で空間点の間の距離値を表すデータであり、p(u,v,d)と表してよく、ここで、u、vは画像座標系におけるピクセルの座標であり、具体的に、u、vはそれぞれピクセルの深度画像における画素行座標と画素列座標である。dは当該ピクセルに対応する空間三次元点の深度値であり、ここで、深度値は上記距離値であり、即ち、当該ピクセルに対応する空間三次元点と深度カメラとの距離である。
【0025】
移動ロボットが平面に移動する時に、地面と移動ロボットの最高点との間の障害物は、いずれも移動ロボットに衝突する可能性があるため、移動ロボットに対して経路を計画する時に、これらの障害物の高さを考慮する必要がない。つまり、これらの障害物の高さ方向の情報は、移動ロボットの移動にとって余計である。深度カメラで得られた三次元点の集合を二次元平面に投影し、二次元点の集合を得る場合、投影平面における障害物の点だけでなく、異なる高さレベルの障害物情報のいずれも投影平面に保存されるため、空間三次元環境の障害物情報も保存された。言い換えると、二次元点の形式で空間三次元情報を保存する。これにより、平面に移動する移動ロボットは、二次元平面において経路計画と制御を行うことができ、処理の複雑さを低減させ、応答能力を向上させる。
【0026】
これにより、本願は、深度画像データに基づいて、深度画像における一定の高さ範囲内の三次元点を移動ロボット座標系における三次元点に変換して、移動ロボット座標系における三次元点を二次元平面に次元削減して処理し、二次元平面において、極座標における最も近い点を障害物の輪郭として、二次元レーザに類似したデータを得て、障害物を回避し、三次元センサーの三次元感知情報を利用でき、二次元環境中に素早く経路を計画できる。
【0027】
本願実施例は移動ロボットの障害物情報感知方法を提供する。当該方法は、
深度画像データを取得することと、深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの走行経路の範囲内で二次元データを検出することと、検出された二次元データに基づいて障害物情報を取得することとを含む。
【0028】
これで分かるように、本願実施例により提供された技術案では、深度画像データを移動ロボットの移動平面における投影に変換して、二次元投影データに基づいて検索し、障害物情報を取得し、二次元レーザに類似したデータを得ることができ、従来の障害物回避センサーで全般的に立体的な感知と障害物回避を行うことができない欠陥を解消し、広範囲で、異なる高さレベルの障害物を感知できる。一方、深度データに対する通常な処理方法は、深度データに基づいて障害物の三次元モデルを構築することである。本願実施例は、深度データに対する通常な処理方法と異なり、深度データを移動ロボットの移動平面に投影することで、二次元環境中に障害物回避制御の成熟した技術を本願に適用させ、投影して二次元データを得ることにより、本願により提供された技術案を幅広く適用させる。よって、本願により提供された技術案では、三次元センサーの三次元感知情報を利用できるし、二次元データに基づいて素早い経路計画を行うこともできる。
【0029】
図1に示すように、
図1は本願実施例により提供された画像データに基づいて障害物情報を感知することのフローチャートである。
【0030】
ステップ101、現在の深度画像データを取得する。
当該ステップにおいて、移動ロボット本体に取り付けている深度カメラにより、現在の物理空間の深度画像データをリアルタイムで取得し、密な深度マップを取得する。ここで、深度カメラは、立体視に基づく深度カメラまたは飛行時間(Time of Flight,ToF)に基づく深度カメラであってよい。
【0031】
ステップ102、深度画像データにおける各ピクセルの座標(u,v,d)を移動ロボット座標系における三次元点の座標に変換する。つまり、深度画像データを移動ロボット座標系におけるデータに変換する。
ここで、移動ロボット座標系の原点と移動ロボットの中心とは重なり合い、移動ロボット座標系がロボット本体の座標系であり、ロボットの前進方向をx軸とし、x軸と同一平面において、x軸に垂直であり、且つ左に向かう方向をy軸とし、x、y軸が位置する平面において、垂直に上に向かう方向をz軸とする。ここで、x、y軸が位置する平面は、移動ロボットの移動平面と見なしてよく、移動ロボット本体の載置面と平行する。例えば、一般的に、移動ロボット本体の載置面は地面であり、x軸、y軸が位置する平面は地面と平行する。
【0032】
深度カメラと移動ロボット座標系との相対ポーズ、即ち深度カメラの外部パラメーターに基づいて、移動ロボット座標系から深度カメラ座標系への変換関係を得ることができる。ここで、外部パラメーターのは予め推定されてよく、変換関係A
bcは以下の通りに表されてよい。
【数1】
ここで、R
bcは、深度カメラ座標系と移動ロボット座標系との間の回転マトリクスであり、3×3のマトリクスである。T
bcは、深度カメラ座標系と移動ロボット座標系との間の変位マトリクスでり、3×1のマトリクスである。
【0033】
深度画像データにおける各ピクセル(u,v,d)に対して座標変換を行って、移動ロボット座標系における三次元点の座標Pb(x,y,z)を得る。深度画像データにおける全てのピクセルをいずれも座標変換して、三次元点の集合を得る。当該集合は「三次元点群」とも呼ばれる。
【0034】
座標変換の数学的な表現は以下通りである。
【数2】
ここで、dは、スカラーであり、ピクセルの深度値である。Kは、カメラの内部パラメーターである。
は、ピクセル座標値からなるマトリクスであり、u、vは、それぞれ、ピクセルの深度画像における画素行座標と画素列座標である。
【0035】
ステップ103、三次元点の集合における三次元点を選別する。
【0036】
一般的に、ロボット座標系に変換された三次元点は、地面における三次元点であるか、障害物の三次元点であるか、ロボットの上方空間の三次元点であるか、を区別する必要がある。このため、高さの下限の設定により地面における三次元点を取り除くことができ、高さの上限の設定によりロボットの上方空間の三次元点を取り除くことができ、ロボットを必要な時に物体の下を通過できることに寄与する。選別した後、残った三次元点はいずれもシナリオにおける移動ロボットの移動に影響する可能性がある障害物に対応する三次元点であり、ロボットの行走経路に位置する三次元点と、ロボット行走経路に位置しない三次元点とを含む。
【0037】
具体的に、三次元点の座標z値が第1閾値より大きく、且つ第2閾値より小さい三次元点を保留してよい。第1閾値が第2閾値より小さいことは、数学的な表現は以下通りである。即ち、以下の式を満たす三次元点を保留する。
【数3】
【0038】
ここで、hlowは、第1閾値であり、その具体的な数値が移動ロボット座標系における地面に対応するz値と原点の座標のz値との差分であってよい。hhighは、第2閾値であり、その具体的な数値が移動ロボット座標系における移動ロボットの最高点のz値と原点の座標のz値との差分であってよい。当該ステップにより、実際環境において地面の点群と移動ロボットの高さ以上の点群を取り除き、運動中衝突する可能性がある障害物に対応する点群を保留でき、障害に対する感知をより正確にさせる。
【0039】
比較的にがらんとした環境に対して、ロボットの上方空間の三次元点の数はほとんどないため、三次元点の選別をしなくてもよい。
【0040】
ステップ104、選別された三次元点に対して二次元投影を行う。
【0041】
選別された点群は依然として三次元的なものであり、選別された点群はいずれも移動ロボットが運動中衝突する可能性がある障害物に対応する点群である。つまり、選別された点群に対して、それに対応する高さ方向の情報は何であれ、それはいずれも移動ロボットが運動中衝突する可能性がある障害物に対応する点群である。このため、平面に移動する移動ロボットにとって、選別された点群の高さ方向での情報は、余計な情報と見なしてよい。
【0042】
従って、選別されたいずれかの三次元点の座標Pb(x,y,z)に対して、座標におけるz軸座標値を切り捨てまたは0に設定し、x、yの座標値のみを保留することで、二次元点の座標PP(x,y)を得て、選別された三次元点に対して二次元投影を行う。
【0043】
全ての選別された三次元点の座標のz軸座標値をいずれも切り捨て、または、全ての選別された三次元点の座標のz軸を0に設定して、二次元点の集合を得て、二次元点で障害物を表すことにより、ロボットの走行領域を検索することに寄与する。
【0044】
ステップ105、ロボットの走行経路の範囲内の障害物を検出するために、移動ロボットの前進方向に検索ウィンドウを構築する。
【0045】
図2に示すように、
図2は移動ロボットが検索ウィンドウによって障害物回避範囲内における最も近い障害物を感知することの模式図であり、ここで、検索ウィンドウは三次元的で立体的なものであり、破線枠は検索ウィンドウの移動平面における投影であり、即ち検索ウィンドウの平面図である。検索ウィンドウ(
図2における破線に示す)と移動ロボットとの相対位置が固定されており、検索ウィンドウの移動ロボットの前進方向に垂直な断面のサイズは、移動ロボットの当該断面における投影のサイズ以下である。好ましくは、検索ウィンドウは矩形な枠体であり、矩形枠体の長さは障害物を回避するのに必要な距離によって設定される。ここで、矩形な枠体の長さは移動ロボットの前進方向での長さである。
【0046】
好ましくは、検索ウィンドウは二次元的なウィンドウであってよく、当該ウィンドウが位置する平面は移動ロボットの載置面に平行であり、検索ウィンドウの形状は矩形であってよく、矩形の長さは障害物を回避するのに必要な距離によって設定され、矩形の幅は移動ロボット本体の前進方向での通行可能幅以上である。ここで、矩形の長さは移動ロボットの前進方向での長さである。
【0047】
移動ロボットが移動する時に、二次元点群に基づいて、検索ウィンドウの範囲内で検索する。一定距離の範囲内に障害物があると検出した場合、障害物を回避する必要があり、当該一定距離の範囲は移動ロボットの障害物回避範囲である。障害物回避範囲内の最も近い障害物の位置を検出することにより、ロボットが減速、停車を実行する、または他の障害物回避措置をとる必要があるかを確定できる。ここで、他の障害物回避措置は、カーブ、Uターン等を含んでよい。
【0048】
一実施形態において、第1距離閾値と第2距離閾値を予め設定してよい。ここで、第1距離閾値は第2距離閾値より小さい。障害物回避範囲内の最も近い障害物と移動ロボットとの距離が第1距離閾値以下であると検出した場合、移動ロボットは停車動作を実行して障害物を回避できる。障害物回避範囲内の最も近い障害物と移動ロボットとの距離が第2距離閾値より大きいと検出した場合、移動ロボットがしばらく障害物を回避しなくてもよい。障害物回避範囲内の最も近い障害物と移動ロボットとの距離が第1距離閾値より大きく、且つ第2距離閾値以下であると検出した場合、移動ロボットは減速動作を実行し、または他の障害物回避措置をとって障害物を回避できる。
【0049】
例えば、
図2に示すように、検索枠内の二次元点であるA点は、移動ロボットに最も近い障害物に対応する二次元点であり、続いて二次元点Aの位置基づいて、ロボットが減速、停車を実行する、または他の障害物回避措置をとる必要があるかを確定できる。
【0050】
ステップ106、検索ウィンドウ内の最も近い障害物の位置に基づいて、移動ロボットが障害物を回避する必要があるかを判断し、回避する必要がある場合は、ステップ107を実行し、回避する必要がない場合は、ステップ101に戻る。
【0051】
ステップ107、障害物の輪郭を膨張させる。
【0052】
移動ロボットが障害物を回避する必要があると確定した場合、障害物の輪郭を膨張させることで、移動ロボットが走行することが可能な走行領域をリアルタイムで生成できる。輪郭を膨張させることは、感知された障害物の境界が外に向かって一定距離を延在することである。延在した障害物の境界によって囲まれた領域は、走行不可領域を表す。移動ロボットの中心は当該領域に現れてしまうと、衝突することになる。障害物の境界が外に向かってを延在距離は、少なくとも、ロボット本体の載置面への投影中心と輪郭との最大距離である。
【0053】
具体的に、移動ロボット本体の載置面への投影中心を起点として複数本の射線を引き、二次元点群における射線において移動ロボットに最も近い二次元点を障害物の境界として、障害物の輪郭の二次元点を得ることと、障害物の輪郭の二次元点に基づいて膨張させ、膨張輪郭の二次元点を得ることと、膨張輪郭の二次元点を移動ロボットが走行することが可能な走行領域と走行不可領域との境界線とする。ここで、上記検索ウィンドウと検索バーとは、上記検索ウィンドウである。
【0054】
図3に示すように、
図3は障害物の輪郭を感知することの模式図である。深度カメラの水平視界の範囲内において、視界の境界により形成された範囲内で、ロボット本体の載置面への投影中心を起点として等角度に射線を引き、グリッドを生成する。ここで、
図3において、視界の境界により形成された範囲は画像の境界1から境界2までの範囲であり、
図3には一部の射線のみを示し、全ての射線を示していない。これらの射線においてロボット本体の載置面への投影中心に最も近い二次元点を障害物の境界、即ち障害物の輪郭として、射線において二次元点がない場合、当該射線の方向に障害物がないことを示す。ここで、射線間の角度が小さくほど、得られる障害物の輪郭の二次元点も多くなり、確定される障害の輪郭もより正確になる。
【0055】
図4に示すように、
図4は膨張輪郭の模式図である。移動ロボットの前進方向に、障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、膨張した延在距離を半径として膨張円周を生成し、ロボット本体の載置面への投影中心を通過し、且つ前記膨張円周に接する2つの接線で挟まれる円弧を当該二次元点の膨張境界とする。ここで、挟まれる円弧の中心角は180°以下である。
【0056】
障害物の輪郭の全ての二次元点を個々に膨張円周を取り、接線で挟まれる円弧を取って、全ての二次元点の膨張境界を得る。一実施形態において、全ての二次元点の膨張境界の包絡を膨張輪郭とすることで、移動ロボットが走行することが可能な走行領域と走行不可領域とを得る。
【0057】
図5に示すように、
図5は本願実施例に膨張輪郭を実現することのフローチャートである。
図4に示すように、ロボット本体の載置面への投影中心を極点とし、ロボットの前進方向を極軸として、極座標系を構築する。
【0058】
ステップ501、現在の障害物の輪郭の二次元点の膨張円周の接線角度の範囲を確定する。
【0059】
具体的に、上記ステップは以下のことを含む。
現在の障害物の輪郭の二次元点P
P(x,y)を抽出し、極座標P(R,θ
p)に変換する。
二次元点の極座標と膨張円周の半径rとに基づいて、膨張円周の方程式は以下の通り確定される。
【数4】
極点を通過する円周の方程式の接線を求めるために、
【数5】
として、以上の式を解くと、以下の式を得る。
【数6】
【0060】
ステップ502、円周における接線で挟まれる円弧上の点の座標を求める。具体的に、
極角θは、
【数7】
を満たし、且つ、角度φを刻み角として極角θ値を設定し、設定された極角θ値を前記膨張円周の方程式に代入して、動径ベクトルρ値を求める。一元二次方程式を解くので、2つの解を得る。動径ベクトルρ値における小さい値を取り、接線で挟まれる円弧の中心角を180°以下にすることで、円弧上のい点の極座標(ρ,θ)を得るここでθは設定された極角θ値である。
【0061】
続いて、刻み角φによって極角θ値を設定し、設定された極角θ値を前記膨張円周の方程式に代入して、動径ベクトルρ値を求める、即ち、設定の要求を満たすまで前記ステップ502を繰り返して実行する。一実施形態において、設定の要求とは、求めた円弧上の点の極座標の数量が、設定された円弧座標点の総数の閾値になり、接線で挟まれる円弧極座標点の集合を得て、当該集合に表される円弧を障害物の輪郭に含まれる現在の二次元点の膨張境界とする。
【0062】
一実施形態として、
図4に示すように、極角θをグリッドを区切る角度によって等分して、刻み角φを得てよく。または、刻み角を設定してもよい。刻み角が小さくほど、上記ステップ502を実行する回数も多いため、得られる円弧極座標点も多くなる。
【0063】
ステップ503、障害物の輪郭の次の二次元点を抽出し、障害物の輪郭の全ての点が抽出されない場合、障害物の輪郭の点が全て抽出されるまで、ステップ501に戻る。つまり、障害物の輪郭に含まれる全ての二次元点に対応する円周における接線で挟まれる円弧上の点の座標を求めるまで、ステップ501に戻る。一実施形態において、計算量を減らすために、障害物の輪郭の二次元点を等間隔に抽出してよい。障害物の輪郭の全ての点が抽出された場合、ステップ504を実行する。
【0064】
ステップ504、円弧座標点に基づいて膨張輪郭の二次元点を生成する。つまり、全ての円弧座標点から膨張輪郭の二次元点を選別する。
【0065】
実施形態の一は、全ての円弧座標点の包絡を膨張輪郭とする。
【0066】
実施形態の二は、全ての円弧座標点から膨張輪郭の二次元点を選別する。具体的に、深度カメラの水平視界の範囲内にグリッドが区切られた場合、即ち、視界の境界により形成された範囲内で、ロボット本体の載置面への投影中心を起点として等角度に複数本の射線を引いて、グリッドを生成する場合には、現在のグリッド内に膨張輪郭の二次元点がないと、ステップ502で算出した円弧座標点における当該グリッドに位置する円弧座標点を当該グリッドの膨張輪郭の二次元点とする。現在のグリッド内に膨張輪郭を有する二次元点があると、ステップ502で算出した円弧座標点における現在のグリッドに位置する円弧座標点と現在のグリッド内に膨張輪郭を有する二次元点とは、どちらがロボット本体の載置面への投影中心に近いかを判断し、投影中心により近い点を当該現在のグリッドの膨張輪郭の二次元点とする。全てのグリッドの膨張輪郭の二次元点を結ぶ線を膨張輪郭とする。つまり、全てのグリッドの膨張輪郭の二次元点の包絡を膨張輪郭とする。
【0067】
図6に示すように、
図6は移動ロボットが位置するシナリオの模式図を示す。
図7に示すように、
図7は、
図6に示すシナリオの深度画像データに基づいて感知された二次元点群と、感知された二次元点群に基づいて確定された輪郭を膨張した結果の模式図を示す。
【0068】
感知された障害物の輪郭を膨張した結果に基づく応用の一は、移動ロボットが経路計画と運動の制御、及び障害物の回避制御を行うことができる。
図7に示す障害物の輪郭を膨張した結果を例として、障害物の輪郭を膨張していない領域は走行可領域であり、実際なシナリオと一致する。つまり、膨張輪郭を境界として、移動ロボットに近い側が走行領域であり、他の側が走行不可領域である。
【0069】
本願実施例は、深度画像データを移動ロボット座標系における点群に変換して、設定された高さ閾値によって点群を選別し、実際環境における地面の点群と移動ロボットの高さ以上の点群を取り除くことで、運動中衝突する可能性がある障害物に対応する点群により障害物を感知する。深度カメラで得られた三次元点群は、移動ロボットが平面に運動する時の高さ方向の情報にとって余計であるため、この特性を用いて、選別された三次元点群を二次元平面に投影する。これにより、二次元点群は三次元環境における障害物情報も同様に保留し、ただし二次元点の形式で保留した。二次元平面での経路計画や制御は、たくさんの成熟した方法を利用できることに鑑みて、ロボットの障害物回避にとってより便利である。二次元のマップにおいて、障害物に対応する点群において円周によりサンプリングして障害物の膨張輪郭が直接得られることは、グリッド化の必要がなく、グリッド化を行う時間の増加と精度の損失を回避でき、障害物の回避制御に正確な膨張輪郭のデータを提供できる。
【0070】
図8に示すように、
図8は、本願実施例により提供された深度カメラを利用する移動ロボット障害物回避システムの模式図である。移動ロボット本体に取り付けている深度カメラは現在の深度画像データを取得し、障害物感知モジュールは深度データにより障害物情報を取得し、障害物が膨張輪郭を生成し、移動制御モジュールは障害物が膨張輪郭により経路計画と移動制御を行い、移動コマンドを生成し、実行機構は移動コマンドによって走行することで、移動ロボットを駆動して障害物を回避させる。
【0071】
ここで、移動コマンドは、運動コマンドである。上記膨張輪郭は、膨張した障害物の輪郭である。
【0072】
図9に示すように、
図9は本願実施例により提供された障害物感知モジュールの模式図である。障害物感知モジュールは、
深度画像データを移動ロボット座標系におけるデータに変換することに用いられる、第1データ変換モジュールと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることに用いられる、第2データ変換モジュールと、
移動ロボットの走行経路の範囲内で二次元データを検出し、検出された二次元データに基づいて障害物情報を取得することに用いられる、感知モジュールとを含み、
移動ロボット座標系におけるデータは移動ロボット座標系における三次元点である。
【0073】
前記障害物感知モジュールは、
第1データ変換モジュールで変換されたデータを選別し、移動ロボットの移動平面におけるデータを保留することに用いられる、選別モジュールをさらに含む。つまり、移動ロボットが運動中衝突する可能性がある障害物に対応するデータを保留する。
【0074】
前記障害物感知モジュールは、
移動ロボット本体の載置面への投影中心を起点として、少なくとも1本の射線を引き、射線において前記起点に最も近い二次元点を障害物の輪郭として、障害物の輪郭の二次元点を得ることと、
障害物の輪郭に含まれる任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することと、前記起点を通って前記膨張円周に接する2本の接線を取得することと、2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とし、挟まれる円弧の中心角は180°以下であり、前記延在距離は少なくともロボット本体の載置面への投影中心と輪郭との最大距離であることと、
全ての障害物の輪郭の二次元点の膨張境界を取得し、全ての二次元点の膨張境界の包絡を膨張輪郭の二次元点とし、移動ロボットが走行することが可能な走行領域と走行不可領域とを得ることとに用いられる、走行領域取得モジュールをさらに含む。
【0075】
前記第1データ変換モジュールは、具体的に、
深度画像データにおけるいずれかのピクセルに対して、深度カメラの外部パラメーターと、ピクセルの深度値と、深度カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることと、
深度画像データにおける全てのピクセルを移動ロボット座標系における三次元点の座標に変換して、移動ロボット座標系における三次元点からなる三次元点群を得ることとに用いられる。
【0076】
前記第2データ変換モジュールは、具体的に、
移動ロボット座標系におけるいずれかの三次元点の座標に対して、三次元点の座標における移動ロボットの移動平面に垂直する座標値を切り捨て、または、三次元点の座標における移動ロボットの移動平面に垂直する座標値を0に設定し、当該三次元点の移動ロボットの移動平面における二次元投影を得ることと、
移動ロボット座標系における全ての三次元点の座標を移動ロボットの移動平面における二次元投影に変換して、二次元投影からなる二次元点群を得ることとに用いられる。
【0077】
前記感知モジュールは、具体的に、
移動ロボットの前進方向に検索ウィンドウを構築し、前記検索ウィンドウと移動ロボットとの相対位置を固定させることと、
検索ウィンドウの範囲内に二次元点群があるかを検出し、二次元点群がある場合、障害物が検出されたと判断することと、
検索ウィンドウの範囲内における移動ロボットに最も近い障害物の位置に基づいて、移動ロボットが障害物を回避する必要があるかを判断し、回避する必要がある場合、走行領域取得モジュールをトリガして、移動ロボットが走行することが可能な走行領域を取得することとに用いられる。
【0078】
前記走行領域取得モジュールは、具体的に、
現在の障害物の輪郭の二次元点の座標を極座標に変換することと、
変換された二次元点の極座標と延在距離とに基づいて、膨張円周の極座標系における方程式を確定することと、
前記膨張円周の極座標系における方程式に基づいて、現在の障害物の輪郭の二次元点の膨張円周の接線角度の範囲を確定することと、
前記接線角度の範囲内において、設定された現在の極角値を前記膨張円周の極座標系における方程式に代入し、円弧上の点の動径ベクトル値を求めることと、動径ベクトル値における小さい値を抽出し、接線で挟まれる円弧上の点の極座標を得ることと、
接線で挟まれる円弧区間における座標点を求めたまで、次の極角値を設定し、前記設定された現在の極角値を前記膨張円周の極座標系における方程式に代入するステップに戻ることと、
全ての円弧上の点に基づいて生成された円弧を現在の二次元点の膨張境界とすることとに用いられる。
【0079】
本願実施例はさらに、深度カメラを利用する移動ロボットを提供する。前記移動ロボットは、移動ロボットはメモリとプロセッサとを含み、メモリにはコンピュータプログラムが記録され、前記コンピュータプログラムは、プロセッサによって実行されると、上記いずれかの前記移動ロボットの障害物情報感知方法のステップを実行する。
【0080】
メモリは、ランダムアクセスメモリ(Random Access Memory,RAM)を含んでもよく、非揮発性メモリ(Non-Volatile Memory,NVM)を含んでもよく、例えば、少なくとも1つの磁気ディスクメモリである。選択的に、メモリはさらに、少なくとも1つの前述プロセッサから離れた記憶装置であってもよい。
【0081】
上記したプロセッサは、セントラルプロセッサ(Central Processing Unit,CPU)、ネットワークプロセッサ(Network Processor,NP)等を含む汎用なプロセッサであってもよく、デジタルシグナルプロセッサ(Digital Signal Processing,DSP)、特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)、現場で書き換え可能な論理回路の多数配列(Field-Programmable Gate Array,FPGA)または他の書き換え可能な論理デバイス、ディスクリートゲート或いはトランジスタ倫理デバイス、ディスクリートハードウェアアセンブリであってもよい。
【0082】
本願実施例はさらに、別の移動ロボットを提供する。前記移動ロボットは、
移動ロボット本体に取り付けけられ、深度画像データを取得することに用いられる深度カメラと、
深度画像データを取得することと、前記深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの走行経路の範囲内で前記二次元データを検出することと、検出された二次元データに基づいて障害物情報を取得することとに用いられる、障害物感知モジュールと、
前記障害物情報に基づいて、移動コマンドを生成することに用いられる、移動制御モジュールと、
前記移動コマンドを実行することに用いられる、実行機構モジュールとを含む。
【0083】
本願実施例はさらに、コンピュータ可読記憶媒体を提供する。前記記憶媒体にはコンピュータプログラムが記録され、前記コンピュータプログラムはプロセッサによって実行されると、
深度画像データを取得することと、
深度画像データを移動ロボット座標系におけるデータに変換することと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、
移動ロボットの走行経路の範囲内で二次元データを検出し、検出された二次元データに基づいて障害物情報を取得することと、を実行する。
【0084】
本願は、深度画像データを移動ロボットの移動平面における投影に変換して、二次元投影データに基づいて検索し、障害物情報を取得し、二次元レーザに類似したデータを得ることで、従来の障害物回避センサーで立体的な感知または障害物を回避できない欠陥を解消し、広範囲で、異なる高さレベルの障害物を感知できる。一方、深度データに対する通常な処理方法と異なり、深度データを移動ロボットの移動平面に投影することで、実用において、二次元環境中に障害物の回避制御に対する成熟した技術を本願に適用させ、投影して二次元データを得ることで、本願により提供された技術案を幅広く適用させる。よって、本願により提供された技術案において、三次元センサーの三次元感知情報を利用でき、二次元データに基づいて素早い経路計画を行うことができる。
【0085】
本願実施例はさらに、コマンドを含むコンピュータプログラム製品であって、コンピュータプログラム製品がコンピュータで実行されると、コンピュータに上記いずれかの前記移動ロボットの障害物情報感知方法のステップを実現する、コンピュータプログラム製品を提供する。
【0086】
本願は、深度画像データを移動ロボットの移動平面における投影に変換して、二次元投影データに基づいて検索し、障害物情報を取得し、二次元レーザに類似したデータを得ることができ、従来の障害物回避センサーで全般的で立体的な感知または障害物を回避できない欠陥を解消し、広範囲で、異なる高さレベルの障害物を感知できる。一方、深度データに対する通常な処理方法と異なり、深度データを移動ロボットの移動平面に投影することで、実用において、二次元環境中に障害物の回避制御に対する成熟した技術を本願に適用させ、投影して二次元データを得ることで、本願により提供された技術案を幅広く適用させる。よって、本願により提供された技術案において、三次元センサーの三次元感知情報を利用できるし、二次元データに基づいて素早い経路計画を行うこともできる。
【0087】
システム、移動ロボット、記憶媒体及びコンピュータアプリケーションの実施例にとっては、基本的に、方法実施例と類似するので、説明が比較的に簡単であり、関連するところが方法実施例の部分に参照すればよい。
【0088】
本文において、「第1」と「第2」等の関係用語は1つのエンティティまたは操作を他のエンティティまたは操作を区別するのみに用いられ、これらのエンティティまたは操作の間にこのような実際な関係または順序がいずれかあることを、要求または示唆するものではない。また、用語「含まれる」、「含む」または他のいずれかの変形は非排他的な「含む」を意味する。従って、一連の要素を含む流れ、方法、製品或いはデバイスは、それらの要素のみを含むものではなく、さらに明確に挙げていない他の要素も含み、または、さらにこのような流れ、方法、製品或いはデバイスに固有する要素も含む。これ以上の制限がない場合、「1つの...を含む」という記述によって限定した要素は、記載した要素を含む流れ、方法、製品、またはデバイスに、他の同一の要素があることを排除しない。
【0089】
以上の記載は本願の好ましい実施例に過ぎず、本願を制限することを意図するものではない。本願の主旨及び原則内で行われる如何なる修正、均等の代替、改良等は何れも本願の保護範囲内に含まれるべきである。
【手続補正書】
【提出日】2022-05-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
深度画像データを取得することと、
深度画像データを移動ロボット座標系におけるデータに変換することと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、
移動ロボットの走行経路の範囲内で二次元データを検出することと、
検出された二次元データに基づいて障害物情報を取得することとを含む、
移動ロボットの障害物情報感知方法。
【請求項2】
前記深度画像データを移動ロボット座標系におけるデータに変換すること
は、
深度画像データにおけるいずれかのピクセルに対して、カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることと、
深度画像データにおける全てのピクセルを移動ロボット座標系における三次元点の座標に変換して、移動ロボット座標系における三次元点からなる三次元点群を得ることとを含み、
前記移動ロボットの走行経路の範囲内で二次元データを検出することは、
移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することを含む、
請求項1に記載の方法。
【請求項3】
前記カメラの外部パラメーターと、ピクセルの深度値と、カメラの内部パラメーターと、ピクセルの座標値とによって、当該ピクセルの移動ロボット座標系における三次元点の座標を得ることは、
深度カメラの外部パラメーターに基づいて、移動ロボット座標系から深度カメラ座標系への変換関係マトリクスを得ることと、
前記変換関係マトリクスと、ピクセルの深度値と、カメラの内部パラメーターマトリクスの逆マトリクスと、ピクセル座標値からなるマトリクスとの積を計算し、得られた結果をピクセルの移動ロボット座標系における三次元点の座標とすることとを含み、
ピクセル座標値からなるマトリクスは
であり、u、vはそれぞれ画像座標系におけるピクセルの座標である、
請求項2に記載の方法。
【請求項4】
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
移動ロボット座標系におけるいずれかの三次元点の座標に対して、三次元点の座標における移動ロボットの移動平面に垂直する座標値を切り捨て、当該三次元点の移動ロボットの移動平面における二次元投影を得、または、三次元点の座標における移動ロボットの移動平面に垂直する座標値を0に設定し、当該三次元点の移動ロボットの移動平面における二次元投影を得ることと、
移動ロボット座標系における全ての三次元点の座標を移動ロボットの移動平面における二次元投影に変換して、二次元投影からなる二次元点群を得ることとを含む、
請求項2に記載の方法。
【請求項5】
前記移動ロボットの走行経路の範囲内の障害物を検出するための検索ウィンドウを構築し、検索ウィンドウの範囲内で二次元データを検索することは、
移動ロボットの前進方向に前記検索ウィンドウを構築し、前記検索ウィンドウと移動ロボットとの相対位置を固定させることを含み、
前記検出された二次元データに基づいて障害物情報を取得することは、
検索ウィンドウの範囲内で二次元点群があるかを検出し、二次元点群がある場合、障害物が検出されたと判断することを含む、
請求項2に記載の方法。
【請求項6】
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることは、
変換された移動ロボット座標系におけるデータを選別し、運動中衝突する可能性がある障害物に対応するデータを保留することと、
保留された運動中衝突する可能性がある障害物に対応するデータを、移動ロボットの移動平面における投影に変換して、二次元データを得ることとを含む、
請求項1乃至3のいずれかに記載の方法。
【請求項7】
前記移動ロボットの載置面は地面であり、前記運動中衝突する可能性がある障害物に対応するデータを保留することは、前記移動ロボット座標系における三次元点の座標において、z値が第1閾値より大きく、且つ第2閾値より小さい三次元点を保留することを含む、
請求項6に記載の方法。
【請求項8】
検索ウィンドウ内の最も近い障害物の位置に基づいて、移動ロボットが障害物を回避する必要があるかを判断し、回避する必要がある場合、移動ロボットが走行することが可能な走行領域を取得することをトリガすることをさらに含む、
請求項2乃至5のいずれかに記載の方法。
【請求項9】
前記移動ロボットが走行することが可能は走行領域を取得することは、
移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引き、射線において前記起点に最も近い二次元点を障害物の輪郭として、障害物の輪郭の二次元点を得ることと、
障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することと、前記起点を通って前記膨張円周に接する2本の接線を取得することと、2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とし、挟まれる円弧の中心角は180°以下であり、前記延在距離は少なくとも移動ロボット本体の載置面への投影中心と輪郭との最大距離であることと、
全ての障害物の輪郭の二次元点の膨張境界を取得し、全ての二次元点の膨張境界の包絡を膨張輪郭とし、膨張輪郭を境界に、移動ロボットに近い側の領域を走行領域とし、他の側を走行不可領域とすることとを含む、
請求項8に記載の方法。
【請求項10】
前記障害物の輪郭の任意な二次元点に対して、当該二次元点を円心とし、延在距離を半径として膨張円周を設定することは、
現在の障害物の輪郭の二次元点の座標を極座標に変換することと、
変換された極座標と延在距離に基づいて、膨張円周の極座標系における方程式を確定することとを含み、
前記起点を通って前記膨張円周に接する2本の接線を取得することは、
前記膨張円周の極座標系における方程式に基づいて、現在の障害物の輪郭の二次元点の膨張円周の接線角度の範囲を確定することを含み、
前記2本の接線で挟まれる円弧を当該障害物の輪郭の二次元点の膨張境界とすることは、
前記接線角度の範囲内において、
設定された現在の極角値を前記膨張円周の極座標系における方程式に代入し、円弧上の点の動径ベクトル値を求めることと、動径ベクトル値における小さい値を抽出し、接線で挟まれる円弧上の点の極座標を得ることと、
接線で挟まれる円弧区間における円弧座標点の計算が終わるまで、次の極角値を設定し、前記設定された現在の極角値を前記膨張円周の極座標系における方程式に代入するステップに戻ることと、
円弧上の点に基づいて、現在の二次元点の膨張境界を生成することとを含む、
請求項9に記載の方法。
【請求項11】
前記移動ロボット本体の載置面への投影中心を起点として、等角度に少なくとも1本の射線を引くことは、画像視野の境界から、移動ロボット本体の載置面への投影中心を起点として等角度に射線を引き、グリッドを生成し、
前記円弧上の点に基づいて、現在の二次元点の膨張境界を生成することは、
現在のグリッド内に膨張輪郭の二次元点がない場合、計算された円弧座標点のうち当該グリッドに位置する円弧座標点を当該グリッドの膨張輪郭の二次元点とすることと、
現在のグリッド内に膨張輪郭を有する二次元点がある場合、計算され円弧座標点のうち当該グリッドに位置する円弧座標点と、膨張輪郭を有する二次元点とは、どちらが移動ロボット本体の載置面への投影中心に近いかを判断し、前記投影中心に近い点を当該グリッドの膨張輪郭の二次元点とすることと、
全てのグリッドの膨張輪郭の二次元点を現在の二次元点の膨張境界とすることとを含む、
請求項10に記載の方法。
【請求項12】
深度画像データを移動ロボット座標系におけるデータに変換することに用いられる、第1データ変換モジュールと、
前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることに用いられる、第2データ変換モジュールと、
移動ロボットの走行経路の範囲内で二次元データを検出し、検出された二次元データに基づいて障害物情報を取得することに用いられる、感知モジュールとを含む、
移動ロボットに障害物情報を感知する装置。
【請求項13】
移動ロボット本体に取り付けられ、深度画像データを取得することに用いられる深度カメラと、
深度画像データを取得することと、深度画像データを移動ロボット座標系におけるデータに変換することと、前記移動ロボット座標系におけるデータを移動ロボットの移動平面における投影に変換して、二次元データを得ることと、移動ロボットの走行経路の範囲内で二次元データを検出することと、検出された二次元データに基づいて障害物情報を取得することとに用いられる、障害物感知モジュールと、
障害物情報に基づいて、移動コマンドを生成することに用いられる、移動制御モジュールと、
前記移動コマンドを実行することに用いられる、実行機構モジュールとを含む、
移動ロボット。
【請求項14】
コンピュータプログラムが記録されており、前記コンピュータプログラムはプロセッサによって実行されると、請求項1乃至11のいずれかに記載の移動ロボットの障害物情報感知方法のステップを実行するコンピュータ可読記憶媒体。
【請求項15】
コマンドを含むコンピュータプログラム製品であって、
前記コンピュータプログラム製品がコンピュータで実行されると、前記コンピュータに請求項1乃至11のいずれかに記載の移動ロボットの障害物情報感知方法のステップを実現するコンピュータプログラム製品。
【国際調査報告】