個人用知的移動体による自動走行と障害物回避に関する研究

PDF
井上 泰佑
名古屋大学工学部 電気電子・情報工学科 情報コース

概要

個人用知的移動体AT(Attentive Townvehicle)は、搭乗者である人間やAT自身を取り巻く環境に適応して移動する個人用の乗り物である。ATは環境に設置されたサーバとの通信機能を持ち、センサ類を装備しているため、周囲の情報を取得・処理し、その結果を移動に反映することが可能である。駆動系にオムニホイールを用いることで、全方位移動、その場回転を実現し、人間の直感に合った移動を可能にしている。本研究では、ATを用いることで、情報処理と物理的な移動を密接に結びつけ、安全で効率的な移動を実現することを目標としている。

ATは、地図を用いてユーザーの指定した目的地への最短経路を計算し、軽量で電源を必要としないRFID(Radio Frequency Identification)タグを利用して位置を認識しながら壁沿いを自動的に走行することができる。

自動走行を行う時に必要となるのが障害物の回避である。本研究では、自動走行を壁沿い走行モードと障害物回避モードという2つのモードに分けている。壁沿い走行モードでは地図に基づいて生成された経路に沿って走行し、障害物回避モードでは刻々と変わる周囲の実環境を考慮しながら速度を落として障害物を慎重に回避する。自動走行を安全で効率的に行うためには、これら2つのモードを適切なタイミングで切り替えながら走行する必要がある。さらに、障害物が移動しているか、静止しているかによってその障害物に接近できる距離が異なるため、複数の焦電センサを環境に設置して移動障害物を検知し、その速度を推定してモードの切り替えのタイミングを決定している。

焦電センサの前を人間が通過すると、焦電センサは人間が動くことによって起こる赤外線の変化を検知し、その値から人間の速度を推測する。ATは焦電センサを管理するサーバに対して歩行データの要求を行い、人間を回避するために適切な距離に到達するまでの時間を計算する。その時間が経過すると障害物回避モードに切り替わる。逆に、障害物回避モードから壁沿い走行モードに戻るタイミングは、進行方向上に静止障害物が存在せず、回避の対象となった移動障害物がATの周囲の一定距離以内で検出されなくなった時である。このように動作原理や速度の異なる二つのモードを適切なタイミングで切り替えることで安全で効率的な自動走行を実現することができる。

以上の仕組みを実装し、人間の速度を推測し、適切な距離で障害物回避モードに切り替えることができるかを、実機を用いて検証する実験を行った結果、本手法の有効性が確認された。

1 はじめに

我々はユビキタスネットワーク社会の到来を迎え、多様な情報を検索し取得することが日常的なものとなった。ウェアラブルコンピューティングやモバイルコンピューティングの分野では、情報端末を身に付けたり、常に持ち歩くことによって、情報端末が人間の置かれた状況を認識できるようになり、さらに、人間の情報収集能力を飛躍的に向上させた。しかし、そういった情報端末を常に持ち歩くだけでは、人間の物理的な行動に連動させて情報処理を行い、その結果を人間や環境に対して物理的に反映させることはできない。情報を得た人間は、自ら行動を起こさなければその結果から成果を得ることはできない。

そこで、筆者の所属する研究室では乗り物に情報処理や通信の機能を搭載し、乗り物自体を情報端末化することで、我々にとって最も基本的であり、日常生活の大部分で行っている「移動」という行動と連携させ、人間と情報端末との新たな関係を見出そうとしている。これが、情報処理と人間の物理的な移動を連携させる、搭乗型(マウンタブル)コンピューティングという考え方である。我々は、この搭乗型コンピューティングのコンセプトのもと、情報端末となった移動体を具体化したAT(Attentive Townvehicle)と呼ばれる個人用の知的移動体を設計・開発している

ATは、搭乗者である人間やAT自身を取り巻く環境に適応することで搭乗者を支援する、全方位移動・自動走行可能な個人用の乗り物である。搭乗者がATに搭乗して移動することによって、搭乗者の嗜好や操縦履歴などの情報をATに蓄積させることができる。そして、その情報をもとにATは搭乗者に合った速度で走行したり、搭乗者の興味のある情報を提示したりなど、搭乗者にとって使いやすくカスタマイズすることができる。こうすることにより、走行することで得た情報を搭乗者にフィードバックさせることができる。

また、ATは駆動系にオムニホイールと呼ばれる複合車輪を用いて全方位移動とその場回転を実現している。これを用いることにより、ATは自動車や自転車など一般的に移動に使用されている乗り物とは異なり、自分の好きな方向に転換でき、任意の向きに移動することが可能になった。それにより、従来の乗り物よりも搭乗者にとってより直感的な動作をさせることができるようになった。我々の考える搭乗型コンピューティングでは、 このようなユーザの直感に合った移動をするだけでなく、ユーザの直感に合った操作・操縦も目指している。それゆえ、操縦インタフェースは可能な限り操作が簡単になるように、我々に比較的馴染みがあり、特別なスキルを必要としないゲーム機のコントローラを利用している。また、情報の提示や各種設定、情報へのアクセス等にはタッチパネルを利用している。

これまでのATを用いた研究として、AT同士を通信させ、互いの位置情報を利用した協調動作や衝突回避などを行う、ATの個体間通信という研究や、走行履歴を体験コンテンツとして蓄積し、その情報を見返したり、他のATと共有したりなどして情報そのものの価値を高める、体験コンテンツを共有・再利用するシステムについての研究がなされてきた。走行履歴を蓄積することにより、搭乗者に対して適切な情報提示を行えるようになるだけではなく、その情報を配信することによって他のATがその情報を取得できるようになり、行ったことのない場所でも適切な情報提示が行えるようになったり、体験共有をすることで他人とより密なコミュニケーションをとることができるようになる。他にも、ATの自動走行の基礎となる屋内自動トランスポーテーション(Indoor Automatic Transportation)という仕組みも研究されてきた

屋内自動トランスポーテーションとは、ATが地図情報から目的地と現在位置を把握し、それらを結ぶ適切な経路を見つけ出し、そこまで自動走行する仕組みである。自動走行中、進路上の障害物や接近する移動体や人間などを回避することができるので、搭乗者はATに乗り、目的地を指定するだけであとは何もしなくても迷わず安全に目的地まで到達することができる。自身の場所の確認は、環境に設置されているRFIDタグを用いて地図と照合することで行われている。そのため、床や天井に移動を補助するレールなどを設置することなく、搭乗者や周囲の状況に柔軟に対応する自動走行を実現することができる。

ATはレールなどを設置しなくても自由に走行できるため、エレベーターや動く歩道のように設置場所が限られ、入口と出口が決まっているようなものよりも柔軟性があり、常時地図にアクセスして自身の位置を自動で把握できるため、フロアマップのように目的地を確認するためにフロアマップの置いてある場所まで移動しなくても良い。

屋内自動トランスポーテーションの流れとしては、まず、搭乗者が目的地を設定し、ATは周囲に設置されたRFIDタグを読み取り、その場所から目的地に向かうための最短経路にある壁を推定する。経路を決定したら出発し、壁に設置してあるRFIDタグを読み取りながら経路を進行する。交差点や突き当りなどの有無もそのタグと地図から取得することができる。目的地のタグを読み取るまでタグの読み取りと壁沿い走行、交差点での右折・左折や直進、突き当りでの右折・左折などの動作を繰り返し、最終的に目的地のタグを読み取った時にATを停止させ、ATは目的地に到着したことを搭乗者に伝え、自動トランスポーテーションを終了する。

ATは自動車や自転車とは異なり、屋外と屋内の両方に対応することを想定している。しかし、屋外と屋内では自動走行の実現方法が異なり、移動体の制限速度や測位精度の許容誤差の範囲などが異なる。よって、このシステムを用いて両方の自動走行を実現することは困難であると考えられるため、屋外で建物間を移動する手法と屋内で目的地まで移動する手法を分けて扱い、屋外用自動トランスポーテーションで目的の建物に到達したのち、建物の入り口でシームレスに屋内用自動トランスポーテーションに切り替える仕組みにするのが理想的である。本研究では屋内で運用することに絞って述べる。以降、本論文で述べる「自動走行」は、すべて屋内自動走行を意味する。

屋内で想定されるATの利用方法は病院や博物館、ショッピングセンターなどの大規模な施設での走行である。病院では、自分が行くべき診療科やその場所が分からない時に、医師や看護師がそこまでの移動経路を説明する代わりにATのディスプレイに問診表のような患者の症状を入力する画面を表示して、それを入力することでシステムがその患者が向かうべき診療科を決定し、患者を乗せてその場所まで自動で移動させたり、診察後に別室まで移動したり、支払いのために受付まで移動するときなど、患者が向かうべき場所を順に設定することで患者は道に迷わなくて済む。建物内が複雑で経路を覚えられない患者に医師や看護師が付いて案内するのは大変であるため、こういったシステムは必要であると考えられる。

博物館や美術館などでは、搭乗者が興味のある展示物をその場で決めたり、過去の履歴から興味のありそうな展示物をシステムが解析したり、その博物館や美術館の勧める展示物などの場所に自動的に連れて行くことができる。

ショッピングモールでは買いたい物や食べたい物をクエリとして店を検索すると、その店まで案内してくれるシステムが実現できる。近年、巨大なショッピングセンターが急増しており、移動するのも大変な程の規模となっているが、ATを用いることで、手軽に、道に迷うことなく目的地に到達することができる。

また、携帯電話で通話をしながら車を運転すると、運転手の注意力が散漫になるなど、運転以外の行為をすることよって事故を引き起こしやすくなる等の問題がある。しかし、ATに搭乗した場合は、目的地までの走行が自動的に行われることから、ショッピングセンターの店舗を探し歩くときに手元の地図や屋内ナビゲーションのサービスを利用している携帯情報端末に意識を集中させながら歩くといった危険な移動をしなくてすみ、移動中も地図を見る、通信によって他者と会話をするなど、運転以外のことに集中することが可能になる。

自動走行を実現するために必要となるのが障害物の回避である。ATは自動走行を行う時に、床や天井に移動を補助するレール等を設置しないことで、車道と歩道のようにATと歩行者の移動スペースを区別することなく、協調的に動作することをコンセプトにしている。それゆえ、ATの通るところには人が入り込めるようになっている。病院やショッピングモールではたくさんの人が往来するため、自動走行をするための経路がふさがれる可能性が十分にある。他にも放置状態の荷物が置いてある場合もある。そうなったときに、ATはその人間や物を回避しながら目的地に近付く必要がある。

これまでのATによる障害物の回避は、屋内自動トランスポーテーションの過程の中で、壁沿い走行中に障害物を見つけたら真横に避け、通り過ぎたら元の経路に戻るという手法が採られてきた。この手法の問題点は、障害物回避における安全性と効率性が不十分なことである。安全性については、人間の回避を行う時に、荷物のような静止障害物を回避するときと同じように直前で回避しており、接近する人間との間隔を十分に取れておらず、人間の進行の妨げになる、衝突する恐れがあるなどの問題がある。効率性については、真横に移動して回避するため、距離が一般的に長くなってしまうことに問題がある。

人間のような移動障害物と、荷物のような静止障害物には、障害物が自らATに接近するか、そうでないかという相違点がある。ゆえに、障害物回避を開始するとき、静止障害物の場合はある程度近づいても特に問題はないが、移動障害物の場合は、確実に回避ができる程度の距離を空けなければならない。ATと移動障害物との距離が短かった場合、回避を始めようと思ったときには移動障害物とATが接触している可能性があるからである。さらに、移動障害物が人間であった場合、ATが接近することにより人間が恐怖感を覚える恐れもある。また、ATは基本的に壁沿いを走行するが、障害物を回避するときは壁から離れなければならない。これまでの手法では、障害物回避は壁沿い走行の一環として行っていたが、この手法では移動障害物に対応することはできない。走行中に静止障害物か、移動障害物かを区別できず、どちらも同じ距離から回避を開始するからである。そのため、壁沿い走行をして経路をたどるモードと、壁から離れて障害物回避に専念するモードを分け、適切なタイミングでそれらを切り替える仕組みを作らなければならない。壁沿い走行モードと障害物回避モードに分けることにより、移動障害物に対応できるようになるのに加え、それぞれに適した速度、機能を使い分けることができ、効率よく自動走行を行うことができるようになる。

