JP2004001195A - ロボット装置 - Google Patents
ロボット装置 Download PDFInfo
- Publication number
- JP2004001195A JP2004001195A JP2003088576A JP2003088576A JP2004001195A JP 2004001195 A JP2004001195 A JP 2004001195A JP 2003088576 A JP2003088576 A JP 2003088576A JP 2003088576 A JP2003088576 A JP 2003088576A JP 2004001195 A JP2004001195 A JP 2004001195A
- Authority
- JP
- Japan
- Prior art keywords
- master device
- unit
- driving
- communication data
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】サーボコントロールするデバイスと駆動部との間の接続配線数が駆動部数に依存しないロボット装置を提供する。
【解決手段】ロボット装置1は、胴体部ユニット2に対して可動とされた可動部である脚部ユニット3A〜3D,頭部ユニット4及び尻尾ユニット5が連結され、この可動部には可動部を駆動するモータ103nが設けられている。そして、胴体部ユニット2に設けられモータ103nの駆動を制御する制御値を算出するマスタデバイス101と、上記可動部に設けられ1以上のモータ103nの駆動を制御するスレーブデバイス102nと、スレーブデバイス102nとマスタデバイス101との間の通信データの送受信を行うシリアルバス信号線SB1とからサーボ制御システムが構成され、スレーブデバイス102nは、マスタデバイス101から制御値を通信データとして受け取りモータ103nを駆動する。
【選択図】 図1
【解決手段】ロボット装置1は、胴体部ユニット2に対して可動とされた可動部である脚部ユニット3A〜3D,頭部ユニット4及び尻尾ユニット5が連結され、この可動部には可動部を駆動するモータ103nが設けられている。そして、胴体部ユニット2に設けられモータ103nの駆動を制御する制御値を算出するマスタデバイス101と、上記可動部に設けられ1以上のモータ103nの駆動を制御するスレーブデバイス102nと、スレーブデバイス102nとマスタデバイス101との間の通信データの送受信を行うシリアルバス信号線SB1とからサーボ制御システムが構成され、スレーブデバイス102nは、マスタデバイス101から制御値を通信データとして受け取りモータ103nを駆動する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、サーボ制御システム等を有するロボット装置に関し、特に、制御線及び電源等の配線配置及び配線数等の最適化を図ったロボット装置に関する。
【0002】
【従来の技術】
従来、エンターテイメント用のロボット装置として、犬や猫等の生体動物を形取った多足歩行型のロボット装置が提案されている。かかるロボット装置は、所定の自由度を持つアクチュエータと所定の物理量を検出するセンサ等が所定の位置に配置された機構部とを有し、マイクロコンピュータを用いた制御部によって、外部からの動作指令に対して所定の動作を行うように構成されている。
【0003】
ロボット装置を開発設計する上で検討事項として必ず挙がるのが、動作を司るモータ等の駆動デバイス(駆動部)を制御するのに必要な制御信号線及び電源線等に対するロボット筐体内の配線配置方法である。
【0004】
言うまでもないが、ロボット装置の自由度が増える度にこの問題の重要度は増すことになる。その理由は、配線数の増加に伴い、関節部位への配線の引き回しによる装置の大型化及び断線増加等の問題が生じることとなり、ロボット装置の最大動作範囲が制限されてしまうからである。これは、より少ない配線数で多くの駆動デバイスを制御するには、どのようなシステムにすればよいかという問題に置き換えられる。
【0005】
従来、駆動デバイスを制御するためにロボット装置に適用されるサーボ制御システムとして以下に示すものが公知である。図13は、従来のサーボ制御システムを示すブロック図である。図13に示すように、従来のサーボ制御システム400では、制御値を計算するサーボ演算器412を有するサーボコントローラ(サーボ制御LSI(large‐scale integrated circuit))401に対して、駆動部であるDCモータ432n(4321〜431N)の動きを検出するポテンショメータ431n(4311〜431N)からセンサ情報が入力される信号線S21n(S211〜S21N)、及びサーボ演算器により計算された制御値を用いてDCモータ432nの動作を制御する制御信号が出力される信号線S22n(S221〜S22N),S23n(S231〜S23N)が各サーボチャンネル毎に入出力独立で用意されている。また、各DCモータ432n(4321〜432N)は、電源電位及びグラウンド電位を供給する夫々電源線S24n(S241〜S24N)及びS25n(S251〜S25N)が接続されている。
【0006】
サーボコントローラ401は、各センサデータが入力され、これをデジタル変換するA/Dコンバータ422と、このA/Dコンバータ422からのデジタルセンサデータが入力され、各センサデータから各制御値を算出するサーボ演算器412と、このサーボ演算器412からの制御値が入力されるコンパレータ(比較器)413と、所定のDCモータ432nを制御する制御値がコンパレータ413から入力され、各DCモータ332nを制御する制御信号を生成するPWM(Pulse Width Modulation)423n(4231〜423N)とを有する。
【0007】
このように構成されたサーボ制御システムにおいては、ポテンショメータ431nからのセンサ情報に基づいてサーボ演算器412で算出された制御値を使用してDCモータ432nの回転を制御することができる。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のサーボ制御システムにおいては、駆動部であるモータ及びセンサとサーボコントローラとの間が全てパラレルで接続されていたため、サーボコントローラと駆動部及びセンサとの間の接続配線数が駆動部の数に比例して増加する。従って、このようなパラレルに接続されるような構造では末端の自由度が高いロボット装置においては、1つのサーボコントローラにより制御できる駆動部の数に限界が生じてしまうという問題点がある。
【0009】
本発明は、このような従来の実情に鑑みて提案されたものであり、サーボコントロールするデバイスと駆動部との間の接続配線数が駆動部数に依存しないロボット装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0011】
本発明においては、マスタデバイスとスレーブデバイスとの間をシリアルバス信号線により接続することにより、駆動部の数が増加しても、両者の間の配線数が増加することなく、関節部位等の駆動部を制御する上で、必要なチャンネルの選択を指定できるようにしておくことで、各駆動部に対する柔軟で最適な配線が可能となるため、様々なロボット装置におけるサーボ制御装置であるマスタデバイス及びスレーブデバイスと駆動部との間の最適な配置配線が実現できる。
【0012】
また、上記スレーブデバイスは、該スレーブデバイスに接続されたポテンショメータ等であるセンサから、アクチュエータ等である上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することができ、上記マスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することができる。
【0013】
更に、上記マスタデバイスと上記スレーブデバイスとの間に接続された共通電源線及び共通グラウンド線を有し、上記スレーブデバイスは上記センサに電源電位及び接地電位を供給することにより、マスタデバイスとスレーブデバイスとの間は、データをやりとりするシリアルバス信号線と、電源線及び接地線との合計3本で接続することができる。
【0014】
更にまた、上記通信データはデータ領域と上記駆動部を識別する識別情報を含む識別領域とを有し、上記マスタデバイスが上記スレーブデバイスへ送信する上記通信データのデータ領域には上記駆動部を駆動する制御値が書き込まれ上記マスタデバイスが上記スレーブデバイスから受信する上記通信データのデータ領域には上記駆動部の動きを検出して得られたセンサ情報が書き込まれているものとすることができ、各スレーブデバイスは識別情報により自身が制御する駆動部を識別すことができる。
【0015】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0016】
本発明においては、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間の送受信が、例えば一定期間で行われない場合等にシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【0017】
また、上記制御部は、上記スレーブデバイスに設けられ上記マスタデバイスからの上記通信データの受信があるか否かを検出するか、上記マスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出することができ、マスタデバイス及びスレーブデバイスのいずれにおいても、マスタデバイスとスレーブデバイスとの間の接続を検出することができる。
【0018】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0019】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記可動部に設けられ上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記第2のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0020】
本発明においては、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【0021】
また、上記可動部は上記本体部と着脱可能であって、上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【0022】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施の形態は、本発明を「犬」を模した形状のいわゆるペットロボット装置に適用した例である。図1は本発明の第1の実施の形態におけるロボット装置を示すブロック図、図2は、同ロボット装置の本体部に設けられるホストコントロール部の回路構成を示すブロック図である。また、図3は、同ロボット装置におけるサーボ制御システムを示すブロック図である。
【0023】
図1に示すように、ロボット装置1は、本体部である胴体部ユニット2の前後左右にそれぞれ可動部である脚部ユニット3A,3B,3C,3Dが連結されると共に、胴体部ユニット2の前端部及び後端部にそれぞれ可動部である頭部ユニット4及び尻尾部ユニット5が連結されて構成されている。
【0024】
胴体部ユニット2には、図2に示すように、CPU(Central Processing Unit)10、DRAM(Dynamic Random Access Memory)11、フラッシュROM(Read0nly Memory)12、PC(Personal Computer)カードインターフェース回路13及び信号処理回路(ホストコントロール部)14が内部バス15を介して相互に接続されることにより形成されたコントロール部16と、このロボット装置1の動力源としてのバッテリ17とが収納されている。このコントロール部16のホストコントロール部14には、サーボ制御用LSIからなるサーボコントローラ(マスタデバイス)101が接続されている。また、胴体部ユニット2には、ロボット装置1の向きや動きの加速度を検出するための角速度センサ及び加速度センサ等も収納されている。
【0025】
そして、可動部である脚部ユニット3A,3B,3C,3D、及び頭部ユニット4には、それぞれ1以上のスレーブデバイス102n(なお、図1においては、6つの1021〜1026のみ図示)が配置され、このスレーブデバイス1021〜1026とマスタデバイス101との間は、両者の通信データの送受信を行うシリアルバス信号線SB1により接続されている。
【0026】
また、頭部ユニット4には、外部の状況を撮像するためのCCD(Charge Coupled Device)カメラ20が設けられ、更に、使用者からの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイクロホン、鳴き声等の音声を出力するためのスピーカ、ロボット装置1の「目」に相当するLED(Light Emitting Diode)(図示せず)等がそれぞれ所定位置に配置されている。
【0027】
さらに、各脚部ユニット3A〜3Dの関節部分や各脚部ユニット3A〜3D及び胴体部ユニット2の各連結部分、頭部ユニット4及び胴体部ユニット2の連結部分、並びに尻尾部ユニット5の連結部分などにはそれぞれ自由度数分の駆動部であるアクチュエータ及びポテンショメータ(センサ)が配設され、スレーブデバイス102n又はマスタデバイス101に電気的に接続されている。例えば、アクチュエータは、図3に示すように、サーボモータ103n(1031〜103N)を構成として有し、サーボモータ1031〜103Nの駆動をスレーブデバイス102n(1021〜102N)が制御することにより、脚部ユニット3A〜3Dが制御されて、目標の姿勢或いは動作に遷移する。
【0028】
図2に示すホストコントロール部14は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス15を介してDRAM11内の所定位置に順次格納する。また、ホストコントロール部14は、これと共にバッテリ17から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをDRAM11内の所定位置に格納する。
【0029】
このようにしてDRAM11に格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、この後CPU10がこのロボット装置1の動作制御を行う際に利用される。
【0030】
実際上CPU10は、ロボット装置1の電源が投入された初期時、胴体部ユニット2の図示しないPCカードスロットに装填されたメモリカード28又はフラッシュROM12に格納された制御プログラムをPCカードインターフェース回路13を介して又は直接読み出し、これをDRAM11に格納する。
【0031】
また、CPU10は、この後、上述のようにホストコントロール部14よりDRAM11に順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無などを判断する。
【0032】
さらに、CPU10は、この判断結果及びDRAM11に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて、必要なモータ103nが作動するようにマスタデバイス101に指示値を送り、マスタデバイス101は、この指示値に基づいてモータ103nの制御値を算出してスレーブデバイス102nに出力し、スレーブデバイス102nがこの制御値を使用してモータ103nを駆動させることにより、頭部ユニット4を上下左右に振らせたり、尻尾部ユニット5の尻尾を動かせたり、各脚部ユニット3A〜3Dを駆動させて歩行させるなどの行動を行わせる。
【0033】
また、この際CPU10は、必要に応じて音声データを生成し、これをホストコントロール部14を介して音声信号としてスピーカ24に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述のLEDを点灯、消灯又は点滅させる。
【0034】
このようにしてこのロボット装置1においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【0035】
次に、このようなロボット装置1の動作を制御するサーボ制御システムについて具体的に説明する。図1乃至図3に示すように、ホストコントロール部14には、マスタデバイス(サーボコントローラ)101が接続されている。このマスタデバイス101には複数本のシリアルバス信号線SB1により駆動デバイス用LSIからなる複数のスレーブデバイス102nが接続されている。こうしてマスタデバイス101とスレーブデバイス102nとの間は、両者の間の通信データの送受信を行うための非同期式シリアルバスであるシリアルバス信号線SB1により接続され、マスタデバイス101とスレーブデバイス102nの間の通信データの送受信を行うためのサーボ制御システムが構成されている。
【0036】
このように、サーボ制御システム100は、複数のスレーブデバイス102nが1本のシリアルバス信号線SB1によりマスタデバイス101と接続されている。また、各スレーブデバイス102nは、共通の電源線及びグラウンド線(図示せず)に接続され、ロボット装置システムにおけるモータの電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス102nは、個別に、駆動部であるDCモータ等のモータ103nと、このモータ103nの動きを検出するポテンショメータ等のセンサ104nと、スイッチ(SW)等の入出力機器105とに接続されている。また、マスタデバイス101には、駆動部であるモータ107及びこのモータ107の動きを検出するセンサ108が、スレーブデバイス102nを介さず直接接続されていてもよい。
【0037】
本実施の形態におけるマスタデバイス101は、例えば16チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス101にスレーブデバイス102nを介してか又は直接接続されるモータ103n,センサ104n及びモータ107,センサ108の各組の総数は16となる。
【0038】
マスタデバイス101は、ホストコントロール部14からの指示値に従い、サーボ演算をするLSIである。スレーブデバイス102nは、マスタデバイス101が算出した制御値に基づきモータ103nの駆動を制御する。また、センサ104nからのセンサデータをマスタデバイス101に出力する。即ち、マスタデバイス101は、スレーブデバイス102nからのセンサデータに基づきサーボ演算して制御値を算出し、この制御値(制御信号)をシリアルバス信号線SB1を介してスレーブデバイス102nに返すことにより、モータ103nの駆動を制御するものである。
【0039】
図4は、マスタデバイス101の内部を示すブロック図である。図4において、本実施の形態のマスタデバイス101は、サーボ(Servo)演算器113と、シリアルバスインターフェース114と、PWM(Pulse Width Modulation)115と、A/Dコンバータ116と、ファームウェアを実行するためのCPU、ROM及びRAM等からなる演算部118とを有する。
【0040】
サーボ演算器113は、ホストコントロール部14からの制御信号に従って、シリアルバスインターフェース114から入力されるセンサデータに基づき制御値を算出する。シリアルバスインターフェース114は、サーボ演算器113にて算出された制御値を通信データとしてシリアルバス信号線SB1に出力し、シリアルバス信号線SB1を介して接続されたスレーブデバイス102とマスタデバイス101との間で行われるシリアル通信を制御する。
【0041】
A/Dコンバータ116は、マスタデバイス101にスレーブデバイス102を介さず接続された駆動部であるモータの動き(回転角)等を検出するセンサにて得られたアナログセンサデータを受け取りデジタル変換する。このデジタルセンサデータもサーボ演算器113に入力され、ホストコントロール部14からの制御信号に従って上記モータの制御値が算出され、この制御値はPWM信号を生成するPWM115に入力される。PWM115は、制御値が入力されると、マスタデバイス101にスレーブデバイス102を介さず接続されたモータの駆動を制御するPWM信号を生成する。そして、このPWM信号をモータに入力してマスタデバイス101がモータを直接制御する。ここで、矢印Aは、各モータのサーボ制御を行うデータの流れ(サーボループ)を示す。また、矢印Bは、ホストコントロール部から各モータへ出力されるデータの流れを示し、矢印Cは、各モータからホストコントロール部へ出力されるデータの流れを示す。
【0042】
図5は、モータ等の駆動部の駆動を制御するスレーブデバイスの内部を示すブロック図である。図5に示すように、スレーブデバイス102は、A/Dコンバータ121と、A/Dコンバータインターフェース122と、シリアルバスインターフェース123と、PWM124と、モータ103を駆動するためのモータ駆動部125と、LED及びスイッチ等の入出力機器105からの信号が入力されるPIOインターフェース126と、モータ103用の電源からロジック用電源を生成するレギュレータ127とから構成される。
【0043】
A/Dコンバータ121は、センサ104によりモータ103の動きを検出して得られた検出結果がセンサ104からアナログセンサデータとして入力され、これをデジタル変換する。シリアルバスインターフェース123は、マスタデバイス102とスレーブデバイス101との間でシリアルバス信号線SB1を介して行われるシリアル通信を制御する。即ち、A/Dコンバータインターフェース122から入力されるデジタルセンサデータを通信データとしてシリアルバス信号線SB1を介してマスタデバイス101へ入力し、マスタデバイス101にてサーボ演算されたモータ103の駆動を制御すための制御値を通信データとしてシリアルバス信号線SB1を介して受け取る。
【0044】
PWM125は、マスタデバイス101にて算出された制御値がシリアルバスインターフェース123から入力され、この制御値に基づき、そのパルス幅によってモータ103の駆動(回転数)を制御する制御信号(PWM信号)を生成する。モータ駆動回路125は、制御信号が入力されモータ103を駆動する。PIOインターフェースには、LED及びスイッチのオン・オフ等、入出力機器105から、その状態等を示す信号が入力され、これをシリアルバスインターフェース123に送り、ホストコントロール部14からマスタデバイス101を介して送られる制御信号をシリアルバスインターフェース123から受け取り、この制御信号に基づき入出力機器105を制御する。
【0045】
次に、マスタデバイス101のシリアルバスインターフェース114と、スレーブデバイス102nのシリアルバスインターフェース123nとの間で送受信される通信データについて説明する。
【0046】
マスタデバイス101と各スレーブデバイス100nとのデータ通信は、時分割でタイムスロットを設けることにより複数サーボチャンネルのデータを多重することができる。
【0047】
図6(a)は、タイムスロットにトランザクションを割り付けて、タイムスロットとトランザクションの時間的配置を示す模式図である。各タイムスロットは、マスタデバイス101がスレーブデバイス102からのセンサデータを受信する処理(リードトランザクション)と、マスタデバイス101がスレーブデバイス102へサーボ制御データを送信する処理(ライトトランザクション)とからなる。マスタデバイス101は、個々のスレーブデバイス102に対し、リードトランザクションを行ってポテンショメータの読み取り値(センサデータ)を得てから、次のタイムスロットでライトトランザクションを行って制御値を送信している。
【0048】
次に、リード/ライトトランザクションのデータフォーマットについて説明する。図6(b)は、図6(a)に示す1タイムスロット(1トランザクション)を拡大して時分割シリアルバスの通信データフォーマットを示す模式図であり、図7(a)はマスタデバイスからスレーブデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図、図7(b)は、スレーブデバイスからマスタデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図である。
【0049】
リード/ライトトランザクションは、アドレスフェーズ50と、センサデータ又は制御値が書き込まれる通信データフェーズ60との2つのフェーズからなる。各フェーズの最後には、1bit時間のIdle State(いかなるデバイスもドライブしない時間)51,61が設けられている。これは、複数のデバイスが同時にバスを駆動することによるデータの衝突を防ぐためである。
【0050】
また、アドレスデータ及び通信データがノイズ等の影響により誤りを起こすと問題となるため、アドレスフェーズ及び通信フェーズには、夫々誤り検出のためのCRC(Cyclic Redundancy Check)符号が挿入される。
【0051】
アドレスフェーズ50においては、アドレス3bit及びRead/Write指示1bitの計4bitに対して生成多項式X3+X+1で生成したCRC3符号(CRC3[2:0])52を付加している。これにより、アドレス部に対して2bit誤りまでの検出を行うことができる。
【0052】
また、データフェーズ60においては、通信データ計11bitに対して、生成多項式X5+X2+1で生成したCRC5符号(CRC5[4:0])62を付加している。これにより、データ部に対して2bit誤りまでの検出を行うことができる。
【0053】
更に、各フェーズの最初には、データ周期の1/2で“L”−“H”−“L”−“H”と変化するスタートパルス53,63を挿入する。各デバイスはデータを受信する際、このスタートパルス53,63を元に受信データのストローブポイントを補正する。
【0054】
アドレスフェーズ50は、スレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)を指定するため、各トランザクションはマスタデバイス101から見て、通信相手となるスレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)のいずれかを指定し、更にスレーブデバイス1021〜102Nに対してRead/Writeの指示を行うためのものである。各スレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)は、異なるアドレスを割り当てられることにより特定される。本実施の形態では、スレーブデバイス102nをN=23=8個と仮定し、アドレスビット幅を3bitとしたアドレス(Addr[2:0])54とする。また、Read/Writeの指示信号(R/W)55は、例えば、Read時1、Write時0とすることができる。
【0055】
アドレスフェーズ50は、必ずマスタデバイス101が送信を行う。スレーブデバイス102nは、マスタデバイス101から送られてきたアドレスフェーズ50のアドレス54を元に、現在のトランザクションが自分宛のものであるかどうかの判別を行う。
【0056】
一方、実際の通信やりとりをするデータフェーズ60は、Read時はスレーブデバイス102nが送信し、Write時はマスタデバイス101が送信を行う。
【0057】
通信データフェーズ60は、Read/Writeトランザクション共に、11bitのデータ(Date[10:0])64を有する。リードトランザクション、即ち、スレーブデバイス102nからマスタデバイス101へ送信されるセンサデータは、図7(b)に示すように、センサ103nの出力値をA/D変換したデータ71:10bit(以下、ADC[9:0]という。)と、オプションの汎用入力ポートの読み取り値72:1bit(以下、PINという。)との合計11bitとからなる。
【0058】
また、ライトトランザクション、即ち、マスタデバイス101からスレーブデバイス102nへ送信されるサーボ制御値は、図7(a)に示すように、モータ103nを駆動するためのPWMのパルス値(PWMPuluseWidth[7:0])81:8bitと、モータ103nの回転の向きを示すデータ(DIR)82:1bitと、モータ103nを緊急停止させるためのデータ(STOP)83:1bitと、オプションの汎用出力ポートの出力値(POUT)84:1bitとの合計11bitからなる。
【0059】
こうして、マスタデバイス101が各スレーブデバイス102nのデータを読み取るリードトランザクション、及びマスタデバイス101がスレーブデバイス102nへ制御値を送信するライトトランザクションは共に、スタートパルス(2bit time)53、アドレス(3bit time)54、Read/Write指示信号(1bittime)55、CRC3符号(3bit time)52、IdleState(1bit time)51、スタートパルス(2bit time)63、データ(11bit time)64、CRC5符号(5bit time)62、IdleState(1bit time)61の計29bittimeであり、これが1タイムスロット=29bit timeとなっている。
【0060】
ここで、1bit timeを187.5kHz(=約5.33μs)とすると、例えば8つのスレーブデバイス1021〜1028に対し制御を行うときの各スレーブデバイス1021〜1028への制御値更新周期は、5.33(μs)×29(clocks/transaction)×2(R/W transactions)×8(number of slave devices)=約2.5ms周期となる。
【0061】
1bit timeを変えることにより、制御値更新周期一定のままで、任意の数のスレーブデバイス102nを制御することが可能である。
【0062】
また、シリアルバス信号線SB1はマスタ、スレーブ各デバイスのOpen−DrainBufferにより駆動され、シリアルバス信号線SB1は外部でプルアップされているので、どのデバイスも通信データを送信していないときは自動的にHレベルとなる。
【0063】
次に、このように構成されたサーボ制御システムの動作について説明する。先ず、図5に示すように、センサ104がモータ103の動きを検出した検出結果であるアナログセンサデータがスレーブデバイス102のA/Dコンバータ121に入力されるとA/Dコンバータ121はアナログセンサデータをデジタル変換する。デジタルセンサデータは、A/Dコンバータインターフェース122を介してシリアルバスインターフェース123へ入力される。シリアルバスインターフェース123は、通信データのアドレスから、自身に割り当てられたアドレスを識別し、そのRead時のデータフェーズにデジタルセンサデータを書き込み(配置し)、シリアルバス信号線に出力する(送信する)。
【0064】
次いで、図4に示すように、マスタデバイス101のシリアルバスインターフェース114がシリアルバス信号線SB1から通信データとしてデジタルセンサデータを受け取り、デジタルセンサデータをサーボ演算器113に入力する。サーボ演算器113はホストコントロール部14から供給される指令値に応じて、上記デジタルセンサデータに基づきモータの駆動を制御するための制御値を算出し、シリアルバスインターフェース114へ通信データとして出力する。シリアルバスインターフェース114は、通信データのアドレスフェーズにおけるアドレスを識別し、この制御値を算出したセンサデータが書き込まれていたアドレスと同じアドレスを有する通信データのWrite時のデータフェーズに、この制御値を書き込み(配置し)、シリアルバス信号線SB1へ出力する(送信する)。
【0065】
図5に戻って、スレーブデバイス101のシリアルバスインターフェース123は、シリアルバス信号線SB1に送られる通信データから、自身(スレーブデバイス102n又はスレーブデバイス102nに接続されたモータ103n及びセンサ104nの組)に割り当てられたアドレスを識別して受け取り、PWM124に出力する。PWM124はこの制御値に基づき制御信号(PWM信号)を生成して駆動ドライブ125に出力し、駆動ドライブからモータ103へ制御信号が出力されてモータ103の回転等を制御する。
【0066】
このように構成された第1の実施の形態のロボット装置においては、マスタデバイス101とスレーブデバイス102nとの間をシリアルバス信号線SB1により接続することにより、ロボット装置1の各関節部位の配線数をマスタデバイス101にスレーブデバイス102nを介さず個別に駆動部及びセンサを接続するよりも、ロボット装置1の各関節部位の配線数を少なくすることができる。
【0067】
次に、第1の実施の形態における図3に示すサーボ制御システムの変形例について説明する。図8は、変形例のサーボ制御システムを示すブロック図である。
【0068】
図8に示すように、サーボ制御システム300は、1つのマスタデバイス310と、複数個のスレーブデバイス320nと、マスタデバイス310とスレーブデバイス320nとの間で通信データの送受信をする2本のシリアルバス信号線SB111、SB112とを有する。本変形例のマスタデバイス310は最大で16チャンネルのサーボ制御チャンネルを有するものとする。マスタデバイス310は、2本(2ブランチ)のシリアルバス信号線SB111,SB112に接続されており、各シリアルバス信号線SB111,SB112は、最大8チャンネルのスレーブデバイス320nが接続可能となっている。ここで、本変形例においては、スレーブデバイス320nは、2つのポテンショメータ(センサ)331n,332nからセンサデータが入力され、各センサデータをデジタル変換するA/D変換器(ADC)322n,323nが設けられ、シリアルバスインターフェース321nにはデジタル変換された2つのセンサデータが入力される。シリアルバスインターフェース321nは、シリアルバス信号線SB111(又はSB112)に2つのセンサデータを出力し、各センサデータからマスタデバイス310にて算出された各制御値を受け取る。そして、これらの制御値から、モータ333n,334nの制御信号を生成し、モータ駆動回路(MD)からモータ333n,334nへ制御信号を出力してモータ333n,334nの駆動を制御する。このように、本変形例のスレーブデバイス320nは、2チャンネル分の制御値が入力されるものである。ここで、上述したように、通信データは、アドレスフェーズとデータフェーズとからなるデータであって、スレーブデバイス320nのシリアルバスインターフェース321nは、マスタデバイス310から送信される通信データにおいて、自身に接続されたモータ333n及び331nの組、並びにモータ334n及び331nの組に割り当てられた各アドレスを識別し、Read時に通信データのデータフェーズにセンサデータを書き込み、次のタイムスロットの同アドレスのWrite時にそのデータフェーズに書き込まれた制御値を受け取るものである。
【0069】
このスレーブデバイス320nとマスタデバイス310とにおいても、両者をシリアルバス信号線SB111,SB112にて接続しているため、上述の実施の形態と同様に、各デバイスの制御部により、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線SB111,SB112の断線を検出することができる。
【0070】
また、例えば、駆動部がマスタデバイスの近傍に配置されている場合等、シリアルバス信号線SB111,SB112を介さず、マスタデバイス310に直接センサデータを入力して駆動部を制御することも可能である。本変形例の場合は、上述したように、マスタデバイス310は、16チャンネルのサーボ制御チャンネルを有するので、最大16チャネルのモータ駆動回路(MD)340mに接続することができる。モータ駆動回路340mは、モータ341mの回転を検出するポテンショメータ(センサ)342mからのセンサデータをマスタデバイス310に送信し、マスタデバイス310のサーボ演算器(図示せず)により算出された制御値をマスタデバイス310から受け取る。各モータ駆動回路340mは、モータ341mの駆動を制御する制御信号を生成するPWM等を有し、制御値から制御信号を生成して各モータ駆動回路340mに接続されたモータ341mを制御する。
【0071】
また、マスタデバイス320は、各種センサ、SW、LED及びIICデバイス等のデバイス330に接続され、センサ及びSWからデータが入力されると共にLED及びIICへ制御信号を出力する。また、上位ホストコントローラ340と接続され、上述したように、各デバイスの制御部等にて検出したマスタデバイスとスレーブデバイスとの間の接続状態を上位ホストコントローラ340に出力する。
【0072】
本変形例においては、例えばマスタデバイス310から離れて配置される駆動部に対してサーボ制御する場合等にはシリアルバス信号線SB111,SB112を介してスレーブデバイス320nを配置することにより、配線の引き回し等により装置の大型化、高コスト化等を抑制すると共に、上述の実施の形態と同様にスレーブデバイス320nとマスタデバイス310との間の接続状態を容易に検出することができる。
【0073】
次に、本発明の第2の実施の形態について説明する。図9は、本実施の形態のロボット装置200を示すブロック図である。なお、図9乃至図11に示す第2の実施の形態において、図1乃至5に示す第1の実施の形態と同一構成要素には同一の符号を付しその詳細な説明は省略する。
【0074】
ロボット装置200は、複数のマスタデバイスを有する。このマスタデバイスは、ホストコントロール部14に接続された第1のマスタデバイス211と、この第1のマスタデバイスに接続された複数の第2のマスタデバイス201とからなる。第2のマスタデバイス201は、ロボット装置200の例えは脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5の5カ所に設けられ、これらの各マスタデバイス201には、複数のスレーブデバイス202が接続されている。脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5は、胴体部ユニット2から着脱可能(分離可能)な構成となっている。
【0075】
第1のマスタデバイス211と第2のマスタデバイス201との間は、ソニー株式会社が提供するエンタテーメントロボット用の規格であるOPEN―RシステムのOPEN−Rバス信号線により接続されており、第2のマスタデバイス201とスレーブデバイス202n(図9には、2021〜2026のみ図示)との間は、第1の実施の形態と同様のシリアルバス信号線SB1により接続されている。
【0076】
図10は、本実施の形態のサーボ制御システムを示すブロック図である。図10に示すように、サーボ制御システム200は、複数のスレーブデバイス202nが1本のシリアルバス信号線SB1によりマスタデバイス201と接続されている。また、各スレーブデバイス202nは、共通の電源線及びグラウンド線に接続され、ロボット装置のシステムのモータ電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス202nは、個別に駆動部であるモータ103n、このモータ103nの動きを検出するポテンショメータ等のセンサ104n、及びスイッチ等の入出力機器(SW)105に接続されている。
【0077】
胴体部ユニット2に設けられ、ホストコントロール部14と接続された第1のマスタデバイス211と、着脱可能な脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5(以下、可動部ともいう。)に設けられた第2のマスタデバイスとの間は、グランド線及び電源線(図示せず)とデータ線となるOPEN−Rバス信号線S2とを有するOPEN−Rコネクタ(図示せず)で接続され、胴体部ユニット2からいずれかの着脱部材を抜き出す際は、グランド線は電源線及びOPEN−Rバス信号線S2に比べて最後まで接続され、胴体部ユニット2にいずれかの着脱部材を装着する際は、上記グランド線は電源線及びOPEN−Rバス信号線S2に比べて最初に接続されるように構成されている。
【0078】
このように、マスタデバイス201は、OPEN−Rバス信号線S2を介して、ホストコントロール部14に接続されたマスタデバイス211と接続されている。また、マスタデバイス201、211には、駆動部であるモータ107及びセンサ108が直接接続されていてもよい。このマスタデバイス211は、例えば16チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス211にマスタデバイス201及びスレーブデバイス202nを介して接続されモータ103、及びマスタデバイス211若しくは201に直接接続されるモータ107の総数は16となる。
【0079】
図11は、マスタデバイスの内部を示すブロック図である。マスタデバイス201は、サーボ演算器113、シリアルバスインターフェース114、パルス発生器115、A/Dコンバータ116、及び演算部118の他に、OPEN−Rデバイスコントローラ111と、バッファ112,117と、IIEEPROM(電気消去可能プログラマブル読出し専用メモリ(electrically erasable programmable read−only memory))との間の通信を制御するIICインターフェース119とを有する。
【0080】
OPEN−Rデバイスコントローラ111は、OPEN−Rバス信号線S2に接続されている。バッファ112は、OPEN−Rデバイスコントローラ111とサーボ演算器113との間に接続され、図9に示すホストコントロール部14から入力されて各駆動部へ出力されるデータのタイミングを制御する。バッファ117は、サーボ演算器113及びA/Dコンバータ116と、OPEN−Rデバイスコントローラ111との間に接続され、駆動部であるモータ等の動きを検出した検出結果がセンサから入力され、ホストコントロール部14へ出力されるデータのタイミングを制御する。図中の矢印D、E及びFは、夫々ホストコントロール部14から各駆動部(モータ)へ出力されるデータの流れ、各駆動部(モータ)からホストコントロール部14へ出力されるデータの流れ、各駆動部(モータ)のサーボ制御を行うデータの流れ(サーボループ)を示す。
【0081】
また、全ての第2のマスタデバイス201がOPEN−Rバス信号線S2を介して接続される第1のマスタデバイス211には、OPEN−Rバスコントローラが設けられており、OPEN−Rバスコントローラは胴体部ユニット2に設けられCPU10により制御されている。マスタデバイス211のOPEN−Rバスコントローラは、マスタデバイス201のOPEN−Rデバイスコントローラ111を介し、モータ103の回転を制御したり、各種のセンサの検出出力を認識している。
【0082】
マスタデバイス間をOPEN−Rバス信号線S2により接続するOPEN−Rシステムは、OPEN−Rシステムコア及びOPEN−Rバスデバイスから構成される。ここで、OPEN−Rバスデバイスとは、OPEN−Rコネクタというロボット部品接続コネクタを有するCPC(Configurable Physical Component)であり、OPEN−RコネクタによってOPEN−Rシステムコアに接続可能なロボット部品をいう。OPEN−Rシステムコアは、マスタデバイス211に相当し、OPEN−Rバスの制御を行うOPEN−Rバスコントローラ(OPEN−Rバスホストコントローラ)により、最大で127個のOPEN−Rバスデバイスと接続することができる。
【0083】
OPEN−RバスホストコントローラとOPEN−Rバスデバイスとは、具体的には階層スタートポロジーという物理的接続形態をとっている。各スターの中心には、「ハブ」というデバイスが配置される。ここにいう「ハブ」は、着脱可能の可動部である脚部ユニット3A,3B,3C,3D、頭部ユニット4に設けられる各マスタデバイス201のOPEN−Rデバイスコントローラ111に相当する。ここで、ホスト又はハブの下方への接続インターフェースは、ダウンストリームポートという。デバイスの上方への接続インターフェースは、アップストリームポートという。なお、OPEN−Rバスシステムでは、ループ接続は禁止されている。また、OPEN−Rコネクタは、例えば10本のピンを備え、OPEN−Rバス信号線S2のデータは、差動信号D+,D−からなる。そのデータレートは12Mbpsであり、また、その特性は、Universal Serial Bus Specification 1.0のフルスピードに準拠している。
【0084】
D+ライン及びD−ラインは、上位側(ホスト又はハブのダウンストリームポート)において、1.5kΩでプルダウンされている。また、デバイス側では、D+ラインは、15kΩでプルアップされている。
【0085】
クロック信号CLKは、12MHzであり、外部デバイスのクロックソースとして使用されることもある。OPEN−Rバス信号線S2には、電源ソースとして、電源電圧VDD(3V)及び電源電圧VPWR(5V)が供給される。さらに、各電源ライン(電源線)に対して、それぞれグランドライン(グランド線)DGND,PWRGNDも設けられている。さらに、OPEN−Rコネクタは、10本のピンのうち、DGNDピン及びPWRGNDピンが高く(長く)構成されている。
【0086】
例えば、胴体部ユニット2と脚部ユニット3Aとを接続するOPEN−Rコネクタが抜かれた場合には、グランドラインであるDGNPピン及びPWRGNDピンが最後まで接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。そして、CPU10は、脚部ユニット3Aがない状態を認識して、当該脚部ユニット3Aがないときの動作モードに正常に移行することができる。
【0087】
一方、ユーザがOPEN−Rコネクタを差し込む場合にあっては、グランドラインであるDGNPピン及びPWRGNDピンが最初に接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【0088】
そして、CPU10は、脚部ユニット3Aが接続された状態を認識すると、脚部ユニット3Aの初期化を行い、メモリから初期状態のデータを読み出して、当該脚部ユニット3Aがあるときの動作モードに正常に移行する。このとき、CPU10は、交換されていない頭部ユニット4,脚部ユニット3B,3C,3Dの初期化を行わないので、脚部ユニット3Aを交換したときの初期化動作については、電源投入時に比べて短時間で行うことができる。また、CPU10は、胴体部ユニット2や頭部ユニット4等に記憶しているデータであって、脚部ユニット3Aの交換前の学習によって生成されたデータについては消去しないので、脚部ユニット3Aの交換後であっても当該データを有効に利用することができる。
【0089】
また、DGNDピン及びPWRGNDピンだけでなく、電源ラインであるVDDピン及びVPWRピンも高くしてもよい。これにより、ユーザがOPEN−Rコネクタを抜く場合にあっては、CLKピン、D+ピン、D−ピンを抜いてからVDDピン、DGNDピン、VPWRピン、PWRGNDピンを抜くので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。一方、ユーザがOPEN−Rコネクタを差し込む場合にあっては、VDDピン、DGNDピン、VPWRピン、PWRGNDピンが接続されてから、CLKピン、D+ピン、D−ピンが接続されるので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【0090】
本実施の形態においては、第1の実施例と同様の効果を奏すると共に、OPEN−Rシステムにより、ロボット装置のコンフィギュレーションを自由に変更可能であり、シリアルバスであるOPEN−Rバス信号線S2の先に様々なデバイスを自由に接続することが可能となる。また、それらの構成情報をホスト側で管理することでロボット装置200のハードモジュールの脱着をサポートすることができる。そして、ロボット内部のデバイスへのアクセスにこのようなOPEN−Rバス信号線S2を採用することにより、配線が容易になる。
【0091】
また、図12に示すように、マスタデバイス101のみを使用し、シリアルバス信号線を使用せず、全てのモータ103を制御することも可能であり、この場合はコストを最低限に抑えることができる。このように、例えば、低コストを重点に置くならば、図12に示すようなサーボ制御システムとし、ロボット装置のスペックに重点を置く場合は、マスタデバイスを1つのみ使用し、シリアルバス信号線にてスレーブデバイスと接続することにより配線数を少なくした第1の実施の形態におけるサーボ制御システムを適用する等することにより、ロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【0092】
なお、上述の実施の形態においては、4足歩行のロボット装置を例に挙げたが、2足、6足等様々な自由度のロボットでも同じように実現できることはいうまでもない。
【0093】
また、上述した全ての実施の形態において、駆動デバイス用LSI(スレーブデバイス)を新規に開発することにより、様々な駆動デバイスについても制御できる。即ち、上述の例では、駆動部としてDCモータを例に挙げたが、例えば三相交流モータ及びエンコーダ等にも応用できることはいうまでもない。
【0094】
【発明の効果】
以上詳細に説明したように本発明によれば、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、それぞれのロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【0095】
また、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【0096】
更に、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するか、又は上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記第2のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することにより、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【0097】
更にまた、上記可動部は上記本体部と着脱可能であって、上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるロボット装置を示すブロック図である。
【図2】同ロボット装置の回路構成を示すブロック図である。
【図3】本発明の第1の実施の形態におけるサーボ制御システムを示すブロック図である。
【図4】本発明の第1の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図5】本発明の第1の実施の形態におけるスレーブデバイスの内部を示すブロック図である。
【図6】(a)はタイムスロットとトランザクションの時間的配置を示す模式図、(b)は、1タイムスロット(1トランザクション)を拡大して示す模式図である。
【図7】(a)はマスタデバイスからスレーブデバイスへ送られるデータのフォーマットを示す図、(b)は、スレーブデバイスからマスタデバイスへ送られるデータのフォーマットを示す図である。
【図8】本発明の第1の実施の形態の変形例におけるサーボ制御システムを示すブロック図である。
【図9】本発明の第2の実施の形態におけるロボット装置を示すブロック図である。
【図10】本発明の第2の実施の形態におけるサーボ制御システムを示すブロック図である。
【図11】本発明の第2の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図12】マスタデバイスのみを使用して駆動部を制御する場合のロボット装置を示すブロック図である。
【図13】従来のロボット装置のサーボ制御システムを示すブロック図である。
【符号の説明】
1,200 ロボット装置、2 胴体部ユニット、3A,3B,3C,3D 脚部ユニット、4 頭部ユニット、10 CPU10、14 ホストコントロール部、5 尻尾部ユニット、101,201,211 マスタデバイス、102n,202nスレーブデバイス、103,107 モータ、104nセンサ、105 入出力機器、100,200 サーボ制御システム、111 OPEN−Rデバイスコントローラ、112,117 バッファ、113 サーボ演算器、114 シリアルバスインターフェース、115 パルス発生器、116 A/Dコンバータ、118 演算部、119 12Cインターフェース、121A/Dコンバータ、122 A/Dコンバータインターフェース、123 シリアルバスインターフェース、124 PWM、125 駆動ドライブ、126PIOインターフェース、127 レギュレータ、SB1 シリアルバス信号線、S2 OPEN−Rバス信号線
【発明の属する技術分野】
本発明は、サーボ制御システム等を有するロボット装置に関し、特に、制御線及び電源等の配線配置及び配線数等の最適化を図ったロボット装置に関する。
【0002】
【従来の技術】
従来、エンターテイメント用のロボット装置として、犬や猫等の生体動物を形取った多足歩行型のロボット装置が提案されている。かかるロボット装置は、所定の自由度を持つアクチュエータと所定の物理量を検出するセンサ等が所定の位置に配置された機構部とを有し、マイクロコンピュータを用いた制御部によって、外部からの動作指令に対して所定の動作を行うように構成されている。
【0003】
ロボット装置を開発設計する上で検討事項として必ず挙がるのが、動作を司るモータ等の駆動デバイス(駆動部)を制御するのに必要な制御信号線及び電源線等に対するロボット筐体内の配線配置方法である。
【0004】
言うまでもないが、ロボット装置の自由度が増える度にこの問題の重要度は増すことになる。その理由は、配線数の増加に伴い、関節部位への配線の引き回しによる装置の大型化及び断線増加等の問題が生じることとなり、ロボット装置の最大動作範囲が制限されてしまうからである。これは、より少ない配線数で多くの駆動デバイスを制御するには、どのようなシステムにすればよいかという問題に置き換えられる。
【0005】
従来、駆動デバイスを制御するためにロボット装置に適用されるサーボ制御システムとして以下に示すものが公知である。図13は、従来のサーボ制御システムを示すブロック図である。図13に示すように、従来のサーボ制御システム400では、制御値を計算するサーボ演算器412を有するサーボコントローラ(サーボ制御LSI(large‐scale integrated circuit))401に対して、駆動部であるDCモータ432n(4321〜431N)の動きを検出するポテンショメータ431n(4311〜431N)からセンサ情報が入力される信号線S21n(S211〜S21N)、及びサーボ演算器により計算された制御値を用いてDCモータ432nの動作を制御する制御信号が出力される信号線S22n(S221〜S22N),S23n(S231〜S23N)が各サーボチャンネル毎に入出力独立で用意されている。また、各DCモータ432n(4321〜432N)は、電源電位及びグラウンド電位を供給する夫々電源線S24n(S241〜S24N)及びS25n(S251〜S25N)が接続されている。
【0006】
サーボコントローラ401は、各センサデータが入力され、これをデジタル変換するA/Dコンバータ422と、このA/Dコンバータ422からのデジタルセンサデータが入力され、各センサデータから各制御値を算出するサーボ演算器412と、このサーボ演算器412からの制御値が入力されるコンパレータ(比較器)413と、所定のDCモータ432nを制御する制御値がコンパレータ413から入力され、各DCモータ332nを制御する制御信号を生成するPWM(Pulse Width Modulation)423n(4231〜423N)とを有する。
【0007】
このように構成されたサーボ制御システムにおいては、ポテンショメータ431nからのセンサ情報に基づいてサーボ演算器412で算出された制御値を使用してDCモータ432nの回転を制御することができる。
【0008】
【発明が解決しようとする課題】
しかしながら、従来のサーボ制御システムにおいては、駆動部であるモータ及びセンサとサーボコントローラとの間が全てパラレルで接続されていたため、サーボコントローラと駆動部及びセンサとの間の接続配線数が駆動部の数に比例して増加する。従って、このようなパラレルに接続されるような構造では末端の自由度が高いロボット装置においては、1つのサーボコントローラにより制御できる駆動部の数に限界が生じてしまうという問題点がある。
【0009】
本発明は、このような従来の実情に鑑みて提案されたものであり、サーボコントロールするデバイスと駆動部との間の接続配線数が駆動部数に依存しないロボット装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
上述した目的を達成するために、本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0011】
本発明においては、マスタデバイスとスレーブデバイスとの間をシリアルバス信号線により接続することにより、駆動部の数が増加しても、両者の間の配線数が増加することなく、関節部位等の駆動部を制御する上で、必要なチャンネルの選択を指定できるようにしておくことで、各駆動部に対する柔軟で最適な配線が可能となるため、様々なロボット装置におけるサーボ制御装置であるマスタデバイス及びスレーブデバイスと駆動部との間の最適な配置配線が実現できる。
【0012】
また、上記スレーブデバイスは、該スレーブデバイスに接続されたポテンショメータ等であるセンサから、アクチュエータ等である上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することができ、上記マスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することができる。
【0013】
更に、上記マスタデバイスと上記スレーブデバイスとの間に接続された共通電源線及び共通グラウンド線を有し、上記スレーブデバイスは上記センサに電源電位及び接地電位を供給することにより、マスタデバイスとスレーブデバイスとの間は、データをやりとりするシリアルバス信号線と、電源線及び接地線との合計3本で接続することができる。
【0014】
更にまた、上記通信データはデータ領域と上記駆動部を識別する識別情報を含む識別領域とを有し、上記マスタデバイスが上記スレーブデバイスへ送信する上記通信データのデータ領域には上記駆動部を駆動する制御値が書き込まれ上記マスタデバイスが上記スレーブデバイスから受信する上記通信データのデータ領域には上記駆動部の動きを検出して得られたセンサ情報が書き込まれているものとすることができ、各スレーブデバイスは識別情報により自身が制御する駆動部を識別すことができる。
【0015】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0016】
本発明においては、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間の送受信が、例えば一定期間で行われない場合等にシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【0017】
また、上記制御部は、上記スレーブデバイスに設けられ上記マスタデバイスからの上記通信データの受信があるか否かを検出するか、上記マスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出することができ、マスタデバイス及びスレーブデバイスのいずれにおいても、マスタデバイスとスレーブデバイスとの間の接続を検出することができる。
【0018】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0019】
本発明に係るロボット装置は、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、上記可動部に設けられ上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記第2のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することを特徴する。
【0020】
本発明においては、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【0021】
また、上記可動部は上記本体部と着脱可能であって、上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【0022】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本実施の形態は、本発明を「犬」を模した形状のいわゆるペットロボット装置に適用した例である。図1は本発明の第1の実施の形態におけるロボット装置を示すブロック図、図2は、同ロボット装置の本体部に設けられるホストコントロール部の回路構成を示すブロック図である。また、図3は、同ロボット装置におけるサーボ制御システムを示すブロック図である。
【0023】
図1に示すように、ロボット装置1は、本体部である胴体部ユニット2の前後左右にそれぞれ可動部である脚部ユニット3A,3B,3C,3Dが連結されると共に、胴体部ユニット2の前端部及び後端部にそれぞれ可動部である頭部ユニット4及び尻尾部ユニット5が連結されて構成されている。
【0024】
胴体部ユニット2には、図2に示すように、CPU(Central Processing Unit)10、DRAM(Dynamic Random Access Memory)11、フラッシュROM(Read0nly Memory)12、PC(Personal Computer)カードインターフェース回路13及び信号処理回路(ホストコントロール部)14が内部バス15を介して相互に接続されることにより形成されたコントロール部16と、このロボット装置1の動力源としてのバッテリ17とが収納されている。このコントロール部16のホストコントロール部14には、サーボ制御用LSIからなるサーボコントローラ(マスタデバイス)101が接続されている。また、胴体部ユニット2には、ロボット装置1の向きや動きの加速度を検出するための角速度センサ及び加速度センサ等も収納されている。
【0025】
そして、可動部である脚部ユニット3A,3B,3C,3D、及び頭部ユニット4には、それぞれ1以上のスレーブデバイス102n(なお、図1においては、6つの1021〜1026のみ図示)が配置され、このスレーブデバイス1021〜1026とマスタデバイス101との間は、両者の通信データの送受信を行うシリアルバス信号線SB1により接続されている。
【0026】
また、頭部ユニット4には、外部の状況を撮像するためのCCD(Charge Coupled Device)カメラ20が設けられ、更に、使用者からの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出するためのタッチセンサ、前方に位置する物体までの距離を測定するための距離センサ、外部音を集音するためのマイクロホン、鳴き声等の音声を出力するためのスピーカ、ロボット装置1の「目」に相当するLED(Light Emitting Diode)(図示せず)等がそれぞれ所定位置に配置されている。
【0027】
さらに、各脚部ユニット3A〜3Dの関節部分や各脚部ユニット3A〜3D及び胴体部ユニット2の各連結部分、頭部ユニット4及び胴体部ユニット2の連結部分、並びに尻尾部ユニット5の連結部分などにはそれぞれ自由度数分の駆動部であるアクチュエータ及びポテンショメータ(センサ)が配設され、スレーブデバイス102n又はマスタデバイス101に電気的に接続されている。例えば、アクチュエータは、図3に示すように、サーボモータ103n(1031〜103N)を構成として有し、サーボモータ1031〜103Nの駆動をスレーブデバイス102n(1021〜102N)が制御することにより、脚部ユニット3A〜3Dが制御されて、目標の姿勢或いは動作に遷移する。
【0028】
図2に示すホストコントロール部14は、上述の各センサから供給されるセンサデータや画像データ及び音声データを順次取り込み、これらをそれぞれ内部バス15を介してDRAM11内の所定位置に順次格納する。また、ホストコントロール部14は、これと共にバッテリ17から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをDRAM11内の所定位置に格納する。
【0029】
このようにしてDRAM11に格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、この後CPU10がこのロボット装置1の動作制御を行う際に利用される。
【0030】
実際上CPU10は、ロボット装置1の電源が投入された初期時、胴体部ユニット2の図示しないPCカードスロットに装填されたメモリカード28又はフラッシュROM12に格納された制御プログラムをPCカードインターフェース回路13を介して又は直接読み出し、これをDRAM11に格納する。
【0031】
また、CPU10は、この後、上述のようにホストコントロール部14よりDRAM11に順次格納される各センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、使用者からの指示及び働きかけの有無などを判断する。
【0032】
さらに、CPU10は、この判断結果及びDRAM11に格納した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に基づいて、必要なモータ103nが作動するようにマスタデバイス101に指示値を送り、マスタデバイス101は、この指示値に基づいてモータ103nの制御値を算出してスレーブデバイス102nに出力し、スレーブデバイス102nがこの制御値を使用してモータ103nを駆動させることにより、頭部ユニット4を上下左右に振らせたり、尻尾部ユニット5の尻尾を動かせたり、各脚部ユニット3A〜3Dを駆動させて歩行させるなどの行動を行わせる。
【0033】
また、この際CPU10は、必要に応じて音声データを生成し、これをホストコントロール部14を介して音声信号としてスピーカ24に与えることにより当該音声信号に基づく音声を外部に出力させたり、上述のLEDを点灯、消灯又は点滅させる。
【0034】
このようにしてこのロボット装置1においては、自己及び周囲の状況や、使用者からの指示及び働きかけに応じて自律的に行動し得るようになされている。
【0035】
次に、このようなロボット装置1の動作を制御するサーボ制御システムについて具体的に説明する。図1乃至図3に示すように、ホストコントロール部14には、マスタデバイス(サーボコントローラ)101が接続されている。このマスタデバイス101には複数本のシリアルバス信号線SB1により駆動デバイス用LSIからなる複数のスレーブデバイス102nが接続されている。こうしてマスタデバイス101とスレーブデバイス102nとの間は、両者の間の通信データの送受信を行うための非同期式シリアルバスであるシリアルバス信号線SB1により接続され、マスタデバイス101とスレーブデバイス102nの間の通信データの送受信を行うためのサーボ制御システムが構成されている。
【0036】
このように、サーボ制御システム100は、複数のスレーブデバイス102nが1本のシリアルバス信号線SB1によりマスタデバイス101と接続されている。また、各スレーブデバイス102nは、共通の電源線及びグラウンド線(図示せず)に接続され、ロボット装置システムにおけるモータの電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス102nは、個別に、駆動部であるDCモータ等のモータ103nと、このモータ103nの動きを検出するポテンショメータ等のセンサ104nと、スイッチ(SW)等の入出力機器105とに接続されている。また、マスタデバイス101には、駆動部であるモータ107及びこのモータ107の動きを検出するセンサ108が、スレーブデバイス102nを介さず直接接続されていてもよい。
【0037】
本実施の形態におけるマスタデバイス101は、例えば16チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス101にスレーブデバイス102nを介してか又は直接接続されるモータ103n,センサ104n及びモータ107,センサ108の各組の総数は16となる。
【0038】
マスタデバイス101は、ホストコントロール部14からの指示値に従い、サーボ演算をするLSIである。スレーブデバイス102nは、マスタデバイス101が算出した制御値に基づきモータ103nの駆動を制御する。また、センサ104nからのセンサデータをマスタデバイス101に出力する。即ち、マスタデバイス101は、スレーブデバイス102nからのセンサデータに基づきサーボ演算して制御値を算出し、この制御値(制御信号)をシリアルバス信号線SB1を介してスレーブデバイス102nに返すことにより、モータ103nの駆動を制御するものである。
【0039】
図4は、マスタデバイス101の内部を示すブロック図である。図4において、本実施の形態のマスタデバイス101は、サーボ(Servo)演算器113と、シリアルバスインターフェース114と、PWM(Pulse Width Modulation)115と、A/Dコンバータ116と、ファームウェアを実行するためのCPU、ROM及びRAM等からなる演算部118とを有する。
【0040】
サーボ演算器113は、ホストコントロール部14からの制御信号に従って、シリアルバスインターフェース114から入力されるセンサデータに基づき制御値を算出する。シリアルバスインターフェース114は、サーボ演算器113にて算出された制御値を通信データとしてシリアルバス信号線SB1に出力し、シリアルバス信号線SB1を介して接続されたスレーブデバイス102とマスタデバイス101との間で行われるシリアル通信を制御する。
【0041】
A/Dコンバータ116は、マスタデバイス101にスレーブデバイス102を介さず接続された駆動部であるモータの動き(回転角)等を検出するセンサにて得られたアナログセンサデータを受け取りデジタル変換する。このデジタルセンサデータもサーボ演算器113に入力され、ホストコントロール部14からの制御信号に従って上記モータの制御値が算出され、この制御値はPWM信号を生成するPWM115に入力される。PWM115は、制御値が入力されると、マスタデバイス101にスレーブデバイス102を介さず接続されたモータの駆動を制御するPWM信号を生成する。そして、このPWM信号をモータに入力してマスタデバイス101がモータを直接制御する。ここで、矢印Aは、各モータのサーボ制御を行うデータの流れ(サーボループ)を示す。また、矢印Bは、ホストコントロール部から各モータへ出力されるデータの流れを示し、矢印Cは、各モータからホストコントロール部へ出力されるデータの流れを示す。
【0042】
図5は、モータ等の駆動部の駆動を制御するスレーブデバイスの内部を示すブロック図である。図5に示すように、スレーブデバイス102は、A/Dコンバータ121と、A/Dコンバータインターフェース122と、シリアルバスインターフェース123と、PWM124と、モータ103を駆動するためのモータ駆動部125と、LED及びスイッチ等の入出力機器105からの信号が入力されるPIOインターフェース126と、モータ103用の電源からロジック用電源を生成するレギュレータ127とから構成される。
【0043】
A/Dコンバータ121は、センサ104によりモータ103の動きを検出して得られた検出結果がセンサ104からアナログセンサデータとして入力され、これをデジタル変換する。シリアルバスインターフェース123は、マスタデバイス102とスレーブデバイス101との間でシリアルバス信号線SB1を介して行われるシリアル通信を制御する。即ち、A/Dコンバータインターフェース122から入力されるデジタルセンサデータを通信データとしてシリアルバス信号線SB1を介してマスタデバイス101へ入力し、マスタデバイス101にてサーボ演算されたモータ103の駆動を制御すための制御値を通信データとしてシリアルバス信号線SB1を介して受け取る。
【0044】
PWM125は、マスタデバイス101にて算出された制御値がシリアルバスインターフェース123から入力され、この制御値に基づき、そのパルス幅によってモータ103の駆動(回転数)を制御する制御信号(PWM信号)を生成する。モータ駆動回路125は、制御信号が入力されモータ103を駆動する。PIOインターフェースには、LED及びスイッチのオン・オフ等、入出力機器105から、その状態等を示す信号が入力され、これをシリアルバスインターフェース123に送り、ホストコントロール部14からマスタデバイス101を介して送られる制御信号をシリアルバスインターフェース123から受け取り、この制御信号に基づき入出力機器105を制御する。
【0045】
次に、マスタデバイス101のシリアルバスインターフェース114と、スレーブデバイス102nのシリアルバスインターフェース123nとの間で送受信される通信データについて説明する。
【0046】
マスタデバイス101と各スレーブデバイス100nとのデータ通信は、時分割でタイムスロットを設けることにより複数サーボチャンネルのデータを多重することができる。
【0047】
図6(a)は、タイムスロットにトランザクションを割り付けて、タイムスロットとトランザクションの時間的配置を示す模式図である。各タイムスロットは、マスタデバイス101がスレーブデバイス102からのセンサデータを受信する処理(リードトランザクション)と、マスタデバイス101がスレーブデバイス102へサーボ制御データを送信する処理(ライトトランザクション)とからなる。マスタデバイス101は、個々のスレーブデバイス102に対し、リードトランザクションを行ってポテンショメータの読み取り値(センサデータ)を得てから、次のタイムスロットでライトトランザクションを行って制御値を送信している。
【0048】
次に、リード/ライトトランザクションのデータフォーマットについて説明する。図6(b)は、図6(a)に示す1タイムスロット(1トランザクション)を拡大して時分割シリアルバスの通信データフォーマットを示す模式図であり、図7(a)はマスタデバイスからスレーブデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図、図7(b)は、スレーブデバイスからマスタデバイスへ送られるデータフェーズのデータ部分のフォーマットを示す図である。
【0049】
リード/ライトトランザクションは、アドレスフェーズ50と、センサデータ又は制御値が書き込まれる通信データフェーズ60との2つのフェーズからなる。各フェーズの最後には、1bit時間のIdle State(いかなるデバイスもドライブしない時間)51,61が設けられている。これは、複数のデバイスが同時にバスを駆動することによるデータの衝突を防ぐためである。
【0050】
また、アドレスデータ及び通信データがノイズ等の影響により誤りを起こすと問題となるため、アドレスフェーズ及び通信フェーズには、夫々誤り検出のためのCRC(Cyclic Redundancy Check)符号が挿入される。
【0051】
アドレスフェーズ50においては、アドレス3bit及びRead/Write指示1bitの計4bitに対して生成多項式X3+X+1で生成したCRC3符号(CRC3[2:0])52を付加している。これにより、アドレス部に対して2bit誤りまでの検出を行うことができる。
【0052】
また、データフェーズ60においては、通信データ計11bitに対して、生成多項式X5+X2+1で生成したCRC5符号(CRC5[4:0])62を付加している。これにより、データ部に対して2bit誤りまでの検出を行うことができる。
【0053】
更に、各フェーズの最初には、データ周期の1/2で“L”−“H”−“L”−“H”と変化するスタートパルス53,63を挿入する。各デバイスはデータを受信する際、このスタートパルス53,63を元に受信データのストローブポイントを補正する。
【0054】
アドレスフェーズ50は、スレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)を指定するため、各トランザクションはマスタデバイス101から見て、通信相手となるスレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)のいずれかを指定し、更にスレーブデバイス1021〜102Nに対してRead/Writeの指示を行うためのものである。各スレーブデバイス1021〜102N(又はスレーブデバイス1021〜102Nに接続されたモータ1031〜103N及びポテンショメータ1041〜104Nの各組)は、異なるアドレスを割り当てられることにより特定される。本実施の形態では、スレーブデバイス102nをN=23=8個と仮定し、アドレスビット幅を3bitとしたアドレス(Addr[2:0])54とする。また、Read/Writeの指示信号(R/W)55は、例えば、Read時1、Write時0とすることができる。
【0055】
アドレスフェーズ50は、必ずマスタデバイス101が送信を行う。スレーブデバイス102nは、マスタデバイス101から送られてきたアドレスフェーズ50のアドレス54を元に、現在のトランザクションが自分宛のものであるかどうかの判別を行う。
【0056】
一方、実際の通信やりとりをするデータフェーズ60は、Read時はスレーブデバイス102nが送信し、Write時はマスタデバイス101が送信を行う。
【0057】
通信データフェーズ60は、Read/Writeトランザクション共に、11bitのデータ(Date[10:0])64を有する。リードトランザクション、即ち、スレーブデバイス102nからマスタデバイス101へ送信されるセンサデータは、図7(b)に示すように、センサ103nの出力値をA/D変換したデータ71:10bit(以下、ADC[9:0]という。)と、オプションの汎用入力ポートの読み取り値72:1bit(以下、PINという。)との合計11bitとからなる。
【0058】
また、ライトトランザクション、即ち、マスタデバイス101からスレーブデバイス102nへ送信されるサーボ制御値は、図7(a)に示すように、モータ103nを駆動するためのPWMのパルス値(PWMPuluseWidth[7:0])81:8bitと、モータ103nの回転の向きを示すデータ(DIR)82:1bitと、モータ103nを緊急停止させるためのデータ(STOP)83:1bitと、オプションの汎用出力ポートの出力値(POUT)84:1bitとの合計11bitからなる。
【0059】
こうして、マスタデバイス101が各スレーブデバイス102nのデータを読み取るリードトランザクション、及びマスタデバイス101がスレーブデバイス102nへ制御値を送信するライトトランザクションは共に、スタートパルス(2bit time)53、アドレス(3bit time)54、Read/Write指示信号(1bittime)55、CRC3符号(3bit time)52、IdleState(1bit time)51、スタートパルス(2bit time)63、データ(11bit time)64、CRC5符号(5bit time)62、IdleState(1bit time)61の計29bittimeであり、これが1タイムスロット=29bit timeとなっている。
【0060】
ここで、1bit timeを187.5kHz(=約5.33μs)とすると、例えば8つのスレーブデバイス1021〜1028に対し制御を行うときの各スレーブデバイス1021〜1028への制御値更新周期は、5.33(μs)×29(clocks/transaction)×2(R/W transactions)×8(number of slave devices)=約2.5ms周期となる。
【0061】
1bit timeを変えることにより、制御値更新周期一定のままで、任意の数のスレーブデバイス102nを制御することが可能である。
【0062】
また、シリアルバス信号線SB1はマスタ、スレーブ各デバイスのOpen−DrainBufferにより駆動され、シリアルバス信号線SB1は外部でプルアップされているので、どのデバイスも通信データを送信していないときは自動的にHレベルとなる。
【0063】
次に、このように構成されたサーボ制御システムの動作について説明する。先ず、図5に示すように、センサ104がモータ103の動きを検出した検出結果であるアナログセンサデータがスレーブデバイス102のA/Dコンバータ121に入力されるとA/Dコンバータ121はアナログセンサデータをデジタル変換する。デジタルセンサデータは、A/Dコンバータインターフェース122を介してシリアルバスインターフェース123へ入力される。シリアルバスインターフェース123は、通信データのアドレスから、自身に割り当てられたアドレスを識別し、そのRead時のデータフェーズにデジタルセンサデータを書き込み(配置し)、シリアルバス信号線に出力する(送信する)。
【0064】
次いで、図4に示すように、マスタデバイス101のシリアルバスインターフェース114がシリアルバス信号線SB1から通信データとしてデジタルセンサデータを受け取り、デジタルセンサデータをサーボ演算器113に入力する。サーボ演算器113はホストコントロール部14から供給される指令値に応じて、上記デジタルセンサデータに基づきモータの駆動を制御するための制御値を算出し、シリアルバスインターフェース114へ通信データとして出力する。シリアルバスインターフェース114は、通信データのアドレスフェーズにおけるアドレスを識別し、この制御値を算出したセンサデータが書き込まれていたアドレスと同じアドレスを有する通信データのWrite時のデータフェーズに、この制御値を書き込み(配置し)、シリアルバス信号線SB1へ出力する(送信する)。
【0065】
図5に戻って、スレーブデバイス101のシリアルバスインターフェース123は、シリアルバス信号線SB1に送られる通信データから、自身(スレーブデバイス102n又はスレーブデバイス102nに接続されたモータ103n及びセンサ104nの組)に割り当てられたアドレスを識別して受け取り、PWM124に出力する。PWM124はこの制御値に基づき制御信号(PWM信号)を生成して駆動ドライブ125に出力し、駆動ドライブからモータ103へ制御信号が出力されてモータ103の回転等を制御する。
【0066】
このように構成された第1の実施の形態のロボット装置においては、マスタデバイス101とスレーブデバイス102nとの間をシリアルバス信号線SB1により接続することにより、ロボット装置1の各関節部位の配線数をマスタデバイス101にスレーブデバイス102nを介さず個別に駆動部及びセンサを接続するよりも、ロボット装置1の各関節部位の配線数を少なくすることができる。
【0067】
次に、第1の実施の形態における図3に示すサーボ制御システムの変形例について説明する。図8は、変形例のサーボ制御システムを示すブロック図である。
【0068】
図8に示すように、サーボ制御システム300は、1つのマスタデバイス310と、複数個のスレーブデバイス320nと、マスタデバイス310とスレーブデバイス320nとの間で通信データの送受信をする2本のシリアルバス信号線SB111、SB112とを有する。本変形例のマスタデバイス310は最大で16チャンネルのサーボ制御チャンネルを有するものとする。マスタデバイス310は、2本(2ブランチ)のシリアルバス信号線SB111,SB112に接続されており、各シリアルバス信号線SB111,SB112は、最大8チャンネルのスレーブデバイス320nが接続可能となっている。ここで、本変形例においては、スレーブデバイス320nは、2つのポテンショメータ(センサ)331n,332nからセンサデータが入力され、各センサデータをデジタル変換するA/D変換器(ADC)322n,323nが設けられ、シリアルバスインターフェース321nにはデジタル変換された2つのセンサデータが入力される。シリアルバスインターフェース321nは、シリアルバス信号線SB111(又はSB112)に2つのセンサデータを出力し、各センサデータからマスタデバイス310にて算出された各制御値を受け取る。そして、これらの制御値から、モータ333n,334nの制御信号を生成し、モータ駆動回路(MD)からモータ333n,334nへ制御信号を出力してモータ333n,334nの駆動を制御する。このように、本変形例のスレーブデバイス320nは、2チャンネル分の制御値が入力されるものである。ここで、上述したように、通信データは、アドレスフェーズとデータフェーズとからなるデータであって、スレーブデバイス320nのシリアルバスインターフェース321nは、マスタデバイス310から送信される通信データにおいて、自身に接続されたモータ333n及び331nの組、並びにモータ334n及び331nの組に割り当てられた各アドレスを識別し、Read時に通信データのデータフェーズにセンサデータを書き込み、次のタイムスロットの同アドレスのWrite時にそのデータフェーズに書き込まれた制御値を受け取るものである。
【0069】
このスレーブデバイス320nとマスタデバイス310とにおいても、両者をシリアルバス信号線SB111,SB112にて接続しているため、上述の実施の形態と同様に、各デバイスの制御部により、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線SB111,SB112の断線を検出することができる。
【0070】
また、例えば、駆動部がマスタデバイスの近傍に配置されている場合等、シリアルバス信号線SB111,SB112を介さず、マスタデバイス310に直接センサデータを入力して駆動部を制御することも可能である。本変形例の場合は、上述したように、マスタデバイス310は、16チャンネルのサーボ制御チャンネルを有するので、最大16チャネルのモータ駆動回路(MD)340mに接続することができる。モータ駆動回路340mは、モータ341mの回転を検出するポテンショメータ(センサ)342mからのセンサデータをマスタデバイス310に送信し、マスタデバイス310のサーボ演算器(図示せず)により算出された制御値をマスタデバイス310から受け取る。各モータ駆動回路340mは、モータ341mの駆動を制御する制御信号を生成するPWM等を有し、制御値から制御信号を生成して各モータ駆動回路340mに接続されたモータ341mを制御する。
【0071】
また、マスタデバイス320は、各種センサ、SW、LED及びIICデバイス等のデバイス330に接続され、センサ及びSWからデータが入力されると共にLED及びIICへ制御信号を出力する。また、上位ホストコントローラ340と接続され、上述したように、各デバイスの制御部等にて検出したマスタデバイスとスレーブデバイスとの間の接続状態を上位ホストコントローラ340に出力する。
【0072】
本変形例においては、例えばマスタデバイス310から離れて配置される駆動部に対してサーボ制御する場合等にはシリアルバス信号線SB111,SB112を介してスレーブデバイス320nを配置することにより、配線の引き回し等により装置の大型化、高コスト化等を抑制すると共に、上述の実施の形態と同様にスレーブデバイス320nとマスタデバイス310との間の接続状態を容易に検出することができる。
【0073】
次に、本発明の第2の実施の形態について説明する。図9は、本実施の形態のロボット装置200を示すブロック図である。なお、図9乃至図11に示す第2の実施の形態において、図1乃至5に示す第1の実施の形態と同一構成要素には同一の符号を付しその詳細な説明は省略する。
【0074】
ロボット装置200は、複数のマスタデバイスを有する。このマスタデバイスは、ホストコントロール部14に接続された第1のマスタデバイス211と、この第1のマスタデバイスに接続された複数の第2のマスタデバイス201とからなる。第2のマスタデバイス201は、ロボット装置200の例えは脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5の5カ所に設けられ、これらの各マスタデバイス201には、複数のスレーブデバイス202が接続されている。脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5は、胴体部ユニット2から着脱可能(分離可能)な構成となっている。
【0075】
第1のマスタデバイス211と第2のマスタデバイス201との間は、ソニー株式会社が提供するエンタテーメントロボット用の規格であるOPEN―RシステムのOPEN−Rバス信号線により接続されており、第2のマスタデバイス201とスレーブデバイス202n(図9には、2021〜2026のみ図示)との間は、第1の実施の形態と同様のシリアルバス信号線SB1により接続されている。
【0076】
図10は、本実施の形態のサーボ制御システムを示すブロック図である。図10に示すように、サーボ制御システム200は、複数のスレーブデバイス202nが1本のシリアルバス信号線SB1によりマスタデバイス201と接続されている。また、各スレーブデバイス202nは、共通の電源線及びグラウンド線に接続され、ロボット装置のシステムのモータ電源等から電源電位及びグラウンド電位が供給されている。各スレーブデバイス202nは、個別に駆動部であるモータ103n、このモータ103nの動きを検出するポテンショメータ等のセンサ104n、及びスイッチ等の入出力機器(SW)105に接続されている。
【0077】
胴体部ユニット2に設けられ、ホストコントロール部14と接続された第1のマスタデバイス211と、着脱可能な脚部ユニット3A〜3D,頭部ユニット4及び尻尾部ユニット5(以下、可動部ともいう。)に設けられた第2のマスタデバイスとの間は、グランド線及び電源線(図示せず)とデータ線となるOPEN−Rバス信号線S2とを有するOPEN−Rコネクタ(図示せず)で接続され、胴体部ユニット2からいずれかの着脱部材を抜き出す際は、グランド線は電源線及びOPEN−Rバス信号線S2に比べて最後まで接続され、胴体部ユニット2にいずれかの着脱部材を装着する際は、上記グランド線は電源線及びOPEN−Rバス信号線S2に比べて最初に接続されるように構成されている。
【0078】
このように、マスタデバイス201は、OPEN−Rバス信号線S2を介して、ホストコントロール部14に接続されたマスタデバイス211と接続されている。また、マスタデバイス201、211には、駆動部であるモータ107及びセンサ108が直接接続されていてもよい。このマスタデバイス211は、例えば16チャンネルの駆動部の駆動を制御することができるものとし、従って、マスタデバイス211にマスタデバイス201及びスレーブデバイス202nを介して接続されモータ103、及びマスタデバイス211若しくは201に直接接続されるモータ107の総数は16となる。
【0079】
図11は、マスタデバイスの内部を示すブロック図である。マスタデバイス201は、サーボ演算器113、シリアルバスインターフェース114、パルス発生器115、A/Dコンバータ116、及び演算部118の他に、OPEN−Rデバイスコントローラ111と、バッファ112,117と、IIEEPROM(電気消去可能プログラマブル読出し専用メモリ(electrically erasable programmable read−only memory))との間の通信を制御するIICインターフェース119とを有する。
【0080】
OPEN−Rデバイスコントローラ111は、OPEN−Rバス信号線S2に接続されている。バッファ112は、OPEN−Rデバイスコントローラ111とサーボ演算器113との間に接続され、図9に示すホストコントロール部14から入力されて各駆動部へ出力されるデータのタイミングを制御する。バッファ117は、サーボ演算器113及びA/Dコンバータ116と、OPEN−Rデバイスコントローラ111との間に接続され、駆動部であるモータ等の動きを検出した検出結果がセンサから入力され、ホストコントロール部14へ出力されるデータのタイミングを制御する。図中の矢印D、E及びFは、夫々ホストコントロール部14から各駆動部(モータ)へ出力されるデータの流れ、各駆動部(モータ)からホストコントロール部14へ出力されるデータの流れ、各駆動部(モータ)のサーボ制御を行うデータの流れ(サーボループ)を示す。
【0081】
また、全ての第2のマスタデバイス201がOPEN−Rバス信号線S2を介して接続される第1のマスタデバイス211には、OPEN−Rバスコントローラが設けられており、OPEN−Rバスコントローラは胴体部ユニット2に設けられCPU10により制御されている。マスタデバイス211のOPEN−Rバスコントローラは、マスタデバイス201のOPEN−Rデバイスコントローラ111を介し、モータ103の回転を制御したり、各種のセンサの検出出力を認識している。
【0082】
マスタデバイス間をOPEN−Rバス信号線S2により接続するOPEN−Rシステムは、OPEN−Rシステムコア及びOPEN−Rバスデバイスから構成される。ここで、OPEN−Rバスデバイスとは、OPEN−Rコネクタというロボット部品接続コネクタを有するCPC(Configurable Physical Component)であり、OPEN−RコネクタによってOPEN−Rシステムコアに接続可能なロボット部品をいう。OPEN−Rシステムコアは、マスタデバイス211に相当し、OPEN−Rバスの制御を行うOPEN−Rバスコントローラ(OPEN−Rバスホストコントローラ)により、最大で127個のOPEN−Rバスデバイスと接続することができる。
【0083】
OPEN−RバスホストコントローラとOPEN−Rバスデバイスとは、具体的には階層スタートポロジーという物理的接続形態をとっている。各スターの中心には、「ハブ」というデバイスが配置される。ここにいう「ハブ」は、着脱可能の可動部である脚部ユニット3A,3B,3C,3D、頭部ユニット4に設けられる各マスタデバイス201のOPEN−Rデバイスコントローラ111に相当する。ここで、ホスト又はハブの下方への接続インターフェースは、ダウンストリームポートという。デバイスの上方への接続インターフェースは、アップストリームポートという。なお、OPEN−Rバスシステムでは、ループ接続は禁止されている。また、OPEN−Rコネクタは、例えば10本のピンを備え、OPEN−Rバス信号線S2のデータは、差動信号D+,D−からなる。そのデータレートは12Mbpsであり、また、その特性は、Universal Serial Bus Specification 1.0のフルスピードに準拠している。
【0084】
D+ライン及びD−ラインは、上位側(ホスト又はハブのダウンストリームポート)において、1.5kΩでプルダウンされている。また、デバイス側では、D+ラインは、15kΩでプルアップされている。
【0085】
クロック信号CLKは、12MHzであり、外部デバイスのクロックソースとして使用されることもある。OPEN−Rバス信号線S2には、電源ソースとして、電源電圧VDD(3V)及び電源電圧VPWR(5V)が供給される。さらに、各電源ライン(電源線)に対して、それぞれグランドライン(グランド線)DGND,PWRGNDも設けられている。さらに、OPEN−Rコネクタは、10本のピンのうち、DGNDピン及びPWRGNDピンが高く(長く)構成されている。
【0086】
例えば、胴体部ユニット2と脚部ユニット3Aとを接続するOPEN−Rコネクタが抜かれた場合には、グランドラインであるDGNPピン及びPWRGNDピンが最後まで接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。そして、CPU10は、脚部ユニット3Aがない状態を認識して、当該脚部ユニット3Aがないときの動作モードに正常に移行することができる。
【0087】
一方、ユーザがOPEN−Rコネクタを差し込む場合にあっては、グランドラインであるDGNPピン及びPWRGNDピンが最初に接続されているので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【0088】
そして、CPU10は、脚部ユニット3Aが接続された状態を認識すると、脚部ユニット3Aの初期化を行い、メモリから初期状態のデータを読み出して、当該脚部ユニット3Aがあるときの動作モードに正常に移行する。このとき、CPU10は、交換されていない頭部ユニット4,脚部ユニット3B,3C,3Dの初期化を行わないので、脚部ユニット3Aを交換したときの初期化動作については、電源投入時に比べて短時間で行うことができる。また、CPU10は、胴体部ユニット2や頭部ユニット4等に記憶しているデータであって、脚部ユニット3Aの交換前の学習によって生成されたデータについては消去しないので、脚部ユニット3Aの交換後であっても当該データを有効に利用することができる。
【0089】
また、DGNDピン及びPWRGNDピンだけでなく、電源ラインであるVDDピン及びVPWRピンも高くしてもよい。これにより、ユーザがOPEN−Rコネクタを抜く場合にあっては、CLKピン、D+ピン、D−ピンを抜いてからVDDピン、DGNDピン、VPWRピン、PWRGNDピンを抜くので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。一方、ユーザがOPEN−Rコネクタを差し込む場合にあっては、VDDピン、DGNDピン、VPWRピン、PWRGNDピンが接続されてから、CLKピン、D+ピン、D−ピンが接続されるので、電源が投入されたままの状態であっても、ショート等による故障を回避することができる。
【0090】
本実施の形態においては、第1の実施例と同様の効果を奏すると共に、OPEN−Rシステムにより、ロボット装置のコンフィギュレーションを自由に変更可能であり、シリアルバスであるOPEN−Rバス信号線S2の先に様々なデバイスを自由に接続することが可能となる。また、それらの構成情報をホスト側で管理することでロボット装置200のハードモジュールの脱着をサポートすることができる。そして、ロボット内部のデバイスへのアクセスにこのようなOPEN−Rバス信号線S2を採用することにより、配線が容易になる。
【0091】
また、図12に示すように、マスタデバイス101のみを使用し、シリアルバス信号線を使用せず、全てのモータ103を制御することも可能であり、この場合はコストを最低限に抑えることができる。このように、例えば、低コストを重点に置くならば、図12に示すようなサーボ制御システムとし、ロボット装置のスペックに重点を置く場合は、マスタデバイスを1つのみ使用し、シリアルバス信号線にてスレーブデバイスと接続することにより配線数を少なくした第1の実施の形態におけるサーボ制御システムを適用する等することにより、ロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【0092】
なお、上述の実施の形態においては、4足歩行のロボット装置を例に挙げたが、2足、6足等様々な自由度のロボットでも同じように実現できることはいうまでもない。
【0093】
また、上述した全ての実施の形態において、駆動デバイス用LSI(スレーブデバイス)を新規に開発することにより、様々な駆動デバイスについても制御できる。即ち、上述の例では、駆動部としてDCモータを例に挙げたが、例えば三相交流モータ及びエンコーダ等にも応用できることはいうまでもない。
【0094】
【発明の効果】
以上詳細に説明したように本発明によれば、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、それぞれのロボットシステムに適した最適な配置配線が実現できると同時に、商品戦略に沿ったロボット装置の製造コストについても選択することができる。
【0095】
また、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動するので、マスタデバイス及びスレーブデバイス間がシリアルバス信号線で接続されているため、両者の間で送受信が一定期間で行われない場合はシリアルバス信号線の断線を検出することができ、これにより、ロボット装置の駆動部における接続検出ができるため、断線が発生したとき駆動部が暴走する問題を防止することができる。
【0096】
更に、本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する駆動部とを有するロボット装置において、上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、上記可動部に設けられ1以上の上記駆動部の駆動を制御するスレーブデバイスと、上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、上記マスタデバイスは、上記本体部に設けられた第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動するか、又は上記マスタデバイスは、上記本体部に設けられ上記ホストコントロール部と接続された第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、上記第2のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動することにより、可動部の大きさ、形状及び数、並びに駆動部の数及び駆動部とマスタデバイス又はスレーブデバイスとの間の距離等により、マスタデバイスを複数個設け、マスタデバイスを本体部だけではなく可動部に設けることもでき、ロボット装置において製造コスト等を考慮して、最適な配線配置とすることができる。
【0097】
更にまた、上記可動部は上記本体部と着脱可能であって、上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されることができ、本体部の電源を切ることなく着脱部材を着脱又は装着してもショート等の問題を回避することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるロボット装置を示すブロック図である。
【図2】同ロボット装置の回路構成を示すブロック図である。
【図3】本発明の第1の実施の形態におけるサーボ制御システムを示すブロック図である。
【図4】本発明の第1の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図5】本発明の第1の実施の形態におけるスレーブデバイスの内部を示すブロック図である。
【図6】(a)はタイムスロットとトランザクションの時間的配置を示す模式図、(b)は、1タイムスロット(1トランザクション)を拡大して示す模式図である。
【図7】(a)はマスタデバイスからスレーブデバイスへ送られるデータのフォーマットを示す図、(b)は、スレーブデバイスからマスタデバイスへ送られるデータのフォーマットを示す図である。
【図8】本発明の第1の実施の形態の変形例におけるサーボ制御システムを示すブロック図である。
【図9】本発明の第2の実施の形態におけるロボット装置を示すブロック図である。
【図10】本発明の第2の実施の形態におけるサーボ制御システムを示すブロック図である。
【図11】本発明の第2の実施の形態におけるマスタデバイスの内部を示すブロック図である。
【図12】マスタデバイスのみを使用して駆動部を制御する場合のロボット装置を示すブロック図である。
【図13】従来のロボット装置のサーボ制御システムを示すブロック図である。
【符号の説明】
1,200 ロボット装置、2 胴体部ユニット、3A,3B,3C,3D 脚部ユニット、4 頭部ユニット、10 CPU10、14 ホストコントロール部、5 尻尾部ユニット、101,201,211 マスタデバイス、102n,202nスレーブデバイス、103,107 モータ、104nセンサ、105 入出力機器、100,200 サーボ制御システム、111 OPEN−Rデバイスコントローラ、112,117 バッファ、113 サーボ演算器、114 シリアルバスインターフェース、115 パルス発生器、116 A/Dコンバータ、118 演算部、119 12Cインターフェース、121A/Dコンバータ、122 A/Dコンバータインターフェース、123 シリアルバスインターフェース、124 PWM、125 駆動ドライブ、126PIOインターフェース、127 レギュレータ、SB1 シリアルバス信号線、S2 OPEN−Rバス信号線
Claims (18)
- 本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記スレーブデバイスは、上記マスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。 - 上記スレーブデバイスは、該スレーブデバイスに接続されたセンサから上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することを特徴とする請求項1記載のロボット装置。
- 上記マスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することを特徴とする請求項2記載のロボット装置。
- 上記センサはポテンショメータであることを特徴とする請求項2記載のロボット装置。
- 上記駆動部はアクチュエータであることを特徴とする請求項1記載のロボット装置。
- 上記マスタデバイスと上記スレーブデバイスとの間に接続された共通電源線及び共通グラウンド線を有し、上記スレーブデバイスは上記センサに電源電位及び接地電位を供給することを特徴とする請求項1記載のロボット装置。
- 上記通信データはデータ領域と上記駆動部を識別する識別情報を含む識別領域とを有し、
上記マスタデバイスが上記スレーブデバイスへ送信する上記通信データのデータ領域には上記駆動部を駆動する制御値が書き込まれ、
上記マスタデバイスが上記スレーブデバイスから受信する上記通信データのデータ領域には上記駆動部の動きを検出して得られたセンサ情報が書き込まれている
ことを特徴とする請求項1記載のロボット装置。 - 本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線と、
上記マスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部とを有し、
上記スレーブデバイスは、上記マスタデバイスからの上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。 - 上記制御部は、上記スレーブデバイスに設けられ上記マスタデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項8記載のロボット装置。 - 上記制御部は、上記マスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項8記載のロボット装置。 - 本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記マスタデバイスは、上記本体部に設けられた第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、
上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。 - 上記スレーブデバイスは、該スレーブデバイスに接続されたセンサから上記駆動部の動きを検出した検出結果であるセンサ情報を上記通信データとして出力することを特徴とする請求項11記載のロボット装置。
- 上記第2のマスタデバイスは、上記センサ情報を上記通信データとして受け取り該センサ情報に基づき上記制御値を算出することを特徴とする請求項12記載のロボット装置。
- 上記可動部は上記本体部と着脱可能であって、
上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、
上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されること
を特徴とする請求項11記載のロボット装置。 - 本体部に対して可動とされた1以上の可動部と、上記可動部を駆動する1以上の駆動部とを有するロボット装置において、
上記本体部に設けられ上記駆動部の駆動を制御する制御値を算出するマスタデバイスと、
上記可動部に設けられ上記駆動部の駆動を制御する1以上のスレーブデバイスと、
上記スレーブデバイスと上記マスタデバイスとの間の通信データの送受信を行うシリアルバス信号線とを具備し、
上記マスタデバイスは、上記本体部に設けられホストコントロール部と接続された第1のマスタデバイスと、上記第1のマスタデバイスに接続され上記可動部に設けられた第2のマスタデバイスとを有し、
上記第2のマスタデバイスと上記スレーブデバイスとの間の上記通信データの送受信があるか否かを検出する制御部を有し、
上記スレーブデバイスは、上記第2のマスタデバイスに接続され、上記第2のマスタデバイスから上記制御値を上記通信データとして受け取り上記駆動部を駆動する
ことを特徴するロボット装置。 - 上記制御部は、上記スレーブデバイスに設けられ上記第2のマスタデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項15記載のロボット装置。 - 上記制御部は、上記第2のマスタデバイスに設けられ上記スレーブデバイスからの上記通信データの受信があるか否かを検出する
ことを特徴とする請求項15記載のロボット装置。 - 上記可動部は上記本体部と着脱可能であって、
上記第1のマスタデバイスと第2のマスタデバイスとの間は、グランドラインと電源ラインとデータラインとを有するコネクタで接続され、
上記本体部からいずれかの着脱部材を抜き出す際は、上記グランドラインは上記電源ライン及び上記データラインに比べて最後まで接続され、上記本体部にいずれかの着脱部材を装着する際は、上記グランドラインは上記電源ライン及び上記グランドラインに比べて最初に接続されるように構成されること
を特徴とする請求項15記載のロボット装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003088576A JP2004001195A (ja) | 2002-03-27 | 2003-03-27 | ロボット装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002090025 | 2002-03-27 | ||
JP2003088576A JP2004001195A (ja) | 2002-03-27 | 2003-03-27 | ロボット装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004001195A true JP2004001195A (ja) | 2004-01-08 |
Family
ID=30446176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003088576A Withdrawn JP2004001195A (ja) | 2002-03-27 | 2003-03-27 | ロボット装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004001195A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011067943A (ja) * | 2009-09-22 | 2011-04-07 | Gm Global Technology Operations Inc | インターアクティブロボット制御システム及び使用方法 |
JP2015085482A (ja) * | 2013-11-01 | 2015-05-07 | セイコーエプソン株式会社 | ロボット、制御装置及びロボットシステム |
US9417944B2 (en) | 2011-10-05 | 2016-08-16 | Analog Devices, Inc. | Two-wire communication system for high-speed data and power distribution |
US9772665B2 (en) | 2012-10-05 | 2017-09-26 | Analog Devices, Inc. | Power switching in a two-wire conductor system |
US9946680B2 (en) | 2012-10-05 | 2018-04-17 | Analog Devices, Inc. | Peripheral device diagnostics and control over a two-wire communication bus |
US9975240B2 (en) | 2013-11-01 | 2018-05-22 | Seiko Epson Corporation | Robot, controller, and robot system |
JP2018207770A (ja) * | 2017-05-30 | 2018-12-27 | インフィネオン テクノロジーズ オーストリア アクチエンゲゼルシャフト | 電力線制御電気駆動インバータ |
WO2021090968A1 (ko) * | 2019-11-04 | 2021-05-14 | (주)로보티즈 | 로봇 시스템의 구동부 연동 모듈 및 방법 |
-
2003
- 2003-03-27 JP JP2003088576A patent/JP2004001195A/ja not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011067943A (ja) * | 2009-09-22 | 2011-04-07 | Gm Global Technology Operations Inc | インターアクティブロボット制御システム及び使用方法 |
US9417944B2 (en) | 2011-10-05 | 2016-08-16 | Analog Devices, Inc. | Two-wire communication system for high-speed data and power distribution |
US9875152B2 (en) | 2011-10-05 | 2018-01-23 | Analog Devices, Inc. | Methods for discovery, configuration, and coordinating data communications between master and slave devices in a communication system |
US9946679B2 (en) | 2011-10-05 | 2018-04-17 | Analog Devices, Inc. | Distributed audio coordination over a two-wire communication bus |
US10311010B2 (en) | 2011-10-05 | 2019-06-04 | Analog Devices, Inc. | Two-wire communication systems and applications |
US9772665B2 (en) | 2012-10-05 | 2017-09-26 | Analog Devices, Inc. | Power switching in a two-wire conductor system |
US9946680B2 (en) | 2012-10-05 | 2018-04-17 | Analog Devices, Inc. | Peripheral device diagnostics and control over a two-wire communication bus |
JP2015085482A (ja) * | 2013-11-01 | 2015-05-07 | セイコーエプソン株式会社 | ロボット、制御装置及びロボットシステム |
US9975240B2 (en) | 2013-11-01 | 2018-05-22 | Seiko Epson Corporation | Robot, controller, and robot system |
JP2018207770A (ja) * | 2017-05-30 | 2018-12-27 | インフィネオン テクノロジーズ オーストリア アクチエンゲゼルシャフト | 電力線制御電気駆動インバータ |
JP7176863B2 (ja) | 2017-05-30 | 2022-11-22 | インフィネオン テクノロジーズ オーストリア アクチエンゲゼルシャフト | 電力線制御電気駆動インバータ |
WO2021090968A1 (ko) * | 2019-11-04 | 2021-05-14 | (주)로보티즈 | 로봇 시스템의 구동부 연동 모듈 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10850394B2 (en) | Driving device | |
JP2006500679A (ja) | Usb接続のためのインタフェース集積回路デバイス | |
JP2004001195A (ja) | ロボット装置 | |
US7996111B2 (en) | Robotic device | |
US20020068993A1 (en) | Robot apparatus, body unit and coupling unit | |
JP2001156872A (ja) | 通信プロトコル変換システム、モニタ装置 | |
JP2004088208A (ja) | データ伝送システム及びデータ伝送方法 | |
JP2003071773A (ja) | ロボット装置 | |
WO2002030630A1 (fr) | Appareil robot et procede de commande du mouvement de l"appareil robot | |
CN111666215A (zh) | 用于分布式算法测试和人机交互研究的桌面集群硬件平台 | |
JP2002154081A (ja) | ロボットならびにその表情表現方法および段差と持ち上げ状態の検出方法 | |
JP2021140124A (ja) | プログラミング学習装置 | |
JP4281210B2 (ja) | アクチュエータ駆動制御方式、並びにアクチュエータのための駆動制御装置 | |
JP2003288103A (ja) | 情報処理装置及びその方法 | |
WO2000067962A1 (fr) | Robot | |
JP2000324896A (ja) | データ伝送システムおよび画像形成装置 | |
WO2021005824A1 (ja) | 信号処理装置 | |
JP7171767B2 (ja) | ロボット | |
US6633581B2 (en) | Serial communication apparatus | |
CN112834024A (zh) | 基于振动阵列的可穿戴式多维力反馈装置及方法 | |
CN107283424B (zh) | 机器人控制系统 | |
JPH11167548A (ja) | データ伝送システム | |
JP2004171158A (ja) | Usb機器 | |
JP2000158367A (ja) | ロボット装置及びその制御方法 | |
JPH10207505A (ja) | ロボット装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060606 |