(57)【要約】【課題】サーボコントロールするデバイスと駆動部との間の接続配線数が駆動部数に依存しないロボット装置を提供する。【解決手段】ロボット装置１は、胴体部ユニット２に対して可動とされた可動部である脚部ユニット３Ａ〜３Ｄ，頭部ユニット４及び尻尾ユニット５が連結され、この可動部には可動部を駆動するモータ１０３ｎが設けられている。そして、胴体部ユニット２に設けられモータ１０３ｎの駆動を制御する制御値を算出するマスタデバイス１０１と、上記可動部に設けられ１以上のモータ１０３ｎの駆動を制御するスレーブデバイス１０２ｎと、スレーブデバイス１０２ｎとマスタデバイス１０１との間の通信データの送受信を行うシリアルバス信号線ＳＢ１とからサーボ制御システムが構成され、スレーブデバイス１０２ｎは、マスタデバイス１０１から制御値を通信データとして受け取りモータ１０３ｎを駆動する。【選択図】　図１
2004001195.tif 000002
【特許請求の範囲】
【請求項１】
本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。
【請求項２】
上記スレーブデバイスは、該スレーブデバイスに接続されたセンサから上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することを特徴とする請求項１記載のロボット装置。
【請求項３】
上記マスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することを特徴とする請求項２記載のロボット装置。
【請求項４】
上記センサはポテンショメータであることを特徴とする請求項２記載のロボット装置。
【請求項５】
上記駆動部はアクチュエータであることを特徴とする請求項１記載のロボット装置。
【請求項６】
上記マスタデバイスと上記スレーブデバイスとの間に接続された共通電源線及び共通グラウンド線を有し、上記スレーブデバイスは上記センサに電源電位及び接地電位を供給することを特徴とする請求項１記載のロボット装置。
【請求項７】
上記通信データはデータ領域と上記駆動部を識別する識別情報を含む識別領域とを有し、
上記マスタデバイスが上記スレーブデバイスへ送信する上記通信データのデータ領域には上記駆動部を駆動する制御値が書き込まれ、
上記マスタデバイスが上記スレーブデバイスから受信する上記通信データのデータ領域には上記駆動部の動きを検出して得られたセンサ情報が書き込まれている
ことを特徴とする請求項１記載のロボット装置。
【請求項８】
本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、
上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、
上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。
【請求項９】
上記制御部は、上記スレーブデバイスに設けられ上記マスタデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項８記載のロボット装置。
【請求項１０】
上記制御部は、上記マスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項８記載のロボット装置。
【請求項１１】
本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記マスタデバイスは、上記本体部に設けられた第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、
上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。
【請求項１２】
上記スレーブデバイスは、該スレーブデバイスに接続されたセンサから上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することを特徴とする請求項１１記載のロボット装置。
【請求項１３】
上記第２のマスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することを特徴とする請求項１２記載のロボット装置。
【請求項１４】
上記可動部は上記本体部と着脱可能であって、
上記第１のマスタデバイスと第２のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、
上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されること
を特徴とする請求項１１記載のロボット装置。
【請求項１５】
本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記マスタデバイスは、上記本体部に設けられホストコントロール部と接続された第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、
上記第２のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、
上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。
【請求項１６】
上記制御部は、上記スレーブデバイスに設けられ上記第２のマスタデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項１５記載のロボット装置。
【請求項１７】
上記制御部は、上記第２のマスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項１５記載のロボット装置。
【請求項１８】
上記可動部は上記本体部と着脱可能であって、
上記第１のマスタデバイスと第２のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、
上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されること
を特徴とする請求項１５記載のロボット装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーボ制御システム等を有するロボット装置に関し、特に、制御線及び電源等の配線配置及び配線数等の最適化を図ったロボット装置に関する。
【０００２】
【従来の技術】
従来、エンターテイメント用のロボット装置として、犬や猫等の生体動物を形取った多足歩行型のロボット装置が提案されている。かかるロボット装置は、所定の自由度を持つアクチュエータと所定の物理量を検出するセンサ等が所定の位置に配置された機構部とを有し、マイクロコンピュータを用いた制御部によって、外部からの動作指令に対して所定の動作を行うように構成されている。
【０００３】
ロボット装置を開発設計する上で検討事項として必ず挙がるのが、動作を司るモータ等の駆動デバイス（駆動部）を制御するのに必要な制御信号線及び電源線等に対するロボット筐体内の配線配置方法である。
【０００４】
言うまでもないが、ロボット装置の自由度が増える度にこの問題の重要度は増すことになる。その理由は、配線数の増加に伴い、関節部位への配線の引き回しによる装置の大型化及び断線増加等の問題が生じることとなり、ロボット装置の最大動作範囲が制限されてしまうからである。これは、より少ない配線数で多くの駆動デバイスを制御するには、どのようなシステムにすればよいかという問題に置き換えられる。
【０００５】
従来、駆動デバイスを制御するためにロボット装置に適用されるサーボ制御システムとして以下に示すものが公知である。図１３は、従来のサーボ制御システムを示すブロック図である。図１３に示すように、従来のサーボ制御システム４００では、制御値を計算するサーボ演算器４１２を有するサーボコントローラ（サーボ制御ＬＳＩ（ｌａｒｇｅ‐ｓｃａｌｅ　ｉｎｔｅｇｒａｔｅｄ　ｃｉｒｃｕｉｔ））４０１に対して、駆動部であるＤＣモータ４３２ｎ（４３２１〜４３１Ｎ）の動きを検出するポテンショメータ４３１ｎ（４３１１〜４３１Ｎ）からセンサ情報が入力される信号線Ｓ２１ｎ（Ｓ２１１〜Ｓ２１Ｎ）、及びサーボ演算器により計算された制御値を用いてＤＣモータ４３２ｎの動作を制御する制御信号が出力される信号線Ｓ２２ｎ（Ｓ２２１〜Ｓ２２Ｎ），Ｓ２３ｎ（Ｓ２３１〜Ｓ２３Ｎ）が各サーボチャンネル毎に入出力独立で用意されている。また、各ＤＣモータ４３２ｎ（４３２１〜４３２Ｎ）は、電源電位及びグラウンド電位を供給する夫々電源線Ｓ２４ｎ（Ｓ２４１〜Ｓ２４Ｎ）及びＳ２５ｎ（Ｓ２５１〜Ｓ２５Ｎ）が接続されている。
【０００６】
サーボコントローラ４０１は、各センサデータが入力され、これをデジタル変換するＡ／Ｄコンバータ４２２と、このＡ／Ｄコンバータ４２２からのデジタルセンサデータが入力され、各センサデータから各制御値を算出するサーボ演算器４１２と、このサーボ演算器４１２からの制御値が入力されるコンパレータ（比較器）４１３と、所定のＤＣモータ４３２ｎを制御する制御値がコンパレータ４１３から入力され、各ＤＣモータ３３２ｎを制御する制御信号を生成するＰＷＭ（Ｐｕｌｓｅ　Ｗｉｄｔｈ　Ｍｏｄｕｌａｔｉｏｎ）４２３ｎ（４２３１〜４２３Ｎ）とを有する。
【０００７】
このように構成されたサーボ制御システムにおいては、ポテンショメータ４３１ｎからのセンサ情報に基づいてサーボ演算器４１２で算出された制御値を使用してＤＣモータ４３２ｎの回転を制御することができる。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来のサーボ制御システムにおいては、駆動部であるモータ及びセンサとサーボコントローラとの間が全てパラレルで接続されていたため、サーボコントローラと駆動部及びセンサとの間の接続配線数が駆動部の数に比例して増加する。従って、このようなパラレルに接続されるような構造では末端の自由度が高いロボット装置においては、１つのサーボコントローラにより制御できる駆動部の数に限界が生じてしまうという問題点がある。
【０００９】
本発明は、このような従来の実情に鑑みて提案されたものであり、サーボコントロールするデバイスと駆動部との間の接続配線数が駆動部数に依存しないロボット装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るロボット装置は、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【００１１】
本発明においては、マスタデバイスとスレーブデバイスとの間をシリアルバス信号線により接続することにより、駆動部の数が増加しても、両者の間の配線数が増加することなく、関節部位等の駆動部を制御する上で、必要なチャンネルの選択を指定できるようにしておくことで、各駆動部に対する柔軟で最適な配線が可能となるため、様々なロボット装置におけるサーボ制御装置であるマスタデバイス及びスレーブデバイスと駆動部との間の最適な配置配線が実現できる。
【００１２】
また、上記スレーブデバイスは、該スレーブデバイスに接続されたポテンショメータ等であるセンサから、アクチュエータ等である上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することができ、上記マスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することができる。
【００１３】
更に、上記マスタデバイスと上記スレーブデバイスとの間に接続された共通電源線及び共通グラウンド線を有し、上記スレーブデバイスは上記センサに電源電位及び接地電位を供給することにより、マスタデバイスとスレーブデバイスとの間は、データをやりとりするシリアルバス信号線と、電源線及び接地線との合計３本で接続することができる。
【００１４】
更にまた、上記通信データはデータ領域と上記駆動部を識別する識別情報を含む識別領域とを有し、上記マスタデバイスが上記スレーブデバイスへ送信する上記通信データのデータ領域には上記駆動部を駆動する制御値が書き込まれ上記マスタデバイスが上記スレーブデバイスから受信する上記通信データのデータ領域には上記駆動部の動きを検出して得られたセンサ情報が書き込まれているものとすることができ、各スレーブデバイスは識別情報により自身が制御する駆動部を識別すことができる。
【００１５】
本発明に係るロボット装置は、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【００１６】
本発明においては、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間の送受信が、例えば一定期間で行われない場合等にシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【００１７】
また、上記制御部は、上記スレーブデバイスに設けられ上記マスタデバイスからの上記通信データの受信があるか否かを検出するか、上記マスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出することができ、マスタデバイス及びスレーブデバイスのいずれにおいても、マスタデバイスとスレーブデバイスとの間の接続を検出することができる。
【００１８】
本発明に係るロボット装置は、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【００１９】
本発明に係るロボット装置は、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する１以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する１以上のスレーブデバイスと、上記可動部に設けられ上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、上記第２のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【００２０】
本発明においては、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【００２１】
また、上記可動部は上記本体部と着脱可能であって、上記第１のマスタデバイスと第２のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【００２２】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施の形態は、本発明を「犬」を模した形状のいわゆるペットロボット装置に適用した例である。図１は本発明の第１の実施の形態におけるロボット装置を示すブロック図、図２は、同ロボット装置の本体部に設けられるホストコントロール部の回路構成を示すブロック図である。また、図３は、同ロボット装置におけるサーボ制御システムを示すブロック図である。
【００２３】
図１に示すように、ロボット装置１は、本体部である胴体部ユニット２の前後左右にそれぞれ可動部である脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄが連結されると共に、胴体部ユニット２の前端部及び後端部にそれぞれ可動部である頭部ユニット４及び尻尾部ユニット５が連結されて構成されている。
【００２４】
胴体部ユニット２には、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１１、フラッシュＲＯＭ（Ｒｅａｄ０ｎｌｙ　Ｍｅｍｏｒｙ）１２、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）カードインターフェース回路１３及び信号処理回路（ホストコントロール部）１４が内部バス１５を介して相互に接続されることにより形成されたコントロール部１６と、このロボット装置１の動力源としてのバッテリ１７とが収納されている。このコントロール部１６のホストコントロール部１４には、サーボ制御用ＬＳＩからなるサーボコントローラ（マスタデバイス）１０１が接続されている。また、胴体部ユニット２には、ロボット装置１の向きや動きの加速度を検出するための角速度センサ及び加速度センサ等も収納されている。
【００２５】
そして、可動部である脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄ、及び頭部ユニット４には、それぞれ１以上のスレーブデバイス１０２ｎ（なお、図１においては、６つの１０２１〜１０２６のみ図示）が配置され、このスレーブデバイス１０２１〜１０２６とマスタデバイス１０１との間は、両者の通信データの送受信を行うシリアルバス信号線ＳＢ１により接続されている。
【００２６】
また、頭部ユニット４には、外部の状況を撮像するためのＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）カメラ２０が設けられ、更に、使用者からの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイクロホン、鳴き声等の音声を出力するためのスピーカ、ロボット装置１の「目」に相当するＬＥＤ（Ｌｉｇｈｔ　Ｅｍｉｔｔｉｎｇ　Ｄｉｏｄｅ）（図示せず）等がそれぞれ所定位置に配置されている。
【００２７】
さらに、各脚部ユニット３Ａ〜３Ｄの関節部分や各脚部ユニット３Ａ〜３Ｄ及び胴体部ユニット２の各連結部分、頭部ユニット４及び胴体部ユニット２の連結部分、並びに尻尾部ユニット５の連結部分などにはそれぞれ自由度数分の駆動部であるアクチュエータ及びポテンショメータ（センサ）が配設され、スレーブデバイス１０２ｎ又はマスタデバイス１０１に電気的に接続されている。例えば、アクチュエータは、図３に示すように、サーボモータ１０３ｎ（１０３１〜１０３Ｎ）を構成として有し、サーボモータ１０３１〜１０３Ｎの駆動をスレーブデバイス１０２ｎ（１０２１〜１０２Ｎ）が制御することにより、脚部ユニット３Ａ〜３Ｄが制御されて、目標の姿勢或いは動作に遷移する。
【００２８】
図２に示すホストコントロール部１４は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス１５を介してＤＲＡＭ１１内の所定位置に順次格納する。また、ホストコントロール部１４は、これと共にバッテリ１７から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをＤＲＡＭ１１内の所定位置に格納する。
【００２９】
このようにしてＤＲＡＭ１１に格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、この後ＣＰＵ１０がこのロボット装置１の動作制御を行う際に利用される。
【００３０】
実際上ＣＰＵ１０は、ロボット装置１の電源が投入された初期時、胴体部ユニット２の図示しないＰＣカードスロットに装填されたメモリカード２８又はフラッシュＲＯＭ１２に格納された制御プログラムをＰＣカードインターフェース回路１３を介して又は直接読み出し、これをＤＲＡＭ１１に格納する。
【００３１】
また、ＣＰＵ１０は、この後、上述のようにホストコントロール部１４よりＤＲＡＭ１１に順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無などを判断する。
【００３２】
さらに、ＣＰＵ１０は、この判断結果及びＤＲＡＭ１１に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて、必要なモータ１０３ｎが作動するようにマスタデバイス１０１に指示値を送り、マスタデバイス１０１は、この指示値に基づいてモータ１０３ｎの制御値を算出してスレーブデバイス１０２ｎに出力し、スレーブデバイス１０２ｎがこの制御値を使用してモータ１０３ｎを駆動させることにより、頭部ユニット４を上下左右に振らせたり、尻尾部ユニット５の尻尾を動かせたり、各脚部ユニット３Ａ〜３Ｄを駆動させて歩行させるなどの行動を行わせる。
【００３３】
また、この際ＣＰＵ１０は、必要に応じて音声データを生成し、これをホストコントロール部１４を介して音声信号としてスピーカ２４に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述のＬＥＤを点灯、消灯又は点滅させる。
【００３４】
このようにしてこのロボット装置１においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【００３５】
次に、このようなロボット装置１の動作を制御するサーボ制御システムについて具体的に説明する。図１乃至図３に示すように、ホストコントロール部１４には、マスタデバイス（サーボコントローラ）１０１が接続されている。このマスタデバイス１０１には複数本のシリアルバス信号線ＳＢ１により駆動デバイス用ＬＳＩからなる複数のスレーブデバイス１０２ｎが接続されている。こうしてマスタデバイス１０１とスレーブデバイス１０２ｎとの間は、両者の間の通信データの送受信を行うための非同期式シリアルバスであるシリアルバス信号線ＳＢ１により接続され、マスタデバイス１０１とスレーブデバイス１０２ｎの間の通信データの送受信を行うためのサーボ制御システムが構成されている。
【００３６】
このように、サーボ制御システム１００は、複数のスレーブデバイス１０２ｎが１本のシリアルバス信号線ＳＢ１によりマスタデバイス１０１と接続されている。また、各スレーブデバイス１０２ｎは、共通の電源線及びグラウンド線（図示せず）に接続され、ロボット装置システムにおけるモータの電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス１０２ｎは、個別に、駆動部であるＤＣモータ等のモータ１０３ｎと、このモータ１０３ｎの動きを検出するポテンショメータ等のセンサ１０４ｎと、スイッチ（ＳＷ）等の入出力機器１０５とに接続されている。また、マスタデバイス１０１には、駆動部であるモータ１０７及びこのモータ１０７の動きを検出するセンサ１０８が、スレーブデバイス１０２ｎを介さず直接接続されていてもよい。
【００３７】
本実施の形態におけるマスタデバイス１０１は、例えば１６チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス１０１にスレーブデバイス１０２ｎを介してか又は直接接続されるモータ１０３ｎ，センサ１０４ｎ及びモータ１０７，センサ１０８の各組の総数は１６となる。
【００３８】
マスタデバイス１０１は、ホストコントロール部１４からの指示値に従い、サーボ演算をするＬＳＩである。スレーブデバイス１０２ｎは、マスタデバイス１０１が算出した制御値に基づきモータ１０３ｎの駆動を制御する。また、センサ１０４ｎからのセンサデータをマスタデバイス１０１に出力する。即ち、マスタデバイス１０１は、スレーブデバイス１０２ｎからのセンサデータに基づきサーボ演算して制御値を算出し、この制御値（制御信号）をシリアルバス信号線ＳＢ１を介してスレーブデバイス１０２ｎに返すことにより、モータ１０３ｎの駆動を制御するものである。
【００３９】
図４は、マスタデバイス１０１の内部を示すブロック図である。図４において、本実施の形態のマスタデバイス１０１は、サーボ（Ｓｅｒｖｏ）演算器１１３と、シリアルバスインターフェース１１４と、ＰＷＭ（Ｐｕｌｓｅ　Ｗｉｄｔｈ　Ｍｏｄｕｌａｔｉｏｎ）１１５と、Ａ／Ｄコンバータ１１６と、ファームウェアを実行するためのＣＰＵ、ＲＯＭ及びＲＡＭ等からなる演算部１１８とを有する。
【００４０】
サーボ演算器１１３は、ホストコントロール部１４からの制御信号に従って、シリアルバスインターフェース１１４から入力されるセンサデータに基づき制御値を算出する。シリアルバスインターフェース１１４は、サーボ演算器１１３にて算出された制御値を通信データとしてシリアルバス信号線ＳＢ１に出力し、シリアルバス信号線ＳＢ１を介して接続されたスレーブデバイス１０２とマスタデバイス１０１との間で行われるシリアル通信を制御する。
【００４１】
Ａ／Ｄコンバータ１１６は、マスタデバイス１０１にスレーブデバイス１０２を介さず接続された駆動部であるモータの動き（回転角）等を検出するセンサにて得られたアナログセンサデータを受け取りデジタル変換する。このデジタルセンサデータもサーボ演算器１１３に入力され、ホストコントロール部１４からの制御信号に従って上記モータの制御値が算出され、この制御値はＰＷＭ信号を生成するＰＷＭ１１５に入力される。ＰＷＭ１１５は、制御値が入力されると、マスタデバイス１０１にスレーブデバイス１０２を介さず接続されたモータの駆動を制御するＰＷＭ信号を生成する。そして、このＰＷＭ信号をモータに入力してマスタデバイス１０１がモータを直接制御する。ここで、矢印Ａは、各モータのサーボ制御を行うデータの流れ（サーボループ）を示す。また、矢印Ｂは、ホストコントロール部から各モータへ出力されるデータの流れを示し、矢印Ｃは、各モータからホストコントロール部へ出力されるデータの流れを示す。
【００４２】
図５は、モータ等の駆動部の駆動を制御するスレーブデバイスの内部を示すブロック図である。図５に示すように、スレーブデバイス１０２は、Ａ／Ｄコンバータ１２１と、Ａ／Ｄコンバータインターフェース１２２と、シリアルバスインターフェース１２３と、ＰＷＭ１２４と、モータ１０３を駆動するためのモータ駆動部１２５と、ＬＥＤ及びスイッチ等の入出力機器１０５からの信号が入力されるＰＩＯインターフェース１２６と、モータ１０３用の電源からロジック用電源を生成するレギュレータ１２７とから構成される。
【００４３】
Ａ／Ｄコンバータ１２１は、センサ１０４によりモータ１０３の動きを検出して得られた検出結果がセンサ１０４からアナログセンサデータとして入力され、これをデジタル変換する。シリアルバスインターフェース１２３は、マスタデバイス１０２とスレーブデバイス１０１との間でシリアルバス信号線ＳＢ１を介して行われるシリアル通信を制御する。即ち、Ａ／Ｄコンバータインターフェース１２２から入力されるデジタルセンサデータを通信データとしてシリアルバス信号線ＳＢ１を介してマスタデバイス１０１へ入力し、マスタデバイス１０１にてサーボ演算されたモータ１０３の駆動を制御すための制御値を通信データとしてシリアルバス信号線ＳＢ１を介して受け取る。
【００４４】
ＰＷＭ１２５は、マスタデバイス１０１にて算出された制御値がシリアルバスインターフェース１２３から入力され、この制御値に基づき、そのパルス幅によってモータ１０３の駆動（回転数）を制御する制御信号（ＰＷＭ信号）を生成する。モータ駆動回路１２５は、制御信号が入力されモータ１０３を駆動する。ＰＩＯインターフェースには、ＬＥＤ及びスイッチのオン・オフ等、入出力機器１０５から、その状態等を示す信号が入力され、これをシリアルバスインターフェース１２３に送り、ホストコントロール部１４からマスタデバイス１０１を介して送られる制御信号をシリアルバスインターフェース１２３から受け取り、この制御信号に基づき入出力機器１０５を制御する。
【００４５】
次に、マスタデバイス１０１のシリアルバスインターフェース１１４と、スレーブデバイス１０２ｎのシリアルバスインターフェース１２３ｎとの間で送受信される通信データについて説明する。
【００４６】
マスタデバイス１０１と各スレーブデバイス１００ｎとのデータ通信は、時分割でタイムスロットを設けることにより複数サーボチャンネルのデータを多重することができる。
【００４７】
図６（ａ）は、タイムスロットにトランザクションを割り付けて、タイムスロットとトランザクションの時間的配置を示す模式図である。各タイムスロットは、マスタデバイス１０１がスレーブデバイス１０２からのセンサデータを受信する処理（リードトランザクション）と、マスタデバイス１０１がスレーブデバイス１０２へサーボ制御データを送信する処理（ライトトランザクション）とからなる。マスタデバイス１０１は、個々のスレーブデバイス１０２に対し、リードトランザクションを行ってポテンショメータの読み取り値（センサデータ）を得てから、次のタイムスロットでライトトランザクションを行って制御値を送信している。
【００４８】
次に、リード／ライトトランザクションのデータフォーマットについて説明する。図６（ｂ）は、図６（ａ）に示す１タイムスロット（１トランザクション）を拡大して時分割シリアルバスの通信データフォーマットを示す模式図であり、図７（ａ）はマスタデバイスからスレーブデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図、図７（ｂ）は、スレーブデバイスからマスタデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図である。
【００４９】
リード／ライトトランザクションは、アドレスフェーズ５０と、センサデータ又は制御値が書き込まれる通信データフェーズ６０との２つのフェーズからなる。各フェーズの最後には、１ｂｉｔ時間のＩｄｌｅ　Ｓｔａｔｅ（いかなるデバイスもドライブしない時間）５１，６１が設けられている。これは、複数のデバイスが同時にバスを駆動することによるデータの衝突を防ぐためである。
【００５０】
また、アドレスデータ及び通信データがノイズ等の影響により誤りを起こすと問題となるため、アドレスフェーズ及び通信フェーズには、夫々誤り検出のためのＣＲＣ（Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）符号が挿入される。
【００５１】
アドレスフェーズ５０においては、アドレス３ｂｉｔ及びＲｅａｄ／Ｗｒｉｔｅ指示１ｂｉｔの計４ｂｉｔに対して生成多項式Ｘ３＋Ｘ＋１で生成したＣＲＣ３符号（ＣＲＣ３［２：０］）５２を付加している。これにより、アドレス部に対して２ｂｉｔ誤りまでの検出を行うことができる。
【００５２】
また、データフェーズ６０においては、通信データ計１１ｂｉｔに対して、生成多項式Ｘ５＋Ｘ２＋１で生成したＣＲＣ５符号（ＣＲＣ５［４：０］）６２を付加している。これにより、データ部に対して２ｂｉｔ誤りまでの検出を行うことができる。
【００５３】
更に、各フェーズの最初には、データ周期の１／２で“Ｌ”−“Ｈ”−“Ｌ”−“Ｈ”と変化するスタートパルス５３，６３を挿入する。各デバイスはデータを受信する際、このスタートパルス５３，６３を元に受信データのストローブポイントを補正する。
【００５４】
アドレスフェーズ５０は、スレーブデバイス１０２１〜１０２Ｎ（又はスレーブデバイス１０２１〜１０２Ｎに接続されたモータ１０３１〜１０３Ｎ及びポテンショメータ１０４１〜１０４Ｎの各組）を指定するため、各トランザクションはマスタデバイス１０１から見て、通信相手となるスレーブデバイス１０２１〜１０２Ｎ（又はスレーブデバイス１０２１〜１０２Ｎに接続されたモータ１０３１〜１０３Ｎ及びポテンショメータ１０４１〜１０４Ｎの各組）のいずれかを指定し、更にスレーブデバイス１０２１〜１０２Ｎに対してＲｅａｄ／Ｗｒｉｔｅの指示を行うためのものである。各スレーブデバイス１０２１〜１０２Ｎ（又はスレーブデバイス１０２１〜１０２Ｎに接続されたモータ１０３１〜１０３Ｎ及びポテンショメータ１０４１〜１０４Ｎの各組）は、異なるアドレスを割り当てられることにより特定される。本実施の形態では、スレーブデバイス１０２ｎをＮ＝２３＝８個と仮定し、アドレスビット幅を３ｂｉｔとしたアドレス（Ａｄｄｒ［２：０］）５４とする。また、Ｒｅａｄ／Ｗｒｉｔｅの指示信号（Ｒ／Ｗ）５５は、例えば、Ｒｅａｄ時１、Ｗｒｉｔｅ時０とすることができる。
【００５５】
アドレスフェーズ５０は、必ずマスタデバイス１０１が送信を行う。スレーブデバイス１０２ｎは、マスタデバイス１０１から送られてきたアドレスフェーズ５０のアドレス５４を元に、現在のトランザクションが自分宛のものであるかどうかの判別を行う。
【００５６】
一方、実際の通信やりとりをするデータフェーズ６０は、Ｒｅａｄ時はスレーブデバイス１０２ｎが送信し、Ｗｒｉｔｅ時はマスタデバイス１０１が送信を行う。
【００５７】
通信データフェーズ６０は、Ｒｅａｄ／Ｗｒｉｔｅトランザクション共に、１１ｂｉｔのデータ（Ｄａｔｅ［１０：０］）６４を有する。リードトランザクション、即ち、スレーブデバイス１０２ｎからマスタデバイス１０１へ送信されるセンサデータは、図７（ｂ）に示すように、センサ１０３ｎの出力値をＡ／Ｄ変換したデータ７１：１０ｂｉｔ（以下、ＡＤＣ［９：０］という。）と、オプションの汎用入力ポートの読み取り値７２：１ｂｉｔ（以下、ＰＩＮという。）との合計１１ｂｉｔとからなる。
【００５８】
また、ライトトランザクション、即ち、マスタデバイス１０１からスレーブデバイス１０２ｎへ送信されるサーボ制御値は、図７（ａ）に示すように、モータ１０３ｎを駆動するためのＰＷＭのパルス値（ＰＷＭＰｕｌｕｓｅＷｉｄｔｈ［７：０］）８１：８ｂｉｔと、モータ１０３ｎの回転の向きを示すデータ（ＤＩＲ）８２：１ｂｉｔと、モータ１０３ｎを緊急停止させるためのデータ（ＳＴＯＰ）８３：１ｂｉｔと、オプションの汎用出力ポートの出力値（ＰＯＵＴ）８４：１ｂｉｔとの合計１１ｂｉｔからなる。
【００５９】
こうして、マスタデバイス１０１が各スレーブデバイス１０２ｎのデータを読み取るリードトランザクション、及びマスタデバイス１０１がスレーブデバイス１０２ｎへ制御値を送信するライトトランザクションは共に、スタートパルス（２ｂｉｔ　ｔｉｍｅ）５３、アドレス（３ｂｉｔ　ｔｉｍｅ）５４、Ｒｅａｄ／Ｗｒｉｔｅ指示信号（１ｂｉｔｔｉｍｅ）５５、ＣＲＣ３符号（３ｂｉｔ　ｔｉｍｅ）５２、ＩｄｌｅＳｔａｔｅ（１ｂｉｔ　ｔｉｍｅ）５１、スタートパルス（２ｂｉｔ　ｔｉｍｅ）６３、データ（１１ｂｉｔ　ｔｉｍｅ）６４、ＣＲＣ５符号（５ｂｉｔ　ｔｉｍｅ）６２、ＩｄｌｅＳｔａｔｅ（１ｂｉｔ　ｔｉｍｅ）６１の計２９ｂｉｔｔｉｍｅであり、これが１タイムスロット＝２９ｂｉｔ　ｔｉｍｅとなっている。
【００６０】
ここで、１ｂｉｔ　ｔｉｍｅを１８７．５ｋＨｚ（＝約５．３３μｓ）とすると、例えば８つのスレーブデバイス１０２１〜１０２８に対し制御を行うときの各スレーブデバイス１０２１〜１０２８への制御値更新周期は、５．３３（μｓ）×２９（ｃｌｏｃｋｓ／ｔｒａｎｓａｃｔｉｏｎ）×２（Ｒ／Ｗ　ｔｒａｎｓａｃｔｉｏｎｓ）×８（ｎｕｍｂｅｒ　ｏｆ　ｓｌａｖｅ　ｄｅｖｉｃｅｓ）＝約２．５ｍｓ周期となる。
【００６１】
１ｂｉｔ　ｔｉｍｅを変えることにより、制御値更新周期一定のままで、任意の数のスレーブデバイス１０２ｎを制御することが可能である。
【００６２】
また、シリアルバス信号線ＳＢ１はマスタ、スレーブ各デバイスのＯｐｅｎ−ＤｒａｉｎＢｕｆｆｅｒにより駆動され、シリアルバス信号線ＳＢ１は外部でプルアップされているので、どのデバイスも通信データを送信していないときは自動的にＨレベルとなる。
【００６３】
次に、このように構成されたサーボ制御システムの動作について説明する。先ず、図５に示すように、センサ１０４がモータ１０３の動きを検出した検出結果であるアナログセンサデータがスレーブデバイス１０２のＡ／Ｄコンバータ１２１に入力されるとＡ／Ｄコンバータ１２１はアナログセンサデータをデジタル変換する。デジタルセンサデータは、Ａ／Ｄコンバータインターフェース１２２を介してシリアルバスインターフェース１２３へ入力される。シリアルバスインターフェース１２３は、通信データのアドレスから、自身に割り当てられたアドレスを識別し、そのＲｅａｄ時のデータフェーズにデジタルセンサデータを書き込み（配置し）、シリアルバス信号線に出力する（送信する）。
【００６４】
次いで、図４に示すように、マスタデバイス１０１のシリアルバスインターフェース１１４がシリアルバス信号線ＳＢ１から通信データとしてデジタルセンサデータを受け取り、デジタルセンサデータをサーボ演算器１１３に入力する。サーボ演算器１１３はホストコントロール部１４から供給される指令値に応じて、上記デジタルセンサデータに基づきモータの駆動を制御するための制御値を算出し、シリアルバスインターフェース１１４へ通信データとして出力する。シリアルバスインターフェース１１４は、通信データのアドレスフェーズにおけるアドレスを識別し、この制御値を算出したセンサデータが書き込まれていたアドレスと同じアドレスを有する通信データのＷｒｉｔｅ時のデータフェーズに、この制御値を書き込み（配置し）、シリアルバス信号線ＳＢ１へ出力する（送信する）。
【００６５】
図５に戻って、スレーブデバイス１０１のシリアルバスインターフェース１２３は、シリアルバス信号線ＳＢ１に送られる通信データから、自身（スレーブデバイス１０２ｎ又はスレーブデバイス１０２ｎに接続されたモータ１０３ｎ及びセンサ１０４ｎの組）に割り当てられたアドレスを識別して受け取り、ＰＷＭ１２４に出力する。ＰＷＭ１２４はこの制御値に基づき制御信号（ＰＷＭ信号）を生成して駆動ドライブ１２５に出力し、駆動ドライブからモータ１０３へ制御信号が出力されてモータ１０３の回転等を制御する。
【００６６】
このように構成された第１の実施の形態のロボット装置においては、マスタデバイス１０１とスレーブデバイス１０２ｎとの間をシリアルバス信号線ＳＢ１により接続することにより、ロボット装置１の各関節部位の配線数をマスタデバイス１０１にスレーブデバイス１０２ｎを介さず個別に駆動部及びセンサを接続するよりも、ロボット装置１の各関節部位の配線数を少なくすることができる。
【００６７】
次に、第１の実施の形態における図３に示すサーボ制御システムの変形例について説明する。図８は、変形例のサーボ制御システムを示すブロック図である。
【００６８】
図８に示すように、サーボ制御システム３００は、１つのマスタデバイス３１０と、複数個のスレーブデバイス３２０ｎと、マスタデバイス３１０とスレーブデバイス３２０ｎとの間で通信データの送受信をする２本のシリアルバス信号線ＳＢ１１１、ＳＢ１１２とを有する。本変形例のマスタデバイス３１０は最大で１６チャンネルのサーボ制御チャンネルを有するものとする。マスタデバイス３１０は、２本（２ブランチ）のシリアルバス信号線ＳＢ１１１，ＳＢ１１２に接続されており、各シリアルバス信号線ＳＢ１１１，ＳＢ１１２は、最大８チャンネルのスレーブデバイス３２０ｎが接続可能となっている。ここで、本変形例においては、スレーブデバイス３２０ｎは、２つのポテンショメータ（センサ）３３１ｎ，３３２ｎからセンサデータが入力され、各センサデータをデジタル変換するＡ／Ｄ変換器（ＡＤＣ）３２２ｎ，３２３ｎが設けられ、シリアルバスインターフェース３２１ｎにはデジタル変換された２つのセンサデータが入力される。シリアルバスインターフェース３２１ｎは、シリアルバス信号線ＳＢ１１１（又はＳＢ１１２）に２つのセンサデータを出力し、各センサデータからマスタデバイス３１０にて算出された各制御値を受け取る。そして、これらの制御値から、モータ３３３ｎ，３３４ｎの制御信号を生成し、モータ駆動回路（ＭＤ）からモータ３３３ｎ，３３４ｎへ制御信号を出力してモータ３３３ｎ，３３４ｎの駆動を制御する。このように、本変形例のスレーブデバイス３２０ｎは、２チャンネル分の制御値が入力されるものである。ここで、上述したように、通信データは、アドレスフェーズとデータフェーズとからなるデータであって、スレーブデバイス３２０ｎのシリアルバスインターフェース３２１ｎは、マスタデバイス３１０から送信される通信データにおいて、自身に接続されたモータ３３３ｎ及び３３１ｎの組、並びにモータ３３４ｎ及び３３１ｎの組に割り当てられた各アドレスを識別し、Ｒｅａｄ時に通信データのデータフェーズにセンサデータを書き込み、次のタイムスロットの同アドレスのＷｒｉｔｅ時にそのデータフェーズに書き込まれた制御値を受け取るものである。
【００６９】
このスレーブデバイス３２０ｎとマスタデバイス３１０とにおいても、両者をシリアルバス信号線ＳＢ１１１，ＳＢ１１２にて接続しているため、上述の実施の形態と同様に、各デバイスの制御部により、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線ＳＢ１１１，ＳＢ１１２の断線を検出することができる。
【００７０】
また、例えば、駆動部がマスタデバイスの近傍に配置されている場合等、シリアルバス信号線ＳＢ１１１，ＳＢ１１２を介さず、マスタデバイス３１０に直接センサデータを入力して駆動部を制御することも可能である。本変形例の場合は、上述したように、マスタデバイス３１０は、１６チャンネルのサーボ制御チャンネルを有するので、最大１６チャネルのモータ駆動回路（ＭＤ）３４０ｍに接続することができる。モータ駆動回路３４０ｍは、モータ３４１ｍの回転を検出するポテンショメータ（センサ）３４２ｍからのセンサデータをマスタデバイス３１０に送信し、マスタデバイス３１０のサーボ演算器（図示せず）により算出された制御値をマスタデバイス３１０から受け取る。各モータ駆動回路３４０ｍは、モータ３４１ｍの駆動を制御する制御信号を生成するＰＷＭ等を有し、制御値から制御信号を生成して各モータ駆動回路３４０ｍに接続されたモータ３４１ｍを制御する。
【００７１】
また、マスタデバイス３２０は、各種センサ、ＳＷ、ＬＥＤ及びＩＩＣデバイス等のデバイス３３０に接続され、センサ及びＳＷからデータが入力されると共にＬＥＤ及びＩＩＣへ制御信号を出力する。また、上位ホストコントローラ３４０と接続され、上述したように、各デバイスの制御部等にて検出したマスタデバイスとスレーブデバイスとの間の接続状態を上位ホストコントローラ３４０に出力する。
【００７２】
本変形例においては、例えばマスタデバイス３１０から離れて配置される駆動部に対してサーボ制御する場合等にはシリアルバス信号線ＳＢ１１１，ＳＢ１１２を介してスレーブデバイス３２０ｎを配置することにより、配線の引き回し等により装置の大型化、高コスト化等を抑制すると共に、上述の実施の形態と同様にスレーブデバイス３２０ｎとマスタデバイス３１０との間の接続状態を容易に検出することができる。
【００７３】
次に、本発明の第２の実施の形態について説明する。図９は、本実施の形態のロボット装置２００を示すブロック図である。なお、図９乃至図１１に示す第２の実施の形態において、図１乃至５に示す第１の実施の形態と同一構成要素には同一の符号を付しその詳細な説明は省略する。
【００７４】
ロボット装置２００は、複数のマスタデバイスを有する。このマスタデバイスは、ホストコントロール部１４に接続された第１のマスタデバイス２１１と、この第１のマスタデバイスに接続された複数の第２のマスタデバイス２０１とからなる。第２のマスタデバイス２０１は、ロボット装置２００の例えは脚部ユニット３Ａ〜３Ｄ，頭部ユニット４及び尻尾部ユニット５の５カ所に設けられ、これらの各マスタデバイス２０１には、複数のスレーブデバイス２０２が接続されている。脚部ユニット３Ａ〜３Ｄ，頭部ユニット４及び尻尾部ユニット５は、胴体部ユニット２から着脱可能（分離可能）な構成となっている。
【００７５】
第１のマスタデバイス２１１と第２のマスタデバイス２０１との間は、ソニー株式会社が提供するエンタテーメントロボット用の規格であるＯＰＥＮ―ＲシステムのＯＰＥＮ−Ｒバス信号線により接続されており、第２のマスタデバイス２０１とスレーブデバイス２０２ｎ（図９には、２０２１〜２０２６のみ図示）との間は、第１の実施の形態と同様のシリアルバス信号線ＳＢ１により接続されている。
【００７６】
図１０は、本実施の形態のサーボ制御システムを示すブロック図である。図１０に示すように、サーボ制御システム２００は、複数のスレーブデバイス２０２ｎが１本のシリアルバス信号線ＳＢ１によりマスタデバイス２０１と接続されている。また、各スレーブデバイス２０２ｎは、共通の電源線及びグラウンド線に接続され、ロボット装置のシステムのモータ電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス２０２ｎは、個別に駆動部であるモータ１０３ｎ、このモータ１０３ｎの動きを検出するポテンショメータ等のセンサ１０４ｎ、及びスイッチ等の入出力機器（ＳＷ）１０５に接続されている。
【００７７】
胴体部ユニット２に設けられ、ホストコントロール部１４と接続された第１のマスタデバイス２１１と、着脱可能な脚部ユニット３Ａ〜３Ｄ，頭部ユニット４及び尻尾部ユニット５（以下、可動部ともいう。）に設けられた第２のマスタデバイスとの間は、グランド線及び電源線（図示せず）とデータ線となるＯＰＥＮ−Ｒバス信号線Ｓ２とを有するＯＰＥＮ−Ｒコネクタ（図示せず）で接続され、胴体部ユニット２からいずれかの着脱部材を抜き出す際は、グランド線は電源線及びＯＰＥＮ−Ｒバス信号線Ｓ２に比べて最後まで接続され、胴体部ユニット２にいずれかの着脱部材を装着する際は、上記グランド線は電源線及びＯＰＥＮ−Ｒバス信号線Ｓ２に比べて最初に接続されるように構成されている。
【００７８】
このように、マスタデバイス２０１は、ＯＰＥＮ−Ｒバス信号線Ｓ２を介して、ホストコントロール部１４に接続されたマスタデバイス２１１と接続されている。また、マスタデバイス２０１、２１１には、駆動部であるモータ１０７及びセンサ１０８が直接接続されていてもよい。このマスタデバイス２１１は、例えば１６チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス２１１にマスタデバイス２０１及びスレーブデバイス２０２ｎを介して接続されモータ１０３、及びマスタデバイス２１１若しくは２０１に直接接続されるモータ１０７の総数は１６となる。
【００７９】
図１１は、マスタデバイスの内部を示すブロック図である。マスタデバイス２０１は、サーボ演算器１１３、シリアルバスインターフェース１１４、パルス発生器１１５、Ａ／Ｄコンバータ１１６、及び演算部１１８の他に、ＯＰＥＮ−Ｒデバイスコントローラ１１１と、バッファ１１２，１１７と、ＩＩＥＥＰＲＯＭ（電気消去可能プログラマブル読出し専用メモリ（ｅｌｅｃｔｒｉｃａｌｌｙ　ｅｒａｓａｂｌｅ　ｐｒｏｇｒａｍｍａｂｌｅ　ｒｅａｄ−ｏｎｌｙ　ｍｅｍｏｒｙ））との間の通信を制御するＩＩＣインターフェース１１９とを有する。
【００８０】
ＯＰＥＮ−Ｒデバイスコントローラ１１１は、ＯＰＥＮ−Ｒバス信号線Ｓ２に接続されている。バッファ１１２は、ＯＰＥＮ−Ｒデバイスコントローラ１１１とサーボ演算器１１３との間に接続され、図９に示すホストコントロール部１４から入力されて各駆動部へ出力されるデータのタイミングを制御する。バッファ１１７は、サーボ演算器１１３及びＡ／Ｄコンバータ１１６と、ＯＰＥＮ−Ｒデバイスコントローラ１１１との間に接続され、駆動部であるモータ等の動きを検出した検出結果がセンサから入力され、ホストコントロール部１４へ出力されるデータのタイミングを制御する。図中の矢印Ｄ、Ｅ及びＦは、夫々ホストコントロール部１４から各駆動部（モータ）へ出力されるデータの流れ、各駆動部（モータ）からホストコントロール部１４へ出力されるデータの流れ、各駆動部（モータ）のサーボ制御を行うデータの流れ（サーボループ）を示す。
【００８１】
また、全ての第２のマスタデバイス２０１がＯＰＥＮ−Ｒバス信号線Ｓ２を介して接続される第１のマスタデバイス２１１には、ＯＰＥＮ−Ｒバスコントローラが設けられており、ＯＰＥＮ−Ｒバスコントローラは胴体部ユニット２に設けられＣＰＵ１０により制御されている。マスタデバイス２１１のＯＰＥＮ−Ｒバスコントローラは、マスタデバイス２０１のＯＰＥＮ−Ｒデバイスコントローラ１１１を介し、モータ１０３の回転を制御したり、各種のセンサの検出出力を認識している。
【００８２】
マスタデバイス間をＯＰＥＮ−Ｒバス信号線Ｓ２により接続するＯＰＥＮ−Ｒシステムは、ＯＰＥＮ−Ｒシステムコア及びＯＰＥＮ−Ｒバスデバイスから構成される。ここで、ＯＰＥＮ−Ｒバスデバイスとは、ＯＰＥＮ−Ｒコネクタというロボット部品接続コネクタを有するＣＰＣ（Ｃｏｎｆｉｇｕｒａｂｌｅ　Ｐｈｙｓｉｃａｌ　Ｃｏｍｐｏｎｅｎｔ）であり、ＯＰＥＮ−ＲコネクタによってＯＰＥＮ−Ｒシステムコアに接続可能なロボット部品をいう。ＯＰＥＮ−Ｒシステムコアは、マスタデバイス２１１に相当し、ＯＰＥＮ−Ｒバスの制御を行うＯＰＥＮ−Ｒバスコントローラ（ＯＰＥＮ−Ｒバスホストコントローラ）により、最大で１２７個のＯＰＥＮ−Ｒバスデバイスと接続することができる。
【００８３】
ＯＰＥＮ−ＲバスホストコントローラとＯＰＥＮ−Ｒバスデバイスとは、具体的には階層スタートポロジーという物理的接続形態をとっている。各スターの中心には、「ハブ」というデバイスが配置される。ここにいう「ハブ」は、着脱可能の可動部である脚部ユニット３Ａ，３Ｂ，３Ｃ，３Ｄ、頭部ユニット４に設けられる各マスタデバイス２０１のＯＰＥＮ−Ｒデバイスコントローラ１１１に相当する。ここで、ホスト又はハブの下方への接続インターフェースは、ダウンストリームポートという。デバイスの上方への接続インターフェースは、アップストリームポートという。なお、ＯＰＥＮ−Ｒバスシステムでは、ループ接続は禁止されている。また、ＯＰＥＮ−Ｒコネクタは、例えば１０本のピンを備え、ＯＰＥＮ−Ｒバス信号線Ｓ２のデータは、差動信号Ｄ＋，Ｄ−からなる。そのデータレートは１２Ｍｂｐｓであり、また、その特性は、Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ　Ｓｐｅｃｉｆｉｃａｔｉｏｎ　１．０のフルスピードに準拠している。
【００８４】
Ｄ＋ライン及びＤ−ラインは、上位側（ホスト又はハブのダウンストリームポート）において、１．５ｋΩでプルダウンされている。また、デバイス側では、Ｄ＋ラインは、１５ｋΩでプルアップされている。
【００８５】
クロック信号ＣＬＫは、１２ＭＨｚであり、外部デバイスのクロックソースとして使用されることもある。ＯＰＥＮ−Ｒバス信号線Ｓ２には、電源ソースとして、電源電圧ＶＤＤ（３Ｖ）及び電源電圧ＶＰＷＲ（５Ｖ）が供給される。さらに、各電源ライン（電源線）に対して、それぞれグランドライン（グランド線）ＤＧＮＤ，ＰＷＲＧＮＤも設けられている。さらに、ＯＰＥＮ−Ｒコネクタは、１０本のピンのうち、ＤＧＮＤピン及びＰＷＲＧＮＤピンが高く（長く）構成されている。
【００８６】
例えば、胴体部ユニット２と脚部ユニット３Ａとを接続するＯＰＥＮ−Ｒコネクタが抜かれた場合には、グランドラインであるＤＧＮＰピン及びＰＷＲＧＮＤピンが最後まで接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。そして、ＣＰＵ１０は、脚部ユニット３Ａがない状態を認識して、当該脚部ユニット３Ａがないときの動作モードに正常に移行することができる。
【００８７】
一方、ユーザがＯＰＥＮ−Ｒコネクタを差し込む場合にあっては、グランドラインであるＤＧＮＰピン及びＰＷＲＧＮＤピンが最初に接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【００８８】
そして、ＣＰＵ１０は、脚部ユニット３Ａが接続された状態を認識すると、脚部ユニット３Ａの初期化を行い、メモリから初期状態のデータを読み出して、当該脚部ユニット３Ａがあるときの動作モードに正常に移行する。このとき、ＣＰＵ１０は、交換されていない頭部ユニット４，脚部ユニット３Ｂ，３Ｃ，３Ｄの初期化を行わないので、脚部ユニット３Ａを交換したときの初期化動作については、電源投入時に比べて短時間で行うことができる。また、ＣＰＵ１０は、胴体部ユニット２や頭部ユニット４等に記憶しているデータであって、脚部ユニット３Ａの交換前の学習によって生成されたデータについては消去しないので、脚部ユニット３Ａの交換後であっても当該データを有効に利用することができる。
【００８９】
また、ＤＧＮＤピン及びＰＷＲＧＮＤピンだけでなく、電源ラインであるＶＤＤピン及びＶＰＷＲピンも高くしてもよい。これにより、ユーザがＯＰＥＮ−Ｒコネクタを抜く場合にあっては、ＣＬＫピン、Ｄ＋ピン、Ｄ−ピンを抜いてからＶＤＤピン、ＤＧＮＤピン、ＶＰＷＲピン、ＰＷＲＧＮＤピンを抜くので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。一方、ユーザがＯＰＥＮ−Ｒコネクタを差し込む場合にあっては、ＶＤＤピン、ＤＧＮＤピン、ＶＰＷＲピン、ＰＷＲＧＮＤピンが接続されてから、ＣＬＫピン、Ｄ＋ピン、Ｄ−ピンが接続されるので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【００９０】
本実施の形態においては、第１の実施例と同様の効果を奏すると共に、ＯＰＥＮ−Ｒシステムにより、ロボット装置のコンフィギュレーションを自由に変更可能であり、シリアルバスであるＯＰＥＮ−Ｒバス信号線Ｓ２の先に様々なデバイスを自由に接続することが可能となる。また、それらの構成情報をホスト側で管理することでロボット装置２００のハードモジュールの脱着をサポートすることができる。そして、ロボット内部のデバイスへのアクセスにこのようなＯＰＥＮ−Ｒバス信号線Ｓ２を採用することにより、配線が容易になる。
【００９１】
また、図１２に示すように、マスタデバイス１０１のみを使用し、シリアルバス信号線を使用せず、全てのモータ１０３を制御することも可能であり、この場合はコストを最低限に抑えることができる。このように、例えば、低コストを重点に置くならば、図１２に示すようなサーボ制御システムとし、ロボット装置のスペックに重点を置く場合は、マスタデバイスを１つのみ使用し、シリアルバス信号線にてスレーブデバイスと接続することにより配線数を少なくした第１の実施の形態におけるサーボ制御システムを適用する等することにより、ロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【００９２】
なお、上述の実施の形態においては、４足歩行のロボット装置を例に挙げたが、２足、６足等様々な自由度のロボットでも同じように実現できることはいうまでもない。
【００９３】
また、上述した全ての実施の形態において、駆動デバイス用ＬＳＩ（スレーブデバイス）を新規に開発することにより、様々な駆動デバイスについても制御できる。即ち、上述の例では、駆動部としてＤＣモータを例に挙げたが、例えば三相交流モータ及びエンコーダ等にも応用できることはいうまでもない。
【００９４】
【発明の効果】
以上詳細に説明したように本発明によれば、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ１以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、それぞれのロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【００９５】
また、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ１以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【００９６】
更に、本体部に対して可動とされた１以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ１以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するか、又は上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第１のマスタデバイスと、上記第１のマスタデバイスに接続され上記可動部に設けられた第２のマスタデバイスとを有し、上記第２のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第２のマスタデバイスに接続され、上記第２のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することにより、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【００９７】
更にまた、上記可動部は上記本体部と着脱可能であって、上記第１のマスタデバイスと第２のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるロボット装置を示すブロック図である。
【図２】同ロボット装置の回路構成を示すブロック図である。
【図３】本発明の第１の実施の形態におけるサーボ制御システムを示すブロック図である。
【図４】本発明の第１の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図５】本発明の第１の実施の形態におけるスレーブデバイスの内部を示すブロック図である。
【図６】（ａ）はタイムスロットとトランザクションの時間的配置を示す模式図、（ｂ）は、１タイムスロット（１トランザクション）を拡大して示す模式図である。
【図７】（ａ）はマスタデバイスからスレーブデバイスへ送られるデータのフォーマットを示す図、（ｂ）は、スレーブデバイスからマスタデバイスへ送られるデータのフォーマットを示す図である。
【図８】本発明の第１の実施の形態の変形例におけるサーボ制御システムを示すブロック図である。
【図９】本発明の第２の実施の形態におけるロボット装置を示すブロック図である。
【図１０】本発明の第２の実施の形態におけるサーボ制御システムを示すブロック図である。
【図１１】本発明の第２の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図１２】マスタデバイスのみを使用して駆動部を制御する場合のロボット装置を示すブロック図である。
【図１３】従来のロボット装置のサーボ制御システムを示すブロック図である。
【符号の説明】
１，２００　ロボット装置、２　胴体部ユニット、３Ａ，３Ｂ，３Ｃ，３Ｄ　脚部ユニット、４　頭部ユニット、１０　ＣＰＵ１０、１４　ホストコントロール部、５　尻尾部ユニット、１０１，２０１，２１１　マスタデバイス、１０２ｎ，２０２ｎスレーブデバイス、１０３，１０７　モータ、１０４ｎセンサ、１０５　入出力機器、１００，２００　サーボ制御システム、１１１　ＯＰＥＮ−Ｒデバイスコントローラ、１１２，１１７　バッファ、１１３　サーボ演算器、１１４　シリアルバスインターフェース、１１５　パルス発生器、１１６　Ａ／Ｄコンバータ、１１８　演算部、１１９　１２Ｃインターフェース、１２１Ａ／Ｄコンバータ、１２２　Ａ／Ｄコンバータインターフェース、１２３　シリアルバスインターフェース、１２４　ＰＷＭ、１２５　駆動ドライブ、１２６ＰＩＯインターフェース、１２７　レギュレータ、ＳＢ１　シリアルバス信号線、Ｓ２　ＯＰＥＮ−Ｒバス信号線
【図１】
2004001195.tif 000003
【図２】
2004001195.tif 000004
【図３】
2004001195.tif 000005
【図４】
2004001195.tif 000006
【図５】
2004001195.tif 000007
【図６】
2004001195.tif 000008
【図７】
2004001195.tif 000009
【図８】
2004001195.tif 000010
【図９】
2004001195.tif 000011
【図１０】
2004001195.tif 000012
【図１１】
2004001195.tif 000013
【図１２】
2004001195.tif 000014
【図１３】
2004001195.tif 000015