ATを安全で効率的に障害物回避をさせるためには、障害物の性質に応じた適切なタイミングで壁沿い走行から障害物回避に切り替える必要がある。静止障害物を回避するときと同じタイミングで移動障害物を回避した場合、先に述べたようにATが回避をし始める前に移動障害物と接触してしまう可能性があり、移動障害物を回避するときと同じタイミングで静止障害物を回避した場合、まだ障害物から十分離れているにもかかわらず、速度が遅く、自身の位置を把握できない障害物回避モードに入ってしまうからである。

本論文では、ATの自動走行の仕組みと、効率的な障害物回避の実現のために必要な、障害物と遭遇するまでの時間の予測、および走行モードの適切な切り替えの手法について述べる。

次章以降の本論文の構成は次のようになっている。まず第2章において個人用知的移動体のコンセプトおよび構成について述べる。次に第3章では個人用知的移動体の自動走行について述べる。そして、第4章では障害物回避における障害物の予測およびそれに基づく走行モードの切り替えについて提案する。第5章では障害物回避における障害物の予測の有効性を検証するための実験と考察について述べる。第6章では関連研究を紹介し、第7章でまとめと今後の課題について述べる。

2 個人用知的移動体AT

2.1 ATのコンセプト

ATは、搭乗者である人間やAT自身を取り巻く環境に適応することで搭乗者を支援する、全方位移動・自動走行可能な個人用の乗り物である。

ATに関わる研究分野

図2.1: ATに関わる研究分野

上図に示すようにATにおける研究領域は多岐に渡っている。これは、人間と情報端末としてのATが密接に関わっているためだと考えられる。

  • ATと環境とのインタラクション

    ここでいう環境とは、物理的環境(実世界)と情報的環境(情報世界)の2つの意味を持つ。物理的環境とは、人間やATが物理的に作用しあう環境である。人間は感覚によって物理的な世界を認識するように、ATはセンサ類によって世界を認識し、人間が運動によって物理的な世界に影響を与えるように、ATはモータによって物理的な世界に影響を与える。一方、情報的環境とは、ATがアクセスできるコンテンツやサービスの集合を示している。 これに関して行われた研究に、実世界対象物の認識手法や場所に連動した情報コンテンツの利用などがある。

  • ATと人間とのインタラクション

    ATは搭乗者の特性を把握し、適応していく個人適応という研究課題がある。搭乗者によって、提示するインタフェース、ATの移動速度や加速度、搭乗者の嗜好や、その場の状況に応じた情報を提示するなどの研究が行われている。また、これまでにはATを降りた搭乗者を追尾する研究もされてきた。

  • AT間(移動体間)でのインタラクション

    移動体間通信を行うことで、AT同士が協調して走行することができる。これまでに、接近しているAT同士が衝突回避を行う研究や、無人のATが有人のATを追尾するなどの研究が行われてきた。また、AT同士の通信だけでなく、搭乗者間のコミュニケーションを共有・再利用するなどの研究も行われた。

  • ATの個体としての自律性

    人間の生活において基本的な部分をなす「移動」することを支援するために、感覚機能を強化し、障害物を回避するといった自律的に動作する研究も行われている。本研究の移動障害物の予測は主にここに位置づけられる。

以上のように、ATは搭乗者や他のAT、センサ類を用いて様々なインタラクションを実現することによって、搭乗者である人間や、環境への適応を可能としている。

2.2 ATの構成

2.2.1 オムニムーバー

我々が開発しているATの特徴の一つは、全方位に移動できることである。我々はこれをオムニムーバーと呼んでいる。これは、その場回転をして行きたい方向を向き、その方向に前進するという掃除ロボットのような機能ではなく、静止した状態でどの方向にも進めるといった機能である。これは、既存の乗り物にはない移動方法である。 我々は、この全方位移動が持つ特性を生かした障害物回避の研究を行っている。ATは障害物を回避する際に方向を変更することなく、そのまま横に移動できる。この手法には、車などの移動体のように回避するにあたって現状よりも対象に接近することなく回避することができ、方向転換に場所を取らなくてすむといった利点ある。しかし、本論文では、障害物を回避する時に真横の方向に避けるといった動作は行わない。詳細については4章にて述べる。 この全方位移動を実現するために、我々は、以前からロボットコンテストの競技用ロボットなどで採用されているオムニホイールを採用した。このホイールの外観を図に示す。オムニホイールは、ひとつの車輪に垂直に配置された複数の小さな車輪が付いている構造になっている。

オムニホイール

図2.2: オムニホイール

車輪に対して進行方向に進む場合は大きい車輪が回転し、車輪に対して垂直方向に進む場合は大きい車輪は停止し、小さい車輪が回転して横滑りしている状態になる。それぞれ独立した4つの車輪を制御することで、全方位移動、その場回転といった動作が可能になる。大きい車輪はモータによって制御することができるが、小さい車輪は動力が存在せず、転がるだけになっている。 オムニホイールの欠点としてあげられるのは、移動に対する効率が悪いことである。場合によってはオムニホイールが空転しながら移動するため、バッテリーの消費が走行距離に対して多いのである。 また、オムニホイールには弾力性がないため、走行している地面の影響を受けやすく、凹凸の激しい道ではその震動が搭乗者に直接伝わってしまう。また、車輪が円形になっていないため、走行時に騒音が出やすいのも欠点である。こういった点はまだ改善しなければならない。

2.2.2 全方位移動のメカニズム

全方位移動、およびその場回転は、図に示されるように非平行に設置された4個のオムニホイールを個別に制御することによって実現している。オムニホイールとベルトでつながれた高トルク(750W)のサーボモータは任意の速度制御が可能である。

全方位移動のメカニズム

図2.3: 全方位移動のメカニズム

前進させる場合は、図の(A)と(C)のタイヤを正転(図の正の向きに回転)させ、(B)と(D)を反転(図の負の向きに回転)させることで実現することができる。斜め方向に走行させる場合は、右斜め前に移動する場合を例にとると、(A)のタイヤを正転、(D)のタイヤを反転させ、(B)と(C)のタイヤを停止させてそれらに付いている小さいタイヤを転がすことで実現することができる。また、任意の方向に走行させる場合は、それぞれのタイヤの回転数を微妙に調節することによって実現することができる。このように、正面を向いたまま任意の方向に走行できるため、図のように障害物回避をスムーズに行うことができる。なお、その場回転は、4つのタイヤをすべて正転または反転することによって実現できる。

全方位移動による障害物回避

図2.4: 全方位移動による障害物回避

2.3 システムの構成

個人用知的移動体AT

図2.5: 個人用知的移動体AT

現在我々の研究で用いているATの外観を図に示す。ATの車体にはアルミが使用され、オムニホイールと高トルクのサーボモータが使用されている。車体の幅は、扉やエレベータの入り口を通り抜けることが可能なサイズに抑えられている。人間は立った状態でATに搭乗し、手元のジョイスティックで操縦する。

システム構成

図2.6: システム構成

システム構成図を図に示す。モータのコントロールにはシーケンサが用いられ、ATに搭載されているPCからの進行方向や速度に関する命令から、各モータの速度を計算している。モータコントローラはその速度に合わせてモータのトルクを調節している。

ATは環境の情報を取得しながら自動走行を行っている。自身の位置、周囲の障害物、対象のオブジェクトの詳細などの情報はすべて環境から取得しなければならない。我々は、環境からの情報取得を行うために以下のデバイスを用いた。

表2.1:環境情報を取得するデバイス

センサデバイス名

使用目的

レーザーレンジセンサ

壁沿い走行、障害物回避など幅広く利用されている

RFIDリーダ

自身の位置と地図との照合、目的地の認識などに利用されている

焦電型MPモーションセンサ

人間を回避するときに、人間の存在を検知する

カメラ

ATの周囲の景色を撮影する。また、赤外線IDを認識しコンソール上の映像に結果を反映させる

3軸センサ

自身の向きを知るために利用されている

以前の研究では距離の測定にPSDセンサを用いていたが、以下の利点を考え、本研究ではPSDセンサの代わりにレーザーレンジセンサ(仕様は付録に記載する。)を使用する。

  • レーザーレンジセンサは、PSDセンサに比べて計測距離が長い。PSDセンサは1.5m程しか計測できなかったが、レーザーレンジセンサは、前面は最大30mまで、右、左、後ろは8mの距離まで計測することができる。計測距離が延びることで、ATの走行速度を上げることができる。走行速度を上げると、低速度で走行している時よりも停止するまでの距離が延びるため、より遠くまで障害物があるかどうかを調べなければならない。

  • PSDセンサは赤外線の当たっている点までの距離を計測する仕組みなので、センサを向けている角度に対する距離情報しか取得できていないため、周囲の状況を把握するのには不十分である。死角が多く、ATに移動障害物が近づいてきたとしても、センサの向いていない方向から接近してきた場合、ATはその障害物を検知することができず、最悪衝突してしまう恐れがある。しかし、レーザーレンジセンサは1台で複数の角度に対する距離を測定することができ、4台使用することで360°の状況を把握することができる。

  • 上に関連して、ATは自動走行をする際、壁と一定距離をとる仕組みになっているため、PSDセンサを用いて凹凸のある壁に沿って走行する場合は、左右にぶれやすくなってしまう。しかし、レーザーレンジセンサならば、レンジを持たせて壁を見ることができるため、ある程度の凹凸は平均値を出すことによって吸収することができる。

また、ATの制御には4台のPCが使用されており、その中でモータの制御、センサデバイスの制御などを行っている。これらのPCは互いに無線によって接続されており、モータ制御PCとシーケンサは有線によって接続されている。それぞれの役割について以下で述べる。

  • モータ制御PC

    ATの後方部、上の段に設置されたPCであり、モータに繋がるシーケンサなどの制御系デバイスが接続されている。このPCではC#によるMCServer(モータコントロールサーバ)が組み込まれており、ここでモータの制御を行っている。また、各PCからのモータ制御の命令はこのPCを介して行われる。他にも、RFIDタグのIDを保持するRFIDサーバも組み込まれており、走行中に読んだタグを、前・右・左それぞれ10個まで保持することができる。読み取ったタグの情報は、一定時間が経過すると破棄される。これは、最後にタグを読み取ってから時間が経ってしまうと、そのタグは位置情報として役に立たないものになるためである。

  • レンジセンササーバPC

    ATの後方部、下の段に設置されたPCであり、C++で実装されたレンジセンササーバが組み込まれている。レンジセンササーバは、ATの周囲の物体までの距離を常に測定しており、この値を利用して自動走行や、マニュアル走行時の衝突回避が行われている。

  • コンソール・カメラPC

    搭乗者の手元に設置されたPCであり、タッチパネルが備えられている。このPCのディスプレイにJavaScriptで実装された操作用コンソールが表示され、搭乗者はこの画面から目的地を設定することができる。また、このPCにはUSBカメラが接続されており、操作用コンソールと共にATの周囲の映像を表示できるようになっている。

  • 自動走行PC

    Javaで実装された自動走行のタスクを実行するプログラムはこのPCで実行されている。他にもこのPCにはJavaで実装されたMCClient(モータコントロールクライアント)が組み込まれており、MCServerに対する命令は全てここを経由し、AT内部のネットワークを介してMCServerに送られる。

各PCが他のPCにどのように働きかけるかを図にて示す。

各PCが他のPCに与える指示

図2.7: 各PCが他のPCに与える指示

環境側には複数のサーバを設置した。ATは自動走行をする際にこれらのサーバに対して問い合わせを行い、情報を得る。

  • モーションセンササーバ

    焦電センサを管理しているサーバ。モーションセンササーバは、人間との接触・衝突回避を行う際にATが焦電センサの前を通った人間の情報を問い合わせるために用いられる。この手法については4章にて詳細に述べる。モーションセンササーバは交差点ごとに置かれることを想定しており、一つのモーションセンササーバには最大4組8個の焦電センサが接続される。

  • 地図サーバ

    建物ごとに設置されているサーバ。地図サーバは、その建物内の地図、RFIDタグのIDとその位置、RFID間の距離を保持するデータベースを持っている。ATは建物に進入したときに地図サーバにアクセスし、地図情報を取得するため、初めて訪れる建物内でも自身の位置を認識し、自動走行を行うことができる。

2.4 操縦インタフェース

ATを操縦するときは、手元のコントローラのアナログスティックを倒したり、ボタンを押したりする。将来的には、AT利用者は全員、個人を識別するIDが保持された自分専用のコントローラを所持することを想定している。これは、所有者の操縦履歴や嗜好を記録することにより、目的地や走行速度、提示される情報をカスタマイズするためである。コントローラとコンソールの詳細は図の通りである。

コンソール画面とコントローラ

