(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-23
(45)【発行日】2024-10-31
(54)【発明の名称】自律移動装置、自律移動方法及びプログラム
(51)【国際特許分類】
G05D 1/43 20240101AFI20241024BHJP
【FI】
G05D1/43
(21)【出願番号】P 2022532332
(86)(22)【出願日】2021-04-09
(86)【国際出願番号】 JP2021015009
(87)【国際公開番号】W WO2021256062
(87)【国際公開日】2021-12-23
【審査請求日】2024-03-14
(31)【優先権主張番号】PCT/JP2020/023468
(32)【優先日】2020-06-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】517270798
【氏名又は名称】株式会社Doog
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100174067
【氏名又は名称】湯浅 夏樹
(74)【代理人】
【識別番号】100169753
【氏名又は名称】竹内 幸子
(74)【代理人】
【識別番号】100132883
【氏名又は名称】森川 泰司
(72)【発明者】
【氏名】大島 章
(72)【発明者】
【氏名】城吉 宏泰
(72)【発明者】
【氏名】阪東 茂
(72)【発明者】
【氏名】柄川 索
【審査官】牧 初
(56)【参考文献】
【文献】特開2016-9356(JP,A)
【文献】特開2016-168883(JP,A)
【文献】特表2020-532382(JP,A)
【文献】国際公開第2016/178294(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00-1/87
(57)【特許請求の範囲】
【請求項1】
移動手段と、
記憶手段と、
制御手段と、
を備える自律移動装置であって、
前記制御手段は、
教示された教示データを前記記憶手段に記憶させ、
前記教示データに基づいて、前記移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる、
自律移動装置。
【請求項2】
前記制御手段は、
前記自律移動装置の自動走行を一時停止させる前記ホールド地点で、前記自律移動装置の走行方向をホールド方向として前記記憶手段に記憶し、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記自律移動装置の走行方向が前記ホールド方向と一致するか判定し、
前記走行方向が前記ホールド方向と一致していなければ、前記走行方向が前記ホールド方向と一致するように前記移動手段を制御して前記自律移動装置を旋回させてから、前記一時停止した自動走行を再開させる、
請求項1に記載の自律移動装置。
【請求項3】
前記制御手段は、
前記自律移動装置の自動走行を一時停止させる前記ホールド地点で、前記自律移動装置の走行方向をホールド方向として前記記憶手段に記憶し、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記自律移動装置の走行方向が前記ホールド方向と逆方向であるか判定し、
前記走行方向が前記ホールド方向と逆方向であれば、前記自動走行を開始したスタート地点から前記ホールド地点までの経路を逆向きにした経路で前記スタート地点まで走行するように前記自動走行を再開させる、
請求項1に記載の自律移動装置。
【請求項4】
ユーザの操作を取得する操作取得手段をさらに備え、
前記制御手段は、
前記自動走行中に前記操作取得手段でユーザの操作を取得したら、自動走行を一時停止し、その時点における、前記自律移動装置の位置をホールド地点として、前記自律移動装置の走行方向をホールド方向として、それぞれ前記記憶手段に記憶する、
請求項1から3のいずれか1項に記載の自律移動装置。
【請求項5】
ユーザの操作を取得する操作取得手段をさらに備え、
前記制御手段は、
前記操作取得手段で同一の操作を取得した場合でも、その時点での前記自律移動装置の状態に応じた異なる制御を前記自律移動装置に対して行う、
請求項1から4のいずれか1項に記載の自律移動装置。
【請求項6】
出力手段をさらに備え、
前記制御手段は、
前記自動走行を一時停止している間は、自動走行を再開可能であることを示す信号を前記出力手段に出力させる、
請求項1から5のいずれか1項に記載の自律移動装置。
【請求項7】
周辺の物体を検出する検出手段をさらに備え、
前記制御手段は、
前記検出手段で検出した物体の中から追従物を認識し、
前記検出手段で検出した点群のデータに基づいて周辺環境の地図データを作成する際に、前記追従物の前記データは用いずに、前記追従物以外の前記データを用いて前記地図データを作成する、
請求項1から6のいずれか1項に記載の自律移動装置。
【請求項8】
出力手段をさらに備え、
前記制御手段は、
前記教示データの記憶が完了したら、教示処理が完了したことを示す信号を前記出力手段に出力させる、
請求項1から7のいずれか1項に記載の自律移動装置。
【請求項9】
前記制御手段は、
前記教示データに基づいて、前記自律移動装置を自動走行させる際に、走行経路を調整する、
請求項1から8のいずれか1項に記載の自律移動装置。
【請求項10】
自律移動装置の自律移動方法であって、
教示された教示データを記憶手段に記憶し、
前記教示データに基づいて、移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる、
自律移動方法。
【請求項11】
自律移動装置のコンピュータに、
教示された教示データを記憶手段に記憶させ、
前記教示データに基づいて、移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律移動装置、自律移動方法及びプログラムに関する。
【背景技術】
【0002】
従来から、工場内の物品搬送や施設内の人の誘導等に移動ロボットが使われている。このような移動ロボットの走行経路を設定する方法として、人が移動ロボットに対して走行経路を教示する方法がある。例えば、特許文献1には、手動走行モードで教示走行を実行し、自動走行モードでは、教示走行で記憶された走行データに基づいて、教示された走行経路を自動的に走行することができる自律走行作業装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示されている自律走行作業装置は、自動走行モードにおいては、走行経路を自動的に走行することができるが、教示された走行経路以外の経路を走行することはできない。このため、例えば、走行経路の途中で一時的に他の場所に走行してもらいたいような状況(例えば、経路から少し外れたところを清掃して欲しい、経路から少し外れたところから荷物をピックアップして欲しい、等)が発生した場合には、ユーザ等が、教示データを修正するか、教示走行をし直すか、自動走行モードを用いずに経路の最初から最後まで手動で走行させる必要があった。
【0005】
本発明は、上記実情に鑑みてなされたものであり、教示された走行経路を自動走行中であっても経路の途中で一時的に自動走行以外の走行モードで走行させることができる自律移動装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の第1の観点に係る自律移動装置は、
移動手段と、
記憶手段と、
制御手段と、
を備える自律移動装置であって、
前記制御手段は、
教示された教示データを前記記憶手段に記憶させ、
前記教示データに基づいて、前記移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる。
【0007】
前記制御手段は、
前記自律移動装置の自動走行を一時停止させる前記ホールド地点で、前記自律移動装置の走行方向をホールド方向として前記記憶手段に記憶し、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記自律移動装置の走行方向が前記ホールド方向と一致するか判定し、
前記走行方向が前記ホールド方向と一致していなければ、前記走行方向が前記ホールド方向と一致するように前記移動手段を制御して前記自律移動装置を旋回させてから、前記一時停止した自動走行を再開させる、
ようにしてもよい。
【0008】
前記制御手段は、
前記自律移動装置の自動走行を一時停止させる前記ホールド地点で、前記自律移動装置の走行方向をホールド方向として前記記憶手段に記憶し、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記自律移動装置の走行方向が前記ホールド方向と逆方向であるか判定し、
前記走行方向が前記ホールド方向と逆方向であれば、前記自動走行を開始したスタート地点から前記ホールド地点までの経路を逆向きにした経路で前記スタート地点まで走行するように前記自動走行を再開させる、
ようにしてもよい。
【0009】
ユーザの操作を取得する操作取得手段をさらに備え、
前記制御手段は、
前記自動走行中に前記操作取得手段でユーザの操作を取得したら、自動走行を一時停止し、その時点における、前記自律移動装置の位置をホールド地点として、前記自律移動装置の走行方向をホールド方向として、それぞれ前記記憶手段に記憶する、
ようにしてもよい。
【0010】
ユーザの操作を取得する操作取得手段をさらに備え、
前記制御手段は、
前記操作取得手段で同一の操作を取得した場合でも、その時点での前記自律移動装置の状態に応じた異なる制御を前記自律移動装置に対して行う、
ようにしてもよい。
【0011】
出力手段をさらに備え、
前記制御手段は、
前記自動走行を一時停止している間は、自動走行を再開可能であることを示す信号を前記出力手段に出力させる、
ようにしてもよい。
【0012】
周辺の物体を検出する検出手段をさらに備え、
前記制御手段は、
前記検出手段で検出した物体の中から追従物を認識し、
前記検出手段で検出した点群のデータに基づいて周辺環境の地図データを作成する際に、前記追従物の前記データは用いずに、前記追従物以外の前記データを用いて前記地図データを作成する、
ようにしてもよい。
【0013】
出力手段をさらに備え、
前記制御手段は、
前記教示データの記憶が完了したら、教示処理が完了したことを示す信号を前記出力手段に出力させる、
ようにしてもよい。
【0014】
前記制御手段は、
前記教示データに基づいて、前記自律移動装置を自動走行させる際に、走行経路を調整する、
ようにしてもよい。
【0015】
また、本発明の第2の観点に係る自律移動方法は、
自律移動装置の自律移動方法であって、
教示された教示データを記憶手段に記憶し、
前記教示データに基づいて、移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる。
【0016】
また、本発明の第3の観点に係るプログラムは、
自律移動装置のコンピュータに、
教示された教示データを記憶手段に記憶させ、
前記教示データに基づいて、移動手段を制御して前記自律移動装置を自動走行させ、
前記自律移動装置の自動走行を一時停止させる地点であるホールド地点で、前記移動手段を制御して前記自律移動装置を前記自動走行以外の走行モードで走行させ、
前記自動走行以外の走行モードにより前記自律移動装置が前記ホールド地点の近傍に到達したら、前記一時停止した自動走行を再開させる。
【発明の効果】
【0017】
本発明によれば、教示された走行経路を自動走行中であっても経路の途中で一時的に自動走行以外の走行モードで走行させることができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態1に係る自律移動装置の機能構成を示すブロック図である。
【
図2】実施形態1に係る自律移動装置の外観を示す図である。
【
図3】実施形態1に係る自律移動装置が備える検出部の外観及び検出部から照射されるレーザを説明する図である。
【
図4】実施形態1に係る自律移動装置が備える検出部及び操作取得部を自律移動装置の側面から見た図である。
【
図5】実施形態1に係る検出部で検出される周辺の環境を説明する図である。
【
図6】実施形態1に係る操作取得部の一例を説明する図である。
【
図8】実施形態1に係る自律移動装置の走行モードの一例を説明する図である。
【
図9】実施形態1に係る自律移動装置の教示処理のフローチャートである。
【
図10】実施形態1に係る自律移動装置が第1地点から第2地点までの経路や第3地点から第4地点までの経路を教示された場合を説明する図である。
【
図11】実施形態1に係る自律移動装置の再生処理のフローチャートの第1の部分である。
【
図12】実施形態1に係る自律移動装置の再生処理のフローチャートの第2の部分である。
【
図13】実施形態1に係る自律移動装置の再生処理のフローチャートの第3の部分である。
【
図14】実施形態1の係る自律移動装置の再生処理における経路調整を説明する図である。
【
図15】変形例に係る自律移動装置の外観を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態に係る自律移動装置について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【0020】
(実施形態1)
本発明の実施形態に係る自律移動装置は、走行経路についてユーザから教示を受けて教示データを記憶し、記憶した教示データを再生することで、教示された走行経路(教示ルート)に基づいて、教示ルートのスタート地点からゴール地点まで自律的に移動する装置である。教示データの再生による走行を自動走行といい、自動走行以外の走行(ライントレース、手動操縦、自動追従、手押し、遠隔操縦、他のシステムからの指示に基づいて走行する等)を総称してガイド走行という。実施形態1に係る自律移動装置100の機能構成の一例を
図1に、外観の一例を
図2に示す。
【0021】
図1に示すように、自律移動装置100は、制御部10と、記憶部20と、検出部31と、操作取得部32と、出力部33と、駆動部40と、を備える。
【0022】
制御部10は、CPU(Central Processing Unit)等で構成され、記憶部20に記憶されたプログラムを実行することにより、後述する各部(周辺情報取得部11、地図作成部12、自己位置推定部13、教示データ記録部14、周辺情報変換部15、移動制御部16)の機能を実現する。また、制御部10は、時計(図示せず)を備え、現在日時の取得や経過時間のカウントをすることができる。制御部10は、制御手段として機能する。
【0023】
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成され、ROMの一部又は全部は電気的に書き換え可能なメモリ(フラッシュメモリ等)で構成されている。ROMには制御部10のCPUが実行するプログラム及びプログラムを実行する上で予め必要なデータが記憶されている。RAMには、プログラム実行中に作成されたり変更されたりするデータが記憶される。記憶部20は、記憶手段として機能する。また、記憶部20は、機能的構成として、後述する、地点記憶部21と、地図記憶部22と、教示データ記憶部23と、を備える。
【0024】
検出部31は、センシングデバイスとしてのスキャナ式レーザ距離計等で構成され、自律移動装置100の周辺(本実施形態では左右及び前方)に存在する、人、壁、障害物、反射材等の対象物を点の集まり(点群)として検出する。検出部31は、
図3に示すように、光学窓311の内部にある発光部からレーザ312を照射し、人、壁、障害物、反射材等の対象物で反射されたレーザを光学窓311の内部にある受光部が捉える。また、発光部(及び受光部)は回転軸313を中心に320度(自律移動装置100の真正面の方向を0度とすると±160度)回転することによってスキャン角度を変えながらレーザ312を照射して周囲をスキャンする。反射されたレーザを捉えた受光部からの信号を処理することにより、検出部31は、スキャン角度毎に、その方向に存在する対象物との距離及び受光強度を計測することができる。なお、上記で発光部の回転角度(スキャン角度)の範囲を「真正面の方向を0度とすると±160度」としたのは一例であり、発光部は、例えば±180度回転する仕様であってもよいし、±100度回転する仕様であってもよい。また、スキャン角度は左右対称でなくてもよい。
【0025】
検出部31は、
図4に示すように、スキャンの回転軸313が鉛直方向に伸びており、レーザ312は自律移動装置100の左右及び前方に存在する対象物(人、壁、障害物、反射材等)を3次元的にスキャンするようになっている。検出部31は、対象物で反射されたレーザを受光部で受光できれば当該対象物を検出でき、検出部31から例えば200m離れた場所にある対象物であっても検出可能である。また、検出部31で3次元的にスキャンすることにより、対象物の3次元的な形状を検出することができる。検出部31は、検出手段として機能する。なお、検出部31の構成はスキャナ式レーザ距離計に限るわけではなく、カメラで構成されてもよいし、距離及び受光強度を計測できるその他のデバイスで構成されてもよい。
【0026】
検出部31は、例えば、
図5に示すように、自律移動装置100の左側に壁71と反射材63が、正面に人61が、右側に障害物72と反射材64が、それぞれどのくらいの距離の位置に存在するかを検出する。なお、点線60は、検出部31から照射されるレーザの照射範囲の角度(320度)を示すものであり、照射距離を示すものではない。レーザは距離的には点線60を超えた範囲まで照射されており、例えば反射材63も検出される。ただし、レーザは、点線60に示すように、自律移動装置100の後方40度の角度範囲には照射されていない。検出部31は、レーザが反射した点までの距離と角度を取得できるため、この距離及び角度に基づき、制御部10は、当該点の座標(X,Y)の集まり(点群)のデータを、例えば、自律移動装置100から当該点までの正面前方方向における距離をXとして、横方向における自律移動装置100からのずれ幅をYとして、取得することができる。
【0027】
また、制御部10は、検出部31から取得した情報(対象物までの距離、受光強度等)に基づき、検出部31が検出した対象物を認識してもよい。例えば、制御部10は、受光強度が所定の基準強度よりも高い等、反射材と認識する条件を満たした場合に対象物が反射材(いわゆる再帰反射材)であると認識してもよい。また、制御部10は、対象物の幅が人の横幅(例えば30cmから1m)程度である等、人と認識する条件を満たした場合に対象物が人であると認識してもよい。また、制御部10は、対象物の幅が所定の基準値よりも長い等、壁と認識する条件を満たした場合に対象物が壁であると認識してもよい。また、制御部10は、反射材、人、壁等と認識する条件をいずれも満たさない場合は、当該対象物を障害物であると認識してもよい。
【0028】
また、制御部10は、対象物の種類等の認識は行わずに、検出部31から取得した情報に基づいて、何らかの対象物がその位置に存在することを認識してもよい。制御部10は、検出部31から取得した情報をもとに初期検出を行い、検出した対象物をトラッキング(短時間(例えば50ミリ秒)毎にスキャンして、座標変化の小さい点群の塊を追跡)したりすることで、より多様な対象を安定して検出できる(例えば後述する追従モードにおいて、人の追従だけでなく、他の自律移動装置100の追従を行うことも可能である)。なお、以上説明した対象物の認識手法は一例であり、他の認識手法を用いてもよい。
【0029】
また、検出部31が検出する対象物の一つである反射材は、再帰反射素材からなり、レーザ光が当たると、そのレーザ光を入射した方向に反射させる。したがって、検出部31が検出した受光強度が所定の基準強度よりも高い場合に、制御部10は、そのときの検出部31でのスキャン角度の方向に反射材が存在することを認識することができる。例えば長い廊下のような特徴量が少ない場所では、廊下を長手方向に移動しても、検出部31で検出される情報にあまり変化が生じず、長手方向にどれくらい移動したかを制御部10が認識しにくくなる。このような場合でも、壁71に反射材63を設置することにより、検出される反射材の個数や配置に基づいて、制御部10は廊下を長手方向にどれくらい移動したかを認識できるようになり、より正確な地図の構築と安定した走行を可能にする。
【0030】
なお、反射材63は、検出部31から照射されるレーザ光が当たる位置(本実施形態では検出部31の高度と同程度の高度の位置)に設置される。また、反射材は、再帰反射素材を含む塗料を壁等に塗布したり、再帰反射素材を含む粘着テープを壁等に貼り付けたり、再帰反射素材を含むロープ等(通常のロープ等に再帰反射素材を含む塗料を塗布したり、再帰反射素材を含む粘着テープを巻いたりして作成してもよい)を空中にぶら下げたりして設置することができる。また再帰反射素材でなくても、レーザの反射強度を用いることで対象物体の明暗を検出し、後述する地図記憶部22に保存することで、特徴量として地図データとのマッチングに用いることもできる。例えば形状的な特徴が少ない長い廊下においても、明るい色や暗い色はレーザの反射強度によってある程度検出することができる。そこでその強度の明暗をパターンとして認識して、地図データのマッチングに用いることで、環境側に特別な準備を必要としない自動走行を実現することもできる。
【0031】
図1に戻り、操作取得部32は、ジョイスティック等の入力デバイスを備え、ユーザの操作を取得する。操作取得部32は、操作取得手段として機能する。
図4に示すように、操作取得部32は、ジョイスティック321や押しボタン322を備える。そしてユーザは、ジョイスティック321を倒す方向で進行方向を、倒す量(倒し角)で移動速度を、それぞれ自律移動装置100に指示することができる。また、押しボタン322として、
図6に示すように、教示開始/終了を指示する記憶ボタン3221、再生開始/終了を指示する再生ボタン3222、ループ再生開始を指示するループ再生ボタン3223、逆再生及び減速を指示する減速ボタン3224、再生補正及び加速を指示する加速ボタン3225、手動/追従/ライントレース切替を指示するスタートボタン3226、等が用意されている。このような押しボタン322は、屋外の作業現場などでは視認性が高く、利便性が向上する。なお、逆再生とは、教示データを逆向きに用いて再生することにより、自律移動装置100を教示ルートのゴール地点からスタート地点に戻すような移動をさせる再生処理である。また、再生補正とは、教示データの再生中に地図データの補正も行う再生処理である。また、ループ再生は、教示ルートのゴール地点がスタート地点と同一又はスタート地点の近傍の地点である場合に可能になるものであり、教示データを繰り返し再生することにより、教示ルートのスタート地点からゴール地点までの走行を繰り返し行う再生処理である。
【0032】
なお、操作取得部32は、押しボタンの代わりに、又は押しボタンに加えて、ユーザの指示を受け付けるUI(User Interface)を表示するタッチパネルを備えてもよい。この場合、タッチパネルのディスプレイに操作メニュー(最大速度、加速度等の設定や当該設定値の選択、目的地の指定、移動停止指示、教示、再生、逆再生、ループ再生等の開始及び終了の指示、走行モード(再生モード、手動操縦モード等)の選択等を行うメニュー)が表示され、ユーザはそれらにタッチすることによって、自律移動装置100に各指示を与えることができる。
【0033】
出力部33は、スピーカやLED(Light Emitting Diode)を備え、自律移動装置100の状態等をユーザに知らせる信号を出力する。本実施形態ではLEDは操作取得部32の押しボタン322の中に組み込まれており、
図6に示すように、記憶ボタン3221にLED331が組み込まれている。例えば、後述する教示処理中は、LED331が点灯し、教示が終了して経路が記憶されるとLED331が消灯する。また、図示しないが、バッテリー残量を表示するLEDや、走行速度を表示するLEDが備えられていてもよい。出力部33は、出力手段として機能し、LEDの点灯状況や、スピーカから出力される音により、自律移動装置100の現在の状態等をユーザに知らせることができる。
【0034】
また、図示しないが、自律移動装置100は外部のシステム(PC(Personal Computer)、スマートフォン等)と通信する通信部を備えてもよい。そして、通信部により、現在の状態や各種データ(例えば地図データや教示データ等)を外部のシステムに送信したり、外部のシステムから各種データ(例えば、修正された地図データや教示データ等)を受信したりしてもよい。
【0035】
また、教示には、追従物を追従させることによって教示する追従教示だけでなく、操作取得部32のジョイスティック321等で自律移動装置100を手動操縦することによって教示する手動教示がある。ユーザは、追従教示と手動教示のどちらの教示を行うかについても、操作取得部32のスタートボタン3226で切り替えることができる。本実施形態では、追従教示と手動教示を任意に切り替え可能な教示処理について説明するが、追従教示と手動教示とは、教示データを追従物の追従によって取得するのか、操作取得部32で取得するのかが異なるだけであり、本発明は、これらの教示に限らず、その他の任意の動作による教示(手押し、外部システムからの入力等)にも適用可能である。
【0036】
図1に戻り、駆動部40は、制御部10からの指示(制御)により自律移動装置100を移動させる。駆動部40は、移動手段として機能する。
図2に示すように、駆動部40は、独立2輪駆動の車輪41とモータ42とキャスター43とを備える。自律移動装置100は、2つの車輪41の同一方向駆動により前後の平行移動(並進移動)を、2つの車輪41の逆方向駆動によりその場での回転(向き変更)を、2つの車輪41のそれぞれ速度を変えた駆動により旋回移動(並進+回転(向き変更)移動)を、行うことができる。また、各々の車輪41にはロータリエンコーダが備えられており、制御部10は、ロータリエンコーダで計測した車輪41の回転数と、車輪41の直径や車輪41間の距離等とを用いることによって並進移動量及び回転量を計算できる。
【0037】
例えば、車輪41の直径をD、回転数をCとすると、その車輪41の接地部分での並進移動量はπ・D・Cとなる。また、車輪41の直径をD、車輪41間の距離をI、右の車輪41の回転数をCR、左の車輪41の回転数をCLとすると、向き変更の回転量は(右回転を正とすると)360°×D×(CL-CR)/(2×I)となる。この並進移動量及び回転量をそれぞれ逐次足し合わせていくことで、駆動部40はメカオドメトリとしても機能し、制御部10は、自律移動装置100の位置(移動開始時の位置及び向きを基準とした位置及び向き)を把握することができる。
【0038】
なお、車輪41の代わりにクローラを備えるようにしても良いし、複数(例えば二本)の足を備えて足で歩行することによって移動を行うようにしても良い。これらの場合も、二つのクローラの動き、足の動き等に基づいて、車輪41の場合と同様に自律移動装置100の位置及び向きの計測が可能である。
【0039】
また、
図2に示すように、自律移動装置100は、荷台51を備え、搬送物品等を荷台51に搭載して目的地に運ぶことができる。そして、荷台51の後方中央部の端部に牽引受金具を取り付けることにより、台車等を牽引することもできる。また、自律移動装置100は、バンパー52を備え、他の物体に衝突した時に停止し、衝突の衝撃を和らげることができる。また、自律移動装置100は、非常停止ボタン323を備え、ユーザにより手動で非常停止させることができる。
【0040】
次に、自律移動装置100の制御部10の機能的構成について説明する。
図1に示すように、制御部10は、周辺情報取得部11、地図作成部12、自己位置推定部13、教示データ記録部14、周辺情報変換部15、移動制御部16、としてそれぞれ機能し、自律移動装置100の移動制御等を行う。
【0041】
周辺情報取得部11は、検出部31が検出した物体の位置を点群のデータとして取得する。また、スタートボタン3226が押されて自律移動装置100が自動追従モードや追従教示モードになると、周辺情報取得部11は、前方に存在する点群の塊(人、他の自律移動装置100等)を追従物として認識する。
【0042】
地図作成部12は、検出部31で検出した点群のデータに基づいて自律移動装置100の周辺環境の地図データを作成する。本実施形態では、検出部31のレーザ312の1回のスキャンで得られる点群のデータが1フレーム分の地図データとなる。点群のデータは、例えば、周辺の物体(壁、障害物、反射材等)の位置(距離、方向等)等の存在状況を示す周辺環境データとなる。地図データのデータ形式は任意である。地図作成部12は、検出部31で検出したデータを用いて、例えば、SLAM(Simultaneous Localization And Mapping)により地図データを作成してもよい。
【0043】
本実施形態では、地図作成部12は、自律移動装置100が所定の間隔毎に、検出部31で検出した1フレーム分の点群のデータ(周辺の物体の存在状況を示す周辺環境データ)を、後述する地図記憶部22に記録していくことによって、地図データを構成する。1フレーム分のデータを記録する所定の間隔としては、所定の移動量(例えば50cm)毎、所定の時間(例えば0.2秒)毎、所定の角度(例えば45度)の回転毎等とすることができる。本実施例では、フレーム単位の地図データを保存し、走行時には所定の間隔毎にフレームを次々に切り替えて使用することにより、いわゆるSLAMにおける累積誤差の問題(閉ループ問題)が発生することを防いでいる。したがって、大規模なルートにおいても、よりロバストで信頼性のある地図ベース自律移動を実現することができる。
【0044】
自己位置推定部13は、検出部31で検出した点群のデータを地図記憶部22に記録された地図データと照合して、照合したフレーム内での自律移動装置100の自己位置を推定する。なお、自己位置推定部13は、自律移動装置100の現在の位置(自己位置)の情報については、駆動部40から得られるメカオドメトリの値を用いて取得してもよい。
【0045】
教示データ記録部14は、後述する教示処理によって取得した教示データを教示データ記憶部23に記録する。教示データは、所定の間隔毎にフレーム単位で記録された地図データと、実際に走行した自律移動装置100の位置の座標の連続した点列とが、教示処理中に逐次記録されたデータとして構成されている。例えば、
図5に示すように、人61に追従して自律移動装置100が直進しているときには、点列65が教示データに含まれる。また、教示中にユーザから一時停止、LED331の点灯/消灯等の指示が行われたときには、その指示内容も教示データに逐次記録される。教示処理を複数の経路について実行することによって、教示データ記録部14は、複数の教示データを教示データ記憶部23に記録してもよい。また、教示ルートのスタート地点の位置情報及び向きの情報、ゴール地点の位置情報、ホールド地点の位置情報は、後述する地点記憶部21に記憶されるが、各教示データにもこれらの情報が含まれていてもよい。なお、スタート地点とは、教示処理の開始を指示された地点であり、ゴール地点とは、教示処理の終了を指示された地点である。また、ホールド地点とは、教示処理の際に、自律移動装置100が教示データを再生時に一時停止する地点として指示された地点である。
【0046】
教示データを再生する際には、制御部10は、センサデータ(検出部31で検出した再生時のその時点での点群のデータ)と教示データ記憶部23に記録された地図データとをフレーム単位で照合し、当該フレーム内での自律移動装置100の位置を推定した上で、教示データ記憶部23に記録された点列(教示時に実際に走行した経路の点列)に沿って走行するように駆動部40を制御する。そして、所定の条件(例えば50cm走行)を満たすと教示データ中の次のフレームに移り、制御部10は、次のフレームのデータを用いて同様の処理を行う。これを繰り返すことで自律走行を行う。
【0047】
周辺情報変換部15は、地図記憶部22に記録されている周辺の物体の情報(周辺環境データ)を、逆方向からのデータに変換する。周辺情報変換部15によるデータの変換について
図7A及び
図7Bを用いて説明する。地図記憶部22には、まず
図7Aに示すような正方向の周辺環境データが記録される。そして、逆方向からのデータとは、自律移動装置100の向きを、当該周辺の物体を検出部31で検出したときの向きとは逆にしたときに、検出部31で検出されるはずの周辺環境データである(
図7Bに示す周辺環境データ)。このデータは元のデータ(
図7Aに示す周辺環境データ)の前後左右を逆にする(前方に観測された物体が後方に観測されるように、また、左側に観測された物体が右側に観測されるようにする)ことによって得られる。
【0048】
移動制御部16は、駆動部40を制御して、自律移動装置100を移動させる。例えば、操作取得部32に教示開始の指示が入力されてから教示終了の指示が入力されるまでの間は、移動制御部16は、操作取得部32で指示された通りに、又は、追従物を追従するように、駆動部40を制御する。また、操作取得部32に再生開始の指示が入力されると、移動制御部16は、教示データ記憶部23に記憶されている教示データにしたがって移動するように、駆動部40を制御する。
【0049】
次に、記憶部20の機能的構成について説明する。記憶部20は、地点記憶部21と、地図記憶部22と、教示データ記憶部23と、を備える。
【0050】
地点記憶部21には、操作取得部32で取得されたユーザの操作に基づいて、自律移動装置100の位置(例えば、スタート地点の位置やゴール地点の位置等)を判定するためのデータが記録される。例えば、操作取得部32に教示開始の指示が入力されると、自律移動装置100のその時点での位置及び方向で検出部31から検出される周辺環境データが、スタート地点(第1地点)における地点データ(第1地点データ)として地点記憶部21に記録される。
【0051】
地図記憶部22には、後述する教示処理において、検出部31で検出された周辺環境データに基づいて地図作成部12で作成された地図データが記録される。
【0052】
教示データ記憶部23には、後述する教示処理によって取得される教示データ(教示中に記録された地図データ及び自律移動装置100の位置の点列並びにユーザから教示される一時停止等に関するデータ)のシーケンスが教示データとして記憶される。
【0053】
次に、自律移動装置100の走行モードについて
図8を参照して説明する。自律移動装置100は、電源オフ状態で電源ボタンが押されると、電源が入り、手動操縦モードになる。手動操縦モードでは、ユーザは操作取得部32のジョイスティック321を操作することにより、自律移動装置100を手動で操縦することができる。手動操縦モードにおいて、ユーザが自律移動装置100の正面に立ち、スタートボタン3226を押すと、自律移動装置100は正面に立っているユーザを追従物として認識し、自動追従モードに切り替わる。自動追従モードでは、ユーザが歩くと、自律移動装置100はユーザの後について動き(ユーザを自動的に追従し)、ユーザが止まると自律移動装置100はユーザと一定の距離を保って停止する。自動追従モードにおいて、ユーザが再度スタートボタン3226を押すと、自律移動装置100は手動操縦モードに切り替わる。また、手動操縦モードにおいて、スタートボタン3226を2回押すと、自律移動装置100はライントレースモードに切り替わる。ライントレースモードでは、自律移動装置100は再帰反射材等で設定されたラインをトレースして走行する。ライントレースモードにおいて、ユーザが再度スタートボタン3226を2回押すと、自律移動装置100は手動操縦モードに切り替わる。
【0054】
また、自律移動装置100は、手押し(ユーザが手等で自律移動装置100を押すことによって走行させること)、遠隔操縦(通信部を介して自律移動装置100から離れた場所にいるユーザの操縦指示を取得して走行すること)、他のシステムからの指示に基づく走行(通信部を介して取得した他のシステムからの指示に基づいて走行すること)を行うこともできる。手動操縦、自動追従、ライントレース、手押し、遠隔操縦、他のシステムからの指示による走行等、自動走行(教示データの再生による走行)以外の走行を総称してガイド走行といい、自律移動装置100がガイド走行で走行するモードをガイド走行モードという。
【0055】
また、手動操縦モードにおいて、ユーザが記憶ボタン3221を押すと、記憶ボタン3221のLED331が点灯し、手動教示モードに切り替わる。手動教示モードでは、ユーザはジョイスティック321を操作することにより、経路を教示することができる。手動教示モードにおいて、ユーザが自律移動装置100の正面に立ち、スタートボタン3226を押すと、自律移動装置100は正面に立っているユーザを追従物として認識し、追従教示モードに切り替わる。追従教示モードでは、ユーザは教示させたい経路に沿って歩くと、自律移動装置100はユーザの後について動き、ユーザの歩いた経路が教示ルートとして記憶される。追従教示モードにおいて、ユーザが再度スタートボタン3226を押すと、自律移動装置100は、手動教示モードに切り替わる。
【0056】
また、手動教示モードにおいて、スタートボタン3226を2回押すと、自律移動装置100はライントレース教示モードに切り替わる。ライントレース教示モードでは、自律移動装置100は再帰反射材等で設定されたラインの上を辿るように走行し、この走行経路を教示データとして記憶する。ライントレース教示モードにおいて、ユーザが再度スタートボタン3226を2回押すと、自律移動装置100は手動教示モードに切り替わる。また、手動教示モードでも追従教示モードでもライントレース教示モードでも、ユーザが記憶ボタン3221を再度押すと、教示を終了して、記憶ボタン3221のLED331が消灯し、手動操縦モードに戻る。手動教示モード、追従教示モード、ライントレース教示モードを総称して記憶モードという。
【0057】
また、手動操縦モードにおいて、ユーザが再生ボタン3222を押すと、自律移動装置100は再生モードに切り替わる。再生モードでは教示データの再生が行われ、自律移動装置100は、教示データに基づいて、自動走行(走行したり一時停止したり)する。教示データの再生中にユーザが再生ボタン3222を押すと、自律移動装置100は現在地点をホールド地点として記憶してホールド状態になる。ホールド状態では、自律移動装置100は、再生がどこまで行われたかの情報を保持したまま、一時的にガイド走行モード(手動操縦モード、自動追従モード、ライントレースモード、手押し等)で走行を行うことができる。ホールド状態でユーザが自律移動装置100をホールド位置に戻るまで走行させてから再生ボタン3222を押すと、自律移動装置100は再生モードに復帰し、教示データの続きからの再生が継続される。また、ユーザがホールド位置での自律移動装置100の向きを逆向きにして再生ボタン3222を押した場合には、自律移動装置100は教示データを逆向きに再生して、スタート地点に戻るようにしてもよい。なお、教示データの再生中にユーザがスタートボタン3226を押すと、再生は打ち切りになり、自律移動装置100は、手動操縦モードに切り替わる。再生が打ち切られた場合は、その後、再度再生ボタン3222が押されると、自律移動装置100は、教示データを最初から(スタート地点から)再生する。
【0058】
また、
図8では省略しているが、手動操縦モードにおいて、ユーザがループ再生ボタン3223を押すと、自律移動装置100はループ再生モードに切り替わる。ループ再生モードは、教示ルートの走行を繰り返し行う(教示ルートのゴール地点で、自動的に再度再生ボタン3222が押されたのと同様の動作が行われる)ものであり、教示ルートのゴール地点がスタート地点と同一又はスタート地点の近傍の地点である必要がある。ループ再生モードでも、再生モードと同様に、教示データの再生中にユーザが再生ボタン3222を押すと、自律移動装置100は現在地点をホールド地点として記憶してホールド状態になる。ホールド状態でユーザがループ再生ボタン3223を押すと、ループ再生モードに復帰する。なお、ホールド状態でユーザが再生ボタン3222を押すと、ループ再生モードではなく、再生モードに復帰し、自律移動装置100は、教示ルートのゴール地点で停止する。
【0059】
また、
図8では省略しているが、手動操縦モードにおいて、ユーザが再生ボタン3222を押しながら減速ボタン3224を押すと、自律移動装置100は逆再生モードに切り替わる。逆再生モードでは、教示ルートのゴール地点からスタート地点まで、逆方向に再生が行われる。逆再生モードでは、周辺情報変換部15が、地図記憶部22に記録されている周辺の物体の情報(周辺環境データ)を、逆方向からのデータに変換する。これにより、ゴール地点からスタート地点までの経路が教示されていなくても、スタート地点からゴール地点までの経路を教示された時の教示データを逆から再生することによって、自律移動装置100は、教示ルートを逆方向に再生することが可能である。
【0060】
また、
図8では省略しているが、手動操縦モードにおいて、ユーザが再生ボタン3222を押しながら加速ボタン3225を押すと、自律移動装置100は再生補正モードに切り替わる。再生補正モードでは、後述する再生補正処理が行われ、自律移動装置100は、必要に応じて地図データを補正しながら教示データの再生を行う。
【0061】
なお、以上の各走行モードにおける操作取得部32の押しボタン322の操作方法は一例であり、各走行モードを切り替える際の操作が、上述の押しボタン322に限定されるわけではない。例えば、記憶ボタン3221、再生ボタン3222、ループ再生ボタン3223を1つのボタン(仮にユニバーサルボタンとする)に集約し、教示データが記録されていないときにユニバーサルボタンが押されると教示モードになり、教示データが記録済みのときにユニバーサルボタンが押されると再生モードになるようにしてもよい。また、教示ルートのゴール地点がスタート地点と同一又はスタート地点の近傍の地点の場合には、再生ボタン3222(又はユニバーサルボタン)が押されると、ループ再生モードになるようにしてもよい。
【0062】
次に、自律移動装置100の教示処理について、
図9を参照して説明する。この教示処理は、ユーザが操作取得部32の記憶ボタン3221を押すと、実行が開始される。
【0063】
まず、制御部10は、自律移動装置100の走行モードを手動教示モードに切り替える(ステップS101)。そして、制御部10は、検出部31で検出された周辺環境データをスタート地点(第1地点)における地点データ(第1地点データ)として地点記憶部21に記録する(ステップS102)。なお、既に地図記憶部22に地図データが記録されていた場合には、制御部10は、スタート地点が地図データ上のどの位置に対応するかを把握する。
【0064】
次に制御部10は、スタートボタン3226が押されたか否かを判定する(ステップS103)。スタートボタン3226が押されたなら(ステップS103;Yes)、制御部10は、自律移動装置100の走行モードが手動教示モードであるか否かを判定する(ステップS104)。
【0065】
走行モードが手動教示モードなら(ステップS104;Yes)、周辺情報取得部11は、検出部31により、自律移動装置100の前方に存在するユーザを追従物として認識する(ステップS105)。そして、制御部10は、自律移動装置100の走行モードを追従教示モードに切り替え(ステップS106)、ステップS108に進む。
【0066】
走行モードが手動教示モードでない(すなわち追従教示モード)なら(ステップS104;No)、制御部10は、自律移動装置100の走行モードを手動教示モードに切り替え(ステップS107)、ステップS108に進む。
【0067】
一方、スタートボタン3226が押されていないなら(ステップS103;No)、制御部10は、検出部31でスキャンを行い、自律移動装置100の周辺の情報を取得する(ステップS108)。そして、制御部10は、走行モードが手動教示モードか否かを判定する(ステップS109)。
【0068】
走行モードが手動教示モードなら(ステップS109;Yes)、制御部10は、操作取得部32でユーザの操作(主にジョイスティック321による移動操作)を取得する(ステップS110)。そして、移動制御部16が当該ユーザの操作に従って駆動部40を制御しながら、地図作成部12が自律移動装置100の周辺環境の地図データ(ステップS108で検出部31が検出した点群のデータ)をフレーム単位で地図記憶部22に記録し、教示データ記録部14が当該フレーム単位の地図データと、自律移動装置100の走行位置の座標の点列とを教示データとして教示データ記憶部23に記録し(ステップS111)、ステップS114に進む。
【0069】
なお、周辺情報取得部11で反射材が認識された場合は、地図作成部12は、ステップS111で、当該反射材の位置や個数の情報も地図データに含めて地図記憶部22に記録する。したがって、長い廊下等のように、特徴量が少ない場所においても、反射材をところどころに設置(壁に貼る等)することにより、地図記憶部22に反射材の存在する場所や個数の情報が記録される。これにより、後述する再生処理の際に、制御部10は、反射材の位置や個数の情報とのマッチングを取り、自律移動装置100の自己位置をより正確に把握することができる。
【0070】
走行モードが手動教示モードでない(すなわち追従教示モード)なら(ステップS109;No)、周辺情報取得部11に認識された追従物を追従するように、移動制御部16が駆動部40を制御しながら、地図作成部12が自律移動装置100の周辺環境の地図データ(ステップS108で検出部31が検出した点群のデータ)をフレーム単位で地図記憶部22に記録し、教示データ記録部14が当該フレーム単位の地図データと、自律移動装置100の走行位置の座標の点列とを教示データとして教示データ記憶部23に記録する(ステップS112)。なお、上述のステップS111での処理と同様に、周辺情報取得部11で反射材が認識された場合は、地図作成部12は、ステップS112で、当該反射材の位置や個数の情報も地図データに含めて地図記憶部22に記録する。
【0071】
そして、制御部10は、周辺情報取得部11に認識された追従物の点群データを地図記憶部22に記録された地図データから削除し(ステップS113)、ステップS114に進む。なお、ステップS113の処理は、必ずしもステップS112と別個に行う必要はなく、ステップS112で地図作成部12が地図データを作成する際に、追従物の点群データを用いずに、追従物以外の点群データを用いて地図データを作成するようにしてもよい。
【0072】
また、ステップS112では、移動制御部16は、追従物が後退しても自律移動装置100は後退しない(例えば停止する)ように駆動部40を制御する。すなわち、追従物を追従している間は、移動制御部16は、駆動部40に対して後退を指示しないようにする。後述する再生処理の際、走行経路として用いた教示ルートに後退処理が含まれていると、移動制御処理が複雑になる可能性があるからである。したがって、追従教示の場合だけでなく、手動教示の場合においても、移動制御部16は、ステップS111で、自律移動装置100を後退させないように駆動部40を制御してもよい。
【0073】
ステップS114では、制御部10は、操作取得部32でユーザの操作が取得されたか否かを判定する。ユーザ操作が取得されたなら(ステップS114;Yes)、教示データ記録部14は、当該ユーザ操作の情報を教示データとして教示データ記憶部23に記録し(ステップS115)、ステップS116に進む。ステップS114で取得されるユーザ操作は、具体的には、再生ボタン3222を1回押すことによる「一時停止」の指示(もう一度再生ボタン3222が押されるまでの時間が「一時停止する時間」として教示データ記憶部23に記録される)、再生ボタン3222を連続して2回押すことによる「ホールド位置設定」の指示(再生時にこの位置で一時停止し、ユーザが再生ボタン3222を押すとホールド状態に移行する)、ループ再生ボタン3223を押すことによる「LED点灯/消灯切替」の指示(再生時にこの位置でLED331の点灯/消灯を切り替える)等である。
【0074】
一方、ユーザ操作が取得されなかったなら(ステップS114;No)、ステップS116に進む。
【0075】
ステップS116では、制御部10は、操作取得部32から、教示終了の指示が入力されたか(すなわち、記憶ボタン3221が押されたか)否かを判定する。教示終了の指示が入力されなければ(ステップS116;No)、ステップS103に戻る。教示終了の指示が入力されたら(ステップS116;Yes)、制御部10は、検出部31で検出された周辺環境データを教示ルートのゴール地点(第2地点)における地点データ(第2地点データ)として地点記憶部21に記録する(ステップS117)。
【0076】
そして、制御部10は、教示データの記録が完了したことを示す音(効果音、メロディ等)を出力部33のスピーカから出力し(ステップS118)、教示処理を終了する。なお、教示データの記録が完了したことを示す信号としては、上述の音だけでなく、光を用いることもできる。例えば、制御部10は、教示中はLED331を点灯させて教示モードで動作していることをユーザに示し、ステップS118では、教示データの記録が完了したことを示すために、LED331を消灯させてもよい。
【0077】
以上、教示処理について説明した。この教示処理によって教示データ(教示ルートに従ってスタート地点からゴール地点まで走行するように自律移動装置100を制御するためのデータ。途中で一時停止したりLEDを点灯/消灯したりする制御データも含まれる。)が、作成される。なお、上ではスタート地点を第1地点、ゴール地点を第2地点と記載したが、これは、地点記憶部21にこれらの地点が最初に記録された場合の話である。例えば、最初の教示処理で地点記憶部21に第1地点及び第2地点が記録された後の次の教示処理では、教示を開始したスタート地点は第3地点として、教示を終了したゴール地点は第4地点として、それぞれ地点記憶部21に記録される。このように、教示開始の指示が入力された地点(スタート地点)と教示終了の指示が入力された地点(ゴール地点)とは、累積的に地点記憶部21に記録することが可能であり、教示データ記憶部23にも、複数の教示ルートを記録することが可能である。
【0078】
教示処理の一例について、
図10を参照して説明する。最初に自律移動装置100が第1地点81の位置で、ユーザ66から教示開始の指示を受けたものとする。すると、制御部10は、検出部31で検出された周辺環境データ60aをスタート地点の地点データ(第1地点データ)として、地点記憶部21に記録する(ステップS102)。そして、ユーザが自律移動装置の正面に立ってスタートボタン3226を押すと、周辺情報取得部11は、ユーザ66を追従物として認識する(ステップS105)。
【0079】
その後ユーザ66が第2地点82まで歩いていくと、自律移動装置100もユーザ66に追従して第2地点82まで移動するが、移動中に地図作成部12は、検出部31で検出されたデータ(例えば、周辺環境データ60b、60c、60d)に基づいて周辺環境の地図データを作成して地図記憶部22に記録する(ステップS112)。また、第2地点82までの移動中に、例えば第3地点83で、ユーザが再生ボタン3222を2回連続して押すと(ステップS114;Yes)、第3地点83がホールド地点として認識され、第3地点で検出された周辺環境データ等に基づいて第3地点の位置情報がホールド地点の位置情報として地点記憶部21に記録され、「第3地点で一時停止する」という教示データが教示データ記憶部23に記録される(ステップS115)。
【0080】
そして、ユーザ66が第2地点82で教示終了の指示を操作取得部32に入力すると(ステップS116)、制御部10は、検出部31で検出された周辺環境データ60eを第2地点データとして、地点記憶部21に記録する(ステップS117)。また、この教示処理の間に、第1地点81から第2地点82までの経路(第1教示ルート)を進むための教示データが、教示データ記憶部23に記録される。
【0081】
その後、例えば、自律移動装置100が第3地点83の位置で第4地点84の方向を向いている状態で、ユーザ67から教示開始の指示を受けたものとする。すると、制御部10は、検出部31で検出された周辺環境データ60hをスタート地点の地点データ(第3地点データ)として、地点記憶部21に記録する(ステップS102)。そして、ユーザが自律移動装置の正面に立ってスタートボタン3226を押すと、周辺情報取得部11は、ユーザ67を追従物として認識する(ステップS105)。
【0082】
その後ユーザ67が第4地点84まで歩いていくと、自律移動装置100もユーザ67に追従して第4地点84まで移動するが、移動中に地図作成部12は、検出部31で検出されたデータ(例えば、周辺環境データ60i)に基づいて周辺環境の地図データを作成して地図記憶部22に記録する(ステップS112)。
【0083】
そして、ユーザ67が第4地点84で教示終了の指示を操作取得部32に入力すると(ステップS116)、制御部10は、検出部31で検出された周辺環境データ60jをゴール地点の地点データ(第4地点データ)として、地点記憶部21に記録する(ステップS117)。また、この教示処理の間に、第3地点83から第4地点84までの経路(第2教示ルート)を進むための教示データは、教示データ記憶部23に記録される。
【0084】
このようにして、教示処理により、地点記憶部21には各地点の地点データが、地図記憶部22には地図データが、教示データ記憶部23には教示データが、それぞれ記録されていく。なお、上述の教示処理(
図9)では、教示処理中の走行モードを手動教示モードと追従教示モードの2種類として説明したが、教示処理中の走行モードはこの2種類に限定されるわけではない。ライントレース、手押し、遠隔操縦、他のシステムからの指示に基づく走行等によっても教示処理は可能である。これらの走行モードによる教示処理を実現するには、例えば、
図9のステップS109の判定で走行モードの種類に基づく分岐を増やし、ステップS110及びS111の処理に相当する処理として、ライントレース、手押し等のそれぞれの走行モードで走行しながら、地図データ及び教示データを記録する処理を行えばよい。
【0085】
次に、自律移動装置100の再生処理について、
図11、
図12及び
図13を参照して説明する。この再生処理は、ユーザが操作取得部32の再生ボタン3222を押すと、実行が開始される。なお、ユーザが、再生ボタン3222と同時に減速ボタン3224を押すと、逆再生処理が実行され、再生ボタン3222と同時に加速ボタン3225を押すと再生補正処理が実行される。逆再生処理及び再生補正処理は、再生処理の一部が変更になるだけの処理であるため、以下の再生処理の説明中で、適宜追加説明を行う。
【0086】
まず、制御部10は、自律移動装置100の現在地を取得する(ステップS201)。ここで、現在地の取得方法は任意である。例えば、制御部10は、SLAMを用いて自律移動装置100の現在地を取得してもよい。また、制御部10は、検出部31で取得されるデータを地点記憶部21に記録されている各地点のデータと照合することによって現在地を取得してもよい。検出部31で取得されるデータを地点記憶部21に記録されている各地点のデータと照合することによって現在地を取得する方法について、以下に補足説明する。
【0087】
検出部31で取得されるデータの角度範囲は、自律移動装置100がどの方向を向いていても、ある程度の重複が生じるので、重複する部分についてマッチングを行うことにより、現在地が地点記憶部21に記録されている地点であるか否か、及び、記録されている地点であるなら、そのうちのどの地点なのかを判定できる。
【0088】
例えば、検出部31が角度範囲320度のデータを取得しており、自律移動装置100の現在位置が第2地点82である場合を想定すると、
図10に示すように、第2地点82に位置する自律移動装置100が、第1地点81とは反対の方向を向いている時に検出部31で検出されるデータは周辺環境データ60eであり、第1地点81の方向を向いている時に検出部31で検出されるデータは周辺環境データ60fであり、両者の間には網掛け部分60efに示すように280度分(左右それぞれ140度分)の重複部分がある。したがって、周辺環境データ同士を照合する際には、例えば一方の周辺環境データを少しずつ回転させながら照合させていき、半分以上(例えば280度分以上)がマッチングしたら、同一の地点から得られた周辺環境データであると推定することができる。
【0089】
このようにして、制御部10は、検出部31で検出された周辺環境データを地点記憶部21に記録されている各地点のデータと照合することによって、現在地が地点記憶部21に記録されている地点のうちのどの地点なのかを取得することができる。なお、もし地点記憶部21に記録されているどの地点ともマッチングしない場合には、現在地の取得は不可能となり、ステップS201では、例えば「現在地取得不可能」という値を取得する。
【0090】
図11に戻り、制御部10は、ステップS201で取得した現在地が地点記憶部21に記録されているスタート地点であるか否かを判定する(ステップS202)。スタート地点でなければ(ステップS202;No)、その位置からスタートする教示ルートは教示されていないということなので、制御部10は出力部33のスピーカからエラーを示す音を出力し(ステップS203)、再生処理を終了する。
【0091】
なお、再生処理ではなく、逆再生処理が行われている場合は、ステップS202での判定は「現在地がゴール地点?」となり、現在地がゴール地点でなければステップS203に進み、現在地がゴール地点なら周辺情報変換部15が地図記憶部22に記録されている周辺の物体の情報(周辺環境データ)を、逆方向からのデータに変換し、ステップS204に進む。
【0092】
現在地がスタート地点なら(ステップS202;Yes)、制御部10は、検出部31でスキャンを行い、自律移動装置100の周辺の情報を取得する(ステップS204)。
【0093】
そして、制御部10は、ステップS204で取得した周辺の情報に基づき、自律移動装置100の進行方向の通過可能幅内に障害物が存在するか否かを判定する(ステップS205)。通過可能幅とは、自律移動装置100の横幅(例えば1m)に、左右のゆとり分(例えば、左右それぞれ5cm)を加えた値(この例では1.1m)である。進行方向の真正面に障害物が存在する場合だけでなく、進行方向の走行経路の両わきの壁や障害物が、通過可能幅内に入り込んでいる場合は、ステップS205での判定がYesとなる。この場合に自律移動装置100がそのまま走行すると、自律移動装置100の左右の少なくとも一方が壁や障害物に衝突する可能性があるためである。
【0094】
障害物が存在するなら(ステップS205;Yes)、制御部10は、自律移動装置100が当該障害物を回避可能か否かを判定する(ステップS206)。本実施形態では、次の2つの条件を満たせば、制御部10は、障害物を回避可能と判定する。
(1)制御部10が自律移動装置100の現在の位置(自己位置)を見失わない(例えば検出部31で検出される周辺環境データを地図記憶部22に記録されている地図データと照合することにより自己位置を把握できる)範囲で障害物を回避できる。
(2)障害物と障害物又は壁との間に自律移動装置100が通り抜けられるだけの幅が存在する。
【0095】
より、具体的には、この判定は、ステップS204で取得した周辺の情報に基づき、当該障害物を回避するのに必要な横方向の移動量が、回避可能幅以下であり、かつ、自律移動装置100の走行方向において障害物が存在しない空間の横幅が通過可能幅以上であるなら、当該障害物を回避可能と判定し、そうでないなら回避不可能と判定する。ここで、回避可能幅とは、自律移動装置100が、地図記憶部22に記憶されている地図データ等に基づいて自己位置を推定することが可能な範囲での教示ルートからのずれの最大値であり、例えば、0.9mである。
【0096】
自律移動装置100は、横方向にこの回避可能幅を超えて移動すると、検出部31でスキャンして取得した周辺の情報と地図データとに基づいて自己位置を推定することが難しくなるため、走行方向に障害物を検出した場合、回避可能幅以下で当該障害物を回避可能の場合には当該障害物を回避するが、回避可能幅を超える場合は回避せずに停止することになる。したがって、回避可能幅以下の範囲で障害物が多少移動しても、自律移動装置100は当該障害物を避けて走行することが可能である。また逆に、例えば教示ルートの真上にコーン等の障害物を置くことにより、ユーザは故意に自律移動装置100をその障害物の手前で停止させることも可能である。
【0097】
自律移動装置100が当該障害物を回避可能であれば(ステップS206;Yes)、制御部10は、障害物を回避するために必要な横方向の移動量(調整幅)を回避量として取得し(ステップS207)、ステップS213に進む。例えば、
図14に示すように、障害物73が教示ルートの点列75に近づいており、自律移動装置100がこのまま走行すると障害物73に衝突する可能性がある場合は、制御部10は、ステップS204で取得した周辺の情報に基づいて、障害物73と障害物74との間の幅Woが通過可能幅Wv以上であり、かつ、障害物73を回避するのに必要な回避量Waが回避可能幅以下であれば、回避可能と判断して、回避量としてWaを取得する。後述するステップS213で制御部10は、点列75で示される教示された走行経路をこの回避量Waの分だけ調整することにより、自律移動装置100は、障害物73を回避して走行することができる。
【0098】
自律移動装置100が当該障害物を回避可能でなければ(ステップS206;No)、移動制御部16は駆動部40を制御して自律移動装置100の走行を停止させる(ステップS208)。ステップS208では、制御部10は、出力部33のスピーカからアラーム音等を出力して走行を停止したことをユーザに知らせてもよい。そして、制御部10は、操作取得部32からユーザの操作が取得されたか否かを判定する(ステップS209)。ユーザの操作が取得されなければ(ステップS209;No)、ステップS204に進む。時間の経過により、障害物が取り払われている可能性があるからである。
【0099】
ユーザの操作が取得されたら(ステップS209;Yes)、
図13のステップS241に進み、ユーザの操作がホールド指示(再生ボタン3222が押された、ジョイスティック321が操作された等)であるか否かを判定する(ステップS241)。ホールド指示でないなら(ステップS241;No)、ユーザの操作が打ち切り指示(スタートボタン3226が押された)であるか否かを判定する(ステップS242)。ユーザの指示が打ち切り指示なら(ステップS242;Yes)、
図11のステップS215に進み、移動制御部16は駆動部40を制御して自律移動装置100の走行を停止させ(ステップS215)、再生処理を終了する。ユーザの指示が打ち切り指示でなければ(ステップS242;No)、
図11のステップS204に進む。
【0100】
一方、ユーザの指示がホールド指示なら(ステップS241;Yes)、自律移動装置100は、まだ走行中の場合は、移動制御部16は駆動部40を制御して自律移動装置100の走行を停止させる(ステップS243)。そして、制御部10は、現在の自律移動装置100の位置及び向きを、ホールド位置及びホールド方向として、記憶部20に記録する(ステップS244)。そして、制御部10は、操作取得部32から再開指示(再生ボタン3222が押された)が取得されたか否かを判定する(ステップS245)。再開指示が取得されたら(ステップS245;Yes)、
図11のステップS204に進む。
【0101】
再開指示が取得されなければ(ステップS245;No)、
図12のステップS226に進む。
図12の処理により、自律移動装置100はホールド状態で、自動走行以外の任意の走行モードで走行することが可能になる。これにより、例えばユーザは、再生処理で自動走行中の自律移動装置100を、一時的に他の場所まで走行させて、通常は運ばない荷物を運ばせたり、通常は走行しない経路を走行させたりすることができる。
図12の処理の詳細については後述する。
【0102】
一方、
図11のステップS205で、障害物がなければ(ステップS205;No)、制御部10は、障害物を避けるための回避量を0にリセットする(ステップS210)。これにより、その後の自律移動装置100は、走行経路の調整幅が小さくなるように制御され、元々の教示ルートに復帰することになる。
【0103】
そして、自己位置推定部13は、ステップS204で検出部31により検出された点群のデータを地図記憶部22に記録されている地図データと照合して、自律移動装置100の自己位置及び向きを推定し、移動制御部16は、自己位置推定部13が推定した自己位置が、教示データ記憶部23に記録されている教示時の自律移動装置100の位置の座標の点列に沿って走行(自動走行)するように駆動部40を制御する(ステップS213)。ただし、ステップS207で回避量が設定されていたら、ステップS213では、制御部10は、教示時の自律移動装置100の位置の座標の点列(走行経路)をその回避量の分だけ調整する。これにより、
図14に示すように、移動制御部16は、元の教示ルートの点列75から、回避量Waだけ障害物73を回避した調整後の経路76に従って自律移動装置100が走行するように駆動部40を制御する。
【0104】
なお、地図データに反射材の配置や個数の情報が記録されている場合は、制御部10は、ステップS213で自律移動装置100の現在の位置及び向きを把握する際に、周辺情報取得部11で認識された反射材の情報(反射材の位置や個数)を優先して地図データとマッチングさせる。もし、反射材の情報がマッチングしない(例えば反射材の個数が異なる)状態が所定の時間(例えば10秒間)や所定の移動距離(例えば10m)続いた場合には、制御部10は、自律移動装置100を停止させてもよい。反射材は、他の通常の物体と比較して、検出部31でその位置や個数を精度良く認識でき、マッチングしない状態が所定の時間や移動距離の間続いたということは、自律移動装置100が本来の経路から外れている可能性が高いことを意味するからである。
【0105】
また、再生処理においては、上述のように、ステップS213での走行中に、検出部31で検出された周辺環境データと地図記憶部22に記録されている地図データとがマッチングしない場合は、制御部10は、自律移動装置100が本来の経路から外れている可能性が高いと判断する。これに対し、再生補正処理では、検出部31で検出された周辺環境データと地図記憶部22に記録されている地図データとがマッチングしなかった場合には、検出部31で検出された周辺環境データの方を正しいデータとみなして、地図記憶部22に記録されている地図データを補正する処理を、ステップS213の直後に行う。
【0106】
再生補正処理において、この補正を常に行うと、自律移動装置100の走行がかえって不安定になるおそれもあるため、補正に用いる対象は、反射材に限定してもよい。すなわち、周辺環境データと地図データとがマッチングしなかった場合、周辺環境データに含まれる反射材の情報については地図データの補正に用い、周辺環境データに含まれる反射材以外の情報は地図データと照合して自律移動装置100の現在の位置及び向きの補正に用いるようにしてもよい。
【0107】
このように再生補正処理では、周辺環境の一部が変化した場合(例えば物流倉庫において、パレットに山積みされた荷物が、昨日までは存在していたが、本日はなくなっていた場合等)にも、地図データを補正することができる。また、廊下の壁等に設置されている反射材を追加する等して、その後の再生処理の精度を向上させることができる。
【0108】
図11の説明に戻り、制御部10は、検出部31で検出された周辺環境データを地点記憶部21に記録されている地点データと照合することによって、自律移動装置100がゴール地点に到着したか否かを判定する(ステップS214)。この判定は、上述したステップS202でのスタート地点の判定と同様の処理により行うことができる。
【0109】
ゴール地点に到着したら(ステップS214;Yes)、移動制御部16は駆動部40を停止させ(ステップS215)、再生処理を終了する。
【0110】
ゴール地点に到着していなければ(ステップS214;No)、制御部10は、検出部31で検出された周辺環境データを地点記憶部21に記録されている地点データと照合することによって、自律移動装置100の現在の位置がホールド地点であるか否かを判定する(ステップS216)。この判定も、上述したステップS202でのスタート地点の判定と同様の処理により行うことができる。
【0111】
現在地がホールド地点でなければ(ステップS216;No)、制御部10は、操作取得部32からユーザの操作が取得されたか否かを判定する(ステップS217)。ユーザの操作が取得されなければ(ステップS217;No)、ステップS204に進む。ユーザの操作が取得されたら(ステップS217;Yes)、
図13のステップS241に進む。
【0112】
一方、ステップS216で現在地がホールド地点なら(ステップS216;Yes)、
図12のステップS221に進み、移動制御部16は駆動部40を停止させる(ステップS221)。そして、制御部10は、現在の自律移動装置100の位置及び向きを、ホールド位置及びホールド方向として、記憶部20に記録する(ステップS222)。そして、制御部10は、操作取得部32からホールド指示(再生ボタン3222が押された)が取得されたか否かを判定する(ステップS223)。
【0113】
ホールド指示が取得されなければ(ステップS223;No)、制御部10は、操作取得部32から再開指示(再生ボタン3222が2回連続して押された)が取得されたか否かを判定する(ステップS224)。再開指示が取得されたら(ステップS224;Yes)、
図11のステップS204に進む。再開指示が取得されなければ(ステップS224;No)、制御部10は、操作取得部32から打ち切り指示(スタートボタン3226が押された)が取得されたか否かを判定する(ステップS225)。
【0114】
打ち切り指示が取得されなければ(ステップS225;No)、ステップS223に戻る。打ち切り指示が取得されたら(ステップS225;Yes)、
図11のステップS215に進む。
【0115】
一方ステップS223でホールド指示が取得されたら(ステップS223;Yes)、制御部10は、自律移動装置100の状態をホールド状態に切り替える(ステップS226)。ステップS226では制御部10は、例えば出力部33のLED331を点灯させて、自律移動装置100が現在ホールド状態であることをユーザに知らせてもよい。
【0116】
そして、制御部10は、検出部31でスキャンを行い、自律移動装置100の周辺の情報を取得する(ステップS227)。そして、制御部10は、検出部31で検出された周辺環境データをステップS222で記録したホールド位置の情報と照合することによって、自律移動装置100の現在の位置がホールド地点の近傍(例えばホールド地点から前後左右に10cm未満のずれしかない位置)であるか否かを判定する(ステップS228)。
【0117】
ホールド地点の近傍でないなら(ステップS228;No)、ステップS230に進む。ホールド地点の近傍なら(ステップS228;Yes)、制御部10は、出力部33のスピーカから通知音を出力して(ステップS229)、ユーザに「この位置からならホールド状態から再生モードに復帰することが可能」ということを知らせる。
【0118】
そして、制御部10は、操作取得部32からユーザによる移動指示(例えばジョイスティック321の操作)が取得されたか否かを判定する(ステップS230)。移動指示が取得されたら(ステップS230;Yes)、制御部10は、取得した移動指示にしたがって駆動部40を制御して自律移動装置100を走行(ガイド走行)させる(ステップS231)。なお、この走行は手動操縦に限らず、他の任意のガイド走行(自動追従、手押し、遠隔操縦、他のシステムからの指示に基づく走行等)でも良い。そして、ステップS227に戻る。
【0119】
移動指示が取得されなければ(ステップS230;No)、制御部10は、操作取得部32から再開指示(再生ボタン3222が押された)が取得されたか否かを判定する(ステップS232)。再開指示が取得されなければ(ステップS232;No)、制御部10は、操作取得部32から打ち切り指示(スタートボタン3226が押された)が取得されたか否かを判定する(ステップS233)。
【0120】
打ち切り指示が取得されなければ(ステップS233;No)、ステップS227に戻る。打ち切り指示が取得されたら(ステップS233;Yes)、
図11のステップS215に進む。
【0121】
一方、ステップS232で再開指示が取得されたら(ステップS232;Yes)、ステップS227で検出された周辺環境データをステップS222又はステップS244で記録したホールド位置の情報と照合することによって、自律移動装置100の現在の位置がホールド地点の近傍であるか否かを判定する(ステップS234)。現在位置がホールド位置の近傍でなければ(ステップS234;No)、その位置から再生モードに復帰することはできないため、制御部10は出力部33のスピーカからエラーを示す音を出力し(ステップS235)、ステップS227に戻る。
【0122】
現在位置がホールド位置の近傍なら(ステップS234;Yes)、制御部10は、自律移動装置100の現在の向きが、ステップS222又はステップS244で記録したホールド方向とほぼ一致する(例えば、10度以下のずれしかない)か否かを判定する(ステップS236)。
【0123】
自律移動装置100の現在の向きがホールド方向とほぼ一致するなら(ステップS236;Yes)、ホールド状態から再生モードに復帰して(ステップS240)、
図11のステップS204に進む。自律移動装置100の現在の向きがホールド方向と一致しないなら(ステップS236;No)、制御部10は、自律移動装置100の現在の向きが、ステップS222又はステップS244で記録したホールド方向の逆の向きとほぼ一致する(例えば、10度以下のずれしかない)か否かを判定する(ステップS237)。
【0124】
自律移動装置100の現在の向きがホールド方向の逆の向きでないなら(ステップS237;No)、移動制御部16は駆動部40を制御して自律移動装置100の向きをホールド方向に一致させるように(しかも、位置をホールド位置にするように)旋回させる(ステップS238)。そして、ホールド状態から再生モードに復帰して(ステップS240)、
図11のステップS204に進む。
【0125】
自律移動装置100の現在の向きがホールド方向の逆の向きなら(ステップS237;Yes)、周辺情報変換部15は地図記憶部22に記録されている周辺環境データを逆方向からのデータに変換し、制御部10はスタート地点からホールド地点までの再生に用いた教示データを逆向きにしてスタート地点まで戻るように設定する(ステップS239)。そして、ホールド状態から再生モードに復帰して(ステップS240)、
図11のステップS204に進む。
【0126】
なお、ステップS237での判定においては、現在の向きとホールド方向とのずれが±90度以下の時にはステップS238に進み、それ以外の場合はステップS239に進み、ステップS239では移動制御部16が駆動部40を制御して自律移動装置100の向きをホールド方向とは逆の向きに(しかも、位置をホールド位置にするように)旋回させる処理も行うようにしてもよい。
【0127】
以上、再生処理について説明した。この再生処理では、制御部10は、教示データに基づいて、駆動部40を制御して、自律移動装置100を自動走行させる(ステップS213)。そして、自律移動装置100の走行を一時停止させる地点であるホールド地点で(ステップS216;Yes)、操作取得部32で取得したユーザの操作に基づいて駆動部40を制御して自律移動装置100を自動走行以外の走行モードで走行(手動走行)させる(ステップS231)。そして、自動走行以外の走行モードにより自律移動装置がホールド地点の近傍に到達したら(ステップS234;Yes)、一時停止した自動走行を再開させる(ステップS240~ステップS213)。
【0128】
したがって、自律移動装置100は、ホールド地点で再生モードからホールド状態に移行し、ユーザは自律移動装置100を自動走行以外の任意の走行モード(ガイド走行モード)で自由に走行させることができる。例えば、自動走行中に、任意の地点で作業者が自律移動装置100を操作しホールド状態にしたうえで、自動走行の経路(教示ルート)から離脱し、自動追従モードで搬送対象物の付近まで移動し、搬送対象物の載せ降ろしした後に自動追従モードでホールド地点まで戻ることができる。そして、その後、ホールド地点で、自律移動装置100をホールド状態から再生モードに復帰させることができる。なお、上述の再生処理では、ホールド状態での移動指示については、主に操作取得部32のジョイスティック321によるものを説明したが、ホールド状態での移動指示はジョイスティック321によるものに限られない。
図9の教示処理で説明したのと同様に、スタートボタン3226を押すことによって、手動操縦モード、自動追従モード、ライントレースモード等を切り替えることが可能であり、ホールド状態でも、手動操縦モードに限らず、ユーザは自動走行以外の任意の走行モード(ライントレース、手動操縦、自動追従、手押し、遠隔操縦、他のシステムからの指示に基づく走行等のガイド走行モード)で自律移動装置100を走行させることができる。
【0129】
また、制御部10は、ホールド地点での走行方向をホールド方向として記憶し(ステップS222)、自律移動装置がホールド地点の近傍に到達したら(ステップS234;Yes)、現在の向きがホールド方向と一致するか判定し(ステップS236)、一致していなければ(ステップS236;No)、一致するように駆動部40を制御して旋回させて(ステップS238)から一時停止した自動走行を再開させる(ステップS240~ステップS213)。したがって、ユーザはホールド状態における自律移動装置100の向きを気にせずに、自律移動装置100を、ホールド状態から再生モードに復帰させることができる。
【0130】
また、制御部10は、ホールド地点での走行方向をホールド方向として記憶し(ステップS222)、自律移動装置がホールド地点の近傍に到達したら(ステップS234;Yes)、現在の向きがホールド方向と逆方向であるか判定し(ステップS237)、逆方向なら(ステップS237;Yes)、それまで自動走行した経路をスタート地点まで戻るように逆向きに設定して(ステップS239)から自動走行を再開させる(ステップS240~ステップS213)。したがって、ユーザは自律移動装置100の向きを逆向きにしてホールド地点に戻すことにより、自律移動装置100を、容易に教示ルートのスタート地点に戻すことができる。
【0131】
また、制御部10は、自動走行中に操作取得部32でユーザの操作を取得したら(ステップS217;Yes)、自動走行を一時停止し(ステップS243)、その時点における自律移動装置100の位置及び向きをホールド位置及びホールド方向として記憶部20に記憶する(ステップS244)。これにより、ユーザは予め教示の際にホールド位置を教示させなくても、再生時に任意の地点をホールド地点として設定することができる。
【0132】
また、自律移動装置100は、走行モードがガイド走行モード(手動操縦モード、自動追従モード等)のときに再生ボタン3222が押されると、再生モードに切り替わり、自動走行(再生処理による走行)が行われる(ステップS201~)が、再生処理で一時停止中に再生ボタン3222が押されると(ステップS223;Yes)、ホールド状態に切り替わり(ステップS226)、自動走行を一時中断して、ユーザが自由に自律移動装置100を手動操縦したり、自動追従させたりすることができる(ステップS231)。そしてさらにホールド状態で再生ボタン3222が押されると(ステップS232;Yes)、再生モードに切り替わり(ステップS240)、自動走行が再開される(ステップS204~)。このように、同一の操作(例えば、再生ボタン3222の押下)でも、自律移動装置100の状態に応じて、異なる制御(再生処理の実行、ホールド状態への切り替え、再生モードへの復帰)が行われるので、ユーザは操作方法に迷うことなく、自律移動装置100を操作することができる。
【0133】
また、制御部10は、ホールド状態に切り替わったら、LED331を点灯させる等の信号を出力部33に出力させて(ステップS226)、自動走行を再開(再生モードに復帰)可能であることをユーザに知らせることができる。これにより、ユーザは手動操縦の後に再生処理を再開できるのか否かを容易に知ることができる。
【0134】
また、制御部10は、追従教示の際に、追従物を認識し(ステップS105)、周辺環境の地図データを作成する際に(ステップS112)、追従物の点群データを地図データから削除することにより(ステップS113)、追従物の点群データを用いずに、追従物以外の点群データを用いて地図データを作成することができる。追従物は、再生処理の際には存在しないため、追従物の点群データは地図データ内でノイズ的なデータとなってしまうが、上述のような処理を行うことにより、このノイズ的なデータを削除することができ、再生処理時の自己位置推定等の精度を向上させることができる。
【0135】
また、制御部10は、教示データの記憶が完了すると、教示処理が完了したことを示す信号として、完了音を出力する(ステップS118)。これにより、ユーザは教示データが正常に記録されたことを容易に知ることができる。
【0136】
また、制御部10は、再生処理によって、教示データに基づいて自律移動装置100を自動走行させる際に、走行方向に存在する障害物に衝突しないように走行経路を調整する(ステップS207)。これにより、障害物の位置が教示時から少し移動した場合や、積み荷等の量、タイヤのすり減り具合、センサの誤差、モータ制御の誤差等の影響によって、教示時の経路をそのまま走行すると障害物に衝突する可能性がある場合でも、回避可能な場合には、障害物を回避するように経路を調整して走行することができる。また、回避不可能な場合(自己位置を推定できなくなるほど回避しないと障害物を避けきれないときや、障害物間の間隔が狭すぎて通り抜けられないとき等)には一時停止する(ステップS208)ので、一時停止した位置でユーザは自律移動装置100をホールド状態にして任意の走行モードで自由に走行させることができる。
【0137】
なお上述の実施形態において、操作取得部32として何を用いるか(例えばジョイスティック321、押しボタン322等)、操作方法をどのように設定するか(例えば再生処理中に再生ボタン3222が押されると一時停止する等)、ユーザへ通知する信号として何を選択するか(例えば、LED331の点灯/消灯や音の出力)は、一例に過ぎない。例えば、再生処理のステップS203やS235でエラー音を出力する代わりに、又は、エラー音の出力に加えて、LED331を点滅させるようにしてもよいし、LED331とは別にエラーを通知するためのLEDを別途設けて、それを点灯させるようにしてもよい。
【0138】
再生処理の一例について、
図10を参照して説明する。まず、事前に上述の教示処理によって、自律移動装置100が第1地点81から第2地点82までユーザを追従して、教示が行われ、途中の第3地点83がホールド地点として指定されているものとする。すると、この教示処理の結果、スタート地点の地点データ(第1地点データ)、ゴール地点の地点データ(第2地点データ)、ホールド地点の地点データ(第3地点データ)が、それぞれ地点記憶部21に記録され、第1地点81から第2地点82までの経路(第1教示ルート)を移動した際の周辺環境データが地図記憶部22に記録され、第1地点81から第2地点82までの経路で教示された教示データが教示データ記憶部23に記録される。
【0139】
そして、自律移動装置100が、第2地点82の方向を向いた状態で第1地点81に位置している状態で、ユーザから再生開始の指示を受けたものとする。すると、制御部10は、自律移動装置100の現在地を取得する(ステップS201)。この例では、制御部10は、検出部31で検出された周辺環境データ60aを、地点記憶部21に記録されている各地点データ(周辺環境データ)と照合する。
【0140】
すると、周辺環境データ60aは、地点記憶部21に記録されているスタート地点の地点データ(第1地点データ)と一致するため、制御部10は、現在地が第1地点81であると判定できる。したがって、ステップS202での判定はYesとなる。
【0141】
そして、制御部10は検出部31でスキャンを行う(ステップS204)。
図10の例では障害物はないのでステップS205での判定はNoとなり、検出部31で検出される周辺環境データと地図記憶部22に記録されている周辺環境データ(例えば周辺環境データ60b,60c,60d,60e)とを照合して自律移動装置100の現在の位置及び向きを把握しつつ、移動制御部16は教示データに従って走行するように駆動部40を制御する(ステップS213)。
【0142】
そして、自律移動装置100がホールド地点(第3地点83)に到着する(ステップS216;Yes)と、一時停止する(ステップS221)。ここで、ユーザが再生ボタン3222を押してホールド指示を出すと(ステップS223;Yes)、自律移動装置100はホールド状態になり(ステップS226)、ユーザはジョイスティック321等で(手動操縦モードに限らず、自動追従モード、手押し等も含む任意の走行モードで)自律移動装置100を自由に移動させることができる(ステップS231)。
【0143】
そして、ユーザは自律移動装置100を例えば
図10に示す経路68のように、手動操縦モード、自動追従モード、手押し等の任意の走行モードで自由に移動させた後に、再度ホールド地点(第3地点83)の近傍で再生ボタン3222を押すと(ステップS232;Yes)、必要に応じてホールド時の向きに旋回して(ステップS238)、ホールド状態から再生モードに復帰する(ステップS240)。
【0144】
そして、自律移動装置100は、再度スキャン(ステップS204)や走行(ステップS213)を再開し、ゴール地点(第2地点82)に到着する(ステップS214;Yes)と、停止して(ステップS215)、再生処理を終了する。
【0145】
このようにして、制御部10は、自律移動装置100を、教示された経路に沿って自動走行させるとともに、経路の途中(ホールド地点)で、一時的にガイド走行モード(ライントレース、手動操縦、自動追従、手押し、遠隔操縦、他のシステムからの指示に基づく走行等、自動走行以外の走行モード)で走行させることができる。従来技術においては、自動走行中に自動走行の経路から離脱した作業を行う場合には自動走行をキャンセルせざるを得ず、再スタートさせる手順が煩雑であったり、再スタートさせることができなかったりした。本発明によれば、人と自律移動装置100との協働運搬作業において、自律移動装置100が自動走行中でも柔軟に走行モードを一時的に変更することができるため、柔軟な運用を可能にする。また自動走行中でも任意の地点で一時停止してホールド状態に切り替えて任意の作業を行うことができ、作業後はホールド状態から元の自動走行への復帰を容易に行うことができるため、スムーズな協働運搬作業を可能にする。
【0146】
なお、自律移動装置100が、第2地点82とは反対方向を向いた状態で第1地点81に位置している状態で、ユーザから再生開始の指示を受けた場合は、制御部10は、検出部31で検出された周辺環境データ60gを、地点記憶部21に記録されている第1地点データ(周辺環境データ60a)と照合することにより、自律移動装置100の現在の位置が第1地点81であり、自律移動装置100が第2地点82とは反対方向を向いていることを把握する。この場合は、移動制御部16は自律移動装置100の向きを反対方向にするように駆動部40を制御して、自律移動装置100を旋回させてから、上述のようにして、第2地点82に走行させることになる。
【0147】
また、その後、上述の教示処理によって、自律移動装置100が第3地点83から第4地点84まで第2教示ルートの教示が行われたものとする。すると、この教示処理の結果、第2教示ルートのスタート地点の地点データ(第3地点データ)とゴール地点の地点データ(第4地点データ)も地点記憶部21に記録される。そして、第3地点83から第4地点84までの経路(第2教示ルート)を走行した際の周辺環境データが地図記憶部22に記録され、第3地点83から第4地点84までの経路で教示された教示データが教示データ記憶部23に記録される。
【0148】
そして、自律移動装置100が、第3地点83の方向を向いた状態で第4地点84に位置している状態で、ユーザから逆再生開始の指示を受けたものとする。すると、制御部10は、検出部31で検出された周辺環境データ60kを、地点記憶部21に記録されている各地点データ(例えば、第4地点84の周辺環境データ60j)と照合する。
【0149】
すると、周辺環境データ60kと周辺環境データ60jとは、上述したように左右それぞれ140度の角度範囲においてマッチングが取れるため、制御部10は、現在地が第4地点84であると判定できる。したがって、ステップS202での判定はYesとなる。そして、周辺情報変換部15は、地図記憶部22に記憶されているデータのうち、教示処理の際に検出部31で検出された周辺環境データ60h,60iを、当該周辺環境を逆方向から検出した場合のデータに変換して逆方向データ(逆方向データ60h’,60i’)を生成し、地図記憶部22に記録する。
【0150】
そして、制御部10は、自律移動装置100の現在の位置及び向きを把握しつつ、第2教示ルートの教示データを逆から再生することによって、自律移動装置100を第4地点84から第3地点83に走行させる。このようにして、自律移動装置100は、教示された経路を、逆再生させることができる。
【0151】
また、上述したように、制御部10は、教示処理のステップS115において、一時停止する場所P1と一時停止する時間T1を記憶することができる。これにより、再生処理の際(記録された教示データに従って自動走行する際)に一時停止する場所P1で一時停止する時間T1だけ停止するように自律移動装置100を制御することができる。例えば、自律移動装置100が記憶した走行経路上に、自動シャッターがある場合に、自動シャッターの場所を記憶し、扉が全て開くまで、自動シャッターの手前で自律移動装置100を一時停止させることで、より柔軟に動作させることが可能である。
【0152】
一時停止する場所P1や一時停止する時間T1の記憶は、教示処理の最中に行えるが、教示処理の終了後に教示データを編集する形で行えるようにしてもよい。そして、この編集は、例えば、教示データをPCやスマートフォンに送信し、PCやスマートフォンの画面上で行えるようにしてもよい。
【0153】
また、制御部10は、上述の教示処理のステップS115において、例えばLED331の点灯/消灯等だけでなく、所定の機器への制御信号Sを出力する出力場所P2(と必要な場合は一時停止する時間T2)を記憶して、再生処理の際(記録された教示データに従って走行する際)に所定の機器への信号を出力する出力場所P2で制御信号Sを出力し、所定の機器を作動させる(又は作動させない)ように制御してもよい。
【0154】
例えば、制御部10で、0000~1111の4bitの出力パターンを記憶することができる場合に、自律移動装置100に接続されている牽引パレット等との接続機構を切り離す制御信号S1の出力パターン(例えば0001)や、接続機構を切り離さない制御信号S2の出力パターン(例えば0000)が定義されているものとする。すると、所定の出力場所P2で、0001の出力パターンの制御信号S1を出力することにより、自律移動装置100に接続されている牽引パレット等との接続機構を切り離し(さらに切り離しに必要な時間T2だけ一時停止する)、0000の出力パターンの制御信号S2を出力することにより、自律移動装置100に接続されている牽引パレット等との接続機構を切り離さない等の設定を記憶することができる。
【0155】
これにより、自律移動装置100が記憶した走行経路上の所定の場所で、自律移動装置100に接続されている牽引パレット等との接続機構を切り離して荷物を置いてくるか否かを選択する等、より柔軟に動作させることが可能となる。制御信号S、制御信号を出力する出力場所P2、一時停止する時間T2の記憶は、教示処理の最中に行えるようにしてもよいし、教示処理の終了後に教示データを編集する形で行えるようにしてもよい。
【0156】
また、自律移動装置100は、所定の機器として、紫外線照射ランプを制御可能にしてもよい。すると、上述の「所定の機器への制御信号の出力」を紫外線照射ランプのオンオフ制御に使うことができる。例えば、出力場所P2で制御信号Sを出力し、紫外線照射ランプを作動させる(又は停止する)ように制御することができる。
【0157】
また、自律移動装置100は、出力場所P2の代わりに制御信号Sを出力する条件Cを記憶できるようにしてもよい。すなわち、上述の教示処理のステップS115において、所定の機器への制御信号Sを出力する条件Cを記憶して、再生処理の際(記録された教示データに従って走行する際)に、条件Cが満たされたら所定の機器へ制御信号Sを出力し、所定の機器を作動させる(又は作動させない)ように制御してもよい。
【0158】
例えば「検出部31で人が近づいたことを検知」という条件Cを記憶させることで、検出部31で人が近づいてくることを検知すると、紫外線照射を止めるように制御することができる。また、教示時と再生時とで、所定の機器を変更可能にしてもよい。例えば、再生時においては紫外線照射を行いたいが、教示時には紫外線を照射したくない(ただし、紫外線照射がどのように行われるかをパイロットランプ等で確認したい)場合には、所定の機器を「教示時:パイロットランプ、再生時:紫外線照射ランプ」というような形式で設定可能にしてもよい。
【0159】
このようにすると、自律移動装置100は、教示中においては、紫外線照射を止めて、別のパイロットランプ等により出力信号を確認でき、再生中においては紫外線照射するように構成可能である。これにより、特定の箇所にだけ紫外線の照射を行うことができ、人が付近にいる教示中においては紫外線の照射を止めることができる。
【0160】
さらに、自律移動装置100は、速度モードを選択できるようにしてもよい。速度モードとしては、例えば、教示速度モード(追従教示や手動教示が行われた時の実際の速度を記憶して、再生時には教示時と同じ速度で走行するモード)や、設定速度モード(ユーザが再生時の速度として、任意の制御速度を記憶させることができ、再生時には記憶された制御速度で走行するモード)が考えられる。そして、制御部10は、上述の教示処理において、速度モードを選択することができ、選択した速度モードを地図データと合わせて記憶する。
【0161】
速度モードとして設定速度モードが選択された場合には、制御部10は、上述の教示処理のステップS115において、ユーザが(例えば減速ボタン3224や加速ボタン3225で)設定した制御速度を記憶し、再生処理の際(記録された教示データに従って走行する際)は、記憶した制御速度で走行するように自律移動装置100を制御してもよい。または、速度モードとして教示速度モードが選択された場合には、制御部10は、上述の教示処理において、教示走行時の実際の速度を記憶し、再生処理の際(記録された教示データに従って走行する際)には、教示時と同じ速度になるように自律移動装置100を制御してもよい。
【0162】
このように、制御部10は、上述の教示処理において、ユーザが選択した速度モードやユーザが設定した制御速度を記憶して、再生処理の際(記録された教示データに従って走行する際)に、記憶した速度モード又は制御速度に基づいて走行速度を制御するように駆動部40を制御してもよい。これにより、再生する際に好適な速度で動作させることが可能になる。制御速度もしくは速度モードの記憶は、教示処理の最中に行えるようにしてもよいし、教示処理の終了後に教示データを編集する形で行えるようにしてもよい。
【0163】
また、制御速度としては、走行経路上の任意の場所における速度を記憶できるようにしてもよい。例えば直進する際の制御速度は比較的速い速度を記憶し、曲がる際の制御速度は比較的遅い速度を記憶してもよい。また、条件によって異なる制御速度を設定できるように複数の制御速度を記憶できるようにしてもよい。例えば、積み荷が基準重量(例えば10kg)よりも重い場合の制御速度として比較的遅い速度を記憶し、積み荷が基準重量以下の場合の制御速度として比較的速い速度を記憶するようにしてもよい。
【0164】
なお、上述したような様々なデータ(一時停止する場所P1、時間T1、制御信号S、出力場所P2、条件C、速度モード、制御速度等)を教示データに追加記憶させるのは、例えば、教示処理のステップS115で行うことが可能である。したがって、追従物を認識させて追従させることによって教示する追従教示であっても、ジョイスティック321等の操作取得部32を用いて教示させる手動教示であっても、これらの教示データを教示データ記憶部23に記憶することができる。
【0165】
(変形例)
自律移動装置100は、
図2に示すように、検出部31が操作取得部32の上方にあるが、検出部31の設置位置はこれに限定されない。例えば、
図15に示すように、実施形態1の変形例に係る自律移動装置101は、検出部31を荷台51の下方に備える。自律移動装置100でも、検出部31のみで障害物を検出できることは上述したとおりであるが、変形例に係る自律移動装置101においては、より低い位置で障害物を検出できるため、比較的小さい障害物であっても回避可能になる。
【0166】
なお、障害物に関しては、検出部31とは別に、障害物を検出するための専用のセンサを設けてもよい。障害物を検出するための専用のセンサとしては、例えば、バンパー52に、バンパーセンサを設置することが考えられる。この場合、制御部10は、バンパーセンサで障害物に接触したことを検出したら、自律移動装置100,101を停止させたり、少し後退させたり等の処理を行うことができる。
【0167】
本発明においては、自律移動装置におけるセットアップコストと柔軟性を飛躍的に改善する効果が期待できる。従来の技術、たとえば前述のSLAMを用いた自律移動装置や自動搬送車は、一般的に、運用のセットアップに専門の技術者を必要とし、自動走行させるルートが簡単なルートであっても数時間、大規模なルートでは数日間、セットアップに必要とされていた。従来技術においては、地図の整合性の確認作業、累積誤差が大きい場合の修正作業は専門的な知識を必要とし、また積み荷の位置が少し変わるだけでも、環境が変化する度に大掛かりなセットアップを再度行う必要があり、コストが発生していた。
【0168】
また、上述の実施形態では、制御部10は、フレーム毎に地図を保存し、フレーム内で位置推定と走行制御を行っている。このため、累積誤差はフレーム内に留まり、フレームを移った際には新しいフレーム地図での位置推定と経路走行を行うため、いわゆる閉ループ問題は原理的に発生しない。この方法では、大局的自己位置推定が難しくなるといった側面はあるが、多くの顧客の運用では単純な2地点間の往復の自動走行が多いため、大局的自己位置推定は基本的には不要である。そして、多くの顧客の運用では、積み荷の位置や順番等、環境や運用が頻繁に変化するので、セットアップを簡単に行いたいニーズが多い。本発明においては、操作者(ユーザ)は自動搬送を行いたいルートで一度歩いて追従教示を行うことで、専門的な知識が無くても自律移動装置の運行をセットアップすることができる。また、自動走行中に任意の地点で一時停止させてホールド状態に切り替えることで、別の作業を行ってから自動走行に復帰することができ、簡単で柔軟な自動搬送を構築することができる。
【0169】
なお、自律移動装置100,101の各機能は、通常のPC等のコンピュータによっても実施することができる。具体的には、上記実施形態では、自律移動装置100,101が行う追従教示処理、再生処理等のプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto-Optical Disc)、メモリカード、USB(Universal Serial Bus)メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の機能を実現することができるコンピュータを構成してもよい。また、プログラムをインターネット等の通信ネットワークを介して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の機能を実現することができるコンピュータを構成してもよい。
【0170】
以上、本発明の好ましい実施形態について説明したが、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【0171】
本出願は、2020年6月15日に出願された国際出願PCT/JP2020/23468に基づく。本明細書中に国際出願PCT/JP2020/23468の明細書、請求の範囲、図面全体を参照として取り込むものとする。
【符号の説明】
【0172】
10…制御部、11…周辺情報取得部、12…地図作成部、13…自己位置推定部、14…教示データ記録部、15…周辺情報変換部、16…移動制御部、20…記憶部、21…地点記憶部、22…地図記憶部、23…教示データ記憶部、31…検出部、32…操作取得部、33…出力部、40…駆動部、41…車輪、42…モータ、43…キャスター、51…荷台、52…バンパー、60…点線、60a,60b,60c,60d,60e,60f,60h,60i,60j,60k,60m,60n…周辺環境データ、60a’,60b’,60c’,60d’,60h’,60i’…逆方向データ、60ef…網掛け部分、61…人、63,64…反射材、65,75…点列、66,67…ユーザ、68,76…経路、71…壁、72,73,74…障害物、81,82,83,84…地点、100,101…自律移動装置、311…光学窓、312…レーザ、313…回転軸、321…ジョイスティック、322…押しボタン、323…非常停止ボタン、331…LED、3221…記憶ボタン、3222…再生ボタン、3223…ループ再生ボタン、3224…減速ボタン、3225…加速ボタン、3226…スタートボタン