説明

移動体制御システム及び移動体の可動部の絶対位置算出方法

【課題】移動体の可動部の絶対位置を精度よく算出することができる移動体制御システムを提供する。
【解決手段】 移動体と、送信時間情報を含んだ信号を送信する装置とを備えた移動体制御システムであり、移動体は、本体と、可動部と、可動部を駆動するアクチュエータと、本体に取付けられ、信号を受信する信号受信部と、信号から信号受信部の絶対位置を算出する位置算出部と、アクチュエータの駆動量検出部と、位置算出部で算出された位置情報と検出された駆動量から可動部の絶対位置を算出する機能部を備えており、絶対位置算出部は、タイマと、検出される駆動量を検出時間と共に記憶する記憶部と、送信時間情報から信号が送信された時点の駆動量を記憶部の中から特定する特定部と、その駆動量と本体位置算出装置で算出した位置情報から、信号送信時の可動部の絶対位置を算出する算出部を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号送信装置と、空間内を移動する移動体を備えた移動体制御システムに関する。
【背景技術】
【0002】
GPS等の位置検出システムによって、移動体の位置を認識しながら移動体を制御するする移動体制御システムが知られている。この種の移動体制御システムは、移動体と、移動体が移動する空間に信号を送信する信号送信装置とによって構成されている。移動体は、本体と、その本体に関節を介して結合された可動部と、関節を駆動するアクチュエータと、信号送信装置が空間に送信する信号を受信する信号受信部と、信号受信部が受信した信号から信号受信部の絶対位置(以下では、本体の絶対位置という)を算出する本体位置算出部と、アクチュエータの駆動量を検出する駆動量検出部を有している。移動体は、空間内を移動しながらアクチュエータによって関節を駆動させ、可動部を運動させる。または、関節を駆動させ、可動部を運動させることによって空間内を移動する。
このような移動体では、可動部に所望の運動をさせるために、可動部の絶対位置が算出される。可動部の絶対位置の算出は、本体位置算出部が算出する本体の絶対位置と、駆動量検出部が検出する駆動量を用いて行われる。すなわち、アクチュエータの駆動量から本体に対する可動部の相対位置を算出し、算出した可動部の相対位置と本体の絶対位置から、可動部の絶対位置が算出される。
なお、上述した信号を利用して本体の絶対位置を検出する移動体については、特許文献1に開示されている。
【0003】
【特許文献1】特開2004−17248号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
上述した移動体の制御システムでは、信号受信部で信号を受信してから本体の絶対位置が算出されるまでの間に、僅かな時間tを要する。すなわち、受信した信号から算出された本体の絶対位置は、算出された時点よりも時間tだけ前の時点の本体の絶対位置となっている。従って、本体が移動している場合には、本体の絶対位置を算出したタイミングにおける実際の本体の位置は、算出した本体の絶対位置とは僅かに異なる位置となる。このため、算出された絶対位置と算出した時点でのアクチュエータの駆動量に基づいて可動部の絶対位置を算出しても、その算出された絶対位置は正しい絶対位置とはならない。可動部の絶対位置を正確に算出することができないと、可動部を正確に運動させることができないという問題が生じる。
例えば、本体に関節を介して接続された可動部によって脚部が構成され、脚部を駆動することによって目標位置まで移動する移動体では、脚部の位置を基準として制御することがある。しかし、上述したように、本体の絶対位置の算出に時差が生じると、脚部の絶対位置が正確に算出されない。したがって、実際には脚部が目標位置に到達しているにもかかわらず、脚部が目標位置に到達していないと判定されるために、さらに脚部が駆動される。従って、移動体を目標位置で停止させることができない。
【0005】
本発明は、上記した実情に鑑みてなされたものであり、移動体の可動部を精度良く運動させる移動体制御システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の移動体制御システムは、空間内を移動する移動体と、送信時間を示す時間情報を含んだ信号を前記空間内に対して送信する信号送信装置とを備えている。移動体は、本体と、その本体に関節を介して結合された可動部と、関節を駆動するアクチュエータと、本体に取付けられ、信号送信装置が空間に送信する信号を受信する信号受信部と、信号受信部が受信した信号から信号受信部の絶対位置を算出する本体位置算出部と、アクチュエータの駆動量を検出する駆動量検出部と、本体位置算出部で算出した位置情報と駆動量検出部で検出されたアクチュエータの駆動量から可動部の絶対位置を算出する絶対位置算出部と、を備えている。その絶対位置算出部は、駆動量検出部でアクチュエータの駆動量を検出した時間を計時するタイマと、所定の時間間隔で駆動量検出部により検出されるアクチュエータの駆動量をタイマで計時された検出時間と共に順に記憶する記憶部と、本体位置算出部で算出した位置情報に対応する信号の送信時間情報に基づいて、信号が送信された時点におけるアクチュエータの駆動量を、記憶部に記憶されている駆動量の中から特定する駆動量特定部と、本体位置算出部で算出した位置情報と、駆動量特定部で特定した駆動量から、対応する信号の送信時における可動部の絶対位置を算出する可動部位置算出部を備えている。
この移動体制御システムでは、駆動量検出部で検出されるアクチュエータの駆動量は検出時間と共に順に記憶部に記憶される。また、信号送信装置は送信時間情報を含んだ信号を送信し、その信号は信号受信部で受信される。信号送信装置が送信する信号は、送信するのとほぼ同時に信号受信部に受信されるので、信号の送信時間情報は信号の受信時間を示している。本体位置算出部は、信号受信部が受信した信号に基づいて信号受信部の絶対位置を算出する。すると、駆動量特定部が、本体位置算出部が算出した位置情報に対応する信号の送信時間情報をキーとして、記憶部に記憶されている駆動量の中からそれらの信号を受信した時点におけるアクチュエータの駆動量を特定する。これによって、信号の受信時間と同じ時点におけるアクチュエータの駆動量が特定される。可動部位置算出部は、本体位置算出部が算出した位置情報と、駆動量特定部で特定した駆動量から、可動部の位置を特定する。従って、信号を受信した時点における可動部の絶対位置を精度良く算出することができる。
【0007】
上述の移動体制御システムでは、絶対位置算出部が、タイマで計時される時間と信号送信装置から送信される信号に含まれる時間情報とのズレを補正する補正部をさらに有していることが好ましい。タイマで計時される時間と信号に含まれる時間情報とのズレを補正することで、より精度よく可動部の絶対位置を算出することができる。
【0008】
タイマで計時される時間と信号に含まれる時間情報とのズレを補正する方法としては、例えば、次に記載する方法を採ることができる。
すなわち、補正部は、予め設定された動作パターンで本体に動作を行わせながら所定の時間間隔で本体位置算出部により信号受信部の絶対位置を算出し、本体に行わせた動作と本体位置算出部で算出した信号受信部の絶対位置軌道とのずれから、タイマで計時される時間と信号送信装置から送信される信号に含まれる時間情報とのズレを補正する。この方法によると、簡易な方法で両者のズレを補正することができる。
【0009】
上述した絶対位置算出部によって算出される可動部の絶対位置は、位置情報が送信された時点の絶対位置(すなわち、現時点より所定の時間tだけ前の可動部の絶対位置)となる。したがって、絶対位置算出部は、可動部位置算出部によって算出された可動部の絶対位置に基づいて、現在の可動部の絶対位置を予測する予測位置算出部をさらに有することが好ましい。過去の正確な絶対位置に基づいて現在の絶対位置を予測することで、現在の絶対位置を精度良く予測することができる。
なお、現在の絶対位置を予測する方法としては、可動部位置算出部で算出された絶対位置と、その時点から現在までの本体及び可動部への移動指令値とに基づいて算出することができる。
【0010】
また、本発明は、可動部の絶対位置を好適に算出することができる絶対位置算出方法を提供する。すなわち、本発明の絶対位置算出方法は、本体と、その本体に関節を介して結合された可動部と、関節を駆動するアクチュエータと、信号を受信する信号受信部と、アクチュエータの駆動量を検出する駆動量検出部と、時間を計時するタイマと、データを記憶する記憶部を備えた空間内を自由に移動する移動体と、信号受信部に対して送信時間情報を含んだ信号を送信する信号送信装置とを備えた移動体制御システムにおいて、移動体の可動部の絶対位置を算出する。この方法は、駆動量検出部で検出されたアクチュエータの駆動量をその検出時間と共に所定の時間間隔で順に記憶部に記憶するステップと、信号送信装置から送信時間を示す時間情報を含んだ信号を送信するステップと、上記信号を信号受信部で受信し、受信した信号から信号受信部の絶対位置を算出するステップと、信号受信部で受信した信号の送信時間情報に基づいて信号が送信された時点におけるアクチュエータの駆動量を、記憶部に記憶されている駆動量の中から特定するステップと、算出した信号受信部の絶対位置と、特定した駆動量から、可動部の絶対位置を算出するステップを有する。
この方法によると、可動部の絶対位置を精度良く算出することができる。
【発明を実施するための最良の形態】
【0011】
下記に詳細に説明する実施例の主要な特徴を最初に列記する。
(形態1)ロボット制御システムは、ロボットと、GPS信号出力装置と、複数のGPSアンテナによって構成されている。
(形態2)GPS信号出力装置は、時刻をカウントする時刻カウント部を備えており、GPS信号出力装置が時刻カウント部でカウントされた送信時刻情報を含んだ信号を各GPSアンテナに出力することによって、各GPSアンテナから同時に、送信時刻情報を含んだGPS電波が送信される。
(形態3)ロボットは、頭部と、頭部に取り付けられている第1可動部と、第1可動部に取り付けられている第2可動部と、・・、第n−1可動部に取り付けられている第n可動部を有している。頭部と第1可動部は関節によって接続されており、各可動部間も関節によって接続されている。各関節を駆動することによって、その関節によって接続されている各可動部が相対的に移動する。
(形態4)可動部群の一部によって脚部が構成されており、脚部の関節を駆動することによってロボットは歩行する。
(形態5)頭部には、GPSセンサ(GPS受信装置)が設置されている。
(形態6)GPSセンサは、GPS電波を受信し、受信したGPS電波を分析することでGPSセンサ自体の絶対位置を検出する。GPS電波によって伝送されるデータには、そのGPS電波を発信した時刻データが含まれている。GPSセンサは、検出された絶対位置と時刻データを出力する。
(形態7)各関節はモータを備えている。モータによって関節を駆動すると、その関節によって接続されている可動部が運動する。
(形態8)各モータはエンコーダを有しており、エンコーダはモータの回転角度を検出する。
(形態9)ロボットは制御装置を有している。制御装置は、GPSセンサと各エンコーダと各モータに電気的に接続されている。
(形態10)制御装置は、足部の絶対位置を算出する座標算出部を有している。座標算出部は、GPSセンサから出力されたGPSセンサの絶対位置及び時刻データと、各エンコーダの検出値から、足部の先端の絶対位置を算出する。
(形態11)制御装置は、各エンコーダの検出値と、座標算出部が算出した足部の先端の絶対位置に基づいて、モータに制御指令値を出力し、ロボットを歩行させる。
(形態12)座標算出部は、時刻をカウントするタイマと、GPSセンサから出力される本体の絶対位置と時刻データを読取る第1読取部と、各エンコーダの検出値を読取ると共にその検出時刻をタイマで計測する第2読取部と、第2読取部で読取った検出値をその検出時刻と関連付けて記憶する記憶部と、第1読取部で読取った時刻データをキーとして記憶部が記憶している検出値の中から、その時刻データと最も近い時刻データと関連付けられた検出値を特定する特定部と、第1読取部で読取った絶対位置と特定部で特定された検出値に基づいて可動部の絶対位置を算出する算出部を備えている。
【実施例】
【0012】
本発明の一実施例に係るロボット制御システム100について図面を参照しながら説明する。図1に示すように、ロボット制御システム100は、ロボット10と、GPS信号出力装置102と、4つのGPSアンテナ(いわゆる、室内GPS衛星)104a〜104dによって構成されている。
【0013】
図1に示すように、ロボット10が移動するフィールドの周囲には、複数のGPSアンテナ104a〜104dが取り付けられている。GPSアンテナ104a〜104dは、GPS信号出力装置102に接続されている。GPS信号出力装置102は、時刻tをカウントする時刻カウント部106を有している。GPS信号出力装置102は時刻カウント部106がカウントする時刻情報tを読取り、時刻情報tを含んだ電気信号(GPS信号)を各GPSアンテナ104a〜104dに出力する。すると、各GPSアンテナ104a〜104dは入力されたGPS信号を変換した電波(GPS電波)をロボットが移動する空間に同時に送信する。従って、ロボットが移動する空間に、時刻情報tを含んだGPS電波がそれぞれ送信される。GPS信号出力装置102はGPS信号を所定の周期で繰り返し出力するので、ロボットが移動する空間にはGPS電波が所定の周期で繰り返し送信される。また、GPS信号出力装置102が時刻情報tを読取ってからGPSアンテナ104a〜104dがGPS電波を送信するまでの処理はほぼ同時に行われるので、時刻情報tはそのGPS電波を送信した時刻を示している。
【0014】
ロボット10は、平坦な床面上に配置され、床面上を目標位置まで歩行して移動する自律移動ロボットである。
図1に示すように、ロボット10は、頭部12と、胴体部14と、腿部16、18と、脛部20、22と、足部24、26によって構成されている。頭部12と胴体部14は、関節30によって接続されている。胴体部14と腿部16は、関節32、34によって接続されている。腿部16と脛部20は、関節36によって接続されている。脛部20と足部24は、関節38によって接続されている。胴体部14と腿部18は、関節40、42によって接続されている。腿部18と脛部22は、関節44によって接続されている。脛部22と足部26は、関節46によって接続されている。腿部16、脛部20、足部24、及び関節32、34、36、38によって、右脚部50が形成されている。腿部18、脛部22、足部26、及び関節40、42、44、46によって、左脚部52が形成されている。
また、各関節には図示しないモータが配されている。モータを駆動することによって、各関節が駆動され、各関節の角度が変更される。各モータはエンコーダを有しており、エンコーダはモータの回転量を検出することによって、関節の角度φ〜φを検出する。各モータ及び各エンコーダは、図3に示すように、後述する制御装置60に接続されている。
【0015】
図2は、各関節の位置と、各関節の回転軸を模式的に示した図である。図2では、各関節の位置が点30〜46によって示されている。また、足部24、26の先端部24a、26aが点24a、26aによって示されている。また、後述するGPSセンサ58が取り付けられている頭部12の頂点12aの位置が点12aによって示されている。各点の相対位置がベクトルl〜l11によって示されている。図2に示すように、関節30〜46は、それぞれ角度φ〜φの方向に回転する。各関節のエンコーダは、各関角φ〜φを検出する。
【0016】
ロボット10は、GPS電波を受信するGPSセンサ58を備えている。GPSセンサ58は、頭部12の頂点12aに取り付けられている。GPSセンサ58は、各GPSアンテナ104a〜104dから送信されるGPS電波(すなわち、GPS信号)を受信し、受信したGPS信号に基づいてGPSセンサ58自体(すなわち、頭部12の頂点12a)の絶対位置Aを検出する。また、GPSセンサ58は受信したGPS信号に含まれる時刻情報tを読取る。上述したように、GPS電波は所定周期で繰り返し送信されるので、GPSセンサ58はGPS信号を所定周期で繰り返し受信し、絶対位置Aと時刻情報tを検出する。GPSセンサ58は、後述する制御装置60と接続されており、検出した絶対位置Aと時刻情報tを制御装置60に出力する。
なお、GPSセンサ58が、受信したGPS信号に基づいて絶対位置Aを検出(算出)するには、各GPSアンテナ104a〜104dから送信されたGPS電波を分析して絶対位置Aを演算する必要がある。従って、GPS信号を受信してから絶対位置Aが検出されるまでには、ある程度の時間を要する。受信したGPS信号から絶対位置Aを演算する手順については、従来公知であるため、ここでは、その詳細な説明については省略する。
【0017】
ロボット10は、各関節30〜46のモータを制御する制御装置60を有している。図3に示すように、制御装置60は、GPSセンサ58と、各関節30〜46を駆動するモータ及びそのモータのエンコーダにそれぞれ接続されている。制御装置60は、CPU,ROM,RAM等からならマイクロコンピュータによって構成されている。制御装置60は、ROMに格納されているプログラムを実行することで、(1)各関節30〜46のモータにトルク指令値を出力して各関節30〜46を駆動させる制御部62と、(2)GPSセンサ58から出力される絶対位置A及び時刻データtと、各関節30〜46のエンコーダから入力される検出値φ〜φ11から、先端部24a、26aの絶対位置を算出する座標算出部70として機能する。
【0018】
まず、座標算出部70の構成について説明する。座標算出部70は、時刻カウント部72と、記憶部76と、データ特定部78と、算出部80と、予測位置算出部82と、軸足判定部84を備えている。
【0019】
軸足判定部84は、右脚部50と左脚部52のいずれが軸足(すなわち、ロボット10の重量がより多く加わっている方の脚部)かを判定する。軸足判定部84には、後述する算出部80から、足部24、26の先端部24a、26aの絶対位置データAMti、APti及び頭部12の頂点12aの絶対位置データAtiが入力される。軸足判定部84は、入力された先端部24a、26a及び頂点12aの絶対位置データから、いずれが軸足であるかを判定する。軸足判定部84の判定値は、算出部80に入力される。
【0020】
時刻カウント部72は、時刻をカウントする。時刻カウント部72がカウントする時刻データsは、上述したGPS信号出力装置102の時刻カウント部106がカウントする時刻データtと略同一となるよう設定されている。時刻カウント部72がカウントする時刻データsは、記憶部76に読取られる。
【0021】
記憶部76は、所定の周期で各エンコーダから各関節30〜46の関節角φ〜φを読取り、記憶する。記憶部76は、各エンコーダから関節角φ〜φを読取る際に時刻カウント部72の時刻データsを読取り、読取った角度データφ〜φを時刻データsと関連付けて記憶する。
なお、エンコーダから各関節30〜46の関節角φ〜φを読み取る周期は、GPSセンサ58でGPS信号を受信してから絶対位置を出力するまでの周期と比較して短く設定されている。関節角φ〜φを読み取る周期とGPSセンサ58で絶対位置を出力する周期との関係を図6に模式的に示している。図6に示すように、GPSセンサ58から絶対位置を1回出力する間に、エンコーダの関節角φ〜φが複数回読み取られ、記憶部76に記憶されている。
【0022】
データ特定部78は、GPSセンサ58から絶対位置Aと時刻データtが入力されたときに、その時刻データtをキーとして、記憶部76に記憶されている角度データの中から、GPSセンサ58から出力された絶対位置Aと対応する角度データを特定する。
すなわち、データ特定部78には、GPSセンサ58から時刻データtと時刻tにおける頂点12aの絶対位置データAtiが所定周期で入力される。データ特定部78は、時刻データtを入力されると、記憶部76が記憶している時刻データsを検索し、入力された時刻データtと最も近い時刻データsを特定する。そして、特定した時刻データsと関連付けられている角度データφ〜φを読取る。また、データ特定部78は、記憶部76から角度データφ〜φを読取ると、その読取った角度データφ〜φより前に記憶された角度データφ〜φ及び時刻データsを消去する。そして、読取った角度データφ〜φと、GPSセンサ58から入力された絶対位置データAtiを算出部80に入力する。
【0023】
算出部80は、(1)データ特定部78で特定された角度データφ〜φから頭部12に対する足部24、26(詳しくは、先端部24a、26a)の相対位置Mti、Ptiを算出し、(2)その算出した先端部24a、26aの相対位置とGPSセンサ58から出力された頭部12の絶対位置Atiから、先端部24a、26aの絶対位置AMti、APtiを算出する。
すなわち、算出部80には、データ特定部78から、絶対位置データAtiと、角度データφ〜φが所定周期で入力される。算出部80は、データ特定部78からデータが入力される毎に、入力された各データから時刻tにおける先端部24a、26aの絶対位置AMti、APti算出する。
【0024】
(1)角度データφ〜φから先端部24a、26aの相対位置の算出
まず、角度データφ〜φから先端部24a、26aの相対位置を算出する方法について説明する。まず、ロボット内座標軸について説明し、その後に、相対位置を算出する手順について説明する。
【0025】
(ロボット内座標軸の設定)
ロボット10の基本姿勢は、図4に示す関節を伸ばした姿勢に設定されている。また、ロボット10の正面方向をx′軸、垂直方向をz′軸、x′軸及びz′軸と直行する方向をy′軸とするx′y′z′座標系(ロボット10の座標系)が設定されている。
また、各点(関節30〜46、頂点12a、先端部24a、26a)の位置は、相対位置ベクトルl〜l11によって規定されている。ベクトルl〜l11は、各点と隣接する下流側(頂点12a側を上流とする)の点の相対位置を示している。l〜l11は、ロボット10の各部の寸法によって定まる定数である。例えば、基本姿勢における点26aの点46に対する相対位置は、ベクトルl11=(0,0,l11)によって規定する。また、各関節30〜46の角度φ〜φは、基本姿勢に対する角度によって規定する。
以上のような設定の下で、点24a、26aの時刻tにおける相対位置(相対位置データMti、Pti)の算出が行われる。
【0026】
(頭部12の座標系における相対位置の算出)
図2における点24aの点38に対する相対位置Mは、ベクトルl方向をz軸、関節38の回転軸方向をy軸、z軸及びy軸と直行する方向をx軸としたx座標系(足部24の座標系)によって規定する。従って、点24aの点38に対する相対位置Mは、(0,0,l)となる。次に、x座標系で示されている点24aの相対位置Mを、ベクトルl方向をz軸、関節38の回転軸方向をy軸、z軸及びy軸と直行する方向をx軸としたx座標系(脛部20の座標系)における相対位置M(xm5,ym5,zm5)に座標変換する。相対位置Mは、ベクトルMを回転軸y周りに角度φ回転させることで得られる。すなわち、
【0027】
【数1】