図2.8: コンソール画面とコントローラ

  • コントローラ

    ATには2種類のコントローラが備え付けられている。1つ目は、マニュアル走行を行うための、アナログスティックのついた有線のコントローラである。アナログスティックを倒す向きと角度によってATの方向とスピードを決めることができる。また、図の人差し指に当たるボタンを押しながらアナログスティックを倒すと、その場回転をすることができる。このコントローラはモータ制御PCとUSBケーブルで接続されている。このコントローラは、ATに装着したまま使うことも、手に取って使うこともできる。

    2つ目は、ATを外から操作するための、十字キーのついた無線のコントローラである。このリモコンは、ATを降りてから操作するために備え付けられている。ATとはBluetoothと呼ばれる通信手段によって接続されており、ATとは物理的に接続されていないため、離れたところからも操作することができるようになっている。十字キーによって 8 方向に移動させることができ、'+', '-' ボタンによって右回転、左回転をさせることができる。

  • コンソール

    コンソール・カメラPCのディスプレイに表示されている、ATを操作するためのインタフェース。コンソールは2種類存在し、一つ目は、目的地の設定、出発のタイミングを決定するための物で、二つ目は、ATの四方に取り付けられているカメラのリアルタイムの映像を表示している物である。上下左右のサムネイルは、ATの前後左右のカメラの映像に対応しており、サムネイルをタップすることによって、中心の大きな画面にそのサムネイルの映像を表示することができる。目的地や走行中に発見したオブジェクトからの赤外線を受信すると、画面上にアイコンがオーバーレイされる。そのアイコンをタップすると、新しいウィンドウが開き、対象についての詳細な情報が動画として再生される。たとえば、ショッピングモールでは、その店がどのようなものを売っているか、お勧めの商品やメニューの紹介や、イベントがある時にはプログラムなどが表示される。美術館や博物館ではその作品の作者の説明や歴史的背景など、詳細な情報を得ることができる。

3 個人用知的移動体による自動走行

3.1 自動走行を構成する要素

ATは自動走行を行う際、後述するように、地図情報から、出発地から目的地までの最短移動経路を計算し、それを基に出発地から目的地までの一連の動作を生成する。この一連の動作のことを走行タスクと呼ぶ。走行タスクはプロセスと呼ばれる5種類の動作の単位に分割される。プロセスはさらにコマンドと呼ばれる細かい命令の単位に分割される。同じプロセスでも、パラメータによって異なるコマンドの集合に変換される。たとえば、走行中に指定した角度の距離が指定した距離以上、または以下だった場合に走行を終了するMoveWithDistanceというプロセスの場合、条件を満たしていない状態では指定した角度の距離を測定するコマンドのみを実行しているが、その角度の距離が指定した距離以上または以下になった場合は、ATを停止させるコマンドを実行する。そのコマンドがソケット通信によってMCServerに送られ、シーケンサに対するコマンドに翻訳され、LANケーブルを経由して送られ、シーケンサがそれを各モータに伝えることによって自動走行を実現している。

この章では、命令の最小単位であるコマンド(表)、コマンドの集合であるプロセス(表)、プロセスを組み合わせて作る動作についての説明を行い、自動走行に必要な自身の位置推定について述べ、最後にそれらを応用した、目的地までの自動走行について説明する。

3.1.1 コマンドの説明

ATに対する命令の最小単位であるコマンドについて一つずつ詳細に説明する。

表3.1:モータへのコマンド一覧

まず、平行化コマンドは、ApproachWallとMoveWithTagで使用されている。ApproachWallではこのコマンドしか使用されていないが、MoveWithTagではATが壁と一定距離をとることができるようにしている。

壁接近コマンドは、ParallelToWallとMoveWithTagで使用されている。このコマンドは動作の開始と、動作完了の確認の2つの機能を持っている。このコマンドが起動している最中に同じコマンドを送信すると、それが動作完了確認のコマンドになる。最初は、壁が存在する範囲の開始角度・壁が存在する範囲の終了角度・壁に向けたいATの側面の角度、という3つの引数を用いて命令を送るが、2回目以降は、回転後に壁の存在する範囲の開始角度・回転後に壁の存在する範囲の終了角度・ATのどの側面が壁を向いた状態で終了するか、という3つの引数を用いて命令を送る。MoveWithTagでは、平行化コマンドと共に用いられ、ATが壁と平行になりながら走行することができるようにしている。

平行移動コマンドは、MoveWithTagとMoveWithDistanceで使用されている。引数は、モータの回転数・走行する方向・物体がATまでどの程度近づいたらATを停止させるか、の3つである。走行する方向とは、ATがその向きを向いて前進するということではなく、その方向に横滑り移動するということである。第三引数については後述する。

最短距離測定コマンドは、MoveWithDistanceで使用されている。引数は、壁が存在する範囲の開始角度・壁が存在する範囲の終了角度、の2つである。レーザーレンジセンサによって360°それぞれの距離を測定し、その中の最小値と、その角度を返す。MoveWithDistanceでは、横の壁がなくなって交差点に進入したか、逆に、交差点から通路に進入したかの判定のために用いられる。この動作については後述する。

回転コマンドは、Turnで使用されている。このコマンドも1回目に送信するのと、このコマンドが実行中に送信するのとで機能が異なる。1回目はATを何度回転させたいかを引数とするが、実行中に送った場合、3軸角度センサの値を確認しながら、指定した角度だけ回転したかどうかを判定するために使用される。

速度計測コマンドは、MoveWithTagとMoveWithDistanceで使用されている。平行移動コマンドの第三引数として、どの距離までATが何かに接近したら停止するというものがあると述べたが、そこでATが停止したときに、ATの速度が低下するので、その時に走行の処理を終了する。その時の速度が一定値以下になったかどうかの判定を行うために使用するコマンドである。このコマンドはフェイルセーフのための機能として存在している。

3.1.2 プロセスの説明

ATには5つのプロセスが存在し、それらを組み合わせることによって自動走行を実現している。5つのプロセスをそれぞれ定義し、その後それぞれの動作について詳細に述べる

表3.2:各プロセスの機能

【ApproachWall】 ATは、RFIDタグを読み取るため、また、壁との距離を計測して自身の位置を把握するために壁に接近しなければならない。そのために必要なのが壁に接近する機能である。

接近したい壁の存在する角度の範囲と、その壁までどれだけ近づくかを指定すると、ATはその指定した壁からの距離まで移動し、その距離まで到達したときに停止する。指定した距離よりも壁から離れていた場合は壁に接近し、近かった場合は壁から離れる。

【ParallelToWall】ATは、壁沿い走行を実現するために、壁と平行にならなければならない。ATが走行時に必ずまっすぐ進むという保証はなく、走行している間に進行方向が変わってしまうことがある。そのために必要なのが壁と平行になる機能である。先に紹介したApproachWallと共に使用することで、ATは走行中に壁を手がかりにして壁から一定距離を保ち、かつ壁と平行になり、まっすぐ走行することができるようになる。

対象となる壁の存在する角度の範囲と、ATのどの面をその壁と平行にしたいかを指定すると、ATはその場回転を行い、指定した面を指定した壁に向けようとする。指定したATの面と指定した向きに存在する壁が平行になったときに停止する。

【MoveWithTag】自動走行をする際、ATは地図上の自身の位置を把握しなければならない。自身の位置を把握していなければ、現在どこを走行しているかが分からないため、目的地まで到達することができないからである。我々は、ATが自身の位置を把握するために、環境にRFIDタグを設置している。ATがRFIDタグを読み取ることによって、目的地までの経路の作成や、交差点右左折などのきっかけを見つけることができる。

MoveWithTagのフローを図に示す。

MoveWithTagのフローチャート

図3.1: MoveWithTagのフローチャート

まず走行開始コマンドをMCServerに送り、走行開始した後は、停止タグに設定したRFIDタグを読み取るか、障害物回避モードに入るか、ATが突き当りの壁に近づくなどして停止するまで走行を続ける。壁沿い走行中は、壁に近づきすぎず、離れすぎず走行しなければならない。そのため、ループ処理によって、一定時間ごとに壁と平行になるコマンド、及び壁と一定の距離をとるコマンドを送っている。こうすることで壁と一定の距離(本研究では、経験的に50cmとしている。)を保ったまま壁と平行に移動することが実現できる。

RFIDタグを読んだときは、それが目的地のタグだった場合、ループを終了して、呼び出し元に戻り、次のプロセスを実行する。

【MoveWithDistance】自動走行中に自身の位置を、タグの存在しない場所で把握しなければならないことがある。たとえば、交差点である。

交差点の右折を例にとると、交差点に差し掛かった後、右折ができるようになるまで交差点に入ったか、つまり、ATの右にあった壁が無くなったかどうかの情報が必要になる。

MoveWithDistanceのフローを図に示す。

MoveWithDistanceのフローチャート

図3.2: MoveWithDistanceのフローチャート

MoveWithTagと似ているが、こちらのプロセスでは終了条件がRFIDタグの読み取りではなく、指定方向の距離が一定値以上または一定値以下になったかどうかとなっている。一定値以上か一定値以下かの選択は、コマンドを送るときの引数によって決定される。

また、MoveWithTagのように壁と一定距離を保って走行することはしない。なぜなら、このコマンドの主な使用目的は交差点での右左折であり、交差点に進入した時点でATは壁沿い走行をしなくなるからである。もしも壁と一定距離をとって走行した場合、壁沿い走行をしたのち、交差点に差し掛かった瞬間ATの横にあった壁がなくなり、それでも壁と一定距離を取ろうとするので、まだ完全に交差点に入りきっていないにもかかわらず図のように壁に向かって突進してしまうのである。

正面の距離を測定した場合の動作

図3.3: 正面の距離を測定した場合の動作

このプロセスでは壁を手がかりにせずに走行するため、MoveWithDistanceを実行する前に必ずParallelToWallを実行する必要がある。ParallelToWallを使用しなかった場合、ATと壁が平行になっていないにも関わらず走行してしまうため、ATが壁から離れていってしまって、交差点進入時の判定が正しく行われなくなってしまったり、壁と衝突してしまう恐れがある。

【Turn】このプロセスは、ParallelToWallと同じようにATをその場回転させる機能であるが、異なる点は、壁を基準にしないという点である。数値を指定することによってその角度だけATが回転し、指定した角度だけ回転したら停止する。

なお、これらのプロセスの中で、角度を指定する場合、角度の基準は図のように、ATの正面が0°であり、ATの右側が正、左側は負、ATの背面は±180°で表す。これらの角度を、始点から終点が時計回りになるように指定する。これをATに対する角度とする。

ATに対する角度

図3.4: ATに対する角度

3.1.3 プロセスの組み合わせについて

  • 交差点の右左折

    交差点の右左折の手順を示したのが図である。

    ATが右壁沿いを走っており、交差点を右折する場合を例にとる。

    まず、ATが交差点直前に設置してあるRFIDタグを読んだとき、右にある壁にATの正面を向ける。そのままMoveWithDistanceによって横向きに走行しながら交差点に進入する。

    のように、ATから見て斜め前の、右折する先の壁との距離を測りながら交差点に進入し、その壁と一定以上の距離を離れた場合は交差点に完全に進入できたと判断して処理を終了する。その後下図の赤い矢印の方向の距離を測定しながら前進する。

    の赤い矢印の方向の距離が一定値以下になった場合は、完全に目的の経路に進入できたと判断し、右側にある壁にApproachWallによって接近し、ParallelToWallで平行になり、次のプロセスを実行する。

    距離の測定を斜め方向ではなく、真横に対して行った場合、図のように、まだATが交差点に完全に進入していない状態で次の処理を行ってしまうため、前進したときに壁の角に衝突してしまう。

  • 以上のことを考えて、我々はcの方向に走行し、手掛かりとなる壁を見つけたのちに目的の経路に移動する方法をとる。交差点の直進移動の手順を示したものが図である。

    右壁沿いをしている状態で交差点を直進する場合を例にとる。まず、ATが交差点直前に設置してあるRFIDタグを読んだとき、MoveWithDistanceモードに入り、前進しながら交差点に進入する。

    交差点の直進

    交差点の右左折と同様に、直進についてもプロセスの組み合わせによって実現することができる。交差点直進を行う場合はATの横に壁が存在しないため、壁沿い走行を行うことができない。ここで問題になるのが、ATの位置と進行方向を知るための手がかりがなくなること である。ATは壁を用いて自身の位置と進行方向を把握しているため、壁がない状態で走行すると、自身がどこにいて、どの向きを向いて走行しているのかというのが分からなくなってしまう。そうなった場合、正しく交差点を越えて再び壁沿いまで移動するのが非常に困難になる。

    の場合、正しく交差点直進を行おうとした場合、aの経路をたどらなければならない。しかし、先に述べたように、ATは壁を手掛かりにせず走行した場合、aに走れる保証はない。最悪bの方向に走行すれば、まだ交差点を通過することができる。cの方向に進んだ場合、交差点を通過することができないが、手掛かりとなる壁に接近することはできる。

    のように、ATから見て斜め後ろの交差点の壁との距離を測りながら交差点に進入し、一定以上の距離を離れた場合は交差点に完全に進入できたと判断して処理を終了する。その後、図の矢印の方向に対してApproachWallを行う。これにより、反対側の壁に対してATの正面を向けることができる。

    その後は交差点右折と同じ要領で図のように再び交差点に進入し、ATの正面から壁がなくなったのち、前進する。ATが完全に対面の道路に入った時に横の壁に対してParallelToWallを行い、壁と平行になり、次のプロセスに移行する。

    交差点内では、可能な限り慎重で安全に走行すべきなので、このような若干非効率的な動き方になる。しかし、この方法は搭乗している人間から見ると不自然な動きであり、理想的なものではないので改善の余地がある。

  • 突き当りの壁での右左折

    自動走行中に右左折するのは交差点だけではなく、突き当りに壁が存在したときにも行われる。

    ここで使用されるのはMoveWithTagとApproachWallである。突き当りの直前のタグを読んだときに、ATはこの先が突き当りになっているということを把握しているため、MoveWithTagを終了させてApproachWallを実行する。ここでのApproachWallの引数は、壁の存在する方向は30°、反対側は45°の範囲を指定し、正面の壁に対して接近する。図の場合は、-30°から45°となる。

    ApproachWallによる壁への接近が完了したら、次のプロセスを実行する。

