【解決手段】自律走行台車100は、台車部1と、走行部2と、教示部71と、曲率算出部74と、制御パラメータ調整部757と、を備える。走行部2は、台車部1に搭載される。また、走行部2は、台車部1を走行させる。教示部71は、教示走行モードの実行時に、サブゴール点P
の集合体として記憶する。曲率算出部74は、注目曲率半径Rを算出し記憶する。制御パラメータ調整部757は、再現走行モードの実行時に、曲率算出部74において算出された注目曲率半径Rに基づいて、走行部2の姿勢角フィードバック制御量を決定する制御パラメータK
操作者の操作により走行開始位置から走行終了位置まで走行した際の走行経路である予定走行経路を教示する教示走行モードと、前記予定走行経路を再現しながら自律的に走行する再現走行モードと、を実行する自律走行台車であって、
台車部と、
台車部に搭載され、前記台車部を走行させる走行部と、
前記教示走行モードの実行時に、前記走行開始位置から前記走行終了位置までに前記台車部が通過した、走行環境における位置に関する情報であるサブゴール点を取得し、前記予定走行経路を表現する予定走行経路データを前記サブゴール点の集合体として記憶する教示部と、
前記予定走行経路データに含まれる1の前記サブゴール点を注目サブゴール点とし、前記注目サブゴール点と、前記注目サブゴール点から見て前記予定走行経路データの前後に存在する所定の数の前記サブゴール点と、により形成される部分予定走行経路の、前記注目サブゴール点における曲率半径である注目曲率半径を算出し記憶する曲率算出部と、
前記再現走行モードの実行時に、前記曲率算出部において算出された前記注目曲率半径に基づいて、前記走行部の制御量を決定する制御パラメータを調整する制御パラメータ調整部と、
を備える自律走行台車。
前記制御量は、前記台車部の現在の姿勢を表す姿勢角と次の移動目標点における前記台車部の姿勢を表す姿勢角との差である姿勢角度差と、前記制御パラメータとの積に基づいて算出される、請求項1又は2に記載の自律走行台車。
前記予定走行経路データには、前記サブゴール点における前記姿勢角が、前記サブゴール点に関連づけられて記憶されている、請求項3又は4のいずれかに記載の自律走行台車。
前記部分予定走行経路は、前記注目サブゴール点と、前記注目サブゴール点よりも進行方向前方の前記サブゴール点である第1サブゴール点と、前記注目サブゴール点よりも進行方向後方の前記サブゴール点である第2サブゴール点と、の3点により形成される走行経路であり、
前記第1サブゴール点と前記第2サブゴール点は、前記注目サブゴール点から所定の距離以上離れている前記サブゴール点の中で前記注目サブゴール点に最も近い前記サブゴール点である、請求項1〜5のいずれかに記載の自律走行台車。
前記曲率算出部は、前記注目曲率半径として、前記部分予定走行経路に含まれる所定の数の前記サブゴール点を通る円である注目円の半径を算出する、請求項1〜6のいずれかに記載の自律走行台車。
走行部を備え、操作者の操作により走行開始位置から走行終了位置まで走行した際の予定走行経路を表現する予定走行経路データに基づいて自律的に走行する自律走行台車において用いられる予定走行経路データのデータ構造であって、
前記走行開始位置から前記走行終了位置までに前記自律走行台車が通過した、走行環境における位置に関する情報であるサブゴール点を座標値の集合体として記憶するサブゴール点座標値集合体記憶領域と、
前記サブゴール点座標値集合体記憶領域に記憶された1の前記サブゴール点を注目サブゴール点とし、前記注目サブゴール点と、前記予定走行経路において前記注目サブゴール点の前後にある所定の数の前記サブゴール点と、により形成される部分予定走行経路の前記注目サブゴール点における曲率半径である注目曲率半径を集合体として記憶する注目曲率半径集合体記憶領域と、
により構成され、
前記自律走行台車が前記予定走行経路を自律的に走行する時に、前記注目曲率半径集合体記憶領域に記憶された前記注目曲率半径に基づいて、前記走行部の制御量を決定する制御パラメータが調整される、
予定走行経路データのデータ構造。
前記サブゴール点における前記自律走行台車の姿勢に関する情報である姿勢角を集合体として記憶する姿勢情報集合体記憶領域をさらに有する、請求項10の予定走行経路データのデータ構造。
【発明を実施するための形態】
【0024】
1.第1実施形態
(1)自律走行台車の全体構成
まず、本実施形態に係る自律走行台車の全体構成について、
図1を用いて説明する。
図1は、自律走行台車の全体構成を示す図である。本実施形態の自律走行台車100は、操作者の操作により、走行開始位置から走行終了位置までの所望の予定走行経路を教示する教示走行モードと、予定走行経路を再現しながら走行開始位置から走行終了位置まで自律的に走行する再現走行モードと、を実行する。
自律走行台車100は、台車部1と、走行部2と、検出部3と、操作部5と、制御部7と、を備える。台車部1は、自律走行台車100の本体を構成する。走行部2は、台車部1に搭載されている。走行部2は、台車部1を走行させる。検出部3は、制御部7(後述)に信号送受信可能に接続されている。そして、検出部3は、障害物及び走行経路にある壁などを検出し、障害物及び壁などの位置情報を制御部7に出力する。操作部5は、台車部1の上部後方側に取付部材9を介して固定されている。また、操作部5は、制御部7に信号送受信可能に接続されている。操作部5は、操作者が自律走行台車100に予定走行経路を教示するとき(教示走行モードの実行時)、操作者により操作される。これにより、自律走行台車100の走行モードが教示走行モードの実行時に、自律走行台車100は、操作者による操作部5の操作に基づいて制御される。また、操作部5は、自律走行台車100の各種設定を行う。
【0025】
制御部7は、走行部2の第1モータ23a(後述)及び第2モータ23b(後述)に電気的に接続されている。また、制御部7には、検出部3が信号送受信可能に接続されている。さらに制御部7は、操作部5と信号送受信可能に接続されている。よって、制御部7は、教示走行モードの実行時には、操作者による操作部5の操作に基づいて、走行部2の第1モータ23a及び第2モータ23bを制御する。一方、予定走行経路を再現しながら自律的に走行する再現走行モードの実行時には、制御部7は、教示走行モードの実行時において教示された予定走行経路を表す予定走行経路データ500c(後述)に基づいて、走行部2の第1モータ23a及び第2モータ23bを制御する。
また、制御部7は、検出部3から得られる信号(後述)に基づいて、障害物及び壁などの位置情報を把握する。また、制御部7は、障害物及び壁などの位置情報に基づき、移動平面(走行環境)における自律走行台車100の位置を把握する。
なお、自律走行台車100の走行部2、検出部3、操作部5、及び制御部7の構成の詳細については、後述する。
【0026】
自律走行台車100は、補助輪部8をさらに備える。補助輪部8は、2つの補助車輪8a、8bを有する。2つの補助車輪8aと8bは、それぞれが独立に回転可能なように台車部1の後方底部に取り付けられている。補助輪部8を備えることにより、自律走行台車100は安定に、かつ、スムーズに移動できる。
なお、補助輪部8は、台車部1の後方底部に設けられることに限られず、台車部1の重心位置を考慮して台車部1の前方底面に設けられてもよい。
【0027】
(2)走行部の構成
次に、走行部2の構成について
図1を用いて詳細に説明する。走行部2は、第1主輪21a、第2主輪21bと、第1モータ23aと、第2モータ23bと、を有する。第1主輪21aは、台車部1の略中央部の前方方向左側に回転可能に設けられている。第2主輪21bは、第1主輪21aに対向するように、台車部1の略中央部の前方方向右側に回転可能に設けられている。
また、第1主輪21a及び第2主輪21bは、それぞれ、第1モータ23a及び第2モータ23bの出力回転軸に接続されている。これにより、第1主輪21aは第1モータ23aの回転に従って回転し、第2主輪21bは第2モータ23bの回転に従って回転する。
【0028】
第1モータ23a及び第2モータ23bは、制御部7に電気的に接続されている。第1モータ23a及び第2モータ23bは、それぞれ、制御部7のモータ駆動部75(後述)により、独立に制御可能となっている。従って、第1モータ23a及び第2モータ23bは、それぞれ独立に、任意の回転速度を発生できる。その結果、第1主輪21a及び第2主輪21bは、それぞれ独立に、回転速度の制御が可能である。
第1モータ23a及び第2モータ23bとしては、たとえば、サーボモータ及び/又はブラシレスモータなどの電動モータを用いることができる。
このように、独立に回転速度を制御可能な2つの第1主輪21a及び第2主輪21bを有する走行部2は、「対向二輪差動型の走行部」と呼ばれる。
【0029】
(3)検出部の構成
次に、検出部3の構成について、
図1を用いて説明する。検出部3は、自律走行台車100の走行経路周辺の障害物及び壁などを検出し、障害物及び壁などの位置情報を出力する。そのため、検出部3は、前方検出器31と、後方検出器33と、を有する。前方検出器31は、自律走行台車100の前方にある障害物及び壁などを検出する。後方検出器33は、自律走行台車100の後方にある障害物及び壁などを検出する。また、前方検出器31と後方検出器33は、自律走行台車100と障害物及び壁などとの間の距離及び、自律走行台車100から見た障害物及び壁などが存在する方向に関する情報などを含む信号を出力する。これにより、検出部3は、自律走行台車100から見た障害物及び壁などの相対的な位置情報を、制御部7に出力できる。
検出部3の前方検出器31及び後方検出器33としては、例えば、それぞれ少なくとも180°の範囲を照射できるレーザレンジファインダ(Laser Range Finder、LRF)などを用いることができる。
【0030】
(4)操作部の構成
次に、操作部5の構成について、
図2を用いて説明する。
図2は、操作部5の構成を示す図である。操作部5は、操作ハンドル51a、51bと、設定部53と、表示部55と、インターフェース57と、筐体59と、を備える。
操作ハンドル51a、51bは、それぞれ、筐体59の左右に回動可能に取り付けられている。また、操作ハンドル51a、51bは、インターフェース57と信号送受信可能に接続されている。これにより、操作ハンドル51a、51bの回動量(操作量)及び回動方向は、インターフェース57において電気信号に変換され、制御部7に入力される。そして、制御部7に入力された操作ハンドル51a、51bの回動量及び回動方向に基づき、走行部2の第1モータ23a及び第2モータ23bが制御される。
また、操作ハンドル51aを進行方向への走行速度を指示するための入力インターフェースとし、操作ハンドル51bを操舵角(姿勢角(後述))を指示するための入力インターフェースとしてもよい。
【0031】
これにより、操作者は、教示走行モードの実行時に操作ハンドル51a、51bを操作することにより、自律走行台車100に所望の走行経路(予定走行経路)を走行させることができる。
また、操作者は、操作ハンドル51a、51bに適切な外力を加えることによっても、自律走行台車100を操作できる。このとき、例えば、自律走行台車100が前方方向に走行している場合において、操作ハンドル51aに自律走行台車100の進行方向とは逆方向の外力を加えることにより、自律走行台車100を進行方向に対して左方向に方向転換できる。
【0032】
設定部53は、インターフェース57に接続されている。設定部53は、自律走行台車100の走行モードを、再現走行モード、又は、教示走行モードのいずれかに切り替える。そして、設定部53において設定された走行モードが、インターフェース57を介して、制御部7の切替部77(
図3)に入力される。また、設定部53は、自律走行台車100のその他の各種設定を設定可能となっていてもよい。
設定部53は、例えば、自律走行台車100の走行モード及び各種設定などを行うためのスイッチ又は/及びキーボードなどにより構成できる。又は、設定部53は、タッチパネルとして構成され、表示部55と一体に形成されていてもよい。
【0033】
表示部55は、インターフェース57に接続されている。表示部55は、インターフェース57を介して、制御部7から自律走行台車100の各種設定及び位置情報などの情報を、読み出して表示する。表示部55としては、液晶ディスプレイなどのディスプレイを用いることができる。また、上記のように、設定部53と表示部55とを一体に形成する場合は、表示部55(と設定部53)として、タッチパネル機能付きディスプレイを用いることができる。
【0034】
インターフェース57は、制御部7に接続されている。インターフェース57は、操作ハンドル51a、51bの回動量、回動方向、及び設定部53のスイッチ及び/又はキー入力などを電気信号に変換し、制御部7へ出力する。また、インターフェース57は、操作者の指示などに応じて、制御部7から自律走行台車100に関する情報を読み出して、表示部55に表示する。
従って、インターフェース57としては、マイコンボードを用いることができる。マイコンボードは、例えば、操作ハンドル51a、51bの回動量、回転方向、及び設定部53における設定状態を電気信号に変換する信号変換器と、表示部55に情報を表示するための表示部駆動回路と、制御部7と信号を送受信するための通信インターフェースと、を備えている。
【0035】
(5)制御部の構成
I.制御部の全体構成
次に、制御部7の全体構成について
図3を用いて説明する。
図3は、制御部7の全体構成を示す図である。
なお、制御部7は、CPU(Central Processing Unit)と、ハードディスク装置と、ROM(Read Only Memory)と、RAM(Random Access Memory)と、記憶媒体読み出し装置などにより構成される記憶装置と、信号変換を行うインターフェースなどと、を備えたマイコンシステムなどにより実現できる。また、以下に示す制御部7の各部の機能の一部又は全部は、プログラムとして実現されていてもよい。さらに、当該プログラムは、マイコンボードの記憶装置に記憶されていてもよい。又は、制御部7の各部の機能の一部又は全部は、カスタムICなどにより実現されていてもよい。
制御部7は、教示部71と、位置推定部72と、記憶部73と、曲率算出部74と、モータ駆動部75と、障害物情報取得部76と、切替部77と、を有する。
【0036】
教示部71は、教示走行モードの実行時に、操作者が操作部5を用いて自律走行台車100を操作することにより通過した位置に関する情報を所定の時間(教示データ取得時間)間隔にて取得する。そして、教示部71は、取得した位置に関する情報を、自律走行台車100が走行する移動平面を表現した座標系(以後、移動座標と呼ぶことにする)上の座標値に変換する。さらに、教示部71は、座標変換された位置に関する情報を記憶部73(後述)に記憶する。ここで、教示部71において、上記の移動座標上の座標値に変換された位置に関する情報のことを、「サブゴール点」と呼ぶことにする。
【0037】
また、教示部71は、教示走行モードの実行時に、自律走行台車100の走行開始位置から、操作者が自律走行台車100の走行を停止させる(教示走行モードの終了、あるいは、走行終了位置に到達する)まで、サブゴール点Pの取得を継続する。この結果、教示部71は、走行開始位置から走行終了位置までに取得したサブゴール点Pの集合体を、記憶部73に記憶する。
【0038】
このように、教示走行モードの実行時に、操作者の操作により自律走行台車100が通過した位置を移動座標の座標値の集合体として取得し記憶することにより、操作者の操作により教示された自律走行台車100の走行経路(予定走行経路)を記憶部73に記憶できる。従って、教示部71が取得したサブゴール点Pの集合体を、予定走行経路データと呼ぶことにする。
【0039】
なお、教示部71は、サブゴール点Pを取得するときに、当該サブゴール点Pにおける自律走行台車100(台車部1)の姿勢に関する情報を取得し、記憶部73に記憶してもよい。この場合、予定走行経路データ500a(
図7Aを参照)、500c(
図7Cを参照)は、サブゴール点Pの集合体と、各サブゴール点Pに関連づけられた台車部1(自律走行台車100)の姿勢に関する情報の集合体となる。
ここで、自律走行台車100の姿勢は、例えば、
図4に示すように、台車部1(自律走行台車100)の中心Cから台車部1の前方方向に伸びる基準軸と、移動座標のx軸とがなす角度である姿勢角θとして定義される。また、本実施形態においては、姿勢角θは
図4において反時計回りに増加する。
図4は、台車部(自律走行台車)の姿勢角の定義を示す図である。
【0040】
さらに、サブゴール点Pを取得する際に、サブゴール点Pを取得した時間を記憶部73に記憶してもよい。このとき、予定走行経路データは、サブゴール点Pを取得した時間の集合体と、当該時間に関連づけられたサブゴール点Pの集合体とにより構成される。
【0041】
位置推定部72は、走行環境(移動平面上)における台車部1(自律走行台車100)の位置及び姿勢を推定する。位置推定部72は、例えば、SLAM(Simultaneous Localization And Mapping)法などを用いて、自律走行台車100の移動平面上における位置及び姿勢を推定できる。
位置推定部72は、検出部3において取得された自律走行台車100から見た障害物及び壁などの相対的な位置情報を、移動座標上の座標値へと変換する。そして、位置推定部72は、検出部3の前方検出器31及び後方検出器33が検出した障害物及び壁などの位置情報に基づいて、自律走行台車100の周囲の移動平面の地図情報(ローカルマップと呼ぶことにする)を作成する。また、位置推定部72は、移動平面の地図情報(環境地図と呼ぶことにする)を記憶部73に記憶している。そして、位置推定部72は、環境地図とローカルマップとを比較(マップマッチングと呼ぶ)して、自律走行台車100が移動平面のどの位置に存在するか、及び、自律走行台車100の移動平面における姿勢を推定する。
【0042】
また、位置推定部72は、第1モータ23a及び第2モータ23bの回転数に基づいても、自律走行台車100の位置を推定できるようになっている。そのため、第1モータ23a及び第2モータ23bの出力回転軸には、それぞれ、軸の回転数を測定する装置が取り付けられている。本実施形態においては、第1モータ23a及び第2モータ23bの出力回転軸には、それぞれ、エンコーダ231a、231b(
図5)が取り付けられている。
このように、第1モータ23a(第1主輪21a)及び第2モータ23b(第2主輪21b)の回転数に基づいて、位置推定を行うことを「デッドレコニングによる位置推定」とよぶこともある。本実施形態の位置推定部72においては、デッドレコニングによる位置推定を行う際に、第1主輪21a及び第2主輪21bの滑りを考慮した位置推定を行っている。
そして、位置推定部72は、第1主輪21a及び第2主輪21bの滑りを考慮したデッドレコニングによる位置推定結果と、上記のマップマッチングのマッチング結果とを、お互い相補して自律走行台車100の位置推定を行っている。その結果、位置推定部72は、検出部3のみ、又は、第1モータ23a及び第2モータ23bの回転数のみに基づく位置推定よりも、さらに精度のよい位置及び姿勢の推定ができる。
【0043】
記憶部73は、制御部7がマイコンシステムにより実現されている場合は、マイコンシステムの記憶装置(あるいは、記憶装置の記憶領域の一部)に対応するものである。記憶部73は、自律走行台車100の各種設定、予定走行経路データ500a、500c、障害物及び壁などの位置情報、などの情報を記憶する。また、制御部7の各部の機能の一部又は全部がソフトウェアにより実現されているとき、記憶部73は、当該ソフトウェアを記憶してもよい。
【0044】
曲率算出部74は、予定走行経路データ500aに含まれる複数のサブゴール点Pのうちの1のサブゴール点P(注目サブゴール点P
a)と、注目サブゴール点P
aから見て予定走行経路データ500aの前後に存在する所定の数のサブゴール点Pと、により形成される経路(部分予定走行経路と呼ぶ)の、注目サブゴール点P
aにおける曲率半径(注目曲率半径R)を算出する。そして、曲率算出部74は、算出された注目曲率半径Rを記憶部73に記憶する。
【0045】
本実施形態において、曲率算出部74は、注目サブゴール点P
aと、注目サブゴール点P
aよりも進行方向前方のサブゴール点Pである第1サブゴール点P
fと、注目サブゴール点P
aよりも進行方向後方のサブゴール点である第2サブゴール点P
sと、の3点により形成される部分予定走行経路の注目曲率半径Rを算出する。
【0046】
このように、部分予定走行経路が、注目サブゴール点P
aと、第1サブゴール点P
fと、第2サブゴール点P
sの3つのサブゴール点Pにより形成されることにより、曲率算出部74は、より簡単な計算で注目曲率半径Rを算出できる。その結果、曲率算出部74の処理速度が向上する。
【0047】
ここで、曲率算出部74は、第1サブゴール点P
fと第2サブゴール点P
sとして、注目サブゴール点から所定の距離以上離れているサブゴール点Pの中で注目サブゴール点に最も近いサブゴール点Pを選択する。これにより、曲率算出部74は、予定走行経路データ500aに含まれるノイズ成分により発生する局所的な経路の凹凸の影響を低減した部分予定走行経路の注目曲率半径Rを算出できる。
【0048】
予定走行経路データ中にノイズ成分が含まれており、曲率算出部74がノイズ成分を含んだ部分予定走行経路の注目曲率半径Rを算出した場合、制御パラメータ調整部757(後述)が制御パラメータ値(後述)の調整を行う際に、制御パラメータ値が、本来の部分予定走行経路を再現走行するのに最適な値とは異なる値に調整されてしまうことがある。なぜなら、ノイズ成分を含んだ部分予定走行経路の注目曲率半径の算出値は、本来の意図した部分予定走行経路の注目曲率半径とは異なる場合があるからである。
このように、注目サブゴール点から所定の距離以上離れているサブゴール点Pの中で注目サブゴール点に最も近いサブゴール点Pを第1サブゴール点P
fと第2サブゴール点P
sとすることにより、ノイズ成分により発生する局所的な経路の凹凸の影響を低減した部分予定走行経路の注目曲率半径Rを算出できる。その結果、より精度よく、注目曲率半径Rに基づいた制御パラメータ値の調整を行える。
【0049】
本実施形態において、曲率算出部74は、注目曲率半径Rとして、注目サブゴール点と、第1サブゴール点P
fと、第2サブゴール点P
sと、を通る円(注目円)の半径rを算出する。
注目円の半径rは、例えば、次のようにして算出できる。すなわち、移動座標上の座標(x,y)を通る円を表す式(x−a)
2+(y−b)
2=r
2(a:注目円の中心のx座標値、b:注目円の中心のy座標値、r:注目円の半径)のx及びyに、注目サブゴール点の移動座標上の座標値、第1サブゴール点P
fの座標値、第2サブゴール点P
sの座標値を代入して、変数がa、b、rである3つの式を作成し、当該3つの式からなる連立方程式を解くことにより、注目円の半径r(すなわち、注目曲率半径R)を算出できる。
【0050】
または、注目サブゴール点P
aと第1サブゴール点P
fとを結ぶ線分の垂直二等分線と、注目サブゴール点P
aと第2サブゴール点P
sとを結ぶ線分の垂直二等分線との交点を算出(当該交点が、注目円の中心に対応する)し、当該交点と注目サブゴール点との距離を算出することによっても、注目円の半径rを算出できる。
【0051】
このように、注目サブゴール点P
aと、第1サブゴール点P
fと、第2サブゴール点P
sの3つのサブゴール点を通る注目円の半径rを、注目曲率半径Rとして算出することにより、曲率算出部74は、より簡単に注目曲率半径Rを算出できる。
【0052】
モータ駆動部75は、第1モータ23a及び第2モータ23bに電気的に接続されている。これにより、モータ駆動部75は、第1モータ23a及び第2モータ23bを制御できる。
また、モータ駆動部75は、操作部5と信号送受信可能に接続され、教示走行モードの実行時には、操作部5の操作ハンドル51a、51bの回動量及び/又は回動方向に基づき、第1モータ23a及び第2モータ23bを制御する。
一方、再現走行モードの実行時には、モータ駆動部75は、記憶部73に記憶された予定走行経路データ500cに基づいて、第1モータ23a及び第2モータ23bの制御指令を作成する。そして、モータ駆動部75は、作成された制御指令に基づいて、第1モータ23a及び第2モータ23bを制御する。
なお、モータ駆動部75の詳細な構造及び動作については、後述する。
【0053】
障害物情報取得部76は、検出部3の前方検出器31と後方検出器33とに信号送受信可能に接続されている。障害物情報取得部76は、前方検出器31と後方検出器33とから出力される信号に基づき、障害物及び壁などの位置情報を取得する。そして、障害物情報取得部76は、必要に応じて、障害物及び壁などの位置情報を記憶部73に記憶する。このとき、障害物情報取得部76は、位置推定部72に障害物及び壁などの位置情報を出力してもよい。そして、位置推定部72が、障害物及び壁などの位置情報を移動座標上の座標値に変換して、障害物及び壁などの位置情報を記憶部73に記憶してもよい。
【0054】
切替部77は、操作部5の設定部53における走行モードの設定状態に基づいて、自律走行台車100の走行モードを、再現走行モード、又は、教示走行モードのいずれかに切り替えて設定する。そして、制御部7の各部は、必要に応じて、切替部77において設定された走行モードを参照可能となっている。
【0055】
II.モータ駆動部の構成
次に、モータ駆動部75の構成について、
図5を用いて説明する。
図5は、モータ駆動部75の構成を示す図である。
モータ駆動部75は、操作部5と、記憶部73と、切替部77と信号送受信可能に接続されている。また、モータ駆動部75は、第1モータ23a及び第2モータ23bと電気的に接続されている。さらに、モータ駆動部75は、第1モータ23a及び第2モータ23bのそれぞれに備えられたエンコーダ231a、231bと信号送受信可能に接続されている。
モータ駆動部75は、駆動切替部751と、再現走行指令部753と、モータ制御部755と、制御パラメータ調整部757と、を有する。
【0056】
駆動切替部751は、切替部77と信号送受信可能に接続されている。また、駆動切替部751は、3つの端子d、e、fを有している。駆動切替部751は、切替部77において教示走行モードが選択された場合、端子dと端子eとを接続する。また、駆動切替部751は、切替部77において再現走行モードが選択された場合、端子eと端子fとを接続する。
その結果、駆動切替部751は、教示走行モードの実行時には、操作部5の操作ハンドル51a、51bの回動量及び回動方向を、モータ制御部755(後述)へと入力する。一方、駆動切替部751は、再現走行モードの実行時には、再現走行指令部753(後述)により作成された再現走行指令(後述)をモータ制御部755へと入力する。
【0057】
再現走行指令部753は、記憶部73と信号送受信可能に接続されている。また、再現走行指令部753は、駆動切替部751の端子fと接続されている。
再現走行指令部753は、再現走行モードの実行時に、記憶部73に記憶された予定走行経路データ500cに基づいて、モータ制御部755(後述)により第1モータ23a及び第2モータ23bを制御するための再現走行指令を作成する。そして、再現走行指令部753は、再現走行モードの実行時に、再現走行指令をモータ制御部755に出力する。
【0058】
再現走行指令部753において生成される再現走行指令は、自律走行台車100(台車部1)が、現在位置から次の移動目標点へ移動する際の、第1主輪21aの第1主輪回転速度V
a(後述)及び第2主輪21bの第2主輪回転速度V
b(後述)である。
従って、再現走行指令部753は、位置推定部72と信号送受信可能に接続され、自律走行台車100の現在位置を位置推定部72から取得する。
【0059】
また、再現走行指令部753は、制御パラメータ調整部757(後述)と信号送受信可能に接続されている。このため、再現走行指令部753は、制御パラメータ調整部757から、注目曲率半径R(後述)に基づいて調整された制御パラメータK
pを受信できる。
そして、再現走行指令部753は、受信した制御パラメータK
pに基づいて、第1主輪回転速度V
a及び第2主輪回転速度V
bを算出する。
このように、注目曲率半径Rに基づいて、第1主輪回転速度V
a及び/又は第2主輪回転速度V
bを算出することにより、部分予定走行経路の曲がりに応じた、再現走行指令(第1主輪回転速度V
a及び第2主輪回転速度V
b)を算出できる。
なお、再現走行指令部753における再現走行指令算出法は、後ほど詳しく説明する。
【0060】
モータ制御部755は、第1モータ23a及び第2モータ23bと電気的に接続されている。また、モータ制御部755は、第1モータ23a及び第2モータ23bのそれぞれに備えられたエンコーダ231a、231bと信号送受信可能に接続されている。さらに、モータ制御部755は、駆動切替部751の端子eと接続されている。
モータ制御部755は、教示走行モードの実行時には、駆動切替部751を介して、操作部5の操作ハンドル51a、51bの回動量及び回動方向を入力し、当該回動量及び回動方向に基づいて、第1モータ23a及び第2モータ23bを独立に制御する。一方、再現走行モードの実行時には、モータ制御部755は、駆動切替部751を介して、予定走行経路データ500cに基づいて作成された再現走行指令を入力し、再現走行指令に基づいて、第1モータ23a及び第2モータ23bを制御する。
【0061】
また、モータ制御部755は、第1モータ23a及び第2モータ23bを制御する際に、実際の第1モータ23aの回転数及び第2モータ23bの回転数をフィードバックして、再現走行指令、及び、操作ハンドル51a、51bの回動量に基づく回転数に追随するように、第1モータ23a及び第2モータ23bの回転数を制御している(フィードバック制御)。従って、モータ制御部755として、例えば、PID(Proportional Integral Differential)制御理論を用いたモータ制御装置などを用いることができる。
【0062】
制御パラメータ調整部757は、記憶部73と信号送受信可能に接続されている。また、制御パラメータ調整部757は、再現走行指令部753と信号送受信可能に接続されている。このため、制御パラメータ調整部757は、再現走行モードの実行時に、曲率算出部74において算出され記憶部73に記憶された注目曲率半径Rに基づいて、制御パラメータK
pを調整する。そして、制御パラメータ調整部757は、決定した制御パラメータK
pを再現走行指令部753へ送信する。
なお、制御パラメータ調整部757における、制御パラメータK
pの決定方法は後ほど詳しく説明する。
【0063】
なお、モータ駆動部75における第1モータ23a及び第2モータ23bの制御周期T
cは、所定の制御周期を選択できる。例えば、制御周期T
cは、教示走行モードの実行時にサブゴール点を取得した時間間隔である教示データ取得時間T(後述)と同一であってもよい。この場合、予定走行経路データ中のサブゴール点(サブゴール点近辺)に到達毎に、第1モータ23a及び第2モータ23bの制御が行われる。
【0064】
または、モータの制御周期T
cは、教示データ取得時間Tよりも短い時間であってもよい。この場合、例えば、モータの制御周期T
cを、教示データ取得時間Tの1/c(c:整数)の時間としてもよい。これにより、より精細なモータの制御が可能となる。
【0065】
(6)自律走行台車の動作
次に、本実施形態に係る自律走行台車100の基本動作について、
図6Aを用いて説明する。
図6Aは、自律走行台車の基本動作を示すフローチャートである。
自律走行台車100においては、まず、教示部71が、予定走行経路データ500aを取得する(ステップS1)。すなわち、操作者が操作部5などを用いて自律走行台車100を操作することにより自律走行台車100が通過した移動座標上の点(座標値)を、教示部71がサブゴール点Pとして取得する。これにより、教示部71は、自律走行台車100に対して、操作者の操作による予定走行経路を教示できる。
【0066】
予定走行経路データ500aを取得後、曲率算出部74が、取得した予定走行経路データ500aから所定数(本実施形態においては3つ)のサブゴール点Pにより形成される部分予定走行経路の注目曲率半径Rを算出する(ステップS2)。そして、曲率算出部74は、算出した注目曲率半径Rを記憶部73に記憶する。このとき、算出された注目曲率半径Rは、注目サブゴール点と関連づけられて記憶部73に記憶される。
【0067】
なお、上記のステップS2における注目曲率半径Rの算出は、自律走行台車100から分離した、曲率算出部74と同等の機能を有する端末、例えば、曲率算出部74と同等の機能を有するプログラムが実行される他のコンピュータ端末などにおいて実行されてもよい。
この場合、例えば、ステップS1において予定走行経路データ500aを取得後、予定走行経路データ500aを、記憶部73から、例えば、USB(Universal Serial Bus)接続可能な記憶デバイス(例えば、USBメモリー)などに転送し、転送した予定走行経路データ500aを上記の他のコンピュータ端末などにさらに転送して、当該他のコンピュータ端末上にて注目曲率半径Rの算出を行う。
そして、注目曲率半径Rの算出後、注目曲率半径Rと注目サブゴール点P
aとを関連づけて、予定走行経路データ500cを上記の他のコンピュータ端末において作成する。そして、作成した予定走行経路データ500cを当該他のコンピュータ端末の記憶部から自律走行台車100の記憶部73に転送する。
これにより、自律走行台車100を動作させつつ、他のコンピュータ端末において注目曲率半径Rの算出を同時に行うといった、効率のよい自律走行台車100の運用が可能となる。
【0068】
注目曲率半径Rの算出後、操作部5の設定部53などを用いて、自律走行台車100の走行モードを再現走行モードに切り替え、自律走行台車100に対して予定走行経路データ500cに示された予定走行経路を再現走行させる(ステップS3)。
【0069】
具体的には、まず、モータ駆動部75の再現走行指令部753が、モータの制御周期毎に再現走行指令を作成する。そして、モータ制御部755が、作成された再現走行指令に基づいて、第1モータ23a及び第2モータ23bを制御する。これらの動作を、自律走行台車100が、予定走行経路データ500cの最後に示されたサブゴール点(すなわち、走行終了位置)に到達するまで実行される。
【0070】
再現走行指令部753にて再現走行指令を算出する際、再現走行指令部753が、注目曲率半径Rに基づいて最適化された(調整された)制御パラメータK
pを制御パラメータ調整部757から受信する。そして、再現走行指令部753は、受信した制御パラメータK
pに基づいて、第1主輪回転速度V
a及び/又は第2主輪回転速度V
bを算出する。これにより、部分予定走行経路の注目曲率半径R(曲がり)に対して最適な第1主輪回転速度V
a及び/又は第2主輪回転速度V
b(すなわち、再現走行指令)が算出される。その結果、自律走行台車100は、予定走行経路から外れることなく、予定走行経路を忠実に再現走行できる。
【0071】
以下、上記のステップS1〜S3について、さらに詳しく説明する。
【0072】
I.予定走行経路データの取得方法
まず、
図6AのステップS1における、本実施形態に係る自律走行台車100における予定走行経路データ500aの取得方法について、
図6Bを用いて説明する。
図6Bは、自律走行台車100における予定走行経路データ500aの取得方法を示すフローチャートである。
まず、予定走行経路データ500aを取得するために、自律走行台車100の走行モードを教示走行モードに設定する(ステップS11)。走行モードの教示走行モードへの切替は、例えば、操作者が操作部5の設定部53を操作することにより、実行される。
設定部53により走行モードが教示走行モードへ切り替えられると、走行モードが教示走行モードとなったことが制御部7の切替部77に通知される。そして、切替部77は、モータ駆動部75の駆動切替部751に対して、駆動切替部751の端子dと端子eとを接続するよう指令する。これにより、操作部5の操作ハンドル51a、51bの回動量及び回動方向に関する信号が、モータ制御部755に入力されるようになる。これにより、操作者は、操作ハンドル51a、51bの回動量及び回動方向などを調整することにより、自律走行台車100を手動操作できる。
走行モードを教示走行モードに設定したタイミングにおいて、教示部71は、教示データ取得時間を測定するためのタイマー(図示せず)を開始する。当該タイマーの機能は、制御部7を構成するコンピュータなどに備わった時計機能又はクロック発生装置などを用いて実現される。
【0073】
走行モードを教示走行モードに設定後、操作者が自律走行台車100を手動により操作する。操作者による手動操作中に、教示部71は、あらかじめ決められた教示データ取得時間毎にサブゴール点Pを取得し、記憶部73に記憶する(ステップS12)。サブゴール点Pを取得する際、教示部71は、位置推定部72に対して、現在の自律走行台車100の移動座標上の位置(サブゴール点Pの座標)を推定するよう指令する。そして、位置推定部72は、当該指令に対して、座標値により表現された位置(サブゴール点P)を教示部71に出力する。そして、教示部71は、出力されたサブゴール点Pを記憶部73に記憶する。
サブゴール点Pを記憶部73に記憶する際、すでにサブゴール点Pが記憶部73に記憶されている場合には、教示部71は、記憶されているサブゴール点Pの末尾に、新たに取得したサブゴール点Pを追加する。このようにして、サブゴール点Pの集合体、すなわち、予定走行経路データ500aが記憶部73に記憶される。
【0074】
また、本実施形態において、教示部71は、サブゴール点Pを取得するときに、当該サブゴール点Pにおける自律走行台車100(台車部1)の姿勢に関する情報を取得する。自律走行台車100の姿勢に関する情報は、位置推定部72において、環境地図とローカルマップとをマップマッチングすることにより取得できる。これにより、後述するように、当該姿勢に関する情報を用いて、第1主輪回転速度V
a及び第2主輪回転速度V
bを算出できる。
【0075】
上記ステップS12を実行することにより、
図7Aに示すようなデータが取得される。
図7Aは、k番目に取得された予定走行経路データ単位500a−kのデータ構造を示す図である。ここで、予定走行経路データ単位とは、予定走行経路データを構成する最小単位のことをいう。
【0076】
予定走行経路データ単位500a−kは、k番目に取得されたサブゴール点P
kのx座標値x
kと、k番目に取得されたサブゴール点P
kのy座標値y
kと、を記憶するサブゴール点座標記憶領域500a−k1と、サブゴール点座標記憶領域500a−k1に記憶されたサブゴール点座標値(x
k,y
k)における自律走行台車100の姿勢に関する情報(姿勢角と呼ぶことにする)θ
kを記憶する姿勢情報記憶領域500a−k2と、により構成されている。これにより、予定走行経路データ500aの単位として、自律走行台車100(台車部1)の位置情報と自律走行台車100の姿勢情報とを関連づけたデータが得られる。
【0077】
また、当該サブゴール点P
kを取得する際に、当該サブゴール点P
kを取得した時間(すなわち、教示データ取得時間の整数倍にて表現される時間)を取得してもよい。ここで、教示データ取得時間をTとすると、k番目に取得されたサブゴール点P
kを取得した時間は、kTと表される。
この場合、
図7Bに示すように、予定走行経路データ単位500b−kは、サブゴール点座標記憶領域500b−k1と姿勢情報記憶領域500b−k2に加えて、教示データ取得時間を記憶するデータ取得時間記憶領域500b−k3をさらに有する。これにより、サブゴール点Pが、教示走行モードの実行を開始して(すなわち、走行開始位置から走行を開始して)からどのくらい経過して取得された点であるかを記憶できる。
図7Bは、データ取得時間記憶領域500b−k3を有する予定走行経路データ単位500b−kのデータ構造を示す図である。
【0078】
サブゴール点P
kを取得後、教示部71は、次のサブゴール点P
k+1の取得までの間に、操作者の手動操作による予定走行経路の教示が終了したかどうかを確認する(ステップS13)。ここで、予定走行経路の教示が終了したかどうかの判断は、例えば、予定走行経路の教示が終了したことを教示部71に通知するスイッチ(図示せず)を操作部5に設けて、操作者が当該スイッチを操作することにより、予定走行経路の教示が終了したことを通知してもよい。
または、操作ハンドル51a、51bの回動量が0(操作されていない)であることを一定時間検知したときに、予定走行経路の教示が終了したと教示部71が判断してもよい。
その他、操作者が自律走行台車100の操作を終了したことを検出する他の手段により、予定走行経路の教示が終了したかどうかを判断できる。
【0079】
操作者の手動操作による予定走行経路の教示が終了したと判断した場合(ステップS13において、「Yes」の場合)、教示部71は、教示走行モードの実行を停止し(ステップS14)、予定走行経路データ500aの取得を終了する。
【0080】
一方、操作者の手動操作による予定走行経路の教示が継続していると判断した場合(ステップS13において、「No」の場合)、ステップS12に戻り、サブゴール点Pの取得と記憶を継続する。これにより、教示部71は、予定走行経路の教示が継続している限り、サブゴール点Pの取得と記憶を継続できる。すなわち、教示部71は、走行開始位置から走行終了位置まで走行した際の予定走行経路を、サブゴール点P(予定走行経路データ単位500a−k、500b−k)の集合体として取得できる。
【0081】
本実施形態においては、上記の
図6Bに示したフローチャートによる手順により、
図7Cに示すような予定走行経路データ500aが取得される。
図7Cは、予定走行経路データ単位500a−k(k=0,1,2,・・・,n(n:整数))の集合体としての予定走行経路データ500aのデータ構造を示す図である。この結果、予定走行経路データ500aは、サブゴール点P
kの集合体を記憶するサブゴール点座標値集合体記憶領域G
sと、姿勢角θ
kの集合体を記憶する姿勢情報集合体記憶領域G
θと、を有している。
図7Cに示す予定走行経路データ500aは、予定走行経路データ単位500a−kが紙面の上下方向に積み重なって(スタックされて)集合体を形成している。しかし、予定走行経路データ500aにおける予定走行経路データ単位500a−kの配置は、上下方向にスタックされる配置に限られない。
【0082】
例えば、予定走行経路データ500aに含まれる予定走行経路データ単位500a−kの終端(すなわち、
図7Aの予定走行経路データ単位500a−kにおいては、姿勢情報記憶領域500a−k2の末尾)に、次の予定走行経路データ単位500a−k+1の先端(すなわち、
図7Aの予定走行経路データ単位500a−k+1の開始位置)を連結した状態で配置されてもよい。
その他、予定走行経路データ500aにおける予定走行経路データ単位500a−kの配置は、制御部7を構成するマイコンシステムにおいて使用可能な電子ファイルフォーマットなどに応じて、適切な配置を選択できる。
【0083】
II.注目曲率半径の算出方法
次に、
図6AのステップS2における、注目曲率半径Rの算出及び記憶方法について、
図6Cを用いて説明する。
図6Cは、注目曲率半径を算出し記憶する方法を示すフローチャートである。ここでは、予定走行経路データ500aを用いた注目曲率半径Rの算出方法を説明する。
まず、曲率算出部74は、記憶部73に記憶されている予定走行経路データ500a中から1の予定走行経路データ単位500a−kを選択し、予定走行経路データ単位500a−kのサブゴール点座標記憶領域500a−k1に記憶されているサブゴール点P
kの座標値(x
k,y
k)を注目サブゴール点として設定する(ステップS21)。
今、m番目の予定走行経路データ単位500a−mに含まれるサブゴール点P
m(x
m,y
m)が注目サブゴール点P
amとして設定されたとする。
【0084】
次に、曲率算出部74は、注目サブゴール点P
amとともに部分予定走行経路を形成するための他のサブゴール点Pを選択する(ステップS22)。
本実施形態においては、注目サブゴール点P
amを含んだ3つのサブゴール点Pにより形成される部分予定走行経路の注目曲率半径Rを算出する(後述)。従って、本実施形態においては、曲率算出部74は、あと2つのサブゴール点(第1サブゴール点P
f及び第2サブゴール点P
s)を選択する。本実施形態においては、注目サブゴール点P
amから所定の距離以上離れているサブゴール点Pの中で、注目サブゴール点P
amに最も近いサブゴール点が、第1サブゴール点P
f及び第2サブゴール点P
sとして選択される。具体的には、曲率算出部74は、以下のようにして第1サブゴール点P
f及び第2サブゴール点P
sを選択する。
【0085】
まず、曲率算出部74は、第1サブゴール点P
fとして予定走行経路データ単位500a−m+u(u:正の整数)に含まれるサブゴール点P
m+u(x
m+u,y
m+u)を選択する。曲率算出部74は、第2サブゴール点P
sとして、予定走行経路データ単位500a−m−v(v:正の整数)に含まれるサブゴール点P
m−v(x
m−v,y
m−v)を選択する。
ここで、第1サブゴール点P
fとして、予定走行経路データ単位500a−m+uに含まれるサブゴール点P
m+uが選択される理由は、第1サブゴール点P
fは注目サブゴール点P
amよりも進行方向前方に存在するサブゴール点であるからである。
一方、第2サブゴール点P
sとして、予定走行経路データ単位500a−m−vに含まれるサブゴール点P
m−vが選択される理由は、第2サブゴール点P
sは注目サブゴール点P
amよりも進行方向後方に存在するサブゴール点であるからである。
【0086】
次に、曲率算出部74は、注目サブゴール点P
amと第1サブゴール点P
f(m+u)との間の距離を算出する。そして、当該距離が所定の距離以上であるかどうか判定する。このとき、曲率算出部74は、uを1から増加していき、それぞれのuの値に対して注目サブゴール点P
amと第1サブゴール点P
f(m+u)との間の距離を逐次算出し、当該距離が所定の距離以上であるかの判定を逐次行う。これにより、曲率算出部74は、注目サブゴール点P
amと第1サブゴール点P
f(m+u)との間の距離が所定の距離以上になった時のuの値の最小値H(H:正の整数)を検出できる。
このようにして、曲率算出部74は、サブゴール点P
m+H(x
m+H,y
m+H)を第1サブゴール点P
f(m+H)として選択できる。
【0087】
次に、曲率算出部74は、注目サブゴール点P
amと第2サブゴール点P
s(m−v)との間の距離を算出する。そして、当該距離が所定の距離以上であるかどうか判定する。このとき、曲率算出部74は、vを1から増加していき、それぞれのvの値に対して注目サブゴール点P
amと第2サブゴール点P
s(m−v)との間の距離を逐次算出し、当該距離が所定の距離以上であるかの判定を逐次行う。これにより、曲率算出部74は、注目サブゴール点P
amと第2サブゴール点P
s(m−v)との間の距離が所定の距離以上になった時のvの値の最小値I(I:正の整数)を検出できる。
このようにして、曲率算出部74は、サブゴール点P
m−I(x
m−I,y
m−I)を第2サブゴール点P
s(m−I)として選択できる。
【0088】
なお、上記のようにして第1サブゴール点P
f及び第2サブゴール点P
sを選択する場合において、mの値によっては(特に、注目サブゴール点P
amが、走行開始位置又は走行終了位置に近いとき)、m−vが負値になったり、m+uがn(n:予定走行経路データ500a中に含まれる予定走行経路データ単位の数(すなわち、サブゴール点数))nより大きくなったりする場合がある。
m+uがサブゴール点数nを超えた場合及びm−vが負値となった場合、曲率算出部74は、部分予定走行経路を直線(すなわち、注目曲率半径を無限大)と見なす。
【0089】
このように、注目サブゴール点P
amから所定の距離以上であるサブゴール点を、第1サブゴール点P
f(m+u)及び第2サブゴール点P
s(m−v)として選択することにより、曲率算出部74は、予定走行経路データに含まれるノイズ成分により発生する局所的な経路の凹凸の影響を低減して、意図した予定走行経路の注目曲率半径を算出できる。
【0090】
第1サブゴール点P
fと第2サブゴール点P
sとを選択した後、曲率算出部74は、注目サブゴール点P
amと、第1サブゴール点P
f(m+H)と、第2サブゴール点P
s(m−I)により形成される部分予定走行経路の注目曲率半径R
mを算出する(ステップS23)。
具体的には、曲率算出部74は、選択された、注目サブゴール点P
am、第1サブゴール点P
f(m+H)、及び第2サブゴール点P
s(m−I)の3つのサブゴール点を通る円(注目円)の半径r
mを注目曲率半径R
mとして算出する。
注目円の半径r
mの算出方法としては、上記のように、移動座標上の円を表す3つの式からなる連立方程式を解くことにより算出する方法、又は、注目サブゴール点P
amと第1サブゴール点P
f(m+H)を結ぶ線分の垂直二等分線と注目サブゴール点P
amと第2サブゴール点P
s(m−I)を結ぶ線分の垂直二等分線との交点と、注目サブゴール点P
amとの間の距離を算出する方法を用いることができる。
【0091】
注目曲率半径R
mを算出後、曲率算出部74は、算出された注目円の半径r
m(=注目曲率半径R
m)を記憶部73に記憶する(ステップS24)。このとき、注目曲率半径R
mは、注目サブゴール点P
amと関連づけられて記憶部73に記憶される。
具体的には、曲率算出部74は、注目サブゴール点P
amを含む予定走行経路データ単位500a−mに、算出した注目曲率半径R
m(=注目円の半径r
m)を追加して、新たな予定走行経路データ単位500c−m(
図7D)を作成する。そして、曲率算出部74は、予定走行経路データ単位500c−mを記憶部73に記憶する。
その結果、新たな予定走行経路データ単位500c−mは、
図7Dに示すようなデータ構造を有する予定走行経路データ単位となる。
図7Dは新たな(すなわち、注目曲率半径R
mを記憶した)予定走行経路データ単位500c−mのデータ構造を示す図である。すなわち、予定走行経路データ単位500c−mは、サブゴール点座標記憶領域500c−m1と姿勢情報記憶領域500c−m2に加えて、注目曲率半径記憶領域500c−m4をさらに含むデータ構造となる。
【0092】
注目曲率半径R
mを注目サブゴール点P
amに関連づけて記憶した後、曲率算出部74は、全てのサブゴール点P(P
0,P
1,P
2,・・・P
n)に対して注目曲率半径Rを算出したかどうかを確認する(ステップS25)。
全てのサブゴール点に対して注目曲率半径Rを算出していない場合(ステップS25において、「No」の場合)、曲率算出部74は、上記のkをmからm+1に増加して、上記のステップS21に戻る。そして、上記のステップS21〜ステップS24を再び実行する。これにより、次の注目サブゴール点P
a(m+1)における注目曲率半径R
m+1が算出され記憶部73に記憶される。
一方、全てのサブゴール点Pに対して注目曲率半径Rを算出したと判断した場合(ステップS25において、「Yes」の場合)、すなわち、上記のkがnである時、曲率算出部74は、注目曲率半径の算出と記憶を終了する。
【0093】
なお、上記ステップS1を終了後最初に上記に示したステップS21〜ステップS25を実行する場合、kは0に設定されている。従って、
図6Cに示したステップS21〜ステップS25を実行することにより、kは0からnまで増加され、各サブゴール点に対して注目円の半径r
0,r
1,r
2,・・・r
n(注目曲率半径R
0,R
1,R
2,・・・R
n)が算出され記憶部73に記憶される。その結果、曲率算出部74は、予定走行経路データ単位500c−k(k=1,2,・・,m,・・,n(n:整数))の集合体であって、注目曲率半径Rの集合体を含んだ新たな予定走行経路データ500c(
図7E)を生成できる。
図7Eは、注目曲率半径Rの集合体をさらに有する予定走行経路データ500cのデータ構造を示す図である。予定走行経路データ500cは、サブゴール点座標値集合体記憶領域G
sと、姿勢情報集合体記憶領域G
θに加えて、注目曲率半径Rの集合体を記憶する注目曲率半径集合体記憶領域G
Rをさらに有する。
【0094】
III.再現走行モードの実行時における自律走行台車の動作
次に、
図6Aに示したフローチャートのステップS3において、上記ステップにより作成した予定走行経路データ500cに基づいて、自律走行台車100が自律的に走行するときの動作について説明する。
まず、再現走行モードの実行時における自律走行台車100の動作を説明するに際して必要になる、対向二輪差動型の走行部2による自律走行台車100の走行原理の説明を以下に示す。
【0095】
III−1.対向二輪差動型の走行部による自律走行台車の走行原理
ここで、
図1に示す走行部2のような、対向二輪差動型の走行部2による自律走行台車100(台車部1)の走行原理を説明する。
図8のように、自律走行台車100の車幅(走行部2の第1主輪21aの前方方向に向かう軸方向の中心と第2主輪21bの前方方向に向かう軸方向の中心との距離として定義)をWとする。このとき、自律走行台車100の中心Cから第1主輪21aの中心までの幅、及び、自律走行台車100の中心Cから第2主輪21bの中心までの幅は、それぞれ、W/2(車幅の半分の幅)となる。
図8は、自律走行台車の車幅の定義を示す図である。
次に、自律走行台車100が、制御周期T
cの間に
図9に示すような走行経路を右旋回したとする。すなわち、自律走行台車100の中心Cが、制御周期T
cの間に、中心曲率半径R
Cの走行経路を、現在位置P’から次の移動目標点P
i+1まで、旋回角度Θにて移動したとする。
また、外輪側の主輪(
図9の場合は第1主輪21a)が移動した軌跡の曲率半径をR
out、内輪側の主輪(
図9の場合は第2主輪21b)が移動した軌跡の曲率半径をR
inとする。
図9は、自律走行台車100が走行する走行経路の一例を示す図である。
【0096】
この場合、自律走行台車100の中心Cが移動した軌跡(
図9の点線にて示す軌跡)の長さ、走行経路の外輪側の主輪が移動した軌跡(一点鎖線にて示す軌跡)の長さ、及び、内輪側の主輪が移動した軌跡(二点鎖線にて示す軌跡)の長さは、それぞれ、R
C×Θ(Θはラジアン角度とする。以後、角度はラジアン角度として扱う)、R
out×Θ、R
in×Θ、と表現される。そして、
図8に示した車幅の定義より、R
outはR
C+W/2、R
inはR
C−W/2と表せる。
従って、
図9のような右旋回の走行経路を自律走行台車100が走行したときの、中心Cの中心速度V
C、外輪側の主輪回転速度V
out、内輪側の主輪回転速度V
inは、それぞれ、以下のように表される。
V
C=R
C×Θ/T
c
V
out=R
out×Θ/T
c=(R
C+W/2)×Θ/T
c=V
C+W/2×Θ/T
c
V
in=R
in×Θ/T
c=(R
C−W/2)×Θ/T
c=V
C−W/2×Θ/T
c
【0097】
また、上記の式で表されるV
out及びV
inは、それぞれ、以下のように表される。
V
out=V
1+V
2
V
in=V
1−V
2
ここで、V
1=V
c、V
2=W/2×Θ/T
cとしている。このように、主輪回転速度V
out及びV
inは、それぞれ、V
1とV
2との和及び差によって表される。ここで、V
1及びV
2を、それぞれ、第1回転速度V
1、第2回転速度V
2と定義する。
【0098】
上記の式から分かることは、対向二輪差動型の走行部2を備えた自律走行台車100は、外輪側の主輪回転速度V
outを第1回転速度V
1(すなわち、中心速度V
C)より第2回転速度V
2分大きし、内輪側の主輪回転速度V
inを第1回転速度V
1より第2回転速度V
2分小さくすることにより、曲がった走行経路を走行できる。
従って、第1回転速度V
1は、自律走行台車100(中心C)の走行速度を決定する走行速度成分であり、第2回転速度V
2は、自律走行台車100の内外輪回転差を決定し、自律走行台車100の旋回運動を決定する旋回成分であると定義できる。すなわち、第2回転速度V
2は、自律走行台車100の姿勢を制御する速度成分である。
【0099】
ここで、上記の理論式の第2回転速度V
2は、旋回角度Θのみの関数となっている。そのため、上記の理論式を用いて算出された第2回転速度V
2に基づいて主輪の回転速度を制御すると、自律走行台車100は、本来の次の移動目標点P
i+1から外れた位置に到達してしまう、及び/又は、次の移動目標点P
i+1における自律走行台車100の姿勢が、本来の姿勢とは異なってしまうことがあった。その結果、自律走行台車100が、予定走行経路データ500cに示された予定走行経路を忠実に再現できなくなることがあった。
【0100】
そこで、本実施形態においては、自律走行台車100の姿勢を制御する第2回転速度V
2を、注目曲率半径R(すなわち、予定走行経路の形状)に基づき調整された制御パラメータK
pと旋回角度Θとの積として、以下の式により算出することとした。
V
2=K
p×V
d×Θ
【0101】
ここで、V
dは定数である。上記の式において、制御パラメータK
pが注目曲率半径Rに基づいて調整されるので、第2回転速度V
2を、同一の旋回角度Θであっても、注目曲率半径Rの大きさ(予定走行経路の形状)に基づいて最適な回転速度として算出できる。その結果、自律走行台車100の各移動目標点(サブゴール点)における姿勢のずれを減少できる。
【0102】
また、上記の式における旋回角度Θを、次の移動目標点P
i+1における姿勢角θ
i+1と、現在位置P’における実際の姿勢角θ’を用いて、Θ=θ
i+1−θ’として算出する。すなわち、旋回角度Θを、現在位置の実際の姿勢角θ’と次の移動目標点P
i+1における姿勢角θ
i+1との差とした。現在位置の姿勢角と次の移動目標点の姿勢角との差を、「姿勢角度差」と呼ぶ。 なお、後述するように、再現走行モードの実行時における現在位置P’の実際の姿勢角θ’は、位置推定部72にて推定される。また、次の移動目標点P
i+1における姿勢角θi+1は、予定走行経路データ500cから読み出す。
これにより、自律走行台車100の主輪と自律走行台車100が走行中の走行面との間に滑りが生じ、現在位置P’における実際の姿勢角θ’が本来の姿勢角からずれた場合であっても、次の移動目標点P
i+1においては、当該姿勢角のずれを減少できる。
【0103】
そして、第2回転速度V
2は、注目曲率半径Rに基づき調整された制御パラメータK
pと姿勢角度差Θ=θ
i+1−θ’との積であるので、現在位置P’の姿勢角θ’が本来の姿勢角からずれた場合であっても、自律走行台車100の姿勢が過剰に制御されたり、又は、姿勢の制御量が不足したりすることなく、次の移動目標点P
i+1において、姿勢角θ
i+1のずれを減少できる。
【0104】
なお、第1回転速度V
1は、上記の理論式V
C=R
C×Θ/T
cを用いて、現在位置P’の座標値、次の目標移動点P
i+1の座標値、及び、姿勢角度差Θ(=θ
i+1−θ’)に基づいて算出されてもよいし、一定値としておいてもよい。第1回転速度V
1を一定値とできるときは、例えば、主輪と走行面との滑りの影響が少ない、あるいは、モータの制御周期T
cが短いなどの理由により、滑りによる位置ずれが生じにくい場合が考えられる。
再現走行指令部753の計算負荷などを考慮して、上記のいずれを選択するかを決定できる。
【0105】
III−2.再現走行モードの実行時における自律走行台車の動作
次に、上記に示した式を用いながら、
図6AのステップS3における再現走行モードの実行時における自律走行台車100の動作について、
図6Dを用いて説明する。
図6Dは、再現走行モードの実行時における自律走行台車100の動作を示すフローチャートである。
以下の説明においては、自律走行台車100が、
図10に示すように、サブゴール点P
mから次のサブゴール点P
m+1までを走行中である場合を例にとって説明する。
図10は、自律走行台車100が現在位置P’からサブゴール点P
m+1まで移動する様子を示す図である。
【0106】
まず、自律走行台車100による再現走行を開始するときに、操作者が設定部53などで走行モードを再現走行モードに切り替える(ステップS31)。このとき、走行モードの再現走行モードへの切替を受信した切替部77は、駆動切替部751に対して端子eと端子fとを接続するように指令する。その結果、モータ制御部755は、再現走行指令部753において生成された再現走行指令に基づいて、第1モータ23a及び第2モータ23bを制御可能となる。
【0107】
次に、位置推定部72が、自律走行台車100の現在位置P’の座標値及び姿勢角の推定を行う(ステップS32)。今、位置推定部72が、自律走行台車100の現在位置をP’(x’,y’)と推定し、現在位置P’における自律走行台車100の姿勢角をθ’と推定したとする。
このように、位置推定部72が、現在位置P’の位置と姿勢角を推定することにより、第1主輪21a及び第2主輪21bの滑りなどの影響を考慮して、精度よく現在位置P’の位置及び姿勢角を推定できる。その結果、予定走行経路データ500cに示された予定走行経路を忠実に走行するように、主輪21a及び21bの回転速度を制御できる。
【0108】
自律走行台車100の現在位置P’の座標値(x’,y’)及び姿勢角θ’を推定後、制御パラメータ調整部757が、最適な制御パラメータK
pを決定するため、予定走行経路データ500cから注目曲率半径Rを抽出する(ステップS33)。
今、自律走行台車100は、サブゴール点P
mからサブゴール点P
m+1までを走行中であるため、注目曲率半径Rとして、サブゴール点P
mに関連づけられた注目曲率半径R
mが抽出される。
【0109】
注目曲率半径R
mを抽出後、制御パラメータ調整部757は、抽出した注目曲率半径R
mに基づいて、現在位置P’から次の移動目標点(サブゴール点P
m+1)まで移動するために最適な制御パラメータK
pを決定する(ステップS34)。
具体的には、制御パラメータ調整部757は、注目曲率半径Rと制御パラメータK
pとの関係を表したR−K
pグラフを用いて、最適な制御パラメータK
pを決定する。本実施形態においては、
図11に示すようなR−K
pグラフを用いて最適なK
pを決定する。
図11は、本実施形態における、注目曲率半径Rと制御パラメータK
pとの関係(R−K
pグラフ)を示す図である。
制御パラメータK
pは、例えば、
図11に示すR−K
pグラフを用いて、注目曲率半径Rに基づき以下のように決定される。
(i)R≦R
1のとき:K
p1(一定値)
(ii)R≧R
2のとき:K
p2(K
p1>K
p2)(一定値)
(iii)R
1<R<R
2のとき:A−B×R
【0110】
なお、上記(iii)において、R=R
1とした場合、K
p=A−B×R
1はK
p1と等しくなり、R=R
2とした場合、K
p=A−B×R
2はK
p2と等しくなる。これにより、制御パラメータK
pは、
図11に示すように、注目曲率半径Rの値に対して連続的に変化するようになる。
また、制御パラメータK
pは、注目曲率半径Rが第1曲率半径値R
1よりも小さいときK
p1となり、注目曲率半径Rが第2曲率半径値R
2よりも大きいときK
p2となり、K
p1>K
p2が成立している。すなわち、制御パラメータ調整部757は、注目曲率半径Rが小さく(部分予定走行経路の曲がりが急峻に)なるほど制御パラメータK
pを大きくし、注目曲率半径Rが大きく(部分予定走行経路の曲がりが緩やかに)なるほど制御パラメータK
pを小さくするよう、制御パラメータK
pを決定する。
【0111】
このように、注目曲率半径Rが小さくなるほど制御パラメータK
pを大きくし、注目曲率半径Rが大きくなるほど制御パラメータK
pを小さくすることにより、同じ速度偏差(及び姿勢角の差)に対して、部分予定走行経路の曲がりが急峻なときにはより大きな姿勢角フィードバック制御量(第2回転速度V
2)を、部分予定走行経路の曲がりが緩やかなときにはより小さな姿勢角フィードバック制御量を算出できる。
【0112】
次に、再現走行指令部753が、再現走行指令である、第1主輪21aの第1主輪回転速度V
aの目標値及び第2主輪21bの第2主輪回転速度V
bを生成する(ステップS35)。具体的には、再現走行指令部753は、次のようにして再現走行指令を生成する。
まず、再現走行指令部753は、予定走行経路データ500cのサブゴール点座標値集合体記憶領域Gsから、サブゴール点P
m+1の座標値(x
m+1,y
m+1)を読み込む。また、再現走行指令部753は、予定走行経路データ500cの姿勢情報集合体記憶領域G
θに記憶され、サブゴール点P
m+1に関連づけられている姿勢角θ
m+1を読み出す。
【0113】
そして、再現走行指令部753は、現在位置P’からサブゴール点P
m+1まで移動する時の第1主輪回転速度V
a及び第2主輪回転速度V
bを再現走行指令として算出する。
具体的には、まず、再現走行指令部753は、自律走行台車100が現在位置P’からサブゴール点P
m+1まで移動するときの旋回角度Θを算出する。旋回角度Θは、サブゴール点P
m+1における姿勢角θ
m+1と、ステップS32において推定された現在位置P’における姿勢角θ’との差(姿勢角度差)、すなわち、θ
m+1−θ’と算出される。
【0114】
次に、再現走行指令部753は、第2回転速度V
2を、上記にて算出した姿勢角度差θ
m+1−θ’を用いて、V
2=K
p×V
d×(θ
m+1−θ’)と算出する。
なお、第1回転速度V
1は、上記の理論式V
1=V
c=R
C×Θ/T
cに基づいて算出されてもよい。ここで、T
cは制御周期となる。また、中心曲率半径R
cについては、例えば、次のようにして算出できる。
【0115】
まず、現在位置P’(x’,y’)とサブゴール点P
m+1(x
m+1,y
m+1)との直線距離を{(x
m+1−x’)
2+(y
m+1−y’)
2}
0.5として算出する。そして、中心曲率半径R
Cは、以下に示す式から算出できる。以下に示す式は、
図10に示す二等辺三角形P’OP
m+1において余弦定理を用いることにより導き出せる。
R
C2={(x
m+1−x’)
2+(y
m+1−y’)
2}/(2−2cosΘ)
【0116】
上記の式から分かるように、第1回転速度V
1を上記の理論式を用いて算出することにより、現在位置P’とサブゴール点P
m+1(x
m+1,y
m+1)との間の距離と、旋回角度(姿勢角度差)Θとにより、第1回転速度V
1を表現できる。従って、現在位置P’が、本来の位置からずれた位置にあったり、現在位置P’における姿勢が本来の姿勢からずれていたりした場合でも、次の移動目標点(サブゴール点P
m+1)に到達するまでに、生じた位置ずれ及び/又は姿勢のずれを減少できる。
【0117】
次に、再現走行指令部753は、第1主輪回転速度V
a及び第2主輪回転速度V
bを、算出した第1回転速度V
1及び第2回転速度V
2を用いて算出する。今、第1主輪回転速度V
a及び第2主輪回転速度V
bのそれぞれが、第1回転速度V
1及び第2回転速度V
2の和として表現されるのか、それとも、差として表現されるのかを考える。
【0118】
第2回転速度V
2は、上記の式に示されているように、
図4にて示した姿勢角θの定義では、右旋回する場合は負値となり、逆に左旋回する場合には正値となる。なぜなら、
図10に示すように、自律走行台車100が右旋回する場合、旋回後の姿勢角θ
m+1は、旋回前の姿勢角θ’よりも小さな角度となるからである。一方、左旋回する場合には、旋回後の姿勢角θ
m+1は、旋回後の姿勢角θ’よりも大きな角度となる。
【0119】
図10に示すように、第1主輪21aは右旋回のときに外輪側の主輪となり、左旋回のときに内輪側の主輪となる。従って、第1主輪回転速度V
aは、右旋回のときに第1回転速度V
1より第2回転速度V
2分大きくなり、左旋回のときに第2回転速度V
2分小さくなる。そして、第2回転速度V
2は、右旋回のときに負値となり、左旋回のときに正値となる。
従って、
図4に示した本実施形態における姿勢角θの定義においては、第1主輪回転速度V
aは、第1回転速度V
1と第2回転速度V
2との差(V
1−V
2)として表現される。よって、第1主輪回転速度Vaは、以下のように算出される。
V
a=V
1−K
p×V
d×(θ
m+1−θ’)
【0120】
一方、第2主輪21bは左旋回のときに外輪側の主輪となり、右旋回のときに内輪側の主輪となる。従って、第2主輪回転速度V
bは、左旋回のときに第1回転速度V
1より第2回転速度V
2分大きくなり、右旋回のときに第2回転速度V
2分小さくなる。従って、
図4に示した本実施形態における姿勢角θの定義においては、第1主輪回転速度V
aは、第1回転速度V
1と第2回転速度V
2との和(V
1+V
2)として表現される。よって、第2主輪回転速度V
bは、以下のように算出される。
V
b=V
1+K
p×V
d×(θ
m+1−θ’)
【0121】
なお、旋回角度(姿勢角度差)Θ=θ
m+1−θ’が0の場合、自律走行台車100は現在位置P’からサブゴール点P
m+1までを最短距離にて走行する。この場合、第2回転速度V
2は0となる。一方、第1回転速度V
1は、以下のように算出されてもよい。
V
1={(x
m+1−x’)
2+(y
m+1−y’)
2}
0.5/T
c
【0122】
再現走行指令部753が、上記のように、第1主輪回転速度V
a及び第2主輪回転速度V
bを姿勢角度差(旋回角度)Θに基づいて算出することにより、主輪と走行面との滑りにより現在位置の位置や姿勢角が本来の位置や姿勢角よりもずれていた場合であっても、次の移動目標点において本来の位置や姿勢角とのずれが減少するよう、自律走行台車100の姿勢(姿勢角)を制御できる。
【0123】
また、再現走行指令部753が、第1主輪回転速度V
a及び第2主輪回転速度V
bを、注目曲率半径Rに基づいて最適化された制御パラメータK
pに基づいて算出することにより、同じ姿勢角度差に対して、部分予定走行経路の曲がりが急峻である場合にはより大きな回転速度を指令値として出力し、部分予定走行経路の曲がりが緩やかな場合にはより小さな回転速度を指令値として出力できる。
その結果、予定走行経路の形状(曲がり)に合わせた最適な走行が可能となる。すなわち、部分予定走行経路の曲がりが急峻である場合には、第1主輪21a及び第2主輪21bは、より早く目標の第1主輪回転速度V
a及び第2主輪回転速度V
bに到達できる。一方、部分予定走行経路の曲がりが緩やかである場合には、第1主輪21a及び第2主輪21bが過剰に制御されることを抑制できる。
【0124】
さらに、再現走行指令部753が、第1主輪回転速度V
a及び第2主輪回転速度V
bを、注目曲率半径Rに基づいて最適化された制御パラメータK
pと姿勢角度差との積として算出することにより、現在位置P’の姿勢角θ’が本来の姿勢角からずれた場合であっても、自律走行台車100の姿勢が過剰に制御されたり、又は、姿勢の制御量が不足したりすることなく、次の移動目標点P
i+1において、姿勢角θ
i+1のずれを減少できる。その結果、自律走行台車100は、再現走行モードの実行時に、教示された予定走行経路を忠実に再現走行可能となる。
【0125】
上記のようにして、第1主輪回転速度V
a及び第2主輪回転速度V
bを算出後、再現走行指令部753は、算出された第1主輪回転速度V
a及び第2主輪回転速度V
bを、駆動切替部751を介して、モータ制御部755に出力する。
【0126】
ステップS35にて算出した第1主輪回転速度V
a及び第2主輪回転速度V
bを受信後、モータ制御部755は、算出された第1主輪回転速度V
a及び第2主輪回転速度V
bに基づいて、それぞれ、第1モータ23a及び第2モータ23bの回転数を制御する(ステップS36)。
【0127】
具体的には、モータ制御部755は、エンコーダ231a、231bなどにて測定された実際の第1主輪回転速度V
a(act)及び第2主輪回転速度V
b(act)が、それぞれ、算出された第1主輪回転速度V
a及び第2主輪回転速度V
bに追随するよう、第1モータ23a及び第2モータ23bの回転数を制御する。
従って、モータ制御部755から第1モータ23a及び第2モータ23bへ出力される制御量Q
1及びQ
2は、それぞれ、実際の第1主輪回転速度V
a(act)と算出された第1主輪回転速度V
aとの差、及び、第2主輪回転速度V
b(act)と第2主輪回転速度V
bとの差に基づいて決定される。
【0128】
ステップS36にて第1モータ23aおよび第2モータ23bの回転数の制御を行った後、モータ駆動部75は、自律走行台車100が走行終了位置に到達したかどうかを確認する(ステップS37)。
モータ駆動部75は、例えば、予定走行経路データ500c中の全てのサブゴール点(と姿勢角)を読み出したかどうかを判定することにより、自律走行台車100が走行終了位置に到達したかどうかを確認する。予定走行経路データ500cの全てのサブゴール点を読み出したかどうかは、例えば、再現走行指令部753が、予定走行経路データ500cの電子ファイルの終端を示す識別子(例えば、「エンド・オブ・ファイル」識別子)を読み込んだかどうかにより判定できる。
自律走行台車100が走行終了位置まで到達したと判定された場合(ステップS37において「Yes」の場合)、再現走行モードの実行を停止する。
一方、自律走行台車100が走行終了位置まで到達していないと判定された場合(ステップS37において「No」の場合)、ステップS32〜S36までのステップを繰り返す。
【0129】
これにより、自律走行台車100は、予定走行経路データ500cに基づいて、予定走行経路データ500cに示された予定走行経路を忠実に再現走行できる。
【0130】
(7)本実施形態の効果
上記第1実施形態の効果は、以下のように記載できる。
自律走行台車100(自律走行台車の一例)は、予定走行経路(予定走行経路の一例)を教示する教示走行モード(教示走行モードの一例)と、予定走行経路を再現しながら自律的に走行する再現走行モード(再現走行モードの一例)とを実行する自律走行台車である。
自律走行台車100は、台車部1(台車部の一例)と、走行部2(走行部の一例)と、教示部71(教示部の一例)と、曲率算出部74(曲率算出部の一例)と、制御パラメータ調整部757(制御パラメータ調整部の一例)と、を備える。
走行部2は、台車部1に搭載される。また、走行部2は、台車部1を走行させる。
教示部71は、教示走行モードの実行時に、サブゴール点P
k(サブゴール点の一例)(k=0,1,2,・・・,m,・・・n)を取得する。そして、教示部71は、予定走行経路データ500a(予定走行経路データの一例)をサブゴール点P
kの集合体として記憶する。
曲率算出部74は、注目曲率半径R(注目曲率半径の一例)を算出し記憶する。制御パラメータ調整部757は、再現走行モードの実行時に、曲率算出部74において算出された注目曲率半径Rに基づいて、走行部2の姿勢角フィードバック制御量(制御量の一例)を決定する制御パラメータK
p(制御パラメータの一例)を調整する。
【0131】
自律走行台車100において、まず、教示部71が、教示走行モードの実行時に、サブゴール点P
kの集合体としての予定走行経路データ500aを取得し記憶する。次に、曲率算出部74が、記憶した予定走行経路データ500aを用いて、予定走行経路データ500aに含まれる各サブゴール点を注目サブゴール点P
am(注目サブゴール点の一例)としたときの注目曲率半径R
mを算出し、予定走行経路データ500cに記憶する。そして、自律走行台車100が予定走行経路を予定走行経路データ500cに基づいて再現走行するとき(再現走行モードの実行時)に、制御パラメータ調整部757が、算出された注目曲率半径Rに基づいて、制御パラメータK
pを調整する。さらに、走行部2の姿勢角フィードバック制御量が、調整された制御パラメータK
pを用いて決定される。
【0132】
これにより、自律走行台車100(台車部1)は、予定走行経路の形状(曲がり)に合わせた最適な走行が可能となる。なぜなら、制御パラメータ調整部757が、注目曲率半径Rに基づいて制御パラメータK
pを調整し、その結果、走行部2を制御するための姿勢角フィードバック制御量が、注目曲率半径Rに基づいて調整された制御パラメータK
pに基づいて算出されるからである。
そのため、自律走行台車100は、再現走行モードの実行時に、教示された予定走行経路を忠実に再現走行可能となる。
【0133】
自律走行台車100において、走行部2は、第1主輪21a(第1主輪の一例)と、第2主輪21b(第2主輪の一例)とを有している。また、第2主輪21bは、第1主輪21aと対向するように設けられる。さらに、第1主輪回転速度V
a(第1主輪回転速度の一例)及び第2主輪回転速度V
b(第2主輪回転速度の一例)は、第1回転速度V
1(第1回転速度の一例)と第2回転速度V
2(第2回転速度の一例)を含んでいる。さらに、第2回転速度V
2は、姿勢角フィードバック制御量に基づき制御されている。
これにより、第1主輪21aと第2主輪21bを有する対向二輪差動型の走行部2の位置及び姿勢を制御できる。
【0134】
自律走行台車100において、姿勢角フィードバック制御量は、姿勢角度差θ
m+1−θ’(姿勢角度差の一例)と制御パラメータK
pとの積に基づいて算出される。
これにより、走行部2の第1主輪21a及び第2主輪21bの滑りにより、現在位置P’における台車部1(自律走行台車100)の位置及び/又は姿勢が、本来の位置及び/又は姿勢とずれていた場合でも、次の移動目標点P
m+1においてそのずれを小さくできる。
そして、自律走行台車100は、予定走行経路の形状(曲がり)に合わせた最適な走行が可能となる。その結果、自律走行台車100は、再現走行モードの実行時に、教示された予定走行経路を忠実に再現走行可能となる。
【0135】
自律走行台車100において、予定走行経路データ500cには注目曲率半径Rがサブゴール点P
kに関連づけられて記憶されている。
これにより、制御パラメータ調整部757は、予定走行経路データ500cから注目曲率半径Rを抽出して、注目曲率半径Rに基づいて、各サブゴール点において最適な制御パラメータK
pを決定できる。
【0136】
自律走行台車100において、予定走行経路データ500cには、姿勢角θ(姿勢角の一例)がサブゴール点P
kに関連づけられて記憶されている。これにより、教示走行モードの実行時のサブゴール点Pにおける台車部1の姿勢を、予定走行経路データ500cに記憶できる。その結果、自律走行台車100は、再現走行モードの実行時に、予定走行経路データ500cに基づき、教示された予定走行経路における姿勢を忠実に再現できる。
【0137】
自律走行台車100において、部分予定走行経路(部分予定走行経路の一例)は注目サブゴール点P
am(注目サブゴール点の一例)と、第1サブゴール点P
f(m+H)(第1サブゴール点の一例)と、第2サブゴール点P
s(m−I)(第2サブゴール点の一例)と、の3点により形成された走行経路である。
また、第1サブゴール点P
f(m+H)と第2サブゴール点P
s(m−I)は、注目サブゴール点P
amから所定の距離(所定の距離の一例)以上離れているサブゴール点P
kの中で注目サブゴール点P
amに最も近いサブゴール点P
kである。
【0138】
自律走行台車100において、曲率算出部74は、注目曲率半径Rとして、注目円(注目円の一例)の半径r(半径の一例)を算出している。これにより、曲率算出部74は、より簡単に注目曲率半径Rを算出できる。
【0139】
自律走行台車100において、姿勢角フィードバック制御量は所定の制御周期T
c(制御周期の一例)ごとに算出される。これにより、計算負荷などを考慮して、走行部2の制御を、遅れを生じさせることなく実行できる。
【0140】
自律走行台車100は、位置推定部72(位置推定部の一例)をさらに備えている。
これにより、台車部1(自律走行台車100)の位置及び姿勢を精度よく推定できる。その結果、操作者により教示された予定走行経路を、予定走行経路データ500cとして忠実に再現できる。また、自律走行台車100の位置及び姿勢を精度よく推定することにより、自律走行台車100が予定走行経路を忠実に走行するように、走行部2を精度よく制御できる。
【0141】
予定走行経路データ500cは、サブゴール点座標値集合体記憶領域G
s(サブゴール点座標値集合体記憶領域の一例)と、注目曲率半径集合体記憶領域G
R(注目曲率半径集合体記憶領域の一例)と、により構成されている。サブゴール点座標値集合体記憶領域G
sは、サブゴール点P
kを座標値の集合体として記憶する。注目曲率半径集合体記憶領域G
Rは、注目曲率半径Rを集合体として記憶する。
そして、自律走行台車100が予定走行経路データ500cに基づいて予定走行経路を自律的に走行する時に、自律走行台車100の走行部2の姿勢角フィードバック制御量を決定する制御パラメータK
pが、注目曲率半径集合体記憶領域G
Rに記憶された注目曲率半径Rに基づいて決定される。
【0142】
このようなデータ構造を有する予定走行経路データ500cを用いて、自律走行台車100は、再現走行モードの実行時に、予定走行経路の形状(曲がり)に合わせた最適な走行が可能となる。なぜなら、制御パラメータK
pが、注目曲率半径Rに基づいて調整されるからである。その結果、走行部2を制御するための姿勢角フィードバック制御量が、注目曲率半径Rに基づいて調整された制御パラメータK
pに基づいて算出される。
そのため、自律走行台車100は、再現走行モードの実行時に、教示された予定走行経路を忠実に再現走行可能となる。
【0143】
予定走行経路データ500cは、姿勢情報集合体記憶領域G
θ(姿勢情報集合体記憶領域の一例)をさらに有している。姿勢情報集合体記憶領域G
θは、サブゴール点P
kにおける自律走行台車100の姿勢に関する情報である姿勢角θを集合体として記憶する。
これにより、自律走行台車100は、再現走行モードの実行時に、予定走行経路データ500cに基づき、教示された予定走行経路における姿勢を忠実に再現できる。
【0144】
2.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
(A)予定走行経路データの取得についての他の実施形態
上記の第1実施形態においては、予定走行経路データ500a中に含まれるノイズ成分に影響されない部分予定走行経路の注目曲率半径Rを算出するため、第1サブゴール点P
fと第2サブゴール点P
sとして、注目サブゴール点P
aから所定の距離以上離れているサブゴール点Pの中で注目サブゴール点P
aに最も近いサブゴール点Pを選択していた。しかし、それに限られない。
ノイズ成分に影響されない部分予定走行経路の注目曲率半径Rを算出するため、教示走行モード時に取得した予定走行経路データ500aに対して適当なデータ処理を行ってもよい。例えば、注目サブゴール点P
aと、注目サブゴール点P
aの前後に存在する所定の数のサブゴール点Pとの平均値を算出し、算出された平均値を新たな注目サブゴール点P
aとして新たな予定走行経路データ500aを作成してもよい。予定走行経路データ500aに対して、このようなデータ処理を行うことによっても、予定走行経路データ500aに含まれるノイズ成分を取り除ける。
なお、この場合、曲率算出部74は、上記データ処理後の予定走行経路データ500aを用いて注目曲率半径Rを算出する。
【0145】
(B)注目曲率半径の算出方法についての他の実施形態
上記の第1実施形態においては、曲率算出部74は、注目サブゴール点P
aと、第1サブゴール点P
fと、第2サブゴール点P
sとを通る注目円の半径rを、注目曲率半径Rとして算出していた。しかし、これに限られない。曲率算出部74は、注目曲率半径として、注目サブゴール点P
aと、第1サブゴール点P
fと、第2サブゴール点P
sにより形成される三角形の、注目サブゴール点P
aにおける角度(注目点角度)を算出し、予定走行経路データ500aに記憶してもよい。この場合、注目点角度が小さいほど、部分予定走行経路の曲がりは急峻となる。
そして、この場合、制御パラメータ調整部757は、注目点角度に基づいて制御パラメータK
pを調整する。
このように、曲率算出部74が注目曲率半径として注目点角度を算出することによっても、(サブ)予定走行経路の形状に応じた制御パラメータK
pの調整ができる。
【0146】
(C)自律走行台車についての他の実施形態
上記の第1実施形態の自律走行台車100においては、操作者により教示された予定走行経路をサブゴール点Pの集合体としての予定走行経路データ500a、500cとして保持し、自律走行台車100は予定走行経路データ500cに基づいて自律走行を行っていた。しかし、予定走行経路は、予定走行経路データとして保持されている形態に限られない。
例えば、AGV(Automatic Guided Vehicle、無人搬送車)のように、レールや磁気テープなどにより走行するべき経路(予定走行経路)を示していてもよい。この場合、例えば、磁気テープなどが形成する経路の形状を適当なセンサーなどで検出し、検出された経路の曲がり(曲率半径)に基づいて、AGVなどの台車の車輪の制御量を決定する制御パラメータを調整できる。