【0028】
ここで、Rot(y,φ)は、所定の座標系をy軸周りにφだけ回転させる回転ベクトルである。これによって、x座標系における点24aの点38に対する相対位置Mが算出される。
次に、算出した相対位置Mを、同じx座標系における点36に対する相対位置M′(xm5′,ym5′,zm5′)に座標変換する。相対位置M′は、相対位置Mをベクトルl分スライドさせた座標であるので、
【0029】
【数2】



【0030】
これによって、x座標系における点24aの点36に対する相対位置M′が算出される。このような座標変換を、上流側へ向かって各点毎に繰り返し実施することで、ベクトルl方向をz軸、関節30の回転軸方向をx軸、x軸及びz軸に直行する方向をy軸とするx座標系(頭部12の座標系)における点24aの点12aに対する相対位置M′(xm1′,ym1′,zm1′)が算出される。すなわち、
【0031】
【数3】



【0032】
同様にして、点26aの点12aに対する相対位置P′も算出される。
【0033】
(頭部12の姿勢角度の算出)
次に、算出部80は、軸足判定部84から、現在の軸足を読取る。そして、その軸足の各関節と関節30の角度から頭部12の姿勢角度を算出する。
すなわち、軸足側の足部(接地足)は、床面と平行となっている。従って、頭部12の姿勢角度は、軸足側の足部から頭部12までの関節角によって求めることができる。図5に示すように、頭部12の姿勢角度は、ベクトルlとz′軸とのx′軸周りでの傾斜角度φ0x及びy′軸周りでの傾斜角度φ0yによって示される。例えば、図2に示すように、脚部52が軸足である場合には、次の式で算出される。
【0034】
【数4】