3.2 壁沿い走行時の位置推定

3.2.1 RFIDタグによる位置推定

自動走行によって目的地に到達するためには自身の位置を知らなければならない。本研究では、ATの位置と地図とを対応させるためにRFIDタグを用いている。RFIDタグを環境に設置し、それらを地図と対応させることによって、それを読み取ったATがRFIDのタグ番号から現在位置を知ることができる。また、ATに備え付けられている前方と左右のRFIDリーダのうち、どのリーダで読み取ったかによって現在ATがどちらを向いているかということも知ることができる。

3.2.2 壁による位置推定

RFIDタグは壁に設置されているため、ATは必然的に壁沿いを走行しなければならない。しかし、壁沿いを走行するのには他にも理由がある。それは、壁を手がかりにすることによってAT自身の存在する位置の候補をある程度絞り込むためである。たとえば、壁から離れている状態で、壁に設置されているRFIDタグを読むと、ATが向いている角度、RFIDタグからの距離が全く分からない。どのリーダでタグを読んだかという情報からATのおおよその向きを知ることができるが、図、図のように、ATの前面が壁側を向いているか、壁とは反対方向を向いているかといった情報は得ることができない。壁沿いならば、壁を頼りにATを壁と平行にすることができるため、方向を一意に決めることができる。

ATが壁側に傾いている

図3.5: ATが壁側に傾いている

ATが壁とは反対方向に傾いている

図3.6: ATが壁とは反対方向に傾いている

RFIDリーダは、タグの読み取り範囲を調節できるため、範囲を狭めることでATの位置推定の精度を向上させることができる。しかし、ATの速度が上がった場合、RFIDタグを読む時間があまりにも短くなり、読み取れなくなる恐れがある。そこで、ある程度速度を上げても読み取れるようにRFIDリーダの読み取り範囲を広げた。しかし、読み取り範囲を広げると、向かいの壁に設置されているRFIDタグまで読み取ってしまう恐れがある。それを防ぐためにATが沿っている壁の方向のRFIDリーダのみを読み取り可能になるようにした。プロセスが切り替わるたびに現在沿っている壁に面しているRFIDリーダの読み取りができるようにし、その他のRFIDリーダは読み取りをしないようにしている。

3.3 目的地までの自動走行

この章で解説したプロセス、プロセスの組み合わせ、自身の位置推定を応用することで、ATによる現在位置から目的地までの自動走行を実現することができる

まず、搭乗者はATに搭乗し、コンソール画面を用いて目的地を設定する。目的地の設定は、直接指定しても良いし、どういったところに行きたいかを検索にかけて、その結果を目的地としても良い。図に目的地の設定例を示す。図では、見たいポスターを直接選択しており、選択された項目は赤枠で囲まれている。この場合、ATは選択したポスターの前に到着するごとに停止する。目的地を設定し終わると、今度はATが自身の位置を把握する段階に入る。ATはレーザーレンジセンサを用いて、壁までの距離が最も短い角度を指定してApproachWallを実行する。ATが壁に接近したら、RFIDタグが見つかるまで徐行する。タグを見つけたら地図に問い合わせ、そのタグの地図上の位置から自身がいる場所を把握する。ここまでで現在地と目的地が決定したことになる。

目的地の設定例

図3.7: 目的地の設定例

現在地と目的地が決定すると、次に最短経路を計算する段階に入る。

ここでは、図に示される地図に基づいて説明する。現在位置をA、目的地をIとする。そして、データベースに基づいてその二点をつなぐ経路を計算する。経路とは、目的地まで走行する途中で通過すべきRFIDタグのIDを通過すべき順に並べたものである。これを可能な限り距離を短く、そして壁沿いを走行するように決定する。

屋内地図

図3.8: 屋内地図

経路が決定したら、動作のプランを決定する。動作のプランとは以下に挙げる6つの基本動作を組み合わせたものである。

  • 壁沿い直進
  • 交差点の右左折
  • 突き当りの右左折
  • 交差点の直進
  • 沿う壁の変更
  • その場回転

1番目から5番目の基本動作にはそれぞれ進行方向があるため、6番目の基本動作であるその場回転により、各動作をつなぐ必要がある。

ではタグAを出発点とし、タグIを目的地としている。この間を最短距離で移動するためには、図の経路を通る必要があり、以下の手順で走行することになる。

  • タグAを出発
  • 交差点を左折
  • タグBを通過
  • 交差点を直進
  • タグFを通過
  • 突き当りを右折
  • タグIに到着

これを実現するための動作のプランは以下の通りである。なお、動作のプランで右折・左折のどちらか、右壁沿い・左壁沿いのどちらで走行するかは、走行経路が決まったときに決定する。

  • その場回転 (壁の方向を向く)
  • 交差点の右左折 (左折)
  • 交差点の直進 (左壁沿い)
  • 突き当りの右左折 (右折)

これらはまだプランの段階であり、実際に走行を実現するものではない。

ここまで決定したら、3.1で述べた走行タスクに変換することができる。動作プラン中の各基本動作はとプロセスの組み合わせは決まっているため、走行タスクは動作プランから一意に決定することが可能である。走行タスクが生成されると、ATは移動を開始できる。

生成された動作のプランに対応する走行タスクは以下の通りである。

その場回転

  • ParallelToWall (90°左回り)

交差点左折

  • MoveWithDistance (交差点に出る)
  • MoveWithDistance (目的の通路に入る)
  • ApproachWall (目的の通路の壁に接近)
  • ParallelToWall (その壁と平行になる)
  • MoveWithTag (‘B’まで走行)

交差点直進

  • MoveWithDistance (交差点に出る)
  • ApproachWall (図中の’E’の上側の壁に接近)
  • ParalleToWall (その壁と平行になる)
  • MoveWithDistance (交差点に出る)
  • MoveWithDistance (目的の通路に入る)
  • ApproachWall (目的の通路の壁に接近)
  • ParallelToWall (その壁と平行になる)
  • MoveWithTag (‘F’まで走行)

突き当り右折

  • ApproachWall (突き当りの壁まで接近)
  • ParallelToWall (90°右回り)
  • MoveWithTag (‘I’まで走行)

目的地まではこのタスク通りに、壁沿い走行や交差点の右左折・直進、突き当りでの右左折などの動作を行いながら移動する。また、RFIDタグを用いて適宜自身の位置を把握し、コースから外れていないかの確認も行う。

目的地に到着すると、到着したことを搭乗者に伝え、ATの自動走行を終了する。

3.4 まとめ

この章では自動走行のための基本的な動作、自身の位置の認識、それらを応用した目的地までの自動走行の方法について述べたが、これだけでは目的地に到着することはできない。建物内を走行していると、障害物に遭遇することがある。そのため、これを回避する動作が必要となる。ATによる障害物の自動回避について次章で述べる。

4 障害物の自動回避

4.1 自動走行時のモード

ATの自動走行には、3章で述べた機能を用いながら壁沿いを走行し、決められた経路をたどる壁沿い走行モードと、障害物を回避するための障害物回避モードの二つのモードが存在する。壁沿い走行モードでは、壁やRFIDタグを手がかりにしながら、壁沿い走行・交差点右左折などの動きを組み合わせて、地図に基づいて生成された経路に沿って走行する。障害物回避モードでは、基本的には障害物を避け、空いている空間に移動しようとするが、人間のような移動障害物が存在した場合、その移動ベクトルを計算し、その移動障害物がこれから通るであろう場所には侵入しない仕組みになっている。空いている空間に余裕がある場合は、目的地までの距離が最も短くなるような進路を選択して走行する。壁沿い走行モードでは壁に近づく必要があり、障害物回避モードでは動作の過程で壁から離れる仕組みになっているため、二つの機能は相反するものとなっている。そのため両立することはできず、適切なタイミングで切り替えを行う必要がある。

また、壁沿い走行のみで自動走行した場合、滑らかに回避できない、移動障害物を考慮した回避ができない、などといった問題が生じる。また、壁沿い走行時は壁に沿って走行しているため、障害物を回避するために一時的に壁から離れるというのは非効率的である。

逆に障害物回避モードのみで走行した場合、設定した経路をたどることができない、低速で慎重に障害物を回避するため移動に時間がかかる、といった問題が生じる。障害物回避モードでは、障害物を回避するために空いている空間に向かって進むので、設定したコースから大きく外れる問題がある。このモードでもRFIDタグを読み取ることはできるが、回避行動の方が優先され、RFIDタグを考慮した動きを行うことはできない。

このように単一のモードのみでは安全で効率的な自動走行を実現することができない。2つのモードを場面に合わせて適切に切り替えることにより、安全に障害物を回避し、障害物のないところでは速度を上げることで、目的地に到着する効率を向上させることができる。

なお、本論文では、移動障害物は人間であるということを前提として述べる。

4.2 障害物の検出

適切なタイミングで障害物回避を行うためには、その障害物が静止しているか、移動しているかを判別する必要がある。本節では静止障害物、移動障害物のそれぞれの検出方法について述べる。

4.2.1 静止障害物の検出

静止障害物の認識は、レーザーレンジセンサによって行われる。図のように、ATの進行方向上の、ATの幅分で3m以内に障害物が存在した場合、ATはそこに静止障害物があると判断する。静止障害物を回避する場合、それにぶつからずに回避することだけを考えて移動すればよいため、比較的容易に回避することができる。

静止障害物の検出

図4.1: 静止障害物の検出

4.2.2 移動障害物の検出

移動障害物は静止障害物よりも離れた距離で認識しなければならない。静止障害物ならばある程度近づいてから回避しても問題ないが、移動障害物はそれ自身が移動しているため、ある程度近づいてしまうと、衝突の危険がある上に、移動障害物が人間であった場合、ATが接近することによって恐怖感を与える恐れがあるからである。そのため、移動障害物の場合は、静止障害物よりも距離の長い地点で回避を開始することが妥当であると考えられる。本来ならば、ATの速度と人間の速度を考慮して回避を開始する距離を決定する必要があるが、本研究ではATの速度を踏まえ、人間の回避を開始するために壁沿い走行モードから障害物回避モードに切り替える距離を10mと設定して話を進める。静止障害物ならば3mで、移動障害物ならば10mで回避を開始したいが、それを行うためには、その時点でそれらが静止障害物か、移動障害物かを把握している必要がある。しかし、壁沿い走行モードでは、障害物とATが10m離れている時点で、それが移動障害物なのか、静止障害物なのかを区別することを行っていない。壁沿い走行モードのときに移動ベクトルを考慮しない理由は、人間が接近したときに必ずしも移動ベクトルを検出することができるとは限らないからである。たとえば、ATが交差点に差し掛かった時、人間がATの走行している通路と交わる通路を歩行している場合、ATと人間の間には壁が存在することになる。レーザーレンジセンサで距離を測定できるのは壁までであり、人間までの距離を測定することはできない。つまり、壁の存在によって人間のいる位置がATにとって死角になるのである。そのため、移動障害物の検知をレーザーレンジセンサで行うと見落としてしまう可能性がある。そのため、壁沿い走行モード時の移動障害物と静止障害物の識別はレーザーレンジセンサ以外の手段を併用する必要がある。

