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

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

▶ ネイバー コーポレーションの特許一覧

特表2025-501597強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物
<>
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図1
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図2
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図3
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図4
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図5
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図6
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図7
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図8
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図9
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図10
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図11
  • 特表-強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-22
(54)【発明の名称】強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットを制御する方法およびシステムならびにロボットを配置した建物
(51)【国際特許分類】
   G05D 1/622 20240101AFI20250115BHJP
   G05D 1/246 20240101ALI20250115BHJP
   G05D 1/43 20240101ALI20250115BHJP
【FI】
G05D1/622
G05D1/246
G05D1/43
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024538143
(86)(22)【出願日】2022-09-06
(85)【翻訳文提出日】2024-06-21
(86)【国際出願番号】 KR2022013359
(87)【国際公開番号】W WO2023120867
(87)【国際公開日】2023-06-29
(31)【優先権主張番号】10-2021-0185225
(32)【優先日】2021-12-22
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】チェ,ジンヨン
(72)【発明者】
【氏名】ファン,スルビン
(72)【発明者】
【氏名】チョン,スンファン
(72)【発明者】
【氏名】キム,コンウ
(72)【発明者】
【氏名】ビョン,ジェジョン
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301CC03
5H301CC06
5H301KK03
5H301LL03
5H301LL08
5H301LL12
(57)【要約】
強化学習によって予め学習された第1アルゴリズムによって目的地までのロボットの移動を制御し、ロボットの目的地までの移動中に、空間に対する経路計画にしたがってロボットの移動を制御するための第2アルゴリズムによってロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、回避条件を満たすかどうかによって、第1アルゴリズムを使用して、ロボットの移動を制御したりロボットの移動を停止させる、ロボット制御方法を提供する。
【特許請求の範囲】
【請求項1】
空間内を移動するロボットまたはロボットを制御するロボット制御システムによって実行されるロボット制御方法であって、
前記ロボットの移動を制御するために、強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御する段階、
前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する段階、および
前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地に移動するように前記ロボットの移動を制御し、前記回避条件を満たさない場合には、前記ロボットの移動を停止するように前記ロボットを制御する段階
を含む、ロボット制御方法。
【請求項2】
前記第1アルゴリズムと前記第2アルゴリズムは、前記ロボットまたは前記ロボット制御システムにおいて、前記ロボットの移動を制御するために並列的に実行される、
請求項1に記載のロボット制御方法。
【請求項3】
前記ロボットは、前記空間内でサービスを提供するサービスロボットであり、
前記目的地は、前記サービスを提供するための前記ロボットの最終目的地、または前記最終目的地までの移動のために前記ロボットが経由する経由地である、
請求項1に記載のロボット制御方法。
【請求項4】
前記第1アルゴリズムは、
前記ロボットが移動中に障害物を回避しながら前記目的地まで移動するように前記ロボットを制御するように構成され、
前記第2アルゴリズムは、
前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって前記ロボットの移動を制御するように構成される、
請求項1に記載のロボット制御方法。
【請求項5】
前記空間に対して構築されたマップは、前記空間に対する占有格子地図である、
請求項1に記載のロボット制御方法。
【請求項6】
前記判定する段階は、
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、所定の回避範囲を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記回避範囲を逸脱せずに前記障害物を回避して前記目的地に移動できる場合、前記ロボットは、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように制御され、
前記ロボットが前記回避範囲を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。
【請求項7】
前記判定する段階は、
前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって、前記ロボットが前記障害物を回避するために所定の第1距離以上を移動しなければならない場合、前記ロボットが前記回避範囲を逸脱せずには前記障害物を回避できないと判定する、
請求項6に記載のロボット制御方法。
【請求項8】
前記判定する段階は、
前記空間に対して構築されたマップに基づいて、前記ロボットが、前記ロボットの現在地または出発地から前記目的地までの直線から所定の第2距離以上を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定し、
前記ロボットが前記第2距離以上を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項6に記載のロボット制御方法。
【請求項9】
前記ロボットが他の通路に迂回しなくても回避できるほどに前記障害物が小さい場合、前記第1アルゴリズムによる制御にしたがって、前記ロボットは、他の通路に迂回したり前記障害物の前で停止することなく前記障害物を回避して前記目的地まで移動するように制御される、
請求項6に記載のロボット制御方法。
【請求項10】
前記判定する段階は、
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、所定の禁止区域に侵入することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記禁止区域に侵入せずに前記障害物を回避して前記目的地に移動できる場合、前記ロボットは、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように制御され、
前記ロボットが前記禁止区域に侵入せずには前記障害物を回避して前記目的地に移動できない場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。
【請求項11】
前記判定する段階は、
前記ロボットの前記目的地までの移動中に識別された障害物に対し、前記経路計画に基づいて、前記ロボットが後進することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階
を含み、
前記ロボットが前記障害物を回避するために後進が必要であると判断された場合、前記ロボットは、前記障害物の前で停止するように制御される、
請求項1に記載のロボット制御方法。
【請求項12】
前記判定の結果によって、
前記ロボットが前記目的地まで移動するための通路内で、他の通路に迂回することなく回避できるほどに小さい障害物に対しては、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回せずに前記障害物を回避して前記目的地まで移動するように前記ロボットを制御し、
前記通路内で、前記ロボットの前方に前記障害物として他のロボットが識別された場合、前記ロボットは、前記他のロボットを追い越すことなく前記他のロボットの後ろで待機するように制御される、
請求項1に記載のロボット制御方法。
【請求項13】
前記通路は、前記空間内の前記ロボットの整列が求められる領域、または2台以上のロボットが並んで走行できない幅の領域である、
請求項12に記載のロボット制御方法。
【請求項14】
請求項1に記載の方法をコンピュータシステムである前記ロボットまたは前記ロボット制御システムで実行させるためのプログラムが記録されている、非一時的なコンピュータで読み取り可能な記録媒体。
【請求項15】
空間内を移動するロボットのコンピュータシステムであって、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記ロボットの移動を制御するために強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御する第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件を満たさない場合には、前記ロボットの移動を停止するように前記ロボットを制御する、コンピュータシステム。
【請求項16】
建物であって、
前記建物内の空間を移動する少なくとも1つのロボット
が配置され、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記ロボットは、前記ロボット内に含まれるか又はサーバであるコンピュータシステムによって、前記建物内での移動が制御され、
前記コンピュータシステムは、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記ロボットの移動を制御するために強化学習によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御する、建物。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの移動を制御する方法およびシステムと、このようなロボットが配置される建物に関する。
【背景技術】
【0002】
自律走行ロボットは、ロボットが自ら周辺の状況を把握し、障害物を感知しながら車輪や脚を利用して最適な経路で目的地まで移動するロボットであって、自律走行車、物流、ホテルサービス、ロボット掃除機などの多様な分野で開発が進められている。
【0003】
ロボットがサービスを提供するために建物などの空間内に投入される場合、ロボットは、空間内の予測可能あるいは予測不可能な障害物を適切に回避するように制御されなければならず、場合によっては、建物内の通路や廊下などの狭いエリアでの走行も求められる。
【0004】
このようなロボットは、他のロボットや障害物との衝突や干渉を回避しながらも、不要に経路を迂回したり長い距離を移動したりといった無駄な動きがないように、効率的に制御されることが重要となる。
【0005】
韓国公開特許第10-2005-0024840号は、自律移動ロボットのための経路計画方法に関する技術であって、家庭やオフィスで自律的に動く移動ロボットが、障害物を回避しながら目標点まで安全かつ迅速に移動するための最適経路を計画する方法について開示している。
【0006】
上述した情報は理解を助けるためのものに過ぎず、本発明が、従来技術の一部を形成しない内容を含む場合もあるし、従来技術が当業者に提示する内容を含まない場合もある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて目的地までのロボットの移動を制御するが、ロボットの目的地までの移動中に、空間に対する経路計画にしたがってロボットの移動を制御するための第2アルゴリズムに基づいてロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、回避条件を満たすかどうかによって、第1アルゴリズムを使用してロボットの移動を制御するかロボットの移動を停止させるロボット制御方法を提供することを目的とする。
【0008】
目的地までのロボットの移動中に識別される障害物に対し、経路計画ベースのアルゴリズムを使用して、識別された障害物を回避するためにロボットが所定の回避範囲を逸脱する必要があるかどうかを判定し、判定結果によってロボットを停止させることで、ロボットを効率的に制御する方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
一側面において、空間内を移動するロボットまたはロボットを制御するロボット制御システムによって実行されるロボット制御方法であって、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御する段階、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する段階、および前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御する段階を含む、ロボット制御方法を提供する。
【0010】
前記第1アルゴリズムと前記第2アルゴリズムは、前記ロボットまたは前記ロボット制御システムにおいて、前記ロボットの移動を制御するために並列的に実行されてよい。
【0011】
前記ロボットは、前記空間内でサービスを提供するサービスロボットであり、前記目的地は、前記サービスを提供するための前記ロボットの最終目的地であってもよいし、前記最終目的地までの移動のために前記ロボットが経由する経由地であってもよい。
【0012】
前記第1アルゴリズムは、前記ロボットが移動中に障害物を回避しながら前記目的地まで移動するように前記ロボットを制御するように構成され、前記第2アルゴリズムは、前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって前記ロボットの移動を制御するように構成されてよい。
【0013】
前記空間に対して構築されたマップは、前記空間に対する占有格子地図(occupancy grid map)であってよい。
【0014】
前記判定する段階は、前記ロボットの前記目的地までの移動中に識別される障害物に対し、前記経路計画に基づいて、所定の回避範囲を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階を含み、前記ロボットが前記回避範囲を逸脱せずに前記障害物を回避して前記目的地に移動できる場合、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットを制御し、前記ロボットが前記回避範囲を逸脱せずには前記障害物を回避して前記目的地に移動できない場合、前記障害物の前で停止するように前記ロボットを制御してよい。
【0015】
前記判定する段階は、前記空間に対して構築されたマップを基盤として生成された前記目的地までの経路に基づいた前記経路計画にしたがって、前記ロボットが前記障害物を回避するために所定の第1距離以上を移動しなければならない場合、前記ロボットは前記回避範囲を逸脱せずには前記障害物を回避できないものと判定してよい。
【0016】
前記判定する段階は、前記空間に対して構築されたマップを基盤として、前記ロボットが、前記ロボットの現在地または出発地から前記目的地までの直線から所定の第2距離以上を逸脱することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定し、前記ロボットが前記第2距離以上を逸脱せずには前記障害物を回避して前記目的地まで移動できない場合、前記障害物の前で停止するように前記ロボットを制御してよい。
【0017】
前記ロボットが他の通路に迂回することなく回避できるほどに前記障害物が小さい場合、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回したり前記障害物の前で停止せずに前記障害物を回避して前記目的地まで移動するように前記ロボットを制御してよい。
【0018】
前記判定する段階は、前記ロボットの前記目的地までの移動中に識別される障害物に対し、前記経路計画に基づいて、所定の禁止区域に侵入することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階を含み、前記ロボットが前記禁止区域に侵入せずに前記障害物を回避して前記目的地まで移動できる場合、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットを制御してよく、前記ロボットが前記禁止区域に侵入しなくては前記障害物を回避して前記目的地に移動できない場合、前記障害物の前で停止するように前記ロボットを制御してよい。
【0019】
前記判定する段階は、前記ロボットの前記目的地までの移動中に識別される障害物に対し、前記経路計画に基づいて、前記ロボットが後進することなく前記障害物を回避して前記目的地まで移動できるかどうかを判定する段階を含み、前記ロボットが前記障害物を回避するために後進する必要があると判定された場合、前記障害物の前で停止するように前記ロボットを制御してよい。
【0020】
前記判定の結果によって、前記ロボットが前記目的地まで移動するための通路内で、他の通路に迂回せずに回避できるほどに小さい障害物に対しては、前記第1アルゴリズムによる制御にしたがって、他の通路に迂回することなく前記障害物を回避して前記目的地に移動するように前記ロボットを制御し、前記通路内で、前記ロボットの前方に前記障害物として他のロボットが識別された場合、前記他のロボットを追い越さずに前記他のロボットの後ろで待機するように前記ロボットを制御してよい。
【0021】
前記通路は、前記空間内で前記ロボットの整列が求められる領域、あるいは2台以上のロボットが並んで走行することができない幅の領域であってよい。
【0022】
他の一側面において、ロボットのためのコンピュータシステムであって、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動が停止するように前記ロボットを制御する、コンピュータシステムを提供する。
【0023】
また他の一側面において、建物であって、前記建物内の空間を移動する少なくとも1台のロボットが配置され、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記ロボットは、前記ロボット内に含まれるかサーバであるコンピュータシステムによって、前記建物内での移動が制御され、前記コンピュータシステムは、コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、前記ロボットの移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までの前記ロボットの移動を制御し、前記ロボットの前記目的地までの移動中に、前記空間に対して構築されたマップに基づいた経路計画にしたがって前記ロボットの移動を制御するための第2アルゴリズムに基づいて、前記ロボットが障害物に対する所定の回避条件を満たすかどうかを判定し、前記回避条件を満たす場合には、前記第1アルゴリズムによる制御にしたがって前記目的地まで移動するように前記ロボットの移動を制御し、前記回避条件が満たされない場合には、前記ロボットの移動を停止するように前記ロボットを制御する、建物を提供する。
【発明の効果】
【0024】
並列的に実行される強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御することによって、強化学習ベースのアルゴリズムでは調節することができなかった障害物に対する回避範囲を制限することができる。これにより、ロボットが狭い通路を走行したり障害物に直面したときに、目的地までの経路(例えば、全域経路(global path))から大きく離脱するといったロボットの非効率的な移動を最小限に抑えることができる。
【0025】
さらに、例えば、狭い通路でロボットの整列が求められる場合などのようにサービスの提供のために必要な動作を取るときに、マイナーな障害物を回避しながらも先行するロボットと適切に距離を置いて位置するようにロボットを制御することができる。
【図面の簡単な説明】
【0026】
図1】一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用して、ロボットの目的地までの移動を制御する方法を示した図である。
図2】一実施形態における、空間内でサービスを提供するロボットを示したブロック図である。
図3】一実施形態における、ロボットを制御するロボット制御システムを示したブロック図である。
図4】一実施形態における、ロボットを制御するロボット制御システムを示したブロック図である。
図5】一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用して、ロボットの目的地までの移動を制御するロボットのためのコンピュータシステムのプロセッサを示したブロック図である。
図6】一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用して、ロボットの目的地までの移動を制御する方法を示したフローチャートである。
図7】一例における、ロボットの目的地までの移動を制御するにあたり、ロボットが障害物に対する所定の回避条件を満たしているかどうかを判定する方法を示したフローチャートである。
図8】一例における、ロボットが障害物に対する所定の回避範囲を逸脱するかどうかによってロボットの目的地への移動を制御する方法を示した図である。
図9】一例における、ロボットが障害物を回避するために所定の禁止区域に侵入しなければならないかどうかによってロボットの目的地への移動を制御する方法を示した図である。
図10】一例における、ロボットが障害物を回避するために、目的地までの経路に対して所定の回避範囲を逸脱するかどうかによってロボットの目的地への移動を制御する方法を示した図である。
図11】一例における、ロボットの整列が求められる領域でロボットの移動を制御する方法を示した図である。
図12】一例における、経路計画ベースのアルゴリズムが使用する空間に対するマップとして、占有格子地図(occupancy grid map)を示した図である。
【発明を実施するための形態】
【0027】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0028】
図1は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御する方法を示した図である。
【0029】
図1には、空間10内でサービスを提供するように構成されるロボット100が、ロボット100の目的地までの移動を制御するために構成されたアルゴリズム(すなわち、以下で説明する第1アルゴリズムと第2アルゴリズム)の実行にしたがって、障害物30を回避しながら目的地に向かって移動する方法が示されている。
【0030】
ロボット100の目的地までの移動を制御するために構成されるアルゴリズムは、ロボット100内で実行されてもよいし、ロボット制御システム120内で実行されてもよい。
【0031】
ロボット100内でアルゴリズムが実行される場合、すなわち、アルゴリズムがロボット100に配備(deploy)されて実行される場合、ロボット100は、アルゴリズムで定義されたとおりに、障害物30を回避しながら目的地に向かって移動するように制御されてよい。この反面、ロボット制御システム120内でこのようなアルゴリズムが実行される場合、前記アルゴリズムによるロボット制御システム120からの制御信号(命令)、例えば、速度制御信号および/または方向制御信号に基づいてロボット100が制御されてよい。
【0032】
ロボット100が移動(または、走行)する空間10は、ロボット100がサービスを提供する場所であって、例えば、建物やビルに含まれる屋内および/または屋外の空間を示してよい。建物またはビルは、複数の人員(以下、利用者とする)が勤務または常駐する空間を含み、例えば、複数の区切られた空間を含んでよい。空間10は、建物の一部(特定のフロアまたはフロア内の部分空間)を示してよい。
【0033】
ロボット100は、空間10内でサービスを提供するために使用されるサービスロボットであってよい。ロボット100は、空間10の少なくとも1つのフロアでサービスを提供するように構成されてよい。図1では、1つのロボット100だけが示されているが、空間内に配置されて動作するロボット100は複数であってもよい。空間10内では、それぞれのロボット100が移動しながら空間10内の適切な位置でサービスを提供したり、適切な利用者にサービスを提供してよい。
【0034】
ロボット100が提供するサービスは、例えば、宅配配達サービス、注文ドリンク(コーヒーなど)の配膳サービス、清掃サービス、およびその他の情報/コンテンツの提供サービスのうちの少なくとも1つを含んでよい。
【0035】
ロボット100は、自律走行によって、空間10の所定の位置や所定の利用者にサービスを提供するように構成されてよく、ロボット100の(それぞれの)移動およびサービスの提供はロボット制御システム120によって制御されてよい。上述したアルゴリズムによって制御されるロボット100の目的地までの移動は、このようなサービスの提供のためのロボット100の所定の位置への移動であってよい。
【0036】
以下の詳細な説明において、ロボット100が移動する「目的地」は、サービスを提供するためのロボット100の最終目的地であってもよいし、最終目的地への移動のためにロボット100が経由する「経由地」であってもよい。一例として、ロボット100が提供するサービスが宅配配達サービスである場合の目的地は、宅配物を受け取るための位置または受け取った宅配物を配達する位置であってもよいし、前記受け取り位置または配達位置に移動するためにロボット100が経由する位置であってもよい。
【0037】
ロボット100およびロボット制御システム120の構造については、図2~5を参照しながらより詳しく説明する。
【0038】
図に示すように、ロボット100は、目的地までの移動中に障害物30に直面することがあり、障害物30を回避しながら目的地まで移動するように制御されてよい。
【0039】
障害物30は、空間10内に一時的または非一時的に存在する物体であって、例えば、人間や他のロボットなどのように移動する客体であってもよいし、空間10内で移動しない、すなわち、固定された物体であってもよい。
【0040】
実施形態において、ロボット100は、ロボット100の移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズム(すなわち、強化学習ベースのアルゴリズム)と、空間100に対して構築されたマップに基づいた経路計画にしたがってロボット100の移動を制御するための第2アルゴリズム(すなわち、経路計画ベースのアルゴリズム)によって制御されてよい。
【0041】
例えば、ロボット100は、第1アルゴリズムによって目的地までの移動が制御されてよく、直面する障害物30に対して、第2アルゴリズムによって判断にしたがって所定の回避条件(または、回避範囲)を満たしながら障害物30を回避できると判定された場合、第1アルゴリズムによって障害物30を回避するように制御されてよい。このとき、所定の回避条件(または、回避範囲)を満たした状態で障害物30を回避できないと判定された場合には、障害物30の前で停止するようにロボット100を制御してよい。
【0042】
すなわち、実施形態では、第1アルゴリズムによってロボット100の移動を制御して障害物30に対する回避性能を維持しながらも、障害物30に対する回避範囲を制限してロボット100の危険な移動および非効率的な移動を最小限に抑えるために第2アルゴリズムを追加で使用することによって、ロボット100の移動を制御することができる。
【0043】
したがって、ロボット100は、障害物30を回避する性能に優れた第1アルゴリズムによって制御されるが、第2アルゴリズムに基づいて障害物30を回避するための回避範囲が制限されることにより、危険かつ非効率的な移動をしないように制御されることができる。
【0044】
第1アルゴリズムと第2アルゴリズムによるロボット100の制御方法については、図5~12を参照しながらより詳しく説明する。
【0045】
図2は、一実施形態における、空間内でサービスを提供するロボットを示したブロック図である。
【0046】
上述したとおり、ロボット100は、空間10内でサービスを提供するために使用されるサービスロボットであってよい。ロボット100は、自律走行しながら、空間10の所定の位置でサービスを提供したり、所定の利用者にサービスを提供するものであってよい。
【0047】
ロボット100は、物理的な装置であって、図に示すように、制御部104、駆動部108、センサ部106、および通信部102を含んでよい。
【0048】
制御部104は、ロボット100に内蔵された物理的なプロセッサであってよく、図には示していないが、経路計画処理モジュール、マッピング処理モジュール、駆動制御モジュール、ローカリゼーション処理モジュール、データ処理モジュール、およびサービス処理モジュールを含んでよい。このとき、経路計画処理モジュール、マッピング処理モジュール、およびローカリゼーション処理モジュールは、ロボット制御システム120との通信が途絶えた場合でもロボット100の室内自律走行が持続するように、実施形態に応じて選択的に制御部104に含まれてもよい。
【0049】
通信部102は、ロボット100が他の装置(他のロボットまたはロボット制御システム120など)と通信するための構成であってよい。言い換えれば、通信部102は、他の装置に対してデータおよび/または情報を送受信する、ロボット100のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワークインタフェースポートなどのハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムなどのソフトウェアモジュールであってよい。
【0050】
駆動部108は、ロボット100の移動を制御して移動を可能にする構成であって、これを実行するための装備を含んでよい。
【0051】
センサ部106は、ロボット100の自律走行およびサービス提供において要求されるデータを収集するための構成であってよい。センサ部106は、高価なセンシング装置を含む必要はなく、低価の超音波センサおよび/または低価のカメラなどのようなセンサを含んでよい。センサ部106は、前方および/または後方の他のロボットや人間を識別するためのセンサを含んでよい。例えば、センサ部106のカメラによって、他のロボット、人間、および他の物体が障害物30として識別されてよい。また、センサ部106は、赤外線センサ(または、赤外線カメラ)を含んでよい。センサ部106は、カメラの他に、周辺の利用者や他のロボット、または物体を認識/識別するためのセンサをさらに含んでよい。このように、センサ部106は、障害物30を識別するように構成されてよい。
【0052】
一例として、ロボット100がロボット制御システム120によって制御されるロボット制御システム120内で、ロボット100の自律走行のためのアルゴリズムが実行される場合、制御部104のデータ処理モジュールは、センサ部106のセンサの出力値を含むセンシングデータを、通信部102からロボット制御システム120に送信してよい。ロボット制御システム120は、空間10内の室内マップを使用して生成された経路データをロボット100に送信してよい。経路データは、通信部102からデータ処理モジュールに伝達されてよい。データ処理モジュールは、経路データを駆動制御モジュールに直ぐに伝達してよく、駆動制御モジュールは、経路データにしたがって駆動部108を制御してロボット100の室内自律走行を制御してよい。これにより、ロボット100は、上述した第2アルゴリズムに基づいて自律走行を行うことができる。一方、ロボット制御システム120で前記第1アルゴリズムが実行される場合、ロボット制御システム120は、ロボット100から受信したセンシングデータに基づいて、第1アルゴリズムによってロボット120を制御するための制御信号(例えば、速度および/または方向制御信号)を生成してよく、生成された制御信号に基づいてロボット100を制御してよい。これにより、ロボット100は、第1アルゴリズムに基づいて自律走行を行うことができる。
【0053】
または、ロボット100とロボット制御システム120が通信できない場合やロボット100内で自律走行のためのアルゴリズムが実行される場合、データ処理モジュールは、センシングデータをローカリゼーション処理モジュールに送信し、経路計画処理モジュールとマッピング処理モジュールで経路データを生成することによって、ロボット100の室内自律走行を直接的に処理してもよい。これにより、ロボット100は、上述した第2アルゴリズムに基づいて自律走行を行うことができる。一方、ロボット100で上述した第1アルゴリズムが実行される場合、ロボット100のデータ処理モジュールは、センシングデータに基づいて、第1アルゴリズムによってロボット120を制御するための制御信号(例えば、速度および/または方向制御信号)を生成してよく、生成された制御信号に基づいてロボット100を制御してよい。これにより、ロボット100は、第1アルゴリズムに基づいて自律走行を行うことができる。
【0054】
ロボット100は、空間10内の屋内マップを生成するために使用されるマッピングロボットとは別物であってよい。ロボット100は、高価なセンシング装備を含まないため、低価の超音波センサおよび/または低価のカメラなどのようなセンサの出力値を利用して室内自律走行を処理してよい。一方、ロボット100が以前にロボット制御システム120との通信によって室内自律走行を処理したことがある場合、ロボット制御システム120から以前に受信した経路データを含むマッピングデータなどをさらに活用することによって、低価のセンサの利用でも室内自律走行を正確に実現することができる。
【0055】
ただし、実施形態によっては、ロボット100が前記マッピングロボットを兼用してもよい。
【0056】
サービス処理モジュールは、ロボット制御システム120からの命令を、通信部102または通信部102とデータ処理モジュールで受け取ってよい。駆動部108は、ロボット100の移動のための装備だけでなく、ロボット100が提供するサービスと関連する装備をさらに含んでよい。例えば、ドリンク/宅配物配達サービスを実行するために、ロボット100の駆動部108は、ドリンク/宅配物を積載するための構成や、ドリンク/宅配物を利用者に受け渡すための構成(例えば、ロボットアーム(arm))を含んでよい。また、ロボット100は、情報/コンテンツを提供するためのスピーカおよび/またはディスプレイなどをさらに含んでよい。サービス処理モジュールは、提供するサービスのための駆動命令を駆動制御モジュールに伝達してよく、駆動制御モジュールは、駆動命令にしたがってロボット100や駆動部108が含む構成を制御することでサービスが提供されるようにしてよい。
【0057】
ロボット100は、上述した第1アルゴリズムと第2アルゴリズムによる制御にしたがって、障害物30を回避しながら目的地まで移動するように制御されてよい。
【0058】
上述したように、ロボット100は、ロボット100の制御のためのセンシングデータをロボット制御システム120に提供するだけであり、ロボット100の制御のための第1アルゴリズムと第2アルゴリズムがロボット制御システム120で実行される場合、ロボット100はブレインレスロボットに該当してよい。
【0059】
一方、ロボット100のそれぞれは、機種や提供するサービスなどによって異なる大きさや形態で形成されてよい。
【0060】
ロボット100を制御するロボット制御システム120の構成および動作については、図3~5を参照しながらそれぞれより詳しく説明する。
【0061】
以上、図1を参照しながら説明した技術的特徴は、図2にもそのまま適用されるため、重複する説明は省略する。
【0062】
図3および図4は、一実施形態における、ロボットを制御するロボット制御システムを示したブロック図である。
【0063】
ロボット制御システム120は、上述したロボット100の空間10内での移動(すなわち、走行)と、ロボット100による空間10内でのサービスの提供を制御する装置であってよい。ロボット制御システム120は、複数のロボット100それぞれの移動と、ロボット100それぞれのサービスの提供を制御してよい。ロボット制御システム120は、ロボット100との通信によってロボット100がサービスを提供するための経路を設定してよく、このような経路に関する情報をロボット100に伝達してよい。ロボット100は、受信した経路に関する情報に基づいて走行してよく、所定の位置でサービスを提供したり、所定の利用者にサービスを提供してよい。ロボット制御システム120は、前記設定された経路にしたがってロボットが移動(走行)するようにロボットの移動を制御してよい。
【0064】
ロボット制御システム120は、少なくとも1つのコンピューティング装置を含んでよい。
【0065】
ロボット制御システム120は、上述したとおり、ロボット100の走行のための経路を設定してロボット100の移動を制御する装置であってよい。ロボット制御システム120は、少なくとも1つのコンピューティングデバイスを含んでよく、空間10内または空間10の外部に位置するサーバとして実現されてよい。
【0066】
このようなロボット100の走行のための経路の設定とロボット100の移動の制御は、上述した第2アルゴリズムによるロボット100の制御を含んでよい。
【0067】
ロボット制御システム120は、図に示すように、メモリ330、プロセッサ320、通信部310、および入力/出力インタフェース340を含んでよい。
【0068】
メモリ330は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMと永続的大容量記録装置は、メモリ330とは区分される別の永続的記録装置として含まれてもよい。また、メモリ330には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ330とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信部310を通じてメモリ330にロードされてもよい。
【0069】
プロセッサ320は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ330または通信部310によって、プロセッサ320に提供されてよい。例えば、プロセッサ320は、メモリ330にロードされたプログラムコードにしたがって受信される命令を実行するように構成されてよい。このようなプロセッサ320は、図4に示すような構成410~440を含んでよい。
【0070】
プロセッサ320の構成410~440それぞれは、プロセッサ320の一部としてソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。プロセッサ320の構成410~440については、図4を参照しながら説明する。
【0071】
通信部310は、ロボット制御システム120が他の装置(ロボット100または他のサーバなど)と通信するための構成であってよい。言い換えれば、通信部310は、他の装置に対してデータおよび/または情報を送信/受信する、ロボット制御システム120のアンテナ、データバス、ネットワークインタフェースカード、ネットワークインタフェースチップ、およびネットワーキングインタフェースポートなどのようなハードウェアモジュール、またはネットワークデバイスドライバ(driver)またはネットワーキングプログラムのようなソフトウェアモジュールであってよい。
【0072】
入力/出力インタフェース340は、キーボードまたはマウスなどのような入力装置、およびディスプレイやスピーカのような装置とのインタフェースのための手段であってよい。
【0073】
また、他の実施形態において、ロボット制御システム120は、図に示した構成要素よりも多くの構成要素を含んでもよい。
【0074】
図4を参照しながら、プロセッサ320の構成410~440についてより詳しく説明する。プロセッサ320は、図に示すように、マップ生成モジュール410、ローカリゼーション処理モジュール420、経路計画処理モジュール430、およびサービス運営モジュール440を含んでよい。このようなプロセッサ320が含む構成要素は、オペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコードとによる制御命令(instruction)にしたがって、プロセッサ320が含む少なくとも1つのプロセッサが実行する互いに異なる機能(different functions)の表現であってよい。
【0075】
マップ生成モジュール410は、空間10内部で自律走行する(図示せず)マッピングロボットが目標施設物(例えば、空間10の内部)に対して生成したセンシングデータを利用して目標施設物の室内マップを生成するための構成要素であってよい。
【0076】
このとき、ローカリゼーション処理モジュール420は、ロボット100からネットワークを介して受信するセンシングデータとマップ生成モジュール410で生成された目標施設の室内マップを利用して、目標施設の内部におけるロボット100の位置を決定してよい。
【0077】
経路計画処理モジュール430は、上述したロボット100から受信したセンシングデータと生成された室内マップを利用して、ロボット100の室内自律走行を制御するための制御信号を生成してよい。例えば、経路計画処理モジュール430は、ロボット100の経路(すなわち、経路データ)を生成してよい。生成された経路(経路データ)は、この経路に沿ってロボット100が走行するようにロボット100に対して設定されてよい。ロボット制御システム120は、生成された経路に関する情報を、ネットワークを介してロボット100に送信してよい。一例として、経路に関する情報は、ロボット100の現在地を示す情報、現在地と室内マップをマッピングするための情報、および経路計画情報を含んでよい。経路に関する情報には、ロボット100が空間10内の所定の位置でサービスを提供したり所定の利用者にサービスを提供するために走行する経路に関する情報が含まれてよい。経路計画処理モジュール430は、ロボット100のための経路(すなわち、経路データ)をロボット100に対して設定してよい。ロボット制御システム120は、このような設定された経路にしたがって(すなわち、設定された経路にしたがって)ロボット100が移動するようにロボット100の移動を制御してよい。
【0078】
このようなロボット100の走行のための経路の設定とロボット100の移動の制御は、前記第2アルゴリズムによるロボット100の制御を含んでよい。
【0079】
サービス運営モジュール440は、ロボット100が空間10内で提供するサービスを制御するための機能を含んでよい。例えば、ロボット制御システム120または空間10を運営するサービス提供者は、ロボット100の利用者や制作者に、ロボット制御システム120が提供するサービス(例えば、クラウドサービス)のためのIDE(Integrated Development Environment)を提供してよい。このとき、ロボット100の利用者や制作者は、ロボット100が空間10内で提供するサービスを制御するためのソフトウェアをIDEによって制作してロボット制御システム120に登録してよい。この場合、サービス運営モジュール440は、ロボット100と関連付けて登録されたソフトウェアを利用してロボット100が提供するサービスを制御してよい。具体的な例として、ロボット100が、利用者が要請した物品(例えば、ドリンクや宅配物)を利用者の位置に配達するサービスを提供すると仮定するとき、ロボット制御システム120は、ロボット100の室内自律走行を制御してロボット100が利用者の位置に移動するように制御するだけでなく、目的地に到着したら利用者に物品を渡し、利用者に対応音声を出力するという一連のサービスをロボット100が提供するように、関連する命令をロボット100に伝達してよい。
【0080】
ロボット制御システム120は、ロボット100を制御するためのコンピュータシステムであって、サーバであってよい。ロボット制御システム120は、空間10または建物の外部に配置されるサーバであって、クラウドサーバであってよい。または、実施形態によっては、ロボット制御システム120は、空間10または建物の内部に配置されてもよい。
【0081】
以上、図1および図2を参照しながら説明した技術的特徴は、図3および図4にもそのまま適用されるため、重複する説明は省略する。
【0082】
図5は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地までの移動を制御するロボットのためのコンピュータシステムのプロセッサを示したブロック図である。
【0083】
図に示したプロセッサ500は、ロボット100のためのコンピュータシステムに含まれる構成要素であって、例えば、上述したロボット100の制御部104のプロセッサまたはロボット制御システム120のプロセッサ320であってよい。
【0084】
すなわち、プロセッサ500は、ロボット100の障害物30の回避および目的地までの移動のための第1アルゴリズムと第2アルゴリズムによる制御を実行する構成であって、ロボット100またはロボット制御システム120に含まれる構成であってよい。
【0085】
プロセッサ500は、第1アルゴリズム処理部510および第2アルゴリズム処理部520を含んでよい。第1アルゴリズム処理部510は、ロボット100の移動を制御するために第1アルゴリズムを実行する構成であってよく、第2アルゴリズム処理部520は、ロボット100の移動を制御するために第2アルゴリズムを実行する構成であってよい。
【0086】
プロセッサ500の構成要素510および520それぞれは、プロセッサ500の一部であって、ソフトウェアおよび/またはハードウェアモジュールであってよく、プロセッサによって実現される機能(機能ブロック)を示してよい。
【0087】
第1アルゴリズム処理部510および第2アルゴリズム処理部520は、第1アルゴリズムと第2アルゴリズムを並列実行してよい。すなわち、第1アルゴリズムと第2アルゴリズムは、ロボット100またはロボット制御システム120でロボット100の移動を制御するために並列または同時に実行されてよい。
【0088】
以下では、第1アルゴリズムと第2アルゴリズムについてさらに詳しく説明する。
【0089】
第1アルゴリズムは、ロボット100の自律走行を制御するための強化学習ベースのアルゴリズムであってよい。
【0090】
強化学習は、機械学習(Machine Learning)の一種であって、与えられた状況(または、状態)(state)に対して最適な行動(action)を選択するようにする学習方法であり、強化学習の対象となるコンピュータプログラムは、エージェント(agent)と呼ばれてよい。エージェントは、与えられた状況に対して自身が取る行動を示す政策(又は方策)(policy)を樹立し、最大の報酬が得られるように政策を樹立するためにモデルを学習させてよい。
【0091】
強化学習は、一例として、ロボット100を制御するためのアルゴリズムを人間が制作するのではなく、人工知能エージェントがシミュレーションまたは実世界で相互作用しながら、開発者が指定した報酬(reward)を最大化するようにロボット100の制御方法を自ら学習するものであってよい。
【0092】
第1アルゴリズムは、このような強化学習によって自律走行車や自律走行ロボットを制御するためのアルゴリズムとして実現されたものであってよい。強化学習は、深層ニューラルネットワーク(Deep Neural Network:DNN)を使用して強化学習を実行するモデルである深層強化学習(Deep Reinforcement Learning:DRL)を含んでよく、第1アルゴリズムは、深層強化学習によって実現されたものであってよい。
【0093】
ロボット100の自律走行を制御するにあたり、このような強化学習ベースのアルゴリズム、すなわち、第1アルゴリズムは、空間10に対して構築されたマップに対する経路計画(path planning)に基づいたアルゴリズムに比べて、障害物の回避などにおいてより高い性能と堅固性を実現することができる。
【0094】
第1アルゴリズムは、空間10の環境との相互作用によって、ロボット100が含むセンサの入力をロボット100の速度にマッピングするための最適なパラメータを学習するように実現されてよい。
【0095】
したがって、第1アルゴリズムは、ロボット100が移動中に障害物を回避しながら目的地まで移動するようにロボット100を制御するように構成されてよい。
【0096】
第1アルゴリズムは、障害物30を回避して目的地まで移動するために、手段や方法を選ばないものであってよい。例えば、第1アルゴリズムだけに基づいてロボット100が制御される場合、ロボット100は、比較的まれではあるが、深刻な結果をもたらす行動から利用者や障害物を保護するために(このような保護によって性能損失がほぼ発生しないとしても)特別な試みをなさないことがある。
【0097】
また、第1アルゴリズムだけに基づいてロボット100が制御される場合には、ロボット100が障害物30を回避するための回避範囲が制限されないため、障害物30を回避するために過度に遠くまで迂回することがある。さらに、第1アルゴリズムだけに基づいて制御されるロボット100は、狭い通路での整列が必要でロボット100が順に移動しなければならない状況でも、前方に位置する他のロボットを追い越して目的地に移動しようとしたり、他のロボットを回避できない場合にはその場で回転することがある。
【0098】
このように、第1アルゴリズムだけに基づいてロボット100が制御される場合には、安全またはロボット100が提供するサービス上の必要に応じて障害物30を回避せずにロボット100を待機するように制御することが難しくなり、ロボット100が障害物30を回避するために空間10内の禁止区域に侵入する事態が発生することがある。
【0099】
実施形態では、第1アルゴリズムによってロボット100の移動を制御して障害物30に対する回避性能を維持しながらも、障害物30に対する回避範囲を制限してロボット100の危険かつ非効率的な移動を最小限に抑えるために、第2アルゴリズムを追加で使用してロボット100の移動を制御する。
【0100】
第2アルゴリズムは、空間10に対して構築されたマップ(例えば、屋内マップ)に基づいた経路計画にしたがってロボット100の自律走行を制御するための経路計画ベースのアルゴリズムであってよい。例えば、第2アルゴリズムは、空間10に対して構築されたマップに基づいて生成された目的地までの経路に基づいた経路計画にしたがってロボット100の移動を制御するように構成されてよい。
【0101】
第2アルゴリズムは、空間10に対して構築されたマップを基盤としてロボット100が目的地まで移動するための最適な経路を決定し、この経路にしたがって障害物30を回避しながら移動するようにロボット100を制御するためのアルゴリズムであってよい。空間10に対するマップは、個別のマッピングロボットによって生成されたものであってよい。空間100に対して構築されたマップは、例えば、空間100に対する占有格子地図(occupancy grid map)であってよい。
【0102】
これと関連して、図12は、一例における、経路計画ベースのアルゴリズムが使用する空間に対するマップとして、占有格子地図(occupancy grid map)を示した図である。
【0103】
図に示した占有格子地図100は、建物内の空間10に対するものであって、マッピングロボットによって生成されたものであってよい。図に示した経路1210は、一例における、ロボット100の現在地または出発地から目的地までの経路を示している。経路1210は、複数のノードと、ノードとノードを接続するエッジで構成されてよい。それぞれのノードは、経路上でロボット100が経由する経由地(または、目的地)を示してよい。ノードは、予め設定された原則に基づいて設定されるものであってよい。
【0104】
占有格子地図を使用する経路計画ベースのアルゴリズムである、占有格子ベースのプランナー(occupancy grid based planner)だけを使用してロボット100を制御する場合には、障害物30の回避が可能であり、障害物30に対する回避範囲の調節も可能であるが、このようなアルゴリズムは、ロボット100のセンシングデータまたは測位において誤差に弱いため、誤差が発生するときにロボット100の目的地までの移動の制御が効果的になされないことがある。
【0105】
実施形態では、第1アルゴリズムと第2アルゴリズムがコンピュータシステム内で並列実行されることによって、第1アルゴリズムによってロボット100の移動が制御されて障害物30に対する回避性能が維持され、第2アルゴリズムによって障害物30に対する回避範囲が制限されてロボット100の危険かつ非効率的な移動を最小限に抑えることができる。
【0106】
すなわち、実施形態では、第1アルゴリズムと第2アルゴリズムをコンピュータシステムで並列実行するが、第2アルゴリズムは補助プランナとして使用されてよい。このような第2アルゴリズムは、空間10に対して構築されたマップに基づいた経路計画にしたがって、ロボット100が所定の回避条件(または、回避範囲)を満たしながら障害物30を回避できるかどうかを判断するために使用されてよい。
【0107】
したがって、実施形態では、ロボット100が障害物30に直面した場合に、第2アルゴリズムによる判断に基づいて障害物30を回避するために、ロボット100が経路計画による経路(global path)から一定の距離以上に離れなければならない場合には、障害物30を回避せずに停止して待機するようにロボット100を制御してよい。このように、実施形態では、第1アルゴリズムと第2アルゴリズムが並列実行され、第2アルゴリズムによって所定の回避条件(または、回避範囲)を満たしながら障害物30を回避することが不可能であると判定された場合には、第1アルゴリズムによる命令は無視してロボット100を停止させることができる。この反面、ロボット100は、障害物30が、回避が可能なほどに小さいものであったり、一定の距離を離れなくても回避が可能なものであれば、第1アルゴリズムによって障害物30を回避するように制御されてよい。
【0108】
第1アルゴリズムと第2アルゴリズムによるロボット100の制御方法については、図6~11を参照しながらより詳しく説明する。
【0109】
以上、図1~4を参照しながら説明した技術的特徴は、図5および図12にもそのまま適用されるため、重複する説明は省略する。
【0110】
以下の詳細な説明では、説明の便宜上、図5を参照しながら説明したプロセッサ500を含むコンピュータシステムによって実行される動作として、ロボットの目的地までの移動を制御する方法について説明する。
【0111】
図6は、一実施形態における、強化学習ベースのアルゴリズムと経路計画ベースのアルゴリズムを使用してロボットの目的地への移動を制御する方法を示したフローチャートである。
【0112】
段階610で、コンピュータシステムは、ロボット100の移動を制御するために強化学習(Reinforcement Learning)によって予め学習された第1アルゴリズムに基づいて、目的地までのロボット100の移動を制御してよい。すなわち、ロボット100は、強化学習ベースのアルゴリズムに基づいて、目的地までの移動中に識別される障害物を回避しながら移動するように制御されてよい。
【0113】
目的地は、サービスを提供するためのロボット100の最終目的地、または最終目的地までの移動のためにロボット100が経由する経由地であってよい。
【0114】
段階620で、コンピュータシステムは、ロボット100の目的地までの移動中に、空間10に対して構築されたマップに基づいた経路計画にしたがってロボット100の移動を制御するための第2アルゴリズムによって、ロボット100が障害物30に対する所定の回避条件を満たすかどうかを判定してよい。
【0115】
コンピュータシステムでは、第1アルゴリズムと第2アルゴリズムがロボット100の移動を制御するために並列または同時に実行されるため、段階620での判定は、ロボット100の目的地までの移動中に常時実行されてよい。すなわち、段階620での判定は、ロボット100の移動中にリアルタイムで実行されてよい。
【0116】
以下で説明する回避範囲および禁止区域などを含む回避条件は、ロボット100またはロボット制御システム120の管理者によって設定されてよい。管理者は、第2アルゴリズムによる経路計画のための条件として前記回避条件を設定してよい。
【0117】
これにより、コンピュータシステムは、ロボット100の移動中にロボット100によって障害物30が識別されたり障害物30に直面した場合に、前記回避条件を満たすかどうかを判定してよい。
【0118】
障害物30に対して回避条件を満たすかどうかを判定してロボット100を制御する具体的な方法については、図7~11を参照しながらより詳しく説明する。
【0119】
段階630で、コンピュータシステムは、回避条件を満たすかどうかによってロボット100を制御してよい。例えば、コンピュータシステムは、回避条件が満たされる場合には、第1アルゴリズムによる制御にしたがって目的地まで移動するようにロボット100の移動を制御してよい。また、コンピュータシステムは、回避条件が満たされない場合には、ロボット100の移動を停止するようにロボット100を制御してよい。コンピュータシステムがロボット100の移動を停止するようにロボット100を制御するということは、ロボット100が停止するようにロボット100にインタラプトを伝達することであってよい。
【0120】
したがって、ロボット100は、第2アルゴリズムによって制限された障害物30に対する回避条件または回避範囲が満たされる場合に限り、障害物30を回避するように制御されることができ、前記回避条件または回避範囲が満たされない場合には、障害物30を回避せずに停止するように制御されることができる。コンピュータシステムは、障害物30を克服した後(例えば、障害物30が他の位置に移動した後)に目的地まで移動するようにロボット100を再び制御してよい。
【0121】
以上、図1~5および図12を参照しながら説明した技術的特徴は、図6にもそのまま適用されるため、重複する説明は省略する。
【0122】
図7は、一例における、ロボットの目的地までの移動を制御するにあたり、ロボットが障害物に対する所定の回避条件を満たすかどうかを判定する方法を示したフローチャートである。
【0123】
段階710で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、所定の回避範囲を逸脱することなく障害物30を回避しながらロボット100が目的地まで移動できるかどうかを判定してよい。
【0124】
回避条件は、上述した回避条件に該当するものであって、ロボット100またはロボット制御システム120の管理者によって設定されてよい。回避条件は、ロボット100が移動する距離および/またはロボット100の現在地からの半径を含んでよい。
【0125】
ロボット100が回避範囲を逸脱することなく障害物30を回避して目的地まで移動できると判定された場合、第1アルゴリズムによる制御にしたがって目的地に移動するようにロボット100を制御してよい。この反面、ロボット100が回避範囲を逸脱せずには障害物30を回避して目的地に移動できない場合には、障害物30の前で停止するようにロボット100を制御してよい。
【0126】
例えば、コンピュータシステムは、空間10に対して構築されたマップを基盤として生成された目的地までの経路(例えば、全域経路(global path))に基づいた経路計画にしたがって、ロボット100が障害物30を回避するために所定の第1距離以上を移動しなければならない場合(例えば、所定の第1距離以上を迂回しなければならない場合)、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。第2アルゴリズムによる経路計画上、ロボット100が障害物30を回避するために現在地から一定の半径以上を逸脱しなければならなかったり、一定の距離以上を移動しなければならない場合、コンピュータシステムは、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。このとき、第1アルゴリズムによる制御命令は無視し、障害物30を回避せずに停止するようにロボット100を制御してよい。
【0127】
これと関連して、図8は、一例における、ロボットが障害物に対する所定の回避範囲を逸脱するかどうかによってロボットの目的地までの移動を制御する方法を示した図である。
【0128】
図に示した例において、ロボット100は、目的地に移動するときに前方の障害物800を識別してよい。コンピュータシステム100は、第2アルゴリズムによる経路計画に基づいて、識別された障害物30を回避するための迂回経路が所定の回避範囲を逸脱するかどうかを判定してよい。例えば、コンピュータシステム100は、迂回経路を移動する場合にロボット100が移動する追加の距離が所定の値以上であったり、迂回経路を移動する場合にロボット100が現在地から一定の半径以上を離脱する場合、迂回経路が所定の回避範囲を逸脱したと判定してよい。このとき、第1アルゴリズムによる制御命令は無視し、障害物30を回避せずに停止するようにロボット100を制御してよい。
【0129】
または、コンピュータシステムは、空間10に対して構築されたマップに基づいた経路計画にしたがい、ロボット100が障害物30を回避するために、目的地までの経路として、障害物30を無視してロボット100の現在地または出発地から目的地までの経路を連結した経路を所定の値以上に逸脱しなければならない場合、ロボット100が回避範囲を逸脱せずには障害物30を回避できないと判定してよい。
【0130】
例えば、コンピュータシステムは、空間10に対して構築されたマップを基盤として、ロボット100が、ロボット100の現在地または出発地から目的地までの直線から所定の第2距離以上を逸脱することなく障害物100を回避して目的地に移動できるかどうかを判定してよい。前記直線は、現在地または出発地から目的地までの経路(global path)に該当してよい。コンピュータシステムは、ロボット100が第2距離以上を逸脱せずには障害物30を回避して目的地に移動できないと判定された場合、障害物30を前で停止するようにロボット100を制御してよい。
【0131】
これと関連して、図10は、一例における、ロボットが障害物を回避するために目的地までの経路に対して所定の回避範囲を逸脱するかどうかによって、ロボットの目的地までの移動を制御する方法を示した図である。
【0132】
図に示したポイント1010は出発地またはロボット100の現在地であってよく、ポイント1020は目的地であってよい。ポイント1010とポイント1020を連結する直線は、上述した直線に該当してよい。このような直線から垂線の足を下して所定の第2距離が定められてよい。第2距離は、ロボット100またはロボット制御システム120の管理者によって設定される値である回避範囲であって、例えば、1mであってよい。
【0133】
ロボットが前記直線からの第2距離を逸脱せずに障害物1030を回避しながら目的地1020に移動できると判定された場合、ロボット100は、第1アルゴリズムに基づいて目的地まで移動するように制御されてよく、そうでない場合、ロボット100は、障害物1030を回避せずに障害物1030の前で停止するように制御されてよい。一方、障害物1030を迂回するための迂回経路1が存在したとしても、このような迂回経路1の利用は前記直線から第2距離を逸脱するものであるため、考慮されないようにしてよい。
【0134】
図に示した実施形態では、回避範囲内において、第1アルゴリズムによる制御にしたがって回避が可能な障害物1030は、ロボット100が第1アルゴリズムによる制御によって容易に回避できるほどに小さい障害物として見なされてよい。
【0135】
段階720で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、所定の禁止区域に侵入することなく障害物30を回避してロボット100が目的地まで移動できるかどうかを判定してよい。禁止区域は、ロボット100またはロボット制御システム120の管理者によって設定されるものであって、ロボット100の侵入が許容されない空間10内の領域であってよい。
【0136】
コンピュータシステムは、ロボット100が禁止区域に侵入せずに障害物30を回避して目的地まで移動できる場合、第1アルゴリズムによって目的地まで移動するようにロボット100を制御してよい。コンピュータシステムは、ロボット100が禁止区域に侵入せずには障害物30を回避して目的地に移動できない場合、または禁止区域に侵入しないために所定の距離以上を迂回しなければならない場合には、障害物30の前で停止するようにロボット100を制御してよい。
【0137】
これと関連して、図9は、一例における、ロボットが障害物を回避するために所定の禁止区域に侵入するかどうかによって、ロボットの目的地までの移動を制御する方法を示した図である。
【0138】
禁止区域900は、ロボット100またはロボット制御システム120の管理者によって設定されるものであって、例えば、トイレ、ロボット100の非作業空間、その他の制限区域であってよい。禁止区域900は、空間10に対して生成されるマップ上で識別されてよい。したがって、第2アルゴリズムによる経路計画に基づいて、ロボット100が障害物800を回避するために禁止区域900に侵入するかどうかを判定することができる。図に示すように、ロボット100が禁止区域900に侵入せずには障害物800を回避して目的地に移動できない場合には、障害物800の前で停止するようにロボット100を制御してよい。
【0139】
段階730で、コンピュータシステムは、ロボット100の目的地までの移動中に障害物30が識別された場合、第2アルゴリズムによる経路計画に基づいて、ロボット100が後進することなく障害物30を回避して目的地まで移動できるかどうかを判定してよい。ロボット100が障害物30を回避するために後進しなければならないと判定された場合、コンピュータシステムは、障害物30の前で停止するようにロボット100を制御してよい。このように、実施形態では、障害物30を回避するための迂回経路がロボット100の後進を必要とする場合、このような迂回経路は、ロボット100の移動制御において考慮されないようにしてよい。
【0140】
以上、図1~6および図12を参照しながら説明した技術的特徴は、図7~10にもそのまま適用されるため、重複する説明は省略する。
【0141】
図11は、一例における、ロボットの整列が求められる領域においてロボットの移動を制御する方法を示した図である。
【0142】
上述したとおり、ロボット100が他の通路に迂回せずに回避できるほどに障害物1120が小さい場合には、ロボット100は、第1アルゴリズムによる制御にしたがって、他の通路に迂回したり障害物1120の前で停止したりせずに障害物1120を回避して目的地に移動するようにロボット100を制御してよい。
【0143】
例えば、図10を参照しながら説明した方法によって、第1アルゴリズムによる制御にしたがって回避できる障害物1120は、十分に小さい障害物1120であると判定されてよい。これにより、第2アルゴリズムによる判定として十分に小さい障害物1120は、第1アルゴリズムによる制御にしたがって回避し、そうでない障害物は、ロボット100の制御がインタラプトされて回避しないようにしてよい。
【0144】
または、障害物1120が十分に小さいかどうかは、ロボット100のセンサ部106によるセンシングによって、コンピュータシステムによって決定されてもよい。
【0145】
図に示した通路1110は、空間10内のロボット100の整列が求められる領域であってよい。または、通路1110は、狭小区域(confined/narrow area)であって、例えば、2台以上のロボットが(横方向に)並んで走行することができない幅をの領域であってよい。例えば、通路1110は、複数のロボットのそれぞれが一列に並んで順に通過することが求められる空間10内の区間であってもよい。
【0146】
例えば、通路1110は、宅配配達サービスを提供するロボット100が宅配物を受け取るための位置に移動するために整列する領域であってよい。
【0147】
コンピュータシステム100は、図6を参照しながら説明した段階620の判定結果にしたがって、通路110内で、ロボット100が他の通路に迂回せずに回避できるほどに小さい障害物1120に対しては、第1アルゴリズムによる制御にしたがって、他の通路に迂回せずに障害物1120を回避して目的地に移動するように制御してよい。
【0148】
このとき、コンピュータシステム100は、通路1110内で、ロボット100の前方に他のロボットが識別されたとき、ロボット100が他のロボットを追い越さずに他のロボットの後ろで待機するように制御してよい。言い換えれば、コンピュータシステム100は、通路1110内で、障害物30として他のロボットが識別される場合、このような他のロボットは十分に小さい障害物1120には該当しないと判断されるため、したがって、ロボット100は、他のロボットの後ろ、すなわち、他のロボットを前にして待機するように制御されてよい。したがって、通路1110内で、ロボットは、横入りをしたり他のロボットを追い越して無理やり目的地に向かって移動すせず整列しながら、ロボットがそれぞれ順に目的地に移動するようにすることができる。
【0149】
本実施形態は、通路1110に侵入するロボット100を軌跡追従(trajectory following)アルゴリズムによって制御する場合に比べて、通路1110における優れたロボット100の整列性能を達成することができる。軌跡追従アルゴリズムによってロボット100を制御する場合、ロボット100は、障害物が識別されると停止するため、回避することが可能な小さな障害物1120が識別されたときにも停止するという問題が生じることがある。さらに、ロボット100に対する測位誤差が発生し、ロボット1110が通路1110に隣接したときにロボット100の動きが提示するという問題が生じることもある。
【0150】
これに比べて、実施形態において、コンピュータシステム100は、識別される障害物30に対する第2アルゴリズムによる判定にしたがって、小さい障害物1120は第1アルゴリズムによる制御にしたがって回避することができ、そうでない障害物(例えば、他のロボット)は回避せずに障害物の前で停止するようにロボット100を制御することができる。
【0151】
以上、図1~10および図12を参照しながら説明した技術的特徴は、図11にもそのまま適用されるため、重複する説明は省略する。
【0152】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0153】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置(virtual equipmet)、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0154】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されたものであってもよいし、コンピュータソフトウエアの当業者に公知された使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0155】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0156】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付の特許請求の範囲に属する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】