(57)【要約】  【課題】複数のコンピュータが並存する状態で、リアルタイムで外部Ｉ／Ｏ機器の情報を得ることができるロボットコントローラを提供する。  【解決手段】本発明は、駆動制御コンピュータ２０２と、指示入力コンピュータ２０１と、駆動制御コンピュータ２０２と指示入力コンピュータ２０１との両方からデータが書き込まれ、または両方からデータが読み出されることが可能な制御レジスタ２１０を備え、外部Ｉ／Ｏ機器１０５を接続して制御レジスタ２１０へアクセスすることにより外部Ｉ／Ｏ機器１０５のＩ／Ｏ制御を行うＩ／Ｏ制御部２０７と、駆動制御コンピュータ２０２と指示入力コンピュータ２０１との両方に接続され、制御レジスタ２１０へのデータの書き込み可否を制御するアクセス制御部２０６と、を備えることを特徴とするロボットコントローラ１０６Ａである。  【選択図】図２
2008083761.tif 000002
【特許請求の範囲】
【請求項１】
駆動部に所定動作を行わせるために制御出力を行う駆動制御コンピュータと、
前記駆動制御コンピュータに前記所定動作を行うように指示するための指示入力コンピュータと、
前記駆動制御コンピュータと前記指示入力コンピュータとの両方からデータが書き込まれ、または両方からデータが読み出されることが可能な制御レジスタを備え、外部Ｉ／Ｏ機器を接続して前記制御レジスタへアクセスすることにより前記外部Ｉ／Ｏ機器のＩ／Ｏ制御を行うＩ／Ｏ制御部と、
前記駆動制御コンピュータと前記指示入力コンピュータとの両方に接続され、前記制御レジスタへのデータの書き込み可否を制御するアクセス制御部と、
を備えることを特徴とするロボットコントローラ。
【請求項２】
前記アクセス制御部が、前記制御レジスタへのデータの書き込みを、前記駆動制御コンピュータと前記指示入力コンピュータとのうちいずれか一方からに限定することを特徴とする請求項１に記載のロボットコントローラ。
【請求項３】
前記アクセス制御部が、前記制御レジスタへのデータの書き込みを前記駆動制御コンピュータと前記指示入力コンピュータとの両方に許可するか、または、一方のみに許可するかを切り替えることが可能なモード切替フラグを備えることを特徴とする請求項１に記載のロボットコントローラ。
【請求項４】
前記駆動制御コンピュータと前記指示入力コンピュータとの両方からデータが書き込まれ、または両方からデータが読み出されることが可能であり、前記アクセス制御部により、データの書き込み可否が制御される共有メモリをさらに備えることを特徴とする請求項１〜３のいずれか１項に記載のロボットコントローラ。
【請求項５】
外部機器からの情報を取得して前記共有メモリに格納する情報取得部をさらに備えることを特徴とする請求項４に記載のロボットコントローラ。
【請求項６】
モータの回転位置の変位をカウントし、カウントした値を前記共有メモリに格納するカウンタをさらに備えることを特徴とする請求項４に記載のロボットコントローラ。
【請求項７】
請求項１〜６のいずれか１項に記載のロボットコントローラを備えることを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピュータを備えた分散型のロボットコントローラ、および当該ロボットコントローラを備えたロボットに関する。
【背景技術】
【０００２】
従来、ロボットコントローラは、コンピュータを１個だけ用いる集中型のものが一般的であったが、最近は、ロボットシステムの高度化、複雑化および大規模化に伴い、コンピュータを複数個利用する分散型のロボットコントローラが使用されるようになってきた。
【０００３】
分散型のロボットコントローラにおいては、各々が独立して処理を実行しているが、相互に共有すべきデータに関しては、コンピュータ間に設けたバスによる通信や、共有メモリを介したデータ送受でデータの共有を実現している。
【０００４】
例えば、図７に示すように、指示入力機器７１０からの指示に従い、ロボットの動作内容を決定する指示入力コンピュータ７０１と、指示入力コンピュータ７０１からの動作指示に従い、センサ７２０からのセンサ情報をもとにモータ７３０の駆動制御をする駆動制御コンピュータ７０２とを備えているロボットコントローラ７００においては、指示入力コンピュータ７０１と駆動制御コンピュータ７０２の２個のコンピュータを実装することにより、分散制御を実現している。
【０００５】
図７においては、指示入力コンピュータ７０１のバス７０３に接続されたＩ／Ｏ制御部７０７の入出力状態を、駆動制御コンピュータ７０２が取得するためには、指示入力コンピュータ７０１と駆動制御コンピュータ７０２間をつなぐバス７０５を経由するか、あるいは、バス７０３とバス７０４との両方からアクセス可能な共有メモリ７０６を介したデータ転送を実行している（例えば、特許文献１参照）。
【特許文献１】特開２００１−９２７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図８（ａ）に、駆動制御コンピュータ７０２が、指示入力コンピュータ７０１のバス７０３に接続されたＩ／Ｏ制御部７０７の入出力状態を、コンピュータ間のバス７０５を使って取得する場合のフローチャートを示す。
【０００７】
Ｓ８０１では、駆動制御コンピュータ７０２が、Ｉ／Ｏ制御部７０７における入出力状態の取得を、バス７０５経由で、指示入力コンピュータ７０１に要求する。
【０００８】
Ｓ８０２では、要求を受けた指示入力コンピュータ７０１がバス７０３経由でＩ／Ｏ制御部７０７に入出力状態の読み出しアクセスをする。
【０００９】
Ｓ８０３では、指示入力コンピュータ７０１がＩ／Ｏ制御部７０７の入出力状態を取得する。
【００１０】
Ｓ８０４では、指示入力コンピュータ７０１が、Ｉ／Ｏ制御部７０７における入出力状態を、バス７０５経由で、駆動制御コンピュータ７０２に送信する。
【００１１】
このように、バス７０５を経由する場合には、指示入力コンピュータ７０１と駆動制御コンピュータ７０２間のデータ通信時間分の遅延時間が発生するため、Ｉ／Ｏ制御部７０７の入出力状態の取得に時間遅れが発生する。さらに、指示入力コンピュータ７０１のＩ／Ｏ制御部７０７に読み出しアクセスしている処理時間が時間遅れを増加させる。
【００１２】
図８（ｂ）に、駆動制御コンピュータ７０２が、指示入力コンピュータ７０１のバス７０３に接続されたＩ／Ｏ制御部７０７の入出力状態を、共有メモリ７０６を使って取得する場合のフローチャートを示す。
【００１３】
Ｓ８０５では、指示入力コンピュータ７０１がバス７０３経由でＩ／Ｏ制御部７０７に入出力状態の読み出しアクセスをする。
【００１４】
Ｓ８０６では、指示入力コンピュータ７０１がＩ／Ｏ制御部７０７の入出力状態を取得する。
【００１５】
Ｓ８０７では、指示入力コンピュータ７０１が、Ｉ／Ｏ制御部７０７における入出力状態を共有メモリ７０６へ書き込む。
【００１６】
Ｓ８０８では、駆動制御コンピュータ７０２が、Ｉ／Ｏ制御部７０７における入出力状態を共有メモリ７０６から読み出す。
【００１７】
このように、図８（ａ）と同様に、共有メモリ７０６を介した場合にも、指示入力コンピュータ７０１がその都度、共有メモリ７０６にＩ／Ｏ制御部７０７の入出力状態を書き込まなければならないため、その分、時間遅れと処理時間の増加が発生する。指示入力コンピュータ７０１が、駆動制御コンピュータ７０２のバス７０４に接続されたＩ／Ｏ制御部７０８の入出力状態を取得する場合も、同様である。
【００１８】
そこで、本発明は、複数のコンピュータが並存する状態で、リアルタイムで外部Ｉ／Ｏ機器の情報を得ることができるロボットコントローラ、および当該ロボットコントローラを備えるロボットを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するために、請求項１に記載のロボットコントローラは、駆動部に所定動作を行わせるために制御出力を行う駆動制御コンピュータと、駆動制御コンピュータに所定動作を行うように指示するための指示入力コンピュータと、駆動制御コンピュータと指示入力コンピュータとの両方からデータが書き込まれ、または両方からデータが読み出されることが可能な制御レジスタを備え、外部Ｉ／Ｏ機器を接続して制御レジスタへアクセスすることにより外部Ｉ／Ｏ機器のＩ／Ｏ制御を行うＩ／Ｏ制御部と、駆動制御コンピュータと指示入力コンピュータとの両方に接続され、制御レジスタへのデータの書き込み可否を制御するアクセス制御部と、を備えることを特徴とする。
【００２０】
請求項２に記載の発明は、上記請求項１に記載のロボットコントローラにおいて、アクセス制御部が、制御レジスタへのデータの書き込みを、駆動制御コンピュータと指示入力コンピュータとのうちいずれか一方からに限定することを特徴とする。
【００２１】
請求項３に記載の発明は、上記請求項１に記載のロボットコントローラにおいて、アクセス制御部が、制御レジスタへのデータの書き込みを駆動制御コンピュータと指示入力コンピュータとの両方に許可するか、または、一方のみに許可するかを切り替えることが可能なモード切替フラグを備えることを特徴とする。
【００２２】
請求項４に記載の発明は、上記請求項１〜３のいずれか１項に記載のロボットコントローラにおいて、駆動制御コンピュータと指示入力コンピュータとの両方からデータが書き込まれ、または両方からデータが読み出されることが可能であり、アクセス制御部により、データの書き込み可否が制御される共有メモリをさらに備えることを特徴とする。
【００２３】
請求項５に記載の発明は、上記請求項４に記載のロボットコントローラにおいて、外部機器からの情報を取得して共有メモリに格納する情報取得部をさらに備えることを特徴とする。
【００２４】
請求項６に記載の発明は、上記請求項４に記載のロボットコントローラにおいて、モータの回転位置の変位をカウントし、カウントした値を共有メモリに格納するカウンタをさらに備えることを特徴とする。
【００２５】
請求項７に記載のロボットは、上記請求項１〜６のいずれか１項に記載のロボットコントローラを備えることを特徴とする。
【発明の効果】
【００２６】
請求項１に記載の発明においては、駆動制御コンピュータと指示入力コンピュータとの両方からデータが書き込まれ、または両方からデータが読み出されることが可能な制御レジスタを備えることにより、外部Ｉ／Ｏ機器の情報をコンピュータ間で通信したりする必要がなくなり、時間遅れと処理時間の増加を防ぐことができる。さらに、駆動制御コンピュータと指示入力コンピュータとの両方に接続されたアクセス制御部を備えることにより、制御レジスタへのデータの書き込み可否を制御することができる。すなわち、制御レジスタへのデータの書き込みと、それに伴う外部Ｉ／Ｏ機器の制御とを一方のコンピュータからに限定することができ、また、両コンピュータから制御レジスタの同じアドレス領域への書き込みアクセスが発生した場合にも、要求アドレス領域に対する書き込みアクセスをいずれのコンピュータに許可するかを制御できる。そのため、外部Ｉ／Ｏ機器の制御に生じる不具合を低減でき、外部Ｉ／Ｏ機器に安定した動作を行わせることができる。
【００２７】
請求項２に記載の発明においては、アクセス制御部が、制御レジスタへのデータの書き込みを一方のコンピュータからに限定するので、外部Ｉ／Ｏ機器の制御に生じる不具合を低減することができ、外部Ｉ／Ｏ機器に安定した動作を行わせることができる。
【００２８】
請求項３に記載の発明においては、アクセス制御部が、制御レジスタへのデータの書き込みを両コンピュータに許可するか、または、どちらか一方のみに許可するかを切り替えることが可能なモード切替フラグを備えることにより、汎用性の高いロボットコントローラとすることができる。
【００２９】
請求項４に記載の発明においては、共有メモリは、アクセス制御部により両コンピュータからのデータの書き込み可否を制御されるので、その効率性を高めることができる。
【００３０】
請求項５に記載の発明においては、情報取得部は、外部機器からの情報を取得し、当該情報が共有メモリに格納されることにより、駆動制御コンピュータと指示入力コンピュータとが、外部機器の情報を共有することができるので、どのコンピュータからもリアルタイムで外部機器の情報を得ることができ、また、コンピュータ間のトラフィックを低減することができる。
【００３１】
請求項６に記載の発明においては、カウンタは、モータの回転位置の変位をカウントし、カウントした値を共有メモリに格納するので、駆動制御コンピュータと指示入力コンピュータとが、コンピュータ間の通信手段を使わずに、カウンタがカウントした値を読み出すことができ、モータの回転位置や回転速度などを即座に算出できる。つまり、ロボット自体の位置や移動速度も認識することができる。モータの情報は、両コンピュータで必要となる場合が多いので、コンピュータ間の通信手段を使わないことにより、コンピュータ間のトラフィックを低減することができる。
【００３２】
請求項７に記載の発明においては、上記請求項１〜６のいずれか１項に記載のロボットコントローラを備えることにより、不具合が少ない、汎用性の高いロボットとすることができる。
【発明を実施するための最良の形態】
【００３３】
以下に説明するロボットは、コンピュータを複数個利用する分散型のロボットコントローラを備えるロボットであり、分散型のロボットコントローラは、例えば、自律移動ロボット、自動掃除ロボットや案内ロボットなどの一般的なロボットのみならず自動車などにも適用できる。
（実施形態１）
図１に、本発明のロボットコントローラを備えたロボットを示す。図１（ａ）は、正面から見た図であり、図１（ｂ）は、側面から見た図である。
【００３４】
ロボット１００は、図１（ａ）に示すように、指示入力機器１０１（例えば、タッチパネルモニター）と、移動用車輪１０２と、駆動部であるモータ１０３と、エンコーダ１０４と、外部Ｉ／Ｏ機器１０５（例えば、段差検出センサ）と、ロボットコントローラ１０６と、センサ１０７（例えば、レーザーレーダーセンサやジャイロセンサ）と、外部機器１０８（例えば、センサ自己診断器）と、を基本構成としている。
【００３５】
指示入力機器１０１は、ユーザーからの指令を受け取り、その情報をロボットコントローラ１０６へ伝える。
【００３６】
移動用車輪１０２は、モータ１０３の回転によって駆動される。ロボット１００が倒れないように、補助輪１０９を設けるとよい。また、ロボット１００が倒れないように、移動用車輪１０２は、キャタピラーのようなものでもよい。
【００３７】
モータ１０３は、ロボットコントローラ１０６からの速度指令に従った回転速度で回転し、移動用車輪１０２を駆動する。
【００３８】
エンコーダ１０４は、モータ１０３の回転位置の変位情報をパルス信号として出力し、ロボットコントローラ１０６へ伝える。
【００３９】
外部I／O機器１０５として、例えば、段差検出センサは、ロボット１００が乗り越えられないような段差や、落下する危険があるような段差を検出し、デジタル信号としてロボットコントローラ１０６に伝える。
【００４０】
ロボットコントローラ１０６は、指示入力機器１０１を通したユーザーからの指示に従い、動作内容を決定した上で、外部Ｉ／Ｏ機器１０５とエンコーダ１０４とからの情報をもとにモータ１０３を制御してロボット１００を動作させる。
【００４１】
センサ１０７として、例えば、レーザーレーダーセンサは、ロボット１００の周辺物体までの距離を測定し、その情報をロボットコントローラ１０６に伝える。
【００４２】
外部機器１０８として、例えば、センサ自己診断器は、レーザーレーダーセンサなどのセンサが故障して正常動作ができなくなった場合に、故障状態をパルス信号として、ロボットコントローラ１０６に伝える。
【００４３】
図２に、図１のロボットコントローラ１０６の内部構成の一例を示す。
【００４４】
ロボットコントローラ１０６Ａは、図２に示すように、指示入力コンピュータ２０１と、駆動制御コンピュータ２０２と、アクセス制御部２０６と、Ｉ／Ｏ制御部２０７と、共有メモリ２０８と、情報取得部２０９と、を基本構成としている。
【００４５】
指示入力コンピュータ２０１は、指示入力機器１０１からの指示入力を受けてロボットの動作内容を決定し、駆動制御コンピュータ２０２に指示を出す。また、バス２０３を通して制御レジスタ２１０にデータを書き込み、外部Ｉ／Ｏ機器１０５への制御命令を出す。
【００４６】
駆動制御コンピュータ２０２は、指示入力コンピュータ２０１が処理した内容に対して、センサ１０７からのセンサ情報をもとにモータ１０３の駆動制御を実行する。また、駆動制御コンピュータ２０２は、バス２０４を通して制御レジスタ２１０にデータを書き込み、外部Ｉ／Ｏ機器１０５に制御命令を出す。なお、地図記憶部、位置記憶部や経路生成部（図示せず）は駆動制御コンピュータ２０２に備わっている。
【００４７】
アクセス制御部２０６は、指示入力コンピュータ２０１と駆動制御コンピュータ２０２とから、Ｉ／Ｏ制御部２０７の制御レジスタ２１０または共有メモリ２０８への書き込みアクセスを調停して、しかるべき制御レジスタ２１０または共有メモリ２０８とのアクセスを仲介する。
【００４８】
アクセス制御部２０６は、指示入力コンピュータ２０１および駆動制御コンピュータ２０２からＩ／Ｏ制御部２０７の制御レジスタ２１０へのデータの書き込み許可制御機能を持っており、両コンピュータにデータの書き込みアクセスを許可することも、どちらか一方のみにデータの書き込みアクセスを許可することも可能である。
【００４９】
モード切替フラグ２１１は、アクセス制御部２０６におけるデータの書き込み許可制御機能を切り替えるためのフラグであり、制御レジスタ２１０または共有メモリ２０８へのデータの書き込みアクセスを両コンピュータから可能とするマルチアクセスモードか、一方のコンピュータのみからに限定する限定アクセスモードかを切り替える。モード切替フラグ２１１は、各コンピュータより制御できる、書き換え可能なレジスタである。
【００５０】
モード切替フラグ２１１は、制御レジスタ２１０用と共有メモリ２０８用とを別々に備えている。さらに、制御レジスタ２１０が複数ある場合は、制御レジスタ２１０と同じ数だけ備えてあり、個々の制御レジスタ２１０において、データの書き込み許可制御機能の切り替えが可能である。
【００５１】
Ｉ／Ｏ制御部２０７は、指示入力コンピュータ２０１および駆動制御コンピュータ２０２からの命令により、アクセス制御部２０６経由で外部Ｉ／Ｏ機器１０５の入出力を制御する。
【００５２】
共有メモリ２０８は、アクセス制御部２０６経由で、指示入力コンピュータ２０１および駆動制御コンピュータ２０２の両コンピュータからデータが書き込まれ、または両コンピュータからデータが読み出されることが可能である。
【００５３】
情報取得部２０９は、外部機器１０８からの情報を取得し、取得した情報を指示入力コンピュータ２０１および駆動制御コンピュータ２０２が読み出すデータに変化させ、共有メモリ２０８に格納する。
【００５４】
ここで、コンピュータは、指示入力コンピュータ２０１と駆動コンピュータ２０２との2個だけでならない必要はなく、アクセス制御部２０６に接続されていれば、3個以上の構成でも良い。
【００５５】
また、情報取得部２０９への入力は、外部機器１０８からの入力に限られず、例えば、指示入力コンピュータ２０１または駆動制御コンピュータ２０２からの入力でもよい。
【００５６】
なお、図４に示すように、指示入力コンピュータ２０１および駆動制御コンピュータ２０２からの信号を受け取り、それぞれの状態を監視するウォッチドッグタイマー４０９を備え付け、ウォッチドッグ結果を共有メモリ２０８の特定のアドレス領域に格納しておけば、指示入力コンピュータ２０１および駆動制御コンピュータ２０２が、お互いの状態を、共有メモリ２０８へ読み出しアクセスすることにより、認識することができる。
【００５７】
次に、図２、および、図３（ａ）（ｂ）にもとづいて、実施形態１のロボットコントローラ１０６Ａの動作について説明する。
【００５８】
図３（ａ）は、指示入力コンピュータ２０１と駆動制御コンピュータ２０２の両コンピュータから、あるいは、どちらか一方から、制御レジスタ２１０または共有メモリ２０８に対してアクセスが発生した場合のフローチャートを示す。
【００５９】
Ｓ３０１では、指示入力コンピュータ２０１、駆動制御コンピュータ２０２の両方から、あるいは、どちらか一方から、バス２０３、バス２０４を介して、制御レジスタ２１０または共有メモリ２０８へのデータの書き込みアクセス、あるいは制御レジスタ２１０または共有メモリ２０８からのデータの読み出しアクセスが発生する。
【００６０】
Ｓ３０２では、アクセス制御部２０６は、アクセス要求のあったコンピュータがどちらか一方なのか、両方なのかを判断し、両方の場合は、Ｓ３０３へ進み、どちらか一方の場合は、Ｓ３１５へと進む。
【００６１】
Ｓ３０３では、アクセス制御部２０６は、両コンピュータがアクセスするアドレス領域が、同じか、異なるかを判断し、同じ場合は、Ｓ３０４へ進み、異なる場合は、Ｓ３１５へと進む。
【００６２】
Ｓ３０４では、アクセス制御部２０６は、両コンピュータにおけるアクセスの種類が、書き込みなのか、読み出しなのかを判断し、書き込みの場合は、Ｓ３０５へ進み、読み出しの場合には、Ｓ３１３へ進む。
【００６３】
Ｓ３０５では、モード切替フラグ２１１が、マルチアクセスモードなのか、限定アクセスモードなのかを判断し、マルチアクセスモードの場合は、Ｓ３０６へ進み、限定アクセスモードの場合はＳ３１１へ進む。
【００６４】
Ｓ３０６は、両方のコンピュータから、同じアドレス領域に対する書き込みアクセスが発生しており、モード切替フラグ２１１がマルチアクセスモードになっているときに分岐してくる処理部分となる。Ｓ３０６では、アクセス制御部２０６は、両コンピュータからのアクセスに対して、アクセス順、優先順位などから、要求アドレス領域に対するアクセス権をいずれのコンピュータに開放するかを調停する。
【００６５】
Ｓ３０７では、アクセス制御部２０６は、Ｓ３０６でアクセス権を獲得したコンピュータに対して、バスを開放し、要求アドレス領域に対して書き込み動作を許可する。
【００６６】
同時に、アクセス権を獲得できなかったコンピュータに対しては、書き込み動作を禁止し、待機させる。
【００６７】
Ｓ３０８では、アクセス権を獲得したコンピュータは、要求アドレス領域に対する書き込みを完了する。
【００６８】
Ｓ３０９では、アクセス制御部２０６は、待機させていたコンピュータに対して、バスを開放し、要求アドレス領域に対して書き込みアクセスを許可する。
【００６９】
Ｓ３１０では、２番目にアクセス権を獲得したコンピュータは、要求アドレス領域に対する書き込みを完了する。
【００７０】
Ｓ３１１は、両方のコンピュータから、同じアドレス領域に対して書き込みアクセスが発生しており、モード切替フラグ２１１が限定アクセスモードになっているときに分岐してくる処理部分となる。Ｓ３１１では、アクセス制御部２０６は、限定アクセスモードにおいて、書き込みが許可されているコンピュータにのみバスを開放し、書き込み可能とする。
【００７１】
Ｓ３１２では、書き込みを許可されたコンピュータは、要求アドレス領域に対する書き込みを完了する。
【００７２】
Ｓ３１３は、両方のコンピュータから、同じアドレス領域からの読み出しアクセスが発生しているときに分岐してくる処理となる。Ｓ３１３では、アクセス制御部２０６は、アクセスのあったコンピュータすべてにバスを開放し、読み出し可能とする。
【００７３】
Ｓ３１４では、読み出しを許可されたコンピュータは、要求アドレス領域に対する読み出しを完了する。
【００７４】
Ｓ３１５は、一方のコンピュータから、書き込みまたは読み出しのアクセスがあったとき、あるいは、両方のコンピュータから、異なるアドレス領域に対して書き込みまたは読み出しのアクセスがあったときに分岐してくる処理となる。
【００７５】
Ｓ３１５では、アクセス制御部２０６は、アクセスをしたコンピュータすべてにバスを開放し、書き込みまたは読み出しを可能とする。
【００７６】
Ｓ３１６では、書き込みまたは読み出しを許可されたコンピュータは、要求アドレス領域に対する書き込みまたは読み出しを完了する。
【００７７】
図３（ｂ）は、情報取得部２０９が、外部機器１０８から所定時間毎に情報を取得して共有メモリ２０８に格納する場合のフローチャートを示す。
【００７８】
Ｓ３１７では、情報取得部２０９は、外部機器１０８から出てくる信号を受け取る。
【００７９】
Ｓ３１８では、情報取得部２０９は、取得した情報を指示入力コンピュータ２０１および駆動制御コンピュータ２０２が読み出すデータに変化させる処理をする。
【００８０】
Ｓ３１９では、情報取得部２０９は、処理した結果のデータを共有メモリ２０８の決められたアドレス領域に格納する。
【００８１】
それと並行して、指示入力コンピュータ２０１および駆動制御コンピュータ２０２は、図３（ａ）のフローチャートと同様のフローで、随時、情報取得部２０９が共有メモリ２０８に格納したデータを読み出す。
【００８２】
したがって、駆動制御コンピュータ２０２と指示入力コンピュータ２０１とが制御レジスタ２１０を共用することにより、駆動制御コンピュータ２０２または指示入力コンピュータ２０１が外部Ｉ／Ｏ機器１０５の情報を得る際に、コンピュータ間で通信したり、共有メモリ２０８を使用したりする必要がなくなるので、時間遅れと処理時間の増加を防ぐことができる。
【００８３】
アクセス制御部２０６は、制御レジスタ２１０へのデータの書き込みを一方のコンピュータからに限定することができるので、外部Ｉ／Ｏ機器１０５の制御に生じる不具合を低減することができ、外部Ｉ／Ｏ機器１０５に安定した動作を行わせることができる。
【００８４】
アクセス制御部２０６が、制御レジスタ２１０へのデータの書き込みを両コンピュータに許可するか、または、どちらか一方のみに許可するかを切り替え可能なモード切替フラグ２１１を備えることにより、汎用性の高いロボットコントローラとすることができる。
【００８５】
なお、共有メモリ２０８は、アクセス制御部２０６により両コンピュータからのデータの書き込み可否を制御されるので、その効率性を高めることができる。
【００８６】
また、情報取得部２０９は、外部機器１０８からの情報を取得し、当該情報が共有メモリ２０８に格納されることにより、駆動制御コンピュータ２０２と指示入力コンピュータ２０１とが、外部機器１０８の情報を共有することができるので、どのコンピュータからもリアルタイムで外部機器１０８の情報を得ることができ、また、コンピュータ間のトラフィックを低減することができる。
（実施形態２）
ロボット１００の基本構成については、実施形態１と同様である（図１参照）。
【００８７】
図５に、図１のロボットコントローラ１０６の内部構成の別の例を示す。
【００８８】
ロボットコントローラ１０６Ｃは、図５に示すように、指示入力コンピュータ２０１と、駆動制御コンピュータ２０２と、アクセス制御部２０６と、Ｉ／Ｏ制御部２０７と、共有メモリ２０８と、モータ１０３の回転位置の変位をカウントするカウンタであるパルスカウンタ５０９と、を基本構成としている。
【００８９】
図２に示す実施形態１とは、情報取得部２０９がパルスカウンタ５０９に置き換えられている点で異なる。パルスカウンタ５０９はエンコーダ１０４に接続されている。
【００９０】
パルスカウンタ５０９は、エンコーダ１０４から出力され、モータ１０３の回転位置の変位に伴ったパルス信号を受け取って、カウントし、カウントした値を共有メモリ２０８へ順次格納する。なお、パルスの数からモータ１０３の回転位置がわかり、パルスの幅からモータ１０３の回転速度がわかる。
【００９１】
ここで、モータ１０３とエンコーダ１０４とパルスカウンタ５０９とは、それぞれ一個ずつである必要はなく、モータ１０３とエンコーダ１０４とパルスカウンタ５０９とが同じ数ずつあれば、複数個あっても良い。
【００９２】
次に、図５および図６にもとづいて、実施形態２のロボットコントローラ１０６Ｃの動作について説明する。
【００９３】
図６は、パルスカウンタ５０９が、エンコーダ１０４からモータ１０３の回転位置の変位に伴ったパルス信号を取得して、パルス数をカウントし、共有メモリ２０８に格納する場合のフローチャートを示す。
【００９４】
Ｓ６０１では、パルスカウンタ５０９が、エンコーダ１０４から出力され、モータ１０３の回転位置の変位に伴ったパルス信号を取得する。
【００９５】
Ｓ６０２では、パルスカウンタ５０９が、受け取ったパルス信号のパルス数を、随時、カウントし、パルスカウント値を算出する。
【００９６】
Ｓ６０３では、パルスカウンタ５０９が、パルスカウント値をレジスタなどに保持する。
【００９７】
Ｓ６０４では、パルスカウンタ５０９が、レジスタなどに保持されたパルスカウント値を共有メモリ２０８の決められたアドレス領域に格納する。
【００９８】
それと並行して、指示入力コンピュータ２０１および駆動制御コンピュータ２０２は、図３（ａ）のフローチャートと同様のフローで、随時、パルスカウンタ５０９が共有メモリ２０８へ格納したデータを読み出す。
【００９９】
したがって、駆動制御コンピュータ２０２と指示入力コンピュータ２０１とが、コンピュータ間の通信手段を使わずに、モータ１０３の回転位置の変位に伴ったパルスカウント値を、共有メモリ２０８から読み出すことができるので、モータ１０３の回転位置や回転速度などを即座に算出できる。つまり、ロボット１００自体の位置や移動速度も認識することができる。モータ１０３の情報は、両コンピュータで必要となる場合が多いので、コンピュータ間の通信手段を使わないことにより、コンピュータ間のトラフィックを低減することができる。
【図面の簡単な説明】
【０１００】
【図１】本発明によるロボットの正面図および側面図である。
【図２】本発明によるロボットコントローラの内部構成（実施形態１）を示すブロック図である。
【図３】実施形態１において、各コンピュータが制御レジスタまたは共有メモリへアクセスする際のフローチャートである。
【図４】実施形態１の変形例を示すブロック図である。
【図５】本発明によるロボットコントローラの内部構成（実施形態２）を示すブロック図である。
【図６】実施形態２において、パルスカウンタが、エンコーダからモータの回転位置の変位に伴ったパルス信号を取得して、パルス数をカウントし、算出したパルスカウント値を共有メモリに格納する際のフローチャートである。
【図７】従来のロボットコントローラの内部構成を示すブロック図である。
【図８】従来のロボットコントローラにおけるコンピュータ間のデータ取得のフローチャートである。
【符号の説明】
【０１０１】
１００                                          ロボット
１０１，７１０                                  指示入力機器
１０２                                          移動用車輪
１０３，７３０                                  モータ
１０４                                          エンコーダ
１０５，７６０                                  外部Ｉ／Ｏ機器
１０６，１０６Ａ，１０６Ｂ，１０６Ｃ，７００    ロボットコントローラ
１０７，７２０                                  センサ
１０８                                          外部機器
１０９                                          補助輪
２０１，７０１                                  指示入力コンピュータ
２０２，７０２                                  駆動制御コンピュータ
２０３，２０４，２０５，７０３，７０４，７０５  バス
２０６                                          アクセス制御部
２０７，７０７，７０８                          Ｉ／Ｏ制御部
２０８，７０６                                  共有メモリ
２０９                                          情報取得部
２１０                                          制御レジスタ
２１１                                          モード切替フラグ
４０９                                          ウォッチドッグタイマー
５０９                                          パルスカウンタ
【図１】
2008083761.tif 000003
【図２】
2008083761.tif 000004
【図３】
2008083761.tif 000005
【図４】
2008083761.tif 000006
【図５】
2008083761.tif 000007
【図６】
2008083761.tif 000008
【図７】
2008083761.tif 000009
【図８】
2008083761.tif 000010