特許法第30条第2項適用 2019 14th ACM/IEEE International Conference on Human-Robot Interaction (HRI 2019)2019年3月11日~14日開催
図1を参照して、コミュニケーションロボット(以下、単に「ロボット」という。)10は、自律行動型のロボットであり、少なくとも音声を用いて、人間とコミュニケーションを行うことができる。
また、図1では省略するが、操作者は、端末(PCなどの汎用のコンピュータである)を用いてロボット10にコマンドを送信することにより、遠隔でロボット10を操作することもできる。以下、この明細書において、ロボット10を遠隔で操作する操作者を「ユーザ」と呼ぶことにする。また、この「ユーザ」に対して、ロボット10またはロボット10のユーザのコミュニケーション対象を「人間」または「人」と呼ぶことにする。
なお、遠隔に設けられた端末を用いてロボット10を操作等することは既に周知であり、また、本願の本質的な内容ではないため、この明細書においては、ユーザが使用する端末および遠隔操作についての詳細な説明は省略する。
この実施例のロボット10は、空港、駅、地下街、ショッピングモール、イベント会場、遊園地および美術館などの不特定多数の人間が存在する環境または日常空間(以下、まとめて「環境」ということがある。)に配置される。
このロボット10は、同じ環境に配置され、自身が配置される環境について予め記憶した地図(間取り図)の情報および自身に備わる各種センサからの情報に基づいて自律的に行動する(移動および動作する)ことができる。以下、ロボット10の構成について具体的に説明する。
まず、図1を参照して、ロボット10のハードウェアの構成について説明する。図1は、この実施例のロボット10の外観を示す正面図である。ロボット10は台車30を含み、台車30の下面にはロボット10を自律移動させる複数(たとえば3個または4個)の車輪32が設けられる。台車30は、前後左右の任意方向(全方位)に移動可能な所謂全方位移動型の台車である。車輪32は車輪モータ36(図2参照)によってそれぞれ独立に駆動され、台車30すなわちロボット10を前後左右の任意方向に動かすことができる。車輪32としては、メカナムホイールまたはオムニホイール等を用いることができる。したがって、ロボット10は、配置された環境内を自律制御によって移動可能である。
台車30の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、距離センサ40が設けられる。この距離センサ40は、ロボット10の周囲の物体(人間や障害物など)との距離を測定するものであり、ロボット10の前方の主として人間との距離を計測する。
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット10の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら距離センサ40および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更され得る。
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lを介して、前腕54Rおよび前腕54Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
前腕54Rおよび前腕54Lのそれぞれの先端には、人間の手に酷似した形状であり、指や掌の機能を持たせた右手56Rおよび左手56Lがそれぞれ設けられる。ただし、指や掌の機能が不要な場合には、前腕54Rおよび前腕54Lのそれぞれの先端に人の手に相当する球体を設けることも可能である。
また、図示は省略するが、胴体42の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、右手56Rおよび左手56Lには、それぞれ、接触センサ58(図2で包括的に示す)が設けられる。胴体42の前面の接触センサ58は、胴体42への人間や他の障害物の接触を検知する。したがって、ロボット10は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット10の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の頭、胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット10が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象(以下、「コミュニケーション対象」ということある)である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
眼カメラ70は、ロボット10に接近した人間の顔または人間の他の部分或いは物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
このように、この実施例のロボット10は、肩関節48の3自由度(左右で6自由度),肘関節52の1自由度(左右で2自由度),首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計15自由度を有する。
図2はロボット10の電気的な構成を示すブロック図である。この図2を参照して、ロボット10は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、ロボット10の行動を制御(タスクを実行)するための制御プログラム(ロボット制御プログラム)が予め記憶される。たとえば、ロボット制御プログラムは、各センサの出力(センサ情報)を検知するための検知プログラムや、他のロボットおよびユーザの端末などの外部コンピュータとの間で必要なデータおよびコマンドを送受信するための通信プログラムなどを含む。また、RAMは、CPU80のワークメモリおよびバッファメモリとして用いられる。
さらに、この実施例では、ロボット10は、人間とのコミュニケーションをとるために発話したり、ジェスチャしたりできるように構成されているが、メモリ84に、このような発話およびジェスチャのための辞書(発話/ジェスチャ辞書)のデータが記憶されている。
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、ロボット10の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでCPU80に与える。すなわち、距離センサ40からの距離に関するデータ(たとえば反射時間のデータ)がこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様にして、CPU80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。
音声入力/出力ボード90もまた、同様に、DSPで構成され、CPU80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
また、CPU80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信装置104に与え、無線通信装置104は送信データを、外部コンピュータに送信する。また、通信LANボード102は、無線通信装置104を介して外部コンピュータからデータを受信し、受信したデータ(受信データ)をCPU80に与える。
また、CPU80は、バス82を介して、2次元距離計測装置106および3次元距離計測装置108に接続される。図1では省略したが、2次元距離計測装置106および3次元距離計測装置108は、ロボット10の台車30、センサ取り付けパネル38または胴体42の適宜の位置に取り付けられる。
2次元距離計測装置106は、水平方向にレーザを照射し、物体(人間も含む)に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。ここで、2次元距離計測装置106としては、SICK社製のレーザーレンジファインダ(型式 LMS200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。
この実施例では、ロボット10は、2次元距離計測装置106で検出された障害物までの2次元(または水平方向)の距離情報と、ロボット10が配置される環境(たとえば、場所ないし領域)についての地図をマッチングすることで、ロボット10自身の位置(自己位置)すなわちロボット10の現在位置を推定する。ただし、より正確な現在位置を推定するために、パーティクルフィルタを用いて計算されたロボット10のオドメトリ(移動情報)も入力として利用される。ロボット10の現在位置を推定する手法としては、文献「D. Fox, W. Burgard and S. Thrun, Markov Localization for Mobile Robots in Dynamic Environments, Journal of Artificial Intelligence Research, vol. 11, pp. 391-427, 1999.」に開示される手法を用いることができる。ロボット10の現在位置を推定すること自体は本願の本質的な内容ではないため、詳細な説明は省略する。
また、3次元距離計測装置108は、水平方向を基準(0°)として上下40°(+30°~-10°)の検知角度(垂直視野角)を有する3次元全方位レーザ距離計である。この3次元距離計測装置108は、0.1秒に1回転して、およそ100mまでの距離を計測し、ロボット10周辺の3次元距離情報を格納した点群情報を取得することができる。ここでは、3次元距離計測装置108としては、Velodine社製のイメージングユニットLiDAR(HDL-32E)(商品名)を用いることができる。
この実施例では、ロボット10は、3次元距離計測装置108で検出された3次元の距離情報に基づいて人間を検出するとともに、当該人間の位置を計測する。具体的には、3次元距離計測装置108から得られる3次元の距離情報と上記の地図を用いて、ロボット10が環境内のどの位置に存在しているか、およびどの方向を向いているかが推定される。次に、3次元距離計測装置108から取得した3次元の距離情報と、地図に基づく環境内の3次元の距離情報と比較し、近似する3次元の距離情報を格納した点群情報が示す点群を背景としてフィルタリングする。続いて、3次元距離計測装置108から取得した3次元の距離情報を格納した点群情報が示す点群のうち、閾値(Zmin, Zmax)を用いて一定の高さに存在しない点群をフィルタリングする。この実施例では、Zminが5cmに設定され、Zmaxが220cmに設定され、極端な高さの点群は、人間でないと判断し、人間の位置を計測する処理から除外される。
一定の高さに存在しない点群がフィルタリングされると、フィルタリング後のすべての点群に含まれる高さ情報を0に設定した2次元の点群情報が生成される。生成された2次元の点群情報は、ユークリッド距離を用いてクラスタリングされる。一例として、Point Cloud Libraryに実装されているクラスタリング手法が利用される。
さらに、クラスタリングされた点群情報に含まれる元々の高さ情報を利用し、高さの最大値から高さの最小値を引いた値が30cm未満であるもの、および点群の数が閾値以下であるもの(ここでは4個と設定した)がフィルタリングされる。つまり、小さすぎる物または壁などの人間以外の物と判断されたクラスタが除去される。そして、フィルタリング後の各クラスタの重心位置が各人間の位置情報として設定される。つまり、ロボット10の周囲に存在する人間が検出されるとともに、検出された人間の位置が計測される。
なお、ロボット10の位置を推定したり、人間の位置を計測したりするために、ロボット10は、2次元距離計測装置106および3次元距離計測装置108を備えているが、これらの計測装置は、ロボット10に備えずに、または、ロボット10に備えるとともに、ロボット10が配置される環境内に設置されてもよい。また、床センサなどの他のセンサを用いて、ロボット10の位置を推定したり、人間の位置を計測(推定)したりしてもよい。
また、この実施例では、ロボット10は、2次元距離計測装置106および3次元距離計測装置108を備えるようにしてあるが、3次元距離計測装置108の計測結果を用いてロボット10自身の位置を推定することもできるため、2次元距離計測装置106は省略することもできる。
上記のようなロボット10は、自身が配置される、不特定多数の人間が存在する環境において、不適切な行為を行う歩行中の注意対象者に注意を与える行動(注意行動または注意タスク)を実行する。
ただし、不適切な行為とは、ロボット10が配置される環境において禁止されている行為、たとえば、携帯端末(フィーチャーフォン、スマートフォンおよびタブレットPC等)を操作しながら歩行する行為(いわゆる歩きスマホ)および喫煙が禁止されたエリアでたばこを吸いながら歩行する行為(いわゆる歩きたばこ)などのことである。
また、注意行動は、ロボット10によって自律的に実行されたり、当該ロボット10のユーザの命令に従って実行されたりする。また、ユーザの命令に従う行動は、ユーザの端末から送信されたコマンドに従う行動である。たとえば、ロボット10自身に備わる各種センサ(たとえば全方位カメラ46または眼カメラ70)の出力に応じて、ロボット10の周囲に存在する人間の中に注意対象者が存在するかどうかをロボット10が自動的に判断しても良いし、ロボット10の周囲に存在する人間の中から注意対象者をユーザが指定するようにしても良い。
図1では省略したが、ユーザの端末は、直接、または、ネットワークを介して、ロボット10と通信可能である。なお、ロボット10がユーザの端末に送信する送信データは、ユーザの端末からのコマンドに従う行動の実行を終了したことの通知などのデータである。
このような自律行動型のロボットの注意行動の従来例としては、図3に示すように、注意対象者が検出されると、注意対象者から十分な距離を保持した状態で、ロボットの自己位置である出発点Psから注意対象者との合流点Peに対して直線的に最短距離で移動し、注意対象者に対して注意発話を与える。このとき、ロボットは、人の平均的な歩行速度と同程度の移動速度(たとえば1.1m/秒)で移動する。以下、従来例のように、出発点Psから合流点Peまで直線的に移動する経路のことを、通常接近経路といい、従来例の注意行動におけるロボットの移動速度のことを、通常接近速度という。
しかしながら、歩行中の注意対象者に注意を与える場合には、単にロボットが直線的に移動し、正面から対話を実行するだけでは、注意対象者にロボットの存在を気づかれなかったり、注意対象者自身に対する注意であると気づかれなかったりして、注意対象者に無視されることがあるという問題がある。
これを回避するため、この実施例では、歩行中の注意対象者に対して効果的に注意を与えることができるようにしてある。すなわち、歩行中の注意対象者の注意を引くように、ロボット10の移動経路を設定し、ロボット10の移動速度を設定し、注意発話のタイミングを設定してある。
以下、図4および図5を参照して、本実施例の注意行動について説明する。図4および図5に示すように、ロボット10は、注意対象者を検出すると、ロボットの自己位置(出発点Ps)を推定し、注意対象者が移動する推定経路を推定し、推定経路に応じて合流点Peを設定し、出発点Psから合流点Peに至る移動経路(以下、本実施例において注意行動を実行するロボット10が移動する経路のことを、注意接近経路という。)に沿って所定の移動速度で移動する。ただし、注意接近経路は、出発点Psと合流点Peとの間に設定される転回点Ptで転回するように設定される。すなわち、ロボット10は、注意行動を実行する際に、途中で折れ曲がる経路、すなわち屈曲する経路に沿って移動する。また、転回とは、経路の向きが30°以上(たとえば40°程度)変わることを意味する。すなわち、転回点Ptを通過する前の経路の向きと、転回点Ptを通過した後の経路の向きとの角度差θ1は、30°以上となる。
図5を参照して注意接近経路の設定方法について具体的に説明する。まず、注意対象者の現在位置Pnおよび注意対象者の進行方向から注意対象者が移動する推定経路が推定される。次に、推定経路に基づいて、理想的な合流点が設定され、注意対象者の現在位置Pn、注意対象者の進行方向および注意対象者の現在速度Vpから、理想的な合流点までの所要時間後(t秒後)の注意対象者の未来位置Phを計算する。なお、詳細は後述するが、理想的な合流点は、ロボット10と注意対象者とが略同じ時間で到達する位置(時間的な中間位置)に設定される。
また、合流点Peは、注意行動の完了時(合流点到達時)において少なくとも注意対象者の視界の範囲内(注意対象者の前方)であり、かつ、注意対象者の動き(歩行)を妨げることはない位置に設定される。具体的には、合流点Peは、注意対象者の進行方向(y)および注意対象者の進行方向に直交する方向(x)において未来位置Phから所定距離離れた位置に設定される。たとえば、注意対象者の進行方向(y)における、合流点Peと未来位置Phとの距離(垂直距離)dyは、0.5m~1.5m程度であり、注意対象者の進行方向に直交する方向(x)における、合流点Peと未来位置Phとの距離(水平距離)dxは、0.5m~1.5m程度である。
さらに、転回点Ptは、合流点Peから3m以内に設定される。つまり、転回点Ptを通過した後の経路の長さdsは、3m以内となる。すなわち、注意接近経路は、合流点Peから3m以内に、30°以上経路の向きが変わる。
さらにまた、注意接近経路は、転回点Ptを通過した後の経路が、当該転回点を通過する前の経路よりも注意対象者の進行方向に直交する方向(注意対象者から見た左右方向)に近い向きになるように設定される。したがって、ロボット10は、注意行動を実行する際に、転回点Ptを通過した後、左右方向から注意対象者に近づくように移動する。
さらにまた、注意接近経路は、転回点Ptを通過した後の経路が、注意対象者の進行方向(前後方向)において、注意対象者の前方から注意対象者に向かうように設定される。すなわち、転回点Ptは、少なくとも注意対象者の前方に設定される。以上のように、転回点Ptを通過した後の経路の向きは、注意対象者の進行方向に対して所定の傾斜角度θ2で傾く(所定の傾斜角度θ2を有する)ように設定される。たとえば、傾斜角度θ2は、50°~89°の範囲内に設定される。
また、図6に示すように、注意対象者が検出されたときのロボット10の自己位置(出発点Ps)が注意対象者の進行方向の後方である場合であっても、注意行動を実行する際には、注意対象者の前方から近づき、転回して注意するという経路およびそれに沿った動作は同じである。出発点Psが注意対象者の進行方向の後方である場合には、ロボット10は、まず、転回点Ptに対して注意対象者の進行方向の前方から近づくことができる位置、すなわち、転回点Ptよりも十分に前方の位置であって、注意対象者の視界の範囲内となる位置まで移動する。その後、ロボット10は、注意対象者の前方から近づき、転回点Ptで転回し、合流点Peに移動する。
ただし、注意接近経路は、注意対象者が移動する推定経路とは交差しないように設定される。このため、図4~図6に示すように、出発点Psが注意対象者よりも左方に位置する場合には、注意接近経路(転回点Ptおよび合流点Pe)は注意対象者から見て左に設定される。一方、図示は省略するが、出発点Psが注意対象者よりも右方に位置する場合には、注意接近経路(転回点Ptおよび合流点Pe)は注意対象者から見て右に設定される。すなわち、注意接近経路は、注意対象者から見て左右方向における同じ側に設定される。
また、注意行動におけるロボット10の移動速度Vrは、人の早歩きと同程度の速度(たとえば1.3m/秒)に設定される。以下、本実施例において注意行動を実行するロボット10が移動する速度Vrのことを、注意接近速度という。ただし、ロボット10は、注意行動を実行する際に、注意接近速度を維持するように、略一定の速度で移動する。なお、上述したように、ロボット10は、全方位移動型の台車30を備えるので、転回点Ptにおいても大きく減速することなく、移動速度Vrを維持しながら移動することができる。
さらに、ロボット10は、注意行動を実行する際に、所定の地点(発話開始地点)に到達したときに、注意対象者に対して注意発話を与える。注意発話は、不適切な行為を注意するためになされ、注意発話の内容としては、たとえば「すみません、歩きスマホは危険ですのでおやめください」などである。
ただし、注意発話は、ロボット10が注意接近経路を移動する間であって、合流点Peに到達する前に注意対象者に与えられる。また、発話開始地点は、少なくとも、ロボット10が合流点Peに到達する前に注意発話が完了するように設定される。
また、注意発話の開始タイミングは、ロボット10が転回点Ptを通過するタイミングに合わせて設定される。すなわち、発話開始地点は、転回点Ptおよびその近傍(転回部)に設定される。なお、注意発話の開始タイミングは、ロボット10が転回点Ptを通過する直前であっても良いし、ロボット10が転回点Ptを通過した直後であっても良いし、ロボット10が転回点Ptにおいて転回する(向きを変える)のと同時であっても良い。
なお、ロボット10が注意行動を開始した後、注意行動が完了する前に、注意対象者を見失ったり、注意対象者が環境外に出たりして追跡不能となった場合には、注意行動が中止される。
以上のような本実施例の注意行動の効果を評価するために、本実施例の注意行動の効果と、従来例の注意行動の効果とを比較する実験を行った。
本実施例の注意行動では、ロボットは、出発点Psと合流点Peとの間に転回点Ptを有する注意接近経路に沿って、注意接近速度(1.3m/秒)で移動する。なお、注意接近経路の具体的な設定方法は上述した内容と同じである。
従来例の注意行動では、ロボットは、出発点Psから合流点Peに対して直線的に移動する通常接近経路に沿って、通常接近速度(1.1m/秒)で移動する。なお、従来例の注意行動における合流点Peの算出方法は本実施例と同じである。
ただし、本実施例の注意行動および従来例の注意行動のいずれにおいても、出発点Psは、注意対象者の左前方に設定される。したがって、本実施例の注意行動および従来例の注意行動のいずれにおいても、注意接近経路は注意対象者から見て左に設定される。
また、本実施例の注意行動および従来例の注意行動のいずれにおいても、合流点Peから2.7mの地点で注意発話を開始する。さらに、本実施例の注意行動および従来例の注意行動のいずれにおいても、注意発話の内容は、「すみません、歩きスマホは危険ですので、おやめください」とした。
以上のような条件に従って、携帯端末を操作しながら歩行する24名の被験者に対し、被験者毎に、従来例の注意行動および本実施例の注意行動のいずれか一方の注意行動を割り当てて試行した。なお、従来例の注意行動と本実施例の注意行動とは反対均衡順序で割り当て、結果的に、従来例の注意行動について11回試行し、本実施例の注意行動について13回試行した。
そして、試行毎に、注意対象者がロボットの注意に従ったかどうか、すなわち注意が成功したかどうかを評価した。ただし、注意行動完了後に携帯端末の使用を中止した場合を「成功」とし、注意行動完了後に携帯端末の使用を中止しなかった(携帯端末の使用を継続した)場合を「失敗」とした。その集計結果(実験結果)が図7に示される。この図7に示す集計結果は、従来例の注意行動および本実施例の注意行動の各々における注意の成功数および注意の成功率を示すグラフである。
図7を参照して分かるように、実験結果によれば、従来例の注意行動では、11回の試行のうち、2回成功し、9回失敗した。すなわち、従来例の注意行動では、成功率は約18%であった。一方、本実施例の注意行動では、13回の試行のうち、8回成功し、5回失敗した。すなわち、本実施例の注意行動では、成功率は約62%であった。以上のように、本実施例の注意行動は、従来例の注意行動に比べて、歩行中の注意対象者に効果的に注意を与えることができることが分かった。
ロボット10の上記のような動作は、CPU80がメモリ84に記憶されたロボット制御プログラムを実行することによって実現される。具体的な処理については、後でフロー図を用いて説明する。
図8は図2に示したメモリ84(RAM)のメモリマップ500を示す図である。図8に示すように、メモリ84は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502は、ロボット制御プログラムを記憶する。ロボット制御プログラムは、通信プログラム502a、自己位置推定プログラム502b、注意対象者検出プログラム502c、経路推定プログラム502d、経路作成プログラム502e、移動制御プログラム502fおよび発話プログラム502gを含む。
なお、ロボット制御プログラムは、ロボット10が起動されたときに、HDDから読み出され、RAMに記憶される。
通信プログラム502aは、他のロボットおよびユーザの端末などの外部コンピュータと通信するためのプログラムである。
自己位置推定プログラム502bは、2次元距離計測装置106の出力と地図データ504aに基づいて、ロボット10自身の位置すなわち自己位置を推定(または検出)するためのプログラムである。
注意対象者検出プログラム502cは、ロボット10に備わる各種センサからの出力に基づいて、ロボット10の周囲に存在する不適切な行為を行う歩行中の注意対象者を検出するためのプログラムである。また、注意対象者検出プログラム502cは、ユーザの端末から送信されたコマンドに従って、ロボット10の周囲に存在する注意対象者を検出するためのプログラムでもある。
経路推定プログラム502dは、注意対象者の進行方向または注意対象者の移動速度に応じて、注意対象者が移動する推定経路を推定するためのプログラムである。
経路作成プログラム502eは、推定経路に応じて合流点Peを設定し、ロボット10の自己位置に応じた出発点Psから合流点Peに至る、転回点Ptを有する移動経路(注意接近経路)を作成するためのプログラムである。
移動制御プログラム502fは、台車30の各車輪32を制御して、ロボット10を所定の移動速度で移動させるためのプログラムである。また、移動制御プログラム502fは、注意行動を実行する際に、注意接近経路に沿って注意接近速度でロボット10を移動させるためのプログラムでもある。
発話プログラム502gは、データ記憶領域504に記憶されている発話データ504gを読み出して、発話データ504gに従った音声または声をスピーカ64から出力させるためのプログラムである。また、発話プログラム502gは、注意行動を実行する際に、所定のタイミングで、発話データ504gに含まれる注意発話用の音声についてのデータを読み出して、注意発話用の音声をスピーカ64から出力させるためのプログラムである。すなわち、発話プログラム502gは、注意発話を与えるためのプログラムである。
図示は省略するが、プログラム記憶領域502には、センサ情報を検知するための検知プログラム、3次元距離計測装置108の出力に基づいて、ロボット10の周囲に存在する人間を検出するとともに、検出した人間の位置を検出するための人間位置検出プログラム、コミュニケーション対象の人間の音声を認識するための音声認識プログラムおよび注意行動以外の所定の行動を実行するための行動制御プログラムなどの他のプログラムも記憶される。
また、データ記憶領域504には、地図データ504a、自己位置データ504b、注意対象者位置データ504c、推定経路データ504d、移動経路データ504e、速度データ504fおよび発話データ504gが記憶される。
地図データ504aは、ロボット10が配置される環境を上方から見た2次元の地図についてのデータである。地図には、所定の位置を原点とする2次元座標が割り当てられており、平面上の位置は座標で表される。また、地図には、通路、壁、柱および固定的に配置されている障害物(たとえば、消火器、ごみ箱など)が記載される。障害物の位置(2次元座標)は予め知ることができる。
なお、ユーザの端末は、地図データ504aと同じまたは同等の地図データを記憶しており、または、参照可能であり、ユーザは、端末を介してこの地図データに対応する地図を参照し、注意対象者として選択する人間が存在する位置を指定したりする。
自己位置データ504bは、ロボット10が配置される環境におけるロボット10自身の位置(自己位置)についてのデータである。注意対象者位置データ504cは、注意対象者の現在位置についてのデータである。ただし、ロボット10の自己位置および注意対象者の位置のそれぞれは、上述した地図上の座標として表現される。
推定経路データ504dは、注意対象者が移動する推定経路についてのデータである。移動経路データ504eは、ロボット10の自己位置(出発点Ps)から合流点Peに至る、転回点Ptを有する移動経路(注意接近経路)についてのデータである。速度データ504fは、ロボット10が移動する際の移動速度についてのデータであり、少なくとも、注意行動を実行する際のロボット10の移動速度(注意用速度)Vaについてのデータを含む。発話データ504gは、スピーカ64から出力される音声または声についてのデータであり、少なくとも注意対象者に注意発話を与える際にスピーカ64から出力される注意発話用の音声についてのデータを含む。
図示は省略するが、データ記憶領域504には、他のデータが記憶されたり、フラグおよび/またはタイマ(カウンタ)が設けられたりする。
図9は、図2に示したCPU80のロボット制御処理を示すフロー図である。このロボット制御処理は、ロボット10が配置される環境の状況に応じて開始/終了される。なお、ロボット制御処理の開始とは、ロボット10が配置される環境におけるロボットサービスの開始を意味し、ロボット制御処理の終了とは、ロボット10が配置される環境におけるロボットサービスの終了を意味する。また、ロボット制御処理は、定期的(たとえば0.1秒毎)に繰り返し実行される。図9に示すように、CPU80は、ロボット制御処理を開始すると、ステップS1で、注意対象者を検出したかどうかを判断する。なお、ロボット制御処理は定期的に繰り返し実行されるので、注意対象者を検出するとは、注意対象者が新たに検出することだけでなく、前回のロボット制御処理で検出していた注意対象者を引き続き検出することも含む。ステップS1で“NO”であれば、つまり、注意対象者を検出しないと判断した場合には、後述するステップS7に進む。
一方、ステップS1で“YES”であれば、つまり、注意対象者を検出したと判断した場合には、ステップS3で、移動経路の作成処理を実行し、ステップS5で、移動経路に応じて注意行動処理を実行し、ステップS7に進む。
ステップS7では、ロボット制御処理を終了するかどうかを判断する。ステップS7で“NO”であれば、つまり、終了でなければ、ステップS1に戻る。一方、ステップS7で“YES”であれば、つまり、終了であれば、ロボット制御処理を終了する。なお、図示は省略するが、注意対象者を検出していない場合には、ロボット10は停止していても良く、また、自由に移動しても良い。
図10および図11は、図9のステップS3に示した移動経路の作成処理を示すフロー図である。図10に示すように、CPU80は、移動経路の作成処理を開始すると、ステップS31で、注意対象者の現在位置Pnを検出し、ステップS33で、注意対象者が移動する推定経路を推定し、ステップS35で、ロボット10の自己位置を推定し、ロボット10の自己位置に応じて出発点Psを設定し、ステップS37で、移動経路Planを初期化する。ここでは、Plan=NULL(不存在)とする。
続いて、ステップS39で、経路有効度の最大値Umaxを初期化する。ここでは、Umax=-∞とする。なお、経路有効度の最大値Umaxは負の値であり、経路有効度の最大値Umaxの初期値の絶対値としては、∞に限定されず、後述する最大予測時間tmaxの絶対値よりも大きい値であれば良い。
次に、ステップS41で、予測時間tを初期化(t=0)して、ステップS43で、予測時間tが最大予測時間tmaxよりも大きいかどうかを判断する。ただし、予測時間tおよび最大予測時間tmaxの単位は秒であり、たとえば、最大予測時間tmaxは、20秒に設定される。
ステップS43で“NO”であれば、つまり、予測時間tが最大予測時間tmaxよりも小さいと判断した場合には、ステップS45で、t秒後の注意対象者の未来位置Phを算出し、ステップS47で、未来位置Phに応じた合流点Peを設定し、ステップS49で、上述した方法で、出発点Psから合流点Peに至る、転回点Ptを有する理想経路Pathを設定する。
続いて、図11に示すステップS51で、理想経路Pathの移動にかかる(出発点Psから合流点Peに至るまでの)所要時間taを算出して、ステップS53で、理想経路Pathの経路有効度Uを算出する。ここでは、U=-|t-ta|とする。すなわち、経路有効度Uは、予測時間tと所要時間taとの差の絶対値に応じた負の値となる。
次に、ステップS55で、理想経路Pathの経路有効度Uが経路有効度の最大値Umaxよりも大きいかどうかを判断する。ステップS55で“NO”であれば、つまり、理想経路Pathの経路有効度Uが経路有効度の最大値Umaxよりも小さいと判断した場合には、後述するステップS61に進む。一方、ステップS55で“YES”であれば、つまり、理想経路Pathの経路有効度Uが経路有効度の最大値Umaxよりも大きい(0に近い)と判断した場合には、ステップS57で、移動経路Planを現在の理想経路Pathに更新(Plan=Path)して、ステップS59で、経路有効度の最大値Umaxを現在の経路有効度Uに更新(Umax=U)して、ステップS61に進む。
ステップS61では、予測時間tを更新して、図10に示すステップS43に戻る。ステップS61では、予測時間tに所定の時間xが加算される(t=t+x)。たとえば、時間xは、0.1秒である。以上のように、ステップS43で“YES”となるまで、上述したステップS45~S61の処理を繰り返し実行する。
図10に戻って、ステップS43で“YES”であれば、つまり、予測時間tが最大予測時間tmaxよりも大きいと判断した場合には、ステップS63で、経路有効度の最大値Umaxが有効かどうかを判断する。ここでは、経路有効度の最大値Umaxが所定時間以内を示す場合、すなわち、予測時間tと所要時間taとの差が所定時間以内である場合には、経路有効度の最大値Umaxが有効であると判断する。たとえば、予測時間tと所要時間taとの差が5秒以内である場合には、経路有効度の最大値Umaxが有効であると判断し、予測時間tと所要時間taとの差が5秒よりも大きい場合には、経路有効度の最大値Umaxが無効であると判断する。
ステップS63で“NO”であれば、つまり、経路有効度の最大値Umaxが無効であると判断した場合には、ステップS65で、移動経路を無効化(Plan=NULL)して、ロボット制御処理にリターンする。一方、ステップS63で“YES”であれば、つまり、経路有効度の最大値Umaxが有効であると判断した場合には、ステップS65を経ずにロボット制御処理にリターンする。
図12は、図9のステップS5に示した注意行動処理を示すフロー図である。なお、移動経路の作成処理において移動経路が無効化された場合には、注意行動処理は開始されない(実行されない)。図12に示すように、CPU80は、注意行動処理を開始すると、ステップS71で、移動経路Planを読み出し、ステップS73で、注意用速度Vaを読み出し、ステップS75で、台車30の各車輪32を制御して、移動経路Planに沿って注意用速度Vaでロボット10を移動させる。
続いて、ステップS77で、発話開始地点に到達したかどうかを判断する。ステップS77で“NO”であれば、つまり、発話開始地点に到達していないと判断した場合には、ステップS79で、注意行動可能かどうかを判断する。ここでは、注意対象者を見失っていないか、注意対象者が不適切な行為を継続しているかどうかを判断する。たとえば、注意対象者が環境外に出ることによってロボット10が注意対象者を見失った場合、および注意対象者が不適切な行為を中止した場合には、注意行動不可能と判断する。
ステップS79で“NO”であれば、つまり、注意行動不可能と判断した場合には、ステップS81で、注意行動を中止して、ロボット制御処理にリターンする。一方、ステップS79で“YES”であれば、つまり、注意行動可能と判断した場合には、ステップS77に戻る。
また、ステップS77で“YES”であれば、つまり、発話開始地点に到達したと判断した場合には、ステップS83で、注意発話を実施して、ステップS85で、注意行動を完了したかどうかを判断する。
ステップS85で“YES”であれば、つまり、注意行動を完了したと判断した場合は、ロボット制御処理にリターンする。一方、ステップS85で“NO”であれば、つまり、注意行動を完了していないと判断した場合は、ステップS87で、注意行動可能かどうかを判断する。ステップS87で“YES”であれば、ステップS83に戻る。一方、ステップS87で“NO”であれば、ステップS89で、注意行動を中止して、ロボット制御処理にリターンする。
この実施例によれば、ロボット10が転回点Ptを有する移動経路に従って移動し、合流点Peに到達する前に、注意対象者に対する注意発話を与えるので、歩行中の注意対象者に効果的に対して注意を与えることができる。
また、この実施例によれば、ロボット10が転回点Ptを通過後、進行方向に直交する方向(左右方向)から注意対象者に近づくので、注意対象者の注意を引くことができ、歩行中の注意対象者に対して効果的に注意を与えることができる。
上述の実施例では、図9~図12のすべてのステップを1つのコンピュータ14が実行するものとして説明したが、複数のコンピュータを用いてもよく、あるいは特定の処理をコンピュータではなくDSPのような専用処理回路で処理するようにしてもよい。
なお、上で挙げた角度および距離などの具体的数値はいずれも単なる一例であり、必要に応じて適宜変更可能である。