(57)【特許請求の範囲】
【請求項１】
ロボットの移動制御方法であって、
ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、前記２つの隣接する障害物の間の距離を計算するステップと、
前記２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するステップと、
前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定するステップと、
前記仮想障害物境界により前記ロボットの移動経路を制御するステップとを含み、
前記仮想障害物境界により前記ロボットの移動経路を制御するステップは、
その後前記ロボットが前記仮想障害物境界に移動するときに、前記仮想障害物境界に障害物が存在するとみなす方式によって前記ロボットの移動を制御するステップを含み、
前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定する前記ステップは、
２つ以上の前記仮想障害物境界が存在する場合、前記２つ以上の仮想障害物境界の互いに垂直な第１方向及び第２方向のいずれかにおける距離が第２の予め設定された距離より短いか否か、前記第１方向及び前記第２方向の他方への投影に重なる領域があるか否かを判断するステップと、
前記第２の予め設定された距離より短く且つ重なる領域がある場合、前記２つ以上の仮想障害物境界を選択的に削除するステップとをさらに含み、
前記第２の予め設定された距離より短く且つ重なる領域がある場合、前記２つ以上の仮想障害物境界を選択的に削除するステップは、
設定時間が比較して遅い前記仮想障害物境界を削除するステップを含む
ことを特徴とする方法。
【請求項２】
ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得するステップは、
ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの一方の側に位置する第１障害物の位置情報、及び前記ロボットの他方の側に位置する第２障害物の位置情報を取得するステップを含み、前記第１障害物と前記第２障害物との間には他の障害物は存在していない、ことを特徴とする請求項１に記載の方法。
【請求項３】
ロボットの移動方向又は前記移動方向に垂直な方向に沿って前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、前記２つの隣接する障害物の間の距離を計算するステップの前に、
前記ロボットの作業待ち領域に対応する仮想地図を取得するステップを更に含み、前記仮想地図は、アレイ状に配置された複数のグリッドに分割され、
前記ロボットの移動中に、前記移動方向及び前記移動方向に垂直方向に沿って前記ロボットが位置するグリッドの隣接するグリッドの状態を検出し、前記仮想地図上でグリッドの状態をマークし、前記ロボットが通過したグリッドを作業済みグリッドとしてマークし、前記障害物の存在が検出されたグリッドを障害物グリッドとしてマークし、障害物の存在が検出されず前記ロボットが通過していないグリッドを作業待ちグリッドとしてマークし、前記ロボットが通過しておらず状態が検出されていないグリッドを未知グリッドとしてマークする、ことを特徴とする請求項１に記載の方法。
【請求項４】
ロボットの移動方向又は前記移動方向に垂直な方向に沿って前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、前記２つの隣接する障害物の間の距離を計算するステップは、
前記移動方向又は前記移動方向に垂直方向に沿って前記ロボットの両側に位置する２つの隣接する前記障害物グリッドを取得し、前記２つの隣接する前記障害物グリッドの前記仮想地図上での位置情報に基づいて前記２つの隣接する障害物グリッドの間の距離を計算するステップを含む、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するステップは、
前記２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され前記未知グリッドに連接される前記作業待ちグリッドが存在するか否かを判断するステップを更に含み、
前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定する前記ステップは、
前記２つの隣接する障害物グリッドの間の距離が前記第１の予め設定された距離以下であり、前記２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され前記未知グリッドに連接される前記作業待ちグリッドが存在する場合、前記２つの隣接する障害物グリッドの間に前記仮想障害物境界を設定するステップを含む、ことを特徴とする請求項４に記載の方法。
【請求項６】
前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定する前記ステップは、
前記ロボットを継続して移動させるように制御して、前記２つの隣接する障害物の間のグリッドから前記ロボットを移動させた後、前記２つの隣接する障害物の間に前記仮想障害物境界を設定するステップを含む、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記仮想障害物境界により前記ロボットの移動経路を制御するステップは、
前記仮想障害物境界を用いて、作業待ち領域を前記仮想障害物境界により離隔された少なくとも２つのサブ領域に分割するステップと、
１つの前記サブ領域内の作業待ちグリッド及び未知グリッドを巡回した後、前記仮想障害物境界を削除し、他の前記サブ領域内の前記作業待ちグリッド及び前記未知グリッドを巡回するように前記ロボットを制御するステップとを含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記仮想障害物境界により前記ロボットの移動経路を制御するステップは、
前記ロボットの移動中に、前記少なくとも２つのサブ領域を連通する作業済みグリッド及び／又は作業待ちグリッドの存在を発見すると、前記仮想障害物境界を削除するステップを更に含む、ことを特徴とする請求項１に記載の方法。
【請求項９】
ロボットであって、互いに接続されたセンサーとプロセッサーとを含み、
前記センサーは、ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得するために使用され、
前記プロセッサーは、前記２つの隣接する障害物の間の距離を計算し、前記２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断し、前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定し、前記仮想障害物境界により前記ロボットの移動経路を制御するために使用され、
前記プロセッサーはさらに、その後前記ロボットが前記仮想障害物境界に移動するときに、前記仮想障害物境界に障害物が存在するとみなす方式によって前記ロボットの移動を制御するために使用され、
前記プロセッサーは、前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定するステップでは、
前記プロセッサーは、２つ以上の前記仮想障害物境界が存在する場合、前記２つ以上の仮想障害物境界の互いに垂直な第１方向及び第２方向のいずれかにおける距離が第２の予め設定された距離より短いか否か、前記第１方向及び前記第２方向の他方への投影に重なる領域があるか否かを判断するステップと、
前記２つ以上の仮想障害物境界の互いに垂直な第１方向及び第２方向のいずれかにおける距離が前記第２の予め設定された距離より短く、且つ重なる領域がある場合、前記２つ以上の仮想障害物境界を選択的に削除するステップとが更に含まれ、
前記プロセッサーは、前記２つ以上の仮想障害物境界の互いに垂直な第１方向及び第２方向のいずれかにおける距離が前記第２の予め設定された距離より短く、且つ重なる領域がある場合、前記２つ以上の仮想障害物境界を選択的に削除するステップでは、
設定時間が比較して遅い前記仮想障害物境界を削除するステップが含まれる
ことを特徴とするロボット。
【請求項１０】
前記センサーは、ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得することは、
前記センサーは、ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの一方の側に位置する第１障害物の位置情報、及び前記ロボットの他方の側に位置する第２障害物の位置情報を取得することを含み、前記第１障害物と前記第２障害物との間には他の障害物は存在していない、ことを特徴とする請求項９に記載のロボット。
【請求項１１】
前記センサーはロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、前記２つの隣接する障害物の間の距離を計算する前に、
前記プロセッサーはさらに、前記センサーにより前記ロボットの作業待ち領域に対応する仮想地図を取得するために使用され、前記仮想地図は、アレイ状に配置された複数のグリッドに分割され、
前記ロボットの移動中に、前記センサーは、前記移動方向と前記移動方向に垂直方向に沿って前記ロボットが位置するグリッドの隣接するグリッドの状態を検出し、前記プロセッサーはさらに、前記仮想地図上でグリッドの状態をマークするために使用され、前記ロボットが通過したグリッドを作業済みグリッドとしてマークし、前記障害物の存在が検出されたグリッドを障害物グリッドとしてマークし、障害物の存在が検出されず前記ロボットが通過していないグリッドを作業待ちグリッドとしてマークし、前記ロボットが通過しておらず状態が検出されていないグリッドを未知グリッドとしてマークする、ことを特徴とする請求項９に記載のロボット。
【請求項１２】
前記センサーはさらに、前記移動方向又は前記移動方向に垂直方向に沿って、前記ロボットの両側の２つの隣接する前記障害物グリッドを取得するために使用され、
前記プロセッサーはさらに、前記２つの隣接する前記障害物グリッドの前記仮想地図上での位置情報に基づいて、前記２つの隣接する障害物グリッドの間の距離を計算するために使用される、ことを特徴とする請求項１１に記載のロボット。
【請求項１３】
前記プロセッサーは前記２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するステップでは、
前記２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され前記未知グリッドに連接される前記作業待ちグリッドが存在するか否かを判断するステップが更に含まれ、
前記プロセッサーは、前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定する前記ステップでは、
前記プロセッサーは、前記２つの隣接する障害物グリッドの間の距離が前記第１の予め設定された距離以下であり、且つ前記２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され前記未知グリッドに連接される前記作業待ちグリッドが存在する場合、前記２つの隣接する障害物グリッドの間に前記仮想障害物境界を設定するステップが含まれる、ことを特徴とする請求項１２に記載のロボット。
【請求項１４】
前記プロセッサーは、前記２つの隣接する障害物の間の距離が前記第１の予め設定された距離以下である場合、前記２つの隣接する障害物の間に仮想障害物境界を設定するステップでは、
前記プロセッサーは、前記ロボットを継続して移動させるように制御して、前記２つの隣接する障害物の間のグリッドから前記ロボットを移動させた後、前記２つの隣接する障害物の間に前記仮想障害物境界を設定するステップが含まれる、ことを特徴とする請求項９に記載のロボット。
【請求項１５】
前記プロセッサーは前記仮想障害物境界により前記ロボットの移動経路を制御するステップでは、
前記仮想障害物境界を用いて、作業待ち領域を前記仮想障害物境界により離隔された少なくとも２つのサブ領域に分割するステップと、
１つの前記サブ領域内の作業待ちグリッド及び未知グリッドを巡回した後、前記仮想障害物境界を削除し、他の前記サブ領域内の前記作業待ちグリッド及び前記未知グリッドを巡回するように前記ロボットを制御するステップとが含まれる、ことを特徴とする請求項９に記載のロボット。
【請求項１６】
前記プロセッサーは前記仮想障害物境界により前記ロボットの移動経路を制御するステップでは、
前記プロセッサーは、前記ロボットの移動中に、前記少なくとも２つのサブ領域を連通する作業済みグリッド及び／又は作業待ちグリッドの存在を発見すると、前記仮想障害物境界を削除するステップが更に含まれる、ことを特徴とする請求項９に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットの分野に関し、特にロボットの移動制御方法及びロボットに関する。
【背景技術】
【０００２】
ロボットは人間にサービスを提供するスマートデバイスである。ユーザーは、ロボットが特定のタスクを実行するときに、ロボットの動きを制御することがよくある。例えば、ロボットがある領域でタスクを実行する場合、タスクが完了していないときには、ロボットは実行領域を越えることができない。現在、市場では通常、仮想壁生成装置によって生成された障害信号を使用してロボットの実行領域を制限するか、又は、ロボットが認識可能なパターンを使用して仮想障害物境界を形成し、ロボットが領域を越えることを制限する。
【０００３】
しかしながら、ロボットが移動してカバーする必要がある移動領域が大きい場合、ユーザーは複数の仮想壁生成装置又はパターンを使用してロボットの移動領域を複数のサブ領域に分割する必要があるので、コストが向上する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が主に解決しようとする技術的課題は、仮想壁生成装置又はパターンにより仮想障害物境界を生成するという従来技術における問題を解決することである。
【０００５】
上記の技術的課題を解決するために、本発明の１つの技術案はロボットを提供する。前記ロボットは、位置取得モジュールと、距離判断モジュールと、境界設定モジュールと、移動制御モジュールとを含む。位置取得モジュールは、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算するために使用される。距離判断モジュールは、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するために使用される。境界設定モジュールは、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定するために使用される。移動制御モジュールは、仮想障害物境界によりロボットの移動経路を制御するために使用される。移動制御モジュールはさらに、その後ロボットが前記仮想障害物境界に移動するときに、仮想障害物境界に障害物が存在するとみなす方式によってロボットの移動を制御するために使用される。位置取得モジュールはさらに、ロボットの作業待ち領域に対応する仮想地図を取得するために使用される。仮想地図は、アレイ状に配置された複数のグリッドに分割される。ロボットの移動中に、移動方向及び垂直方向に沿ってロボットが位置するグリッドの隣接するグリッドの状態が検出され、仮想地図上でグリッドの状態がマークされる。ロボットが通過したグリッドは作業済みグリッドとしてマークされ、障害物の存在が検出されたグリッドは障害物グリッドとしてマークされ、障害物の存在が検出されずロボットが通過していないグリッドは作業待ちグリッドとしてマークされ、ロボットが通過しておらず状態が検出されていないグリッドは未知グリッドとしてマークされる。
【０００６】
上記の技術的課題を解決するために、本発明の別の技術案はロボットの移動制御方法を提供する。この方法は、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算するステップと、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するステップと、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定するステップと、仮想障害物境界によりロボットの移動経路を制御するステップとを含む。
【０００７】
上記の技術的課題を解決するために、本発明の他の技術案はロボットを提供する。このロボットは、互いに接続されたセンサーとプロセッサーとを含む。センサーは、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得するために使用される。プロセッサーは、２つの隣接する障害物の間の距離を計算し、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断し、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定し、仮想障害物境界によりロボットの移動経路を制御するために使用される。
【０００８】
本発明の有益な効果は以下のとおりである。従来技術の状況とは異なり、本発明は、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算しており、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定し、仮想障害物境界によりロボットの移動経路を制御することによって、外部の仮想壁生成装置を使用する必要がなく、ロボット自体が仮想障害物境界を設定することができ、それによりコストを効果的に節約する。
【図面の簡単な説明】
【０００９】
【図１】本発明のロボットの移動制御方法の一実施形態のフローチャートである。
【図２】図１に示される方法においてロボットによって使用される仮想地図の模式図である。
【図３】図１に示される方法においてロボットが行方向に沿って移動し行方向の仮想障害物境界を設定する模式図である。
【図４】図１に示される方法においてロボットが列方向に沿って移動し列方向の仮想障害物境界を設定する模式図である。
【図５】図１に示される方法においてロボットが列方向に沿って移動し行方向の仮想障害物境界を設定する模式図である。
【図６】図３に示される仮想障害物境界の模式図である。
【図７】図４に示される仮想障害物境界の模式図である。
【図８】図５に示される仮想障害物境界の模式図である。
【図９】図１に示される方法においてロボットによって設定された行方向における２つの仮想障害物境界の間の距離が近すぎる模式図である。
【図１０】図１に示される方法においてロボットによって設定された列方向における２つの仮想障害物境界の間の距離が近すぎる模式図である。
【図１１】図１に示される方法においてロボットによって設定された行方向における仮想障害物境界と列方向における仮想障害物境界とが重なる領域を有する模式図である。
【図１２】図１に示される方法において、作業待ち領域内に仮想障害物境界が１つ存在する場合のロボットの移動経路の模式図である。
【図１３】図１に示される方法において、作業待ち領域に仮想障害物境界が複数存在する場合の模式図である。
【図１４】従来技術において、ロボットの作業待ち領域内の移動経路の模式図である。
【図１５】図１に示される方法において、ロボットの移動中に２つのサブ領域が作業済みグリッド及び／又は作業待ちグリッドによって連通されることが発見される模式図である。
【図１６】本発明のロボットの第１実施形態の構造模式図である。
【図１７】本発明のロボットの第２実施形態の構造模式図である。
【発明を実施するための形態】
【００１０】
以下では、本発明の実施例の添付図面を参照しながら、本発明の実施例の技術的解決手段を明確かつ完全に説明する。当然のことながら、ここで説明する実施例は本発明の実施例の全てではなく一部にすぎない。当業者が創造的な作業なしに本発明の実施例に基づいて得られる全ての他の実施例は、本発明の保護範囲に含まれるべきである。
【００１１】
図１を参照すると、図１は、本発明のロボットの移動制御方法の一実施形態のフローチャートである。図１に示すように、本発明のロボットの移動制御方法は、ステップＳ１１〜ステップＳ１４を含む。
ステップＳ１１では、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算する。
ステップＳ１１の前に、ステップＳ１０１とステップＳ１０２とが更に含まれる。
ステップＳ１０１では、ロボットの作業待ち領域に対応する仮想地図を取得する。仮想地図は、アレイ状に配置された複数のグリッドに分割される。
具体的には、図２に示すように、適用例では、ロボットが作業を開始すると、まずアレイ状に配置された複数のグリッドでロボットに対応する作業待ち領域の仮想地図を格納する。ロボットには少なくとも１つのセンサーが設けられる。そのセンサーは検出範囲を有する。ロボットは、センサーによって検出範囲内の各グリッドの状態を取得し仮想地図中で対応するマークを付け、その検出範囲を超えたグリッドの状態を未知としてマークする。
【００１２】
ステップＳ１０２では、ロボットの移動中に、移動方向及び垂直方向に沿ってロボットが位置するグリッドの隣接するグリッドの状態を検出し、仮想地図上でグリッドの状態をマークし、ロボットが通過したグリッドを作業済みグリッドとしてマークし、障害物の存在が検出されたグリッドを障害物グリッドとしてマークし、障害物の存在が検出されずロボットが通過していないグリッドを作業待ちグリッドとしてマークし、ロボットが通過しておらず状態が検出されていないグリッドを未知グリッドとしてマークする。
【００１３】
具体的には、上記適用例では、ロボットの移動モードは、行単位の移動と列単位の移動との２種類の移動がある。さらに図２を参照すると、行単位の移動モードでは、ロボットは、まず仮想地図内の行方向に沿って移動し、障害物に遭遇すると、行方向に垂直な列方向に沿って次の行に移動し、次に前の行の移動方向と反対の行方向に沿って移動する。例えば、ロボットはまず仮想地図のｎ行においてｎ行ｍ列の位置２０１からｎ行ｍ＋４列の位置２０２に移動しており、ｎ行ｍ＋５列の位置２０３に障害物があるため、ロボットは行方向に垂直な列方向に沿って、ｎ行ｍ＋４列の位置２０２からｎ＋１行ｍ＋４列の位置２０４に移動し、次にｎ＋１行に沿ってｎ＋１行ｍ＋４列の位置２０４からｎ＋１行ｍ列の位置２０５に移動する。列単位の移動モードでは、ロボットは、まず仮想地図内の列方向に沿って移動し、障害物に遭遇すると、列方向に垂直な行方向に沿って次の列に移動し、次に前の列の移動方向と反対の列方向に沿って移動する。
【００１４】
ロボットの行単位の移動を例とすると、ロボットの移動中に、移動方向（行方向）及び垂直方向（列方向）に沿って、ロボットが位置するグリッドの隣接するグリッドの状態が検出され、仮想地図上でグリッドの状態がマークされる。ロボットの移動中に、グリッド状態が更新される。図２に示すように、現在位置するグリッドを含む、ロボットが通過したグリッドは、作業済みグリッドとしてマークされ、即ち、図２における「済（已）」でマークされたグリッドとなる。障害物の存在が検出されたグリッドは障害物グリッドとしてマークされ、即ち、図２における斜線でマークされたグリッドとなる。障害物が検出されておらずロボットが通過していないグリッドは作業待ちグリッドとしてマークされ、即ち、図２における「待」でマークされたグリッドとなる。ロボットが通過しておらず状態が検出されていないグリッドは未知グリッドとしてマークされ、即ち、図２における「未」でマークされたグリッドとなる。
【００１５】
当然のことながら、他の適用例では、ロボットは他の方向に沿って移動してもよく、仮想地図は他の方式で格納されてもよい。それはここで特に限定されない。
【００１６】
さらに、ステップＳ１１は、ステップＳ１１１を含む。
ステップＳ１１１では、移動方向又は垂直方向に沿ってロボットの両側に位置する２つの隣接する障害物グリッドを取得し、２つの隣接する障害物グリッドの仮想地図上での位置情報に基づいて２つの隣接する障害物グリッドの間の距離を計算する。
【００１７】
ステップＳ１１１は、ステップＳ１１１１を更に含む。
ステップＳ１１１１では、ロボットの移動方向又は前記移動方向に垂直な方向に沿って、前記ロボットの一方の側に位置する第１障害物の位置情報、及び前記ロボットの他方の側に位置する第２障害物の位置情報を取得する。前記第１障害物と前記第２障害物との間には他の障害物は存在していない。
【００１８】
具体的には、１つの適用例では、図３に示すように、ロボットがｎ行において行方向に沿って移動するときに、ロボットの両側の第１障害物及び第２障害物という２つの隣接する障害物グリッドの位置情報、即ち仮想地図におけるｎ行ｍ＋１列の位置３０１及びｎ行ｍ−ｊ列の位置３０２の障害物グリッドの位置情報を取得し、２つの隣接する障害物グリッドの間の距離、即ちｊ＋１個のグリッドを計算する。当然のことながら、他の適用例では、ロボットの移動方向に垂直な方向に沿って第１障害物及び第２障害物の位置情報を取得してもよく、ここでは特に限定しない。
【００１９】
ステップＳ１２では、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断する。
具体的には、第１の予め設定された距離は、ロボットによって予め設定された第１距離閾値である。上記適用例では、第１の予め設定された距離はグリッドを単位とし、具体的な値は実際の需要に応じて設定されてもよく、ここでは特に限定されない。
【００２０】
ステップＳ１２はステップＳ１２１を更に含む。
ステップＳ１２１では、２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され未知グリッドに連接される作業待ちグリッドが存在するか否かを判断する。
具体的には、上記適用例では、図３に示すように、ロボットは仮想地図のｎ行ｍ列の位置３００に位置し、仮想地図におけるｎ行ｍ＋１列の位置３０１とｎ行ｍ−ｊ列の位置３０２はいずれも障害物グリッドである。２つの障害物グリッドの間のグリッドの一方の側に（ｎ＋１行に）隣接して配置され未知グリッドに連接される作業待ちグリッドが存在する場合、例えば、ｎ＋１行ｍ＋１列の位置３０３の未知グリッドに隣接して配置され連接されるｎ＋１行ｍ列の位置３０４の作業待ちグリッドが存在する場合、後続して配置される仮想障害物境界は、ロボットが作業済み領域から未作業領域に移動する過程中に設定される。
【００２１】
ステップＳ１３では、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定する。
さらに、ステップＳ１３はステップＳ１３１〜ステップＳ１３４を含む。
ステップＳ１３１では、２つの隣接する障害物グリッドの間の距離が第１の予め設定された距離以下であり、２つの隣接する障害物グリッドの間のグリッドの少なくとも１つの側に、隣接して配置され未知グリッドに連接される作業待ちグリッドが存在する場合、２つの隣接する障害物グリッドの間に仮想障害物境界を設定する。
【００２２】
具体的には、上記適用例では、図３に示すように、２つの隣接する障害物グリッド３０１と３０２との間の距離（ｊ＋１個のグリッド）が第１の予め設定された距離（例えば、１０個のグリッド）以下である場合、２つの隣接する障害物グリッド３０１と３０２との間のグリッドの少なくとも１方の側に、隣接して配置され未知グリッドに連接される作業待ちグリッドが存在する。未知グリッド３０３に隣接して配置され連接される作業待ちグリッド３０４が存在する場合、２つの隣接する障害物グリッド３０１と３０２との間に仮想障害物境界を設定する。
【００２３】
他の適用例では、図４に示すように、ロボットは仮想地図で行方向に沿って移動する。現在、ロボットは仮想地図のｎ行ｍ列の位置３００にある。ロボットの両側の２つの隣接する障害物３０５と３０６との間の距離（ｉ＋ｊ個のグリッド）が第１の予め設定された距離（例えば、１０個のグリッド）以下であり、且つ２つの隣接する障害物グリッド３０５と３０６との間のグリッドの少なくとも１方の側には隣接して配置され未知グリッドに連接される作業待ちグリッドが存在する、例えば、ｎ行ｍ＋１列の位置３０７に隣接して配置されｎ行ｍ＋２列の位置３０８の未知グリッドに連接される作業待ちグリッドが存在する場合、２つの隣接する障害物グリッド３０５と３０６との間に仮想障害物境界を設定する。
【００２４】
図５に示すように、ロボットは仮想地図で列方向に沿って移動する。現在、ロボットは仮想地図のｎ行ｍ列の位置３００にある。ロボットの両側の２つの隣接する障害物３０９と３１０との間の距離（ｉ＋ｊ個のグリッド）が第１の予め設定された距離（例えば、１０個のグリッド）以下であり、且つ２つの隣接する障害物グリッド３０９と３１０との間のグリッドの少なくとも１方の側には隣接して配置され未知グリッドに連接される作業待ちグリッドが存在する、例えば、ｎ＋１行ｍ列の位置３１１に隣接して配置されｎ＋２行ｍ列の位置３１２の未知グリッドに連接される作業待ちグリッドが存在する場合、２つの隣接する障害物グリッド３０９と３１０との間に仮想障害物境界を設定することができる。
【００２５】
ステップＳ１３２では、ロボットを継続して移動させるように制御して、２つの隣接する障害物の間のグリッドからロボットを移動させた後、２つの隣接する障害物の間に仮想障害物境界を設定する。
【００２６】
具体的には、図３及び図６に示すように、ロボットが列方向に沿って次の行（ｎ＋１行）に移動し続けると、ロボットは、２つの隣接する障害物３０１と３０２との間のグリッドから出た後、２つの隣接する障害物３０１と３０２との間に仮想障害物境界３１を設定し、即ち、仮想障害物境界３１を有効にする。図６に示すように、グリッドが
0006808904.tif 000002
でマークされる。
【００２７】
図４及び図７に示すように、ロボットが行方向に沿って次の列（ｍ＋１列）に移動し続けると、ロボットは、２つの隣接する障害物３０５と３０６との間のグリッドから出た後、２つの隣接する障害物３０５と３０６との間に仮想障害物境界３２を設定し、即ち、仮想障害物境界３２を有効にする。図７に示すように、グリッドが
0006808904.tif 000003
でマークされる。
【００２８】
図５及び図８に示すように、ロボットが列方向に沿って次の行（ｎ＋１行）に移動し続けると、ロボットは、２つの隣接する障害物３０９と３１０との間のグリッドから出た後、２つの隣接する障害物３０９と３１０との間に仮想障害物境界３３を設定し、即ち、仮想障害物境界３３を有効にする。図８に示すように、グリッドが
0006808904.tif 000004
でマークされる。
【００２９】
さらに、ステップＳ１３はステップＳ１３３〜ステップＳ１３４を更に含む。
ステップＳ１３３では、２つ以上の仮想障害物境界が存在する場合、２つ以上の仮想障害物境界の互いに垂直な第１方向及び第２方向のいずれかにおける距離が第２の予め設定された距離より短いか否か、前記第１方向及び前記第２方向の他方への投影に重なる領域があるか否かを判断する。第２の予め設定された距離は、ロボットによって予め設定された第１距離閾値であり、その値は実際の需要に応じて設定されてもよく、ここでは特に限定されない。一適用例では、仮想地図上の第１方向は行方向であり、第２方向は列方向であり、仮想地図上の２つの仮想障害物境界の行方向及び列方向のうちの一方の方向における距離が第２の予め設定された距離より短いか否かを判断し、他方の方向への投影が重なる領域を有するか否かを判断することによって、２つの仮想障害物境界の間の距離が近すぎるか否かを判断する。
【００３０】
ステップＳ１３４では、第２の予め設定された距離より短く且つ重なり領域がある場合、２つ以上の仮想障害物境界を選択的に削除する。
【００３１】
具体的には、一適用例では、図９に示すように、仮想地図において、行方向における２つの隣接する仮想障害物境界４１と４２との間の距離（ｉ個のグリッド）は、第２の予め設定された距離（例えば、５個のグリッド）より短く、且つ仮想障害物境界４１及び４２の列方向への投影は重なり領域４０１を有する。それにより、２つの隣接する仮想障害物境界４１と４２は近すぎることが示され、一方の仮想障害物境界が選択され削除される。
【００３２】
図１０に示すように、仮想地図において、列方向における２つの隣接する仮想障害物境界４３と４４との間の距離（ｊ個のグリッド）は、第２の予め設定された距離（例えば、５個のグリッド）より短く、且つ仮想障害物境界４３及び４４の行方向への投影は重なり領域４０２を有する。それにより、２つの隣接する仮想障害物境界４３と４４は近すぎることが示され、一方の仮想障害物境界が選択され削除される。
【００３３】
図１１に示すように、仮想地図において、行方向の仮想障害物境界４５と列方向の仮想障害物境界４６との間の距離は０と定義され、第２の予め設定された距離（例えば、５個のグリッド）より短く、且つ仮想障害物境界４５及び４６は重なり領域４０３を有する。これにより、２つの仮想障害物境界４５と４６は近すぎることが示され、一方の仮想障害物境界が選択され削除される。
【００３４】
さらに、ステップＳ１３４はステップＳ１３４１を含む。
ステップＳ１３４１では、設定時間が比較して遅い仮想障害物境界を削除する。
【００３５】
具体的には、上記適用例では、図９に示すように、仮想障害物境界４２の設定時間が仮想障害物境界４１の設定時間よりも遅い場合、仮想障害物境界４２を削除する。図１０に示すように、仮想障害物境界４４の設定時間が仮想障害物境界４３の設定時間よりも遅い場合、仮想障害物境界４４を削除する。図１１に示すように、仮想障害物境界４６の設定時間が仮想障害物境界４５の設定時間よりも遅い場合、仮想障害物境界４６を削除する。
【００３６】
ステップＳ１４では、仮想障害物境界によりロボットの移動経路を制御する。
ステップＳ１４はステップＳ１４１を含む。
ステップＳ１４１では、その後ロボットが仮想障害物境界に移動するときに、仮想障害物境界に障害物が存在するとみなす方式によってロボットの移動を制御する。
【００３７】
具体的には、仮想障害物境界が有効になった後、ロボットは、仮想障害物境界の位置に障害物があるとみなす。ロボットは、後続の移動中に、仮想障害物境界を削除するまで、仮想障害物境界の位置のグリッドを越えることができない。
【００３８】
さらに、ステップ１４１はステップＳ１４１１〜ステップＳ１４１３を含む。
ステップＳ１４１１では、仮想障害物境界を用いて、作業待ち領域を仮想障害物境界により離隔された少なくとも２つのサブ領域に分割する。
具体的には、図１２に示すように、仮想障害物境界５１は、作業待ち領域を２つのサブ領域５０１及び５０２に分割する。図１３に示すように、仮想障害物境界５２、５３及び５４は、作業待ち領域を４つのサブ領域５０３、５０４、５０５及び５０６に分割する。
【００３９】
ステップＳ１４１２では、１つのサブ領域内の作業待ちグリッド及び未知グリッドを巡回した後、仮想障害物境界を削除し、他のサブ領域内の作業待ちグリッド及び未知グリッドを巡回するように、ロボットを制御する。
【００４０】
具体的には、図１２に示すように、ロボットは行ごとに移動し、サブ領域５０１からサブ領域５０２への移動中に、サブ領域５０１とサブ領域５０２との間に仮想障害物境界５１を設定する。具体的な設定方法はステップＳ１１〜ステップＳ１３を参照することができ、ここでは説明を繰り返さない。仮想障害物境界５１が有効になった後、ロボットは、仮想障害物境界５１の位置に障害物が存在するとみなす。ロボットは、後続の移動中に、仮想障害物境界５１を削除するまで、仮想障害物境界５１を越えてサブ領域５０２からサブ領域５０１へ移動することができない。従って、ロボットは、まずサブ領域５０２内の作業待ちグリッド及び未知グリッドを全て巡回した後、仮想障害物境界５１を削除する。このとき、仮想障害物境界５１の位置に障害物は存在しないため、ロボットは、サブ領域５０２からサブ領域５０１へ移動して、サブ領域５０１内の作業待ちグリッド及び未知グリッドを巡回し続けることができる。
【００４１】
図１３に示すように、ロボットにより前後して設定された仮想障害物境界５２、５３及び５４は、作業待ち領域を４つのサブ領域５０３、５０４、５０５及び５０６に分割する。ロボットは、後続の移動中に、まずサブ領域５０６内の作業待ちグリッド及び未知グリッドを全て巡回した後、最も遅い設定時間を有する仮想障害物境界５４を削除する。このとき、仮想障害物境界５４の位置に障害物は存在しないため、ロボットは、サブ領域５０６からサブ領域５０５へ移動して、サブ領域５０５内の作業待ちグリッド及び未知グリッドを巡回することができ、巡回完了後に、仮想障害物境界５３及び５２を順に削除し、サブ領域５０４、５０３内の作業待ちグリッド及び未知グリッドを順に巡回する。
【００４２】
従来技術では、図１４に示すように、サブ領域５０１からサブ領域５０２へのロボットの移動中に、仮想障害物境界が設定されていないため、ロボットは、後続の移動中に、サブ領域５０２内の作業待ちグリッド及び未知グリッドを全て巡回することなく、サブ領域５０２からサブ領域５０１に戻ってしまう。それにより、サブ領域５０１内の作業待ちグリッド及び未知グリッドを巡回した後、ロボットはサブ領域５０２内に戻る必要があり、作業効率が低く、時間がかかる。
【００４３】
図１４に示すような従来技術と比較して、本発明のロボットの移動制御方法では、設定された仮想障害物境界が作業待ち領域を少なくとも２つのサブ領域に分割することによって、１つのサブ領域内の作業待ちグリッド及び未知グリッドを巡回した後、他のサブ領域内の作業待ちグリッド及び未知グリッドを巡回するようにロボットを制御する。ロボットの作業効率が効果的に向上し、作業時間が節約される。
【００４４】
ステップＳ１４１３では、ロボットの移動中に、少なくとも２つのサブ領域を連通する作業済みグリッド及び／又は作業待ちグリッドの存在を発見すると、仮想障害物境界を削除する。
【００４５】
具体的には、ステップＳ１１〜Ｓ１３からわかるように、仮想障害物境界は、ロボットが作業済み領域から未作業領域へ移動する過程に設定するものである。即ち、仮想障害物境界が最初に設定されるとき、仮想障害物境界の両側のサブ領域は、作業済みグリッド及び／又は作業待ちグリッドを介して連通することができない。ロボットの移動中に、グリッドの状態は変化して、図１５に示すように、２つのサブ領域５０７、５０８は作業済みグリッド及び／又は作業待ちグリッドを介して連通され、このとき、仮想障害物境界５６は無効になり、ロボットはこの仮想障害物境界５６を削除して、記憶スペースを節約する。
【００４６】
上記実施例では、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算しており、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定し、仮想障害物境界によりロボットの移動経路を制御することによって、外部の仮想壁生成装置を使用する必要がなく、ロボット自体が仮想障害物境界を設定することができ、それによりコストを効果的に節約する。設定された仮想障害物境界は、作業待ち領域を少なくとも２つのサブ領域に分割する。それにより、ロボットは、１つのサブ領域内の作業待ちグリッド及び未知グリッドを巡回した後、他のサブ領域内の作業待ちグリッド及び未知グリッドを巡回する。ロボットの作業効率が効果的に向上し、作業時間が節約される。
【００４７】
図１６を参照すると、図１６は本発明のロボットの第１実施形態の構造模式図である。図１６に示すように、本発明のロボット６０は、順に接続された位置取得モジュール６０１と、距離判断モジュール６０２と、境界設定モジュール６０３と、移動制御モジュール６０４とを含む。
【００４８】
ロボット６０はロボット掃除機であってもよいし、他の種類のロボットであってもよく、ここでは特に限定されない。
【００４９】
位置取得モジュール６０１は、ロボット６０の移動方向又は移動方向に垂直な方向に沿って、ロボット６０の両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算するために使用される。
具体的には、一適用例では、ロボット６０は、センサーにより、その移動方向又は移動方向に垂直な方向におけるロボット６０の両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算し、その距離を距離判断モジュール６０２に送信する。
【００５０】
距離判断モジュール６０２は、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断するために使用される。
具体的には、第１の予め設定された距離は、ロボット６０によって予め設定された第１距離閾値であり、その値は具体的な需要に応じて設定されてもよく、ここでは特に限定されない。距離判断モジュール６０２は、位置取得モジュール６０１から送信された２つの隣接する障害物の間の距離を受信し、距離が第１の予め設定された距離以下であるか否かを判断し、判断結果を境界設定モジュール６０３に送信する。
【００５１】
境界設定モジュール６０３は、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定するために使用される。
具体的には、境界設定モジュール６０３は、距離判断モジュール６０２の判断結果を受信する。判断結果として、距離が第１の予め設定された距離以下である場合、ロボット６０は、境界設定モジュール６０３により、２つの隣接する障害物の間に仮想障害物境界を設定する。
【００５２】
移動制御モジュール６０４は、仮想障害物境界によりロボット６０の移動経路を制御するために使用される。
【００５３】
具体的に、１つの適用例では、仮想障害物境界を設定した後、ロボット６０は、後続の移動中に、仮想障害物境界の位置に障害物があると判定する。ロボット６０は、その仮想障害物境界を越えることができないように、ロボット６０の移動経路を制御する。
【００５４】
上記実施例では、ロボットは、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算しており、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定し、仮想障害物境界によりロボットの移動経路を制御することによって、外部の仮想壁生成装置を使用する必要がなく、ロボット自体が仮想障害物境界を設定することができ、それによりコストを効果的に節約する。
【００５５】
図１７を参照すると、図１７は本発明のロボットの第２実施形態の構造模式図である。図１７に示すように、本発明のロボット７０は、バスを介して接続されたセンサー７０１とプロセッサー７０２を含む。
【００５６】
ロボット６０はロボット掃除機であってもよいし、他の種類のロボットであってもよく、ここでは特に限定されない。
【００５７】
センサー７０１は、ロボットの移動方向又は移動方向に垂直な方向に沿って、ロボットの両側に位置する２つの隣接する障害物の位置情報を取得するために使用される。
具体的には、センサー７０１は距離センサーであってもよい。ロボット７０は、センサー７０１を介してその移動方向又は移動方向に垂直な方向におけるロボット７０の両側の２つの隣接する障害物の位置情報を取得することができる。センサー７０１は、ロボット７０の両側の２つの隣接する障害物の位置情報を取得できれば、他の種類のセンサーであってもよく、ここでは特に限定されない。
【００５８】
プロセッサー７０２はロボットの移動を制御する。プロセッサー７０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置）とも呼ばれる。プロセッサー７０２は、信号処理機能を有する集積回路チップであってもよい。プロセッサー７０２は、汎用プロセッサー、デジタルシグナルプロセッサー（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は他のプログラマブルロジックデバイス、ディスクリートゲート若しくはトランジスタロジックデバイス、  ディスクリートハードウェアコンポーネントであってもよい。汎用プロセッサーはマイクロプロセッサーであってもよいし、又はプロセッサーは任意の従来のプロセッサーなどであってもよい。
【００５９】
ロボット７０はメモリ（図に示せず）を含んでもよい。メモリは、例えば、ロボット７０の両側の２つの隣接する障害物の位置情報及び設定された仮想障害物境界の位置情報など、プロセッサー７０２の作動に必要とする命令及びデータを記憶するために使用される。
【００６０】
プロセッサー７０２は、２つの隣接する障害物の間の距離を計算し、２つの隣接する障害物の間の距離が第１の予め設定された距離以下であるか否かを判断し、２つの隣接する障害物の間の距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定し、仮想障害物境界によりロボットの移動経路を制御するために使用される。
【００６１】
第１の予め設定された距離は、ロボット７０によって予め設定された第１距離閾値であり、その値は具体的な需要に応じて設定されてもよく、ここでは特に限定されない。
【００６２】
具体的には、一適用例では、プロセッサー７０２は、センサー７０１により得られたロボット７０の両側の２つの隣接する障害物の位置情報を取得し、２つの隣接する障害物の間の距離を計算し、この距離が第１の予め設定された距離以下であるか否かを判断しており、距離が第１の予め設定された距離以下である場合、２つの隣接する障害物の間に仮想障害物境界を設定する。そして、プロセッサー７０２は、仮想障害物境界に障害物があり、ロボット７０がその仮想障害物境界を越えることができないようにして、ロボット７０の移動経路を制御する。当然のことながら、他の適用例では、プロセッサー７０２は、本発明のロボットの移動制御方法の一実施形態における他のステップを実行してもよく、ここでは特に限定しない。
【００６３】
以上の説明は本発明に係る実施形態に過ぎず、本発明の保護範囲を制限するものではない。本発明の明細書及び添付図面によって作成したすべての同等構造又は同等フローの変更を、直接又はの間接的に他の関連する技術分野に実施することは、いずれも同じ理由により本発明の保護範囲内に含まれるべきである。
【図１】
0006808904.tif 000005
【図２】
0006808904.tif 000006
【図３】
0006808904.tif 000007
【図４】
0006808904.tif 000008
【図５】
0006808904.tif 000009
【図６】
0006808904.tif 000010
【図７】
0006808904.tif 000011
【図８】
0006808904.tif 000012
【図９】
0006808904.tif 000013
【図１０】
0006808904.tif 000014
【図１１】
0006808904.tif 000015
【図１２】
0006808904.tif 000016
【図１３】
0006808904.tif 000017
【図１４】
0006808904.tif 000018
【図１５】
0006808904.tif 000019
【図１６】
0006808904.tif 000020
【図１７】
0006808904.tif 000021