【0035】
(ロボット10の座標系における相対位置の算出)
次に、ベクトルM′、ベクトルP′と、角度φ0x及び角度φ0yから、x′y′z′座標系(ロボット10の座標系)における点24aの点12aに対する相対位置M(xm0,ym0,zm0)及びx′y′z′座標系における点26aの点12aに対する相対位置P(xp0,yp0,zp0)を算出する。相対位置M、Pの算出は、相対位置M′、P′を、角度φ0x及び角度φ0yによって座標変換することで求められる。すなわち、
【0036】
【数5】



【0037】
算出された相対位置M、Pが、頭部12に対する先端部24a、26aの相対位置Mti、Ptiである。
【0038】
(2)先端部24a、26aの絶対位置の算出
算出部80は、まず、入力された絶対位置データAti及び前回の処理周期で入力された絶対位置データAti−1から、ロボット10の進行方向を算出する。ロボット10の進行方向は、x軸との角度θによって表すことができる。
角度θを算出すると、算出部80は、x′y′z′座標系の相対位置データMti,Ptiをxyz座標系における先端部24a、26aの絶対位置データAMti、APtiに座標変換する。絶対位置データAMti、APtiは、相対位置データMti,Ptiをz軸周りに角度θだけ回転し、絶対位置データAtiだけスライドすることで得られる。すなわち、
【0039】
【数6】