本研究で移動障害物の検知に使用したのは、焦電センサ(焦電型MPモーションセンサNaPiOn、図)である。我々は、検知した結果から人間の速度を推定するため、アナログ型の焦電センサを使用した。焦電センサは、周囲と温度差がある人や物が動く際に発生する赤外線の変化を検出するセンサである。

焦電型MPモーションセンサ

図4.2: 焦電型MPモーションセンサ

焦電センサは常に赤外線の変化を値として取得している。図と図は、焦電センサが取得した値を可視化したものである。それぞれの図の正方形の点で値が示されている線は焦電センサが実際に取得した値(最小値:0、最大値:999)である。ひし形の点で値が示されている線は実際に取得された値と、一回前に取得された値の差分の値(最小値:-999、最大値:999)である。横軸は時間であり、200ms単位で各焦電センサから値を取得している。人間が焦電センサの前を通っていないときは図のように安定した値を取得し、人間が焦電センサの前を通った時は、図のように上下した値を取得する。安定している状態で取得されている値が600付近であるため、便宜的にこの値を基準値と呼ぶ。焦電センサを管理するMSServer(モーションセンササーバ)は人間が焦電センサの前を通ったことによって値が変化してから人間が焦電センサの前からいなくなって値が安定するまでの間の値を記録している。人間が焦電センサの前を通ったと判断する条件は、差分の値の絶対値が100を超えたときである。焦電センサが移動している物体に反応していない場合は常に図のような値を示すため、差分の絶対値が100を超えることはない。人間が焦電センサの前を去ったと判断する条件は、差分の値の絶対値が3回連続で100を下回った場合である。人間に反応している間にも差分の値が100を下回ることがあるが、人間に反応し続けているので、値はさらに変動する。そのため、3回以上差分の値の絶対値が100を下回るのは値が安定したときのみであると考えられる。また、3回という分析窓長に設定した理由は、人間が通り過ぎたらなるべく早く反応していない状態に切り替えたいためである。人間が通り過ぎてセンサの値が安定したところで人間の速度の推定を行う。

焦電センサが移動している物体に反応していない場合

図4.3: 焦電センサが移動している物体に反応していない場合

焦電センサが移動している物体に反応している場合

図4.4: 焦電センサが移動している物体に反応している場合

人間が通過したことを検知するために、焦電センサを用いるよりもカメラを用い、画像処理を行った方が多くの情報を得ることができ、精度良く測定できると考えられるが、人間を検知する装置は、交差点で交わる各通路、出入り口付近など、数多くの場所に置くことを想定しているため、設置コストがかかる。また、焦電センサを用いた方が反応性、処理の簡易さという観点から見て効率的である上に、この手法で必要となるものは人間の速度のみであるため焦電センサで十分であると考えられる。そのため、本研究では人間の検知にカメラではなく、焦電センサを用いることにした。

しかし、焦電センサをRFIDタグのように数多くの場所に設置しようとしても、現実的には困難である。それは、焦電センサはRFIDタグとは違い、電源を必要とするため、また、サーバと通信するためのネットワーク環境を必要とするためである。無線を使うことでネットワークの問題を解決することはそれほど困難ではないが、センサを無数に配置するのは電源供給の観点から一般的に困難である。将来的にどこでも電源が取得できるような環境が実現された場合、センサが反応した場所に人間がいるということが分かるため、人間と遭遇する時刻の予測がより精度よく行えるようになる。

4.3 移動障害物の速度の推定

4.3.1 モーションセンササーバ

MSServerは、焦電センサを管理するサーバで、人間の速さ・方向・通過時刻を格納するデータリストを持っている。焦電センサの前を人間が通ったことによって得られたデータを解析し、人間の速度の推定を行う。速度の推定を終えると、そのデータリストに通過した人間の速さ・方向・通過時刻を格納する。

焦電センサにはそれぞれIDが割り当てられており、環境が持つ地図上にその位置が登録されている。ATは走行経路上にある最も近い焦電センサが接続されているMSServerに、ある時間範囲内にセンサの前を通過した人間の情報を問い合わせる。その焦電センサが反応していた場合、MSServerはATにその時間の人間の通過回数、方向を含めた速度、通過時刻と現在時刻の差分を返す。ATはその情報を元に移動障害物といつ遭遇するかを計算する。遭遇予測時刻後に、10m以内にレンジセンサによって障害物の存在を確認したら、その障害物は移動障害物であると判断する。

焦電センサで人間を確認したのちにレーザーレンジセンサでさらに存在を確認している理由は、焦電センサの前を通った人間が必ずしもATの前に現れるとは限らないからである。焦電センサの前を通った人間がATの前に現れる以外に考えられる行動は、折り返す、焦電センサとATの間に存在する部屋に入る、交差点で曲がった、などが挙げられる。人間がATに接近してこないならば、障害物回避モードに移行する必要はない。レーザーレンジセンサを併用することによって、焦電センサの前を通過した人間が本当にATに接近しているかを確認することができる。

4.3.2 速度推定のためのシステム

ATと人間との遭遇予測時刻を計算するために必要なものの一つが、人間の速度である。本研究では人間の速度を直接求めるのではなく、焦電センサによって取得された値を用いることによって、パターン認識的に速度を求めることにした。先に述べたように、我々は、人間の速度を識別するためにアナログ型の焦電センサを使用した。

環境に設置される焦電センサユニット

図4.5: 環境に設置される焦電センサユニット

焦電センサの設置方法

図4.6: 焦電センサの設置方法

焦電センサは、図のように、二つ一組をユニットとして、交差点や出入り口の前などに、壁と平行に設置されている。図に焦電センサユニットを廊下に設置した状態で上から見た図を示す。二つのセンサの間隔は1mである。廊下などに設置された焦電センサの前を人間が通ることによって、焦電センサは人間を検出する。焦電センサは最大4組8個がMSServerに接続されており、焦電センサが取得した歩行者のデータをサーバが保持し、そのサーバからATに情報を送信することができる。図にてMSServerの構成を示す。

モーションセンササーバの構成

図4.7: モーションセンササーバの構成

4.3.3 人間の速度の推定

ATはまず地図に対して最寄りの焦電センサの場所を問い合わせ、その焦電センサが接続されているMSServerに対して常時問い合わせを行い、そのセンサに関する情報をATが取得する。その情報を元に、ATはそのセンサの前を通って接近してくる人間と遭遇する時刻を計算する。

なお、本研究ではセンサの前を一度に通る人間は1人だけであるという前提の下で行われている。焦電センサが取得した値から、ほぼ同時にセンサの前を通過した人間が何人かを判断するのが困難だったためである。以下に人間の速度を取得する手順を示す。

まず、人間が焦電センサの検出範囲に入ることによって、焦電センサが反応を開始する。焦電センサが反応している間のデータをMSServerが保存し、人間が焦電センサの検出範囲から出た後に反応が終了し、その後取得された値を解析して、人間の歩行速度を3段階で識別する。3段階に分類する根拠は後述する。それらを便宜上「速い」、「普通」、「遅い」の3段階とする。この解析は、事前に用意した被験者の歩行データのサンプルと比較して行われる。3段階の速さの値は、各段階の最大値に誤差を含めたものを採用し、速い場合を2.0m/s、普通の場合を1.7m/s、遅い場合を1.3m/sとした。ただし、速い場合は想定している人間の速度を最大値とした。これら値は、ATから指定時間内に通った人間の速度情報の要請が来たときに、ATに送信するために用いられる。

人間が約1.6m/s以上で歩行していた場合は「速い」と判定され、1.1m/s以上、1.6m/s未満で歩行していた場合は「普通」、1.1m/s未満で歩行していた場合は「遅い」と判定される。

実際に取得された速さごとの波形の例を示す。

人間の歩行速度を3段階で識別したもの

図4.8: 人間の歩行速度を3段階で識別したもの

のAは人間の歩行速度が速い場合、Bは人間の歩行速度が普通である場合、Cは人間の歩行速度が遅い場合を示している。

特徴点として用いたのは、「焦電センサが反応している時間」、「取得した値と、前回取得した値の差分値の極値数」(以下では「差分値の極値数」と表記)である。これらについて説明する。

まず、焦電センサが反応している時間であるが、これは当然人間の速度が速いほど反応時間は短くなる。このことは直感的に理解できるため、この特徴点を用いるのは妥当であると考えられる。図を例にとると、速い場合は6、普通の場合は9、遅い場合は15である。横軸の単位は1点当たり200msであるため、速い場合は1.2秒、普通の場合は1.8秒、遅い場合は3.0秒となる。

そして、差分値の極値数であるが、これは、焦電センサの反応時間に関係する数値である。人間が遅く歩くほど『+』領域上や『-』領域の中で値が変化するため人間が速い速度で歩行するような『+』領域と『-』領域を行き来するだけの場合よりも極地数が多くなると考えられる。そのため、この値を特徴点に含むのは妥当であると考えられる。図を例にとると、速い場合が3、普通の場合が6、遅い場合が9である。

と図に特徴点として選んだ値をプロットしたものである。横軸は人間の速度で、縦軸は図では焦電センサの反応時間、図では差分の極値数である。

速度に対する反応時間時間の分布

図4.9: 速度に対する反応時間時間の分布

人間の速度に対する差分値の極値数の分布

図4.10: 人間の速度に対する差分値の極値数の分布

に示されるとおり、速度を3段階に分類するのが適切であると考えられる。これらの図から、160m/sで「速い」と「普通」を、110m/sで「普通」と「遅い」を分けるのが適切であると考えられる。ただし、焦電センサでは人間の速度を正確に認識することはできないため、厳密にこれらの値で分類することはできない。

実際に被験者から得た各速度の特徴点の一部を下の表に示す。それぞれ2つの値が一つのマスに入っているが、それぞれ「焦電センサが反応している時間」、「差分値の極値数」である。

各速度の特徴点の比較

図4.11: 各速度の特徴点の比較

表を見ると分かるように、「速い」と「普通」の間、「普通」と「遅い」の間にはそれほど特徴点の値に差がない。4段階、5段階と速度を細かく分類したとしても、適切に速度を識別することはできないと考えられる。

これら3つの値を特徴点として、被験者の歩行データと比較することで、その人間の歩行速度が「速い」か「普通」か、「遅い」かを導き出すことができる。

取得した波形から速度を正確に計算するのは困難である上、正確な速度を取得できたとしても、焦電センサからATに遭遇するまでの間に歩行者の速度が変わることは十分あり得るため、速度に関してあまり高い精度は必要とされない。また、パターン認識を行うときは、直後にATからデータ送信の要請が来ることを考慮し、なるべくタイムラグを減らすために複雑な計算は行っていない。

「焦電センサが反応している時間」、「差分値の極値数」はそれぞれ取りうる値が大きく違うため、そのまま解析を行うと「焦電センサが反応している時間」に重みが付けられる状態になるため、この二つの特徴点を対等なものにするために正規化を行った。

正規化は、行列の変換

y = A^{t}x

を用いた。

xは変換前の特徴点、yは正規化処理を施して得られた特徴点、Aは変換行列である。

数式

図4.12: 数式

dは特徴点の次元数である。ここでj番目の特徴x_{j}の分散σ_{j}^{2}は、以下のように求められる。

数式

図4.13: 数式

ここで\overline{x}はxの集合平均を表す。この正規化を、サンプル、そして取得したデータの両方に適応する。被験者の歩行データを用いた速度識別は次のように行われる。

特徴点として「焦電センサが反応している時間」「差分値の極値数」の2種類が存在し、その値の組が各速度毎に約10組存在する。識別を行うための計算に用いるのは、「速い」「普通」「遅い」、それぞれの値の組の平均値である。それぞれのサンプルの平均値を、s_{1}, s_{2}, s_{3} とする。また、

数式

図4.14: 数式

である。

取得したデータを

数式

図4.15: 数式

とする。

取得したデータから最も距離が短いものが該当するものなので、

数式

図4.16: 数式

を求めればよい。

数式

図4.17: 数式

であるため、共通部分の|| x || ^{2} を除いて、

数式

図4.18: 数式

となる。k=0なら「速い」、k=1なら「普通」、k=2なら「遅い」に分類する。

センサを2つ一組にする理由について述べる。ひとつは方向の決定である。1つのセンサの波形のみで右から来たか、左から来たかの識別ができなかったため、2つのセンサを使い、先に反応したセンサから方向を判別している。また、人間がセンサの前で停止したり折り返したりしたなどの判断も行うことができる。

