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