JP2004276186A - Robot controller - Google Patents

Robot controller Download PDF

Info

Publication number
JP2004276186A
JP2004276186A JP2003072725A JP2003072725A JP2004276186A JP 2004276186 A JP2004276186 A JP 2004276186A JP 2003072725 A JP2003072725 A JP 2003072725A JP 2003072725 A JP2003072725 A JP 2003072725A JP 2004276186 A JP2004276186 A JP 2004276186A
Authority
JP
Japan
Prior art keywords
controller
slave
robot
master controller
communication
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.)
Granted
Application number
JP2003072725A
Other languages
Japanese (ja)
Other versions
JP3764150B2 (en
Inventor
Hideaki Hashimoto
英昭 橋本
Fumio Ozaki
文夫 尾崎
Hirokazu Sato
広和 佐藤
Jiyunji Ooaki
準治 大明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003072725A priority Critical patent/JP3764150B2/en
Publication of JP2004276186A publication Critical patent/JP2004276186A/en
Application granted granted Critical
Publication of JP3764150B2 publication Critical patent/JP3764150B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a robot controller, managing the development environment as a centralized type while taking the reconfigurable distributed type constitution in hardware. <P>SOLUTION: This robot controller includes: a master controller 102; slave controllers 201a to 201d connected to the master controller by communicating means 106 to 108 and 202a to 202d and having a function of reconfiguration by information from the master controller side; and a software development device 101 connected to the master controller. In the software development device 101, the slave controllers 201a to 201d are virtually recognized as a part of the master controller 102 by hiding the communicating means 106 to 108, 202a to 202d. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、マスタコントローラと、マスタコントローラと通信で結ばれ、マスタコントローラからの情報による再構成、又はスレーブコントローラ自身の自律的な判断による再構成が可能なスレーブコントローラと、マスタコントローラに接続されたソフトウェア開発装置とで構成され、スレーブコントローラが、ソフトウェア開発装置からバーチャルにマスタコントローラの一部として扱えるようにしたロボットコントローラに関する。
【0002】
【従来の技術】
従来のロボットコントローラは、CPUを1個だけ用いる集中型のものが一般的であったが、最近のロボットシステムの高度化、複雑化、大規模化に伴い、CPUを複数個利用する分散型のロボットコントローラが使われるようになってきた(例えば特許文献1参照)。
【0003】
また、多様な用途に対応できるようにFPGA(Field Programmable Gate Array)を利用し、用途に応じてコントローラ部を再構成可能にしたものもある(例えば特許文献2参照)。
【0004】
【特許文献1】
特開2001−92795号公報
【0005】
【特許文献2】
特開2001−322078号公報
【0006】
【発明が解決しようとする課題】
しかしながら、こうした分散型のロボットコントローラは、集中型のものに比べて処理能力が向上し、フレキシビリティもアップするが、大規模化に伴い開発時に全体を統一的に管理することが困難になる場合が多い。そのため、システムにトラブルが発生した際、その原因やソフトウェアのバグを見つけるまでに従来の集中型のものより長い時間を必要とするという問題があった。
【0007】
本発明は、このような点に鑑みてなされたものであり、その目的は、ハード的には再構成可能な分散型の構成を採りながら、開発環境は集中型として管理することのできるロボットコントローラを提供することにある。
【0008】
【課題を解決するための手段】
本発明は上記課題を解決するものであって、請求項1に係る発明は、マスタコントローラと、通信手段で前記マスタコントローラに接続され、マスタコントローラ側からの情報で再構成可能な機能を持つスレーブコントローラと、前記マスタコントローラに接続されたソフトウェア開発装置とを備え、前記ソフトウェア開発装置は、前記通信手段を隠蔽することで、スレーブコントローラがバーチャルにマスタコントローラの一部として認識されるように構成したロボットコントローラである。
【0009】
請求項2に係る発明は、マスタコントローラと、通信手段で前記マスタコントローラに接続され、コントロール対象となる機器の状態に応じて自律的に再構成可能なスレーブコントローラと、前記マスタコントローラに接続されたソフトウェア開発装置とを備え、前記ソフトウェア開発装置は、前記通信手段を隠蔽し、スレーブコントローラが自律的に再構成した結果がマスタコントローラを通じてソフトウェア開発装置に情報伝達されることで、スレーブコントローラがバーチャルにマスタコントローラの一部として認識されるように構成したロボットコントローラである。
【0010】
請求項3に係る発明は、請求項1又は請求項2に記載のロボットコントローラにおいて、前記通信手段はルーティング機能を持つため複数個のスレーブコントローラを接続可能であり、この接続はプラグアンドプレイが可能で、前記ソフトウェア開発装置は、スレーブコントローラがプラグアンドプレイで接続された情報により、複数個のスレーブコントローラがバーチャルにマスタコントローラの一部として認識され、集中型のコントローラとして処理できるように構成したロボットコントローラである。
【0011】
請求項4に係る発明は、請求項1〜請求項3のいずれかに記載のロボットコントローラにおいて、マスタコントローラとスレーブコントローラ間の通信、およびスレーブコントローラの再構成は、システムで規定された時間間隔内でリアルタイムに実行されるロボットコントローラである。
【0012】
請求項5に係る発明は、請求項1〜請求項3のいずれかに記載のロボットコントローラにおいて、マスタコントローラの通信は複数の仕様に対応していて、通信タイプの違う複数のスレーブコントローラが接続可能であり、これら複数のスレーブコントローラがバーチャルにマスタコントローラの一部として認識され、集中型のコントローラとして処理できるように構成したロボットコントローラである。
【0013】
請求項6に係る発明は、請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、マスタコントローラを再構成可能としたロボットコントローラである。
【0014】
請求項7に係る発明は、請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、スレーブコントローラの通信部分はマスタコントローラからの再構成情報に応じて再構成し、以降の通信でマスタコントローラから送られてくるデータを再構成した状態でデシリアライズしてスレーブコントローラの処理部に渡すロボットコントローラである。
【0015】
請求項8に係る発明は、請求項6に記載のロボットコントローラにおいて、マスタコントローラの通信部分およびスレーブコントローラの通信部分は、マスタコントローラの再構成情報に応じていずれも再構成し、以降の通信ではマスタコントローラ側の通信部分は再構成した状態でデータをシリアライズし、スレーブコントローラ側では再構成した状態でデシリアライズしてデータをスレーブコントローラの処理部に渡すロボットコントローラである。
【0016】
請求項9に係る発明は、請求項7又は請求項8に記載のロボットコントローラにおいて、マスタコントローラとスレーブコントローラ間の通信部分はマスタコントローラからのリセット信号に応じて再構成し、標準通信構成に復帰できるロボットコントローラである。
【0017】
請求項10に係る発明は、請求項6に記載のロボットコントローラにおいて、スレーブコントローラの再構成結果と同等の再構成がマスタコントローラで実行され、スレーブコントローラの動作をマスタコントローラ内で模擬するロボットコントローラである。
【0018】
請求項11に係る発明は、請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、何らかの入出力デバイスを取り扱うスレーブコントローラでは、動作時に実際の入出力デバイスが無いときに入出力動作を模擬的に生成するように再構成するロボットコントローラである。
【0019】
請求項12に係る発明は、請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、何らかの入出力デバイスを取り扱うスレーブコントローラでは、動作時に実際の入出力デバイスが無いときに入出力動作のデータ部分のみを模擬的に生成するように再構成するロボットコントローラである。
【0020】
請求項13に係る発明は、請求項1〜請求項12のいずれかに記載のロボットコントローラにおいて、内部回路の再構成で、現構成回路から別の回路に変更する場合、該当コントローラの入出力信号ピンをハイインピーダンスに保ち、又は入力モードに変更してから、内部回路構成を変更するロボットコントローラである。
【0021】
請求項14に係る発明は、請求項1〜請求項10のいずれかに記載のロボットコントローラにおいて、再構成の単位を、ロボットの構造、モータの種類、センサの種類、通信方法などに最適化されたハード的なブロックから選択するようにしたロボットコントローラである。
【0022】
請求項15に係る発明は、請求項1〜請求項14のいずれかに記載のロボットコントローラにおいて、スレーブコントローラは、マスタコントローラと通信可能な子コントローラと、再構成可能な孫コントローラとで構成されるロボットコントローラである。
【0023】
【発明の実施の形態】
以下、本発明に係るロボットコントローラについて、図面を参照しながら具体的に説明する。
【0024】
図4は、本発明のロボットコントローラの実施の対象例である移動ロボット401を示し、この移動ロボット401は、CCDカメラ402、モータで駆動されるカメラ用雲台部403、音声マイク404、超音波センサ405、及び、モータで駆動される移動用車輪406,407で構成されている。
【0025】
図1は、図4に示す移動ロボット401のコントロールシステムを、本発明のロボットコントローラで構成したときのブロック図である。このロボットコントローラ100は、ソフトウェア開発装置としての開発用PC(すなわちマンマシンインタフェース)101と、マスタコントローラ(すなわちマスタボード又はマスタLSIチップ)102と、スレーブコントローラ(すなわちスレーブボード又はスレーブLSIチップ)201a、201b、201c、201dとで構成される。
【0026】
開発用PC101は、マスタコントローラ102に設けられた通信部103によってマスタコントローラ102と接続されている。
【0027】
マスタコントローラ102は、通信部103に繋がるマスタCPUコア104を備えている。マスタCPUコア104には音声信号処理部110が設けられ、この音声信号処理部110は、音声マイク111(移動ロボット401の音声マイク404に相当)から入力される音声信号の信号処理を行う。
【0028】
マスタコントローラ102は、マスタCPUコア104に繋がるマスタコントローラ内部バス105を備えている。また、マスタコントローラ102は、スレーブコントローラ201a用のIEEE1394通信部106、スレーブコントローラ201b用のCAN通信部107、およびスレーブコントローラ201c、201d用のUSB2.0通信部108を備えていて、これらの通信部106、107、108もマスタコントローラ内部バス105に繋がっている。これにより、通信部106、107、108からマスタコントローラ内部バス105を介してマスタCPUコア104に通信情報が伝達され、さらに、マスタCPUコア104から通信部103を介して開発用PC101に通信情報が伝達される。
【0029】
スレーブコントローラ201aは、マスタコントローラ102の通信部106と接続されたIEEE1394通信部202aを備えていて、この通信部202aを介してマスタコントローラ102と通信する。また、スレーブコントローラ201aは、通信部202aに繋がるCPUコア付きFPGA部203aを備えていて、CCDカメラ204a(移動ロボット401のCCDカメラ402に相当)の信号は、画像前処理用に再構成されたCPUコア付きFPGA部203aで画像前処理され、その結果がマスタコントローラ102に送られる。
【0030】
スレーブコントローラ201bは、マスタコントローラ102の通信部107と接続されたCAN通信部202bを備えていて、この通信部202bを介してマスタコントローラ102と通信する。また、スレーブコントローラ201bは、通信部202bに繋がるCPUコア付きFPGA部203bを備えていて、超音波センサ204b(移動ロボット401の超音波センサ405に相当)の信号は、センサ信号処理用に再構成されたCPUコア付きFPGA部203bで信号処理され、その結果がマスタコントローラ102に送られる。
【0031】
スレーブコントローラ201cは、USB2.0通信バス109を介してマスタコントローラ102の通信部108と接続されたUSB2.0通信部202cを備えていて、この通信部202cを介してマスタコントローラ102と通信する。また、スレーブコントローラ201cは、通信部202cに繋がるCPUコア付きFPGA部203cを備えていて、カメラ雲台204c(移動ロボット401のカメラ用雲台部403に相当)は、雲台制御用に再構成されたCPUコア付きFPGA部203cで制御される。すなわち、スレーブコントローラ201cのCPUコア付きFPGA部203cは、マスタコントローラ102から雲台制御用の目標値を受信してカメラ雲台204cのモータ出力などを制御する一方、コマンド終了や異常状態などの通信をマスタコントローラ102に対して行う。
【0032】
スレーブコントローラ201dは、USB2.0通信バス109を介してマスタコントローラ102の通信部108と接続されたUSB2.0通信部202dを備えていて、この通信部202dを介してマスタコントローラ102と通信する。また、スレーブコントローラ201dは、通信部202dに繋がるCPUコア付きFPGA部203dを備えていて、車輪駆動機構204d(移動ロボット401のモータで駆動される移動用車輪406,407に相当)は、車輪駆動制御用に再構成されたCPUコア付きFPGA部203dで制御される。すなわち、スレーブコントローラ201cのCPUコア付きFPGA部203dは、マスタコントローラ102から車輪駆動制御用の目標値を受信して車輪駆動機構204dのモータ出力などを制御する一方、コマンド終了や異常状態などの通信をマスタコントローラ102に対して行う。
【0033】
図2は、図1で示したロボットコントローラ100のハードウェア構成において、全てのスレーブコントローラ201a、201b、201c、201dの機能がバーチャルにマスタコントローラ102上に存在するごとく開発用PC101から見えるようにしたときの仮想ブロック図である。
【0034】
図2に示すようなブロック構成によれば、仮想的な画像前処理部205a、仮想的なセンサ信号処理部205b、仮想的な雲台制御部205c、および仮想的な車輪駆動制御部205dは、開発用PC101上に構成されたソフトウェア開発環境においては、それぞれがマスタCPUコア104のひとつの処理ルーチンとして扱える。
【0035】
この方法としては、ソフトウェア的に、IEEE1394通信部106、202a、CAN通信部107、202b、USB2.0通信部108、202c、202dを隠蔽し、開発者に通信部を意識させずに開発環境を構築する方法がある。この方法はソフトウェアのみの対応で良いため、簡便であるというメリットがある。
【0036】
これに対し、実際のロボットに組み込んだ組込システムではハード的なタイミングが重要になる。そこで、マスタコントローラ102もFPGAなどの再構成可能なものにし、スレーブコントローラ201a、201b、201c、201dと同様のハードウェアをマスタコントローラ102自身に構成するという方法もある。この方法は、スレーブコントローラが未完の場合など、初期のシステム開発時に有効である。
【0037】
また、開発時には、スレーブコントローラ201a、201b、201c、201dに接続されるデバイス204a、204b、204c、204dなどが未完の場合もある。そこで、スレーブコントローラ201a、201b、201c、201dにおいてこれらのデバイスを模擬するような再構成を行うことも有効である。この場合、デバイス204a、204b、204c、204dそのものを再構成で模擬する方法や、デバイスそのものは模擬せずデータのみを模擬する方法がある。
【0038】
図1のスレーブコントローラ201a、201b、201c、201dにおいて、予め接続されるデバイス204a、204b、204c、204dが既知の場合は、スレーブコントローラ用のコンフィグレーションファイルは、マスタコントローラ102や開発用PC101などの上位系からシステム立ち上げ時に送られたものを利用できる。または、スレーブコントローラ201a、201b、201c、201dにSRAMなどの記憶部を持たせ、これにコンフィグレーションファイルを保存しておき、立ち上げ時にそこから読み出して再構成することができる。
【0039】
また、デバイス204a、204b、204c、204d自身と、スレーブコントローラ201a、201b、201c、201dとの間で、PCにおけるUSB機器のようにプラグアンドプレイ的なハードウェア、ソフトウェア構成を持たせるようにすれば、先に示したSRAMなどに保存されているコンフィグレーションファイルから、又は、デバイス情報を基に上位系へ問い合わせ、検索してコンフィグレーションファイルをダウンロードすることで、自律的にスレーブコントローラ201a、201b、201c、201dが再構成可能となる。
【0040】
ロボットのような組込システムでは、作業の内容によって、実時間で制御則、制御演算を切り換える必要がある。そこで、制御則や制御演算に最適化したスレーブコントローラ201a、201b、201c、201dのコンフィグレーションファイルを、制御則、制御演算実行時に先に示したSRAMなどから持ってきて、実時間で再構成を可能にすることで、演算時間や回路規模を効率化したスレーブコントローラハードウェアを構成できる。
【0041】
マスタコントローラ102とスレーブコントローラ201a、201b、201c、201d間の通信部において、通信初期化時又は通信内容変更時にマスタ側から以降の通信内容に最適化したスレーブ通信部コンフィグレーションファイルを送り、これによりスレーブ通信部を再構成することで効率的な通信が可能になる。
【0042】
すなわち、スレーブコントローラ201a、201b、201c、201dの通信部202a、202b、202c、202dを、マスタコントローラ102からの再構成情報に応じて再構成する。これにより、スレーブコントローラ201a、201b、201c、201dの通信部202a、202b、202c、202dは、以降の通信でマスタコントローラ102から送られてくるデータを、再構成した状態でデシリアライズして、CPUコア付きFPGA部203a、203b、203c、203dに渡すことができる。
【0043】
また、マスタコントローラ102の通信部106、107、108、および、スレーブコントローラ201a、201b、201c、201dの通信部202a、202b、202c、202dを、マスタコントローラ102の再構成情報に応じていずれも再構成する。これにより、以降の通信では、マスタコントローラ102の通信部106、107、108は再構成した状態でデータをシリアライズし、一方、スレーブコントローラ201a、201b、201c、201dの通信部202a、202b、202c、202dは再構成した状態でデータをデシリアライズして、CPUコア付きFPGA部203a、203b、203c、203dに渡すことができる。
【0044】
図3は、図1に示した車輪駆動制御用のスレーブコントローラ201dを、子コントローラ[すなわち孫コントローラ付きスレーブコントローラ(孫コントローラ付きスレーブボード又はスレーブLSIチップ)]211と、孫コントローラ(すなわち孫ボード又は孫LSIチップ)301a、301bとで構成したブロック図である。
【0045】
子コントローラ(孫コントローラ付きスレーブコントローラ)211は、USB2.0通信バス109を介してマスタコントローラ102の通信部108と接続された上位系通信部212を備えていて、この上位系通信部212を介してマスタコントローラ102と通信する。また、子コントローラ211は、上位系通信部212に繋がる再構成コア部213を備えている。再構成コア部213はジャイロ信号処理部216を備えていて、このジャイロ信号処理部216でジャイロセンサ217からの信号を処理する。また、再構成コア部213は下位系通信部218を備えていて、この下位系通信部218が、下位系通信バス219を介して孫コントローラ301a、301bと通信する。
【0046】
孫コントローラ301aは、下位系通信バス219を介して子コントローラ211と通信する通信部302aと、右モータ制御用に再構成された右モータ用制御回路部303aとを備えている。そして、右モータ用制御回路部303aは、右モータ用ドライバ304aおよび右モータ用回転角センサ306aによって右モータ305aを制御する。一方、孫コントローラ301bは、下位系通信バス219を介して子コントローラ211と通信する通信部302bと、左モータ制御用に再構成された左モータ用制御回路部303bとを備えている。そして、左モータ用制御回路部303bは、左モータ用ドライバ304bおよび左モータ用回転角センサ306bによって左モータ305bを制御する。
【0047】
このように、ロボットシステムの構成によっては、図1に示すマスタコントローラ102およびスレーブコントローラ201a、201b、201c、201dと同様な関係を多層に構成することで、システムのハードウェア製作が一層容易になる場合がある。この場合も、開発用PC101からはマスタコントローラ102上に全てのスレーブ側が存在するような仮想化を行うことで、開発の視認性を上げることができ、開発効率やデバッグ時に有効である。
【0048】
また、再構成の内容によっては、スレーブコントローラ201a、201b、201c、201dと外部デバイスとの入出力信号が変更されることもある。スレーブコントローラの内部素子を破壊することなくこの入出力方向の切換を実施する方法を図5に示す。すなわち、スレーブコントローラの外部との入出力部(CPU側信号ライン506とデバイス側信号ライン507間)に入出力バッファ部を用意し、そこに内蔵された入出力切換回路504(1チャネル分を示す)を入出力方向制御信号(モードコントロール信号)505によって切り換える。図5において、入出力バッファ部501は、入出力方向制御信号505が出力モードのときの入出力切換回路504の状態を示し、入出力バッファ部502は、入出力方向制御信号505が遷移モードのときの入出力切換回路504の状態を示し、入出力バッファ部503は、入出力方向制御信号505が入力モードのときの入出力切換回路504の状態を示す。このように、入出力バッファ部の入出力切換回路504は、入出力方向制御信号505により切換時でも常にハイインピーダンスが保たれるようにしている。
【0049】
なお、図1では、スレーブコントローラ201a、201b、201c、201dの再構成部203a、203b、203c、203dはCPUコア付きFPGAの例を示したが、FPGAは通常のカスタムLSIより高価で動作クロックも上げられないという弱点を持つ。そこで、ロボット用のハードIPコアを予め用意しておき、コア間の接続情報のみで再構成させるようにすれば、カスタムLSIと同等の価格と速度を実現できる。
【0050】
上記のように、このロボットコントローラ100は、マスタコントローラ102と、通信手段でマスタコントローラに接続され、マスタコントローラ側からの情報で再構成可能な機能を持つスレーブコントローラ201a、201b、201c、201dと、マスタコントローラに接続されたソフトウェア開発装置としての開発用PC101とを備え、開発用PC101は、通信手段を隠蔽することで、スレーブコントローラ201a、201b、201c、201dがバーチャルにマスタコントローラ102の一部として認識される。
【0051】
また、このロボットコントローラ100は、マスタコントローラ102と、通信手段でマスタコントローラに接続され、コントロール対象となる機器の状態に応じて自律的に再構成可能なスレーブコントローラ201a、201b、201c、201dと、マスタコントローラに接続されたソフトウェア開発装置としての開発用PC101とを備え、開発用PC101は、通信手段を隠蔽し、スレーブコントローラ201a、201b、201c、201dが自律的に再構成した結果がマスタコントローラ102を通じて開発用PC101に情報伝達されることで、スレーブコントローラがバーチャルにマスタコントローラ102の一部として認識される。
【0052】
また、このロボットコントローラ100は、マスタコントローラ102とスレーブコントローラとを繋ぐ通信手段はルーティング機能を持つため、複数個のスレーブコントローラ201a、201b、201c、201dを接続可能であり、この接続はプラグアンドプレイが可能で、開発用PC101は、スレーブコントローラがプラグアンドプレイで接続された情報により、複数個のスレーブコントローラ201a、201b、201c、201dがバーチャルにマスタコントローラ102の一部として認識され、集中型のコントローラとして処理できる。
【0053】
また、このロボットコントローラ100は、マスタコントローラ102とスレーブコントローラ201a、201b、201c、201d間の通信、およびスレーブコントローラの再構成は、システムで規定された時間間隔内でリアルタイムに実行される。
【0054】
また、このロボットコントローラ100は、マスタコントローラ102の通信は複数の仕様に対応していて、通信タイプの違う複数のスレーブコントローラ201a、201b、201c、201dが接続可能であり、これら複数のスレーブコントローラがバーチャルにマスタコントローラ102の一部として認識され、集中型のコントローラとして処理できる。
【0055】
また、このロボットコントローラ100は、マスタコントローラ102が再構成可能である。
【0056】
また、このロボットコントローラ100は、スレーブコントローラ201a、201b、201c、201dの通信部分はマスタコントローラ102からの再構成情報に応じて再構成し、以降の通信でマスタコントローラ102から送られてくるデータを再構成した状態でデシリアライズしてスレーブコントローラの処理部に渡すことができる。
【0057】
また、このロボットコントローラ100は、マスタコントローラ102の通信部分およびスレーブコントローラ201a、201b、201c、201dの通信部分は、マスタコントローラ102の再構成情報に応じていずれも再構成し、以降の通信ではマスタコントローラ102側の通信部分は再構成した状態でデータをシリアライズし、スレーブコントローラ201a、201b、201c、201d側では再構成した状態でデシリアライズしてデータをスレーブコントローラの処理部に渡すことができる。
【0058】
また、このロボットコントローラ100は、マスタコントローラ102とスレーブコントローラ201a、201b、201c、201d間の通信部分はマスタコントローラ102からのリセット信号に応じて再構成し、標準通信構成に復帰できる。
【0059】
また、このロボットコントローラ100は、スレーブコントローラ201a、201b、201c、201dの再構成結果と同等の再構成がマスタコントローラで実行され、スレーブコントローラ201a、201b、201c、201dの動作をマスタコントローラ102内で模擬することができる。
【0060】
また、このロボットコントローラ100は、何らかの入出力デバイスを取り扱うスレーブコントローラ201a、201b、201c、201dでは、動作時に実際の入出力デバイスが無いときに入出力動作を模擬的に生成することができる。
【0061】
また、このロボットコントローラ100は、何らかの入出力デバイスを取り扱うスレーブコントローラ201a、201b、201c、201dでは、動作時に実際の入出力デバイスが無いときに入出力動作のデータ部分のみを模擬的に生成するように再構成することができる。
【0062】
また、このロボットコントローラ100は、内部回路の再構成で、現構成回路から別の回路に変更する場合、該当コントローラの入出力信号ピンをハイインピーダンスに保ち、又は入力モードに変更してから、内部回路構成を変更することができる。
【0063】
また、このロボットコントローラ100は、再構成の単位を、ロボットの構造、モータの種類、センサの種類、通信方法などに最適化されたハード的なブロックから選択することができる。
【0064】
さらに、このロボットコントローラ100は、スレーブコントローラを、マスタコントローラ102と通信可能な子コントローラ211と、再構成可能な孫コントローラ301a、301bとで構成することができる。
【0065】
【発明の効果】
以上詳細に説明したように、本発明によれば、ハード的には再構成可能な分散型の構成を採ることで、ロボットのハードウェアに適した分散コントローラ構成を簡単に実現できるとともに、開発環境は集中型として管理することで、煩雑になる分散コントローラのソフトウェア開発を集中型コントローラと同様の手法で簡単に実現できる。
【図面の簡単な説明】
【図1】本発明によるロボットコントローラのハードウェアの一構成例を示すブロック図である。
【図2】図1のロボットコントローラにおける開発装置から見た仮想的なコントローラ構成を示すブロック図である。
【図3】図1のロボットコントローラにおけるスレーブコントローラを、子コントローラと孫コントローラとで構成したブロック図である。
【図4】図1のロボットコントローラの実施の対象例である移動ロボットを示す概略図である。
【図5】入出力の切換方法を示すバッファ回路の動作遷移図である。
【符号の説明】
100 ロボットコントローラ
101 開発用PC(マンマシンインタフェース)
102 マスタコントローラ(マスタボード又はマスタLSIチップ)
103 通信部
104 マスタCPUコア
105 マスタコントローラの内部バス
106 IEEE1394通信部
107 CAN通信部
108 USB2.0通信部
109 USB2.0通信バス
110 音声信号処理部
111 音声マイク
201a、201b、201c、201d スレーブコントローラ(スレーブボード又はスレーブLSIチップ)
202a IEEE1394通信部
202b CAN通信部
202c、202d USB2.0通信部
203a 画像前処理用に再構成されたCPUコア付きFPGA部
203b センサ信号処理用に再構成されたCPUコア付きFPGA部
203c 雲台制御用に再構成されたCPUコア付きFPGA部
203d 車輪駆動制御用に再構成されたCPUコア付きFPGA部
204a CCDカメラ
204b 超音波センサ
204c カメラ雲台
204d 車輪駆動機構
205a 開発装置からみた仮想的な画像前処理部
205b 開発装置からみた仮想的なセンサ信号処理部
205c 開発装置からみた仮想的な雲台制御部
205d 開発装置からみた仮想的な車輪駆動制御部
211 子コントローラ[孫コントローラ付きスレーブコントローラ(孫コントローラ付きスレーブボード又はスレーブLSIチップ)]
212 上位系通信部
213 再構成コア部
216 ジャイロ信号処理部
217 ジャイロセンサ
218 下位系通信部
219 下位系通信バス
301a、301b 孫コントローラ(孫ボード又は孫LSIチップ)
302a、302b 子コントローラとの通信部
303a 再構成された右モータ用制御回路部
303b 再構成された左モータ用制御回路部
304a 右モータ用ドライバ
304b 左モータ用ドライバ
305a 右モータ
305b 左モータ
306a 右モータ用回転角センサ
306b 左モータ用回転角センサ
401 移動ロボット
402 CCDカメラ
403 カメラ用雲台部
404 音声マイク
405 超音波センサ
406 移動用車輪(右車輪)
407 移動用車輪(左車輪)
501 出力モード時の入出力バッファ部
502 遷移モード時の入出力バッファ部
503 入力モード時の入出力バッファ部
504 入出力切換回路
505 入出力方向制御信号(モードコントロール信号)
506 CPU側信号ライン
507 デバイス側信号ライン
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention is connected to a master controller, a slave controller that is connected to the master controller by communication, and that can be reconfigured by information from the master controller or can be reconfigured by autonomous judgment of the slave controller itself, and connected to the master controller. The present invention relates to a robot controller configured with a software development device, wherein a slave controller can be virtually handled as a part of a master controller from the software development device.
[0002]
[Prior art]
Conventional robot controllers are generally of a centralized type using only one CPU. However, with the recent advancement of robot systems in sophistication, complexity and large scale, a distributed type using a plurality of CPUs has been proposed. Robot controllers have come to be used (for example, see Patent Document 1).
[0003]
In addition, there is a device in which an FPGA (Field Programmable Gate Array) is used so as to be applicable to various uses and a controller unit can be reconfigured according to the use (for example, see Patent Document 2).
[0004]
[Patent Document 1]
JP 2001-92795 A
[0005]
[Patent Document 2]
JP 2001-322078 A
[0006]
[Problems to be solved by the invention]
However, such a distributed robot controller has higher processing capacity and more flexibility than a centralized robot controller, but it becomes difficult to manage the whole robot system in a unified manner during development as the scale increases. There are many. Therefore, when a trouble occurs in the system, there is a problem that it takes a longer time to find the cause and software bug than in the conventional centralized system.
[0007]
The present invention has been made in view of such a point, and an object thereof is to provide a robot controller that can manage a development environment as a centralized type while adopting a distributed configuration that can be reconfigured in hardware. Is to provide.
[0008]
[Means for Solving the Problems]
The present invention solves the above-mentioned problem, and the invention according to claim 1 is a master controller and a slave connected to the master controller by a communication unit and having a function that can be reconfigured by information from the master controller. A controller and a software development device connected to the master controller, wherein the software development device is configured so that the slave controller is virtually recognized as a part of the master controller by concealing the communication means. It is a robot controller.
[0009]
The invention according to claim 2 is connected to the master controller, a slave controller connected to the master controller by communication means, and autonomously reconfigurable according to a state of a device to be controlled, and connected to the master controller. A software development device, wherein the software development device hides the communication means, and the result of the autonomous reconfiguration by the slave controller is transmitted to the software development device through the master controller. The robot controller is configured to be recognized as a part of the master controller.
[0010]
According to a third aspect of the present invention, in the robot controller according to the first or second aspect, since the communication means has a routing function, a plurality of slave controllers can be connected, and this connection can be plug-and-play. A robot configured such that the plurality of slave controllers can be virtually recognized as a part of the master controller and processed as a centralized controller by the information that the slave controllers are connected by plug and play. It is a controller.
[0011]
According to a fourth aspect of the present invention, in the robot controller according to any one of the first to third aspects, the communication between the master controller and the slave controller and the reconfiguration of the slave controller are performed within a time interval defined by the system. Is a robot controller executed in real time.
[0012]
According to a fifth aspect of the present invention, in the robot controller according to any one of the first to third aspects, communication of the master controller corresponds to a plurality of specifications, and a plurality of slave controllers having different communication types can be connected. The robot controller is configured such that these slave controllers are virtually recognized as a part of the master controller and can be processed as a centralized controller.
[0013]
The invention according to claim 6 is the robot controller according to any one of claims 1 to 5, wherein the master controller can be reconfigured.
[0014]
According to a seventh aspect of the present invention, in the robot controller according to any one of the first to fifth aspects, the communication portion of the slave controller is reconfigured in accordance with reconfiguration information from the master controller, and the master controller is configured in subsequent communication. This is a robot controller that deserializes data sent from the controller in a reconstructed state and passes it to the processing unit of the slave controller.
[0015]
The invention according to claim 8 is the robot controller according to claim 6, wherein the communication part of the master controller and the communication part of the slave controller are both reconfigured according to the reconfiguration information of the master controller. The communication part on the master controller side is a robot controller that serializes data in the reconfigured state, and the slave controller side deserializes in the reconfigured state and transfers the data to the processing unit of the slave controller.
[0016]
According to a ninth aspect of the present invention, in the robot controller according to the seventh or eighth aspect, a communication portion between the master controller and the slave controller is reconfigured in response to a reset signal from the master controller, and returns to a standard communication configuration. It is a robot controller that can do it.
[0017]
According to a tenth aspect of the present invention, in the robot controller according to the sixth aspect, a reconfiguration equivalent to a reconfiguration result of the slave controller is executed by the master controller, and the operation of the slave controller is simulated in the master controller. is there.
[0018]
According to an eleventh aspect of the present invention, in the robot controller according to any one of the first to fifth aspects, the slave controller handling some input / output device performs the input / output operation when there is no actual input / output device at the time of operation. This is a robot controller that is reconfigured to generate a simulation.
[0019]
According to a twelfth aspect of the present invention, in the robot controller according to any one of the first to fifth aspects, a slave controller that handles some input / output device performs an input / output operation when there is no actual input / output device during operation. This is a robot controller that reconfigures to generate only a data portion in a simulated manner.
[0020]
According to a thirteenth aspect of the present invention, in the robot controller according to any one of the first to twelfth aspects, when the current configuration circuit is changed to another circuit by reconfiguration of the internal circuit, the input / output signal of the controller is changed. A robot controller that changes the internal circuit configuration after keeping pins at high impedance or changing to an input mode.
[0021]
According to a fourteenth aspect of the present invention, in the robot controller according to any one of the first to tenth aspects, a unit of reconfiguration is optimized to a robot structure, a motor type, a sensor type, a communication method, and the like. This is a robot controller that selects from hard blocks.
[0022]
According to a fifteenth aspect of the present invention, in the robot controller according to any one of the first to fourteenth aspects, the slave controller includes a child controller capable of communicating with the master controller and a reconfigurable grandchild controller. It is a robot controller.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, a robot controller according to the present invention will be specifically described with reference to the drawings.
[0024]
FIG. 4 shows a mobile robot 401 which is an example of a robot controller according to the present invention. The mobile robot 401 includes a CCD camera 402, a camera platform 403 driven by a motor, a voice microphone 404, and an ultrasonic wave. It comprises a sensor 405 and moving wheels 406 and 407 driven by a motor.
[0025]
FIG. 1 is a block diagram when the control system of the mobile robot 401 shown in FIG. 4 is configured by the robot controller of the present invention. The robot controller 100 includes a development PC (that is, a man-machine interface) 101 as a software development device, a master controller (that is, a master board or a master LSI chip) 102, a slave controller (that is, a slave board or a slave LSI chip) 201a, 201b, 201c and 201d.
[0026]
The development PC 101 is connected to the master controller 102 by a communication unit 103 provided in the master controller 102.
[0027]
The master controller 102 includes a master CPU core 104 connected to the communication unit 103. The master CPU core 104 is provided with an audio signal processing unit 110, and the audio signal processing unit 110 performs signal processing of an audio signal input from an audio microphone 111 (corresponding to the audio microphone 404 of the mobile robot 401).
[0028]
The master controller 102 has a master controller internal bus 105 connected to the master CPU core 104. The master controller 102 includes an IEEE 1394 communication unit 106 for the slave controller 201a, a CAN communication unit 107 for the slave controller 201b, and a USB 2.0 communication unit 108 for the slave controllers 201c and 201d. 106, 107, and 108 are also connected to the master controller internal bus 105. As a result, communication information is transmitted from the communication units 106, 107, and 108 to the master CPU core 104 via the master controller internal bus 105, and further, the communication information is transmitted from the master CPU core 104 to the development PC 101 via the communication unit 103. Is transmitted.
[0029]
The slave controller 201a includes an IEEE 1394 communication unit 202a connected to the communication unit 106 of the master controller 102, and communicates with the master controller 102 via the communication unit 202a. The slave controller 201a includes an FPGA unit 203a with a CPU core connected to the communication unit 202a. The signal of the CCD camera 204a (corresponding to the CCD camera 402 of the mobile robot 401) is reconfigured for image preprocessing. The image is pre-processed in the FPGA unit with CPU core 203a, and the result is sent to the master controller 102.
[0030]
The slave controller 201b includes a CAN communication unit 202b connected to the communication unit 107 of the master controller 102, and communicates with the master controller 102 via the communication unit 202b. The slave controller 201b includes an FPGA unit 203b with a CPU core connected to the communication unit 202b, and the signal of the ultrasonic sensor 204b (corresponding to the ultrasonic sensor 405 of the mobile robot 401) is reconfigured for sensor signal processing. The signal processing is performed by the FPGA unit with CPU core 203b, and the result is sent to the master controller 102.
[0031]
The slave controller 201c includes a USB 2.0 communication unit 202c connected to the communication unit 108 of the master controller 102 via the USB 2.0 communication bus 109, and communicates with the master controller 102 via the communication unit 202c. The slave controller 201c includes an FPGA unit 203c with a CPU core connected to the communication unit 202c, and the camera platform 204c (corresponding to the camera platform 403 of the mobile robot 401) is reconfigured for platform control. Is controlled by the CPU-equipped FPGA unit 203c. That is, the FPGA unit 203c with the CPU core of the slave controller 201c receives the target value for the camera platform control from the master controller 102 and controls the motor output of the camera platform 204c, while communicating the command completion or abnormal state. Is performed on the master controller 102.
[0032]
The slave controller 201d includes a USB 2.0 communication unit 202d connected to the communication unit 108 of the master controller 102 via the USB 2.0 communication bus 109, and communicates with the master controller 102 via the communication unit 202d. Also, the slave controller 201d includes an FPGA unit 203d with a CPU core connected to the communication unit 202d, and the wheel driving mechanism 204d (corresponding to the moving wheels 406 and 407 driven by the motor of the mobile robot 401) performs wheel driving. It is controlled by the FPGA unit with CPU core 203d reconfigured for control. That is, the FPGA unit with CPU core 203d of the slave controller 201c receives a target value for wheel drive control from the master controller 102 and controls the motor output and the like of the wheel drive mechanism 204d. Is performed on the master controller 102.
[0033]
FIG. 2 shows that in the hardware configuration of the robot controller 100 shown in FIG. 1, all the functions of the slave controllers 201a, 201b, 201c, and 201d are made visible from the development PC 101 as if they existed virtually on the master controller 102. It is a virtual block diagram at the time.
[0034]
According to the block configuration as shown in FIG. 2, the virtual image preprocessing unit 205a, the virtual sensor signal processing unit 205b, the virtual pan head control unit 205c, and the virtual wheel drive control unit 205d In the software development environment configured on the development PC 101, each can be handled as one processing routine of the master CPU core 104.
[0035]
In this method, the IEEE 1394 communication units 106 and 202a, the CAN communication units 107 and 202b, and the USB 2.0 communication units 108, 202c and 202d are concealed by software so that the development environment can be hidden without the developer being aware of the communication unit. There is a way to build. This method has a merit that it is simple because it can be handled only by software.
[0036]
On the other hand, in an embedded system incorporated in an actual robot, hardware timing is important. Therefore, there is a method in which the master controller 102 is also reconfigurable such as an FPGA, and the same hardware as the slave controllers 201a, 201b, 201c, and 201d is configured in the master controller 102 itself. This method is effective at the time of initial system development, such as when the slave controller is incomplete.
[0037]
At the time of development, the devices 204a, 204b, 204c, 204d, etc. connected to the slave controllers 201a, 201b, 201c, 201d may not be completed. Therefore, it is also effective to reconfigure the slave controllers 201a, 201b, 201c, and 201d to simulate these devices. In this case, there are a method of simulating the devices 204a, 204b, 204c, and 204d themselves by reconfiguration, and a method of simulating only data without simulating the devices themselves.
[0038]
In the slave controllers 201a, 201b, 201c, and 201d of FIG. 1, if the devices 204a, 204b, 204c, and 204d that are connected in advance are known, the configuration file for the slave controllers is stored in the master controller 102 or the development PC 101. You can use what was sent from the higher system when the system was started. Alternatively, the slave controllers 201a, 201b, 201c, and 201d may be provided with a storage unit such as an SRAM, and a configuration file may be stored in the storage unit and read out from the storage unit at the time of startup to reconfigure.
[0039]
Further, hardware such as plug-and-play hardware or software like a USB device in a PC may be provided between the devices 204a, 204b, 204c, and 204d and the slave controllers 201a, 201b, 201c, and 201d. For example, the slave controller 201a, 201b can be autonomously obtained by inquiring the upper system based on the configuration file stored in the above-described SRAM or the like based on the device information, searching and downloading the configuration file. , 201c and 201d can be reconfigured.
[0040]
In an embedded system such as a robot, it is necessary to switch between a control law and a control operation in real time according to the content of work. Therefore, the configuration files of the slave controllers 201a, 201b, 201c, and 201d optimized for the control law and the control operation are brought from the SRAM or the like described above at the time of execution of the control law and the control operation, and are reconfigured in real time. By making it possible, it is possible to configure slave controller hardware in which the operation time and the circuit scale are made more efficient.
[0041]
In the communication unit between the master controller 102 and the slave controllers 201a, 201b, 201c, and 201d, a slave communication unit configuration file optimized for subsequent communication contents is sent from the master side at the time of communication initialization or communication content change, thereby Reconfiguring the slave communication unit enables efficient communication.
[0042]
That is, the communication units 202a, 202b, 202c, and 202d of the slave controllers 201a, 201b, 201c, and 201d are reconfigured according to the reconfiguration information from the master controller 102. Accordingly, the communication units 202a, 202b, 202c, and 202d of the slave controllers 201a, 201b, 201c, and 201d deserialize the data transmitted from the master controller 102 in the subsequent communication in a reconstructed state, and The data can be transferred to the cored FPGA units 203a, 203b, 203c, and 203d.
[0043]
In addition, the communication units 106, 107, and 108 of the master controller 102 and the communication units 202a, 202b, 202c, and 202d of the slave controllers 201a, 201b, 201c, and 201d are all reconfigured according to the reconfiguration information of the master controller 102. Constitute. Accordingly, in the subsequent communication, the communication units 106, 107, and 108 of the master controller 102 serialize the data in a reconstructed state, while the communication units 202a, 202b, 202c, and 202c of the slave controllers 201a, 201b, 201c, and 201d. The 202d can deserialize the data in a reconstructed state and pass it to the FPGA units with CPU cores 203a, 203b, 203c and 203d.
[0044]
FIG. 3 shows a slave controller 201d for wheel drive control shown in FIG. 1 as a child controller [that is, a slave controller with a grandchild controller (a slave board with a grandchild controller or a slave LSI chip)] 211 and a grandchild controller (that is, a grandchild board or 3 is a block diagram including a grandchild LSI chip) 301a and 301b.
[0045]
The child controller (slave controller with grandchild controller) 211 includes a higher-level communication unit 212 connected to the communication unit 108 of the master controller 102 via the USB 2.0 communication bus 109. And communicates with the master controller 102. The child controller 211 includes a reconfigurable core unit 213 connected to the higher-level communication unit 212. The reconfigured core unit 213 includes a gyro signal processing unit 216, and the gyro signal processing unit 216 processes a signal from the gyro sensor 217. Further, the reconfigurable core unit 213 includes a lower communication unit 218, and the lower communication unit 218 communicates with the grandchild controllers 301 a and 301 b via the lower communication bus 219.
[0046]
The grandchild controller 301a includes a communication unit 302a that communicates with the child controller 211 via the lower communication bus 219, and a right motor control circuit unit 303a that is reconfigured for right motor control. Then, the right motor control circuit 303a controls the right motor 305a by the right motor driver 304a and the right motor rotation angle sensor 306a. On the other hand, the grandchild controller 301b includes a communication unit 302b that communicates with the child controller 211 via the lower communication bus 219, and a left motor control circuit unit 303b that is reconfigured for left motor control. The control circuit 303b for the left motor controls the left motor 305b by the driver 304b for the left motor and the rotation angle sensor 306b for the left motor.
[0047]
As described above, depending on the configuration of the robot system, the same relationship as the master controller 102 and the slave controllers 201a, 201b, 201c, and 201d shown in FIG. There are cases. Also in this case, by performing virtualization such that all slaves are present on the master controller 102 from the development PC 101, the visibility of development can be increased, which is effective for development efficiency and debugging.
[0048]
Also, depending on the contents of the reconfiguration, the input / output signals between the slave controllers 201a, 201b, 201c, and 201d and the external device may be changed. FIG. 5 shows a method of switching this input / output direction without destroying the internal elements of the slave controller. That is, an input / output buffer unit is prepared in an input / output unit (between the CPU-side signal line 506 and the device-side signal line 507) with the outside of the slave controller, and the input / output switching circuit 504 (for one channel) is built therein. ) Is switched by an input / output direction control signal (mode control signal) 505. In FIG. 5, the input / output buffer unit 501 shows the state of the input / output switching circuit 504 when the input / output direction control signal 505 is in the output mode, and the input / output buffer unit 502 has the input / output direction control signal 505 in the transition mode. The input / output buffer 503 indicates the state of the input / output switching circuit 504 when the input / output direction control signal 505 is in the input mode. As described above, the input / output switching circuit 504 of the input / output buffer unit always keeps the high impedance even at the time of switching by the input / output direction control signal 505.
[0049]
Although FIG. 1 shows an example in which the reconfiguration units 203a, 203b, 203c, and 203d of the slave controllers 201a, 201b, 201c, and 201d are FPGAs with a CPU core, the FPGAs are more expensive than ordinary custom LSIs and the operation clocks are higher. Has a weak point that can not be raised. Therefore, if a hard IP core for a robot is prepared in advance and reconfigured using only connection information between the cores, the same price and speed as a custom LSI can be realized.
[0050]
As described above, the robot controller 100 includes a master controller 102, slave controllers 201a, 201b, 201c, and 201d connected to the master controller by communication means and having a function that can be reconfigured by information from the master controller. A development PC 101 as a software development device connected to the master controller, and the development PC 101 conceals the communication means so that the slave controllers 201a, 201b, 201c, and 201d virtually become part of the master controller 102. Be recognized.
[0051]
The robot controller 100 includes a master controller 102, slave controllers 201a, 201b, 201c, and 201d that are connected to the master controller by communication means and that can autonomously reconfigure according to the state of a device to be controlled. A development PC 101 as a software development device connected to the master controller. The development PC 101 conceals the communication means, and the slave controller 201a, 201b, 201c, 201d autonomously reconfigures the master controller 102. The slave controller is virtually recognized as a part of the master controller 102 by transmitting information to the development PC 101 through the PC.
[0052]
Further, in the robot controller 100, since the communication means for connecting the master controller 102 and the slave controller has a routing function, a plurality of slave controllers 201a, 201b, 201c, and 201d can be connected. In the development PC 101, the plurality of slave controllers 201a, 201b, 201c, and 201d are virtually recognized as a part of the master controller 102 based on the information that the slave controllers are connected by plug-and-play. Can be processed as a controller.
[0053]
In the robot controller 100, the communication between the master controller 102 and the slave controllers 201a, 201b, 201c, and 201d, and the reconfiguration of the slave controllers are executed in real time within the time interval specified by the system.
[0054]
Further, in the robot controller 100, the communication of the master controller 102 corresponds to a plurality of specifications, and a plurality of slave controllers 201a, 201b, 201c, and 201d having different communication types can be connected. It is virtually recognized as a part of the master controller 102 and can be processed as a centralized controller.
[0055]
The robot controller 100 can be reconfigured by the master controller 102.
[0056]
Further, the robot controller 100 reconfigures the communication portion of the slave controllers 201a, 201b, 201c, and 201d according to the reconfiguration information from the master controller 102, and transmits data transmitted from the master controller 102 in subsequent communication. The reconfigured state can be deserialized and passed to the processing unit of the slave controller.
[0057]
The robot controller 100 reconfigures the communication part of the master controller 102 and the communication part of the slave controllers 201a, 201b, 201c, and 201d in accordance with the reconfiguration information of the master controller 102. The communication part on the controller 102 side can serialize the data in the reconfigured state, and the slave controllers 201a, 201b, 201c and 201d can deserialize the reconfigured state and pass the data to the processing unit of the slave controller.
[0058]
Further, in the robot controller 100, a communication portion between the master controller 102 and the slave controllers 201a, 201b, 201c, and 201d is reconfigured in response to a reset signal from the master controller 102, and can return to the standard communication configuration.
[0059]
In the robot controller 100, a reconfiguration equivalent to the reconfiguration result of the slave controllers 201a, 201b, 201c, and 201d is executed by the master controller, and the operations of the slave controllers 201a, 201b, 201c, and 201d are performed in the master controller 102. Can be simulated.
[0060]
In the robot controller 100, the slave controllers 201a, 201b, 201c, and 201d that handle some input / output devices can simulate an input / output operation when there is no actual input / output device during operation.
[0061]
In the robot controller 100, the slave controllers 201a, 201b, 201c, and 201d that handle some input / output devices simulate only the data portion of the input / output operation when there is no actual input / output device during operation. Can be reconstructed.
[0062]
When changing the current configuration circuit to another circuit by reconfiguring the internal circuit, the robot controller 100 keeps the input / output signal pins of the corresponding controller at high impedance or changes to the input mode, The circuit configuration can be changed.
[0063]
In addition, the robot controller 100 can select the unit of reconfiguration from hardware blocks optimized for the structure of the robot, the type of motor, the type of sensor, the communication method, and the like.
[0064]
Further, in the robot controller 100, the slave controller can be configured by a child controller 211 capable of communicating with the master controller 102 and reconfigurable grandchild controllers 301a and 301b.
[0065]
【The invention's effect】
As described above in detail, according to the present invention, a distributed controller configuration suitable for hardware of a robot can be easily realized by adopting a reconfigurable distributed configuration in terms of hardware, and a development environment By managing as a centralized controller, complicated software development of a distributed controller can be easily realized by the same method as the centralized controller.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration example of hardware of a robot controller according to the present invention.
FIG. 2 is a block diagram showing a virtual controller configuration as viewed from a development device in the robot controller of FIG. 1;
FIG. 3 is a block diagram in which a slave controller in the robot controller of FIG. 1 includes a child controller and a grandchild controller.
FIG. 4 is a schematic diagram showing a mobile robot that is an example of an object to be implemented by the robot controller of FIG. 1;
FIG. 5 is an operation transition diagram of a buffer circuit showing a method of switching input / output.
[Explanation of symbols]
100 robot controller
101 Development PC (man-machine interface)
102 Master controller (master board or master LSI chip)
103 Communication unit
104 Master CPU core
105 Master controller internal bus
106 IEEE1394 communication unit
107 CAN communication unit
108 USB2.0 communication unit
109 USB2.0 communication bus
110 audio signal processing unit
111 voice microphone
201a, 201b, 201c, 201d Slave controller (slave board or slave LSI chip)
202a IEEE 1394 communication unit
202b CAN communication unit
202c, 202d USB2.0 communication unit
203a FPGA unit with CPU core reconfigured for image preprocessing
203b FPGA part with CPU core reconfigured for sensor signal processing
203c FPGA part with CPU core reconfigured for pan head control
203d FPGA part with CPU core reconfigured for wheel drive control
204a CCD camera
204b Ultrasonic sensor
204c camera head
204d wheel drive mechanism
205a Virtual image preprocessing unit viewed from the development device
205b Virtual sensor signal processing unit viewed from the development device
205c Virtual head control unit viewed from development equipment
205d Virtual wheel drive control unit viewed from the development device
211 child controller [slave controller with grandchild controller (slave board with grandchild controller or slave LSI chip)]
212 Upper system communication unit
213 Reconstructed core unit
216 Gyro signal processing unit
217 Gyro sensor
218 Lower-layer communication unit
219 Lower communication bus
301a, 301b Grandchild controller (grandchild board or grandchild LSI chip)
302a, 302b Communication unit with child controller
303a Reconfigured control circuit for right motor
303b Reconfigured control circuit for left motor
304a Right motor driver
304b Left motor driver
305a Right motor
305b Left motor
306a Rotation angle sensor for right motor
306b Rotation angle sensor for left motor
401 Mobile Robot
402 CCD camera
403 Head for camera
404 voice microphone
405 Ultrasonic sensor
406 Moving wheel (right wheel)
407 Wheel for moving (left wheel)
501 Input / output buffer in output mode
502 Input / output buffer part in transition mode
503 Input / output buffer in input mode
504 I / O switching circuit
505 I / O direction control signal (mode control signal)
506 CPU side signal line
507 Device side signal line