もう一つの理由が、識別の精度を高めるためである。焦電センサによって歩行者の速度を判別するために取得した波形を利用しているのだが、その波形は特徴点が少なく、そしてあまり大きな違いがないため、判別ミスが起こることがある。判別ミスの影響を軽減するために、2つのセンサで同じ計算を行い、得た項目一致した場合はその項目を採用し、双方の計算結果が異なった場合は、その中でより速い項目が選出される。こうすることで、人間が早めに歩いているにもかかわらず、ATが、その人間がゆっくり歩いていると判断ミスをして回避のタイミングが遅れてしまうという状況を回避することができる。

センサが2つ存在するのだから、各センサの反応開始時刻の差分とセンサ間の距離から人間の通過速度を推定できないかと考えたが、検証を行った結果、人間の手の振りによって反応開始時刻に誤差が出てしまうことがわかった。また、手の振りを排除できる位置、かつ歩幅の影響をあまり受けない膝の高さでも同様の検証を行ったが、これに関しても正しい速度を計測することができなかった。正しく速度を計測できないのは、センサ間の距離に原因がある。もしもセンサ間の距離が長く、その間を人間が一定の速度で歩いた場合はほぼ正しい結果を得ることができると考えられるが、本研究で壁に設置される焦電センサ間の距離は極力短くなるようにしているため、たとえ足の動きによる反応開始時刻の誤差が小さかったとしても、センサ間の距離が小さいため、全体に対する誤差の占める割合が大きくなってしまう。そのため、誤差が計算結果に大きく影響してしまうので、2つのセンサの反応開始時刻の差分とセンサ間の距離から人間の速度を推定することは極めて困難であると考えられる。

4.4 人間との遭遇時刻の推定

ATがMSServerに情報要求のコマンド(引数:センサID、時間1、時間2)を送信すると、MSServerはATに対して、「時間内にセンサから見て左方向から右方向に通った人の数」、「時間内にセンサから見て右方向から左方向に通った人の数」、「その時間内に最初に通った人の速度」、「その時間内に最初に通った人が通った時刻と現在時刻の差分」を返す。なお、時間1と時間2は、時間1と時間2の間に通った人間の情報をもらうために用いる。そして、MSServerから情報を取得したATは、以下の方法によって人間との遭遇予測時刻を算出する。

人間との遭遇予測時刻の算出

図4.19: 人間との遭遇予測時刻の算出

点AにてATはMSServerに問い合わせを行う。図中a, b, cはそれぞれ同じ時間を示し、古い順に a, b, c となる。

点Eには焦電センサが設置されている。

線分AE:ATが地図に問い合わせて得られる、ATとセンサの距離これを LAE とする。ここから人間と遭遇するまでの時間t’ を求める。

線分ABは、ATがt' で進む距離なので、AB=vat'、線分CDは、人間がt' で進む距離なので、CD=vht'、線分DEは、人間がt で進む距離なので、DE=vht

よって、t’ を求める式は

図4.20:

となる。

この計算はATと人間が互いに接近しているときにのみ行われ、人間が焦電センサの前を通ってATと反対側に歩いていた場合は計算を行わない。

ATがMSServerに対してコマンドを送った後、t’ 秒後以降に、レーザーレンジセンサによって10m以内に障害物を確認した場合、それは先ほど焦電センサの前を通過した人間であると判断し、障害物回避モードに移行する。この手法をとることで、静止障害物の時よりも早いタイミングで障害物回避モードに切り替えることができる。

なお、人間が走っている場合は焦電センサの製品仕様によって検出することができないので、サーバ側は人が通っていないという判断をしてしまい、ATは回避の準備をすることができない。だが、ATよりも速い物体がATに向かって走ってきた場合、原理的にATはその速度に対応して回避することができないため、ATよりも速い速度で移動している人間の回避は考慮していない。

4.5 制御の切り替え

壁沿い走行モードと障害物回避モードの切り替えは、ATの自動走行を実現する上で必須の機能である。適切なタイミングで壁沿い走行モードと障害物回避モードを切り替えられることが、自動走行を効率よく行うための要件となる。また、快適な障害物回避を行うために、制御の切り替えはATを停止させることなく行わせることができるのが望ましい。

障害物回避を行うとき、壁沿い走行モードのみで障害物回避を行った場合は、図のように、直角な動作を行う軌道になる。

壁沿い走行モードのみの場合

図4.21: 壁沿い走行モードのみの場合

壁沿い走行モードと障害物回避モードを切り替えながら障害物回避を行った場合は、図のように、比較的曲線的な軌道になる。

壁沿い走行モードに切り替えた場合

図4.22: 壁沿い走行モードに切り替えた場合

上の二つの図の軌跡を比較した場合、図の方が効率がよく、比較的人間の直感に合った回避方法であることがわかる。また、障害物に接近する前に回避するため、より安全だといえる。我々は、モードを切り替えることによって、図のような回避を行うことを目指している。

  • 壁沿い走行から障害物回避へ

    壁沿い走行を行っているときに障害物を感知したら障害物回避モードに切り替える必要があるが、それは適切なタイミングで行われなければならない。タイミングが早すぎれば、まだ何も回避する必要がないのに速度の低い障害物回避モードで走行し、無駄な時間を使ってしまう。逆にタイミングが遅すぎれば、回避動作を開始したときには障害物との距離が短くなってしまい、歩いてくる人間の邪魔になったり、滑らかな回避動作ができなくなったり、最悪の場合は人間と衝突してしまうことになる。

    壁沿い走行モードから障害物回避モードに切り替えるタイミングは、静止障害物の場合は、静止障害物がATの進行方向上3mまで接近したとき、移動障害物の場合は、焦電センサに問い合わせた結果から遭遇予測時刻を前節の方法によって計算し、その時刻にATの進行方向上10mまで接近したとき、それを移動障害物とみなして、回避する。障害物回避モードの解説については後述する。

  • ObstacleFinderは、障害物回避プログラムが回避終了の合図を出した時に制御権を障害物回避モードから壁沿い走行モードに切り替える仕組みになっている。回避終了の条件として以下のものを採用した。

    障害物回避から壁沿い走行へ

    障害物回避モードは安全のため、また、移動障害物に関する様々な計算を行うために壁沿い走行モードに比べて速度が低く設定されているので、より早く目的地に到着しようと考えるならば、なるべく早く壁沿い走行モードに戻る必要がある。ただし、周囲の状況を観察し、安全だということが確認できなければ壁沿い走行に戻ることはできない。

1つ目の条件について述べる。壁沿い走行モードから障害物回避モードに移行した後、また元の経路に戻らなければならない。そのためには、障害物回避モード中に元の壁に戻れるかのチェックを行わなければならない。このときに、元々右壁沿い走行をしていたら0°から90°、左壁沿い走行をしていたら-90°から0°の範囲の最短距離で直線を検出することができれば、そこには壁が存在することになる。最短距離での直線というのは、まず、最短距離の場所を見て、そこと連接している点が2m以上直線になっていることを表す。障害物を検出した場合は直線にはならないので、モードの切り替えの条件を満たしていない。

2つ目の条件について述べる。ATが移動障害物を回避した場合、移動障害物が再び自分の方向に戻ってくる可能性があるため、すぐには壁沿い走行に移行しない。そのため、前方の移動障害物が存在しないことはもとより、後方の回避し終えた移動障害物がある程度離れたことを確認できた場合、この条件を満たしたことになる。

以上の二つの条件を満たした時に、ObstacleFinderがATの制御を障害物回避プログラムから壁沿い走行プログラムに切り替え、壁に近づく段階に入る。回避終了の条件により進行方向の壁には障害物がないことが保証されているため、この壁に向かって、3章で述べた基本動作のうちの一つ、ApproachWallを壁の存在する向きの斜め前を対象として実行する。こうすることで壁に対して垂直に近づかず、進行方向に進みつつ壁に近づくという、効率的な接近方法を実現することができ、より無駄の少ない経路で障害物回避を行うことができる。

4.6 障害物回避モードの仕組み

4.6.1 障害物回避の手法

人間が生活する環境において、移動体が自動走行を行なうためには、自己位置推定問題、環境地図生成問題、ナビゲーション問題を解決する必要があり、近年、さまざまな手法が提案されてきた。これらの多くは、移動体の行動する環境が変化しない静的環境を想定したものである。しかし一般には、人間のようにその位置が時々刻々変化する移動障害物が存在する。本研究では、実環境における人間のような移動障害物の存在する空間内で、環境認識時に静止障害物と移動障害物を判別し、移動障害物の進路を考慮した経路を走行することで、安全かつ効率的な移動障害物回避を実現する

4.6.2 移動ベクトルの判別

移動障害物は常に同じ場所に存在するわけではないので、一枚の環境地図を用いるのではなく、作成された環境地図を時間方向に比較して差分処理を行うことで、静止障害物と移動障害物を判別する。しかし、ATは移動しているため、環境地図は異なる位置で作成されたものとなる。異なる位置で作成された環境地図の統合には、各環境地図の位置関係を推定する必要があり、環境地図作成時の移動体の自己位置情報が重要となる。移動体の自己位置推定法として、車輪の回転数から走行距離や回転角度を推定するデッドレコニングがよく使用されるが、これのみでは車輪のスリップなどで誤差が蓄積し正しい自己位置推定はできない。よって本研究では、移動体の自己位置推定に各位置での環境地図の重なった部分を用いて位置合わせを行うICP(Iterative Closest Point)アルゴリズムを使用する。ICPアルゴリズムの収束結果を自己位置推定結果として用い、複数位置で作成された環境地図を統合する。

ICPアルゴリズムは、複数の距離データ間で重複して計測された部分を利用して、繰返し計算により誤差関数を最小化する解を求める手法である。具体的には、まず2つの点群があるとき、一方の点群の各点について、他方の点群で最も近い点を対応点とする。そして、各対応点間の距離の2乗和が最小となる移動パラメータを求める。この移動パラメータが環境地図の位置関係であり、環境地図の作成間隔でATが移動した距離となる。

移動障害物は、統合された環境地図を見ると、移動前後の環境地図において、点群が重ならない。そこで、移動前の環境地図において、点群の重ならない部分を探索する。移動体は時刻t-1における計測データと時刻tにおける計測データを比較し差分処理を行う。しかし、この方法では移動障害物は検出できるが、壁などの一部の静止障害物も移動障害物として検出してしまう。そこで,時刻tからt-nまでの合計でn個の環境地図を用いて差分処理を行い、移動障害物を検出する。これにより移動体は移動障害物のみを正確に検出可能となる。

移動障害物の場合、移動先を予測することで、移動方向と同じ方向へとATが移動したり、移動障害物の進路を横切り、進行の妨げになるといった移動障害物への干渉を回避することができると考えられる。本研究では、移動障害物の移動ベクトルを計算し、その移動障害物が等速直線運動を行うことにして、移動先を予測する。移動前後の環境地図で点群の重ならない部分で最も近い点群を対応する移動障害物とし、対応点間の位置関係と計測時間差から移動ベクトルを算出する。

移動障害物の判別と移動ベクトル

図4.23: 移動障害物の判別と移動ベクトル

4.6.3 回避経路の生成

環境地図と目的地を取得したら、次に現在位置から目的地までの回避経路を計算する。障害物と移動体との接触を避けるために次のような手法をとる。移動体の形状を長方形とし、移動体の性能による許容誤差分を拡張した領域を衝突危険領域とする。この衝突危険領域を障害物側に対して付与することにより、移動体自身は点で表すことができるようになる。移動障害物に対しては移動ベクトル方向に長方形領域をずらした形状の衝突危険領域を設定する。この空間に対して、グラフ構造のパス探索手法に基づいて経路計算を行う。まず、移動障害物を考えず、静止障害物のみでグラフを生成する。グラフのノードは障害物衝突危険領域の頂点とし、エッジは頂点同士を結んだ線分が衝突危険領域に遮られないものを選択し、コストとして距離を与える。このグラフに対して、初期地点から目的地にDijkstra法を適応して最短距離を求める。最短距離に対して移動障害物との衝突判定を行い、相対移動ベクトルから衝突回避点を算出し、新たなノードとエッジに変更する。相対移動ベクトルとは、移動体の移動ベクトルと移動障害物の移動ベクトルの差である。変更したグラフに対して最短経路を再計算する。これを繰り返すことで移動障害物に衝突しない経路を生成することができる。この生成された回避経路に基づいて移動体は移動方向を変更する。

回避経路の生成

図4.24: 回避経路の生成

これにより生成された経路を図に示す。

生成された経路

図4.25: 生成された経路

