(57)【要約】【課題】オペレータの意図通りに移動ロボットを操縦することが容易となるロボット制御システムを提供する。【解決手段】オペレータがコントローラを操作することによって移動ロボットを操縦するロボット制御システムであって、コントローラは、移動ロボットに動作命令を入力する手段と、オペレータに移動ロボットの制御状態を表示する表示手段を有しており、移動ロボットは、本体と、本体を移動させる手段と、移動ロボットの姿勢状態を検出する手段と、コントローラから入力された動作命令に基づいて移動ロボットの姿勢状態の目標値を決定する手段と、移動ロボットの姿勢状態が決定された目標値が示す状態となるように移動手段を制御する手段と、検出手段が検出した姿勢状態と目標値との差分値を算出する手段とを有しており、表示手段は移動ロボットが算出した差分値に基づいた指標を表示する。【選択図】図２
2008087109.tif 000002
【特許請求の範囲】
【請求項１】
オペレータがコントローラを操作することによって移動ロボットを操縦するロボット制御システムであって、
コントローラは、
移動ロボットに動作命令を入力する入力手段と、
オペレータに移動ロボットの制御状態を表示する表示手段を有しており、
移動ロボットは、
本体と、
本体を移動させる移動手段と、
移動ロボットの姿勢状態を検出する検出手段と、
コントローラから入力された動作命令に基づいて、所定時間が経過した時の移動ロボットの姿勢状態の目標値を決定する目標値決定手段と、
前記所定時間経過時に移動ロボットの姿勢状態が決定された目標値が示す状態となるように移動手段を制御する制御手段と、
前記所定時間経過時に検出手段が検出した姿勢状態と目標値との差分値を算出する差分値算出手段とを有しており、
表示手段は移動ロボットが算出した差分値に基づいた指標を表示することを特徴とするロボット制御システム。
【請求項２】
検出手段は、本体の位置を検出し、
目標値決定手段は、入力された動作命令に基づいて所定時間経過時の本体の目標位置を決定し、
制御手段は、前記所定時間経過時に本体が目標位置に移動するように移動手段を制御し、
差分値算出手段は、前記所定時間経過時に検出手段が検出した本体の位置と目標位置との差分値を算出することを特徴とする請求項１に記載のロボット制御システム。
【請求項３】
目標値決定手段は、所定周期で本体の目標位置を決定し、
制御手段は、目標値決定手段が決定した今回の周期の目標位置と前回の周期で差分値算出手段が算出した差分値に基づいて、移動手段を制御することを特徴とする請求項２に記載のロボット制御システム。
【請求項４】
検出手段は、本体の傾斜角を検出し、
目標値決定手段は、入力された動作命令に基づいて所定時間経過時の本体の目標傾斜角を決定し、
制御手段は、前記所定時間経過時に本体の傾斜角が目標傾斜角となるように移動手段を制御し、
差分値算出手段は、前記所定時間経過時に検出手段が検出した本体の傾斜角と目標傾斜角との差分値を算出することを特徴とする請求項１に記載のロボット制御システム。
【請求項５】
オペレータがコントローラを操作することによって、本体と本体に接続された第１の脚部及び第２の脚部を備えた歩行ロボットを操縦するロボット制御システムであって、
コントローラは、
歩行ロボットに動作命令を入力する入力手段と、
オペレータに歩行ロボットの制御状態を表示する表示手段を有しており、
歩行ロボットは、
第１脚部の接地部の角度を変更する第１足首関節と、
第１足首関節を駆動する第１のアクチュエータと、
第２脚部の接地部の角度を変更する第２足首関節と、
第２足首関節を駆動する第２のアクチュエータと、
入力された動作命令に基づいて、各足首関節の目標角度を決定する目標角度決定手段と、
各脚部の接地状態を検出する検出手段と、
各脚部の接地状態に基づいて、第１足首関節及び第２足首関節の目標角度を補正する補正手段と、
目標角度が補正されている足首関節については、その関節が補正後の目標角度となるようにその関節を駆動するアクチュエータを制御し、目標角度が補正されていない足首関節については、その関節が決定された目標角度となるようにその関節を駆動するアクチュエータを制御する制御手段を有しており、
表示手段は第１足首関節及び／または第２足首関節の角度補正量に基づいた指標を表示することを特徴とするロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットと、その移動ロボットを操縦するためのコントローラを備えたロボット制御システムに関する。
【背景技術】
【０００２】
オペレータ（操縦者）がコントローラを操作することによって移動ロボットを操縦するロボット制御システムが知られている。例えば、コントローラを移動ロボットから隔離した場所に配置し、オペレータがそのコントローラを操作することで、移動ロボットを遠隔操縦する。このようなロボット制御システムでは、移動ロボットにカメラを搭載するとともにコントローラに表示手段を搭載し、移動ロボットのカメラで撮影された映像をコントローラの表示手段で表示する。操縦者は、移動ロボットのカメラで撮影された映像を確認しながらコントローラを操作することで、移動ロボットを操縦する。
なお、特許文献１には、歩行ロボットに搭載したカメラの画像を基に２つの脚部を駆動することによって安定して歩行する技術が開示されている。
【特許文献１】特開２００１−２７７１５９
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述したロボット制御システムでは、オペレータは移動ロボットのカメラで撮影された映像を確認しながらコントローラを操作する。しかしながら、移動ロボットが移動している場合、カメラの映像は移動ロボットの移動とともに揺れるので、移動ロボットの状態を正確に確認することが困難である。また、カメラの映像では、移動ロボットの周囲の状況を把握することはできても、移動ロボットの位置や、移動ロボットがどのような姿勢をとっているかといった移動ロボットの姿勢状態を正確に確認することはできない。また、カメラの映像では、移動ロボットが移動する床面が傾いている場合や、床面上に障害物がある場合に、それらのことを正確に確認することができない。したがって、従来のロボット制御システムでは、移動ロボットをオペレータの意図通りに操縦することが非常に困難であった。
【０００４】
本発明は、上記した実情に鑑みてなされたものであり、オペレータの意図通りに移動ロボットを操縦することが容易となるロボット制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明のロボット制御システムは、移動ロボットと、移動ロボットを操縦するためのコントローラを有している。コントローラは、移動ロボットに動作命令を入力する入力手段と、オペレータに移動ロボットの制御状態を表示する表示手段を有している。移動ロボットは、本体と、本体を移動させる移動手段と、移動ロボットの姿勢状態を検出する検出手段と、コントローラから入力された動作命令に基づいて、所定時間が経過した時の移動ロボットの姿勢状態の目標値を決定する目標値決定手段と、前記所定時間経過時に移動ロボットの姿勢状態が決定された目標値が示す状態となるように移動手段を制御する制御手段と、前記所定時間経過時に検出手段が検出した姿勢状態と目標値との差分値を算出する差分値算出手段とを有している。そして、表示手段が移動ロボットが算出した差分値に基づいた指標を表示することを特徴とする。
このロボット制御システムでは、コントローラの表示手段に検出手段によって検出された検出値（実際の移動ロボットの姿勢状態）と目標値（オペレータが指示した移動ロボットの姿勢状態）との差分値に基づいた指標が表示される。この差分値が大きいことは、移動ロボットが何らかの原因で目標値通りに制御されていないこと意味する。このため、移動ロボットのオペレータは、表示手段で表示される差分値に基づいた指標から移動ロボットが目標値通りに制御されているか否かを確認しながら移動ロボットを操縦することができる。したがって、移動ロボットをオペレータの意図通りに操縦することが容易となる。
【０００６】
上述したロボット制御システムは、検出手段が本体の位置を検出し、目標値決定手段が入力された動作命令に基づいて所定時間経過時の本体の目標位置を決定し、制御手段が前記所定時間経過時に本体が目標位置に移動するように移動手段を制御し、差分値算出手段が前記所定時間経過時に検出手段が検出した本体の位置と目標位置との差分値を算出することが好ましい。
このような構成によれば、本体の目標位置と現在位置との差分値に基づいた指標が表示手段に表示される。この差分値が大きいことは、外乱等が作用して移動ロボットがオペレータの意図通りに正確に移動していないことを意味する。したがって、移動ロボットのオペレータは、差分値に基づいた指標から移動ロボットに外乱が作用しているか否かを確認しながら移動ロボットを操縦することができる。したがって、移動ロボットをオペレータの意図した位置に移動させることが容易となる。
【０００７】
上述したロボット制御システムは、目標値決定手段が所定周期で本体の目標位置を決定し、制御手段が目標値決定手段が決定した今回の周期の目標位置と前回の周期で差分値算出手段が算出した差分値に基づいて移動手段を制御することが好ましい。
このような構成によれば、移動ロボットを目標位置により正確に移動させることができる。
【０００８】
上述したロボット制御システムは、検出手段が本体の傾斜角を検出し、目標値決定手段が入力された動作命令に基づいて所定時間経過時の本体の目標傾斜角を決定し、制御手段が前記所定時間経過時に本体の傾斜角が目標傾斜角となるように移動手段を制御し、差分値算出手段が前記所定時間経過時に検出手段が検出した本体の傾斜角と目標傾斜角との差分値を算出することが好ましい。
このような構成によれば、目標傾斜角と本体の傾斜角との差分値に基づいた指標が表示手段に表示される。この差分値が大きいことは、移動する床面が傾斜していたり、移動ロボットが障害物に乗り上げたりして移動ロボットが正確に制御されていないことを意味する。したがって、移動ロボットのオペレータは、差分値に基づいた指標から床面に傾きがあるか否かや、移動ロボットが障害物に乗り上げているか否かを確認しながら移動ロボットを操縦することができる。したがって、移動ロボットをオペレータの意図通りに操縦することが容易となる。
【０００９】
また、本発明は、安定した状態で歩行ロボットを操縦することができる新たなロボット制御システムを提供する。
本発明のロボット制御システムは、本体と本体に接続された第１の脚部及び第２の脚部を備えた歩行ロボットと、歩行ロボットを操縦するためのコントローラを有している。コントローラは、歩行ロボットに動作命令を入力する入力手段と、オペレータに歩行ロボットの制御状態を表示する表示手段を有している。歩行ロボットは、第１脚部の接地部の角度を変更する第１足首関節と、第１足首関節を駆動する第１のアクチュエータと、第２脚部の接地部の角度を変更する第２足首関節と、第２足首関節を駆動する第２のアクチュエータと、入力された動作命令に基づいて、各足首関節の目標角度を決定する目標角度決定手段と、各脚部の接地状態を検出する検出手段と、各脚部の接地状態に基づいて、第１足首関節及び第２足首関節の目標角度を補正する補正手段と、目標角度が補正されている足首関節については、その関節が補正後の目標角度となるようにその関節を駆動するアクチュエータを制御し、目標角度が補正されていない足首関節については、その関節が決定された目標角度となるようにその関節を駆動するアクチュエータを制御する制御手段を有している。そして、表示手段が第１足首関節及び／または第２足首関節の角度補正量に基づいた指標を表示することを特徴とする。
このロボット制御システムの歩行ロボットは、検出手段によって各脚部の接地状態が検出され、検出された接地状態に基づいて各脚部の足首関節の角度が補正される。これによって、各脚部の接地状態に応じた角度に各脚部の足首関節が制御され、歩行ロボットは好適に床面に接地（倒立）することができる。
コントローラの表示手段には、第１足首関節及び／または第２足首関節の角度補正量に基づいた指標が表示される。角度補正量が大きいことは、歩行ロボットの各脚部の接地状態が理想的な状態（水平な床面に接地している状態）からずれていることを意味する。したがって、歩行ロボットのオペレータは、表示手段で表示される角度補正量に基づいた指標から歩行ロボットの各脚部が正常に接地しているか否か（すなわち、各脚部が接地している床面の状況）を確認しながら歩行ロボットを操縦することができる。したがって、歩行ロボットをオペレータの意図通りに操縦することが容易となる。
【発明を実施するための最良の形態】
【００１０】
下記に詳細に説明する実施例の主要な特徴を最初に列記する。
（形態１）ロボット制御システムは、コントローラと歩行ロボットによって構成されている。
（形態２）コントローラは、操縦者（オペレータ）によって操作され、その操作量（動作命令）を所定周期で出力するジョイスティックと、ジョイスティックから出力された動作命令を歩行ロボットに送信する送信アンテナと、歩行ロボットから送信されるデータを受信する受信アンテナと、受信アンテナで受信したデータに応じた画像を表示する表示手段を有している。
（形態３）歩行ロボットは、本体と、本体に接続された第１の脚部及び第２の脚部とを有している。
（形態４）第１脚部は、第１脚部の接地部の角度を変更する第１足首関節を含む複数の関節を有しており、各関節には入力される制御指令値にしたがって関節を駆動するアクチュエータが設置されている。
（形態５）第２脚部は、第２脚部の接地部の角度を変更する第１足首関節を含む複数の関節を有しており、各関節には入力される制御指令値にしたがって関節を駆動するアクチュエータが設置されている。
（形態６）歩行ロボットは、コントローラから送信された動作命令を所定周期で受信する受信アンテナと、受信した動作命令に基づいて本体の目標位置を算出する目標位置算出手段と、算出した目標位置と前回の周期における本体の位置ずれ量とに基づいて本体の目標移動量を算出する目標移動量算出手段と、算出した目標移動量に基づいて今回の周期における各関節の目標関節角を算出する目標関節角算出手段と、脚部の接地状態を検出する接地状態検出手段と、検出した脚部の接地状態に基づいて第１足首関節及び第２足首関節の目標関節角を補正する目標関節角補正手段と、次の周期までに第１足首関節及び第２足首関節が補正された目標関節角となるようにそれらの関節に対応するアクチュエータに制御指令値を入力する第１制御手段と、次の周期までに第１足首関節及び第２足首関節を除く各関節が算出された目標関節角となるようにそれらの関節に対応するアクチュエータに制御指令値を入力する第２制御手段と、本体の傾斜角を検出する傾斜角センサと、算出された各関節の目標関節角から算出される本体の目標傾斜角と傾斜角センサで検出された本体の傾斜角から本体の傾斜角ずれ量を算出する傾斜角ずれ量算出手段と、本体の位置を検出する位置検出手段と、算出された目標位置と位置検出手段で検出された本体の位置から本体の位置ずれ量を算出する位置ずれ量算出手段と、歩行ロボットの進行方向を撮影するカメラと、第１足首関節及び第２足首関節の目標関節角の補正量と、算出された本体の位置ずれ量と、算出された本体の傾斜角ずれ量と、カメラで撮影された映像をコントローラに送信する送信アンテナをさらに有している。
（形態７）接地状態検出手段は、前回の周期に第１足首関節のアクチュエータに入力された制御指令値と第２足首関節のアクチュエータに入力された制御指令値との差に基づいて、脚部の接地状態の良否を検出する。
【実施例】
【００１１】
本発明の一実施例に係るロボット制御システムについて図面を参照して説明する。図１はロボット制御システム８の概略斜視図を示しており、図２はロボット制御システム８のブロック図を示している。図１，図２に示すように、ロボット制御システム８は、歩行ロボット１０と、歩行ロボット１０に動作命令を送信するコントローラ８０を備えている。
【００１２】
（歩行ロボット１０の構成）
図１に示すように歩行ロボット１０は、複数のパーツが関節で接続されることによって構成されている。すなわち、歩行ロボット１０は、本体１１と、その本体１１と関節１８を介して接続された頭部１２、左腕部１３、右腕部１４、右脚部１５、左脚部１６によって構成されている。左腕部１３及び右腕部１４は、複数のパーツが関節（肘関節，手首関節）１８を介して接続されることによって構成されている。右脚部１５は、一端が本体１１と関節（股関節）１８を介して接続された上腿部１５ａ、その上腿部１５ａの他端と関節（膝関節）１８を介して接続された下腿部１５ｂ、その下腿部１５ｂの他端と足首関節（２つの関節２０、２２）を介して接続された足平１５ｃによって構成されている。左脚部１６は、一端が本体１１と関節（股関節）１８を介して接続された上腿部１６ａ、その上腿部１６ａの他端と関節（膝関節）１８を介して接続された下腿部１６ｂ、その下腿部１６ｂの他端と足首関節（２つの関節２４、２６）を介して接続された足平１６ｃによって構成されている。
【００１３】
図２に示すように、各関節１８はモータ１８ａを備えている。各モータ１８ａは、対応するサーボアンプ１８ｄ（後に詳述する）と電気的に接続されている。各モータ１８ａは、各サーボアンプ１８ｄから制御指令値を入力されることで駆動する。関節１８は、モータ１８ａが駆動することによってその角度が変更される。また、各モータ１８ａには、関節１８の角度（より詳細には、歩行ロボット１０の直立状態（図１の状態）における関節１８の角度に対する角度）を検出するエンコーダ１８ｂがそれぞれ設置されている。各エンコーダ１８ｂは、対応するサーボアンプ１８ｄと電気的に接続されている。各エンコーダ１８ｂが検出した関節１８の角度は、対応するサーボアンプ１８ｄに出力される。
【００１４】
同様に、関節２０は、後述するサーボアンプ２０ｄから入力される制御指令値によって関節２０の角度を変更するモータ２０ａを備えており、モータ２０ａには関節２０の角度θ２０を検出してサーボアンプ２０ｄに出力するエンコーダ２０ｂが設置されている。
同様に、関節２２は、後述するサーボアンプ２２ｄから入力される制御指令値によって関節２２の角度を変更するモータ２２ａを備えており、モータ２２ａには関節２２の角度θ２２を検出してサーボアンプ２２ｄに出力するエンコーダ２２ｂが設置されている。
同様に、関節２４は、後述するサーボアンプ２４ｄから入力される制御指令値によって関節２４の角度を変更するモータ２４ａを備えており、モータ２４ａには関節２４の角度θ２４を検出してサーボアンプ２４ｄに出力するエンコーダ２４ｂが設置されている。
同様に、関節２６は、後述するサーボアンプ２６ｄから入力される制御指令値によって関節２６の角度を変更するモータ２６ａを備えており、モータ２６ａには関節２６の角度θ２６を検出してサーボアンプ２６ｄに出力するエンコーダ２６ｂが設置されている。
【００１５】
図３は、右脚部１５の関節２０、２２及び左脚部１６の関節２４、２６の拡大図を示している。
関節２０は、足平１５ｃを下腿部１５ｂに対して回転軸２０ｃ周りに回転させる。エンコーダ２０ｂは、関節２０の回転軸２０ｃ周りの角度θ２０を検出する。
関節２２は、足平１５ｃを下腿部１５ｂに対して回転軸２２ｃ周りに回転させる。エンコーダ２２ｂは、関節２２の回転軸２２ｃ周りの角度θ２２を検出する。
関節２４は、足平１６ｃを下腿部１６ｂに対して回転軸２４ｃ周りに回転させる。エンコーダ２４ｂは、関節２４の回転軸２４ｃ周りの角度θ２４を検出する。
関節２６は、足平１６ｃを下腿部１６ｂに対して回転軸２６ｃ周りに回転させる。エンコーダ２６ｂは、関節２６の回転軸２６ｃ周りの角度θ２６を検出する。
図から明らかなように、右脚部１５の関節２０は、左脚部１６の関節２４に対応する。また、右脚部１５の関節２２は、左脚部１６の関節２６に対応する。
【００１６】
また、歩行ロボット１０は、図２に示すように、受信アンテナ３０と、送信アンテナ３２と、制御装置４０と、傾斜角センサ７０と、加速度センサ７２と、カメラ７４と、サーボアンプ１８ｄ〜２６ｄを備えている。
【００１７】
受信アンテナ３０は、制御装置４０と電気的に接続されている。受信アンテナ３０は、コントローラ８０から制御周期（制御装置４０が歩行ロボット１０を制御するために実行する一連の処理を実行する周期）毎に送信される無線信号（後述する動作命令データ）を受信し、その信号を制御装置４０に出力する。
【００１８】
傾斜角センサ７０は、歩行ロボット１０の本体１１に搭載されている。傾斜角センサ７０は、制御装置４０と接続されている。傾斜角センサ７０は、本体１１の傾斜角（ピッチ角Ｐ、ロール角Ｒ）を検出する。傾斜角センサ７０が検出する本体１１の傾斜角データ（Ｐ，Ｒ）は、制御装置４０に読取られる。
【００１９】
加速度センサ７２は、歩行ロボット１０の本体１１に搭載されている。加速度センサ７２は、制御装置４０と接続されている。加速度センサ７２は、３軸加速度センサであり、本体１１の前後方向、左右方向及び上下方向の加速度（ａｘ，ａｙ，ａｚ）を検出する。加速度センサ７２が検出した加速度データ（ａｘ，ａｙ，ａｚ）は、制御装置４０に読取られる。
【００２０】
カメラ７４は、歩行ロボット１０の頭部１２に搭載されている。カメラ７４は、制御装置４０を介して送信アンテナ３２と電気的に接続されている。カメラ７４は歩行ロボット１０の進行方向を撮影する。カメラ７４が撮影した画像は、制御装置４０に読取られる。
【００２１】
制御装置４０は、受信アンテナ３０、送信アンテナ３２、各サーボアンプ１８ｄ〜２６ｄ、傾斜角センサ７０、加速度センサ７２、カメラ７４と接続されている。制御装置４０は、目標位置算出部４２、目標移動量算出部４４、目標関節角算出部４８、目標関節角補正部５０、傾斜角ずれ量算出部５２、現在位置算出部５４、位置ずれ量算出部５６を備えている。
【００２２】
目標位置算出部４２には、受信アンテナ３０から制御周期毎に動作命令データが入力される。目標位置算出部４２は、入力された動作命令データに基づいて、本体１１の目標位置（ｘＡ，ｙＡ）（より詳細には、本体１１に搭載された加速度センサ７２の目標位置）を算出する。目標位置（ｘＡ，ｙＡ）は、グローバル座標系（すなわち、歩行ロボット１０が移動する作業空間内において規定された座標系）におけるｘｙ座標として算出される。目標位置算出部４２は、算出した目標位置（ｘＡ，ｙＡ）を目標移動量算出部４４及び位置ずれ量算出部５６に出力する。
【００２３】
目標移動量算出部４４には、目標位置算出部４２から制御周期毎に本体１１の目標位置（ｘＡ，ｙＡ）が入力される。また、目標移動量算出部４４には、位置ずれ量算出部５６から前回の制御周期における位置ずれデータ（Δｘ，Δｙ）（後に詳述する）が入力される。目標移動量算出部４４は、入力された目標位置（ｘＡ，ｙＡ）、前回の制御周期の目標位置（ｘＡ−１，ｙＡ−１）及び前回の周期の位置ずれデータ（Δｘ，Δｙ）から目標移動量（ｄｘ，ｄｙ）を算出し、目標関節角算出部４８に出力する。例えば、目標移動量算出部４４は、入力された目標位置（ｘＡ，ｙＡ）と前回の制御周期の目標位置（ｘＡ−１，ｙＡ−１）から理想的な目標移動量を算出し、算出した理想的な目標移動量を前回の周期の位置ずれデータ（Δｘ，Δｙ）により補正して、最終的な目標移動量（ｄｘ，ｄｙ）を算出する。
【００２４】
目標関節角算出部４８には、目標移動量算出部４４から制御周期毎に目標移動量（ｄｘ，ｄｙ）が入力される。目標関節角算出部４８は、今回の制御周期の間に本体１１が入力された目標移動量（ｄｘ，ｄｙ）だけ移動するように（すなわち、今回の周期の動作実行後に本体１１が目標位置（ｘＡ，ｙＡ）に移動するように）、今回の制御周期における歩行ロボット１０の各関節１８〜２６の目標関節角θＡ１８〜θＡ２６を算出する。このように、各関節１８〜２６の目標関節角θＡ１８〜θＡ２６が算出されることによって、今回の制御周期における歩行ロボット１０の目標姿勢（歩行ロボット１０の各部位（本体１１，頭部１２，腕部１３，１４、脚部１５，１６）の目標姿勢）が規定される。目標関節角算出部４８は、算出した目標関節角θＡ１８〜θＡ２６のうち各関節１８の目標関節角θＡ１８を、対応するサーボアンプ１８ｄに出力する。また、目標関節角算出部４８は、算出した関節２０〜２６の目標関節角θＡ２０〜２６と歩行ロボット１０の目標姿勢を目標関節角補正部５０に出力する。また、目標関節角算出部４８は、傾斜角ずれ量算出部５２に歩行ロボット１０の目標姿勢を出力する。
【００２５】
目標関節角補正部５０には、目標関節角算出部４８から制御周期毎に関節２０〜２６の目標関節角θＡ２０〜θＡ２６と歩行ロボット１０の目標姿勢が入力される。また、目標関節角補正部５０には、サーボアンプ２０ｄ〜２６ｄが前回の制御周期で出力した制御指令値Ｔ２０〜Ｔ２６（以下では、前回の周期の制御指令値をＴ２０−１〜Ｔ２６−１と表示する）が入力される。目標関節角補正部５０は、入力された制御指令値Ｔ２０−１〜Ｔ２６−１及び入力された目標姿勢に基づいて、足平１５ｃ、１６ｃが正常に接地しているか否かを判定する。目標関節角補正部５０は、その判定結果に応じて、入力された目標関節角θＡ２０〜θＡ２６を補正し、補正後の目標関節角θＡ２０’〜θＡ２６’をサーボアンプ２０ｄ〜２６ｄに出力する。また、目標関節角補正部５０は、目標関節角θＡ２０〜θＡ２６を補正したときの補正量（すなわち、足首関節補正量データ）を送信アンテナ３２に出力する。後述するが、目標関節角補正部５０は、目標関節角θＡ２０とθＡ２４を同一の補正量ΔθＡ２で補正し、目標関節角θＡ２２とθＡ２６を同一の補正量ΔθＡ１で補正する。したがって、目標関節角補正部５０は、目標関節角θＡ２０（θＡ２４）の補正量ΔθＡ２と、目標関節角θＡ２２（θＡ２６）の補正量ΔθＡ１を示す足首関節補正量データ（ΔθＡ１，ΔθＡ２）を送信アンテナ３２に出力する。
【００２６】
傾斜角ずれ量算出部５２には、目標関節角算出部４８から歩行ロボット１０の目標姿勢が入力される。傾斜角ずれ量算出部５２は、入力された目標姿勢から本体１１の目標傾斜角（ピッチ角ＰＡ、ロール角ＲＡ）を算出する。また、傾斜角ずれ量算出部５２は、歩行ロボット１０が今回の制御周期における動作を実行した後に、傾斜角センサ７０が検出する本体１１の傾斜角（Ｐ，Ｒ）を読取る。そして、算出した目標傾斜角（ＰＡ，ＲＡ）と読取った傾斜角（Ｐ，Ｒ）との差分値（ΔＰ，ΔＲ）（すなわち、傾斜角ずれデータ（ΔＰ，ΔＲ））を算出する。傾斜角ずれ量算出部５２は、算出した傾斜角ずれデータ（ΔＰ，ΔＲ）を送信アンテナ３２に出力する。
【００２７】
現在位置算出部５４は、所定周期（制御周期よりも短い周期）で加速度センサ７２が検出する加速度データ（ａｘ，ａｙ，ａｚ）を読取り、直前に算出した本体１１の位置と読取った加速度データ（ａｘ，ａｙ，ａｚ）から本体１１の現在位置（ｘ，ｙ，ｚ）（より詳細には、本体１１に搭載された加速度センサ７２の現在位置）を算出する。現在位置（ｘ，ｙ，ｚ）は、グローバル座標系におけるｘｙｚ座標として算出される。現在位置算出部５４が算出する本体１１の現在位置（ｘ，ｙ，ｚ）のｘｙ座標（すなわち、現在位置（ｘ，ｙ））は、制御周期毎に位置ずれ量算出部５６に読取られる。
【００２８】
位置ずれ量算出部５６は、制御周期毎に現在位置算出部５４から本体１１の現在位置（ｘ，ｙ）を読取る。また、位置ずれ量算出部５６には、目標位置算出部４２から本体１１の目標位置（ｘＡ，ｙＡ）が制御周期毎に入力される。位置ずれ量算出部５６は、読取った本体１１の現在位置（ｘ，ｙ）と入力された本体１１の目標位置（ｘＡ，ｙＡ）との差分値（すなわち、位置ずれデータ（Δｘ，Δｙ））を算出する。位置ずれ量算出部５６は、算出した位置ずれデータ（Δｘ，Δｙ）を送信アンテナ３２に出力する。また、位置ずれ量算出部５６は、算出した位置ずれデータ（Δｘ，Δｙ）を目標移動量算出部４４に出力する。
【００２９】
サーボアンプ１８ｄ〜２６ｄは、対応するモータ１８ａ〜２６ａ、対応するエンコーダ１８ｂ〜２６ｂ及び制御装置４０と電気的に接続されている。サーボアンプ１８ｄ〜２６ｄには、制御装置４０から制御周期毎に目標関節角が入力される。また、サーボアンプ１８ｄ〜２６ｄには、対応するエンコーダ１８ｂ〜２６ｂから関節１８〜２６の現在角度が入力される。サーボアンプ１８ｄ〜２６ｄは、関節１８〜２６の目標関節角と関節１８〜２６の現在角度に応じてモータ１８ａ〜２６ａに制御指令値Ｔ１８〜Ｔ２６を出力し、モータ１８ａ〜２６ａを駆動させる。これによって、関節１８〜２６は、制御装置４０が算出した目標関節角に応じた角度に駆動される。
【００３０】
送信アンテナ３２には、制御装置４０から各種データ（傾斜角ずれデータ（ΔＰ，ΔＲ）、位置ずれデータ（Δｘ，Δｙ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）及び画像データ）が制御周期毎に入力される。送信アンテナ３２は、入力された各データを無線信号として送信する。これによって、コントローラ８０にこれらのデータが送信される。
【００３１】
（コントローラ８０の構成）
コントローラ８０は、ジョイスティック８２と、送信アンテナ８４と、受信アンテナ８６と、表示装置８８を備えている。
ジョイスティック８２は、送信アンテナ８４と電気的に接続されている。ジョイスティック８２は、操作レバーと、演算装置を備えている。操作レバーは、上下左右に操作することができる。操縦者が操作レバーを操作すると、演算装置は、操作レバーの操作方向及び操作量に基づいて、歩行ロボット１０の移動方向、移動速度を指示する動作命令データを制御周期毎に送信アンテナ８４に出力する。
送信アンテナ８４には、ジョイスティック８２から動作命令データが制御周期毎に入力される。送信アンテナ８４は、入力された動作命令データを無線信号として送信する。これによって、歩行ロボット１０に動作命令データが送信される。
受信アンテナ８６は、表示装置８８と電気的に接続されている。受信アンテナ８６は、歩行ロボット１０から制御周期毎に送信される無線信号（すなわち、傾斜角ずれデータ（ΔＰ，ΔＲ）、位置ずれデータ（Δｘ，Δｙ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）及び画像データ）を受信する。受信アンテナ８６で受信された各データは、表示装置８８に入力される。
表示装置８８には、受信アンテナ８６で受信した各種データ（傾斜角ずれデータ（ΔＰ，ΔＲ）、位置ずれデータ（Δｘ，Δｙ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）及び画像データ）が制御周期毎に入力される。表示装置８８の表示画面には、入力された各データに応じた画像が表示される。図４は表示装置８８の表示画面に表示される画像の一例を示している。図４に示すように、表示画面の主要部分Ｍには入力された画像データによる画像（すなわち、カメラ７４が撮影した画像）が表示される。また、表示画面の上部Ｎには、傾斜角ずれデータ（ΔＰ，ΔＲ）、位置ずれデータ（Δｘ，Δｙ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）の各値がグラフ化されて表示される。表示装置８８には制御周期毎に各データが入力され、表示装置８８は各データが入力される毎に表示画面を更新する。したがって、主要部分Ｍにはカメラ７４が撮影した画像が略リアルタイムの動画として表示され、上部Ｎには傾斜角ずれデータ（ΔＰ，ΔＲ）、位置ずれデータ（Δｘ，Δｙ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）の各値が略リアルタイムで表示される。
【００３２】
（足首関節２０〜２６の目標関節角の補正について）
次に、目標関節角補正部５０が足首関節２０〜２６の目標関節角θＡ２０〜θＡ２６を補正する処理について、図５及び図６を用いて詳細に説明する。図５は図２のＸ部の詳細説明図であり、図６は目標関節角補正部５０が目標関節角θＡ２０〜θＡ２６を補正する処理のフローチャートである。
【００３３】
上述したように、目標関節角補正部５０がサーボアンプ２０ｄ〜２６ｄに目標関節角θＡ２０’〜θＡ２６’を出力すると、サーボアンプ２０ｄ〜２６ｄは関節２０〜２６の角度が目標関節角θＡ２０’〜θＡ２６’となるようにモータ２０ａ〜２６ａに制御指令値Ｔ２０〜Ｔ２６を出力する。また、図５に示すように、サーボアンプ２０ｄ〜２６ｄが出力した制御指令値Ｔ２０〜Ｔ２６は、目標関節角補正部５０に入力される。目標関節角補正部５０は、入力された制御指令値Ｔ２０〜Ｔ２６を記憶する。したがって、図６のフローチャートの開始時には、目標関節角補正部５０は、前回の制御周期の制御指令値Ｔ２０−１〜Ｔ２６−１を記憶している。
【００３４】
図６のステップＳ２では、目標関節角補正部５０に目標関節角θＡ２０〜θＡ２６及び歩行ロボット１０の目標姿勢が入力される。すると、目標関節角補正部５０は、入力された目標姿勢が両脚部１５、１６を接地した姿勢（すなわち、歩行ロボット１０が両脚で倒立した姿勢）であるか否かを判定する（ステップＳ４）。歩行ロボット１０の目標姿勢が両脚部１５、１６を接地した姿勢でない場合（すなわち、ステップＳ４でＮＯ）、目標関節角補正部５０は、目標関節角θＡ２０〜θＡ２６をそのまま目標関節角θＡ２０’〜θＡ２６’として算出する（ステップＳ６）。歩行ロボット１０の目標姿勢が両脚部１５、１６を接地した姿勢である場合（すなわち、ステップＳ４でＹＥＳ）、目標関節角補正部５０は、記憶している前回の周期の制御指令値Ｔ２０−１〜Ｔ２６−１から差分値ΔＴ１（＝｜｜Ｔ２２−１｜−｜Ｔ２６−１｜｜）及びΔＴ２（＝｜｜Ｔ２０−１｜−｜Ｔ２４−１｜｜）を算出する（ステップＳ８）。この差分値ΔＴ１及びΔＴ２の値に基づいて、足平１５ｃ及び１６ｃが正常に接地しているか否かが判定される。
【００３５】
例えば、図７に示すように、歩行ロボット１０が両足で立脚している状態で左脚部１６が床面上の障害物に乗り上げているとする。この場合、足平１６ｃが外側近傍の点Ａで障害物と接触し、足平１５ｃが外側近傍の点Ｂで床面と接触し、歩行ロボット１０が右方向に傾く。
足平１６ｃが点Ａで障害物と接触すると、接触点Ａから足平１６ｃに床反力Ｆ１が作用する。これによって、足平１６ｃには、関節２６の回転軸２６ｃ周りにモーメントＭ１が作用する。このような場合、サーボアンプ２６ｄは、関節２６の角度を目標関節角θＡ２６に維持するため、モータ２６ａに制御指令値Ｔ２６を出力し、関節２６をモーメントＭ１を打ち消す方向にトルクＭ１’で駆動する。
また、足平１５ｃには接触点Ｂから床反力Ｆ２が作用し、足平１５ｃには関節２２の回転軸２２ｃ周りにモーメントＭ２が作用する。このような場合、サーボアンプ２２ｄは、関節２２の角度を目標角度θＡ２２に維持するため、モータ２２ａに制御指令値Ｔ２２を出力し、関節２２をモーメントＭ２を打ち消す方向にトルクＭ２’で駆動する。
以上のように、足平１５ｃ、１６ｃが正常に接地できず、足平１５ｃ、１６ｃにモーメントが作用すると、サーボアンプ２２ｄ、２６ｄはモータ２２ａ、２６ａをモーメントＭ１，Ｍ２を打ち消す方向に駆動する。したがって、サーボアンプ２２ｄ、２６ｄは、モータ２２ａおよびモータ２６ａを高いトルクで駆動することとなる。このように、モータ２２ａおよびモータ２６ａを高いトルクで長時間駆動させると、モータ２２ａ及びモータ２６ａのサーボが落ちてしまうため、足平１５ｃ、１６ｃの角度を補正する必要がある。
また、歩行ロボット１０が傾いていると、足平１５ｃに作用する床反力Ｆ２と足平１６ｃに作用する床反力Ｆ１の大きさが異なる。また、床反力Ｆ２に対してモーメントＭ２が作用する方向（図７の角度φ２）と、床反力Ｆ１に対してモーメントＭ１が作用する方向（図７の角度φ１）も異なる。したがって、足平１５ｃに作用するモーメントＭ２の大きさと、足平１６ｃに作用するモーメントＭ１の大きさは異なることとなる。このため、モータ２２ａの駆動トルクＭ２’とモータ２６ａの駆動トルクＭ１’の大きさも異なる。すなわち、モータ２２ａに入力される制御指令値Ｔ２２と、モータ２６ａに入力される制御指令値Ｔ２６の大きさは異なる。したがって、制御指令値Ｔ２２の大きさ（絶対値）と制御指令値Ｔ２６の大きさ（絶対値）の差によって歩行ロボット１０が正常に接地しているか否かを判定することができる。
【００３６】
同様に、図８に示すように、歩行ロボット１０が両足で立脚している状態で左脚部１６が床面上の障害物に乗り上げていると、足平１６ｃが前側近傍の点Ｃで障害物と接触し、足平１５ｃが後側近傍の点Ｄで床面と接触し、歩行ロボット１０が後方向に傾く。このような場合にも、モータ２０ａに前回の周期に出力した制御指令値Ｔ２０−１の絶対値とモータ２４ａに前回の周期に出力したＴ２４−１の絶対値の差分値ΔＴ２が閾値ΔＴｍｉｎよりも大きいか否かを判定することで、歩行ロボット１０の前後方向において足平１５ｃ、１６ｃが正常に接地しているか否かを判定することができる。
【００３７】
したがって、ステップＳ１０では、目標関節角補正部５０は、差分値ΔＴ１が閾値ΔＴｍｉｎよりも大きいか否かを判定する。目標関節角補正部５０は、差分値ΔＴ１が閾値ΔＴｍｉｎよりも大きい場合は、前回の周期における角度補正量ΔθＡ１−１に所定値を加算し、今回の周期における角度補正量ΔθＡ１を算出する。そして、算出した角度補正量ΔθＡ１だけ目標関節角θＡ２２、θＡ２６を補正する（ステップＳ１２）。このとき、目標関節角補正部５０は、目標関節角θＡ２２、θＡ２６をモータ２２ａ、２６ａが駆動している方向と逆方向（例えば、図７の場合はモーメントＭ１、Ｍ２の方向）に補正する。このようにθＡ２２、θＡ２６が補正されて、補正後の目標関節角θＡ２２’、θＡ２６’が算出される。
一方、差分値ΔＴ１が閾値ΔＴｍｉｎよりも小さい場合は（すなわち、ステップＳ１０でＮＯ）、目標関節角補正部５０は、前回の周期の補正量ΔθＡ１−１と同じ補正量で、目標関節角θＡ２２、θＡ２６を補正し、目標関節角θＡ２２’、θＡ２６’を算出する（ステップＳ１４）。
ステップＳ１６では、目標関節角補正部５０は、差分値ΔＴ２が閾値ΔＴｍｉｎよりも大きいか否かを判定する。目標関節角補正部５０は、差分値ΔＴ２が閾値ΔＴｍｉｎよりも大きい場合は、前回の周期における角度補正量ΔθＡ２−１に所定値を加算し、今回の周期における角度補正量ΔθＡ２を算出する。そして、算出した角度補正量ΔθＡ２だけ目標関節角θＡ２０、θＡ２４を補正する（ステップＳ１８）。このとき、目標関節角補正部５０は、目標関節角θＡ２０、θＡ２４をモータ２０ａ、２４ａが駆動している方向と逆方向に補正する。このようにθＡ２０、θＡ２４が補正されて、補正後の目標関節角θＡ２０’、θＡ２４’が算出される。
一方、差分値ΔＴ２が閾値ΔＴｍｉｎよりも小さい場合は（すなわち、ステップＳ１６でＮＯ）、目標関節角補正部５０は、前回の周期の補正量ΔθＡ２−１と同じ補正量で、目標関節角θＡ２０、θＡ２４を補正し、目標関節角θＡ２０’、θＡ２４’を算出する（ステップＳ２０）。
【００３８】
目標関節角θＡ２０’〜θＡ２６’を算出すると、目標関節角補正部５０は算出した目標関節角θＡ２０’〜θＡ２６’をサーボアンプ２０ｄ〜２６ｄに出力する（ステップＳ２２）。サーボアンプ２０ｄ〜２６ｄは、入力された目標関節角θＡ２０’〜θＡ２６’に応じて、制御指令値Ｔ２０〜Ｔ２６を出力する。出力された制御指令値Ｔ２０〜Ｔ２６は、モータ２０ａ〜２６ａにそれぞれ入力され、モータ２０ａ〜２６ａが駆動される。これによって、関節２０〜２６の角度が、目標関節角θＡ２０’〜θＡ２６’に応じた角度に制御される。また、サーボアンプ２０ｄ〜２６ｄが出力した制御指令値Ｔ２０〜Ｔ２６は、目標関節角補正部５０に入力される。すると、目標関節角補正部５０は、制御指令値Ｔ２０〜Ｔ２６を記憶する（ステップ２４）。記憶した制御指令値Ｔ２０〜Ｔ２６は、次回の周期において、前回の制御指令値Ｔ２０−１〜Ｔ２６−１として用いられる。
【００３９】
このように、足平１５ｃ及び１６ｃが正常に接地していない場合、図６のフローチャートが繰り返し実行されることによって、関節２０〜２６の角度が徐々に補正される。すると、例えば図７のように接地していた足平１５ｃ、１６ｃは、図９に示すように安定した状態となり、図８のように接地していた足平１５ｃ、１６ｃは、図１０に示すように安定した状態となる。足平１５ｃ、１６ｃが安定すると、関節２０〜２６に過大なモーメントが作用しなくなり、差分値ΔＴ１、ΔＴ２が閾値ΔＴｍｉｎより小さくなる。すると、目標関節角補正部５０は、それ以上目標関節角θＡ２０〜θＡ２６を補正しない。したがって、足平１５ｃ、１６ｃの安定した状態が維持される。
【００４０】
また、目標関節角補正部５０が、目標関節角θＡ２０〜θＡ２６を補正したときの補正量（ΔθＡ１，ΔθＡ２）（すなわち、足首関節補正量データ（ΔθＡ１，ΔθＡ２））は、後の処理で制御装置４０によって送信アンテナ３２に出力される。なお、目標関節角θＡ２０〜θＡ２６のいずれかを補正しなかった場合は、その補正しなかった目標関節角の補正量は０として出力される。
【００４１】
（制御装置４０が各関節を制御する処理について）
図１１は制御装置４０が各関節を制御する処理のフローチャートを示している。制御装置４０は、図１１のフローチャートに示す処理を制御周期毎に繰り返し実行することで、歩行ロボット１０の各関節を制御し、歩行ロボット１０に所望の動作を実行させる。
また、制御装置４０の現在位置算出部５４は、所定周期（制御周期より短い周期）で本体１１の現在位置（ｘ，ｙ，ｚ）を算出し続ける。また、制御装置４０は、後述するステップＳ４８で、そのときの本体１１の現在位置（ｘ，ｙ）を現在位置算出部５４から読み出す。そして、現在位置（ｘ，ｙ）と目標位置（ｘＡ，ｙＡ）から位置ずれデータ（Δｘ，Δｙ）を算出し、その算出した位置ずれデータ（Δｘ，Δｙ）を記憶する。したがって、図１１のフローチャートの開始時には、制御装置４０は、前回の周期における位置ずれデータ（Δｘ，Δｙ）を記憶している。
【００４２】
歩行ロボット１０の操縦者がコントローラ８０のジョイスティック８２を操作すると、コントローラ８０の送信アンテナ８４、歩行ロボット１０の受信アンテナ３０を介して制御装置４０に動作命令データ（すなわち、移動方向、移動速度を指示する命令）が入力される（ステップＳ３０）。動作命令データが入力されると、制御装置４０は入力された動作命令データにしたがって目標位置（ｘＡ，ｙＡ）を算出する（ステップＳ３２）。
【００４３】
次に、制御装置４０は、算出した目標位置（ｘＡ，ｙＡ）と、前回の制御周期における目標位置（ｘＡ−１，ｙＡ−１）と、記憶している前回の制御周期の位置ずれデータ（Δｘ，Δｙ）から、目標移動量（ｄｘ，ｄｙ）を算出する（ステップＳ３４）。
例えば、図１２に示すように、点１００が前回の周期における目標位置（ｘＡ−１，ｙＡ−１）であり、点１０２が本体１１の現在位置（ｘ，ｙ）であるとすると、位置ずれデータ（Δｘ，Δｙ）は、図１２のベクトル１０４となる。このとき、今回の周期の目標位置（ｘＡ，ｙＡ）が点１０６であったとすると、今回の周期の目標移動量（ｄｘ，ｄｙ）は図１２のベクトル１０８となる。したがって、制御装置４０は、以下の計算式によって目標移動量（ｄｘ，ｄｙ）を算出する。
ｄｘ＝（ｘＡ−ｘＡ−１）＋Δｘ
ｄｙ＝（ｙＡ−ｙＡ−１）＋Δｙ
【００４４】
ステップＳ３６では、制御装置４０は、今回の制御周期の間に本体１１が目標移動量（ｄｘ，ｄｙ）だけ移動するように、今回の周期における各関節１８〜２６の目標関節角θＡ１８〜２６を算出する（ステップＳ３６）。このように、各関節１８〜２６の目標関節角θＡ１８〜θＡ２６が算出されることによって、今回の制御周期における歩行ロボット１０の目標姿勢が規定される。制御装置４０は、目標関節角θＡ１８〜θＡ２６を算出すると、目標関節角θＡ１８をそれぞれ対応するサーボアンプ１８ｄに出力する（ステップＳ３８）。それと略同時に、制御装置４０は、図６のフローチャートを実行して目標関節角θＡ２０〜θＡ２６を補正し、目標関節角θＡ２０’〜θＡ２６’をサーボアンプ２０ｄ〜２６ｄにそれぞれ出力する（ステップＳ４０）。これによって、サーボアンプ１８ｄ〜２６ｄがモータ１８ａ〜２６ａに制御指令値Ｔ１８〜Ｔ２６を出力し、関節１８〜関節２６が目標関節角θＡ１８、θＡ２０’〜θＡ２６’に応じた角度に制御される。したがって、歩行ロボット１０の本体１１は、目標位置（ｘＡ，ｙＡ）に応じた位置に移動する。
【００４５】
歩行ロボット１０が動作を実行すると、制御装置４０は、ステップＳ３８で算出された歩行ロボット１０の目標姿勢から、本体１１の目標傾斜角（ＰＡ，ＲＡ）を算出する。また、制御装置４０は、傾斜角センサ７０が検出する本体１１の現在の傾斜角（Ｐ，Ｒ）を読取る。そして、算出した目標傾斜角（ＰＡ，ＲＡ）と現在の傾斜角（Ｐ，Ｒ）の差分値（ΔＰ，ΔＲ）（すなわち、本体１１の傾斜角ずれデータ（ΔＰ，ΔＲ））を算出する（ステップＳ４２）。
【００４６】
次に、制御装置４０は、カメラ７４から画像データを取得する（ステップＳ４４）。
【００４７】
次に、制御装置４０は、本体１１の現在位置（ｘ，ｙ）を現在位置算出部５４から読み出す。そして、読み出した現在位置（ｘ，ｙ）とステップＳ３２で算出した本体１１の目標位置（ｘＡ，ｙＡ）から、本体１１の位置ずれデータ（Δｘ，Δｙ）を算出する。制御装置４０は算出した位置ずれデータ（Δｘ，Δｙ）を記憶する（ステップＳ４６）。
【００４８】
ステップＳ４８では、制御装置４０は、ステップＳ４０で目標関節角θＡ２０〜θＡ２６を補正したときの補正量（足首関節補正量データ（ΔθＡ１，ΔθＡ２））、ステップＳ４２で算出した傾斜角ずれデータ（ΔＰ，ΔＲ）、ステップＳ４４で取得した画像データ、ステップＳ４６で算出した位置ずれデータ（Δｘ，Δｙ）を送信アンテナ３２に出力する。すると、送信アンテナ３２、コントローラ８０の受信アンテナ８６を介して、コントローラ８０の表示装置８８にこれらのデータが入力される。これによって、表示装置８８が表示する画像が、新たに入力された各データ（すなわち、歩行ロボット１０の現在の制御状態）に基づいた画像に更新される。
【００４９】
制御装置４０は、図１１のフローチャートを制御周期毎に繰り返し実行し、関節１８〜２６の角度を制御する。したがって、歩行ロボット１０は、操縦者がコントローラ８０を操作するのに応じて歩行する。
また、制御装置４０は、コントローラ８０に位置ずれデータ（Δｘ，Δｙ）、傾斜角ずれデータ（ΔＰ，ΔＲ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）及び画像データを送信する。制御装置４０は図１１のフローチャートを制御周期毎に繰り返し実行するので、コントローラ８０には位置ずれデータ（Δｘ，Δｙ）、傾斜角ずれデータ（ΔＰ，ΔＲ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）及び画像データが制御周期毎に繰り返し入力される。したがって、コントローラ８０の表示装置８８の主要部Ｍにはカメラ７４が撮影した画像が略リアルタイムの動画として表示され、表示装置８８の上部Ｎには位置ずれデータ（Δｘ，Δｙ）、傾斜角ずれデータ（ΔＰ，ΔＲ）、足首関節補正量データ（ΔθＡ１，ΔθＡ２）の値が略リアルタイムで表示される（図４参照）。
【００５０】
以上に説明したように、本実施例のロボット制御システム８では、コントローラ８０の表示装置８８は歩行ロボット１０のカメラ７４で撮影した画像を略リアルタイムの動画として表示する。したがって、歩行ロボット１０の操縦者は、表示装置８８が表示する画像を確認しながら好適に歩行ロボット１０を操縦することができる。
また、ロボット制御システム８では、コントローラ８０の表示装置８８が位置ずれデータ（Δｘ，Δｙ）を略リアルタイムで表示する。位置ずれデータ（Δｘ，Δｙ）が大きいことは、歩行ロボット１０が障害物に衝突する等して外乱を受け、操縦したとおりに制御されていないことを意味する。したがって、歩行ロボット１０の操縦者は、位置ずれデータ（Δｘ，Δｙ）の値から歩行ロボット１０が外乱を受けているか否かを判断しながら歩行ロボット１０を操縦することができる。例えば、歩行ロボット１０に外乱が作用していると判断できる場合には、歩行ロボット１０の移動速度を小さくして慎重に運転することで、歩行ロボット１０を転倒することなく操縦することが可能となる。あるいは、歩行ロボット１０の向きを変えることで、歩行ロボット１０の周囲の状況をカメラ７４で確認する等の対応を採ることができる。したがって、操縦者は、容易に歩行ロボット１０を意図通りに操縦することができる。
また、ロボット制御システム８では、コントローラ８０の表示装置８８が傾斜角ずれデータ（ΔＰ，ΔＲ）を略リアルタイムで表示する。傾斜角ずれデータ（ΔＰ，ΔＲ）が大きいことは、歩行ロボット１０が障害物に衝突したり、歩行ロボット１０が障害物に乗り上げたり、歩行ロボット１０が歩行する床面が傾斜している等して、歩行ロボット１０のバランスが悪いことを意味する。したがって、歩行ロボット１０の操縦者は、傾斜角ずれデータ（ΔＰ，ΔＲ）の値から、歩行ロボット１０のバランス状態が良好であるか否かを判断しながら歩行ロボット１０を操縦することができる。したがって、操縦者は、歩行ロボット１０のバランス状態に応じて移動速度等を変化させることで、容易に歩行ロボット１０を意図通りに操縦することができる。
さらに、ロボット制御システム８では、コントローラ８０の表示装置８８が足首関節補正量データ（ΔθＡ１，ΔθＡ２）を略リアルタイムで表示する。足首関節補正量データ（ΔθＡ１，ΔθＡ２）が大きいことは、歩行ロボット１０が障害物に乗り上げる等して足平１５ｃ、１６ｃが正常に接地していないことを意味する。したがって、歩行ロボット１０の操縦者は、足首関節補正量データ（ΔθＡ１，ΔθＡ２）の値から、歩行ロボット１０の足平１５ｃ、１６ｃが正常に接地しているか否かを判断しながら歩行ロボット１０を操縦することができる。したがって、操縦者は、歩行ロボット１０の足平１５ｃ，１６ｃの接地状態から床面の状況等を把握でき、床面の状況等に応じて移動速度等を変化させることで、容易に歩行ロボット１０を意図通りに操縦することができる。
【００５１】
なお、上述した実施例では、位置ずれ量算出部５６で算出した位置ずれデータ（Δｘ，Δｙ）を、次回の周期のステップＳ３４で目標移動量（ｄｘ，ｄｙ）を算出する際に利用した。しかしながら、このように目標移動量（ｄｘ，ｄｙ）を算出しなくても、歩行ロボット１０の位置を制御できる場合（例えば、位置ずれ量に応じて操縦者が微調整を行う場合）には、次回の周期で算出した位置ずれデータ（Δｘ，Δｙ）を利用しなくてもよい。
【００５２】
また、上述した実施例では、制御指令値Ｔ２２−１とＴ２６−１の差分値ΔＴ１（または、制御指令値Ｔ２０−１とＴ２４−１の差分値ΔＴ２）に基づいて、足平１５ｃ、１６ｃが正常に接地しているか否かを判定した。しかしながら、本発明は、このような実施形態に限られない。例えば、モータ２０ａ〜２６ａのそれぞれにモータの駆動トルクを検出するトルクセンサを設置し、それらのトルクセンサの検出値に基づいて足平１５ｃ、１６ｃが正常に接地しているか否かを判定してもよい。また、足平１５ｃ、１６ｃの接地面に足平１５ｃ、１６ｃの接地状態を検出するセンサ（例えば、接触式の圧力センサ）を設置してもよい。
また、上述した実施例では、表示装置８８で足首関節補正量データ（ΔθＡ１，ΔθＡ２）を表示したが、本発明はこのような実施形態に限られない。例えば、表示装置８８で制御指令値Ｔ２２−１とＴ２６−１の差分値ΔＴ１または、制御指令値Ｔ２０−１とＴ２４−１の差分値ΔＴ２を表示してもよい。差分値ΔＴ１、ΔＴ２を表示することによっても、足平１５ｃ、１６ｃが正常に接地しているか否かを判断することができる。また、モータ２０ａ〜２６ａのそれぞれにモータの駆動トルクを検出するトルクセンサを設置する場合には、それらのトルクセンサの検出値を表示装置で表示してもよい。また、足平１５ｃ、１６ｃの接地面に足平１５ｃ、１６ｃの接地状態を検出するセンサを設置する場合には、そのセンサの検出値を表示してもよい。
【００５３】
また、上述した実施例では、図４に示すように、足首関節補正量データ（ΔθＡ１，ΔθＡ２）、位置ずれデータ（Δｘ，Δｙ）、傾斜角ずれデータ（ΔＰ，ΔＲ）を棒グラフとして表示したが、図１３に示すように表示してもよい。図１３では、足首関節補正量データを、ΔθＡ１を横軸、ΔθＡ２を縦軸とした座標図として表示し、位置ずれデータを、Δｘを横軸、Δｙを縦軸とした座標図として表示し、傾斜角ずれデータを、ΔＰを縦軸、ΔＲを横軸とした座標図として表示している。このように各データを表示すると、歩行ロボット１０がどちらの方向にずれているかや傾いているか等が一目で把握でき、操縦者は歩行ロボット１０の状態をより正確に把握することができる。
【００５４】
また、上述した実施例では、コントローラ８０と歩行ロボット１０は物理的に隔離していたが、操縦者が歩行ロボットに搭乗した状態で歩行ロボットを操縦するタイプのロボット制御システムにおいては、歩行ロボットにコントローラを搭載してもよい。
【００５５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例をさまざまに変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５６】
【図１】ロボット制御システム８の斜視図。
【図２】ロボット制御システム８のブロック図。
【図３】足首関節２０〜２６の拡大図。
【図４】コントローラ８０の表示画面を示す図。
【図５】図２のＸ部の詳細を示すブロック図。
【図６】モータ２０ａ〜２６ａに制御指令値Ｔ２０〜Ｔ２６を出力する際の処理を示すフローチャート。
【図７】足平１５ｃ、１６ｃの接地状態の説明図。
【図８】足平１５ｃ、１６ｃの接地状態の説明図。
【図９】足平１５ｃ、１６ｃの接地状態の説明図。
【図１０】足平１５ｃ、１６ｃの接地状態の説明図。
【図１１】歩行ロボット１０の各部を制御する際の処理を示すフローチャート。
【図１２】目標移動量（ｄｘ，ｄｙ）の説明図。
【図１３】他の実施例のコントローラ８０の表示画面を示す図。
【符号の説明】
【００５７】
８：ロボット制御システム
１０：歩行ロボット
１１：本体
１２：頭部
１３：右腕部
１４：左腕部
１５：右脚部
１５ａ：上腿部
１５ｂ：下腿部
１５ｃ：足平
１６：左脚部
１６ａ：上腿部
１６ｂ：下腿部
１６ｃ：足平
１８〜２６：関節
１８ａ〜２６ａ：モータ
１８ｂ〜２６ｂ：エンコーダ
２０ｃ〜２６ｃ：回転軸
１８ｄ〜２６ｄ：サーボアンプ
３０：受信アンテナ
３２：送信アンテナ
４０：制御装置
４２：目標位置算出部
４４：目標移動量算出部
４８：目標関節角算出部
５０：目標関節角補正部
５２：傾斜角ずれ量算出部
５４：現在位置算出部
５６：位置ずれ量算出部
７０：傾斜角センサ
７２：加速度センサ
７４：カメラ
８０：コントローラ
８２：ジョイスティック
８４：送信アンテナ
８６：受信アンテナ
８８：表示装置
【図１】
2008087109.tif 000003
【図２】
2008087109.tif 000004
【図３】
2008087109.tif 000005
【図４】
2008087109.tif 000006
【図５】
2008087109.tif 000007
【図６】
2008087109.tif 000008
【図７】
2008087109.tif 000009
【図８】
2008087109.tif 000010
【図９】
2008087109.tif 000011
【図１０】
2008087109.tif 000012
【図１１】
2008087109.tif 000013
【図１２】
2008087109.tif 000014
【図１３】
2008087109.tif 000015