【0040】
算出部80が、算出した先端部24a、26aの絶対位置データAMti、APtiは予測位置算出部82に入力される。また、先端部24a、26aの絶対位置データAMti、APtiと頂点12aの絶対位置データAti軸足判定部84に入力される。
【0041】
予測位置算出部82は、算出された絶対位置データAMti、APtiから現在の足部24,26の先端部24a、26aの絶対位置を予測する。
すなわち、予測位置算出部82には、絶対位置データAMti、APtiが所定周期で入力される。予測位置算出部82は、先端部24a,26aが絶対位置データAMti、APtiにあった時点から現在までに各モータに出力した移動指令値を制御部62から読取る。そして、読取った移動指令値から予測される先端部24a,26aの相対移動値と、入力された絶対位置データAMti、APtiから現在の先端部24a,26aの絶対位置AM、APを予測する。
予測位置算出部82が予測した絶対位置データAM、APは制御部62に入力される。
【0042】
時刻データ同期部86は、制御部62に制御データを入力してロボット10に特定の動作を実行させるとともに、GPSセンサ58から入力される絶対位置データAと時刻データtを読取る。そして、関節角から算出した頭部12の頂点12aの運動軌道と、GPSセンサ58から入力される絶対位置データAから算出した頂点12aの運動軌道とに基づいて、GPS信号出力装置102の時刻カウント部106がカウントする時刻データtと、時刻カウント部72がカウントする時刻データsを同期させる。
【0043】
制御部62は、予測位置算出部82が予測した先端部24a,26aの絶対位置AM、APと、各エンコーダから入力される関節角φ〜φと、別途入力される目標位置座標(すなわち、目標軌道データ)に基づいて、各モータに出力するトルク指令値を算出する。具体的には、制御部62は、まず、予測位置算出部82が予測した先端部24a,26aの絶対位置AM、APと、目標軌道データによる先端部24a,26aの目標位置とのずれから、次に出力する目標位置を修正する。そして、修正した目標位置と各エンコーダから入力される関節角φ〜φに基づいて、各モータに出力するトルク指令値を算出する。算出されたトルク指令値は、各モータに出力される。
なお、制御部62が各モータへ出力するトルク指令値を算出する手順については、従来公知の方法を用いることができるため、ここでは、その詳細な説明については省略する。
【0044】
次に、上述した制御装置60が実行する絶対位置算出処理について説明する。図7は、制御装置60の絶対位置算出処理を示すフローチャートである。
図7に示すように制御装置60は、まず、GPSセンサ58から絶対位置データAtiと時刻データtが入力されたか否かを判定する(ステップS2)。GPSセンサ58からのデータ入力がない場合(ステップS2でNO)は、制御装置60は処理をそのまま終了する。GPSセンサ58からのデータ入力がある場合(ステップS2でYES)は、ステップS4に進む。
【0045】
ステップS4に進むと、制御装置60は、GPSセンサ58から入力した時刻データtをキーとして、記憶部76に記憶されている角度データφ〜φのうち、入力された時刻データtと対応する角度データφ〜φを読み出す(ステップS4)。すなわち、入力された時刻データtに最も近い時刻データsを特定し、時刻データsに関連付けられた角度データφ〜φを読み出す。
角度データφ〜φを読み出すと、制御装置60は、入力された時刻データtより前の時点の記憶部76に記憶されている角度データφ〜φを消去する(ステップS6)。これによって、記憶部76から不要なデータが消去される。
【0046】
次に、制御装置60は、軸足判定部84より軸足がどちらであるかという情報を取得し(ステップS8)、その取得した軸足情報とステップS4で入力された角度データφ〜φより、頭部12の頂点12aに対する足部24,26の先端部24a,26aの相対位置データMti、Ptiを算出する(ステップS10)。相対位置データMti、Ptiを算出する手順については、既に説明している。
【0047】
相対位置データMti、Ptiを算出すると、制御装置60は、ステップS2で入力されたGPSセンサ58から入力された絶対位置データAtiと、ステップS10で算出した相対位置データMti、Ptiに基づいて、足部24,26の先端部24a,26aの絶対位置AMti、APtiを算出する(ステップS12)。次に、制御装置60は、ステップS12で算出された絶対位置AMti、APtiと制御部62から出力された移動指令値に基づいて、現在の足部24,26の先端部24a,26aの絶対位置AM、APを予測する(ステップS14)。これによって、制御装置60の処理を終了する。
【0048】
次に、制御装置60で実行される時刻データ同期処理について説明する。図9は、座標算出部70の時刻カウント部72とGPS信号出力装置102の時刻カウント部106との同期を取るために、制御装置60で実行される時刻データ同期処理を示すフローチャートである。
図8に示すように、時刻データ同期処理が開始されると、制御装置60は、まず、ロボット10を直立させて(ステップS36)、ロボット10の頭部12の初期位置A(x,y)取得する(ステップS38)。すなわち、制御装置60は、GPSセンサ58から頭部12の絶対位置データが出力されるまで待機し、GPSセンサ58から絶対位置データが出力されると、その出力された絶対位置データを初期位置Aとして記憶する。
【0049】
ステップS40に進むと、制御装置60は、関節30のモータに制御指令値を出力して、一定周期でロボット10に首振り運動させる(ステップS40)。ロボット10に首振り運動をさせるのと平行して、制御装置60は、GPSセンサ58から出力される絶対位置データAtiと時刻データtを順次取得する(ステップS42)。ステップS42のデータ取得と平行して、制御装置60は、関節30の角度φを順次読み取るとともに、その読取り時刻sを取得する(ステップS44)。
次に、制御装置60は、ステップS42で順次取得した絶対位置データAtiのy座標ytiと、時刻データtをグラフにプロットする(図10参照、ステップS46)。また、制御装置60は、ステップS44で順次取得した関節角φとステップS38で取得した頭部12の初期位置から、時刻sのときの頭部12のy座標ysnを次の式より算出する。なお、次式のθは、上述したロボット10の向きとx軸との角度である。算出された頭部12のy座標ysnと時刻データsはグラフにプロットされる(ステップS48)。
【0050】
【数7】