中心の長方形はATである。トの字型の点の集合が壁である。ATから上に伸びている短い直線は目的地の方向を指しており、画像上端の円の一部は目的地を表している。図の上側の塗りつぶされた領域は移動ベクトルを表しており、ATに接近している。その周囲の長方形は衝突危険領域を表しており、幅のある障害物を点の集合として見ているため、その点一つ一つに対して衝突危険領域が付与され、複数の長方形が重なって見えている。ATから上に伸びている曲線は生成された経路を表しており、衝突危険領域に侵入しない経路を通っている。

4.7 まとめ

本章では移動障害物の認識と、ATの2つのモードの切り替えについて述べた。ATには2つのモードが存在し、それらを適切なタイミングで切り替えることによって安全で効率的な自動走行を実現している。静止障害物と移動障害物とでは接近可能な距離が異なるため、回避を開始するタイミングも異なる。そこで、環境側に焦電センサを設置することによって移動障害物と静止障害物の識別に利用した。

次章では、本章で述べた手法を用いたATの走行実験について記述する。

5 実験と考察

障害物を回避することはATが自動走行を行う上で欠かせない機能である。その障害物が静止しているか、移動しているかによって回避を開始するタイミングを変えることにより、効率的な回避を行うことができる。前章では、これを実現するためにATにはレーザーレンジセンサ、環境側には焦電センサを設置し、双方の情報を考慮することで適切なタイミングを導き出す手法を提案した。この手法を用いて移動障害物を適切なタイミングで回避できるかどうかを確認するために、予測遭遇時刻を正確に算出できるかの実験を行った。その実験内容・実験結果を述べ、実験結果の考察を行う。

5.1 実験内容

本実験は、名古屋大学IB電気電子情報館南棟3F(東側)で行った。前章で述べたObstacleFinderの出力を確認する者が1名、ストップウォッチの操作を行う測定者が1名、ATへの搭乗者が1名、距離測定・監督者が1名という構成で実験を行った。被験者数は4名である。廊下の壁にはRFIDタグを2m間隔で設置した。ATが走行を開始した後に人間が焦電センサの前を通過し、ATがモーションセンササーバに問い合わせてその人間の情報を取得して予測遭遇時刻を計算する。その後、予測遭遇時刻になったときの、ATと人間の間の距離を測定する。実験環境を図に示す。

実験環境

図5.1: 実験環境

初期位置は図上で人間、ATとそれぞれ記した地点であり、被験者とATは約20m離れたところで互いに向かい合っている。

被験者は任意のタイミングで歩行を開始し、ATの出発地点に向かう。被験者が歩き始め、スタートラインを超えたところで測定者はストップウォッチの計測を開始させた。ここで、歩き始めたときではなく、しばらく歩いた場所に存在するスタートラインで測定を開始させているのは、歩き始めたときの速度の誤差をなくすためである。被験者は任意の速度で歩き、停止するまで一定の速度を保つ。

人間が焦電センサの前を通ると、焦電センサが反応し、得られた値からモーションセンササーバが被験者の速度を推定した。その後、ObstacleFinderが何秒後に被験者と遭遇するかを計算し、その秒数でカウントダウンを行った。カウントダウンが0になった時に停止の合図が送られ、ATはObstacleFinderによって停止し、被験者は合図によって停止し、測定者は計測を終了した(以降この状態を「停止時」と表記する)。この状態で、被験者とATの距離を測定し、スタートラインから被験者が停止した場所までの距離を測定した。測定時間と、測定した距離から被験者の速度を算出した。

この実験により、停止時の被験者とATの距離が何mであるか、そして、モーションセンササーバが被験者の歩行速度を正しく推定しているかを確認した。本来ならば、ATの速度と人間の速度を考慮してATと人間の間の距離を決定する必要があるが、今回の実験では人間の速度を正確に推測でき、その速度に合わせて何秒後に停止できるかという点を評価するため、停止したときのATと人間の間の距離は10mとした。

5.2 結果と考察

実験結果をまとめたのが以下の表である。結果は小数点一桁目までを有効数字とする。

予測遭遇時刻での人間・AT間距離と人間の速度まとめ

図5.2: 予測遭遇時刻での人間・AT間距離と人間の速度まとめ

は人間の歩行速度と、それをモーションセンササーバが推定した結果を示したものである。Aは「速い」に分類されたもの、Bは「普通」に分類されたもの、Cは「遅い」に分類されたものである。縦軸は停止時の人間とATの間の距離であり、横軸は実際の被験者の歩行速度である。

図5.3:

図5.4:

人間の速度と、停止時の人間・AT間距離の相関

図5.5: 人間の速度と、停止時の人間・AT間距離の相関

まずは、停止時の人間・AT間距離の結果について述べる。予測遭遇時刻での人間・AT間距離は、平均値が「速い」場合で10.6m、「普通」の場合で10.2m、「遅い」場合で9.7mと、ほぼ10mに近い値となった。「普通」の場合は、停止時の人間・AT間距離の分散が大きく、全データ中の最大値、最小値が両方含まれている。中でも、最小値は7.5mと、10mからかなり離れている値が得られた。この回は、ATが次のタグを読み取る直前で予測遭遇時刻を計算開始していたため、ATから焦電センサまでの距離が、RFIDタグの設置間隔分、つまり2m近くずれてしまっていた。さらに、速度推定を誤り、低く見積もったため、このような結果が得られたと考えられる。経験的に、障害物回避は人間の7m手前から開始しても安全性に問題はないことが確認されているが、この問題は解決されるべきである。この問題は、認識の精度の向上、また、後に述べる予測遭遇時刻の修正を行うことで解決することができる。

次に、人間の速度の推定の結果について述べる。「速い」は1.6m/s以上、「普通」の場合は1.1m/s以上1.6m/s未満、「遅い」場合は1.1m/s未満の場合を正解とした。今回の実験での正解率は「速い」場合で80.0%、「普通」の場合で73.7%、「遅い」場合で64.7%となり、「遅い」場合の正解率が低いという結果になった。ここで注目しなければならないのは、図Aのa(1.3, 10.2)と、図Cのb(1.5, 8.3)のケースである。これら2つのケースは、速度推定に大きな誤りがある。実際の速度よりも速めの判定が出された場合は、回避モードへの切り替えが早まるだけなので、まだ安全性に問題はないが、実際の速度よりも遅めの判定が出されてしまった場合は、人間は速い速度で歩いているにもかかわらず、予測遭遇時刻は遅めに設定されてしまう。そのため、人間がATに接近するまでATは障害物回避モードに切り替えることができない。この状態を回避するために、速度を推定するに際し、2つのセンサから違う推定結果が出た時は、より速い方を選択しているが、両方の焦電センサで識別間違いが起こった場合にこういった問題が発生する。図Aでのデータaでは、1.3m/sであるにもかかわらず「速い」に分類されているため、効率性に問題は出るものの、安全性には問題はない。しかし、図Cでのデータbでは、実際の速度が1.5m/sであるにもかかわらず、「遅い」に分類されてしまっているため、停止時の人間・AT間の距離が短くなってしまった。今回の実験のこのケースでは人間・AT間の距離が短くなりすぎるということはなかったが、改善を必要とする。そのためには、さらに精度の高い識別が必要となる。

今回の実験で、提案手法による人間の歩行速度の推定およびその推定結果からモード切り替えのタイミングを算出し、そのタイミングでモードを切り替えることが有効であることがわかった。また、識別精度を向上させることにより、さらに精度良く切り替えタイミングを算出することが可能であると思われる。以下では、現状での問題点およびシステムを改善するための課題について述べる。

5.2.1 速度推定の精度の向上

本研究では人間の速度推定に焦電センサを用い、提案した識別手法は、「焦電センサが反応している時間」と「取得した値と、前回取得した値の差分値の極値数」を特徴点としたパターンマッチングである。今回行った実験では「速い」場合の正解率が80.0%、「普通」の場合の正解率が73.7%、「遅い」の場合の正解率が64.7%となったが、この正解率をさらに向上させなければならない。そのためにはより適切な特徴点を見つける必要がある。また、特徴点を探すため、さらに多くの被験者から速度データのサンプルを取得する必要がある。その上で、現在解析に使用しているサンプルの平均値を、学習によって重みづけするなどして、識別の精度を向上させなければならない。

5.2.2 区分内での速度による予測遭遇時刻の補正

どのような速度で歩いたとしても、それが同じ区分の速度であった場合、速度推定がおこなわれるとその区間を代表する速度をATに対して送信するため、区分の中でも比較的速い速度で歩いた場合と、比較的遅い速度で歩いた場合とで、人間と遭遇した時のATと人間の距離は変わってしまう。たとえば、1.2m/sで人間が歩いた場合と、1.5m/sで歩いた場合は、両方とも「普通」に分類される。ここで、モーションセンサはATに対して「普通」の区分の代表速度として1.7m/sという値を送る。同じ区間内で速度に幅があったとしても、モードの切り替えは、人間・AT間の距離を10mになった時に行う必要がある。そのためには、区間内で人間の速度が比較的遅かった場合は予測遭遇時刻を遅らせ、比較的速かった場合は予測遭遇時刻を早める手法を確立する必要がある。

しかし、焦電センサは速度測定の分解能が低く、人間の正確な速度を測定することができないため、現在は3段階で速度を分類しているという背景がある。そのため、該当区間内のうち、比較的速いのか、遅いのかという判断まで行うことができない。そのような判断をするためには、焦電センサとは別の方法を用いる必要がある。レーザーレンジセンサでは、交差点などで人間を検知できない可能性があり、たとえ進行方向上に人間が存在しても壁沿い走行モードでは、レンジセンサは移動障害物の移動ベクトルを計算していないため、レンジセンサでも同様に判断をすることができない。ゆえに、この問題を解決するためにはさらに多くのセンサ情報を採り入れる必要がある。

別の角度から見た解決方法として、現在3段階である速度区分を増やす方法がある。速度区分を増やすことにより、各区分の速度の幅を小さくすることが可能になる。今回は人間の速度とそれぞれの特徴点の分布を見て3段階にすることに決定したが、今後新たな特徴点を発見することにより、区分を増やすことができると考えられる。

5.2.3 タグの読み取りによる遭遇時刻の補正

現在は、ATがモーションセンササーバに問い合わせを行い、人間の情報を取得した時に、現在ATが保持しているタグIDから焦電センサまでの距離を計算し、その距離とモーションセンササーバからの情報を基に遭遇時刻までの時間を計算している。しかし、ATは走行を続けていると自身の現在位置の推定に誤差が発生する。人間の情報を取得したときの人間とATの距離が離れているほど遭遇時刻にずれが生じてしまう。また、次のタグを読み取る直前に計算を開始してしまった場合、ひとつ前に読んだタグを基準に予測遭遇時刻を計算してしまうため、その時点で大きな誤差が出てしまう。そうなってしまった場合、速度の推定を誤ってしまったときに、人間がATの目前まで到達するまで障害物回避モードに切り替えることができなくなってしまう恐れがある。

そこで、これを解決する手段としては、タグを読み取るたびに予測遭遇時刻を更新する方法がある。タグを読み取るごとにATは地図上のタグの位置から、焦電センサまでの距離を更新することができるので、より正しい値になるため、誤差が補正されることになる。また、次のタグを読み取る直前で計算を開始してしまう問題も解決することができる。そのため、タグを読み取るごとに予測遭遇時刻を更新することにより、正確に予測遭遇時刻を決定できると考えられる。

他にも、タグを読んでからの時間を考慮することで、走行距離を算出し、それを予測遭遇時刻に反映させる手段もある。しかし、空転が多いオムニホイールの特性上、走行距離に誤差が発生しやすい。時間が経ってしまうと走行距離の推定に大きな誤差が発生してしまうため、この方法は、次のタグを読み取るまでの短い時間ならば有効であると考えられる。

5.2.4 効率性の向上について

人間とAT間の距離が10mよりも短くなると、障害物回避モードへの切り替えが遅れて安全性に問題が出る。それとは逆に、10mよりも距離が長くなると、安全性に関しては特に問題はなくなるが、壁沿い走行モードの半分程度の速度しか出せない障害物回避モードへの切り替えタイミングが早くなるため、目的地に到着するまでに時間が余計にかかり、移動の効率が低くなってしまう。どの程度まで予測遭遇時刻よりも早く障害物回避モードに切り替えても問題ないかということを今後経験的に判断する必要がある。

5.2.5 ATと人間の速度を考慮した遭遇予測時刻の推定

