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

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

▶ キヤノン株式会社の特許一覧

特開2024-178544情報処理装置、情報処理方法、移動体およびプログラム
<>
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図1
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図2
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図3
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図4
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図5
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図6
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図7
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図8
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図9
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図10
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図11
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図12
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図13
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図14
  • 特開-情報処理装置、情報処理方法、移動体およびプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178544
(43)【公開日】2024-12-25
(54)【発明の名称】情報処理装置、情報処理方法、移動体およびプログラム
(51)【国際特許分類】
   G08G 1/16 20060101AFI20241218BHJP
   G05D 1/43 20240101ALI20241218BHJP
【FI】
G08G1/16 C
G05D1/02 H
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023096751
(22)【出願日】2023-06-13
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100114775
【弁理士】
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【弁理士】
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100208580
【弁理士】
【氏名又は名称】三好 玲奈
(72)【発明者】
【氏名】岩渕 康平
【テーマコード(参考)】
5H181
5H301
【Fターム(参考)】
5H181AA27
5H181BB13
5H181CC03
5H181CC04
5H181CC12
5H181CC14
5H181CC15
5H181CC27
5H181FF04
5H181FF10
5H181FF22
5H181FF27
5H181FF32
5H181LL01
5H181LL02
5H181LL04
5H181LL07
5H181LL08
5H181LL09
5H301AA01
5H301BB05
5H301BB14
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
5H301GG12
5H301GG14
5H301LL02
5H301LL03
5H301LL06
5H301LL11
5H301LL14
(57)【要約】
【課題】移動体の走行の自由度を高める技術を提供する。
【解決手段】情報処理装置100は、移動体107の制御のための環境情報を含む制御関連情報を取得し(S401)、移動体107の走行のために従うべき走行ルールを、制御関連情報に基づいて、調整する(S403)。そして、情報処理装置は、調整された走行ルールを含む走行制御情報に基づいて移動体の駆動を制御する。制御関連情報には、例えば、地図情報、移動体の動作情報、障害物の動作情報、移動体固有情報、路面構成情報、走行履歴情報などが含まれる。
【選択図】図4