Claims (15)

マスタコントローラと、通信手段で前記マスタコントローラに接続され、マスタコントローラ側からの情報で再構成可能な機能を持つスレーブコントローラと、前記マスタコントローラに接続されたソフトウェア開発装置とを備え、前記ソフトウェア開発装置は、前記通信手段を隠蔽することで、スレーブコントローラがバーチャルにマスタコントローラの一部として認識されるように構成したことを特徴とするロボットコントローラ。The software development device, comprising: a master controller; a slave controller connected to the master controller by communication means and having a function reconfigurable with information from the master controller side; and a software development device connected to the master controller. A robot controller characterized in that the communication means is concealed so that the slave controller is virtually recognized as a part of the master controller. マスタコントローラと、通信手段で前記マスタコントローラに接続され、コントロール対象となる機器の状態に応じて自律的に再構成可能なスレーブコントローラと、前記マスタコントローラに接続されたソフトウェア開発装置とを備え、前記ソフトウェア開発装置は、前記通信手段を隠蔽し、スレーブコントローラが自律的に再構成した結果がマスタコントローラを通じてソフトウェア開発装置に情報伝達されることで、スレーブコントローラがバーチャルにマスタコントローラの一部として認識されるように構成したことを特徴とするロボットコントローラ。A master controller, a slave controller connected to the master controller by a communication means and autonomously reconfigurable according to the state of a device to be controlled, and a software development device connected to the master controller, The software development device conceals the communication means, and the result of the autonomous reconfiguration performed by the slave controller is transmitted to the software development device through the master controller, whereby the slave controller is virtually recognized as a part of the master controller. A robot controller characterized in that it is configured as follows. 請求項1又は請求項2に記載のロボットコントローラにおいて、前記通信手段はルーティング機能を持つため複数個のスレーブコントローラを接続可能であり、この接続はプラグアンドプレイが可能で、前記ソフトウェア開発装置は、スレーブコントローラがプラグアンドプレイで接続された情報により、複数個のスレーブコントローラがバーチャルにマスタコントローラの一部として認識され、集中型のコントローラとして処理できるように構成したことを特徴とするロボットコントローラ。3. The robot controller according to claim 1, wherein the communication unit has a routing function, so that a plurality of slave controllers can be connected, and this connection can be plug-and-play. A robot controller characterized in that a plurality of slave controllers are virtually recognized as a part of a master controller based on information to which the slave controllers are connected by plug and play, and can be processed as a centralized controller. 請求項1〜請求項3のいずれかに記載のロボットコントローラにおいて、マスタコントローラとスレーブコントローラ間の通信、およびスレーブコントローラの再構成は、システムで規定された時間間隔内でリアルタイムに実行されることを特徴とするロボットコントローラ。The robot controller according to any one of claims 1 to 3, wherein the communication between the master controller and the slave controller and the reconfiguration of the slave controller are executed in real time within a time interval specified by the system. Characterized robot controller. 請求項1〜請求項3のいずれかに記載のロボットコントローラにおいて、マスタコントローラの通信は複数の仕様に対応していて、通信タイプの違う複数のスレーブコントローラが接続可能であり、これら複数のスレーブコントローラがバーチャルにマスタコントローラの一部として認識され、集中型のコントローラとして処理できるように構成したことを特徴とするロボットコントローラ。4. The robot controller according to claim 1, wherein communication of the master controller corresponds to a plurality of specifications, and a plurality of slave controllers having different communication types can be connected. A robot controller characterized in that the robot controller is virtually recognized as a part of the master controller and can be processed as a centralized controller. 請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、マスタコントローラを再構成可能としたことを特徴とするロボットコントローラ。6. The robot controller according to claim 1, wherein a master controller is reconfigurable. 請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、スレーブコントローラの通信部分はマスタコントローラからの再構成情報に応じて再構成し、以降の通信でマスタコントローラから送られてくるデータを再構成した状態でデシリアライズしてスレーブコントローラの処理部に渡すことを特徴とするロボットコントローラ。In the robot controller according to any one of claims 1 to 5, the communication part of the slave controller reconfigures according to reconfiguration information from the master controller, and transmits data transmitted from the master controller in subsequent communication. A robot controller, which is deserialized in a reconfigured state and transferred to a processing unit of a slave controller. 請求項6に記載のロボットコントローラにおいて、マスタコントローラの通信部分およびスレーブコントローラの通信部分は、マスタコントローラの再構成情報に応じていずれも再構成し、以降の通信ではマスタコントローラ側の通信部分は再構成した状態でデータをシリアライズし、スレーブコントローラ側では再構成した状態でデシリアライズしてデータをスレーブコントローラの処理部に渡すことを特徴とするロボットコントローラ。7. In the robot controller according to claim 6, the communication part of the master controller and the communication part of the slave controller are both reconfigured in accordance with the reconfiguration information of the master controller. A robot controller characterized in that data is serialized in a configured state and deserialized in a reconfigured state on the slave controller side and the data is passed to a processing unit of the slave controller. 請求項7又は請求項8に記載のロボットコントローラにおいて、マスタコントローラとスレーブコントローラ間の通信部分はマスタコントローラからのリセット信号に応じて再構成し、標準通信構成に復帰できることを特徴とするロボットコントローラ。9. The robot controller according to claim 7, wherein a communication portion between the master controller and the slave controller can be reconfigured in response to a reset signal from the master controller, and can return to a standard communication configuration. 請求項6に記載のロボットコントローラにおいて、スレーブコントローラの再構成結果と同等の再構成がマスタコントローラで実行され、スレーブコントローラの動作をマスタコントローラ内で模擬することを特徴とするロボットコントローラ。7. The robot controller according to claim 6, wherein a reconfiguration equivalent to a reconfiguration result of the slave controller is executed by the master controller, and the operation of the slave controller is simulated in the master controller. 請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、何らかの入出力デバイスを取り扱うスレーブコントローラでは、動作時に実際の入出力デバイスが無いときに入出力動作を模擬的に生成するように再構成することを特徴とするロボットコントローラ。In the robot controller according to any one of claims 1 to 5, a slave controller that handles some input / output device re-creates the input / output operation in a simulated manner when there is no actual input / output device during operation. A robot controller characterized by comprising. 請求項1〜請求項5のいずれかに記載のロボットコントローラにおいて、何らかの入出力デバイスを取り扱うスレーブコントローラでは、動作時に実際の入出力デバイスが無いときに入出力動作のデータ部分のみを模擬的に生成するように再構成することを特徴とするロボットコントローラ。In the robot controller according to any one of claims 1 to 5, a slave controller handling some input / output device simulates only a data portion of the input / output operation when there is no actual input / output device during operation. A robot controller characterized in that the robot controller is reconfigured so as to perform the operation. 請求項1〜請求項12のいずれかに記載のロボットコントローラにおいて、内部回路の再構成で、現構成回路から別の回路に変更する場合、該当コントローラの入出力信号ピンをハイインピーダンスに保ち、又は入力モードに変更してから、内部回路構成を変更することを特徴とするロボットコントローラ。In the robot controller according to any one of claims 1 to 12, when the internal circuit is reconfigured and the current configuration circuit is changed to another circuit, the input / output signal pins of the controller are kept at high impedance, or A robot controller characterized by changing an internal circuit configuration after changing to an input mode. 請求項1〜請求項10のいずれかに記載のロボットコントローラにおいて、再構成の単位を、ロボットの構造、モータの種類、センサの種類、通信方法などに最適化されたハード的なブロックから選択するようにしたことを特徴とするロボットコントローラ。In the robot controller according to any one of claims 1 to 10, a unit of reconfiguration is selected from hardware blocks optimized for a robot structure, a motor type, a sensor type, a communication method, and the like. A robot controller characterized in that: 請求項1〜請求項14のいずれかに記載のロボットコントローラにおいて、スレーブコントローラは、マスタコントローラと通信可能な子コントローラと、再構成可能な孫コントローラとで構成されることを特徴とするロボットコントローラ。The robot controller according to any one of claims 1 to 14, wherein the slave controller comprises a child controller capable of communicating with the master controller and a reconfigurable grandchild controller.
JP2003072725A 2003-03-17 2003-03-17 Robot controller Expired - Fee Related JP3764150B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003072725A JP3764150B2 (en) 2003-03-17 2003-03-17 Robot controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003072725A JP3764150B2 (en) 2003-03-17 2003-03-17 Robot controller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005349515A Division JP2006088330A (en) 2005-12-02 2005-12-02 Robot controller