本実験では、人間が3段階のうち、どの速度で歩行していても正確に10mの間隔をあけて停止できるかという検証を行った。しかし、実際は人間の速度に応じてATと人間の間の距離を変えなければならない。人間の速度が遅ければある程度近づいても問題はないが、速度が速ければ遠くで回避を開始しなければならない。これを実現するためには、経験的にどの程度まで接近してもよいかを調べ、ATと人間の相対速度から接近するまでの時間を決定し、それを基に障害物回避モードに切り替えるまでの時間を決定しなければならない。

6 関連研究

6.1 インテリジェント車いすロボット TAO Aicle

高齢化が進展すると、移動手段として車椅子を必要とする人の数が増えると予想される。車いすには手動式・電動式など様々なタイプのものがあるが、利用者の利便性や安全性を向上し、介助者の負担を軽減するためには簡単な操作で自律的に移動可能な車椅子が必要である。そこで、畑瀬らの研究プロジェクトでは自律移動が可能なインテリジェント車いすロボットTAO Aicleを開発している。また畑瀬らは、愛・地球博のロボットステージ内の屋外でもコースにて実証実験運用を行った。

TAO Aicleの外観は通常の電動車椅子と同じであるが、正確な自己位置認識のためのGPSアンテナ、障害物検出のためのレーザーレンジセンサが搭載されている。右肘掛け部前方には操作装置が設置されており、簡単な画面操作で車いすの目的地を指定することができる。また、TAO Aicleを走行させるためには自己位置認識精度を上げなければならないが、畑瀬らはGPS基地局を走行エリアの近くに設置して相対測位を行い、さらに床面にRFIDタグを設置し、車椅子の座面の下に取り付けられているRFIDリーダによって絶対位置の取得を行っている。

本研究とTAO Aicleの研究との類似点は、設定した目的地まで自動で安全に人間を移動させる点である。また、RFIDタグによる現在位置の認識、さらにレーザーレンジセンサを用いた障害物回避を行う点でも類似している。しかし、大きく異なるのは、我々が開発したATは全方位に移動できるということである。TAO Aicleは全方位移動を行うことができないため、急な方向転換を行うことができない。そのため、人や物が急に現れると、TAO Aicleはそれを回避することができない。その点、ATは正面を向いたまま横方向にスライドすることができるため、回避を行うことができる。

6.2 車椅子型自律移動ロボット DREAM号

近い将来訪れる高齢化社会においては、介護者の不足が考えられるため、高齢者や障害者が不自由なく生活するための新しい福祉技術の開発が望まれる。そのような背景で、大北らは車椅子型の自律移動ロボットDREAM号を開発している。DREAMは15年以上もの間、研究が続けられており、現在は第4世代目のDREAM-4まで世代交代をしている。

現在4世代のDREAMが存在する中で、DREAM-3では環境マップという地図情報を取り入れ、タッチパネル等で目的地地点を指示すればロボットが環境を認識して、目的地地点まで走行することができる。自律移動電動車椅子が環境を走行する場合に、地図中の車椅子モデルも同時に走行し、走行中に障害物を発見した場合にそれをマップ上に書き込み、車椅子モデルが走行経路を決定し、駆動情報を実機の駆動系に伝える仕組みになっている。また、周囲の環境認識に用いる超音波センサ、自己姿勢角認識に用いるジャイロセンサ、走行用モータシステムを左右輪独立に搭載している。DREAM-4では、危険を察知すると徐行および回避行動をとり、さらに搭乗者の操作法に合わせて学習を行うことで、操作を容易にする特徴を持つ。徐行、障害物回避はブレーキを使って行っている。

本研究とDREAM-3との類似点は、設定した目的地まで自動走行できることである。DREAM-3の自己位置認識は、左右輪に搭載しているロータリ・エンコーダからのパルスにより算出した走行距離と、ジャイロセンサから得た変化角から自身の位置と姿勢変化量を算出している。そのため、長時間走行していると誤差が蓄積していく可能性がある。ATは全方位移動が可能なため、屋内の比較的狭い経路での右折・左折をDREAM-3よりスムーズに行うことができる。また、DREAM-3における障害物回避は、超音波センサで障害物を発見したときに、それをマップに描き込むことでそれを回避する手法をとっているため、移動障害物の動きを考慮していない。ATは障害物回避を行うときに障害物の移動ベクトルを考慮しているため、移動障害物の動きも考慮した回避が可能である。

6.3 アナログ型焦電センサによる人間の室内位置・身長の判別

焦電センサは、人体が放出する微弱な遠赤外線を検出する機能を持ち、侵入者の検出や自動点灯型の照明にスイッチに利用されている。奥田らは、アナログ型の焦電センサを天井に設置することで、人間のいる位置を検出する手法を提案した。デジタル型の焦電センサでは、センサの検出範囲に人間が入るとすぐに『ON』となり、一定時間その状態を保持するため、信号のどのタイミングでセンサの再近傍を通過したかが不明であり、結果として位置精度は低い。そこで、奥田らはセンサ出力をアナログ信号として扱った。アナログ出力ならば、センサの検出領域の周辺部を通過した場合とセンサの直下を通過した場合で出力波形が持つ周波数成分は異なるため、人間がセンサの直下を通過するタイミングの検出が可能になる。

焦電センサを格子状に天井に配置することで、人間の位置を検出すると共に、人間の身長を判別している。出力信号をFFTにより周波数領域に変換した後、低い周波数成分を取り除き、スムージングを行い、ノイズの影響を防ぎ、振幅のピーク位置を検出し、センサの検出範囲を赤外線源が通過したタイミングを検出している。また、センサの『+』『-』の検出範囲内にいる時間から、そこを通過しているのが大人の身長か子供の身長かを判別している。

本研究とこの研究との類似点は、焦電センサを人間の存在を認識するためだけに用いるのではなく、得られた波形を分析していることである。この研究では、得られた波形の周波数を調べ、1Hz以上の高い周波数成分の割合を調べることで大人か子供かを判別しており、子供と大人など、極端に身長が異なる場合のみ有効に弁別を可能としている。しかし、本研究では人間の速度という極端な差が出ない値を3段階で識別している。

7 まとめと今後の課題

7.1 まとめ

筆者の所属する研究室では、移動体に情報処理と通信機能を搭載し、情報処理と人間の物理的な行動を連動させる、搭載型コンピューティングのコンセプトに基づいて個人用知的移動体ATの研究と開発を行っている。ATはオムニホイールと呼ばれる複合車輪を用いて、全方位移動とその場回転を行うことができる移動体である。また、目的地を設定することによって、現在位置から目的地までの自動走行を行うことが可能である。本研究では、ATが自動走行を行うときに必要となる障害物回避において、静止障害物、移動障害物を識別し、それらに合ったタイミングで回避することができる手法の提案・実装を行った。

ATが自動走行を行い、目的地に到着するためには経路上に現れる障害物を回避する必要がある。障害物には静止障害物、移動障害物の2種類が存在し、それぞれ接近できる距離が違うため、安全で効率的な回避を行うならば回避行動を開始するタイミングを変えなければならない。また、ATには壁沿い走行モードと障害物回避モードの2種類のモードが存在する。壁沿い走行モードでは、壁やRFIDタグを手がかりにしながら地図に基づいて生成された経路に沿って走行し、障害物回避モードでは障害物の移動ベクトルを考慮しつつ障害物回避を行っている。目的地に向かうために経路に沿って速い速度で走行する、慎重に障害物を回避するために低速で走行するなど、それぞれの動作方法や速度が全く異なるため、状況に応じてモードの切り替えを行わなければならない。これらのモードを切り替えることによって安全で効率的な自動走行を実現している。

焦電センサを環境に設置することにより、その前を通過した移動障害物の存在を認識し、その障害物の移動速度を推定することができる。その情報とRFIDタグによる位置情報から、ATは自身と移動障害物の遭遇時刻を推定することができる。それにより、視界に現れた障害物が静止障害物であるか、移動障害物であるかを判断し、その障害物の回避のために適切な距離まで接近したのちに障害物回避モードに切り替えて回避行動を開始することができる。

この仕組みを用いて人間の速度を推定し、適切な距離で障害物回避モードに切り替えることができるかを、実機を用いて検証する実験を行った結果、予測遭遇時刻で人間とAT間の距離をほぼ10mにすることが可能であることがわかり、本手法の有効性が確認された。

7.2 今後の課題

7.2.1 死角から現れる人間に関する問題

ATに搭載されているレーザーレンジセンサは、周囲の状況を認識するために用いられ、主に壁沿い走行、障害物回避などで使用されている。障害物回避を行うとき、これまではATが事前に進行方向にある障害物の存在を認識していることが前提となっていた。しかし、予期しない障害物、つまり、物陰から突然現れた移動障害物と衝突してしまう可能性がある。事前に障害物が存在していると認識していないため、障害物回避の準備が一般に間に合わないためである。

交差点から人間が突然現れたときに対応するために、焦電センサが活用できる。レーザーレンジセンサは自身と周囲の物体との距離を測定しているが、物体との間に遮蔽するものがある場合は測定できない。しかし、焦電センサを用いれば、レーザーレンジセンサにとって死角になっている場所にいる人間を検知することで、レーザーレンジセンサの原理的な欠点を克服することができる。

しかし、それを実現するためにはまだ問題点が存在する。それは、現在の仕組みでは、人間の存在を確認したのち、レーザーレンジセンサで障害物を確認したときに、それを移動障害物であると判断して障害物回避を開始するため、死角から接近する人間を回避するために障害物回避モードに入る場合は、出会い頭でその人間と遭遇しなければならないことである。だが、その時点で回避行動を開始しても間に合わない場合がある。

ATの自動走行をさらに高度なものにするためには、この問題を解決する必要がある。

7.2.2 突き当たりでの壁と障害物の判定の問題

ATが突き当たりの壁と遭遇した場合、レンジセンサは進行方向上3m以内に物体を検出する。この場合はたとえこの物体が壁であったとしても、障害物があると判断してしまう。壁を障害物と判断してしまった場合、壁に対して障害物回避行動を起こしてしまい、ずっと壁に沿って横向きに走行してしまう。そうなってしまった場合、経路から外れてしまう可能性があり、地図上での自身の位置を見失ってしまうため、またタグを探して初期位置を決定し経路を再探索する必要がある。そのため、移動の効率が悪くなってしまう。逆に、障害物を壁だと認識してしまった場合、障害物にはRFIDタグは付いていないため、タグを読み取ることができず、自身の位置を見失ってしまう。

これを解決するためには、地図上で突き当たりの壁までの距離を調べ、走行中のタグから自身が地図上のどこにいるかを推定し、壁から遠いと判断された場合は、検出されたものは障害物、壁に近い場合はそれが障害物であるか、壁であるかのチェックを行うことが必要になる。また、万が一それで誤認識してしまった時のためのフェイルセーフも実現する必要がある。

7.2.3 焦電センサを用いた地図上の人間の位置の取得

現在は焦電センサを一人の人間の認識、人間の速度の推定及び遭遇時刻の推定にしか用いていないが、将来的には焦電センサの設置方法を検討することで複数の人数を検出する予定である。建物内に多くの焦電センサを設置し、それらを地図と対応させることによって人間の混雑具合などを調べ、経路決定の際に地図上の混雑している経路を避けて、走行しやすい場所を選択することができると考えられる。また、地図上で焦電センサがどのような順で反応したかを調べることで、人間の動きをトレースし、障害物回避モードへの切り替えを効率的に行うことも可能であると考えられる。

謝辞

本研究を進めるにあたり、指導教員である長尾確教授、大平茂輝助教には、研究に対する心構えなど基本的なことから、ゼミを通しての貴重な御意見、論文執筆に関する御指導等を賜り、大変お世話になりました。心より御礼申し上げます。

土田貴裕さんには、プログラミングや研究に関する様々なアドバイスを頂き、また、研究室の楽しい雰囲気作りをして頂きました。ありがとうございました。

石戸谷顕太朗さん、増田智樹さんには、ゼミ等での貴重な御意見など、研究に関する様々なアドバイスや御指導を頂きました。ありがとうございました。

ATプロジェクトのメンバーである尾崎宏樹さん、安田知加さん、森直史さんには、プログラミングに関する様々なアドバイスを頂きました。また、実験に御協力頂き、プロジェクトゼミ等でも研究に関する様々な御意見を頂くなど、大変お世話になりました。ありがとうございました。

木内啓輔さん、杉浦広和さんには研究生活など様々な場面において協力して頂きました。ありがとうございました。

長尾研究室秘書の鈴木美苗さんには、学生生活ならびに研究活動のための様々なサポートを頂きました。ありがとうございました。

最後に、日々の生活を支えてくださった両親にも最大限の感謝の気持ちをここに表します。ありがとうございました。