【0051】
ステップS46によってGPSセンサ58に基づく頭部12の運動軌道がプロットされ、ステップS48によってエンコーダの検出結果に基づく頭部12の運動軌道がプロットされると、制御装置60は、y座標ytiと、y座標ysnを比較し、時刻データtと時刻データsのズレを算出する(ステップS50)。すなわち、ロボット10は直立状態で首振り運動を行っているだけなので、GPSセンサ58で検出されるロボット10の頭部12の運動軌道と、エンコーダで検出される関節角φに基づく頭部12の運動軌道は、本来一致するはずである。したがって、GPSセンサ58に基づく頭部12のy座標ytiとエンコーダに基づく頭部12のy座標ysnとの時間軸方向のズレ時間Δt(図10のΔt)は、GPS信号出力装置102の時刻カウント部106と制御装置60内の時刻カウント部72の時間ズレとなる。そこで、制御装置60は、ステップS50で算出されたズレ時間Δtに応じて制御装置60内の時刻カウント部72の時刻データsを補正する(ステップS52)。これによって、GPS信号出力装置102の時刻データtと制御装置60内の時刻データsを正確に同期させることができる。
【0052】
以上に説明したように、本実施例のロボット制御システム100では、GPSセンサ58がGPS信号を受信すると、GPSセンサ58は、そのGPS信号に含まれる時刻情報tと、そのGPS信号から算出される絶対位置を制御装置60に出力する。制御装置60では、各エンコーダが検出した各関節の角度φ〜φを読取るとともに、その読取り時刻sを読取り記憶部76に記憶する。そして、制御装置60が足部24,26の先端部24a,26aの絶対位置を算出する際には、記憶部76の角度データφ〜φの中から、GPSセンサ58で受信されたGPS信号に含まれる時刻情報tと対応する角度データφ〜φを特定する。そして、制御装置60は、GPSセンサ58から出力された絶対位置データと、特定した角度データφ〜φから、足部24,26の先端部24a、26aの絶対位置を算出する。従って、制御装置60は、先端部24a、26aの絶対位置を正確に算出することができる。
また、本実施例のロボット制御システム100では、ロボット10の脚部50、52を床面に対して移動させない状態で、関節30を駆動してロボット10の頭部12に首振り運動を行わせる。そして、首振り運動を行いながら所定周期でGPSセンサ58から出力される絶対位置を検出し、また、関節30の角度φを読み取って頭部12のy座標ysnを算出する。そして、GPSセンサ58に基づく頭部12のy座標ysnと、エンコーダの検出値に基づく頭部12のy座標ytiを比較して、時刻データtと時刻データsのズレ時間Δtを算出する。これによって、絶対位置を精度よく算出することができる。
また、本実施例のロボット制御システム100では、制御装置60で算出された先端部24a,26aの絶対位置から現在の先端部24a,26aの絶対位置を予測し、その予測した絶対位置に基づいて軌道データを修正する。このため、ロボット10は、目標軌道を正確に歩行し、目標位置で正確に停止することができる。
【0053】
なお、上述した実施例では、時刻データt及びsに基づいて、GPS電波が送信されたときの角度データφ〜φを特定したが、本発明はこのような形態に限られない。例えば、GPSセンサ58によるGPS電波の受信から絶対位置の出力までの遅れ時間を予め測定しておき、その遅れ時間に基づいて、GPS電波が送信されたときの角度データφ〜φを特定してもよい。
また、上述した実施例では、記憶部76に角度データφ〜φを記憶したが、本発明はこのような形態に限られない。例えば、制御装置60は、検出した関節角φ〜φから相対位置データMti、Ptiを算出し、その算出した相対位置データMti、Ptiを記憶部に記憶するようにしてもよい。
また、上述した実施例では、時刻データの同期処理において、ysnとytiを算出し、比較したが、本発明はこのような形態に限られない。例えば、関節角φと、y座標ytiをそれぞれグラフにプロットすることによっても、それらの軌道の位相ずれからズレ時間Δtを求めることができる。すなわち、頂点12aの位置変化を示す他の形式のデータをGPSセンサの検出値及び関節角φから算出し、それらを比較することによって時刻データを同期させることができる。
また、上述の実施例ではロボット10を直立させた状態で関節30だけを駆動させて時刻データの同期処理を行ったが、足部24、26を移動させない状態で、他のさまざまな動作を行うことによっても時刻データの同期処理を行うことができる。
【0054】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0055】
【図1】本実施例のロボット制御システム100の全体図。
【図2】本実施例のロボット10の説明図。
【図3】本実施例のロボット10のブロック図。
【図4】本実施例のロボット10の説明図。
【図5】本実施例のロボット10の頭部12の姿勢角度の説明図。
【図6】頭部12の絶対位置と関節角の検出タイミングの説明図。
【図7】足部24、26の絶対位置算出処理のフローチャート。
【図8】時刻データ同期処理のフローチャート。
【図9】時刻データ同期処理時の運動軌道のずれを示す図
【符号の説明】
【0056】
10:ロボット
12:頭部
12a:頂点
14:胴体部
16、18:腿部
20、22:脛部
24、26:足部
24a、26a:先端部
30〜46:関節
50:右脚部
52:左脚部
58:GPSセンサ
60:制御装置
62:制御部
70:座標算出部
72:時刻カウント部
76:記憶部
78:データ特定部
80:算出部
82:予測位置算出部
84:軸足判定部
86:時刻データ同期部
100:ロボット制御システム
102:GPS信号出力装置
104a〜104d:GPSアンテナ
106:時刻カウント部

【特許請求の範囲】
【請求項1】
空間内を移動する移動体と、送信時間を示す時間情報を含んだ信号を前記空間内に対して送信する信号送信装置とを備えた移動体制御システムであって、
移動体は、
本体と、
その本体に関節を介して結合された可動部と、
関節を駆動するアクチュエータと、
本体に取付けられ、信号送信装置が空間に送信する信号を受信する信号受信部と、
信号受信部が受信した信号から信号受信部の絶対位置を算出する本体位置算出部と、
アクチュエータの駆動量を検出する駆動量検出部と、
本体位置算出部で算出した位置情報と駆動量検出部で検出されたアクチュエータの駆動量から可動部の絶対位置を算出する絶対位置算出部と、を備えており、
その絶対位置算出部は、
駆動量検出部でアクチュエータの駆動量を検出した時間を計時するタイマと
所定の時間間隔で駆動量検出部により検出されるアクチュエータの駆動量をタイマで計時された検出時間と共に順に記憶する記憶部と、
本体位置算出部で算出した位置情報に対応する信号の送信時間情報に基づいて、信号が送信された時点におけるアクチュエータの駆動量を、記憶部に記憶されている駆動量の中から特定する駆動量特定部と、
本体位置算出部で算出した位置情報と、駆動量特定部で特定した駆動量から、対応する信号の送信時における可動部の絶対位置を算出する可動部位置算出部を備えていることを特徴とする移動体制御システム。
【請求項2】
絶対位置算出部は、タイマで計時される時間と信号送信装置から送信される信号に含まれる時間情報とのズレを補正する補正部をさらに有していることを特徴とする請求項1の移動体制御システム。
【請求項3】
補正部は、予め設定された動作パターンで本体に動作を行わせながら所定の時間間隔で本体位置算出部によって信号受信部の絶対位置を算出し、本体に行わせた動作と本体位置算出部で算出した信号受信部の絶対位置軌道とのズレから、タイマで計時される時間と信号送信装置から送信される信号に含まれる時間情報とのズレを補正することを特徴とする請求項2の移動体制御システム。
【請求項4】
絶対位置算出部は、可動部位置算出部によって算出された可動部の絶対位置に基づいて、現在の可動部の絶対位置を予測する予測位置算出部をさらに有することを特徴とする請求項1〜3のいずれかの移動体制御システム。
【請求項5】
本体と、その本体に関節を介して結合された可動部と、関節を駆動するアクチュエータと、信号を受信する信号受信部と、アクチュエータの駆動量を検出する駆動量検出部と、時間を計時するタイマと、データを記憶する記憶部を備えた空間内を自由に移動する移動体と、信号受信部に対して送信時間情報を含んだ信号を送信する信号送信装置とを備えた移動体制御システムにおいて、移動体の可動部の絶対位置を算出する方法であって、
駆動量検出部で検出されたアクチュエータの駆動量をその検出時間と共に所定の時間間隔で順に記憶部に記憶するステップと、
信号送信装置から送信時間を示す時間情報を含んだ信号を送信するステップと、
上記信号を信号受信部で受信し、受信した信号から信号受信部の絶対位置を算出するステップと、
信号受信部で受信した信号の送信時間情報に基づいて信号が送信された時点におけるアクチュエータの駆動量を、記憶部に記憶されている駆動量の中から特定するステップと、
算出した信号受信部の絶対位置と、特定した駆動量から、可動部の絶対位置を算出するステップを有することを特徴とする算出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−245244(P2007−245244A)
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2006−67797(P2006−67797)
【出願日】平成18年3月13日(2006.3.13)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】