Publications (2)

Publication Number Publication Date
JP2004276186A true JP2004276186A (en) 2004-10-07
JP3764150B2 JP3764150B2 (en) 2006-04-05

Family

ID=33288842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003072725A Expired - Fee Related JP3764150B2 (en) 2003-03-17 2003-03-17 Robot controller

Country Status (1)

Country Link
JP (1) JP3764150B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009064125A2 (en) * 2007-11-14 2009-05-22 Samsung Heavy Ind. Co., Ltd. Embedded robot control system
JP2013066962A (en) * 2011-09-21 2013-04-18 Seiko Epson Corp Robot control device, and robot system
JP2016186725A (en) * 2015-03-27 2016-10-27 三菱重工業株式会社 Control device, movable body, control method, and program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009064125A2 (en) * 2007-11-14 2009-05-22 Samsung Heavy Ind. Co., Ltd. Embedded robot control system
WO2009064125A3 (en) * 2007-11-14 2009-07-16 Samsung Heavy Ind Embedded robot control system
US9086694B2 (en) 2007-11-14 2015-07-21 Samsung Heavy Ind. Co., Ltd. Embedded robot control system
JP2013066962A (en) * 2011-09-21 2013-04-18 Seiko Epson Corp Robot control device, and robot system
US9399289B2 (en) 2011-09-21 2016-07-26 Seiko Epson Corporation Robot control apparatus and robot system
US9950425B2 (en) 2011-09-21 2018-04-24 Seiko Epson Corporation Robot control apparatus and robot system
JP2016186725A (en) * 2015-03-27 2016-10-27 三菱重工業株式会社 Control device, movable body, control method, and program

