(57)【特許請求の範囲】
【請求項１】
複数の軸を持つ上半身機構を台車上に載置し、前記台車に設けられる実質的に１本の車軸、前記車軸上に間隔を隔てて設けられる２つの車輪、および前記車輪を回転する車輪モータを備えるコミュニケーションロボットにおいて、重心位置を観測しない場合の制御方法であって、
前記上半身機構の重力方向に対する倒れ角速度を検出する倒れ角速度検出ステップ、
前記車輪の回転角速度を検出する回転角速度検出ステップ、
前記倒れ角速度および前記回転角速度に基づいて前記倒れ角の推定値を計算する推定値計算ステップ、
前記推定値および前記倒れ角速度ならびに前記回転角速度に従って前記車輪に与えるトルクを計算するトルク計算ステップ、および
前記車輪に前記計算したトルクが与えられるように前記車輪モータを制御する車輪モータ制御ステップを含む、コミュニケーションロボットの制御方法。
【請求項２】
複数の軸を持つ上半身機構を台車上に載置し、前記台車に設けられる実質的に１本の車軸、前記車軸上に間隔を隔てて設けられる２つの車輪、および前記車輪を回転する車輪モータを備えるコミュニケーションロボットにおいて、重心位置を観測しない場合の制御装置であって、
前記上半身機構の前記重力方向に対する倒れ角速度を検出する倒れ角速度検出手段、
前記車輪の回転角速度を検出する回転角速度検出手段、
前記倒れ角速度および前記回転角速度に基づいて前記倒れ角の推定値を計算する推定値計算手段、
前記推定値および前記倒れ角速度ならびに前記回転角速度に従って前記車輪に与えるトルクを計算するトルク計算手段、および
前記車輪に前記計算したトルクが与えられるように前記車輪モータを制御する車輪モータ制御手段を備える、コミュニケーションロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コミュニケーションロボットに関し、特にたとえば、移動台車上に載置された人型上半身機構を有するコミュニケーションロボットに関する。
【背景技術】
【０００２】
この種の従来のロボットでは、３つ以上の車輪をバランスよく配置することによって、その台車すなわち上半身機構が倒れるのを防止している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のロボットのこのような車輪の配置による支持には限界があり、上半身の動きや、あるいは強い力で押された衝撃によって倒れてしまう危険がある。この問題は、コミュニケーションロボットがコミュニケートする対象が特に幼児や小児の場合には、重大な結果を惹起するおそれがある。
【０００４】
それゆえに、この発明の主たる目的は、転倒を防止できる、コミュニケーションロボットを提供することである。
【課題を解決するための手段】
【０００５】
第１の発明に従ったコミュニケーションロボットの制御方法は、複数の軸を持つ上半身機構を台車上に載置し、台車に設けられる実質的に１本の車軸、車軸上に間隔を隔てて設けられる２つの車輪、および車輪を回転する車輪モータを備えるコミュニケーションロボットにおいて、重心位置を観測しない場合の制御方法であって、上半身機構の重力方向に対する倒れ角速度を検出する倒れ角速度検出ステップ、車輪の回転角速度を検出する回転角速度検出ステップ、倒れ角速度および回転角速度に基づいて倒れ角の推定値を計算する推定値計算ステップ、推定値および倒れ角速度ならびに回転角速度に従って車輪に与えるトルクを計算するトルク計算ステップ、および車輪に計算したトルクが与えられるように車輪モータを制御する車輪モータ制御ステップを含む、コミュニケーションロボットの制御方法である。
【００１１】
第２の発明に従ったコミュニケーションロボットの制御装置は、複数の軸を持つ上半身機構を台車上に載置し、台車に設けられる実質的に１本の車軸、車軸上に間隔を隔てて設けられる２つの車輪、および車輪を回転する車輪モータを備えるコミュニケーションロボットにおいて、重心位置を観測しない場合の制御装置であって、上半身機構の重力方向に対する倒れ角速度を検出する倒れ角速度検出手段、車輪の回転角速度を検出する回転角速度検出手段、倒れ角速度および回転角速度に基づいて倒れ角の推定値を計算する推定値計算手段、推定値および倒れ角速度ならびに回転角速度に従って車輪に与えるトルクを計算するトルク計算手段、および車輪に計算したトルクが与えられるように車輪モータを制御する車輪モータ制御手段を備える、コミュニケーションロボットの制御装置である。
【００１２】
第１の発明に従ったコミュニケーションロボットの制御方法では、このコミュニケーションロボットの重心を観測(計算)しない場合、推定ステップで、同軸２輪倒立振子の運動方程式に従って、たとえば上半身機構の重力方向に対する倒れ角速度に基づいて倒立振子の重心と車軸とを結ぶ直線と鉛直線とのなす角度を推定する。そして、この推定値（角度）と上記倒れ角速度と車輪の回転角速度とが状態変数となり、この状態変数に基づいて、トルク計算ステップで車輪に与えるトルクを計算し、車輪モータ制御ステップでは、車輪に計算したトルクが与えられるように車輪モータを制御する。
【００１４】
第２の発明に従ったコミュニケーションロボットの制御装置では、このコミュニケーションロボットの重心を観測(計算)しない場合、推定手段で、同軸２輪倒立振子の運動方程式に従って、たとえば上半身機構の重力方向に対する倒れ角速度に基づいて倒立振子の重心と車軸とを結ぶ直線と鉛直線とのなす角度を推定する。そして、この推定値（角度）と上記倒れ角速度と車輪の回転角速度とが状態変数となり、この状態変数に基づいて、トルク計算手段が車輪に与えるトルクを計算し、車輪モータ制御手段は、車輪に計算したトルクが与えられるように車輪モータを制御する。
【発明の効果】
【００１５】
この発明によれば、同軸２輪で支持した台車を用いることによって、コミュニケーションロボットの転倒が防止できる。
【００１７】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行
う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１８】
図１および図２を参照して、この発明の一実施例のコミュニケーションロボット（以下、単に「ロボット」ということがある。）１０は、台車１２を含み、この台車１２上に、人型の上半身機構１４が載置される。このロボット１０は、全体として、台車１２の移動に応じて自律移動する。
【００１９】
台車１２の下部には、図１で点線で示すように、車軸１６が内蔵され、車軸１６の左右端にはそれぞれ車輪１８ａおよび１８ｂが回転可能に取付られる。この車輪１８ａおよび１８ｂは、それぞれ、図６に示す直流モータによって構成される車輪モータ８０によって個別に回転駆動される。したがって、台車１２すなわちロボット１０を前後左右任意の方向に動かすことができる。ただし、図６では、簡単化のために、１つの車輪モータ８０のみを図示している。また、図１実施例では、１本の車軸１６に２つの車輪１８ａおよび１８ｂ（まとめて「１８」で示すことがある。）が取り付けられているが、左右の車輪１８ａおよび１８ｂを、一直線に整列さた２本の車軸にそれぞれ取り付けるようにしてもよい。
【００２０】
台車１２の上部外面には、多角形柱のセンサ取付パネル２０が設けられ、このセンサ取付パネル２０の各面には、それぞれ超音波距離センサ２２が取り付けられる。この超音波距離センサ２２は、取付パネル２０すなわちロボット１０の周囲の主として人との間の距離を計測するものである。ただし、後述の図６では、複数の超音波距離センサを参照符号「２２」で包括的に示す。
【００２１】
なお、図示しないが、この台車１２の前面には、衝突センサ（図６において、参照番号「９４」で示す。）が取り付けられ、この衝突センサ９４（図６）は、台車１２への人や他の障害物の接触を検知する。そして、ロボット１０の移動中に障害物や人との接触を検知すると、図６に示すＣＰＵ６６は、直ちに車輪１８ａおよび１８ｂの駆動を停止し、ロボット１０の移動を急停止させて、人や障害物との衝突を未然に防ぐようにしている。
【００２２】
なお、ロボット１０の背の高さは、この実施例では、人、特に子供に威圧感をあたえることがないように、１００ｃｍ程度とされている。ただし、この背の高さは任意に変更可能である。
【００２３】
台車１２の上には、ベース２４によって、上述の上半身機構１４が取り付けられる。この上半身機構１４のベース２４は人間の身体に対応させれば、脚の上端あたりの部位に相当し、このベース２４の上には、人間の身体では臀部に相当する腰支持部２６が固着される。
【００２４】
腰支持部２６の上には、３自由度の腰関節２８を介して、胴体部３０が連結される。胴体部３０は、図３を参照して後に説明するようにパラレルリンクを構成し、したがって、腰支持部２６と胸部３２とがパラレルリンクによって連結される。
【００２５】
胸部３２の上端前方には、人間でいえば肩に相当する、左右の腕取付面３８ａおよび３８ｂが形成される。そして、腕取付面３８ａおよび３８ｂには、それぞれ、肩関節４０ａおよび４０ｂによって、上腕４２ａおよび４２ｂが取り付けられる。肩関節４０ａおよび４０ｂは、それぞれ３軸の自由度を有する。上腕４２ａおよび４２ｂのそれぞれの先端には、肘関節４４ａおよび４４ｂを介して、前腕４６ａおよび４６ｂが取り付けられる。肘関節４４ａおよび４４ｂは、それぞれ、２つのの軸廻りにおいて、前腕４６ａおよび４６ｂの角度を制御できる。さらに、前腕４６ａおよび４６ｂのそれぞれの自由端には、手部分４８ａおよび４８ｂが自由度なしに固定的に設けられる。この手部分４８ａおよび４８ｂには、それぞれ、１本の指（人差し指に相当する）５０ａおよび５０ｂが、折り畳みかつ伸張可能に設けられる。したがって、この指５０ａおよび５０ｂを使った指差し動作により、目的地を示す、注意を喚起する等のコミュニケーションをとることができる。
【００２６】
なお、図示しないが、胸部３２の肩関節４０ａおよび４０ｂを含む肩の部分や上述の上腕４２ａおよび４２ｂならびに前腕４６ａおよび４６ｂには、それぞれ、タッチセンサが設けられていて、これらのタッチセンサは、人がロボット１０のこれらの部位に接触したかどうかを検知する。これらのタッチセンサも図６において参照番号９２で包括的に示す。
【００２７】
胸部３２の中央上方には、首関節（図示せず）を介して、頭部５２が取り付けられる。この首関節は、３つの自由度を有し、各軸廻りに角度制御可能である。頭部５２には、目に相当する位置に眼カメラ５４が設けられる。つまり、このロボット１０では、人間と同様に、頭部５２を上下左右に振ることができるとともに、眼カメラ５４も人間の眼球運動と同じく上下左右に動かせる。なお、眼カメラ５４は、ロボット１０に接近した人の顔や他の部分を撮影してその映像信号を取り込む。そして、眼カメラ５４は、たとえばＣＣＤやＣＭＯＳのように個体撮像素子を用いるカメラであってよい。
【００２８】
ここで、図３を参照して、胴体部３０で構成するパラレルリンクについて詳細に説明する。腰支持部２６内には軸５６によって回転可能に支持された円板５８が設けられ、他方、胸部３２内には軸６０によって回転可能に支持された円板６２が設けられる。この円板５８の中心と円板６２の中心とが胴体部３０によって連結され、第１のリンクが形成される。つまり、胴体部３０は、たとえば中空筒状体であり、その内壁によって第１円板５８の中心と第２円板の中心とを、それぞれの円板が回転または回動できるように支持する。つまり、胴体部３０が第１連結部材として機能する。また、円板５８上の点５８ａと円板６２上の点６２ａとの間に、第２連結部材として機能するロッド６４が連結される。つまり、円板５８および６２とロッド６４とによって第２のリンクが形成される。第１のリンクと第２のリンクとがパラレルリンクを構成し、したがって、腰支持部２６と胸部３２とがパラレルリンクを介して連結されることになる。
【００２９】
そして、円板５８すなわち軸５６は、腰モータ８４（図６）に連結され、それによって矢印ＡまたはＢ方向に回転ないし回動される。そして、円板５８が矢印ＡまたはＢ方向へ回転すると、その回転がロッド６４によって円板６２へ伝達され、したがって、円板６２が矢印ＣまたはＤ方向へ回転ないし回動される。胸部３２はこの円板６２に固着されている。したがって、円板６２が上述のように矢印ＣまたはＤ方向に回転ないし回動すると、胸部３２はその回転または回動につれて、上に向きまたは下に向く。
【００３０】
つまり、この実施例では、ロボット１０の機構の単純化と低重心化を図るために、腰モータ８４によって、腰関節２８だけでなく、パラレルリンクを介して胸部３２も動かすようにしている。したがって、この実施例では、図４に示すように、腰をかがめると胸部３２も下を向き、逆に図５に示すように腰を伸ばすと胸部も上を向くという、人間の自然な動作に近い動作を実現するができる。
【００３１】
なお、上述のパラレルリンクにおいては２つの構造があり、一方は、２つのリンク（連結部材）が交差する構造であり、他方は、２つのリンクが交差しない構造である。図４および図５は前者の構造の場合を示している。そして、後者の構造の場合には、腰を曲げても伸ばしても胸部の向きに大きな変化を生じない。実施例では前者を用いたが、後者を用いてもよいことは勿論である。
【００３２】
なお、上で述べたように、腰関節２８は２自由度であり、そのうちの１つの軸が腰モータ８４によって制御される軸５８であり、他の軸は、いずれも図示しないが、腰支持部２６を水平面内で回転させる垂直軸である。
【００３３】
図１に示すロボット１０の制御系の構成が図６のブロック図に示される。図６に示すように、このロボット１０は、全体の制御のためにマイクロコンピュータまたはＣＰＵ６６を含み、このＣＰＵ６６には、バス６８を通して、メモリ７０，モータ制御ボード７２およびセンサ入力／出力ボード７４が接続される。
【００３４】
メモリ７０は、図示しないが、ＲＯＭやＲＡＭを含み、ＲＯＭにはこのロボット１０の制御プログラムが予め書き込まれているとともに、スピーカ（図示せず）から発生すべき音声または声の音声データが格納されている。ＲＡＭは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用され得る。
【００３５】
モータ制御ボード７２は、たとえばＤＳＰ(Digital Signal Processor)で構成され、電磁ブレーキ７８や他のモータ８０，８４，８６および８８を制御する。電磁ブレーキ７８は、上記腰関節２８（３自由度）に設けられていて、電源をオフすると各軸の関節をそのときの状態（姿勢）で固定するブレーキである。そして、図１および図２に示す車輪１８ａおよび１８ｂを駆動する車輪モータ８０にはエンコーダ８２が付属され、したがって、ＣＰＵ６６は、モータ制御ボード７２を介して、車輪モータ８０を駆動するとともに、エンコーダ８２からエンコーダ信号（パルス）を取り込むことができる。そのため、このエンコーダ８２およびＣＰＵ６６によって、車輪の回転角速度を検出するための手段を構成する。
【００３６】
さらに、モータ制御ボード７２は、ＣＰＵ６６からの制御データを受け、肩関節４０の３軸のそれぞれの角度を制御する３つのモータと肘関節４４の角度を制御する１つのモータとの計４つのモータ８６（図６ではまとめて、「腕モータ」として示す。）の回転角度を調節する。モータ制御ボード７２は、また、指５０（図１）を収納または伸張するための指モータ８８を制御する。
【００３７】
なお、この実施例の上述のモータは、車輪モータ８０を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ８０と同様に、直流モータであってよい。
【００３８】
センサ入力／出力ボード７４も、同様に、ＤＳＰで構成され、各センサやカメラからの信号を取り込んでＣＰＵ６６に与える。すなわち、超音波距離センサ２２の各々からの反射時間に関するデータがこのセンサ入力／出力ボード７４を通して、ＣＰＵ６６に入力される。さらに、この図６では、図１との関連で説明した上述のタッチセンサは、まとめて「タッチセンサ９２」として表され、それらのタッチセンサ９２からの信号がセンサ入力／出力ボード７４を介して、ＣＰＵ６６に与えられる。センサ入出力ボード７４には、衝突センサ９４が接続され、ＣＰＵ６６は、衝突センサ９４からの信号によって、ロボット１０が人や他の障害物に衝突したかどうか検出することができる。
【００３９】
さらに、上述の腰関節２８には、図１では図示していないが、外力の測定と環境に対するロボット１０の姿勢の検出とに用いる３軸加速度センサ９６が設けられる。したがって、ＣＰＵ６６は、センサ入出力ボード７４を介して、加速度センサ９６からのセンサ信号を受ける。後述のように、ＣＰＵ６６は、この加速度センサ９６からの信号に基づいてロボット１０に加えられた外力を推定し、その外力に応じたトルクを車輪１８に生じさせるように、車輪モータ８０を制御するとともに、重力加速度ベクトルを計測することによってロボットの姿勢を検出する。つまり、この３軸加速度センサ９６とコンピュータまたはＣＰＵ６６とによって倒れ角速度検出手段を構成する。
【００４０】
また、先の図１では図示していないが、上で述べた各モータにおける角度制御のために、各モータと対でポテンショメータが設けられ、図６では一括してポテンショメータ９８として示す。具体的には、ポテンショメータは、首関節の３つのモータ、各肩関節モータ、各肘関節モータ、腰関節の３つのモータ等に付属して設けられる。したがって、ＣＰＵ６６は、各ポテンショメータからの位置信号に基づいて、ロボット１０の現在の姿勢を推定することができる。
【００４１】
なお、図示しないが、この実施例のロボット１０には、必要に応じて、人間とのコミュニケーションのためのスピーカやマイクを設けてもよい。
【００４２】
上述のように、この実施例のロボット１０では、同軸上に取り付けられた２つの車輪１８ａおよび１８ｂを制御することによって、ロボット１０の転倒を防止するとともに、その自律移動を制御するようにしている。この実施例では、同軸２輪上の倒立振子として制御する。
【００４３】
詳しくいうと、この実施例のロボット１０に適用されている同軸２輪倒立振子を図７に示すように表し、その倒立振子の運動方程式を導く。図７は倒立振子を車輪１８と上半身機構１４を表す質点が長さｌで質量が無視できる棒でつながれているものとしてモデル化する。ここで、Ｍw，Ｍb，Ｉw，Ｉbは，それぞれ、車輪１８と上半身機構１４の質量と慣性モーメントを表す。また、ｒ，μg，μsは、それぞれ車輪の半径，車輪表面と床面との粘性係数，車軸１６廻りの粘性係数を表す。θ，φ，βは，それぞれ車輪の回転角度，上半身の回転角度，上半身に対する車輪の相対回転角度を表す。
【００４４】
この倒立振子の運動エネルギＴは
【００４５】
【数１】
0004418905.tif 000002
【００４６】
となる。また、位置エネルギＵと散逸エネルギＤは、
【００４７】
【数２】
0004418905.tif 000003
【００４８】
【数３】
0004418905.tif 000004
【００４９】
となる。また、この系に加わる非保存力は、上半身機構１４から車軸１６に与えられるトルクτであるので、一般座標β，θとしてグランジュの運動方程式をたてると
【００５０】
【数４】
0004418905.tif 000005
【００５１】
【数５】
0004418905.tif 000006
【００５２】
となる。したがって、上式（１），（２），（３）および式（４），（５）から
【００５３】
【数６】
0004418905.tif 000007
【００５４】
【数７】
0004418905.tif 000008
【００５５】
【数８】
0004418905.tif 000009
【００５６】
【数９】
0004418905.tif 000010
【００５７】
【数１０】
0004418905.tif 000011
【００５８】
【数１１】
0004418905.tif 000012
【００５９】
【数１２】
0004418905.tif 000013
【００６０】
ただし、ａ，ｂ，ｃ，ｄはそれぞれ
【００６１】
【数１３】
0004418905.tif 000014
【００６２】
【数１４】
0004418905.tif 000015
【００６３】
【数１５】
0004418905.tif 000016
【００６４】
【数１６】
0004418905.tif 000017
【００６５】
ただし、入力ｕ（ｔ）＝ｒである。
【００６６】
このようにして、実施例のロボット１０の状態方程式ｙが求まる。
【００６７】
【数１７】
0004418905.tif 000018
【００６８】
となる。このとき、状態ベクトルを零ベクトルに収束させるフィードバック系は
【００６９】
【数１８】
0004418905.tif 000019
【００７０】
で表すことができる。
【００７１】
これは状態フィードバック制御系であり、たとえばリカッチ方程式などを利用して適当なゲイン行列Ｋを決定すれば、状態ベクトルを必ず零ベクトルに収束させることができる。
【００７２】
なお、上半身機構１４の重心の位置がわからない場合には、出力方程式は式(19)で与えられる。
【００７３】
【数１９】
0004418905.tif 000020
【００７４】
このようにして、実施例のロボット１０が同軸２輪倒立振子として制御され得ることが理解できる。つまり、この倒立振子制御は、基本的に、車輪１８と上半身機構１４の重心とを結ぶ直線と鉛直線とのなす角度φを０（ゼロ）に収束させる制御である。ただし、この角度φが０（ゼロ）なら静止で、φ＞０なら前進移動、φ＜０なら後退移動である。そして、実施例のロボット１０では車輪１８ａおよび１８ｂを回転させて前進移動または後退移動を制御するので、移動制御のためにはも車輪１８の回転角速度／θも制御する必要がある。なお、ここで記号「／」は、上の式における記号「・」と同じ１回微分を表す記号であり、「／／」は２回微分すなわち上の式での「・・」と同じ意味を表す記号である。
【００７５】
なお、ロボット１０において、上半身機構１４が動くとそれの質量分布が変わるため、上半身機構１４の重心位置は動的に変化する。このような重心位置は、ロボット１０の各パーツ（部品）の質量分布（たとえば、モータがどこに配置されていて減速ギヤの位置はどこで、それぞれどれだけの質量で、などのような情報から計算した）と姿勢とに基づいて計算で求めることも可能ではある。ただし、このように重心位置を計算しながらロボット１０を制御する場合、その重心位置を正確に計算するためのコストが非常な高くなってしまう。したがって、以下のでは、上半身機構１４の重心位置を観測（計算）しない場合の動作を説明する。
【００７６】
図８は実施例のロボット１０の移動制御動作を示すフロー図であり、図９はロボット１０の直立制御動作を示すフロー図である。実際には、図８のフロー図および図９のフロー図が並列に動作している状態でロボット１０が動く。
【００７７】
電源（図示せず）がオンされると、図８のフロー図に基づく制御が開始され、最初のステップＳ１では、ＣＰＵ６６、電磁ブレーキ７８を解除して、ロボット１０を動くことができるような状態にする。続くステップＳ３では、ＣＰＵ６６は、他のプログラムから、移動速度指令値／θｄを受け取る。そして、ステップＳ５において、ＣＰＵ６６は、３軸加速度センサ９６からのセンサ信号に基づいて、上半身機構１４の回転角度／φを計測する。次のステップＳ７では、ＣＰＵ６６は、車輪モータ８０に付属しているエンコーダ８２からの回転信号に基づいて、車輪１８の回転角度／θを計測する。
【００７８】
そして、ステップＳ９において、上述のようにして求めた／φおよび／θから、低次元オブザーバによって、角度φの推定値∧φ（ただし、記号「∧」はハットである。）を求める。この推定値∧φおよび回転角度／φおよび／θが倒立振子モデルの状態変数であり、ステップＳ１１において、これらの状態変数∧φ，／φおよび／θに応じて、車輪１８に与えるトルクτを計算する。そして、ステップＳ１３で、ＣＰＵ６６はそのようにして求めたトルクτを車輪１８が受けるように車輪モータ８０を制御する制御データを、モータ制御ボード７２へ与える。それに応じて、車輪１８がそのトルクτで回転する。このようにして、状態変数をフィードバックすることによって上半身機構１４の回転角度φあるいは車輪１８の回転角度θを任意の値へ収束させることができる。つまり、移動速度指令値／θｄをＣＰＵ６６に与えることによって、ロボット１０をその指令値で移動させることができる。
【００７９】
次に、図９を参照して、この図９のフロー図は、ロボット１０が押された場合に転倒を防止する動作を示す。図９のフロー図は、図６に示すタッチセンサ９２がオンしたとき、開始される。タッチセンサ９２がオンすると、ＣＰＵ６６は、ステップＳ２１において、反応したタッチセンサ９２は上半身機構１４上に配置されているものかどうか、すなわち、上半身機構１４に設けられたタッチセンサが反応したのかどうか判断する。このステップＳ２１において“ＹＥＳ”なら、次のステップＳ２３において、ＣＰＵ６６は、腰関節２８を押された方向へ動かすように、腰モータ８４を制御する。詳しくいうと、たとえば肩に設けられたタッチセンサが前から押されたとすると、ＣＰＵ６６は、胸部３２が後方（図３の矢印Ｃ方向）へ傾倒するように、腰モータ８４を駆動する。そして、次のステップＳ２５において、ＣＰＵ６６は、ステップＳ２３での傾倒が腰関節２８の可動限界に達したかどうか判断する。このステップＳ２５において“ＮＯ”が判断されると、ステップＳ３１において、タッチセンサ９２がまだ反応しているかどうか判断する。タッチセンサが未だ反応し続けていれば、すなわち、ロボット１０が外力によって押され続けていれば、先のステップＳ２３に戻って、腰関節２８の制御を継続する。
【００８０】
ロボット１０が押され続けて、もし、腰関節の可動限界に達したことがステップＳ２５で検出されると、次のステップＳ２７において、ＣＰＵ６６は、押された方向と同じ方向の速度指令値を倒立振子制御系の／θへ出力する。したがって、このステップＳ２７において、図８のような移動制御が行われ、図８のステップＳ１３と同様に、その指令値/θに応じたトルクを車輪１８に与える。したがって、ロボット１０は押された方向へ移動する。
【００８１】
その後、ステップＳ２９において、ＣＰＵ６６はタッチセンサ９２が未だ反応したいるかどうか、判断する。“ＹＥＳ”なら、ステップＳ２７に戻り、“ＮＯ”なら、先のステップＳ３１において“ＮＯ”の場合と同様に、ステップＳ３３に進み、ステップＳ３３では、ＣＰＵ６６は、腰モータ８４等を制御して、ロボット１０の姿勢を、この図９のルーチンの開始時の姿勢、すなわち、元の姿勢に戻す。このようにして、倒立振子制御を利用して、ロボット１０が押された場合の転倒が回避される。
【００８２】
なお、上半身機構１４の重心が計測（計算）できる場合には、図８に相当する移動制御は図１０に示すフロー図に従って実行される。すなわち、電源（がオンされると、最初のステップＳ４１では、ＣＰＵ６６は、電磁ブレーキ７８（図６）を解除して、ロボット１０を動くことができるような状態にする。
【００８３】
続くステップＳ４３では、ＣＰＵ６６は、３軸加速度センサ９６（図６）からの信号に基づいて上半身機構１４の回転角度φ（+α：αは上半身の姿勢によって決まる値）およびそれの１回微分値／φを計測する。そして、次のステップＳ４５において、ＣＰＵ６６は、図６に示すポテンショメータ９８からの信号に基づいて、各関節の角度を調節し、それに応じたロボット１０のそのときの姿勢から上記αを計算する。その後、ステップＳ４７において、ＣＰＵ６６は、車輪モータ８０のエンコーダ８２からの信号に基づいて、車輪の回転角度／θを計測する。
【００８４】
そして、ステップＳ４９において、上述のようにして求めた角度φ、／φおよび／θから、車輪１８に与えるトルクτを計算する。すなわち、角度φ、／φおよび／θから低次元オブザーバによって、角度φの推定値∧φを求め、この∧φ、／φおよび／θに応じたトルクτを計算する。そして、ステップＳ５１で、ＣＰＵ６６はそのようにして求めたトルクτを車輪１８に与えるように、車輪モータ８０を制御する。
【図面の簡単な説明】
【００８５】
【図１】この発明の一実施例のコミュニケーションロボットを示す正面図である。
【図２】図１実施例のコミュニケーションロボットを示す左側面図である。
【図３】図１実施例のパラレルリンクを詳細に示す図解図である。
【図４】図３実施例のパラレルリンクの作用（腰をかがめた状態）を示す図解図である。
【図５】図３実施例のパラレルリンクの作用（腰を伸ばした状態）を示す図解図である。
【図６】図１実施例の制御系を示すブロック図である。
【図７】図１実施例における同軸２輪の倒立振子制御の原理を示す図解図である。
【図８】図１実施例における重心を計測しない場合の移動制御の動作を示すフロー図である。
【図９】図１実施例における重心を計測しない場合の転倒防止制御動作を示すフロー図である。
【図１０】図１実施例における重心を計測する場合の移動制御の動作を示すフロー図である。
【符号の説明】
【００８６】
１０  …コミュニケーションロボット
１２  …台車
１４  …上半身機構
１６  …車軸
１８（１８ａ，１８ｂ）  …車輪
２６  …腰支持部
２８  …腰関節
３０  …リンク部
３２  …胸部
５８，６２  …円板
６４  …リンク
６６  …ＣＰＵ
７２  …モータ制御ボード
７４  …センサ入出力ボード
８０  …車輪モータ
８２  …エンコーダ
８４  …腰モータ
８６  …指モータ
９２  …タッチセンサ
９６  …３軸加速度センサ
【図１】
0004418905.tif 000021
【図２】
0004418905.tif 000022
【図３】
0004418905.tif 000023
【図４】
0004418905.tif 000024
【図５】
0004418905.tif 000025
【図６】
0004418905.tif 000026
【図７】
0004418905.tif 000027
【図８】
0004418905.tif 000028
【図９】
0004418905.tif 000029
【図１０】
0004418905.tif 000030