【特許請求の範囲】
【請求項1】
移動体の制御のための環境情報を含む制御関連情報を取得する取得手段と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する調整手段と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段と、を有することを特徴とする情報処理装置。
【請求項2】
前記走行ルールの情報は、可変なルールパラメータを含み、
前記調整手段は、前記ルールパラメータを調整する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記調整手段は、前記移動体が走行する通路において前記移動体の周囲に存在する障害物の、前記通路上の偏りに基づいて前記ルールパラメータを調整する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記調整手段は、前記移動体の周囲に存在する障害物の密度に基づいて前記ルールパラメータを調整する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記調整手段は、所定の条件に基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記調整手段は、前記所定の条件として、前回の前記走行ルールの調整からの経過時間、前記制御関連情報のうち前記移動体の動作情報、および、前記移動体の周囲に存在する障害物の動作情報の、少なくとも1つに基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記調整手段は、前記所定の条件として、前回の前記走行ルールの調整からの経過時間、前記制御関連情報のうち前記移動体の固有情報、および、前記制御関連情報のうち前記移動体の走行経路の路面構成情報の少なくとも1つに基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項8】
前記調整手段は、前記走行ルールを調整すると判定した場合、前記移動体の固有情報および前記路面構成情報に基づいて前記移動体の速度を算出し、前記移動体の速度に基づいて前記走行ルールを調整する
ことを特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記調整手段は、前記走行ルールの調整処理における計算の入力値に対して重みづけを行う
ことを特徴とする請求項1に記載の情報処理装置。
【請求項10】
前記調整手段は、前記制御関連情報のうち、前記移動体および前記移動体の周囲に存在する障害物のそれぞれの移動履歴に基づく走行履歴情報に基づいて前記走行ルールを調整する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項11】
前記調整手段は、所定の条件に基づいて前記走行ルールの前記ルールパラメータをデフォルト値に設定する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項12】
前記調整手段は、前記所定の条件として、前回の前記ルールパラメータの調整からの経過時間、および、前記制御関連情報のうち前記移動体の動作情報の少なくとも一方に基づいて前記ルールパラメータを前記デフォルト値に設定する
ことを特徴とする請求項11に記載の情報処理装置。
【請求項13】
前記制御手段の制御により前記移動体の駆動が実行される前に、前記移動体の駆動状態を変更することを通知する通知手段、をさらに有することを特徴とする請求項1に記載の情報処理装置。
【請求項14】
前記調整手段は、前記走行ルールを、前記移動体および前記移動体の周囲の物体をノードとする無向グラフとして取得する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項15】
前記無向グラフは、前記ノード間を結ぶ関係線を前記ルールパラメータとして含み、
前記関係線の長さは、前記移動体および前記周囲の物体間の距離を示す
ことを特徴とする請求項14に記載の情報処理装置。
【請求項16】
前記制御関連情報および前記走行制御情報はそれぞれ地図情報をさらに含む
ことを特徴とする請求項1に記載の情報処理装置。
【請求項17】
情報処理装置によって走行が制御される移動体であって、
前記情報処理装置は、
前記移動体の制御のための環境情報を含む制御関連情報を取得する取得手段と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する調整手段と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段と、を有することを特徴とする移動体。
【請求項18】
移動体の制御のための環境情報を含む制御関連情報を取得する工程と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する工程と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する工程と、を有することを特徴とする情報処理方法。
【請求項19】
移動体の走行を制御する情報処理装置に実行させるプログラムであって、
前記移動体の制御のための環境情報を含む制御関連情報を取得する工程と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する工程と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する工程と、を前記情報処理装置に実行させるプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、移動体の走行を制御する技術に関する。
【背景技術】
【0002】
従来から、移動体の自動走行や運転支援の技術が数多く提案されている。例えば特許文献1に記載の運転支援装置は、自車両と先行車両との車間距離を目標値に維持する追従車間距離制御(ACC:Adaptive Cruise Control)の技術を利用する。この運転支援装置は、運転者による操作ボタンの操作によってACCにおける目標走行条件(目標車間距離に相当)の変更要求の信号が発生した場合に、特定の条件下でその変更要求を許可する制御を実行する。
【0003】
ところで、施設内を移動する移動体として、例えば商業施設における警備ロボットや、飲食店における配膳ロボットなどが知られている。このような、主に人と移動空間を共有する移動体は、右側通行あるいは左側通行で移動するなど、所定のルールに基づいて走行する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-26154号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、施設内などにおいて人等の障害物の位置や動きに法則性が少ない環境では、移動ロボットが厳密にルールを守ろうとすると、かえって移動ロボットの作業効率が低下するおそれがあり、また、障害物との衝突の危険性もある。したがって、移動体の走行ルールを適時変更できることが望ましいが、特許文献1のように、外部から(運転者の操作により)与えられた信号によって走行条件を変更する技術では、移動ロボットの走行の自由度が低くなる。
【0006】
そこで本開示は、移動体の走行の自由度を高める技術を提供する。
【課題を解決するための手段】
【0007】
本開示の一形態に係る情報処理装置は、移動体の制御のための環境情報を含む制御関連情報を取得する取得手段と、前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する調整手段と、調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段と、を有することを特徴とする。
【発明の効果】
【0008】
本開示によれば、移動体の走行の自由度を高めることができる。
【図面の簡単な説明】
【0009】
図1】(A)は第1実施形態に係る移動体の構成を示す図であり、(B)は情報処理装置のハードウェア構成を示す図である。
図2】情報処理装置の機能構成の一例を示すブロック図である。
図3】第1実施形態における走行ルールテーブルの例を示す図である。
図4】(A)は走行ルールの調整処理を示すフローチャートであり、(B)は当該調整処理を実行するか否かの判定処理を示すフローチャートである。
図5】複数の障害物の偏りを説明するための図である。
図6】駆動制御情報の生成処理を示すフローチャートである。
図7】第2実施形態において、移動体固有情報および路面構成情報を利用した走行ルールの調整処理を実行するか否かの判定処理を示すフローチャートである。
図8】第3実施形態における走行傾向テーブルの例を示す図である。
図9】第4実施形態における走行ルールテーブルの例を示す図である。
図10】第4実施形態において、走行ルールを調整する処理を説明するフローチャートである。
図11】第6実施形態におけるオブジェクト位置関係グラフの例を示す図である。
図12】第6実施形態におけるオブジェクトテーブルの例を示す図である。
図13】第6実施形態における位置関係情報テーブルの例を示す図である。
図14】第6実施形態において、走行ルールを調整する処理を説明するフローチャートである。
図15】第6実施形態において、駆動制御情報を生成する処理を説明するフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本開示の実施形態を説明する。図において同一の構成または機能を有するものは同一の符号を付し、その繰り返しの説明は省略する。以下の実施形態において示す構成は一例に過ぎず、本開示は、図示された構成に限定されるものではない。
【0011】
<第1実施形態>
図1(A)は、第1実施形態に係る移動体の構成を示す図である。移動体107は、例えばAMR(Autonomous Mobile Robot)、あるいはAGV(Automated Guided Vehicle)等の移動ロボットである。本実施形態では、移動体107は例えば施設内を移動することを想定している。施設内とは、屋内(建物内)か屋外(建物外)かを問わず、当該施設が所在する土地内という意味である。
【0012】
移動体107は、情報処理装置100を搭載している。移動体107は、後述するセンサ105を用いて、移動体107の周囲に存在する障害物を検知し、移動体107と障害物との距離が所定の距離(以下、近接限界距離と記す)を下回った場合、回避行動をとることが可能となっている。
【0013】
障害物とは、本実施形態では、主に動く対象を想定しており、特にそれは人である。障害物は人に限らず、動物、他のロボットも含まれる。障害物は動く対象に限らず、走行経路上に一時的に置かれた物等を含んでもよい。障害物は、1以上を想定しているが、1つだけ存在する状況より、複数ある状況の方が多いことが想定される。
【0014】
図1(B)は、情報処理装置100のハードウェア構成を示す図である。情報処理装置100は、CPU(Central Processing Unit)101、ROM(Read-Only Memory)102、RAM(Random Access Memory)103を有している。また、情報処理装置は、ストレージ104およびセンサ105を有している。これら各要素はシステムバス106により互いに接続される。
【0015】
CPU101は、各種処理のための演算や論理判断等を行い、システムバス106に接続された各要素を制御する。CPU101の代わりに、FPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)が用いられてもよい。あるいはASIC(Application Specific Integrated Circuit)が用いられてもよい。あるいは、DSP(Digital Signal Processor)等が利用されてもよい。
ROM(Read-Only Memory)102は、プログラムメモリであり、情報処理装置100において実行される各種処理手順を含む、CPU101による制御のためのプログラムを格納する。
RAM(Random Access Memory)103は、CPU101の主メモリやワークエリア等の一時記憶領域として用いられる。
なお、プログラムメモリはROM102に限らず、情報処理装置100に有線または無線で接続された不図示の外部記憶装置であってもよい。この場合、情報処理装置100は、外部記憶装置からRAM103にプログラムをロードする。
【0016】
ストレージ104は、電子データやプログラムを記憶しておくための補助記憶装置である。補助記憶装置の例としてハードディスクドライブやソリッドステートドライブが知られている。ストレージ104と同様の役割を果たす外部記憶装置が用いられてもよい。当該ストレージ104の代替の外部記憶装置は、例えば、メディア(記録媒体)と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク(FD)、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)等が知られている。あるいは、MO(Magneto-Optical Disk)、フラッシュメモリ等でもよい。あるいは、外部記憶装置は、ネットワークで接続された記憶装置やサーバ装置等であってもよい。
【0017】
センサ105は、主に、移動体107の速度および進行方向の情報の取得、また、移動体107の周囲に存在する障害物の検知およびその動作情報の取得を行うデバイスである。センサ105は複数種類のデバイスから構成されていてもよい。
障害物の動作情報とは、主に障害物の位置、速度および進行方向であり、典型的には、移動体107に対する障害物の相対位置、相対速度および相対的な進行方向を意味する。障害物の相対位置は、移動体107と障害物との距離にも相当する。
また障害物の動作情報は、さらに障害物の数や密度も含んでいてもよい。障害物の密度とは、センサ105で取得される、一定空間内に存在する障害物の数である。
【0018】
移動体107の位置情報については、後述するように、例えば自己位置推定の技術により取得され得る。以下では、移動体107の位置、速度および進行方向の情報を、移動体107の動作情報という場合もある。
【0019】
移動体107の速度や進行方向を検知するセンサ105の例として、例えばIMU(Inertial Measurement Unit)が挙げられる。IMUによって移動体107の傾きや角速度も検出され得る。速度を検知するセンサ105はIMUに限らず、移動体107の走行のための駆動を行う不図示のモータの回転数を検出するエンコーダ等であってもよい。
【0020】
例えば、障害物の動作情報を取得するためのセンサ105の例として、LiDAR(Light Detection and Ranging, Laser Imaging Detection and Ranging)や、カメラがある。カメラとしては、パッシブステレオカメラが用いられ得る。LiDARは照射したレーザの反射光から障害物の有無を検知する。カメラは、ステレオ画像内の特徴点の距離値から障害物の有無を検知する。
【0021】
障害物の動作情報の取得に用いられるセンサ105の例として、LiDARやドップラーレーダーがある。LiDARやドップラーレーダーは移動体107に対する障害物の相対位置、相対速度および相対的な進行方向の情報を取得する。
なお、情報処理装置100は、移動体の動作情報を取得し、カメラやその他のセンサで得られる障害物の情報に基づき、障害物の相対位置、相対速度、および相対的な進行方向を取得(算出)してもよい。
【0022】
移動体107が荷物を積載して運搬するロボットである場合、センサ105はその重量を検知するデバイスを含んでいてもよい。
【0023】
図2は、情報処理装置100の機能構成の一例を示すブロック図である。情報処理装置100は、走行制御情報管理部201、制御関連情報取得部202、走行ルール調整部203、駆動制御情報生成部204、および駆動制御部205を含む。
【0024】
走行制御情報管理部201は走行制御情報を管理する。走行制御情報は、主に走行ルールの情報を含み、また地図情報も含む。
地図情報は、移動体107の走行経路の情報、および、移動体107の走行経路周辺の地形を表す地形情報を含む。地図情報は、予めストレージ104や上記の外部記憶装置に記憶されている。情報処理装置100は、SLAM(Simultaneous Localization and Mapping)等の技術を用いてリアルタイムで地形情報を生成して取得するようにしてもよい。
走行経路とは、移動体が走行する経路や道順である。
地形とは、経路を構成する地面、壁および柱などの形状である。
走行ルールは、移動体107が走行のために従うべきルールである。走行ルールは、駆動制御情報生成部204による駆動制御情報(移動体107の駆動状態を制御するための情報)の生成のために使用される。
【0025】
制御関連情報取得部202は、移動体107の制御のための制御関連情報を取得する。制御関連情報取得部202は、CPU101等のハードウェアとの協働により、制御関連情報を取得する取得手段として機能する。制御関連情報は、以下の各情報を含む。
地図情報
移動体の動作情報
障害物の動作情報
移動体固有情報
路面構成情報
走行履歴情報
【0026】
上記制御関連情報の少なくとも地図情報および障害物の動作情報は、環境情報(移動体107の周囲の環境情報)に含まれる。
移動体固有情報とは、移動体107に固有の情報であり、例えば、移動体107の幅、重量、積載している積載物の重量、障害物の検知範囲の距離、および/または、バッテリ残量等の情報である。
【0027】
路面構成情報とは、走行経路上の路面の構成情報であり、例えば、路面の摩擦係数、路面の凹凸、および/または、路面の勾配等の情報である。路面の摩擦係数は、路面の材質による他、路面の乾燥度(乾いている時と濡れている時との違い)にもよる。
【0028】
走行履歴情報とは、移動体107および移動体107の周囲に存在する障害物のそれぞれの移動履歴に基づく情報である。
【0029】
走行ルール調整部203は、走行制御情報管理部201から走行ルールを取得し、制御関連情報取得部202で取得された制御御関連情報に基づいて、取得した走行ルールを調整する。走行ルール調整部203は、CPU101等のハードウェアとの協働により、走行ルールを取得し、取得した走行ルールを調整する調整手段として機能する。
【0030】
駆動制御情報生成部204は、走行ルール調整部203により調整された走行ルールを含む走行制御情報に基づいて駆動制御情報を生成する。
駆動制御情報は、走行経路からどの程度左右にずれて走行するかを表す補正量(以下、走行経路補正量と記す)および移動体107の速度を少なくとも含み、障害物との近接限界距離、または移動体107の上限速度などを含む。
【0031】
駆動制御部205は、駆動制御情報に基づいて移動体107の駆動制御を行う。駆動制御部205からの制御信号は、移動体107を駆動する各種モータなどの駆動機構(不図示)に入力される。
【0032】
駆動制御情報生成部204、および/または、駆動制御部205は、CPU101等のハードウェアとの協働により、調整された走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段として機能する。
【0033】
情報処理装置100は、図2に示す機能の他、移動体107の位置情報を取得する機能を備えている。具体的には、情報処理装置100は、ROM102あるいはストレージ104等に自己位置推定を行うプログラムを記憶しており、これにより移動体107の位置情報を取得する。自己位置推定として例えばSLAMが用いられる。あるいは、情報処理装置100は、位置情報を取得するセンサ105として、GNSS(Global Navigation Satellite System)センサを有していてもよい。この場合、上記地図情報が地球の座標系における地図情報と対応付けされている必要がある。
【0034】
図3は、走行制御情報管理部201が走行ルールを管理するために用いる走行ルールテーブルの例を示す図である。走行ルールテーブル300は、ストレージ104または外部記憶装置に予め記憶されている。
【0035】
走行ルールID301には、走行ルールテーブル300に格納された走行ルールを一意に識別するためのIDが記述される。
走行ルール302には、走行ルールの内容であって、駆動制御情報生成部204に送られる指示の内容が記述される。走行ルールの内容としては、例えば次の5つが設定されている。
【0036】
走行ルールID「1」は「通路の{左側}を走行する」である。
走行ルールID「2」は「障害物と{1.0}mの間隔を空ける」である。
走行ルールID「3」は「速度{4.0}km/hで走行する」である。
走行ルールID「4」は「移動可能な障害物と進路が交錯する場合、{2km/hに減速}する」である。
走行ルールID「5」は「{直前に減速して}曲がる」である。
【0037】
走行ルール302内の波括弧{}内はルールパラメータを表す。ルールパラメータは、例えば走行ルール調整部203によって設定され得る可変値である。初期状態では、ルールパラメータには所定のデフォルト値が設定されている。
【0038】
図4(A)は、走行ルール調整部203が走行ルールを調整する処理を示すフローチャートである。本処理では、CPU101が処理内容に応じたプログラムを、ROM102やストレージ104から読み出してRAM103にロードし、実行する(他の図に示すフローチャートでも同様)。本フローチャートで説明する処理は、例えば一定時間間隔で繰り返し実行される。移動体107から障害物までの距離や、移動体107の周囲に存在する障害物の密度に応じて、図4(A)に示す処理の実行間隔を変動させてもよい。
【0039】
S401では、走行ルール調整部203は、制御関連情報取得部202から、制御関連情報を取得する。本実施形態では、制御関連情報のうち、例えば移動体107の動作情報、および移動体107の周囲の環境情報(例えば地図情報および障害物の動作情報)が取得される。
【0040】
S402では、走行ルール調整部203は、走行ルールの調整を行うか否かを判定する。走行ルールの調整を行う場合、S403に進む。走行ルールの調整を行わない場合、処理を終了する。図4(B)は、S402で走行ルールの調整処理を実行するか否かの判定処理を示すフローチャートである。
【0041】
S4021では、走行ルール調整部203は、前回走行ルールの調整が行われてから所定の時間経過しているかを確認する。所定の時間が経過している場合、S4022に進む。所定の時間が経過していない場合、走行ルール調整部203は走行ルールの調整を行わないと判定する。走行ルール調整部203は、当該経過時間と合わせて、前回走行ルールの調整が行われた地点から移動体107が所定の距離以上移動しているかを確認してもよい。その場合、所定の時間以上経過しており、かつ、所定の距離以上移動している場合、次のステップに進めばよい。それ以外の場合、走行ルール調整部203は走行ルールの調整を行わないと判定する。
【0042】
S4022では、走行ルール調整部203は、移動体107が障害物や曲がり角や扉などから所定の距離以上離れているかを確認する。移動体107が障害物や曲がり角や扉などから所定の距離以上離れているかの情報は、移動体107の動作情報のうち位置の一例である。移動体107が所定の距離以上離れている場合、S4023に進む。離れていない場合、走行ルールの調整を行わないと判定される。
【0043】
S4023では、走行ルール調整部203は、障害物に関する以下に列挙する条件を満たすかを確認する。それらの少なくとも1つの条件が成立している場合に、走行ルールの調整を行うと判定される。成立している条件が存在しない場合、走行ルールの調整を行わないと判定される。
【0044】
S4023において、1つ目の条件は、移動体107の周囲に存在する障害物の動作に変化があった場合に成立する。具体的にはそれは、移動体107の周囲に存在する障害物のうち、前回走行ルールの調整が行われた後に、障害物の動作が閾値以上変化した障害物が1つ以上ある場合に、成立する条件である。障害物の動作が閾値以上変化するとは、障害物の位置、速度および進行方向の少なくとも1つが閾値以上変化することを意味する。
【0045】
S4023において、2つ目の条件は、移動体107の周囲に存在する障害物の数が増加または減少した場合に成立する。
【0046】
なお、S402における判定処理は、所定の条件に基づいて走行ルールを調整するか否かを判定する処理の一例である。また、本処理は、S4021~S4023の順序に限らず、これと異なっていてもよい。
【0047】
図4(A)の説明に戻る。S403では、走行ルール調整部203は、走行ルールを調整する。具体的には、走行ルール調整部203は、走行ルールテーブル300における各走行ルールに対して、以下に例示するようなルールパラメータの調整処理を実行する。
【0048】
走行ルールIDが「1」である走行ルールについては、走行ルール調整部203は、まず、走行制御情報管理部201から地図情報を取得する。次に走行ルール調整部203は、制御関連情報取得部202から、移動体107の周囲に存在する障害物の動作情報を取得する。次に走行ルール調整部203は、各障害物と通路の左右側端との位置関係を求める。通路の左右側端とは、典型的には側壁である。あるいは、側壁にほぼ接するように物が置かれている場合は、その物である。
【0049】
そして走行ルール調整部203は、通路左右のいずれか一方側に障害物の偏りがある場合、走行ルールID「1」のルールパラメータとして、通路左右のうち偏りがある方(あるいは偏りが大きい方。以下同様。)を設定する。偏りがある方が設定される理由については後述する。
【0050】
ここで偏りとは、例えば、通路の幅をW、ある1つの障害物と左側端までの距離をDleft、当該障害物と右側端までの距離をDrightとすると、Dleft/WおよびDright/Wにより導出される値である。それら両値のうち小さい方が閾値を下回る場合、障害物は通路左右のうち一方側に寄っている(偏りがある)と判定される。偏りがない(あるいは偏りが小さい。以下同様。)と判定された場合、ルールパラメータの調整は行われない。
【0051】
上記は、単数の障害物の偏りについて説明した。障害物が複数の場合も、走行ルール調整部203は、上記方法によって個々の障害物の偏りを算出し、算出したそれらの偏りに基づいてそれら障害物全体の偏りを算出する。複数の障害物とは、センサ105による検知範囲内の距離にある複数の障害物を意味する。例えば、走行ルール調整部203は、偏りがある障害物110の数の割合が閾値以下であれば、偏りがないと判定し、当該割合が閾値を超えれば、偏りがあると判定する。
【0052】
図5は、複数の障害物(ここでは人や他のロボット)の偏りを説明するための図である。図5の左は、障害物110全体に偏りがない状態を示し、図5の右は障害物110全体に偏りがある状態を示す。矢印は障害物の進行方向を示す。
【0053】
本実施形態は、主に人である障害物110と移動体107とが空間を共有する場合に、移動体107が周囲の障害物110の動きに合わせて自装置の移動方法を調整することを目的の1つとしている。したがって、図5の右に示すように例えば通路150の左側に複数の障害物110の偏りがあり、同一の進行方向に移動している場合、情報処理装置100は、この通路150は現在、左側通行のルールがあると推定する。そして、移動体107もそのルールに則って、左側を同一の進行方向に走行する。なお、障害物110の進行方向も障害物の動作情報の1つであり、制御関連情報取得部202によって進行方向の情報が取得される。
【0054】
以上、本実施形態では、障害物の偏りの判定を実行することの前提条件として、検知された障害物が移動体107の進行方向と同じ方向に移動しているケースを想定した。これに対して、1以上の障害物の進行方向が移動体107のそれとは逆方向の場合は、障害物の偏りがある側とは逆側が、走行ルールID「1」のルールパラメータとして設定され得る。この場合、まず走行ルール調整部203は、1以上の障害物の進行方向が自装置とは逆方向であることの情報を制御関連情報取得部202から取得する。そして、走行ルール調整部203は、上記同様にその1以上の障害物の偏りを算出し、偏りがある場合、偏りがある側とは逆側をルールパラメータとして設定する。
【0055】
走行ルールIDが「2」である走行ルールについては、走行ルール調整部203は、まず、制御関連情報取得部202から障害物の密度を取得する。次に走行ルール調整部203は、取得した障害物の密度に基づいて移動体107と障害物の近接限界距離を決定する。そして走行ルール調整部203は、走行ルールID「2」のルールパラメータとして、移動体107と障害物の近接限界距離を設定する。例えば密度が大きいほど、接近限界距離が小さく設定されることにより、移動体107が頻繁に障害物を検知して回避行動等をとってしまい、作業効率が低下することを防ぐことができる。設定される近接限界距離は、「障害物の密度」と「近接限界距離」のルックアップテーブルを用いて決定されてもよい。あるいは近接限界距離は、「障害物の密度」をパラメータとする「移動体107と障害物の近接限界距離」の関数を用いて決定されてもよい。
【0056】
走行ルールIDが「3」である走行ルールについては、走行ルール調整部203は、まず、制御関連情報取得部202から移動体107の周囲に存在する障害物の密度を取得する。次に走行ルール調整部203は、取得した障害物の密度に基づいて、移動体107の速度を決定する。そして走行ルール調整部203は、走行ルールID「3」のルールパラメータとして、移動体107の速度を設定する。例えば障害物の密度が大きいほど、速度が小さく設定されることにより、移動体107と障害物の衝突の危険性を少なくすることができる。設定される移動体107の速度は、「障害物の密度」と「移動体107の速度」のルックアップテーブルを用いて決定されてもよいし、「障害物の密度」をパラメータとする「移動体107の速度」の関数を用いて決定されてもよい。あるいは、設定される移動体107の速度は、障害物の密度の代わりに移動体107の最近傍に存在する障害物との距離に基づいて決定されてもよい。
【0057】
なお、各ルールパラメータに設定可能な値の選択肢または範囲には制限が設けられていてもよい。
【0058】
図6は、駆動制御情報生成部204が駆動制御情報を生成する処理を示すフローチャートである。本処理は、走行ルール調整部203により走行ルールが調整されるたびに実行される。
【0059】
S501では、駆動制御情報生成部204は、走行制御情報管理部201から走行制御情報(地図情報および走行ルール)を取得する。
【0060】
S502では、駆動制御情報生成部204は、走行ルールに基づいて駆動制御情報を生成する。具体的には、各走行ルールについて以下に例示するような駆動制御情報の生成処理を実行する。
【0061】
走行ルールIDが「1」である走行ルールについては、駆動制御情報生成部204は、次の駆動制御情報を生成する。駆動制御情報生成部204は、地図情報、ルールパラメータ(「左側」または「右側」)、移動体107と通路の側端との距離等に基づいて、走行経路の各地点における走行経路補正量を求め、これを駆動制御情報とする。移動体107と通路の側端との距離は、定数値、または、「走行経路上の各地点」をパラメータとした「通路の側端との距離」の関数で表される値である。
なお、駆動制御情報生成部204は、走行経路補正量をルールパラメータのバリエーション(「左側」または「右側」)ごとにあらかじめ求めておき、そのルールパラメータに対応する走行経路補正量を取得するようにしてもよい。
【0062】
走行ルールIDが「2」である走行ルールについては、ルールパラメータ「障害物との近接限界距離」が駆動制御情報として用いられる。
【0063】
走行ルールIDが「3」である走行ルールについては、ルールパラメータ「移動体の速度」が駆動制御情報として用いられる。
【0064】
以上説明したように、本実施形態に係る情報処理装置100は、制御関連情報として、特に、移動体107の周囲に存在する障害物の動作情報に基づいて、走行ルールを調整している。すなわち、情報処理装置100は周囲の状況に応じて自律的に走行ルールを調整するので、移動体107の走行の自由度を高めることができる。これにより、移動体107の作業効率あるいは業務効率を向上させることができ、また障害物との衝突の可能性を抑え、安全性を向上させることができる。
【0065】
(重みづけの処理)
第1実施形態において、走行ルール調整部203は、走行ルールの調整処理における計算の入力値に対して重みづけを行ってもよい。例えば、移動体107との距離(相対位置)が近い障害物ほど、重みが大きく設定される。これにより、移動体107に近い障害物ほど、つまり、移動体107の挙動に影響を及ぼす可能性が高い障害物ほど、その障害物が走行ルールの調整結果に寄与する割合を大きくすることができる。以下、図3に示す走行ルールテーブル300におけるルールパラメータの調整処理において重みづけを行う例を説明する。
【0066】
走行ルールIDが「1」である走行ルールのルールパラメータの調整処理では、通路における障害物の位置の偏りを計算する場合に、移動体107から障害物までの距離に基づいて障害物の重みを変化させる。例えばこの距離が小さいほど、重みは大きく設定される。具体的には、走行ルール調整部203は、対象とされる障害物までの距離に基づく重み係数を算出し、当該障害物の偏りを算出し、その算出した偏りに前記算出した重み係数を設定する。周囲に複数の障害物が存在する場合には、障害物ごとに重みが設定されればよい。
【0067】
走行ルールIDが「2」または「3」である走行ルールのルールパラメータの調整処理では、移動体107の周囲に存在する障害物の密度を取得する場合に、移動体107とその周囲に存在する各障害物との距離に基づいて障害物の重みを変化させる。例えばこの距離が小さいほど、重みは大きく設定される。具体的には、走行ルール調整部203は、対象とされる障害物までの距離に基づく重み係数を算出し、当該障害物の密度を算出し、その算出した密度に前記算出した重み係数を設定する。周囲に複数の障害物が存在する場合には、障害物ごとに重みが設定されればよい。
【0068】
なお、重みづけの対象となる値は、障害物の偏りや密度だけでなく、障害物の速度や進行方向であってもよい。
【0069】
<第2実施形態>
上記第1実施形態では、走行ルール調整部203は、図4に示した走行ルールの調整処理において、制御関連情報として、障害物の動作情報を利用した。しかし、第2実施形態に係る調整処理では、その障害物の動作情報の利用に加え、またはその代わりに、移動体固有情報および/または路面構成情報をさらに利用することもできる。移動体固有情報のうち、移動体107の幅、重量、障害物の検知範囲などは固定値であり、検知範囲はセンサ105の能力やソフトウェア構成による。
【0070】
以下において、走行ルール調整部203が移動体固有情報および路面構成情報を利用して走行ルールを調整するか否かを判定する処理について説明する。図7は、その処理を示すフローチャートである。本処理において、図4(B)のS4021~S4023については図4(B)と同様であるので、その説明を省略する。
【0071】
本処理では、S4023の後にさらに条件が追加されている。S7001では、走行ルール調整部203は、前回走行ルールの調整が行われてから、移動体固有情報および路面構成情報の少なくとも1つに変化があったかを確認する。
【0072】
なお、以上の判定処理は、調整手段が、移動体の固有情報、および、前記移動体の走行経路の路面構成情報の少なくとも一方に基づいて走行ルールを調整するか否かを判定する処理の一例である。また、本処理は、S4021、S4022、S4023、S7001、の順序に限らず、これと異なっていてもよい。例えば、S7001とS4023の順序は逆であってもよい。
【0073】
以下では、走行ルール調整部203が、例えば移動体固有情報および路面構成情報をさらに利用して、図3に示す走行ルールのルールパラメータを調整する処理の例について説明する。以下に示す走行ルールID「3」、「4」、「5」の各ルールパラメータの調整処理は、調整手段が、走行ルールを調整すると判定した場合、移動体の固有情報および路面構成情報に基づいて移動体の速度を算出する処理の各例である。
【0074】
例えば路面構成情報に変化があった場合、走行ルールIDが「3」である走行ルールのルールパラメータを調整する場合について説明する。走行ルール調整部203は、まず、路面構成情報から路面の摩擦係数を取得し、また、移動体固有情報から障害物の検知範囲の距離を取得する。特定の路面の状態における路面の摩擦係数は一般に知られている。
【0075】
一般に知られている以下の制動距離を求める関係式(下記の式1)を用いて、移動体107が障害物を検知してから検知した障害物に衝突する前に停止可能な速度vが算出される。そして、走行ルール調整部203は、走行ルールID「3」のルールパラメータに速度vを設定する。移動体107の制動距離が障害物の検知範囲の距離に相当するとして計算が行われる。
【0076】
制動距離(障害物の検知範囲の距離)=v^2 / (254 * 路面の摩擦係数)・・・式1
【0077】
一方、上記と同じく走行ルールIDが「3」である走行ルールについて、走行ルール調整部203は、まず走行制御情報管理部201から移動体107のバッテリを充電するための充電基地の位置を取得することもできる。充電基地の位置は例えば定位置として予め設定されており、それを記憶しておいてもよいし、充電基地や外部のサーバ等から送信される、充電基地の位置情報を含む信号を受信するようにしてもよい。
次に走行ルール調整部203は、移動体107の位置情報を取得し、移動体107のバッテリ残量の情報を取得する。次に走行ルール調整部203は、移動体107の位置と充電基地との距離を求める。次に走行ルール調整部203は、バッテリ残量および当該距離を鑑みて、移動体107の速度を求める。例えば、距離に対してバッテリ残量が少ない場合、バッテリを浪費しないよう駆動部の最も動作効率がよい速度が算出される。そして走行ルール調整部203は、走行ルールID「3」のルールパラメータに算出された移動体107の速度を設定する。
【0078】
走行ルールIDが「4」である走行ルールでは、走行ルール調整部203は、まず移動体107の周囲の環境情報のうちの地図情報から、移動体107の現在位置の路幅を取得する。次に走行ルール調整部203は、移動体固有情報のうち、移動体107の幅、重量を取得する。移動体107が積載物を有している場合、積載物の重量もさらに取得される。
次に走行ルール調整部203は、移動体107および障害物のそれぞれの進路が交錯する場合に、移動体107がとる挙動を決定する。具体的には、移動体107が進路をずらすことでしか衝突を回避できない場合、「進路をずらす」という挙動に決定される。衝突を回避可能な挙動が他にある場合、路幅と移動体107の幅が比較され、路幅より移動体107の幅が小さい場合、「進路をずらす」という挙動に決定される。路幅より移動体107の幅が大きい場合、「速度を下げる」という挙動に決定される。再加速に要するエネルギーをできるだけ小さくするため、このとき下げる速度の量は、移動体107の重量(または積載物の重量を合わせた総重量)に反比例するように決定される。また、路幅に対して移動体107の幅が大きい場合、「速度を上げる」という挙動に決定されてもよい。このとき加速に要するエネルギーをできるだけ小さくするため、上げる速度の量は、移動体107の総重量に反比例するように決定される。次に走行ルール調整部203は、走行ルールID「4」のルールパラメータに決定した挙動を設定する。
【0079】
走行ルールIDが「5」である走行ルールでは、走行ルール調整部203は、移動体固有情報のうち、移動体107の重量(移動体107が積載物を有する場合、さらに積載物の重量)を取得する。次に走行ルール調整部203は、移動体107が曲がり角を曲がる場合の挙動を決定する。具体的には、移動体107の総重量が閾値t1以上である場合、減速が最小限となるように曲がる方向の反対側に膨らむようにして(曲率半径を閾値以上として)、曲がり角を曲がるという挙動に決定される。これは、移動体107がなるべく減速しないようにするためであり、減速量が大きいと、移動体107の重量が大きいほど、再加速に大きなエネルギーが必要であるからである。移動体107の総重量が閾値t1より小さい場合、曲がり角の手前で一旦停止する、あるいは閾値以下まで減速して曲がる、という挙動に決定される。次に走行ルール調整部203は、走行ルールID「5」のルールパラメータに決定した挙動を設定する。
【0080】
同一の走行ルールIDに対して、異なるルールパラメータを持つ複数の調整処理が存在する場合、各調整処理に優先度が予め設定され、優先度に基づいて適用する調整処理が決定されればよい。この場合、制御関連情報に基づいて当該優先度が変更されてもよい。例えば上記では、走行ルールIDが「3」である走行ルールの調整処理を2つ例示した。例えば路面構成情報として、路面が濡れているまたは凍結していることの情報が取得された場合、前者の優先度が高く設定され、前者が適用される。一方、移動体107のバッテリ残量が閾値より低いことが検出された場合、後者の優先度が高く設定され、後者が適用される。
【0081】
<第3実施形態>
上記第1、第2実施形態では、制御関連情報として、地図情報の他、少なくとも障害物の動作情報が利用された。しかし、障害物の動作情報の利用に加え、またはその代わりに、移動体107の走行履歴情報を利用することもできる。走行履歴情報とは、上記したように、移動体107および移動体107の周囲に存在する障害物のそれぞれの移動履歴に基づく情報である。制御関連情報取得部202は、走行履歴情報として、移動体107や障害物が過去に通路のどちら側に寄って移動していたか、あるいは、通路に存在する障害物の密度、などの情報を時系列で記録する。走行履歴情報とは、移動体および障害物の移動履歴のそれぞれの情報の分析の結果、取得される情報であってもよい。
【0082】
情報処理装置100は、1日に1回など定期的に移動体107の走行履歴および障害物の移動履歴を分析し、それらの移動に関する傾向が蓄積される。移動体107や障害物の移動に関する傾向の例として、平日6:30から8:00まで通路Aでは障害物は左側通行をすることが多い、というものが考えられる。また、平日12:00から13:00まで通路Cでは移動体107がほとんど障害物と接近した履歴がなく、人通りがまばらである、というものが考えられる。
【0083】
図8は、移動体107および障害物の移動履歴を分析することで得られた走行傾向テーブルの例を示す図である。走行傾向テーブル600は、移動体107や障害物の移動に関する傾向を管理するために用いられる。走行傾向テーブルの例を走行傾向テーブル600の各行は1つの走行傾向を表す。
【0084】
走行傾向ID601には、走行傾向テーブル600に格納された走行傾向を一意に識別するためのIDが記述される。
時間帯602には、走行傾向が表れる時間帯が記述される。
場所603には、走行傾向が表れる場所が記述される。場所603の値は、地形情報と対応して場所の特定が可能な単語や、特定の領域を表す一連の座標情報である。
傾向種別604には、走行傾向の種別が記述される。なお、「近接頻度」とは、移動体107と障害物との距離が近接限界距離以下になる頻度である。
傾向605には、走行傾向の内容が記述される。
【0085】
以下で、走行ルール調整部203がこの走行傾向テーブル600を利用して、走行ルールのルールパラメータを調整する処理について説明する。
【0086】
走行ルール調整部203は、走行傾向テーブル600から現在の時刻を含む時間帯を持つ走行傾向の情報を取得する。走行ルール調整部203は、取得した時刻が平日6:30から8:00までの間の時刻である場合、その時刻に対応する走行傾向ID「1」の傾向の値「左側」を、図3に示す走行ルールID「1」のルールパラメータに設定する。
【0087】
一方、走行ルール調整部203は、取得した時刻が平日12:00から13:00までの間の時刻である場合、その時刻に対応する走行傾向ID「2」の傾向の値「0.02回/分」に反比例するような移動体107の速度を決定する。つまり、「近接頻度」が「0.02回/分」のように比較的低い値の場合、走行ルール調整部203は、移動体107の比較的高い速度値を、図3に示す走行ルールID「3」のルールパラメータに設定する。
【0088】
なお、走行傾向テーブル600において、現在時刻に対応する時間帯602がない場合、走行ルール調整部203は、上記第1、または第2実施形態に係る処理(主に障害物の動作情報などに基づく走行ルールの調整処理)を実行すればよい。
制御関連情報として障害物の動作情報(および地図情報)に基づいて、走行ルールの調整処理を実行すればよい。あるいは、走行傾向テーブル600に現在時刻に対応する時間帯602がある場合に、その現在時刻において、第1または第2実施形態に係る調整処理、および走行履歴情報に基づく調整処理のいずれか一方の処理を実行するかの判定が行われてもよい。その場合、当該判定は制御関連情報(特に、障害物の動作情報)に基づき行われればよい。
【0089】
<第4実施形態>
第1実施形態において、走行ルール調整部203は、走行ルールを調整した後、所定の条件を満たした場合に、走行ルールをデフォルト状態に戻すようにしてもよい。デフォルト状態とは、走行ルールのルールパラメータにデフォルト値が設定されている状態のことである。
【0090】
図9は、走行ルールを管理するために用いる走行ルールテーブルの例を示す図である。この走行ルールテーブル310において、走行ルールID301、走行ルール302は、図3に示すものと同様であるため説明を割愛する。デフォルト値701には、走行ルールにおけるルールパラメータのデフォルト値が記述される。
【0091】
図10は、走行ルールを調整する処理を説明するフローチャートである。本フローチャートで説明する処理は、一定時間間隔で繰り返し実行される。なお、移動体107と障害物との距離や障害物の密度に応じて、繰り返し実行の間隔を変動させてもよい。S401~S403は図4に示すS401~S403と同様であるため説明を割愛する。
【0092】
S801では、走行ルール調整部203は、走行ルールをデフォルト状態に戻すかを判定する。戻す場合、S802に進む。戻さない場合、S402に進む。S801は、調整手段が、所定の条件に基づいて走行ルールのルールパラメータをデフォルト値に設定する処理の一例である。
【0093】
走行ルールをデフォルト状態に戻すか否かを判定するには、まず、前回走行ルールの調整が行われてから所定の時間以上経過しているかが確認される。所定の時間以上経過している場合、次のステップに進む。経過していない場合、走行ルール調整部203は、走行ルールをデフォルト状態に戻さないと判定する。
【0094】
また、走行ルール調整部203は、前回走行ルールの調整が行われた地点から移動体107が所定の距離以上移動しているかをさらに確認してもよい。この場合、所定の時間以上経過しており、かつ、所定の距離以上移動している場合、次のステップに進めばよい。それ以外の場合、走行ルール調整部203は走行ルールをデフォルト状態に戻さないと判定する。
【0095】
次に走行ルール調整部203は、移動体107が障害物、曲がり角、扉などから所定の距離以上離れているかを確認する。離れている場合、走行ルールをデフォルト状態に戻すと判定する。離れていない場合、走行ルール調整部203は走行ルールをデフォルト状態に戻さないと判定する。
【0096】
S802では、具体的には、走行ルール調整部203は、図9に示す走行ルールテーブル310で管理されている各走行ルールについて、ルールパラメータのデフォルト値を取得し、それらを走行ルール302のルールパラメータに設定する。
【0097】
なお、S402において、走行ルール調整部203は走行ルールを調整するかを判定する際に、前回走行ルールが調整されてから所定の時間以上経過しているかを確認する(図4(B)、図7におけるS4021)。走行ルール調整部203はその確認において、前回の図8に示す処理で走行ルールがデフォルト状態に戻された場合(S802)に、前回走行ルールが調整されたと解釈する。
【0098】
以上によれば、本実施形態では、上記した第1~3実施形態に比べ、走行ルールがデフォルト状態である期間が増える。したがって、移動体107の周囲に存在する障害物(人やロボット)が移動体107の挙動を予測することが容易となり、安全性が向上する。
【0099】
本実施形態では、ルールパラメータの調整を行うための判定処理(所定の条件)の対象として、前回のルールパラメータの調整からの経過時間、および移動体107の動作情報を例に挙げた。しかし、これらに限らず、当該判定処理の対象は、例えば障害物の動作情報など、他の制御関連情報であってもよい。
【0100】
なお、以上説明した、走行ルールをデフォルト状態に戻すかの判定処理における2つのステップ(経過時間の確認および移動体107の動作情報の確認)の順序は逆であってもよい。
【0101】
<第5実施形態>
上記各実施形態では、調整した走行ルールから移動体107の駆動制御情報が生成され、移動体107の駆動状態(挙動)が変えられた。第5実施形態では、情報処理装置100は、移動体107の駆動状態を変えることを、移動体107の周囲に存在する人またはロボットに通知するようにしてもよい。この通知処理は、図6に示したS501の後、S502の前に実行されるか、あるいは、S502の後、移動体107が駆動状態を変える前に開始される。
【0102】
情報処理装置100は、移動体107の周囲に存在する人やロボットに駆動状態の変更内容を通知する。情報処理装置100は、挙動を変えている途中に、その旨を示す通知を発信し続けてもよい。駆動状態を変えている途中とは、例えば移動体107が通路左右の進路変更をしている途中、角を曲がっている途中、速度を変更している途中(加減速途中)などの意味である。
【0103】
通知方法としては、移動体107に通知用のスピーカを搭載し、音声で通知する方法がある。あるいは、移動体107に通知用のディスプレイを搭載し、ディスプレイに移動体107の駆動状態を表示する方法がある。その他、移動体107が通信装置を搭載し、この通信装置を用いて、通信可能な他のロボットに対して移動体107の駆動状態を示す信号を直接伝達する方法などがある。
あるいは、情報処理装置100は、移動体107が駆動状態を変える前に駆動状態の変更内容を第三者に提示し、第三者からの承認を受けてから駆動状態を変えるようにしてもよい。
【0104】
本実施形態によれば、通知により移動体107の周囲に存在する人またはロボットが移動体107の挙動に注意を払っている状態で、移動体107は駆動状態を変えることができ、人やロボットへの安全性が向上する。特に、通路左右の変更時、角を曲がる時、速度を上げる時など、通知がなされることにより、安全性が増す。
【0105】
なお、本実施形態における通知のためのスピーカ、ディスプレイ、駆動状態を示す信号を生成して発信する機能等は、制御手段の制御により移動体の駆動が実行される前に、移動体の駆動状態を変更することを通知する通知手段の一例である。
【0106】
<第6実施形態>
上記各実施形態では、ルールパラメータを用いて走行ルールを表現していたが、第6実形態では、地形、移動体107および障害物の相互の位置関係を表すグラフを用いて走行ルールを表現する。本実施形態では、地形、移動体107および障害物を「オブジェクト」と総称する。
【0107】
図11は、オブジェクトの位置関係を表すグラフ(以下、オブジェクト位置関係グラフと記す)を例示する図である。走行経路上の地点ごとにオブジェクトの位置関係は異なる可能性があり、図11(A)と図11(B)は異なる地点におけるオブジェクトの位置関係を例示している。
【0108】
このオブジェクト位置関係グラフは、移動体107および移動体107の周囲の物体をノードとする無向グラフの一例である。2つのオブジェクト901は、その間を結ぶ関係線902により互いに関係している。本実施形態では、移動体107を中心にオブジェクト間の関係が表現される。関係線902の長さはオブジェクト間の関係の大小を表す。本実施形態では、関係線902の長さはオブジェクト901間の距離を表す。関係線902が短いほど、その関係線902で結ばれるオブジェクト901同士はより近くに接近可能となる。
【0109】
関係線902の長さに相当する距離は、典型的には近接限界距離である。しかしこの距離は近接限界距離に限らず、それより所定の距離分長くてもよいし、あるいは、近接限界距離および/または制御関連情報に基づき算出された距離であってもよい。
【0110】
図12は、オブジェクト901を管理するために用いるオブジェクトテーブルの例を示す図である。オブジェクトテーブル1000の各行は1つのオブジェクト901を表す。
オブジェクトID1001には、オブジェクトテーブル1000に格納されたオブジェクト901を一意に識別するためのIDが記述される。
オブジェクト名1002には、オブジェクト901の名称が記述される。
【0111】
図13は、オブジェクト901の位置関係を管理するために用いる位置関係情報テーブルの例を示す図である。
位置関係情報ID1101には、位置関係情報テーブル1100に格納された位置関係情報を一意に識別するためのIDが記述される。
有効範囲1102には、位置関係情報が有効である場所が記述される。有効範囲1102の値は、地形情報と対応して場所の特定が可能な単語や、特定の領域を表す一連の座標情報である。有効範囲1102は、特定の場所におけるオブジェクト位置関係グラフを特定するために使用される。
オブジェクトID(1)1103には、関係のある2つのオブジェクト901のうち一方のオブジェクトIDが記述される。なお、図13に示す例では、オブジェクトID(1)は移動体「1」に固定である。
オブジェクトID(2)1104には、関係のある2つのオブジェクトのうち、オブジェクトID(1)1103で識別されるオブジェクトではない方のオブジェクトIDが記述される。
関係値1105には、2つのオブジェクト間の関係の大小を表す値が記述される。関係値は関係線の長さに対応する。
【0112】
この位置関係情報テーブル1100における1つの行のうち、特に、オブジェクトID(1)1103、オブジェクトID(2)1104および関係値1105が、1つの位置関係情報に相当する。
【0113】
図14は、走行ルールを調整する処理を説明するフローチャートである。本処理は、一定時間間隔で繰り返し実行される。なお、移動体107と障害物との距離や障害物の密度に応じて、その実行間隔を変動させてもよい。S401、S402は図4(A)と同様であるため説明を割愛する。
【0114】
S1201では、走行ルール調整部203は走行ルールを調整する。この場合、走行ルールはオブジェクト位置関係グラフであり、走行ルールのルールパラメータは関係線902の長さである。具体的には、走行ルール調整部203は、以下に例示するようなルールパラメータの調整処理を実行する。
【0115】
1つ目の調整処理方法として、走行ルール調整部203は走行制御情報管理部201から地形情報(地図情報でもよい)を取得する。また、走行ルール調整部203は、制御関連情報取得部202から、移動体107および障害物の各位置情報を取得する。次に、走行ルール調整部203は、各障害物と通路左右の側端との位置関係を求める。通路左右のいずれかにそれら障害物の偏りがある場合、走行ルール調整部203は、オブジェクト位置関係グラフ内の移動体107を表すオブジェクト901と、通路の両側端に対応するオブジェクト901の関係線902の長さを調整する。このとき、移動体107と通路左右のうち障害物の偏りがある側に対応する関係線902の長さは、移動体107と通路左右のうちその偏りがない側に対応する関係線902の長さに比べて短く設定される。これは、図5の右に示したように、移動体107を障害物の偏りがある側を通行させるため、走行ルール調整部203が、その偏りがある方の側端との距離を調整する(小さくする)ためである。
【0116】
オブジェクト位置関係グラフにおける関係線902の長さの調整方法としては、例えば次のような方法がある。走行ルール調整部203は、位置関係情報テーブル1100を参照し、現在の移動体107の位置に対応する有効範囲を取得する。取得された有効範囲(に対応する位置関係情報ID)は複数の可能性がある。その中から、走行ルール調整部203は、長さ調整の対象となる関係値を含む位置関係情報(オブジェクトID(1)1103、オブジェクトID(2)1104、および関係値1105)の、当該関係値を調整する。
【0117】
2つ目の調整処理方法として、走行ルール調整部203は、制御関連情報取得部202から移動体107の位置、および移動体107の周囲に存在する障害物の密度を取得する。次に走行ルール調整部203は、取得した障害物の密度に基づいて移動体107と障害物との目標距離を決定する。障害物の密度に基づく目標距離の算出方法は、上記第1実施形態で説明した方法が用いられる。そして走行ルール調整部203は、オブジェクト位置関係グラフ内の移動体107を表すオブジェクト901と、障害物を表すオブジェクト901との間の関係線902の長さを目標距離に一致するように調整する。
【0118】
具体的には、走行ルール調整部203は、位置関係情報テーブル1100を参照して、現在の移動体107の位置および有効範囲に基づいて、位置関係情報(オブジェクトID1103、オブジェクトID(2)1104、および関係値1105)を取得する。そして、走行ルール調整部203は、その位置関係情報の関係値1105に、上記で決定した目標距離を設定する。ここで目標距離は、「障害物の密度」と「目標距離」のルックアップテーブルを用いて決定してもよいし、「障害物の密度」をパラメータとする「目標距離」の関数を用いて決定してもよい。
【0119】
図15は、本実施形態において駆動制御情報を生成する処理を説明するフローチャートである。本処理は、走行ルール(オブジェクト位置関係グラフ)が調整されるたびに実行される。S501は図6のS501と同様であるため説明を割愛する。
【0120】
S1301では、駆動制御情報生成部204は、制御関連情報取得部202からの制御関連情報のうち移動体107の位置情報を取得する。
【0121】
S1302では、駆動制御情報生成部204は、走行ルールに基づいて駆動制御情報を生成する。具体的には、駆動制御情報生成部204は、位置関係情報テーブル1100を参照して、移動体107の位置および有効範囲に基づいて、位置関係情報を取得する。そして駆動制御情報生成部204は、その位置関係情報で表されるオブジェクト位置関係グラフに対して、以下に例示するような駆動制御情報の生成処理を実行する。
【0122】
駆動制御情報生成部204は、次のような処理を実行する。駆動制御情報生成部204は、地図情報、関係値、移動体107と通路の側端(左右両側端)との距離に基づいて、移動体107の位置における走行経路補正量を求め、これを駆動制御情報とする。移動体107と通路の側端との距離は、例えば、所定の定数値であってもよいし、または、「走行経路上の各地点」をパラメータとした「通路の側端との距離」の関数で表された値であってもよい。
【0123】
走行経路補正量を求めるための上記関係値は、S1201で調整処理が実行された関係値である。すなわち、駆動制御情報生成部204は走行経路補正量を求めるために、オブジェクト901として通路の両側端に関する関係値1105だけでなく、その他のオブジェクト901に関する関係値1105を取得する。つまり駆動制御情報生成部204は、位置関係情報テーブル1100の複数の位置関係情報に基づいて、駆動制御情報を生成する。
【0124】
以上説明したように、本実施形態では、走行ルールを表現するために、移動体107、地形、障害物の相互の位置関係を表すグラフを導入した。すなわち、走行ルールを単純な重み付き無向グラフで表現することができ、走行ルールの調整処理を単純化することが可能となる。
【0125】
<その他の実施形態>
上記各実施形態では、移動体107は例えば施設内を移動することを想定していたが、移動体107は車両として公道を走行することも想定し得る。
【0126】
以上、実施形態例を詳述したが、本開示は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。具体的には、本開示を、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
また、本開示の目的は、以下のようにすることによって達成されることはいうまでもない。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコード(コンピュータプログラム)を記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本開示を構成することになる。
【0127】
本実施形態の開示は、以下の構成、方法およびプログラムを含む。
(構成1)
移動体の制御のための環境情報を含む制御関連情報を取得する取得手段と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する調整手段と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段と、を有することを特徴とする情報処理装置。
(構成2)
前記走行ルールの情報は、可変なルールパラメータを含み、
前記調整手段は、前記ルールパラメータを調整する
ことを特徴とする構成1に記載の情報処理装置。
(構成3)
前記調整手段は、前記移動体が走行する通路において前記移動体の周囲に存在する障害物の、前記通路上の偏りに基づいて前記ルールパラメータを調整する
ことを特徴とする構成2に記載の情報処理装置。
(構成4)
前記調整手段は、前記移動体の周囲に存在する障害物の密度に基づいて前記ルールパラメータを調整する
ことを特徴とする構成2または3に記載の情報処理装置。
(構成5)
前記調整手段は、所定の条件に基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする構成1から4のうちいずれか1項に記載の情報処理装置。
(構成6)
前記調整手段は、前記所定の条件として、前回の前記走行ルールの調整からの経過時間、前記制御関連情報のうち前記移動体の動作情報、および、前記移動体の周囲に存在する障害物の動作情報の、少なくとも1つに基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする構成5に記載の情報処理装置。
(構成7)
前記調整手段は、前記所定の条件として、前回の前記走行ルールの調整からの経過時間、前記制御関連情報のうち前記移動体の固有情報、および、前記制御関連情報のうち前記移動体の走行経路の路面構成情報の少なくとも1つに基づいて前記走行ルールを調整するか否かを判定する
ことを特徴とする構成5に記載の情報処理装置。
(構成8)
前記調整手段は、前記走行ルールを調整すると判定した場合、前記移動体の固有情報および前記路面構成情報に基づいて前記移動体の速度を算出し、前記移動体の速度に基づいて前記走行ルールを調整する
ことを特徴とする構成7に記載の情報処理装置。
(構成9)
前記調整手段は、前記走行ルールの調整処理における計算の入力値に対して重みづけを行う
ことを特徴とする構成1から8のうちいずれか1項に記載の情報処理装置。
(構成10)
前記調整手段は、前記制御関連情報のうち、前記移動体および前記移動体の周囲に存在する障害物のそれぞれの移動履歴に基づく走行履歴情報に基づいて前記走行ルールを調整する
ことを特徴とする構成1から9のうちいずれか1項に記載の情報処理装置。
情報処理装置。
(構成11)
前記調整手段は、所定の条件に基づいて前記走行ルールの前記ルールパラメータをデフォルト値に設定する
ことを特徴とする構成2から10のうちいずれか1項に記載の情報処理装置。
(構成12)
前記調整手段は、前記所定の条件として、前回の前記ルールパラメータの調整からの経過時間、および、前記制御関連情報のうち前記移動体の動作情報の少なくとも一方に基づいて前記ルールパラメータを前記デフォルト値に設定する
ことを特徴とする構成11に記載の情報処理装置。
(構成13)
前記制御手段の制御により前記移動体の駆動が実行される前に、前記移動体の駆動状態を変更することを通知する通知手段、をさらに有することを特徴とする構成1から12のうちいずれか1項に記載の情報処理装置。
(構成14)
前記調整手段は、前記走行ルールを、前記移動体および前記移動体の周囲の物体をノードとする無向グラフとして取得する
ことを特徴とする構成2から13のうちいずれか1項に記載の情報処理装置。
(構成15)
前記無向グラフは、前記ノード間を結ぶ関係線を前記ルールパラメータとして含み、
前記関係線の長さは、前記移動体および前記周囲の物体間の距離を示す
ことを特徴とする構成14に記載の情報処理装置。
(構成16)
前記制御関連情報および前記走行制御情報はそれぞれ地図情報をさらに含む
ことを特徴とする構成1から15のうちいずれか1項に記載の情報処理装置。
(構成17)
情報処理装置によって走行が制御される移動体であって、
前記情報処理装置は、
前記移動体の制御のための環境情報を含む制御関連情報を取得する取得手段と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する調整手段と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する制御手段と、を有することを特徴とする移動体。
(方法1)
移動体の制御のための環境情報を含む制御関連情報を取得する工程と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する工程と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する工程と、を有することを特徴とする情報処理方法。
(プログラム1)
移動体の走行を制御する情報処理装置に実行させるプログラムであって、
前記移動体の制御のための環境情報を含む制御関連情報を取得する工程と、
前記移動体の走行のために従うべき走行ルールを、前記制御関連情報に基づいて調整する工程と、
調整された前記走行ルールを含む走行制御情報に基づいて前記移動体の駆動を制御する工程と、を前記情報処理装置に実行させるプログラム。
【0128】
以上、本開示をその好適な実施形態に基づいて詳述してきたが、本開示は上記実施形態に限定されるものではなく、本開示の主旨に基づき種々の変形が可能であり、それらを本開示の範囲から除外するものではない。
【符号の説明】
【0129】
100 情報処理装置
107 移動体
110 障害物
201 走行御情報管理部
202 制御関連情報取得部
203 走行ルール調整部
204 駆動制御情報生成部
205 駆動制御部
302 走行ルール

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15