Also Published As

Publication number Publication date
JP3764150B2 (en) 2006-04-05

Similar Documents

Publication Publication Date Title
KR970703560A (en) APPLICATION SPECIFIC PROCESSOR AND DESIGN METHOD FOR SAME
US6326806B1 (en) FPGA-based communications access point and system for reconfiguration
US7650438B2 (en) Apparatus and methods for communicating with programmable logic devices
CA2446983A1 (en) Programmable logic device including programmable interface core and central processing unit
EP0620933A1 (en) Reconfigureable interface between a computer and peripheral devices
JP2001506785A (en) IO and memory bus system for DFP and unit with programmable 2D or multidimensional cell structure
CN108009108A (en) Flexible mobile equipment and the connection of the automotive system with usb hub
CN104698950A (en) Peripheral device control method, microcontroller, upper computer and system
JP2007034398A (en) Control system and communication method
JP2006088330A (en) Robot controller
JP3764150B2 (en) Robot controller
CN109491959B (en) Programmable logic device configurator
KR20020014657A (en) Operating system for a dynamically re-configurable pc
WO2003050705A3 (en) Method and system for managing hardware resources to implement system acquisition using an adaptive computing architecture
CN104750638B (en) A kind of interface adapter and the method for cutting out compatible with Wishbone
Rios-Navarro et al. A 20Mevps/32Mev event-based USB framework for neuromorphic systems debugging
Fiack et al. Dynamic parallel reconfiguration for self-adaptive hardware architectures
JP2003127080A (en) Built-in type control computer
JP2001092517A (en) Fa network and robot controller
KR100406532B1 (en) An operating system implementation method for embedded systems
Brandt et al. Flexible, fpga-based electronics for modular robots
CN208781205U (en) A kind of chain control device and its experiment porch
JP3074978B2 (en) Emulation device
Fotouhi et al. Designing a controller for LEGO robot using C++ language
Okada et al. Device Distributed Approach to Expandable Robot System Using Intelligent Device with Super-Microprocessor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060118

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100127

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110127

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120127

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130127

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130127

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees