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