(57)【要約】【課題】一対の駆動輪と従動輪を備える台車を全方位台車として制御する場合、従動輪が進行方向の前方に位置するアクティブキャスタ方式が有効であるが、アクティブキャスタ方式による制御では、走行路上の段差を乗り越える踏破性が低かった。【解決手段】進行方向に段差がないと認識した場合には、進行方向前側が従動キャスタとなることを許容して駆動輪を制御し、進行方向に段差があると認識した場合には、２つの駆動輪の少なくともいずれかが従動キャスタよりも先に段差に接触するように、駆動輪と受動キャスタが配設された基体の向きを変更して段差に進入するように駆動輪を制御する自律移動体を提供する。【選択図】図６
2018005771.tif 000002
【特許請求の範囲】
【請求項１】
互いに独立して回転駆動される２つの駆動輪と、
少なくとも１つの従動キャスタと、
前記２つの駆動輪および前記従動キャスタが配設される基体と、
前記駆動輪の回転駆動を制御する制御部と、
走行路上の段差の情報を取得する取得部と
を備え、
前記制御部は、前記取得部による前記情報の取得の結果、進行方向に前記段差がないと認識した場合には、前記基体の前記進行方向に対する前側が前記従動キャスタとなることを許容して前記駆動輪を制御し、前記進行方向に前記段差があると認識した場合には、前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更して前記段差に進入するように前記駆動輪を制御する自律移動体。
【請求項２】
前記制御部は、前記進行方向に認識した段差が予め定められた高さ以上であると認識した場合に、前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更して前記段差に進入するように前記駆動輪を制御する請求項１に記載の自律移動体。
【請求項３】
前記制御部は、前記進行方向に認識した段差を認識した位置において前記基体の向きを変更できないと判断した場合は、後退して前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更してから前記段差に進入するように前記駆動輪を制御する請求項１または２に記載の自律移動体。
【請求項４】
前記制御部は、前記進行方向に認識した段差を認識した位置から前記段差までの距離が予め定められた距離よりも大きい場合は、前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更しつつ前記段差に接近するように前記駆動輪を制御する請求項１から３のいずれか１項に記載の自律移動体。
【請求項５】
前記制御部は、前記進行方向に認識した段差を認識した位置から前記段差までの間に迂回路を確保できると判断した場合は、前記迂回路を経由して前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更しつつ前記段差に接近するように前記駆動輪を制御する請求項１から４のいずれか１項に記載の自律移動体。
【請求項６】
前記制御部は、前記基体の向きを変更することなく前記進行方向に認識した段差に進入して前記段差を乗り越えられなかった場合に、後退して前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更してから前記段差に再進入するように前記駆動輪を制御する請求項１に記載の自律移動体。
【請求項７】
前記制御部は、前記進行方向に認識した段差に対して斜交する進路を進む計画の場合には、前記計画を部分的に、前記段差に対して直交する進路に修正して前記段差を乗り越えるように前記駆動輪を制御する請求項１から６のいずれか１項に記載の自律移動体。
【請求項８】
前記制御部は、前記斜交する進路に沿って移動中に前記基体の向きを変更し、前記２つの駆動輪が前記段差に直交する向きになったら、前記段差に対して直交する進路に沿って直進するように前記駆動輪を制御する請求項７に記載の自律移動体。
【請求項９】
前記基体に載置され、前記基体に対して旋回駆動される上体部を備え、
前記制御部は、前記進行方向に段差があると認識した場合に前記基体の向きを変更する場合であっても、前記上体部を前記基体に対して相対的に旋回駆動させることにより、前記上体部の姿勢が前記進行方向に対して維持されるように制御する請求項１から８のいずれか１項に記載の自律移動体。
【請求項１０】
互いに独立して回転駆動される２つの駆動輪と、少なくとも１つの従動キャスタと、前記２つの駆動輪および前記従動キャスタが配設される基体とを備える自律移動体の移動制御方法であって、
走行路上の段差の情報を取得する取得ステップと、
前記取得ステップによる前記情報の取得の結果、進行方向に前記段差がないと認識した場合には、前記基体の前記進行方向に対する前側が前記従動キャスタとなることを許容して前記駆動輪を制御し、前記進行方向に前記段差があると認識した場合には、前記２つの駆動輪の少なくともいずれかが前記従動キャスタよりも先に前記段差に接触するように前記基体の向きを変更して前記段差に進入するように前記駆動輪を制御する制御ステップと
を含む自律移動体の移動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律移動体および自律移動体の移動制御方法に関する。
【背景技術】
【０００２】
台車に一対の駆動輪と従動輪とを備えた自律移動体が知られている。駆動輪が独立して駆動されることにより、自律移動体は、直進したり、旋回したりできる。また、リンク機構により車輪を持ち上げて段差を乗り越える全方向移動車両が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４-１３１０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一対の駆動輪と従動輪を備える台車を全方位台車として制御する場合、従動輪が進行方向の前方に位置するアクティブキャスタ方式が有効であるが、アクティブキャスタ方式による制御では、走行路上の段差を乗り越える踏破性が低かった。一方、踏破性を向上させるために車輪に複雑な機構を採用すると、メンテナンス性が犠牲になるなどの課題があった。
本発明は、このような問題を解決するためになされたものであり、自律移動体の踏破性を向上させるものである。
【課題を解決するための手段】
【０００５】
本発明の第１の態様における自律移動体は、互いに独立して回転駆動される２つの駆動輪と、少なくとも１つの従動キャスタと、２つの駆動輪および従動キャスタが配設される基体と、駆動輪の回転駆動を制御する制御部と、走行路上の段差の情報を取得する取得部とを備え、制御部は、取得部による情報の取得の結果、進行方向に段差がないと認識した場合には、基体の進行方向に対する前側が従動キャスタとなることを許容して駆動輪を制御し、進行方向に段差があると認識した場合には、２つの駆動輪の少なくともいずれかが従動キャスタよりも先に段差に接触するように基体の向きを変更して段差に進入するように駆動輪を制御する。
【０００６】
本発明の第２の態様における自律移動体の移動制御方法は、互いに独立して回転駆動される２つの駆動輪と、少なくとも１つの従動キャスタと、２つの駆動輪および従動キャスタが配設される基体とを備える自律移動体の移動制御方法であって、走行路上の段差の情報を取得する取得ステップと、取得ステップによる情報の取得の結果、進行方向に段差がないと認識した場合には、基体の進行方向に対する前側が従動キャスタとなることを許容して駆動輪を制御し、進行方向に段差があると認識した場合には、２つの駆動輪の少なくともいずれかが従動キャスタよりも先に段差に接触するように基体の向きを変更して段差に進入するように駆動輪を制御する制御ステップとを含む。
【０００７】
以上の各実施態様の構成により、段差を乗り越える場合以外の通常の移動時においては、２つの駆動輪と従動キャスタの位置関係を拘束しないので、全方向への移動が可能であり、採用し得る移動経路の選択肢が増えるという効果を奏する。すなわち、移動の自由度が格段に向上する。一方、段差を乗り越える場合は、駆動輪を前側にしてキャスタより先に駆動輪から段差を乗り越えようとするので、段差を乗り越えるための推進力が小さくてすみ、円滑に乗り越えることができるという効果を奏する。すなわち、段差に対する踏破性が向上する。
【発明の効果】
【０００８】
本発明により、自律移動体の踏破性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る移動ロボットの一部を分解して示す外観斜視図である。
【図２】移動ロボットの制御ブロック図である。
【図３】アクティブキャスタ制御を説明する図である。
【図４】段差の踏破性を説明する図である。
【図５】段差乗り越え前の方向転換の様子を示す図である。
【図６】移動ロボットが段差へ接近する様子を示す図である。
【図７】段差直前で方向転換できない場合の方向転換の様子を示す図である。
【図８】段差までの間に迂回路を確保できる場合の方向転換の様子を示す図である。
【図９】移動ロボットの処理手順を示すフロー図である。
【図１０】段差乗り越え制御の変形例を示すフロー図である。
【図１１】段差が移動経路に斜交する場合の段差乗り越えの様子を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【００１１】
図１は、本実施形態に係る移動ロボットの一部を分解して示す外観斜視図である。自律移動体としての移動ロボット１００は、大きく分けて台車部１１０と上体部１２０によって構成される。図は、上体部１２０を台車部１１０から少し持ち上げた状態を表している。
【００１２】
台車部１１０は、主に、上方から観察した場合におよそ四角形を成す台車ベース１１１と、台車ベース１１１に取り付けられた２つの駆動輪１１２と１つのキャスタ１１３とから構成される。台車ベース１１１は、台車部１１０の基体となる役割を担い、例えばフレーム構造を有する。２つの駆動輪１１２は、台車ベース１１１の対向する側方のそれぞれに、回転軸芯が一致するように配設されている。それぞれの駆動輪１１２は、不図示のモータによって独立して回転駆動される。キャスタ１１３は、従動輪であり、台車ベース１１１から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部１１０の移動方向に倣うように追従する従動キャスタとして機能する。移動ロボット１００は、例えば、２つの駆動輪１１２が同じ方向に同じ回転速度で回転されれば直進し、逆方向に同じ回転速度で回転されれば重心を通る鉛直軸周りに旋回する。すなわち、移動ロボット１００は、２つの駆動輪１１２の回転方向、回転速度がそれぞれ制御されることにより、前進、後進、旋回することができる。
【００１３】
台車部１１０は、障害物検知や周辺環境認識のための各種センサが設けられている。カメラ１１４は、そのセンサ類の一つであり、台車ベース１１１の四隅に配置されている。カメラ１１４は、例えばＣＭＯＳイメージセンサを含み、撮影した画像信号を後述の制御部へ送信する。隣接する２つのカメラ１１４が同一の障害物を捉えれば視差画像を取得でき、当該障害物までの距離を算出することもできる。また、画角に占める障害物の割合と、算出した距離を利用して、障害物の大きさを算出することもできる。このような演算により、走行路に存在する段差の高さを算出することもできる。
【００１４】
台車ベース１１１の上面中央部には旋回機構１１９が設けられている。旋回機構１１９には上体部１２０を構成する上体ベース１２５の噛合部（不図示）が嵌め込まれ、台車ベース１１１に上体ベース１２５が載置された状態となる。上体ベース１２５は、台車ベース１１１に設けられた不図示のモータにより、旋回機構１１９を介して鉛直軸周りに旋回駆動される。なお、本実施形態においては、移動ロボット１００の重心が旋回機構１１９の旋回軸上にあり、駆動輪１１２を互いに逆向きかつ同速で駆動した場合の超信地旋回（その場旋回）は、旋回機構１１９の旋回軸と同軸周りで行われるものとして説明する。旋回機構１１９の旋回軸と、超信地旋回の旋回軸とがずれる場合には、そのオフセット量を勘案して、駆動輪１１２の並進成分を調整すれば良い。
【００１５】
上体部１２０は、上体ベース１２５の他にも、主に、複数のアーム１２１と、ハンド１２４とを備える。複数のアーム１２１は、それぞれの端部で回動するように互いに接続されている。一連のアーム１２１の基端側は上体ベース１２５に固定されており、先端側はハンド１２４を回転自在に軸支している。ハンド１２４は、搬送物を把持できるように、把持機構を備える。アーム１２１とハンド１２４は、不図示のモータを介して駆動され、所定の姿勢をとったり、搬送物を把持したりする。
【００１６】
図２は、移動ロボット１００の制御ブロック図である。制御部２００は、例えばＣＰＵであり、台車部１１０に設けられている。駆動輪ユニット２１０は、駆動輪１１２を駆動するための駆動回路やモータを含み、台車部１１０に設けられている。制御部２００は、駆動輪ユニット２１０へ駆動信号を送ることにより、駆動輪１１２の回転制御を実行する。
【００１７】
旋回駆動ユニット２１２は、上体ベース１２５を旋回駆動するための駆動回路やモータを含み、台車部１１０に設けられている。制御部２００は、旋回駆動ユニット２１２へ駆動信号を送ることにより、上体ベース１２５の旋回制御を実行する。なお、上体ベース１２５が旋回されると、ハンド１２４が把持する搬送物も含めて上体部１２０の全体が鉛直軸周りに旋回されることになる。また、駆動輪１１２が駆動されることによって台車部１１０が路面に対して旋回する場合に、制御部２００が台車部１１０の旋回に同期させて上体ベース１２５を逆向きに旋回させれば、上体部１２０の全体は、見かけ上は路面に対して鉛直軸周りに回転することはなく、相対的にその姿勢を維持できる。
【００１８】
アームユニット２２０は、アーム１２１およびハンド１２４を駆動するための駆動回路やモータを含み、上体部１２０に設けられている。制御部２００は、アームユニット２２０へ駆動信号を送ることにより、上体部１２０の姿勢制御や把持制御を実行する。
【００１９】
センサユニット２３０は、周辺環境を探索したり上体部１２０の姿勢を監視したりする各種センサを含み、台車部１１０および上体部１２０に分散して配置されている。制御部２００は、センサユニット２３０に制御信号を送ることにより、各種センサを駆動してその出力を取得する。カメラ１１４は、センサユニット２３０に含まれ、制御信号に従って撮影動作を実行する。
【００２０】
メモリ２４０は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ２４０は、移動ロボット１００を制御するための制御プログラムの他にも、制御に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。メモリ２４０は、移動ロボット１００が自律走行する環境を表現する環境地図を格納した環境地図ＤＢ２４１を含む。
【００２１】
制御部２００は、駆動輪ユニット２１０、旋回駆動ユニット２１２、アームユニット２２０、センサユニット２３０およびメモリ２４０との間で情報を送受信することにより、制御に関わる様々な演算を実行する機能演算部としての役割も担う。移動ロボット１００は、計画された移動経路を目標位置まで自律的に移動したり、ユーザから移動方向を適宜与えられつつも障害物については自律的に回避しながら移動したりする。このとき、移動ロボット１００は、走行路上の段差の情報を、環境地図ＤＢ２４１から読み込む環境地図に記述された情報として取得したり、カメラ１１４から得られる画像信号を処理して取得したり、その他センサユニット２３０を介して得られるセンサ情報から取得したりする。つまり、制御部２００は、環境地図ＤＢ２４１、カメラ１１４、センサユニット２３０などの少なくともいずれかと協働して、走行路上の段差の情報を取得する取得部として機能する。
【００２２】
次に、移動ロボット１００の移動制御について説明する。移動ロボット１００の移動制御としては、上体部１２０の姿勢を維持したまま、台車部１１０を全方位へ移動させることができるアクティブキャスタ方式による移動制御（以下において「アクティブキャスタ制御」と呼ぶ）と、駆動輪１１２が進行方向に対して台車ベース１１１の前側に位置するように移動する対向二輪方式による移動制御（以下において「対向二輪制御」と呼ぶ）との２つを採用する。図３は、アクティブキャスタ制御を説明する図である。
【００２３】
アクティブキャスタ制御においては、進行方向に対して駆動輪１１２とキャスタ１１３の相対的な位置関係を拘束しておらず、通常の走行においては、台車ベース１１１の進行方向に対してキャスタ１１３が前側に位置し、駆動輪１１２が後側に位置する場合が多い。そこで、図示するように、キャスタ１１３を前側とした場合の右側の駆動輪を右駆動輪１１２ａとし、左側の駆動輪を左駆動輪１１２ｂとする。
【００２４】
図示するように、右駆動輪１１２ａの角速度をωＲ、左駆動輪１１２ｂの角速度をωＬ、それぞれの半径をＲｄ（同一）、右駆動輪１１２ａと左駆動輪１１２ｂの間隔（トレッド）をＷ、旋回中心と駆動輪車軸間のオフセット量をｓ、上体ベース１２５と台車ベース１１１の相対角をθＳ、その変化率である旋回角速度をωＳとする。このとき、ｘ軸方向の速度をｘドット、ｙ軸方向の速度をｙドットで表すと、以下の関係式（１）が成立する。
【００２５】
【数１】
2018005771.tif 000003
【００２６】
ここで、変換行列Ｊは、θＳの関数となっているが、この角度がどのような値になっても逆行列Ｊ-１は計算可能である。このことから、この制御においては特異点が存在せず、順方向、逆方向の計算が常に可能であることがわかる。すなわち、アクティブキャスタ制御は、ホロノミック制御であることがわかる。自律移動体がホロノミック制御を採用する場合、採用し得る移動経路の選択肢が増えるので、移動の自由度が格段に向上する。したがって、本実施形態における移動ロボット１００は、通常の走行においては、ホロノミック制御であるアクティブキャスタ制御を採用する。
【００２７】
アクティブキャスタ制御においては、駆動輪１１２を駆動すると、上述のように通常は、従動キャスタであるキャスタ１１３が進行方向の前側に位置する場合が多い。キャスタ１１３が進行方向の前側に位置すると、走行路上の段差を乗り越える場合に不利になる。
【００２８】
段差を乗り越える性能である踏破性について説明する。図４は、段差９００の踏破性を説明する図である。図においては、台車部１１０を抽出して段差９００との関係を模式的に表している。
【００２９】
走行路上の段差９００の高さがｈであるときに、駆動輪１１２がこの段差９００を乗り越えることができる条件を考える（ここでは慣性力を無視する）。駆動輪１１２と段差９００が接触する基準点をＰ、駆動輪にかかる重力をｍｇとすると、駆動輪１１２にかかる重力がＰに生じるモーメントＭｇは、以下の式（２）で表される。
【数２】
2018005771.tif 000004
【００３０】
また、駆動輪１１２の推進力をＦとしたときに、ＦがＰに生じるモーメントＭＦは、以下の式（３）で表される。
【数３】
2018005771.tif 000005
【００３１】
駆動輪１１２が段差９００を乗り越えるには、ＭＦ＞Ｍｇでなければならないので、この条件を満たすＦは、以下の式（４）として表される。
【数４】
2018005771.tif 000006
【００３２】
キャスタ１１３が先に段差９００に接する場合に、キャスタ１１３が段差を乗り越えるための条件は、式（４）のＲｄを、キャスタ１１３の半径Ｒｆに置き換えれば良い。ここで、本実施形態のようにＲｆがＲｄよりも小さい場合には、式（４）より、段差９００を乗り越えるためのＦが大きくなることがわかる。すなわち、キャスタ１１３で乗り越える場合の方が、必要とする推進力が大きくなる。換言すれば、駆動輪１１２で段差９００を乗り越える方が、推進力は小さくてすみ、円滑に乗り越えることができる。つまり、踏破性が良い。また、推進力は駆動輪１１２によって発生するので、駆動輪１１２で段差９００を乗り越える方が、推進力をより直接的に得られる点でも有利である。ただし、駆動輪１１２がキャスタ１１３よりも進行方向の前側に位置するという拘束条件を加えると、非ホロノミック制御となり、移動の自由度が下がってしまう。
【００３３】
そこで、本実施形態における移動ロボット１００は、通常においてはキャスタ１１３が進行方向前側に位置する場合が多いアクティブキャスタ制御で走行し、段差を乗り越えるときには、駆動輪１１２が進行方向前側に位置するように方向転換して対向二輪制御に切り替えることにする。すなわち、制御部２００は、進行方向に段差がないと認識している場合には、台車ベース１１１の進行方向に対する前側がキャスタ１１３となることを許容して駆動輪１１２を制御し、進行方向に前記段差があると認識した場合には、２つの駆動輪１１２の少なくともいずれかがキャスタ１１３よりも先に段差に接触するように台車ベース１１１の向きを変更して段差に進入するように駆動輪１１２を制御する。
【００３４】
このような方向転換を伴う制御において、段差へのアプローチについて説明する。図５は、段差乗り越え前の方向転換の様子を示す図である。図は、上から順に時間の経過に伴って、上体ベース１２５に対して台車ベース１１１が反時計回りに旋回する様子を表している。
【００３５】
アクティブキャスタ制御により移動経路に沿って移動してきた移動ロボット１００は、時刻Ｔ＝ｔ０で進行方向の所定距離内に段差９００が存在することを認識すると、方向転換を開始する。方向転換を開始したら、段差９００へ向かう直進移動は一旦停止する。
【００３６】
制御部２００は、駆動輪ユニット２１０を介して右駆動輪１１２ａを順方向、左駆動輪１１２ｂを逆方向に回転駆動し、走行面に対して台車ベース１１１を反時計回りに旋回させる。これに同期して、制御部２００は、旋回駆動ユニット２１２を介して上体ベース１２５を時計回りに旋回させ、上体ベース１２５が走行面に対して相対的に静止するように制御する。
【００３７】
図は、時刻Ｔ＝ｔ１で、台車ベース１１１が進行方向に対して６０度旋回し、時刻Ｔ＝ｔ２で、同じく１２０度旋回している様子を表す。そして、時刻Ｔ＝ｔ３で、台車ベース１１１は、進行方向に対して１８０度旋回し、方向転換が完了する。方向転換が完了すると、台車ベース１１１において、キャスタ１１３よりも右駆動輪１１２ａと左駆動輪１１２ｂの方が段差９００に近くなる。制御部２００は、この状態で段差９００へ向かう直進移動を対向二輪制御に切り替えて再開する。段差９００へのアプローチは、進行方向に対して左側の駆動輪が右駆動輪１１２ａ、右側の駆動輪が左駆動輪１１２ｂとなる。このとき、一連の方向転換の前後において、上体ベース１２５の進行方向に対する姿勢は維持される。
【００３８】
図６は、移動ロボット１００が段差９００へ接近する様子を示す図である。図は、台車ベース１１１の方向転換を行う地点Ｓｊの移動ロボット１００の様子と、段差９００を乗り越えようとする地点Ｓａの移動ロボット１００の様子を並べて表している。地点Ｓｊの様子は、図５における時刻Ｔ＝ｔ０の様子であり、地点Ｓａの様子は、図５における時刻Ｔ＝ｔ３の状態を経て段差９００へ向かって直進移動を行った後の時刻Ｔ＝ｔ４の様子である。なお、図５および図６の例においては、段差９００を認識した時点で一旦停止し、その場で方向転換を行ってから段差９００へ向かったが、段差９００を認識した位置から段差９００までの距離が予め定められた距離よりも大きい場合は、方向転換と段差９００への接近を同時に行っても良い。すなわち、制御部２００は、台車ベース１１１の向きを変更しつつ段差９００に接近するように駆動輪１１２を制御しても良い。
【００３９】
上述のように、一連の方向転換の前後において、上体ベース１２５の進行方向に対する姿勢は維持されるので、図示するようにハンド１２４が搬送物３０１を把持している場合においても、搬送物３０１を含め上体部１２０の全体の進行方向に対する姿勢が維持される。すなわち、アクティブキャスタ制御から対向二輪制御へ切り替えても、上体部１２０の姿勢は、進行方向に対して一貫して保たれている。このように、上体部１２０の姿勢が保たれていると、走行に先立って計算する障害物との接触判定が容易であり、また、走行中において障害物と予期せぬ接触を回避する点でも有利である。
【００４０】
移動ロボット１００は、環境地図ＤＢ２４１に記憶された環境地図によって段差を認識していれば、段差からある程度離れた位置で安全に方向転換をすることができる。一方で、センサ等でリアルタイムに段差を認識している場合は、段差の直前になってはじめてその存在を認識する場合もある。段差の直前では、方向転換を安全に行うスペースが無い場合もある。本実施形態の移動ロボット１００は、旋回機構１１９の旋回中心軸周りに超信地旋回が可能であるとしたが、移動ロボットによっては、その場で旋回しようとしても旋回半径が０にならない構造であることも多い。すなわち、移動ロボットごとに、方向転換に必要なスペースは異なる。
【００４１】
そこで、段差を認識した地点で方向転換するスペースが無い場合の制御について説明する。図７は、段差直前で方向転換できない場合の方向転換の様子を示す図である。
【００４２】
図７（ａ）は、移動ロボット１００が段差９００に接近し、時刻Ｔ＝ｔ１０で段差９００を認識した様子を表す。Ｔ＝ｔ１０までは、アクティブキャスタ制御によりキャスタ１１３を進行方向の前側に位置させて走行しており、Ｔ＝ｔ１０で、一旦停止する。
【００４３】
段差を認識して、例えばセンサユニット２３０からの情報により、方向転換する十分なスペースがないと判断したら、図７（ｂ）に示すように、後退を開始する。周囲に旋回の障害となる障害物が無くなったと判断したら、後退しつつ台車ベース１１１の旋回を実行し、Ｔ＝ｔ１１、ｔ１２の状態を経て、Ｔ＝ｔ１３で方向転換を完了する。Ｔ＝ｔ１３の状態は、段差９００に対し駆動輪１１２が直交する向きとなった状態である。
【００４４】
方向転換が完了したら、対向二輪制御に切り替え、図７（ｃ）に示すように、移動ロボット１００は、段差９００へ向かって直進し、Ｔ＝ｔ１４の状態を経て、Ｔ＝ｔ１５で再度段差９００に進入する。このような動作を経て段差９００の乗り越えを試みる。このように、一旦後退してスペースに余裕があるところで方向転換を行えば、対向二輪制御によって段差の乗り越えを実行することができる。なお、段差９００を認識した地点で方向転換を行うスペースが無い場合は、上記の動作に限らず、まずは後退のみを行い、スペースを確保した地点で方向転換のみを行い、それから段差９００に再度接近しても良い。また、まずは後退のみを行い、段差９００に再度接近しつつ方向転換を行い、方向転換が完了した時点で対向二輪制御に切り替えて段差９００に進入しても良い。
【００４５】
以上に説明した方向転換においては、上体部１２０の姿勢を維持することを前提としたが、上体部１２０の姿勢を維持することが重要で無い場合、つまり、上体部１２０の姿勢が進行方向に対して変化しても構わない場合は、他の方向転換の手法も採用し得る。
【００４６】
図８は、段差９００までの間に迂回路を確保できる場合の方向転換の様子を示す図である。移動ロボット１００は、最適な移動経路として点線で示す経路を計画した場合において、段差９００を認識したとする。このとき、上体ベース１２５を含む上体部１２０の姿勢を維持する条件が課せられていなければ、実線で示す迂回路を移動経路として再設定する。移動ロボット１００は、この迂回路に沿って移動すれば、段差９００に到達するより前に、駆動輪１１２を進行方向の前側に位置させることができる。そして、アクティブキャスタ制御から対向二輪制御に切り替えて、段差９００に進入する。
【００４７】
つまり、制御部２００は、段差９００の手前までに駆動輪１１２を段差９００に対向させる、例えば滑らかな弧を繋いだ迂回路を形成できるか、また、その迂回路を環境地図上で確保できるかを演算する。そして、形成した迂回路が確保でき場合には、その迂回路に沿って移動することにより、方向転換を実現する。なお、台車ベース１１１の方向転換が完了した後に、上体部１２０の姿勢が進行方向に対して元の姿勢になるように、上体ベース１２５を旋回駆動しても良い。
【００４８】
次に、移動ロボット１００が、始動してから目的地に到達するまでの、段差乗り越えに関する処理手順を説明する。図９は、段差乗り越えに関する移動ロボット１００の処理手順を示すフロー図である。フローは、移動ロボット１００が、移動を開始した時点で開始される。
【００４９】
制御部２００は、環境地図ＤＢ２４１から読み込んだ環境地図やセンサユニット２３０からの信号を継続的に監視することにより段差情報を取得し、進行方向に段差が有るかを判断する（ステップＳ１０１）。段差が無いと判断している間はステップＳ１０２へ進み、走行を継続する。そして、目的地に到達したか否かを環境地図等を参照して判断し（ステップＳ１０３）、到達していないと判断した場合はステップＳ１０１へ戻る。到達したと判断したら一連の移動制御を終了する。
【００５０】
制御部２００は、ステップＳ１０１で、進行方向に段差が有ると判断したら、ステップＳ１０４へ進み、その段差が乗り越え可能な段差であるか否かを判断する。例えば、カメラ１１４からの画像を解析した結果、段差の高さが予め定められた閾値よりも大きい場合は、乗り越え不可能と判断する。閾値は、駆動輪１１２が乗り越えられる高さを基準に定められる。また、移動ロボット１００の幅方向に対して、段差の高さに大きな差がある場合など、段差に所定の特徴がある場合にも乗り越え不可能と判断する。
【００５１】
制御部２００は、乗り越えが不可能であると判断したら、ステップＳ１１４へ進み、当該段差を回避して目的地まで到達する迂回経路が存在するか否かを、環境地図を参照して判断する。迂回経路が存在する場合には、その経路に沿って移動を開始し（ステップＳ１１６）、ステップＳ１０１へ戻る。迂回経路が存在しない場合は、ステップＳ１１５へ進み、到達不能である旨の告知を行う。到達不能告知は、例えば、音声で告知したり、ユーザが所持する端末に画像を表示したりする。移動ロボット１００は、到達不能告知を行ったら、移動を終了する。
【００５２】
制御部２００は、ステップＳ１０４で、段差の乗り越えが可能であると判断したら、ステップＳ１０５へ進み、進行方向に対して駆動輪１１２を前側に位置させる方向転換を行うスペースが有るか否かを判断する。具体的には、センサユニット２３０からの信号等を用いて、周囲に障害物が迫っているか否かを判断する。スペースが有ると判断したらステップＳ１０６へ進み、図５、６を用いて説明したように、その場で方向転換を実行する。スペースが無いと判断したら、ステップＳ１０７へ進み、図７を用いて説明したように、後退しつつ方向転換を実行する。
【００５３】
制御部２００は、ステップＳ１０６またはステップＳ１０７の方向転換が完了したら、ステップＳ１０８へ進み、アクティブキャスタ制御から対向二輪制御に制御方式を切り替える。具体的には、対向二輪制御により、段差を乗り越えるまでの経路に対する駆動輪１１２の制御計画を策定する。ステップＳ１０９では、この策定された計画に従って段差に進入し、乗り越えを試みる。
【００５４】
制御部２００は、ステップＳ１１０で段差の乗り越えに成功したか否かを判断する。例えば、所定時間の経過後に駆動輪１１２を駆動するためのモータトルクが平面を走行する範囲に戻っているかを確認したり、認識した周囲の障害物と環境地図とを比較したり、進行方向に対して後方のカメラ１１４が撮影した画像から段差の位置を抽出したりして判断する。乗り越えに成功したと判断したら、ステップＳ１１１へ進み、再びアクティブキャスタ制御に切り替え、ステップＳ１０２へ進んで走行を継続する。
【００５５】
制御部２００は、ステップＳ１１０で乗り越えに成功しなかったと判断したら、ステップＳ１１２へ進み、段差から後退する。そして、再びアクティブキャスタ制御に切り替え、ステップＳ１１４へ進んで迂回経路を探索する。
【００５６】
以上に説明した制御フローは一例であり、様々なバリエーションを採用し得る。例えば、図８を用いて説明した迂回路による方向転換を取り込んでも良い。この場合、制御部２００は、上体部１２０の姿勢を維持するように指定されているか否かを判断して、迂回路による方向転換を実行しても良い。また、以上の制御ブローは、段差乗り越え時には対向二輪制御に切り替えることを前提としたが、段差の状況に応じて前提を変更しても良い。
【００５７】
更に変形例について説明する。図１０は、段差乗り越え制御の変形例を示すフロー図である。具体的には、図９のステップＳ１０４からステップＳ１１１と置き換えられる処理手順である。
【００５８】
制御部２００は、進行方向に段差が有ると判断したらステップＳ２０１で、アクティブキャスタ制御のまま乗り越えが可能か否かを判断する。例えば、上述の数（４）に段差の高さ、キャスタ１１３の半径、駆動輪１１２の推進力から得られるＦ等を代入して、成立すれば乗り越え可能と判断する。乗り越え可能と判断したら、ステップＳ２０２へ進み、段差の乗り越えを試みる。そして、ステップＳ２０３で乗り越えに成功したか否かを判断する。このときの判断の手法はステップＳ１１０と同様である。乗り越えに成功したと判断したら、ステップＳ１０２へ引き継ぐ。
【００５９】
制御部２００は、ステップＳ２０１で、アクティブキャスタ制御では段差を乗り越えられないと判断したら、ステップＳ２０５へ進む。また、ステップＳ２０３で、乗り越えに失敗したと判断した場合は、ステップＳ２０４で一旦後退した後にステップＳ２０５へ進む。
【００６０】
制御部２００は、ステップＳ２０５で、方向転換を実行する。もちろん、方向転換の実行に先立ち、ステップＳ１０５のような判断を行っても良い。そして、対向二輪制御に切り替え（ステップＳ２０６）、段差に進入して乗り越える（ステップＳ２０７）。もちろんステップＳ１１０のように、乗り越えが成功したか否かの判断を加え、失敗した場合の処置を組み入れても良い。段差の乗り越えが完了したら、ステップＳ２０８でアクティブキャスタ制御に戻し、ステップＳ１０２へ引き継ぐ。
【００６１】
以上に説明した実施例及び変形例では、移動ロボット１００の移動経路に対して段差が直交する場合を説明したが、段差は、移動経路と直交する場合ばかりではない。そこで、段差が移動経路に斜交して存在する場合について説明する。図１１は、段差が移動経路に斜交する場合の段差乗り越えの様子を示す図である。
【００６２】
移動ロボット１００は、最適な移動経路として点線で示す経路を計画した場合において、時刻Ｔ＝ｔ２０に、移動経路と斜交する段差９００を認識したとする。制御部２００は、Ｔ＝ｔ２０から台車ベース１１１の方向転換を開始する。この場合の方向転換は、予定している移動経路に沿った直進動作を伴うので、図７（ｂ）の動作のように、回転成分に並進成分を加算した旋回制御となる。
【００６３】
方向転換は、これまでのように１８０度旋回させるのではなく、２つの駆動輪１１２が段差９００に直交する向きになるまで旋回させる。移動ロボット１００は、時刻Ｔ＝ｔ２１の状態を経て、時刻Ｔ＝ｔ２２で、２つの駆動輪１１２が段差９００に直交する向きになる。
【００６４】
制御部２００は、２つの駆動輪１１２が段差９００に直交する向きになったら、当初の移動経路から離れ、対向二輪制御により段差９００へ直進する。つまり、段差に直交する経路に変更して段差に進入する。
【００６５】
時刻Ｔ＝ｔ２３で段差乗り越えに成功したことが判断されると、制御部２００は、その地点から当初の移動経路に復帰するまでの経路を計画する。具体的には、アクティブキャスタ制御により当初の移動経路に沿って走行できるように、台車ベース１１１の回転動作と直進動作を組み合わせて早期に復帰できる経路を計画する。時刻Ｔ＝ｔ２４の状態は、このように計画された経路に沿って移動する様子を示す。そして、時刻Ｔ＝ｔ２５で、当初の移動経路に復帰し、アクティブキャスタ制御に切り替えて、目的地へ向けて走行を継続する。このように制御することにより、移動ロボット１００が段差９００をより確実に乗り越えることができる。
【００６６】
なお、制御部２００は、上体ベース１２５を、図示するように、当初の移動経路に沿って移動した場合の進行方向に対する姿勢に一貫して保つように制御しても良い。このように制御することにより、障害物との予期せぬ接触を軽減することができる。
【００６７】
以上に説明した実施例及び変形例では、２つの駆動輪１１２が段差９００に直交する向きになるように方向転換した後に段差に接近し、これら２つの駆動輪１１２がほぼ同時に段差に接触して乗り越え動作を行った。しかし、図４を用いて説明したように、駆動輪が先に段差に接触する方が、キャスタが先に段差に接触するよりも、踏破性の向上には有利だということがわかっているので、２つの駆動輪が同時に段差に接触しなくても良いと言える。したがって、移動経路と段差の向きとの関係によっては、片方の駆動輪１１２がキャスタ１１３よりも先に段差に接触するような台車ベース１１１の向きに変更することを許容しても良い。
【００６８】
以上説明した実施形態において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現し得る。便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００６９】
１００  移動ロボット、１１０  台車部、１１１  台車ベース、１１２  駆動輪、１１３  キャスタ、１１４  カメラ、１１９  旋回機構、１２０  上体部、１２１  アーム、１２４  ハンド、１２５  上体ベース、２００  制御部、２１０  駆動輪ユニット、２１２  旋回駆動ユニット、２２０  アームユニット、２３０  センサユニット、２４０  メモリ、２４１  環境地図ＤＢ、３０１  搬送物、９００  段差
【図１】
2018005771.tif 000007
【図２】
2018005771.tif 000008
【図３】
2018005771.tif 000009
【図４】
2018005771.tif 000010
【図５】
2018005771.tif 000011
【図６】
2018005771.tif 000012
【図７】
2018005771.tif 000013
【図８】
2018005771.tif 000014
【図９】
2018005771.tif 000015
【図１０】
2018005771.tif 000016
【図１１】
2018005771.tif 000017