(57)【要約】【課題】自律走行台車が、自律走行する際に、予定走行経路から外れて走行することを抑制する。【解決手段】自律走行台車１００は、台車部１と、走行部２と、教示部７１と、曲率算出部７４１と、サブゴール点処理部７４３と、を備える。走行部２は、台車部１に搭載される。そして、走行部２は、台車部１を走行させる。教示部７１は、教示走行モードの実行時に、サブゴール点を取得する。そして、教示部７１は、予定走行経路を表現する予定走行経路データを、サブゴール点の集合体として記憶する。曲率算出部７４１は、部分予定走行経路の、注目サブゴール点における曲率半径である注目曲率半径を算出する。サブゴール点処理部７４３は、注目曲率半径が第１の値以下の場合に、注目曲率半径が第１の値以上になるように、サブゴール点を移動させる処理を行う。【選択図】図９Ｃ
2015060388.tif 000002
【特許請求の範囲】
【請求項１】
操作者の操作により走行開始位置から走行終了位置まで走行した際の走行経路である予定走行経路を教示する教示走行モードと、前記予定走行経路を再現しながら自律的に走行する再現走行モードと、を実行する自律走行台車であって、
台車部と、
前記台車部に搭載され、前記台車部を走行させる走行部と、
前記教示走行モードの実行時に、前記走行開始位置から前記走行終了位置までに前記台車部が通過した走行環境における位置に関する情報であるサブゴール点を取得し、前記予定走行経路を表現する予定走行経路データを前記サブゴール点の集合体として記憶する教示部と、
前記予定走行経路データに含まれる１の前記サブゴール点を注目サブゴール点とし、前記注目サブゴール点と、前記注目サブゴール点から見て前記予定走行経路データの前後に存在する所定の数の前記サブゴール点と、により形成される部分予定走行経路の、前記注目サブゴール点における曲率半径である注目曲率半径を算出する曲率算出部と、
前記注目曲率半径が第１の値以下の場合に、前記注目曲率半径が前記第１の値より大きくなるように、前記サブゴール点を移動させる処理を行うサブゴール点処理部と、
を備える自律走行台車。
【請求項２】
前記部分予定走行経路は、前記注目サブゴール点と、前記注目サブゴール点の直前の第１サブゴール点と、前記注目サブゴール点の直後の第２サブゴール点と、含む３つの前記サブゴール点により形成される、請求項１に記載の自律走行台車。
【請求項３】
前記曲率算出部は、前記注目曲率半径として、前記部分予定走行経路を形成する３つの前記サブゴール点により形成される三角形の、前記注目サブゴール点における注目点角度を算出し、
前記サブゴール点処理部は、前記注目点角度が第１の角度以下であると判定した場合に、前記注目曲率半径が前記第１の値以下であると判断する、請求項２に記載の自律走行台車。
【請求項４】
前記曲率算出部は、前記注目曲率半径として、前記部分予定走行経路を近似又は表現する円である注目円の半径を算出し、
前記サブゴール点処理部は、前記注目円の半径が前記第１の値以下であると判定した場合に、前記注目曲率半径が前記第１の値以下であると判断する、請求項１〜３のいずれかに記載の自律走行台車。
【請求項５】
前記サブゴール点処理部は、前記注目サブゴール点を、前記部分予定走行経路を形成する前記サブゴール点により形成される多角形の重心に移動させることにより、前記部分予定走行経路の前記注目曲率半径を増加させる、請求項１〜４のいずれかに記載の自律走行台車。
【請求項６】
前記予定走行経路データに含まれる前記サブゴール点の数を減らして圧縮後予定走行経路データを作成するデータ圧縮処理部をさらに備える、請求項１〜５のいずれかに記載の自律走行台車。
【請求項７】
前記データ圧縮処理部は、連続する所定の数の前記サブゴール点の位置の平均値を算出し、前記平均値に対応する位置に圧縮後サブゴール点を設定する処理を行う、請求項６に記載の自律走行台車。
【請求項８】
前記曲率算出部における処理、及び、前記サブゴール点処理部における処理は、前記圧縮後予定走行経路データに対して行われる、請求項６又は７に記載の自律走行台車。
【請求項９】
前記台車部の走行環境における位置を所定の制御周期毎に推定する位置推定部をさらに備える、請求項１〜８のいずれかに記載の自律走行台車。
【請求項１０】
台車部と、前記台車部に搭載され前記台車部を走行させる走行部とを備え、操作者の操作により走行開始位置から走行終了位置まで走行した際の走行経路である予定走行経路を教示する教示走行モードと、前記予定走行経路を再現しながら自律的に走行する再現走行モードと、を実行する自律走行台車において、前記予定走行経路を表す予定走行経路データを加工する方法であって、
前記教示走行モードの実行時に取得し記憶された前記予定走行経路データに含まれる、前記走行開始位置から前記走行終了位置までに前記台車部が通過した走行環境における位置に関する情報であるサブゴール点のうち、１の前記サブゴール点を注目サブゴール点とし、前記注目サブゴール点と、前記注目サブゴール点から見て前記予定走行経路データの前後に存在する所定の数の前記サブゴール点と、により形成される部分予定走行経路の、前記注目サブゴール点における曲率半径である注目曲率半径を算出するステップと、
前記注目曲率半径が第１の値以下の場合に、前記注目曲率半径が第１の値より大きくなるように、前記サブゴール点を移動させる処理を行うステップと、
を含む予定走行経路データの加工方法。
【請求項１１】
前記予定走行経路データに含まれる前記サブゴール点の数を減らして圧縮後予定走行経路データを作成するステップをさらに含む、請求項１０に記載の予定走行経路データの加工方法。
【請求項１２】
請求項１０又は１１に記載の予定走行経路データの作成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対向二輪差動型などの単純な構造を有する走行部を有した自律走行台車の制御に関する。
【背景技術】
【０００２】
これまで、操作者により教示された走行経路を、自律的に再現して走行する走行台車及びロボットなどが知られている。例えば、特許文献１には、筐体に、床面上を移動させる走行駆動手段と、床面上における筐体の位置を検出する位置検出手段と、床面の清掃処理を行う清掃手段と、走行駆動手段及び清掃手段の操作の入力を受け付ける操作受付手段と、位置検出手段により検出される位置に基づく移動経路と該移動経路を該操作受付手段の受付内容に結びつけて記憶する記憶手段と、該記憶手段に記憶される記憶内容を読み出し該記憶内容に基づいて走行駆動手段及び清掃手段を作動させる制御手段とを設けてなる清掃ロボットが開示されている。
【０００３】
この清掃ロボットには、筐体の下面中央に、左右に一対それぞれ水平同軸上に走行のための駆動輪と、該駆動輪に直結されてこれを回転駆動する一対の走行モータとが、配置されている。そして、各走行モータは、左右の回転数を変えることにより清掃ロボットを左右に旋回させるようになっている。これにより、最小回転半径を小さくすることができ、清掃処理が効率的に行える。以後、このように、左右一対の駆動輪と、該駆動輪に直結されてこれを回転駆動する走行モータにより構成される走行手段を、対向二輪差動型の走行手段と呼ぶこともある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３２６０２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されている清掃ロボットが備える対向二輪差動型の走行手段（走行部）は、構造が単純である一方、次のような問題点がある。すなわち、対向二輪差動型の走行部では、真横方向への走行ができない。また、対向二輪差動型の走行部は、一対の駆動輪の幅などの設計上の制限、及び／又は、駆動輪と床面との滑りにより、急峻な曲がりを有する走行経路（曲率半径が過剰に小さい走行経路）を再現よく自律走行できないことがある。
【０００６】
さらに、上記の位置検出手段などにより清掃ロボットの位置を検出する場合、検出手段に用いるセンサーのノイズ、及び／又は、測定誤差などにより、記憶手段に記憶された記憶内容にノイズが含まれることがある。ノイズを含んだ記憶内容には、対向二輪差動型の走行手段を備えた清掃ロボットが走行できないような、急峻な曲がりを有する移動経路が含まれていることがある。
急峻な曲がりを含む移動経路を記憶した記憶内容に基づいて、対向二輪差動型の走行手段が制御された場合、清掃ロボットは、無駄な動きをするだけでなく、教示された本来の移動経路から徐々に外れて走行することがある。
【０００７】
本発明の課題は、自律走行台車が忠実に再現走行な予定走行経路データを作成することにより、自律走行台車が、自律走行する際に、予定走行経路から外れて走行することを抑制することにある。
【課題を解決するための手段】
【０００８】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る自律走行台車は、教示走行モードと再現走行モードを実行する自律走行台車である。教示走行モードとは、操作者の操作により走行開始位置から走行終了位置まで走行した際の走行経路である予定走行経路を教示する走行モードである。再現走行モードとは、教示された予定走行経路を再現しながら自律的に走行する走行モードである。
自律走行台車は、台車部と、走行部と、教示部と、曲率算出部と、サブゴール点処理部と、を備える。走行部は、台車部に搭載される。そして、走行部は、台車部を走行させる。教示部は、教示走行モードの実行時に、サブゴール点を取得する。ここで、サブゴール点とは、走行開始位置から走行終了位置までに台車部が通過した走行環境における位置に関する情報である。そして、教示部は、予定走行経路を表現する予定走行経路データを、サブゴール点の集合体として記憶する。曲率算出部は、部分予定走行経路の、注目サブゴール点における曲率半径である注目曲率半径を算出する。ここで、部分予定走行経路とは、予定走行経路データに含まれる１のサブゴール点を注目サブゴール点とし、注目サブゴール点と、注目サブゴール点から見て予定走行経路データの前後に存在する所定の数のサブゴール点と、により形成される走行経路のことを言う。サブゴール点処理部は、注目曲率半径が第１の値以下の場合に、注目曲率半径が第１の値以上になるように、サブゴール点を移動させる処理を行う。
【０００９】
この自律走行台車では、まず、教示走行モードを実行して、そのときに、教示部が、操作者の操作による自律走行台車の走行経路（予定走行経路）を予定走行経路データとして取得し記憶する。そして、曲率算出部が、取得した予定走行経路データに含まれる注目サブゴール点と、注目サブゴール点の前後に存在する所定の数のサブゴール点とにより形成される部分予定走行経路の、注目サブゴール点における曲率半径（注目曲率半径）を算出する。さらに、サブゴール点処理部が、注目曲率半径が第１の値以下である場合に、注目曲率半径が第１の値以上になるようにサブゴール点を移動させる。
【００１０】
教示走行モードを実行した直後に記憶された予定走行経路データに、ノイズや測定誤差により忠実に再現走行不能な走行経路が含まれている場合がある。しかし、この自律走行台車では、そのような場合でも、自律走行台車が忠実に再現走行可能な走行経路のみを含む予定走行経路データを作成できる。なぜなら、予定走行経路データ中に注目曲率半径が第１の値以下の部分予定走行経路が存在する場合、サブゴール点処理部が、注目曲率半径が第１の値以上になるようにサブゴール点を移動させるからである。その結果、自律走行台車は、再現走行モードの実行時に、予定走行経路から外れることなく、予定走行経路を忠実に再現走行できる。
【００１１】
部分予定走行経路は、注目サブゴール点と、注目サブゴール点の直前の第１サブゴール点と、注目サブゴール点の直後の第２サブゴール点と、含む３つのサブゴール点により形成されてもよい。
これにより、より簡単な計算で注目曲率半径を算出できる。そして、より簡単な計算によりサブゴール点を移動できる。その結果、曲率算出部及びサブゴール点処理部の処理速度が向上する。
また、第１サブゴール点と第２サブゴール点とを、注目サブゴール点の直前又は直後のサブゴール点とすることにより、サブゴール点処理部は、より少ない処理（注目サブゴール点を移動させる処理）回数にて注目曲率半径が第１の値となるように予定走行経路データを加工できる。
【００１２】
曲率算出部は、注目曲率半径として、部分予定走行経路を形成する３つのサブゴール点により形成される三角形の、注目サブゴール点における注目点角度を算出してもよい。また、この場合、サブゴール点処理部は、注目点角度が第１の角度以下であると判定した場合に、注目曲率半径が第１の値以下であると判断してもよい。
注目サブゴール点を含む３つのサブゴール点により形成される三角形における注目点角度は、注目曲率半径と対応している。そのため、簡単な計算により算出可能な注目点角度を、注目曲率半径の大小の判断に用いることができる。その結果、より簡単な計算により、注目曲率半径の大小を判断できる。その結果、曲率算出部及びサブゴール点処理部における処理速度が向上する。
【００１３】
曲率算出部は、注目曲率半径として、部分予定走行経路を近似又は表現する円である注目円の半径を算出してもよい。また、この場合、サブゴール点処理部は、注目円の半径が第１の値以下であると判定した場合に、注目曲率半径が第１の値以下であると判断してもよい。
部分予定走行経路を注目円で近似又は表現することにより、より簡単な計算方法により注目曲率半径を算出できる。
【００１４】
サブゴール点処理部は、注目サブゴール点を、部分予定走行経路を形成するサブゴール点により形成される多角形の重心に移動させることにより、部分予定走行経路の注目曲率半径を増加させてもよい。
これにより、より簡単な計算により、かつ、より計算回数を減少して、注目曲率半径が第１の値以上になるように、注目サブゴール点を移動できる。その結果、予定走行経路データに自律走行台車が走行可能な走行経路のみが含まれるよう、予定走行経路データの加工を行う時間と計算負荷を減少できる。
【００１５】
自律走行台車は、データ圧縮処理部をさらに備えていてもよい。データ圧縮処理部は、予定走行経路データに含まれるサブゴール点の数を減らして圧縮後予定走行経路データを作成する。
これにより、予定走行経路データのデータ数を減少できる。その結果、予定走行経路データの加工を行う時間と計算負荷を減少できる。また、予定走行経路データに含まれるノイズを取り除ける。
【００１６】
データ圧縮処理部は、連続する所定の数のサブゴール点の位置の平均値を算出し、平均値に対応する位置に圧縮後サブゴール点を設定する処理を行ってもよい。
これにより、より簡単に予定走行経路データを圧縮処理できる。その結果、データ圧縮処理部における処理速度を向上できる。
【００１７】
曲率算出部における処理、及び、サブゴール点処理部における処理は、圧縮後予定走行経路データに対して行われてもよい。
これにより、注目曲率半径の算出及びサブゴール点の移動のための処理を減少できる。
【００１８】
自律走行台車は、台車部の走行環境における位置を所定の制御周期毎に推定する位置推定部をさらに備えてもよい。
これにより、自律走行台車は、精度よく走行環境における自律走行台車の位置を推定できる。
【００１９】
本発明の他の見地に係る予定走行経路データの加工方法は、台車部と、走行部とを備え、教示走行モードと、再現走行モードとを実行する自律走行台車における、予定走行経路データの加工方法である。
予定走行データの加工方法は、以下のステップを含む。
◎教示走行モードの実行時に取得し記憶された予定走行経路データに含まれるサブゴール点のうち、１のサブゴール点を注目サブゴール点とし、注目サブゴール点と、注目サブゴール点から見て予定走行経路データの前後に存在する所定の数のサブゴール点と、により形成される部分予定走行経路の、注目サブゴール点における曲率半径である注目曲率半径を算出するステップ。
◎注目曲率半径が第１の値以下の場合に、注目曲率半径を第１の値以上となるように、サブゴール点を移動させる処理を行うステップ。
【００２０】
教示走行モードを実行した直後に記憶された予定走行経路データに、忠実に再現走行不能な走行経路が含まれている場合がある。しかし、この自律走行台車では、そのような場合でも、自律走行台車が忠実に再現走行可能な走行経路のみを含むように予定走行経路データを加工できる。なぜなら、予定走行経路データ中に注目曲率半径が第１の値以下の部分予定走行経路が存在する場合、注目曲率半径が第１の値以上になるようにサブゴール点が移動されるからである。その結果、自律走行台車は、再現走行モードの実行時に、予定走行経路からずれることなく、予定走行経路を忠実に再現走行できる。
【００２１】
予定走行経路データの加工方法は、予定走行経路データに含まれるサブゴール点の数を減らして圧縮後予定走行経路データを作成するステップをさらに含んでいてもよい。
これにより、予定走行経路データのデータ数を減少できる。その結果、予定走行経路データの加工を行う時間と計算負荷を減少できる。また、予定走行経路データに含まれるノイズを取り除ける。
【００２２】
本発明のさらに他の見地に係るプログラムは、上記の予定走行経路データの加工方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００２３】
自律走行台車が忠実に再現走行な予定走行経路データを作成できる。その結果、自律走行台車が、自律走行する際に、予定走行経路から外れて走行することを抑制できる。
【図面の簡単な説明】
【００２４】
【図１】自律走行台車の全体構成を示す図
【図２】操作部の構成を示す図
【図３】制御部の全体構成を示す図
【図４】自律走行台車の姿勢の定義を示す図
【図５Ａ】予定走行経路処理部の基本的な構成を示す図
【図５Ｂ】データ圧縮処理部を有する予定走行経路処理部の構成を示す図
【図６】注目点角度と注目曲率半径の大きさの関係を示す図
【図７】余弦定理による注目点角度の算出法を示す図
【図８】モータ駆動部の構成を示す図
【図９Ａ】予定走行経路データの基本動作を示すフローチャート
【図９Ｂ】予定走行経路データの取得方法を示すフローチャート
【図９Ｃ】予定走行経路データの加工方法を示すフローチャート
【図１０】取得された予定走行経路データによる予定走行経路を示す図
【図１１Ａ】圧縮処理前の予定走行経路データによる予定走行経路を示す図
【図１１Ｂ】圧縮後予定走行経路データによる予定走行経路を示す図
【図１２Ａ】サブゴール点移動前の圧縮後予定走行経路データによる予定走行経路を示す図
【図１２Ｂ】サブゴール点移動後の圧縮後予定走行経路データによる予定走行経路を示す図
【図１３Ａ】サブゴール点の移動を１回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図
【図１３Ｂ】サブゴール点の移動を２回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図
【図１３Ｃ】サブゴール点の移動を３回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図
【図１４】注目サブゴール点をそれ以外のサブゴール点を結ぶ直線に近づける、サブゴール点の移動方法を示す図。
【図１５】サブゴール点をベジエ曲線上に設定することによる、サブゴール点の移動方法を示す図。
【発明を実施するための形態】
【００２５】
１．第１実施形態
（１）自律走行台車の全体構成
まず、本実施形態に係る自律走行台車の全体構成について、図１を用いて説明する。図１は、自律走行台車の全体構成を示す図である。本実施形態の自律走行台車１００は、操作者の操作により、走行開始位置から走行終了位置までの所望の予定走行経路を教示する教示走行モードと、予定走行経路を再現しながら走行開始位置から走行終了位置まで自律的に走行する再現走行モードと、を実行する。
自律走行台車１００は、台車部１と、走行部２と、検出部３と、操作部５と、制御部７と、を備える。台車部１は、自律走行台車１００の本体を構成する。走行部２は、台車部１に搭載されている。走行部２は、台車部１を走行させる。検出部３は、制御部７（後述）に信号送受信可能に接続されている。そして、検出部３は、障害物及び走行経路にある壁などを検出し、障害物及び壁などの位置情報を制御部７に出力する。操作部５は、台車部１の上部後方側に取付部材９を介して固定されている。また、操作部５は、制御部７に信号送受信可能に接続されている。操作部５は、操作者が自律走行台車１００に予定走行経路を教示するとき（教示走行モードの実行時）、操作者により操作される。これにより、自律走行台車１００の走行モードが教示走行モードの実行時に、自律走行台車１００は、操作者による操作部５の操作に基づいて制御される。また、操作部５は、自律走行台車１００の各種設定を行う。
【００２６】
制御部７は、走行部２のモータ２３ａ、２３ｂ（後述）に電気的に接続されている。また、制御部７には、検出部３が信号送受信可能に接続されている。制御部７は、教示走行モードの実行時には、操作者による操作部５の操作に基づいて、走行部２のモータ２３ａ、２３ｂを制御する。一方、予定走行経路を再現しながら自律的に走行する再現走行モードの実行時には、制御部７は、教示走行モードの実行時において教示された予定走行経路を表す予定走行経路データ（後述）に基づいて、走行部２のモータ２３ａ、２３ｂを制御する。
また、制御部７は、検出部３から得られる信号（後述）に基づいて、障害物及び壁などの位置情報を把握する。また、制御部７は、障害物及び壁などの位置情報に基づき、移動平面（走行環境）における自律走行台車１００の位置を把握する。
なお、自律走行台車１００の走行部２、検出部３、操作部５、及び制御部７の構成の詳細については、後述する。
【００２７】
自律走行台車１００は、補助輪部８をさらに備える。補助輪部８は、２つの補助車輪８ａ、８ｂを有する。２つの補助車輪８ａと８ｂは、それぞれが独立に回転可能なように台車部１の後方底部に取り付けられている。補助輪部８を備えることにより、自律走行台車１００は安定に、かつ、スムーズに移動できる。
【００２８】
（２）走行部の構成
次に、走行部２の構成について図１を用いて詳細に説明する。走行部２は、２つの主輪２１ａ、２１ｂと、２つのモータ２３ａ、２３ｂと、を有する。主輪２１ａ、２１ｂは、台車部１の略中央部の底部に設置されている。
また、主輪２１ａ、２１ｂは、それぞれ、モータ２３ａ、２３ｂの出力回転軸に接続されている。これにより、主輪２１ａはモータ２３ａの回転に従って回転し、主輪２１ｂはモータ２３ｂの回転に従って回転する。すなわち、主輪２１ａ及び主輪２１ｂは、お互いに独立に回転可能となっている。そのため、主輪２１ａの回転速度と主輪２１ｂの回転速度に差を持たせることにより、台車部１（自律走行台車１００）の進行方向を変更できる。
【００２９】
モータ２３ａ、２３ｂは、制御部７に電気的に接続されている。モータ２３ａ、２３ｂはそれぞれ、制御部７のモータ駆動部７５（図８）により、独立して制御可能となっている。従って、モータ２３ａ、２３ｂは、それぞれ独立に、任意の回転数を発生できる。その結果、主輪２１ａ、２１ｂは、それぞれ独立に、回転数の制御が可能である。
モータ２３ａ、２３ｂとしては、たとえば、サーボモータ及び／又はブラシレスモータなどの電動モータを用いることができる。
このように、独立に回転速度を制御可能な２つの主輪２１ａ、２１ｂを有する走行部２は、「対向二輪差動型の走行部」と呼ばれる。対向二輪差動型の走行部２の構造は、単純である。そして、後述するように、予定走行経路データ（後述）を、走行部２の走行性能に基づいて加工することにより、対向二輪差動型の走行部２であっても、教示された予定走行経路をより忠実に再現しつつ、台車部１（自律走行台車１００）を走行できる。
【００３０】
（３）検出部の構成
次に、検出部３の構成について、図１を用いて説明する。検出部３は、自律走行台車１００の走行経路周辺の障害物及び壁などを検出し、障害物及び壁などの位置情報を出力する。そのため、検出部３は、前方検出器３１と、後方検出器３３と、を有する。前方検出器３１は、自律走行台車１００の前方にある障害物及び壁などを検出する。後方検出器３３は、自律走行台車１００の後方にある障害物及び壁などを検出する。また、前方検出器３１と後方検出器３３は、自律走行台車１００と障害物及び壁などとの間の距離及び、自律走行台車１００から見た障害物及び壁などが存在する方向に関する情報などを含む信号を出力する。これにより、検出部３は、自律走行台車１００から見た障害物及び壁などの相対的な位置情報を、制御部７に出力できる。
検出部３の前方検出器３１及び後方検出器３３としては、例えば、その検出範囲として１８０°以上のレーザレンジファインダ（Ｌａｓｅｒ  Ｒａｎｇｅ  Ｆｉｎｄｅｒ、ＬＲＦ）などを用いることができる。
【００３１】
（４）操作部の構成
次に、操作部５の構成について、図２を用いて説明する。図２は、操作部５の構成を示す図である。操作部５は、操作ハンドル５１ａ、５１ｂと、設定部５３と、表示部５５と、インターフェース５７と、筐体５９と、を備える。
操作ハンドル５１ａ、５１ｂは、それぞれ、筐体５９の左右に回動可能に取り付けられている。また、操作ハンドル５１ａ、５１ｂは、インターフェース５７と信号送受信可能に接続されている。これにより、操作ハンドル５１ａ、５１ｂの回動量（操作量）及び回動方向は、インターフェース５７において電気信号に変換され、制御部７に入力される。そして、制御部７に入力された操作ハンドル５１ａ、５１ｂの回動量及び回動方向に基づき、走行部２のモータ２３ａ、２３ｂが制御される。
また、操作ハンドル５１ａを進行方向への走行速度を指示するための入力インターフェースとし、操作ハンドル５１ｂを操舵角を指示するための入力インターフェースとしてもよい。
【００３２】
これにより、操作者は、教示走行モードの実行時に操作ハンドル５１ａ、５１ｂを操作することにより、自律走行台車１００に所望の走行経路（予定走行経路）を走行させることができる。
また、操作者は、操作ハンドル５１ａ、５１ｂに適切な外力を加えることによっても、自律走行台車１００を操作できる。このとき、例えば、自律走行台車１００が前方方向に走行している場合において、操作ハンドル５１ａに自律走行台車１００の進行方向とは逆方向の外力を加えることにより、自律走行台車１００を進行方向に対して左方向に方向転換できる。
【００３３】
設定部５３は、インターフェース５７に接続されている。設定部５３は、自律走行台車１００の走行モードを、再現走行モード、又は、教示走行モードのいずれかに切り替える。そして、設定部５３において設定された走行モードが、インターフェース５７を介して、制御部７の切替部７７（図３）に入力される。また、設定部５３は、自律走行台車１００のその他の各種設定を設定可能となっていてもよい。
設定部５３は、例えば、自律走行台車１００の走行モード及び各種設定などを行うためのスイッチ又は／及びキーボードなどにより構成できる。又は、設定部５３は、タッチパネルとして構成され、表示部５５と一体に形成されていてもよい。
【００３４】
表示部５５は、インターフェース５７に接続されている。表示部５５は、インターフェース５７を介して、制御部７から自律走行台車１００の各種設定及び位置情報などの情報を、読み出して表示する。表示部５５としては、液晶ディスプレイなどのディスプレイを用いることができる。また、上記のように、設定部５３と表示部５５とを一体に形成する場合は、表示部５５（と設定部５３）として、タッチパネル機能付きディスプレイを用いることができる。
【００３５】
インターフェース５７は、制御部７に接続されている。インターフェース５７は、操作ハンドル５１ａ、５１ｂの回動量、回動方向、及び設定部５３のスイッチ及び／又はキー入力などを電気信号に変換し、制御部７へ出力する。また、インターフェース５７は、操作者の指示などに応じて、制御部７から自律走行台車１００に関する情報を読み出して、表示部５５に表示する。
従って、インターフェース５７としては、マイコンボードを用いることができる。マイコンボードは、例えば、操作ハンドル５１ａ、５１ｂの回動量、回転方向、及び設定部５３における設定状態を電気信号に変換する信号変換器と、表示部５５に情報を表示するための表示部駆動回路と、制御部７と信号を送受信するための通信インターフェースと、を備えている。
【００３６】
（５）制御部の構成
Ｉ．制御部の全体構成
次に、制御部７の全体構成について図３を用いて説明する。図３は、制御部７の全体構成を示す図である。
なお、制御部７は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ハードディスク装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、記憶媒体読み出し装置などにより構成される記憶装置と、信号変換を行うインターフェースなどと、を備えたマイコンシステムなどにより実現できる。また、以下に示す制御部７の各部の機能の一部又は全部は、プログラムとして実現されていてもよい。さらに、当該プログラムは、マイコンボードの記憶装置に記憶されていてもよい。又は、制御部７の各部の機能の一部又は全部は、カスタムＩＣなどにより実現されていてもよい。
制御部７は、教示部７１と、位置推定部７２と、記憶部７３と、予定走行経路処理部７４と、モータ駆動部７５と、障害物情報取得部７６と、切替部７７と、を有する。
【００３７】
教示部７１は、教示走行モードの実行時に、操作者が操作部５を用いて自律走行台車１００を操作することにより通過した位置に関する情報を所定の時間（教示データ取得時間）間隔にて取得する。そして、教示部７１は、取得した位置に関する情報を、自律走行台車１００が走行する移動平面を表現した座標系（以後、移動座標と呼ぶことにする）上の座標値に変換する。さらに、教示部７１は、座標変換された位置に関する情報を記憶部７３（後述）に記憶する。ここで、教示部７１において、上記の移動座標上の座標値に変換された位置に関する情報のことを、「サブゴール点」と呼ぶことにする。
【００３８】
また、教示部７１は、教示走行モードの実行時に、自律走行台車１００の走行開始位置から、操作者が自律走行台車１００の走行を停止させる（教示走行モードの終了、あるいは、走行終了位置に到達する）まで、サブゴール点の取得を継続する。この結果、教示部７１は、走行開始位置から走行終了位置までに取得したサブゴール点の集合体を、記憶部７３に記憶する。
【００３９】
このように、教示走行モードの実行時に、操作者の操作により自律走行台車１００が通過した位置を座標値の集合体として取得し記憶することにより、操作者の操作により教示された自律走行台車１００の走行経路（予定走行経路）を記憶部７３に記憶できる。従って、教示部７１が取得したサブゴール点の集合体を、予定走行経路データと呼ぶことにする。
【００４０】
なお、教示部７１は、サブゴール点を取得するときに、当該サブゴール点における自律走行台車１００の姿勢情報を取得し、記憶部７３に記憶してもよい。この場合、予定走行経路データは、サブゴール点の集合体と、各サブゴール点に関連づけられた台車部１（自律走行台車１００）の姿勢情報の集合体となる。
ここで、自律走行台車１００の姿勢とは、例えば、図４に示すように、台車部１（自律走行台車１００）の中心から台車部１の前方方向に伸びる基準軸と、移動座標のｘ軸とがなす角度θとして定義される。
【００４１】
さらに、サブゴール点を取得する際に、当該サブゴール点と、サブゴール点を取得した時間と、を関連付けて記憶部７３に記憶してもよい。このとき、予定走行経路データは、サブゴール点を取得した時間の集合体と、当該時間に関連づけられたサブゴール点の集合体とにより構成される。
【００４２】
位置推定部７２は、走行環境（移動平面上）における台車部１（自律走行台車１００）の位置を所定の制御周期毎に推定する。位置推定部７２は、例えば、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）法などを用いて、自律走行台車１００の移動平面上における位置を推定できる。
位置推定部７２は、検出部３において取得された自律走行台車１００から見た障害物及び壁などの相対的な位置情報を、移動座標上の座標値へと変換する。そして、位置推定部７２は、検出部３の前方検出器３１及び後方検出器３３が検出した障害物及び壁などの位置情報に基づいて、自律走行台車１００の周囲の移動平面の地図情報（ローカルマップと呼ぶことにする）を作成する。また、位置推定部７２は、移動平面の地図情報（環境地図と呼ぶことにする）を記憶部７３に記憶している。そして、位置推定部７２は、環境地図とローカルマップとを比較して、自律走行台車１００が移動平面のどの位置に存在するかを推定する。
【００４３】
また、位置推定部７２は、モータ２３ａ、２３ｂの回転数に基づいても、自律走行台車１００の位置を推定できるようになっている。そのため、モータ２３ａ、２３ｂの出力回転軸には、それぞれ、軸の回転数を測定する装置が取り付けられている。本実施形態においては、モータ２３ａ、２３ｂの出力回転軸には、それぞれ、エンコーダ２３１ａ、２３１ｂ（図８）が取り付けられている。このように、検出部３による位置推定と、モータ２３ａ、２３ｂの回転数に基づいた位置推定とを組み合わせることにより、互いの位置推定結果を相補できる。その結果、検出部３のみ、又は、モータ２３ａ、２３ｂの回転数のみに基づく位置推定よりも、さらに精度のよい位置の推定ができる。
【００４４】
記憶部７３は、制御部７がマイコンシステムにより実現されている場合は、マイコンシステムの記憶装置（あるいは、記憶装置の記憶領域の一部）に対応するものである。記憶部７３は、自律走行台車１００の各種設定、予定走行経路データ、障害物及び壁などの位置情報、などの情報を記憶する。また、制御部７の各部の機能の一部又は全部がソフトウェアにより実現されているとき、記憶部７３は、当該ソフトウェアを記憶してもよい。
【００４５】
予定走行経路処理部７４は、自律走行台車１００が再現走行モードの実行時に予定走行経路を忠実に再現して走行できるように、教示走行モードの実行時に作成された予定走行経路データを加工する。
教示走行モードの実行時に作成された予定走行経路データには、検出部３にて取得された位置情報と実際の位置情報との間の誤差及び、モータ２３ａ、２３ｂの回転数を測定する装置により測定されたモータの回転数と実際のモータの回転数との間の誤差などを含んだサブゴール点が記憶されることがよくある。これらの誤差を含んだサブゴール点により、教示走行モードの実行時に作成された予定走行経路データには、自律走行台車１００が再現よく走行できない走行経路が含まれることがある。
従って、予定走行経路処理部７４は、自律走行台車１００が再現よく走行可能な走行経路のみを含んだ予定走行経路データを作成（あるいは、予定走行経路データの加工）する。これにより、自律走行台車１００は、再現走行モードの実行時に、操作者により教示された予定走行経路を、予定走行経路からずれることなく忠実に再現走行できる。
なお、予定走行経路処理部７４の詳細な構成及び動作については、後述する。
【００４６】
モータ駆動部７５は、モータ２３ａ、２３ｂに接続されている。これにより、モータ駆動部７５は、モータ２３ａ、２３ｂを制御できる。
モータ駆動部７５は、操作部５と信号送受信可能に接続され、教示走行モードの実行時には、操作部５の操作ハンドル５１ａ、５１ｂの回動量及び／又は回動方向に基づき、モータ２３ａ、２３ｂを制御する。
一方、再現走行モードの実行時には、モータ駆動部７５は、記憶部７３に記憶された予定走行経路データに基づいて、モータ２３ａ、２３ｂの制御指令を作成する。そして、モータ駆動部７５は、作成された制御指令に基づいて、モータ２３ａ、２３ｂを制御する。
なお、モータ駆動部７５の詳細な構造及び動作については、後述する。
【００４７】
障害物情報取得部７６は、検出部３の前方検出器３１と後方検出器３３とに信号送受信可能に接続されている。障害物情報取得部７６は、前方検出器３１と後方検出器３３とから出力される信号に基づき、障害物及び壁などの位置情報を取得する。そして、障害物情報取得部７６は、必要に応じて、障害物及び壁などの位置情報を記憶部７３に記憶する。このとき、障害物情報取得部７６は、位置推定部７２に障害物及び壁などの位置情報を出力してもよい。そして、位置推定部７２が、障害物及び壁などの位置情報を移動座標上の座標値に変換して、障害物及び壁などの位置情報を記憶部７３に記憶してもよい。
【００４８】
切替部７７は、操作部５の設定部５３における走行モードの設定状態に基づいて、自律走行台車１００の走行モードを、再現走行モード、又は、教示走行モードのいずれかに切り替えて設定する。そして、制御部７の各部は、必要に応じて、切替部７７において設定された走行モードを参照可能となっている。
【００４９】
ＩＩ．予定走行経路処理部の構成
次に、予定走行経路処理部７４の構成について図５Ａ及び図５Ｂを用いて説明する。図５Ａは、予定走行経路処理部７４の基本的な構成を示す図である。予定走行経路処理部７４は、曲率算出部７４１と、サブゴール点処理部７４３と、を有する。
曲率算出部７４１は、予定走行経路データに含まれる複数のサブゴール点のうちの１のサブゴール点（注目サブゴール点）と、注目サブゴール点から見て予定走行経路データの前後に存在する所定の数のサブゴール点と、により形成される経路（部分予定走行経路と呼ぶ）の、注目サブゴール点における曲率半径（注目曲率半径）を算出する。
【００５０】
本実施形態において、曲率算出部７４１は、注目サブゴール点と、予定走行経路データにおける注目サブゴール点の直前のサブゴール点である第１サブゴール点と、予定走行経路データにおける注目サブゴール点の直後のサブゴール点である第２サブゴール点との、３つのサブゴール点を通る円、すなわち、部分予定走行経路を表現する円（注目円と呼ぶ）の半径を、注目サブゴール点における曲率半径（注目曲率半径）として算出する。
【００５１】
このように、部分予定走行経路が、注目サブゴール点と、第１サブゴール点と、第２サブゴール点の３つのサブゴール点により形成されることにより、曲率算出部７４１は、より簡単な計算で注目曲率半径を算出できる。また、サブゴール点処理部７４３（後述）は、より簡単な計算によりサブゴール点を移動できる。その結果、曲率算出部７４１及びサブゴール点処理部７４３の処理速度が向上する。
さらに、第１サブゴール点と第２サブゴール点とを、注目サブゴール点の直前又は直後のサブゴール点とすることにより、サブゴール点処理部７４３は、より少ない処理（注目サブゴール点を移動させる処理）回数にて注目曲率半径が第１の値となるように予定走行経路データを加工できる。
【００５２】
第１サブゴール点と第２サブゴール点が注目サブゴール点の直前又は直後でないサブゴール点であった場合、第１サブゴール点と第２サブゴール点よりも注目サブゴール点に近いサブゴール点が部分予定走行経路から外れた位置にあった場合、このようなサブゴール点については、サブゴール点の移動がなされない傾向にある（移動がなされても、その移動量が小さい）。
すなわち、第１サブゴール点と第２サブゴール点を、注目サブゴール点の直前又は直後でないサブゴール点とした場合、注目サブゴール点を移動させたとしても、予定走行経路中に注目曲率半径が第１の値以下の急峻な曲がりの走行経路が含まれてしまう確率がより高くなる。その結果、サブゴール点処理部７４３が、注目サブゴール点の移動を行う処理を、多数回実行してしまうことがある。
【００５３】
また、注目サブゴール点と、第１サブゴール点と、第２サブゴール点の３つのサブゴール点を通る注目円の半径を算出することにより、曲率算出部７４１は、より簡単に注目曲率半径を算出できる。
【００５４】
なお、注目サブゴール点と、第１サブゴール点と、第２サブゴール点と、を通る注目円の半径は、例えば、次のようにして算出できる。すなわち、移動座標上の座標（ｘ，ｙ）を通る円を表す式（ｘ−ａ）２＋（ｙ−ｂ）２＝Ｒ２（ａ：注目円の中心のｘ座標値、ｂ：注目円の中心のｙ座標値、Ｒ：注目円の半径）のｘ及びｙに、注目サブゴール点の移動座標上の座標値、第１サブゴール点の座標値、第２サブゴール点の座標値を代入して、変数がａ、ｂ、Ｒである３つの式を作成し、当該３つの式からなる連立方程式を解くことにより、注目円の半径Ｒ（すなわち、注目曲率半径）を算出できる。
【００５５】
または、注目サブゴール点と第１サブゴール点とを結ぶ線分の垂直二等分線と、注目サブゴール点と第２サブゴール点とを結ぶ線分の垂直二等分線との交点を算出（当該交点が、注目円の中心に対応する）し、当該交点と注目サブゴール点との距離を算出することによっても、注目円の半径Ｒを算出できる。
【００５６】
なお、上記に示すように、本実施形態において、曲率算出部７４１は、３つのサブゴール点を通る円（注目円と呼ぶ）の半径を、注目サブゴール点における曲率半径（注目曲率半径）として算出している。しかし、注目円を算出するための方法はこれに限られない。
例えば、部分予定走行経路を近似する円を注目円としてもよい。この場合、部分予定走行経路に含まれるサブゴール点数は３以上であってもよい。
この場合、曲率算出部７４１は、注目円を表す上記の式（ｘ−ａ）２＋（ｙ−ｂ）２＝Ｒ２を部分予定走行経路にフィッティングさせる処理を行い、上記式中のａ、ｂ、及びＲを算出する。部分予定走行経路はサブゴール点の座標値として表現されているので、注目円を部分予定走行経路にフィッティングさせる処理としては、例えば、最小二乗法などを用いることができる。
【００５７】
また、曲率算出部７４１は、注目曲率半径として、注目サブゴール点と、第１サブゴール点と、第２サブゴール点により形成される三角形の、注目サブゴール点における角度（注目点角度）を算出してもよい。なぜなら、注目点角度（ここでは、φと定義する）の大きさと、部分予定走行経路の注目サブゴール点における曲率（注目曲率半径の大きさ）とは対応しているからである。すなわち、図６に示すように、注目点角度φがφ１からφ３へと大きくなり、１８０°へと近づくにつれて、部分予定走行経路（図６中の太実線にて示した曲線）の注目サブゴール点における曲がりは緩やか（注目曲率半径は大きくなる）となる。なお、注目点角度φが１８０°（注目サブゴール点、第１サブゴール点、及び第２サブゴール点が直線上に並ぶ）となる場合、注目曲率半径は無限大となる。
このように、注目点角度φの大きさを算出することによっても、サブゴール点処理部７４３（後述）は、当該注目点角度φが第１の角度以下であるかどうかを判定することにより、注目サブゴール点における注目曲率半径が第１の値以下であるかどうかを判定できる。
【００５８】
なお、上記の注目サブゴール点における注目点角度φは、例えば、以下の式で表される余弦定理を用いて算出できる。以下の式において、注目点角度φは、図７に示した三角形における注目サブゴール点における角度、Ｃは注目サブゴール点に対向する辺の長さ、Ａ及びＢはその他の辺の長さである。
φ＝ｃｏｓ−１（（Ａ２＋Ｂ２−Ｃ２）／（２Ａ×Ｂ））
【００５９】
サブゴール点処理部７４３は、注目曲率半径が第１の値以下の場合に、注目曲率半径が第１の値よりも大きくなるように、サブゴール点を移動させる。
ここで、注目曲率半径の大小の判定の基準となる「第１の値」について説明する。サブゴール点処理部７４３において、「第１の値」は、走行部２を備える自律走行台車１００がどの程度の曲率であれば忠実に自律走行できるかにより決定される。
従って、「第１の値」としては、例えば、自律走行台車１００が忠実に自律走行可能な曲率の曲率半径のうち、最小の曲率半径（自律走行可能最小曲率半径と呼ぶことにする。）とすることが好ましい。
一方、「第１の値」を大きく設定しすぎると、自律走行台車１００は、教示された予定走行経路を忠実に再現して自律走行できなくなることもある。なぜなら、「第１の値」を大きく設定しすぎると、自律走行台車１００が十分通過可能であり本来通過しなくてはならないサブゴール点まで、サブゴール点処理部７４３が移動させてしまうためである。この場合、教示された本来の予定走行経路を走行可能であるにもかかわらず、自律走行台車１００は、再現走行モードの実行時に、教示された予定走行経路とは異なる走行経路を自律走行してしまう。
【００６０】
本実施形態において、サブゴール点処理部７４３は、注目サブゴール点と、第１サブゴール点と、第２サブゴール点と、を通る注目円の半径が第１の値以下であるかどうか判定することにより、注目曲率半径が第１の値以下であるかどうかを判定する。ここでは、注目円の半径が、部分予定走行経路の注目サブゴール点における曲率半径（注目曲率半径）とほぼ対応しているとして、注目曲率半径の大小の判断が行われている。
なお、曲率算出部７４１が注目点角度を算出する場合は、上記したように、サブゴール点処理部７４３は、注目点角度φが第１の角度以下であるかどうかを判定することにより、注目曲率半径が第１の値以下であるかどうかを判定する。
なお、曲率算出部７４１は、部分予定走行経路の状態などに応じて、注目円の半径Ｒを算出するか、注目点角度φを算出するかを選択できてもよい。この場合、サブゴール点処理部７４３も、曲率算出部７４１がいずれの値を算出したかに応じて、注目曲率半径の大小の判定を行う際に用いる基準を、注目円の半径Ｒにするか注目点角度φにするかを選択できるようになっている。
【００６１】
また、本実施形態において、サブゴール点処理部７４３は、注目サブゴール点、第１サブゴール点、第２サブゴール点の３点により形成される三角形の重心位置に、新たな注目サブゴール点を設定することにより、注目曲率半径が第１の値よりも大きくなるように注目サブゴール点を移動させる。これにより、より簡単に注目曲率半径を大きくするようにサブゴール点を移動できる。
また、部分予定走行経路が３つでない複数のサブゴール点で構成される場合は、注目サブゴール点とその前後の所定の数のサブゴール点から形成される多角形の重心位置に、新たな注目サブゴール点を設定してもよい。
【００６２】
さらに、サブゴール点処理部７４３は、注目サブゴール点とその前後の所定の数のサブゴール点から形成される多角形の重心位置に新たな注目サブゴール点を設定する際に、各サブゴール点に異なる値の重み付けを行った上で、多角形の重心位置を算出してもよい。これにより、サブゴール点処理部７４３は、より簡単な計算により、より計算回数を減少して、注目曲率半径が第１の値以上になるように、注目サブゴール点を移動できる。その結果、サブゴール点処理部７４３による、予定走行経路データに自律走行台車１００が走行可能な走行経路のみが含まれるように、予定走行経路データの加工を行う時間と計算負荷を減少できる。
【００６３】
また、図５Ｂに示すように、予定走行経路処理部７４は、データ圧縮処理部７４５をさらに有していてもよい。データ圧縮処理部７４５は、教示走行モードの実行時に作成された予定走行経路データに含まれるサブゴール点の数を減らす圧縮処理を行う。これにより、後述するように、予定走行経路データに含まれるノイズ（すなわち、予定走行経路から外れたサブゴール点）をある程度取り除くことができる。
また、データ圧縮処理部７４５によるサブゴール点を減らす処理は、曲率算出部７４１による注目曲率半径（注目円の半径、又は、注目点角度φ）の算出処理、及び、サブゴール点処理部７４３における処理の前に行われる。これにより、注目曲率半径の算出及び、サブゴール点の移動のための処理の前に、サブゴール点を減少でき、予定走行経路データに含まれるノイズを取り除ける。その結果、注目曲率半径の算出及び、サブゴール点の移動のための処理を減少できる。
【００６４】
データ圧縮処理部７４５は、例えば、予定走行経路データに含まれる連続する所定の数のサブゴール点の位置の平均値を算出し、当該平均値に対応する位置に圧縮後サブゴール点を設定することにより、サブゴール点の数を減らした圧縮後予定走行経路データを作成する。これにより、より簡単に予定走行経路データを圧縮処理できる。その結果、データ圧縮処理部７４５における処理速度を向上できる。
【００６５】
ＩＩＩ．モータ駆動部の構成
次に、モータ駆動部７５の構成について、図８を用いて説明する。図８は、モータ駆動部７５の構成を示す図である。
モータ駆動部７５は、操作部５と、記憶部７３と、切替部７７と信号送受信可能に接続されている。また、モータ駆動部７５は、モータ２３ａ、２３ｂと電気的に接続されている。さらに、モータ駆動部７５は、モータ２３ａ、２３ｂのそれぞれに備えられたエンコーダ２３１ａ、２３１ｂと信号送受信可能に接続されている。
モータ駆動部７５は、駆動切替部７５１と、再現走行指令部７５３と、モータ制御部７５５と、を有する。
【００６６】
駆動切替部７５１は、切替部７７と信号送受信可能に接続されている。また、駆動切替部７５１は、３つの端子ｄ、ｅ、ｆを有している。駆動切替部７５１は、切替部７７において教示走行モードが選択された場合、端子ｄと端子ｅとを接続する。また、駆動切替部７５１は、切替部７７において再現走行モードが選択された場合、端子ｅと端子ｆとを接続する。
その結果、駆動切替部７５１は、教示走行モードの実行時には、操作部５の操作ハンドル５１ａ、５１ｂの回動量及び回動方向を、モータ制御部７５５（後述）へと入力する。一方、駆動切替部７５１は、再現走行モードの実行時には、再現走行指令部７５３（後述）により作成された再現走行指令（後述）をモータ制御部７５５へと入力する。
【００６７】
再現走行指令部７５３は、記憶部７３と信号送受信可能に接続されている。また、再現走行指令部７５３は、駆動切替部７５１の端子ｆと接続されている。
再現走行指令部７５３は、再現走行モードの実行時に、記憶部７３に記憶された予定走行経路データに基づいて、モータ制御部７５５（後述）によりモータ２３ａ、２３ｂを制御するための再現走行指令を作成する。そして、再現走行指令部７５３は、再現走行モードの実行時に、再現走行指令をモータ制御部７５５に出力する。
【００６８】
モータ制御部７５５は、モータ２３ａ、２３ｂと電気的に接続されている。また、モータ制御部７５５は、モータ２３ａ、２３ｂのそれぞれに備えられたエンコーダ２３１ａ、２３１ｂと信号送受信可能に接続されている。さらに、モータ制御部７５５は、駆動切替部７５１の端子ｅと接続されている。
モータ制御部７５５は、教示走行モードの実行時には、駆動切替部７５１を介して、操作部５の操作ハンドル５１ａ、５１ｂの回動量及び回動方向が入力され、当該回動量及び回動方向に基づいて、モータ２３ａ、２３ｂを独立に制御する。一方、再現走行モードの実行時には、モータ制御部７５５は、駆動切替部７５１を介して、予定走行経路データに基づいて作成された再現走行指令が入力され、再現走行指令に基づいて、モータ２３ａ、２３ｂを制御する。
【００６９】
また、モータ制御部７５５は、モータ２３ａ、２３ｂを制御する際に、エンコーダ２３１ａ、２３１ｂにより測定されたモータ２３ａ、２３ｂの回転数及び回転量などをモニターしている。そして、モータ制御部７５５は、モータ２３ａ、２３ｂの回転数及び回転量などをフィードバックして、モータ２３ａ、２３ｂを制御している（フィードバック制御）。
そのため、モータ制御部７５５としては、フィードバック制御理論を用いたモータ制御装置などを用いることができる。
【００７０】
（６）自律走行台車の基本動作
次に、本実施形態に係る自律走行台車の基本動作について、図９Ａを用いて説明する。図９Ａは、自律走行台車の基本動作を示すフローチャートである。ここでは、図５Ｂに示したように予定走行経路処理部７４がデータ圧縮処理部７４５を備える自律走行台車１００の予定走行経路データの作成動作を例にとって説明する。
予定走行経路データの作成を開始すると、教示部７１が、自律走行台車１００を操作者が操作することにより自律走行台車１００が通過した予定走行経路の予定走行経路データを取得し、記憶部７３に記憶する（ステップＳ１）。
予定走行経路データを取得し、記憶部７３に記憶した後、予定走行経路処理部７４が記憶部７３から予定走行経路データを読み込む。そして、予定走行経路処理部７４は、予定走行経路データに含まれる走行経路（部分予定走行経路）の注目曲率半径が第１の値より大きくなるように、予定走行経路データを加工する（ステップＳ２）。
なお、加工された予定走行経路データは、加工された後に記憶部７３に記憶されてもよい。また、予定走行経路データを記憶部７３に記憶したままの状態で、予定走行経路処理部７４は予定走行経路データを加工してもよい。
【００７１】
また、上記のステップＳ２における予定走行経路データの加工は、自律走行台車１００から分離した、予定走行経路処理部７４と同等の機能を有する端末、例えば、予定走行経路処理部７４と同等の機能を有するプログラムが実行される他のコンピュータ端末などにおいて実行されてもよい。
この場合、例えば、ステップＳ１において予定走行経路データを取得後、予定走行経路データを、記憶部７３から、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続可能な記憶デバイス（例えば、ＵＳＢメモリー）などに転送し、転送した予定走行経路データを上記の他のコンピュータ端末などにさらに転送して、予定走行経路データの加工を実行する。そして、予定走行経路データの加工後、当該他のコンピュータ端末から、自律走行台車１００の記憶部７３に加工後の予定走行経路データを転送する。
これにより、自律走行台車１００を動作させつつ、他のコンピュータ端末において予定走行経路データの加工を同時に行うといった、効率のよい自律走行台車１００の運用が可能となる。
なお、ステップＳ１における予定走行経路データの取得方法、及び、ステップＳ２における予定走行経路データの加工方法については、後ほど説明する。
【００７２】
ステップＳ２における予定走行経路データの加工後、自律走行台車１００を自律走行させたい場合は、設定部５３などにより自律走行台車１００の走行モードを再現走行モードに切り替える。そして、自律走行台車１００を自律走行させる（ステップＳ３）。このとき、駆動切替部７５１は、端子ｅと端子ｆとを接続する。その結果、自律走行台車１００は、加工された圧縮後予定走行経路データ（後述）に基づいて自律走行可能となる。
【００７３】
具体的には、まず、自律走行台車１００のモータ駆動部７５が、加工された圧縮後予定走行経路データに含まれる圧縮後サブゴール点（後述）を、予め決められたモータ２３ａ、２３ｂの制御周期毎に記憶部７３から読み込む。
次に、再現走行指令部７５３が、読み込まれた圧縮後サブゴール点から、モータ２３ａ、２３ｂを制御するための制御指令（再現走行指令）を生成する。
そして、再現走行指令部７５３は、駆動切替部７５１を介して、生成した再現走行指令をモータ制御部７５５に送信する。この結果、モータ制御部７５５は、受信した再現走行指令に基づき、モータ２３ａ、２３ｂを制御する。
これにより、自律走行台車１００は、注目曲率半径が第１の値以下の部分予定走行経路を含まない予定走行経路を忠実に再現しながら自律走行できる。
【００７４】
Ｉ．予定走行経路データの取得方法
まず、図９ＡのステップＳ１における、本実施形態に係る自律走行台車１００における予定走行経路データの取得方法について、図９Ｂを用いて説明する。図９Ｂは、自律走行台車１００における予定走行経路データの取得方法を示すフローチャートである。
まず、予定走行経路データを取得するために、自律走行台車１００の走行モードを教示走行モードに設定する（ステップＳ１１）。走行モードの教示走行モードへの切替は、例えば、操作者が操作部５の設定部５３を操作することにより、実行される。
設定部５３により走行モードが教示走行モードへ切り替えられると、走行モードが教示走行モードとなったことが制御部７の切替部７７に通知される。そして、切替部７７は、モータ駆動部７５の駆動切替部７５１に対して、駆動切替部７５１の端子ｄと端子ｅとを接続するよう指令する。これにより、操作部５の操作ハンドル５１ａ、５１ｂの回動量及び回動方向に関する信号が、モータ制御部７５５に入力されるようになる。これにより、操作者は、操作ハンドル５１ａ、５１ｂの回動量及び回動方向などを調整することにより、自律走行台車１００を手動操作できる。
走行モードを教示走行モードに設定したタイミングにおいて、教示部７１は、教示データ取得時間を測定するためのタイマー（図示せず）を開始する。当該タイマーの機能は、制御部７を構成するコンピュータなどに備わった時計機能又はクロック発生装置などを用いて実現される。
【００７５】
走行モードを教示走行モードに設定後、操作者が自律走行台車１００を手動により操作する。操作者による手動操作中に、教示部７１は、あらかじめ決められた教示データ取得時間毎（所定の制御周期毎）にサブゴール点を取得し、記憶部７３に記憶する（ステップＳ１２）。サブゴール点を取得する際、教示部７１は、位置推定部７２に対して、現在の自律走行台車１００の移動座標上の位置（サブゴール点の座標）を推定するよう指令する。そして、位置推定部７２は、当該指令に対して、座標値により表現された位置（サブゴール点）を教示部７１に出力する。そして、教示部７１は、出力されたサブゴール点を記憶部７３に記憶する。
サブゴール点を記憶部７３に記憶する際、すでにサブゴール点が記憶部７３に記憶されている場合には、教示部７１は、記憶されているサブゴール点の末尾に、新たに取得したサブゴール点を追加する。このようにして、サブゴール点の集合体、すなわち、予定走行経路データが記憶部７３に記憶される。
【００７６】
なお、特に予定走行経路データに対して圧縮処理を行う場合、教示データ取得時間は、再現走行モードの実行時に走行部２を制御する制御間隔の１／ｍ（ｍ：１より大きい整数）倍以下であることが好ましい。これにより、再現走行モードの実行時における操作部５の制御間隔の間に少なくともｍ個のサブゴール点が取得される。
そして、後述するように、少なくともｍ個のサブゴール点を平均し平均値を新たなサブゴール点とすることにより予定走行経路データの圧縮処理を行うことにより、予定走行経路データに含まれるノイズの量を低減できる。
【００７７】
なお、上記の教示データ取得時間は、走行部の制御間隔などを考慮して適切な時間が選択される。教示データ取得時間が長すぎる場合、予定走行経路データ中のサブゴール点密度（予定走行経路の単位長さあたりのサブゴール点数）が低くなる。その結果、圧縮後予定走行経路データ（後述）により表現される圧縮後予定走行経路が、本来の予定走行経路とは異なる形状となってしまう場合がある。すなわち、データ圧縮処理部７４５における圧縮処理により形成される圧縮後予定走行経路が、予定走行経路を再現できなくなる場合がある。
一方、教示データ取得時間が短すぎる場合、予定走行経路データ中のサブゴール点密度は大きくなるが、制御部７（特に、教示部７１及び位置推定部７２）の教示データの取得を行うための処理負荷が増加する。その結果、教示走行モードの実行時におけるモータ駆動部７５によるモータ制御に遅れが生じるなどの影響が生じることがある。
また、教示データ取得時間を短くして高いサブゴール点密度の予定走行経路データを作成した場合、データ圧縮処理部７４５のデータ圧縮処理を多数回行う必要がある。それに加えて、圧縮後予定走行経路データに対する、注目曲率半径の算出及びサブゴール点の移動を行う処理も、多数回行う必要がある。その結果、予定走行経路データの加工処理に時間がかかる。
【００７８】
サブゴール点を取得後、教示部７１は、次のサブゴール点の取得までの間に、操作者の手動操作による予定走行経路の教示が終了したかどうかを確認する（ステップＳ１３）。ここで、予定走行経路の教示が終了したかどうかの判断は、例えば、予定走行経路の教示が終了したことを教示部７１に通知するスイッチ（図示せず）を操作部５に設けて、操作者が当該スイッチを操作することにより、予定走行経路の教示が終了したことを通知してもよい。
または、操作ハンドル５１ａ、５１ｂの回動量が０（操作されていない）であることを一定時間検知したときに、予定走行経路の教示が終了したと、教示部７１が判断してもよい。
その他、操作者が自律走行台車１００の操作を終了したことを検出する他の手段により、予定走行経路の教示が終了したかどうかを判断できる。
【００７９】
操作者の手動操作による予定走行経路の教示が終了したと判断した場合（ステップＳ１３において、「Ｙｅｓ」の場合）、教示部７１は、教示走行モードの実行を停止し（ステップＳ１４）、予定走行経路データの取得を終了する。
【００８０】
一方、操作者の手動操作による予定走行経路の教示が継続していると判断した場合（ステップＳ１３において、「Ｎｏ」の場合）、ステップＳ１２に戻り、サブゴール点の取得と記憶を継続する。これにより、教示部７１は、予定走行経路の教示が継続している限り、サブゴール点の取得と記憶とを継続できる。すなわち、教示部７１は、走行開始位置から走行終了位置まで走行した際の予定走行経路を、サブゴール点の集合体として取得できる。
本実施形態においては、上記の図９Ｂに示したフローチャートによる手順により、図１０に示すような予定走行経路（予定走行経路データ）が、移動座標上の座標値の集合体として取得されたとする。
【００８１】
ＩＩ．予定走行経路データの加工方法
次に、図９ＡのステップＳ２における、予定走行経路データの加工方法について、図９Ｃ、図１０、図１１Ａ、図１１Ｂ、図１２Ａ及び図１２Ｂを用いて説明する。図９Ｃは、予定走行経路データの加工方法を示すフローチャートである。図１１Ａは、圧縮処理前の予定走行経路データによる予定走行経路を示す図である。図１１Ｂは、圧縮後予定走行経路データによる予定走行経路を示す図である。図１２Ａは、サブゴール点移動前の圧縮後予定走行経路データによる予定走行経路を示す図である。図１２Ｂは、サブゴール点移動後の圧縮後予定走行経路データによる予定走行経路を示す図である。
まず、データ圧縮処理部７４５が、得られた予定走行経路データに対して、圧縮処理を行い、圧縮後予定走行経路データを作成する（ステップＳ２１）。具体的には、データ圧縮処理部７４５は、予定走行経路データの連続する所定の数（本実施形態では、ｍとする）のサブゴール点の平均値を算出する。そして、データ圧縮処理部７４５は、当該平均値を、圧縮後予定走行経路データのサブゴール点（圧縮後サブゴール点）として設定する。
これにより、図１１Ｂに示された圧縮処理後の圧縮後予定走行経路データの圧縮後サブゴール点数は、図１１Ａに示された圧縮処理前の予定走行経路データのサブゴール点数の１／ｍに減少する。これにより、後述する注目曲率半径の算出及びサブゴール点の移動を行う処理数が減少する。
【００８２】
また、データ圧縮処理部７４５が予定走行経路データを圧縮処理することにより、図１１Ａの円１１〜円１３により囲まれた部分に存在する予定走行経路データのノイズ成分が、圧縮処理後の圧縮後予定走行経路データにおいて、ほとんどなくなっている。このように、データ圧縮処理部７４５が予定走行経路データに対して上記の圧縮処理を行うことにより、予定走行経路データに含まれるノイズ成分を減少できる。
【００８３】
予定走行経路データに対して圧縮処理を行い、圧縮後予定走行経路データを作成後、曲率算出部７４１が、圧縮後予定走行経路データに含まれる１つの圧縮後サブゴール点を注目サブゴール点として、注目曲率半径を算出する（ステップＳ２２）。
具体的には、曲率算出部７４１は、圧縮後予定走行経路データのｎ番目（ｎ：整数）の圧縮後サブゴール点を注目サブゴール点とし、直前の圧縮後サブゴール点であるｎ−１番目の圧縮後サブゴール点を第１サブゴール点とし、さらに、直後の圧縮後サブゴール点であるｎ＋１番目の圧縮後サブゴール点を第２サブゴール点とし、これら３つのサブゴール点を通る円（注目円）の半径Ｒを注目曲率半径として算出する。
【００８４】
また、ステップＳ２２において、曲率算出部７４１は、上記の余弦定理を用いた式などを用いて、注目サブゴール点、第１サブゴール点、及び第２サブゴール点により形成される三角形の、注目サブゴール点における角度（注目点角度φ）を算出してもよい。
さらに、曲率算出部７４１は、圧縮後予定走行経路データに、注目サブゴール点において算出された注目曲率半径（注目円の半径、又は／及び、注目点角度φ）を、当該注目サブゴール点に対応する圧縮後サブゴール点に関連づけて記憶しておいてもよい。これにより、後述するように、すべての圧縮後サブゴール点において、注目円の半径が第１の値より大きいか、又は／及び、注目点角度φが第１の角度より大きいかどうかを判断する際に、サブゴール点処理部７４３は圧縮後予定走行経路データを参照して当該判断処理を実行できる。
【００８５】
注目曲率半径を算出後、サブゴール点処理部７４３が、注目円の半径Ｒ（注目曲率半径）が第１の値以下であるかどうかを判定する（ステップＳ２３）。サブゴール点処理部７４３が、注目円の半径Ｒが第１の値以下であると判断した場合（ステップＳ２３において、「Ｙｅｓ」の場合）、ステップＳ２４に進む。一方、サブゴール点処理部７４３が、注目円の半径が第１の値より大きいと判断した場合（ステップＳ２３において、「Ｎｏ」の場合）、ステップＳ２５に進む。
【００８６】
また、曲率算出部７４１が注目点角度φを算出する場合、ステップＳ２３において、サブゴール点処理部７４３は、注目点角度φが第１の角度以下であるかどうかを判定する。この場合、注目点角度φが第１の角度以下であった場合に、ステップＳ２４に進む。そして、注目点角度φが第１の角度より大きい場合に、ステップＳ２５に進む。
【００８７】
ステップＳ２４において、サブゴール点処理部７４３は、注目円の半径Ｒ（注目曲率半径）が第１の値よりも大きくなるように（又は、注目点角度φが第１の角度よりも大きくなるように）、注目サブゴール点を移動させる。
【００８８】
具体的には、サブゴール点処理部７４３は、第１サブゴール点、注目サブゴール点、第２サブゴール点により構成される三角形の重心の位置に、注目サブゴール点を新たに移動させる。今、第１サブゴール点の座標値を（ｘｎ−１，ｙｎ−１）、注目サブゴール点の座標値を（ｘｎ，ｙｎ）、第２サブゴール点の座標値を（ｘｎ＋１，ｙｎ＋１）とした場合、新たな注目サブゴール点の座標値は、（（ｘｎ−１＋ｘｎ＋ｘｎ＋１）／３，（ｙｎ−１＋ｙｎ＋ｙｎ＋１）／３）となる。
上記のように、サブゴール点処理部７４３が注目サブゴール点の位置を移動させた後、ステップＳ２５に進む。
【００８９】
ステップＳ２５において、サブゴール点処理部７４３は、圧縮後予定走行経路データ中の全ての圧縮後サブゴール点を注目サブゴール点とし、全ての圧縮後サブゴール点において、注目円の半径（注目曲率半径）が第１の値以下であるか（又は、注目点角度φが第１の角度以下であるか）どうかの判断を行ったかどうかを判定する。
具体的には、例えば、圧縮後予定走行経路データが制御部７を構成するコンピュータにおいて扱える電子データであった場合、サブゴール点処理部７４３は、ステップＳ２３又はステップＳ２４における処理の後に、圧縮後予定走行経路データの「Ｅｎｄ  ｏｆ  ｆｉｌｅ」の識別子を検出したかどうかにより、全ての圧縮後サブゴール点において注目曲率半径の大小の判断を実行したかどうかを判定できる。
【００９０】
全ての圧縮後サブゴール点において注目曲率半径の大小の判断を実行していないと判断した場合（ステップＳ２５において、「Ｎｏ」の場合）、ステップＳ２２に戻り、次の注目サブゴール点において、注目曲率半径の算出と、必要に応じて、圧縮後サブゴール点の移動を実行する。
具体的には、圧縮後予定走行経路データのｎ＋１番目の圧縮後サブゴール点を注目サブゴール点とし、ｎ番目の圧縮後サブゴール点を第１サブゴール点とし、ｎ＋２番目の圧縮後サブゴール点を第２サブゴール点として、上記ステップＳ２２〜ステップＳ２４までの処理を行う。そして、上記ステップＳ２２〜ステップＳ２４までの処理を、圧縮後予定走行経路データの全ての圧縮後サブゴール点に対して実行する。
なお、圧縮後予定走行経路データの１番目の圧縮後サブゴール点、及び、最後の圧縮後サブゴール点に対しては、上記Ｓ２２〜ステップＳ２４までの処理は行わない。なぜなら、１番目の圧縮後サブゴール点においては第１サブゴール点を設定できず、最後の圧縮後サブゴール点においては第２サブゴール点を設定できないからである。
【００９１】
一方、サブゴール点処理部７４３が、全ての圧縮後サブゴール点において注目曲率半径の大小の判断を実行したと判断した場合（ステップＳ２５において、「Ｙｅｓ」の場合）、ステップＳ２６に進む。
このように、圧縮後予定走行経路データの全ての圧縮後サブゴール点に対して、注目曲率半径の大小の判断と、必要に応じて注目サブゴール点の移動させる処理を行った後の圧縮後予定走行経路データを図１２Ｂに示す。図１２Ａに示した、上記注目サブゴール点を移動させる処理を行う前の圧縮後予定走行経路データと比較して、特に、円１４及び円１５にて示した「曲がりのきつい」（曲率半径の小さい）部分予定走行経路が、図１２Ｂに示す圧縮後予定走行経路データにおいてはより緩やかな曲がりを有した部分予定走行経路に変化していることが分かる。
【００９２】
ステップＳ２６において、サブゴール点処理部７４３は、上記ステップＳ２２〜ステップＳ２５までの処理を行った後の圧縮後予定走行経路データに、注目円の半径（注目曲率半径）が第１の値以下（又は、注目点角度φが第１の角度以下）の部分予定走行経路が存在するかどうか判断する。ステップＳ２２〜ステップＳ２５までの処理を行った後の圧縮後予定走行経路データに、注目曲率半径が第１の値以下である部分予定走行経路が存在しないと判断された場合（ステップＳ２６において、「Ｎｏ」の場合）、予定走行経路データの加工処理を終了する。
【００９３】
一方、ステップＳ２２〜ステップＳ２５までの処理を行った後の圧縮後予定走行経路データに、注目曲率半径が第１の値以下である部分予定走行経路が存在すると判断された場合（ステップＳ２６において、「Ｙｅｓ」の場合）、ステップＳ２２に戻り、圧縮後予定走行経路データに対して、上記ステップＳ２２〜ステップＳ２５の処理を再び実行する。そして、注目曲率半径が第１の値以下である部分予定走行経路が、圧縮後予定走行経路データに存在しなくなるまで、上記ステップＳ２２〜ステップＳ２５を繰り返す。
【００９４】
図１３Ａ〜図１３Ｃに、注目サブゴール点を移動した回数毎の圧縮後予定走行経路データの変遷を示す。図１３Ａは、サブゴール点の移動を１回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図である。図１３Ｂは、サブゴール点の移動を２回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図である。図１３Ｃは、サブゴール点の移動を３回実行した後の圧縮後予定走行経路データによる予定走行経路を示す図である。上記ステップＳ２２〜ステップＳ２５を繰り返す回数（注目サブゴール点を移動させる回数）が１回から３回まで増加するに従い、特に、図１３Ａ〜図１３Ｃの円１６及び長方形１７にて囲まれた走行経路の曲がりが緩やかになっている（すなわち、曲率半径が大きくなっている）ことが分かる。
【００９５】
また、図１１Ａ〜図１３Ｃに示すように、上記の予定走行経路データの加工を行っても、予定走行経路の走行開始位置（図１１Ａ〜図１３Ｃにおいては、移動座標上の原点Ｏに存在）と、予定走行経路の走行終了位置（図１１Ａ〜図１３Ｃにおいては、予定走行経路の終端のうち、原点Ｏに存在しない方の終端に対応）とを結ぶ直線のような予定走行経路は形成されていない。すなわち、上記の予定走行経路データの加工方法において、例えば、走行開始位置から走行終了位置へ最短で到達する走行経路のように、本来教示された予定走行経路とは異なる走行経路は形成されない。
従って、上記の予定走行経路データの加工方法を用いることにより、予定走行経路データ中に曲率半径が第１の値以下となる部分予定走行経路を含むことなく、自律走行台車１００が教示された予定走行経路を忠実に自律的に走行可能な予定走行経路データを作成できる。
【００９６】
（７）実施形態の効果
以下に、本実施形態の効果について述べる。
自律走行台車１００（自律走行台車の一例）は、台車部１（台車部の一例）と、走行部２（走行部の一例）と、教示部７１（教示部の一例）と、曲率算出部７４１（曲率算出部の一例）と、サブゴール点処理部７４３（サブゴール点処理部の一例）と、を備える。走行部２は、台車部１に搭載される。そして、走行部２は、台車部１を走行させる。教示部７１は、教示走行モード（教示走行モードの一例）の実行時に、サブゴール点（サブゴール点の一例）を取得する。そして、教示部７１は、予定走行経路（予定走行経路の一例）を表現する予定走行経路データ（予定走行経路データの一例）を、サブゴール点の集合体として記憶する。曲率算出部７４１は、部分予定走行経路（部分予定走行経路の一例）の、注目サブゴール点（注目サブゴール点の一例）における曲率半径である注目曲率半径（注目曲率半径）を算出する。サブゴール点処理部７４３は、注目曲率半径が第１の値（第１の値の一例）以下の場合に、注目曲率半径が第１の値以上になるように、サブゴール点を移動させる処理を行う。
【００９７】
自律走行台車１００では、まず、教示走行モードを実行して、操作者（操作者の一例）の操作による自律走行台車１００の走行経路（予定走行経路）を、予定走行経路データとして取得し記憶する。そして、自律走行台車１００は、取得した予定走行経路データに含まれる注目サブゴール点と、注目サブゴール点の前後に存在する所定の数のサブゴール点とにより形成される部分予定走行経路の、注目サブゴール点における曲率半径（注目曲率半径）を算出する。さらに、自律走行台車１００は、注目曲率半径が第１の値以下である場合に、注目曲率半径が第１の値以上になるようにサブゴール点を移動させる。
【００９８】
これにより、自律走行台車１００は、教示走行モードを実行した直後に記憶された予定走行経路データに、忠実に再現走行不能な走行経路が含まれている場合でも、予定走行経路データに自律走行台車１００が忠実に再現走行可能な走行経路のみを含むような、予定走行経路データを作成できる。なぜなら、予定走行経路データ中に注目曲率半径が第１の値以下の部分予定走行経路が存在する場合、サブゴール点処理部７４３が、注目曲率半径が第１の値以上になるようにサブゴール点を移動させるからである。その結果、自律走行台車１００は、再現走行モードの実行時に、予定走行経路から外れることなく、予定走行経路を忠実に再現走行できる。
【００９９】
本実施形態では、部分予定走行経路は、注目サブゴール点と、注目サブゴール点の直前の第１サブゴール点と、注目サブゴール点の直後の第２サブゴール点と、含む３つのサブゴール点により形成されている。これにより、より簡単な計算で注目曲率半径を算出できる。そして、より簡単な計算によりサブゴール点を移動できる。その結果、曲率算出部７４１及びサブゴール点処理部７４３の処理速度が向上する。
また、第１サブゴール点と第２サブゴール点とを、注目サブゴール点の直前又は直後のサブゴール点とすることにより、サブゴール点処理部７４３は、より少ない処理（注目サブゴール点を移動させる処理）回数にて注目曲率半径が第１の値となるように予定走行経路データを加工できる。
【０１００】
また、曲率算出部７４１は、部分予定走行経路を形成する３つのサブゴール点により形成される三角形の、注目サブゴール点における注目点角度φ（注目点角度の一例）を算出している。この場合、サブゴール点処理部７４３は、注目点角度φが第１の角度（第１の角度の一例）以下であると判定した場合に、注目曲率半径が第１の値以下であると判断している。
注目サブゴール点を含む３つのサブゴール点により形成される三角形における注目点角度φは、注目曲率半径と対応している。そのため、簡単な計算により算出可能な注目点角度φを、注目曲率半径の大小の判断に用いることができる。その結果、より簡単な計算により、注目曲率半径の大小を判断できる。その結果、曲率算出部７４１及びサブゴール点処理部７４３における処理速度が向上する。
【０１０１】
曲率算出部７４１は、部分予定走行経路を近似又は表現する円である注目円（注目円の一例）の半径を算出している。また、この場合、サブゴール点処理部７４３は、注目円の半径が第１の値以下であると判定した場合に、注目曲率半径が第１の値以下であると判断している。部分予定走行経路を注目円で近似又は表現することにより、より簡単な計算方法により注目曲率半径を算出できる。
【０１０２】
サブゴール点処理部７４３は、注目サブゴール点を、部分予定走行経路を形成するサブゴール点により形成される多角形の重心に移動させることにより、部分予定走行経路の注目曲率半径を増加させている。
これにより、より簡単な計算により、かつ、より計算回数を減少して、注目曲率半径が第１の値以上になるように、注目サブゴール点を移動できる。その結果、予定走行経路データに自律走行台車１００が走行可能な走行経路のみが含まれるよう、予定走行経路データの加工を行う時間と計算負荷を減少できる。
【０１０３】
自律走行台車１００は、データ圧縮処理部７４５（データ圧縮処理部の一例）をさらに備えている。データ圧縮処理部７４５は、予定走行経路データに含まれるサブゴール点の数を減らして圧縮後予定走行経路データ（圧縮後予定走行経路データの一例）を作成する。
これにより、予定走行経路データに含まれるノイズを取り除ける。
【０１０４】
データ圧縮処理部７４５は、連続する所定の数のサブゴール点の位置の平均値を算出し、平均値に対応する位置に圧縮後サブゴール点（圧縮後サブゴール点の一例）を設定する処理を行っている。
これにより、より簡単に予定走行経路データを圧縮処理できる。その結果、データ圧縮処理部７４５における処理速度を向上できる。
【０１０５】
曲率算出部７４１における処理、及び、サブゴール点処理部７４３における処理は、圧縮後予定走行経路データに対して行わる。
これにより、注目曲率半径の算出及び、サブゴール点の移動のための処理を減少できる。
【０１０６】
自律走行台車１００は、台車部１の走行環境における位置を所定の制御周期毎に推定する位置推定部７２（位置推定部の一例）をさらに備えている。
これにより、自律走行台車１００は、精度よく走行環境における自律走行台車１００の位置を推定できる。
【０１０７】
（８）他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
（Ａ）予定走行経路データの加工方法についての他の実施形態
上記の第１実施形態において、予定走行経路に第１の値以下の曲率半径を有するサブ走行予定経路が含まれないよう予定走行経路データの加工するとき、３つのサブゴール点により形成される三角形の重心位置に注目サブゴール点を移動させる方法により、予定走行経路データの加工を行っていた。しかし、予定走行経路データの加工方法は、上記の第１実施形態において説明した方法に限られない。例えば、以下に示すような方法を採用できる。
【０１０８】
（ａ）予定走行経路に第１の値以下の曲率半径を有するサブ走行予定経路が含まれないよう予定走行経路データの加工する方法として、３つのサブゴール点により形成されるサブ走行予定経路の、注目サブゴール点以外の２点（すなわち、サブ走行予定経路の始点と終点）を結ぶ直線と注目サブゴール点との距離を短縮するよう、注目サブゴール点を移動してもよい。
具体的には、図１４に示すように、例えば、３つのサブゴール点Ｄ、Ｅ、Ｆ（Ｅを注目サブゴール点とする）のうちの点Ｄと点Ｆを通る直線への注目サブゴール点Ｅからの垂線を定義する。そして、注目サブゴール点Ｅと比較して、当該垂線上の点Ｄと点Ｆを通る直線により近い位置に、新たな注目サブゴール点Ｅ’を設定（注目サブゴール点を移動）する。
この場合、例えば、注目サブゴール点Ｅと、上記垂線と点Ｄと点Ｆを通る直線との交点Ｇとの中点に、新たな注目サブゴール点Ｅ’を設定してもよい。これにより、比較的簡単な計算により、新たな注目サブゴール点Ｅ’を算出できる。
【０１０９】
（ｂ）予定走行経路に第１の値以下の曲率半径を有するサブ走行予定経路が含まれないよう予定走行経路データの加工する他の方法として、複数のサブゴール点を制御点とするベジエ曲線上に、新たなサブゴール点を設定する方法を用いてもよい。
具体的には、図１５に示すように、まず、４つのサブゴール点Ｈ、Ｉ、Ｊ、Ｋにおいて、点Ｈと点Ｉを結ぶ線分ＨＩ、点Ｉと点Ｊを結ぶ線分ＩＪ、点Ｊと点Ｋを結ぶ線分ＪＫを定義する。そして、線分ＨＩ、線分ＩＪ、及び線分ＪＫをｔ：１−ｔ（０＜ｔ＜１）に分割する点をそれぞれ、点Ｈ’、点Ｉ’、点Ｊ’とする。さらに、点Ｈ’と点Ｉ’を結ぶ線分をｔ：１−ｔに分割する点を点Ｈ’’、点Ｉ’と点Ｊ’を結ぶ線分をｔ：１−ｔに分割する点を点Ｉ’’とする。そして、さらに点Ｈ’’と点Ｉ’’を結ぶ線分をｔ：１−ｔに分割する点を点Ｈ’’’とする。
このとき、ｔの値を０から１まで連続的に変化させると、点Ｈ’’’はベジエ曲線を軌跡として描画する。従って、点Ｈ’’’において、ｔを０、ｔ１、ｔ２、１（０＜ｔ１＜ｔ２＜１）と離散的に変化させることにより、当該ベジエ曲線上に新たな４つのサブゴール点を設定できる。なお、ｔ＝０の時は、点Ｈ’’’は点Ｈと一致し、ｔ＝１の時は、点Ｈ’’’は点Ｋと一致する。
ベジエ曲線上に新たなサブゴール点を設定する場合、部分予定走行経路を形成するサブゴール点数は３に限られない。また、一度に複数のサブゴール点を移動できる。その結果、サブゴール点を移動させるための計算量を減少できる。
【産業上の利用可能性】
【０１１０】
本発明は、対向二輪差動型などの単純な構造を有する走行部を有した自律走行台車の制御に広く適用できる。
【符号の説明】
【０１１１】
１００    自律走行台車
１        台車部
２        走行部
２１ａ、２１ｂ  主輪
２３ａ、２３ｂ  モータ
２３１ａ、２３１ｂ  エンコーダ
３        検出部
３１      前方検出器
３３      後方検出器
５        操作部
５１ａ、５１ｂ  操作ハンドル
５３      設定部
５５      表示部
５７      インターフェース
５９      筐体
７        制御部
７１      教示部
７２      位置推定部
７３      記憶部
７４      予定走行経路処理部
７４１    曲率算出部
７４３    サブゴール点処理部
７４５    データ圧縮処理部
７５      モータ駆動部
７５１    駆動切替部
７５３    再現走行指令部
７５５    モータ制御部
７６      障害物情報取得部
７７      切替部
８        補助輪部
８ａ、８ｂ  補助車輪
９        取付部材
１１〜１６  円
１７      長方形
Ａ、Ｂ、Ｃ  辺
Ｄ、Ｆ    サブゴール点
Ｅ        注目サブゴール点
Ｅ’      新たな注目サブゴール点
Ｇ        交点
Ｈ、Ｉ、Ｊ、Ｋ  サブゴール点
Ｈ’、Ｉ’、Ｊ’  点
Ｈ’’、Ｉ’’  点
Ｈ’’’    点（新たなサブゴール点）
Ｒ        注目円の半径
ｄ、ｅ、ｆ  端子
θ        角度
φ、φ１、φ２、φ３  注目点角度
【図１】
2015060388.tif 000003
【図２】
2015060388.tif 000004
【図３】
2015060388.tif 000005
【図４】
2015060388.tif 000006
【図５Ａ】
2015060388.tif 000007
【図５Ｂ】
2015060388.tif 000008
【図６】
2015060388.tif 000009
【図７】
2015060388.tif 000010
【図８】
2015060388.tif 000011
【図９Ａ】
2015060388.tif 000012
【図９Ｂ】
2015060388.tif 000013
【図９Ｃ】
2015060388.tif 000014
【図１０】
2015060388.tif 000015
【図１１Ａ】
2015060388.tif 000016
【図１１Ｂ】
2015060388.tif 000017
【図１２Ａ】
2015060388.tif 000018
【図１２Ｂ】
2015060388.tif 000019
【図１３Ａ】
2015060388.tif 000020
【図１３Ｂ】
2015060388.tif 000021
【図１３Ｃ】
2015060388.tif 000022
【図１４】
2015060388.tif 000023
【図１５】
2015060388.tif 000024