JP2004078895A - 分散制御システムおよび分散制御方法 - Google Patents
分散制御システムおよび分散制御方法 Download PDFInfo
- Publication number
- JP2004078895A JP2004078895A JP2003157566A JP2003157566A JP2004078895A JP 2004078895 A JP2004078895 A JP 2004078895A JP 2003157566 A JP2003157566 A JP 2003157566A JP 2003157566 A JP2003157566 A JP 2003157566A JP 2004078895 A JP2004078895 A JP 2004078895A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- command
- application program
- control
- motor
- 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.)
- Pending
Links
Images
Abstract
【構成】ロボット分散制御システム10は、第1コマンドを発行するホストコントローラ12と、このホストコントローラ12にツリー構造で接続された複数の通信コントローラ18とを含み、通信コントローラ18は、第1コマンドを解釈して制御パラメータを求めるか、もしくは、第1コマンドに応答してアプリケーションプログラムを実行することによって第2コマンドを発行し、その第2コマンドから制御パラメータを求める。いずれの場合にも、制御パラメータは通信コントローラ18からモータコントローラ20へ出力され、モータコントローラ20が複数のモータ22を制御する。
【効果】ホストコントローラ12と通信コントローラ18とで分担してモータ制御することにより、ホストコントローラ12の負荷を小さくできるとともに、両者間の通信負荷も軽減できる。
【選択図】 図1
【効果】ホストコントローラ12と通信コントローラ18とで分担してモータ制御することにより、ホストコントローラ12の負荷を小さくできるとともに、両者間の通信負荷も軽減できる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、分散制御システムおよび分散制御方法に関し、特にたとえばロボットの分散制御システムおよび分散制御方法に関する。
【0002】
【従来技術】
図14に示す従来のロボット分散制御システム2では、ホストコントローラ4aに、ハブ4bを介して、複数のモータドライバ4cがUSBによって接続されている。また、各モータドライバ4cには、モータ6aが1台ずつ接続されている。さらに、ホストコントローラ4aには、ハブ4bを介して、センサ6bを搭載したセンサボード4dも接続されている。このロボット分散制御システム2は、ホストコントローラ4aが各モータドライバ4cに対して、モータの制御コマンドを直接発行し、各モータドライバ4cは、このモータの制御コマンドを解釈してモータ6aを駆動することにより、ロボットの動きを制御している。
【0003】
この図14の従来技術と同様の従来技術が特許文献1に開示されている。
【0004】
【特許文献1】
特開2000−78891[H02P 8/14,8/00]
【0005】
【発明が解決しようとする課題】
いずれの従来技術においても、以下のような問題があった。すなわち、各モータは対応するモータドライバを介して、ホストコントローラにより制御される。したがって、各モータを制御するためには、ホストコントローラがすべてのモータの制御プログラムを持たなければならないばかりでなく、各モータのためにモータ制御コマンドが複雑になるので、ホストコントローラの負荷が大きくなる。さらに、各モータドライバにコマンドを送る必要があるので、ホストコントローラと各モータドライバとの間の通信負荷が大きくなる。
【0006】
それゆえに、この発明の主たる目的は、新規な分散制御システムおよび分散制御方法を提供することである。
この発明の他の目的は、ホストコントローラの負荷を小さくするとともに、通信負荷を小さくできる分散制御システムおよび分散制御方法を提供することである。
【0007】
【課題を解決するための手段】
第1発明に従った分散制御用コントローラは、上位コントローラからの第1コマンドを受信する受信手段、下位コントローラへの制御指令を出力する出力手段、およびプロセッサを備え、さらにプロセッサによって実行可能にアプリケーションプログラムが組み込まれていて、プロセッサは、第1コマンドに基づいて、またはアプリケーションプログラムを用いて、制御指令を求める。
【0008】
このとき、プロセッサは、第1コマンドに応答してアプリケーションプログラムを実行することによって、第2コマンドを発行するとともに、第1コマンドまたは第2コマンドに基づいて制御指令を求める、ようにしてもよい。
ただし、判定手段を設け、この判定手段によって第1コマンドに基づいてアプリケーションプログラムから第2コマンドを発行するかどうかを判定する、ようにしてもよい。
【0009】
第2発明に従った分散制御システムは、第1アプリケーションプログラムを実行して第1コマンドを発行する上位コントローラと、アクチュエータを駆動する下位コントローラと、上位コントローラからの第1コマンドを受信する受信手段、下位コントローラへの制御指令を出力する出力手段、およびプロセッサを備え、さらにプロセッサによって実行可能に第2アプリケーションプログラムが組み込まれていて、プロセッサは、第1コマンドに基づいて、または第2アプリケーションプログラムを用いて、制御指令を求める、中位コントローラとを備える。
【0010】
第3発明に従った分散制御システムは、第1プロセッサと第1アプリケーションプログラムとを組み込み、外部からの情報または指示により、第1アプリケーションプログラムに基づいて第1コマンドを発行する第1コントローラ、第1コントローラに接続され、第2プロセッサと、第2アプリケーションプログラムとを組み込んだ第2コントローラであって、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求める1または2以上の第2コントローラ、および第2コントローラに接続され、かつ制御パラメータに基づいて複数のアクチュエータを制御する第3コントローラを備える。
【0011】
このとき、第2コントローラは、第1コマンドに応答して第2アプリケーションプログラムを実行することによって第2コマンドを発行するととともに、第1コマンドまたは第2コマンドに基づいて制御パラメータを求める、ようにしてもよい。
【0012】
また、第2コントローラに、第1コマンドに基づき第2アプリケーションプログラムから第2コマンドを発行するかどうかを判定するための判定手段をさらに設けてもよい。
【0013】
第3コントローラに、複数のアクチュエータを含む第3コントローラの識別信号を第2コントローラに伝達する手段をさらに設けてもよい。
また、第3コントローラのかわりに、情報入力装置を接続した第2コントローラを少なくとも1つ設けてもよい。
【0014】
第4発明に従った分散制御方法は、第1プロセッサと第1アプリケーションプログラムとを組み込んだ第1コントローラ、第1コントローラに接続され、且つ第2プロセッサと第2アプリケーションプログラムとを組み込んだ第2コントローラ、および第2コントローラに接続され、かつ複数の駆動装置を制御する第3コントローラとを含む分散制御システムに適用され、(a)第1コントローラが、第1アプリケーションプログラムに基づいて第1コマンドを発行するステップ、(b)第2コントローラが、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求めるステップ、および(c)第3コントローラが、複数の駆動装置を制御パラメータに基づいて駆動するステップを含む。
【0015】
この場合も、ステップ(b)において、第2コントローラは、第1コマンドに応答して第2アプリケーションプログラムを実行することによって第2コマンドを発行するとともに、第1コマンドまたは第2コマンドに基づいて制御パラメータを求める、ようにしてもよい。
【0016】
【作用】
第1発明に従った分散制御用コントローラは、実施例でいえば通信コントローラに相当し、実施例でいえばホストコントローラに該当する上位コントローラからの第1コマンドを受信する。実施例の判定プログラムである判定手段を設け、この判定手段によって、第1コマンドを解釈して直接制御指令を出すか、または第1コマンドに基づいてアプリケーションプログラムから第2コマンドを発行するか、を判断する。第2コマンドを発行した場合には、その第2コマンドに基づいて制御指令を求める。そして、いずれかの方法で求めた制御指令が、モータのようなアクチュエータを制御する下位コントローラに与えられる。
【0017】
第2発明に従った分散制御システムでは、上位コントローラ(実施例のホストコントローラ)が第1アプリケーションプログラムを実行して第1コマンドを発行する。この第1コマンドが中位コントローラ(実施例の通信コントローラ)に与えられる。中位コントローラでは、プロセッサは、上述の方法と同様にして、第1コマンドから制御指令を求めるか、または第1コマンドから第2コマンドを発行し、その第2コマンドから制御指令を求める。制御指令は、アクチュエータを駆動するために下位コントローラへ与えられる。
【0018】
第3発明に従った分散制御システムでは、実施例のホストコントローラ、通信コントローラ、およびモータコントローラにそれぞれ該当する第1コントローラ、第2コントローラ、および第3コントローラが用いられる。第1コントローラは、外部からの情報または指示に応答して、第1アプリケーションプログラムに基づいて第1コマンドを発行する。上述と同様にして、第2コントローラが制御パラメータを求め、その制御パラメータが第3コントローラに与えられる。
【0019】
第4発明に従った分散制御方法では、ステップ(a)で、第1コントローラが、第1アプリケーションプログラムに基づいて第1コマンドを発行し、ステップ(b)で、第2コントローラが、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求める。そしてステップ(c)で、第3コントローラが、複数のアクチュエータを制御パラメータに基づいて駆動する。
【0020】
このように、従来システムでホストコントローラに組み込まれていたアプリケーションプログラムの一部を、中位(第2)コントローラに移動して、上位(第1)コントローラと中位(第2)コントローラとで複数のアクチュエータを分散制御するので、上位(第1)コントローラの負荷を軽減できるだけでなく、両者間の通信負荷を小さくできる。
【0021】
【発明の効果】
この発明によれば、上位(第1)コントローラの負荷を小さくできるとともに、上位(第1)コントローラと中位(第2)コントローラとの間の通信データ量を削減できるので、たとえば引き回しが楽な2線式シリアル通信によっても両者間で高速通信が可能となる。
【0022】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0023】
【実施例】
図1を参照して、この実施例のロボット分散制御システム10は、1台のホストコントローラ12を含み、このホストコントローラ12を親とするツリー構造となるように、複数のモーションコントローラ14がハブ16を介して、USBによりホストコントローラ12に接続されている。各モーションコントローラ14は通信コントローラ18とモータコントローラ20とを含み、それらはコネクタで接続されている。また、各モータコントローラ20にはロボットの各軸の動きを制御する複数のモータ22が接続され、これらのモータ22は通信コントローラ18により互いに独立に、または互いに協調して動くように駆動され得る。
【0024】
このような階層構造において、ホストコントローラ12が上位または第1のコントローラとして、通信コントローラ18が中位または第2のコントローラとして、そしてモータコントローラ20が下位または第3のコントローラとしてそれぞれ機能する。ただし、この実施例ではアクチュエータとしてモータ22を用いたが、分散制御されるべきアクチュエータとしては、このようなモータの他、電磁ソレノイド、ポンプなど任意の被制御装置が考えられる。
【0025】
また、ハブ16には、通信コントローラ18を介して、センサ26を搭載したセンサボード24などの各種ドータボードも接続されている。
【0026】
まず、ホストコントローラ12について説明する。このホストコントローラ12は、汎用プロセッサ(図示しない)を搭載し、1または2以上のアプリケーションプログラム28とモーションコントロールデバイスクラスドライバ(以下、「MCDクラスドライバ」という)30とが組み込まれている。MCDクラスドライバ30には、モーションコントローラ14を制御するための各種コマンドと、ロボット外部との情報をやり取りするためのインタフェースライブラリが組み込まれている。また、アプリケーションプログラム28は、ロボット全体の動作を管理するとともに、機能別に分散されたモーションコントローラ14毎の動作をインタフェースライブラリを介して制御している。
【0027】
また、ステレオカメラ32からの画像を処理する画像処理専用PC(Personal Computer)34とマイク36からの音声を処理する音声処理専用PC40とが、ハブ42を介して、イーサネット(商品名)によりホストコントローラ12に接続されている。ホストコントローラ12は、障害物などの画像認識結果や音声認識結果をイベントとして受け取り、以下に詳しく説明するモーションコントローラ14と情報をやり取りすることにより、ロボットの起動や停止などを制御する。
【0028】
なお、画像処理PC34に接続されたモニタ44によって処理画像を確認でき、また音声処理PC40にはスピーカ38も接続されているので、ロボットから音を出すことができる。また、ホストコントローラ12は、ハブ42を介して、無線LAN46によりロボット外部のネットワークに接続されている。
【0029】
次に、モーションコントローラ14を構成する通信コントローラ18について説明する。通信コントローラ18は、高性能のプロセッサ58(図2)を搭載しているので、従来ホストコントローラ12のみに組み込まれていた複数のアプリケーションプログラム28の一部を通信コントローラ18に組み込むことによって、ホストコントローラ12が果たす機能の一部を分担している。
【0030】
つまり、通信コントローラ18すなわち汎用プロセッサ58は、ホストコントローラ12からのコマンドを解釈して制御パラメータを求めるだけではなく、通信コントローラ18自身に組み込まれているアプリケーションプログラム48を使用してコマンドを発行し、制御パラメータを求めることができる。なお、アプリケーションプログラム48を使用するかどうかを判定するための判定プログラム49、コマンドを解釈して制御パラメータを求めるために使用するモーション制御プログラム50も、あらかじめ通信コントローラ18のメモリ(たとえば図2のフラッシュメモリ56)内に組み込まれている。
【0031】
この汎用プロセッサ58(図2)およびアプリケーションプログラム48により、各モータ22を互いに独立にあるいは互いに協調して駆動することができる。なお、ホストコントローラ12に接続可能な通信コントローラ18の台数は、ハブ16の通信プロトコルによって決まり、この実施例では8台まで接続できる。
【0032】
次に、通信コントローラ18とともにモーションコントローラ14を構成するモータコントローラ20について説明する。モータコントローラ20は通信コントローラ18に1台ずつ接続されており、汎用プロセッサ62(図2)およびモータドライバ68(図2)を搭載している。このモータドライバ68(図2)には、複数のモータ22が接続されており、これらのモータ22は通信コントローラ18からの制御パラメータに基づいて求められた制御コマンドによって駆動される。
【0033】
なお、ホストコントローラ12または通信コントローラ18が、各モータコントローラ20を識別できるように、モータコントローラ20ごとにID(識別番号)を登録することができる。
【0034】
さらに、通信コントローラ18には、センサ26が搭載されたセンサボード24などの各種ドータボードも接続できる。したがって、画像処理PC34による画像処理結果や音声処理PC40による音声処理結果だけではなく、任意のセンサ入力をホストコントローラ12を介さずに、通信コントローラ18にイベントとして直接入力することができる。
【0035】
ただし、センサボード24は通信コントローラ18へ情報を入力する情報入力装置として機能するが、このような情報入力装置としては、他に、カメラ(画像入力装置)やマイク(音声入力装置)なども利用可能であり、いずれの場合にも、モータコントローラ20に代えて通信コントローラ18とコネクタ接続することによって、モーションコントローラ14中に組み込むことができる。
【0036】
このように、ロボット分散制御システム10の複数のアプリケーションプログラム28のうちの一部をホストコントローラ12から通信コントローラ18に移動させることによって、ホストコントローラ12と通信コントローラ18にモータ22の制御を分担して行わせることができる。したがって、ホストコントローラ12が発行するコマンドの数を減らすことができるので、ホストコントローラ12の負荷を軽減できるとともに、ホストコントローラ12と通信コントローラ18との間の通信データ量を削減できるので、通信負荷を小さくすることができる。したがって、引き回しが楽な2線式シリアル通信によっても、高速通信が可能である。このため、通信コントローラ18に組み込むアプリケーションプログラム48が短い周期でモータ22の制御パラメータを変更しなければならないプログラムであっても、十分に対応できる。
【0037】
また、通信コントローラ18とモータコントローラ20とはコネクタで接続されているので、モータ22ごとモータコントローラ20を他のモータコントローラ20に組替えて接続することができ、モータ22ごとモーションコントローラ14を他のモーションコントローラ14と交換することもできる。すなわち、ホストコントローラ12とモーションコントローラ14が分散制御を行なっているので、モータ22の交換は、対応するアプリケーションプログラムをホストコントローラ12が持っている場合は、モーションコントローラ14ごとに、また対応するアプリケーションプログラムを通信コントローラ18が持っている場合は、モータコントローラ20ごとに行うことができる。このため、ロボット分散制御システム10の構成も任意かつ容易に変更することができる。
【0038】
なお、通信コントローラ18とモータコントローラ20とをコネクタ接続することによって、両者は、図2に示すように、アドレスバス19Aとデータバス19Dとによって、互いにデータ授受が可能とされている。
【0039】
次に、図2および図3を参照して、モーションコントローラ14での処理について説明する。
【0040】
まず、ホストコントローラ12は、先に説明したように、汎用プロセッサ(図示せず)を有し、この汎用プロセッサによってアプリケーションプログラム(第1アプリケーションプログラム)を実行する。そして、通信コントローラ18は、USBコントローラ52を介して、ホストコントローラ12から送られてくる図4に示すようなコマンドを第1コマンドとして受け取る。このコマンドの先頭にはたとえば2バイト識別コードが付与されていて、その識別コードに後続して、任意バイト数の引数が設定される。
【0041】
通信コントローラ18では、予め、汎用プロセッサ58が、フラッシュメモリ(2MB)56に組み込まれた判定プログラム49,モーション制御プログラム50およびアプリケーションプログラム48をSDRAM(8MB)54上に展開し、起動している。
【0042】
USBコントローラ52を介して、通信コントローラ18がホストコントローラ12から送られてくる第1コマンドを受け取ると、汎用プロセッサ58は判定プログラム49を使用してコマンドに含まれる識別コードを判定し、判定結果に応じてコマンドを直接モーション制御プログラム50に受け渡すか、或いはアプリケーションプログラム48に受け渡すかの処理を行う。
【0043】
たとえば、ホストコントローラ12は、モーションコントローラ14に対して「XX n1 n2 n3 n4」というコマンドを発行する。ここで、「XX」が識別コードであり、たとえばモータの回転絶対位置制御を行う場合には、「35」という識別コードが割り付けられる。また、たとえば2つのモータを組合せた2輪駆動移動台車の位置制御を行う場合には、「80」という識別コードが割り付けられる。
【0044】
識別コードに続く「n1 n2 n3 n4」の部分は引数であり、たとえばモータの回転絶対位置制御を行う場合には、制御可能な4つのモータの回転絶対位置を、順番に「−2147483647」から「2147483647」の範囲の4バイトデータで示している。引数の単位はモータに接続されているエンコーダカウンタのパルス数である。また、n1 n2 n3 n4=「−2147483648」は「Don’t Care」を表し、該当軸には、このコマンドを適用しない。また、2つのモータを組合せた2輪駆動移動台車の位置制御を行う場合には、一例として、n1は移動台車の移動量を、n2は移動中の最高速度を、n3は最高速度までの加速度を、n4は停止するまでの減速度を表す。
【0045】
判定プログラム49は、コマンドに含まれる識別コードを識別し、このコマンドを次にモーション制御プログラム50に渡すか、アプリケーションプログラム48に渡すかの判定を行う。具体的には、汎用プロセッサ58は、識別コードテーブル(図示せず)を内蔵していて、このテーブルに、各識別コード毎に、該当のコマンドがどのように処理されるべきかを予め登録している。したがって、判定プログラム49は、この識別コードテーブルを利用して、ホストコントローラ(上位コントローラ)12からのコマンド(第1コマンド)をどのプログラムに渡すかを判定する。
【0046】
たとえば、識別コードが「35」の場合、判定プログラム49を実行することによって、汎用プロセッサ58はコマンドがモータ個別の制御コマンドであると判定し、その第1コマンドをモーション制御プログラム50に受け渡す。コマンドを受け取ったモーション制御プログラム50は、第1コマンドを解釈し、引数の値を適切なモータ制御パラメータとして求め、モータコントローラ20に送る。
【0047】
また、識別コードが「80」の場合、判定プログラム49を実行することによって、汎用プロセッサ58は、コマンドが複数モータによる協調コマンドであると判定し、アプリケーションプログラム48に受け渡す。判定プログラム49の判定結果に応じて第1コマンドを受け取ったアプリケーションプログラム48は、第1コマンドを解釈し、各モータ軸に対する個別のコマンド(第2コマンド)を発行し、すでにSDRAM(8MB)54上に展開されているモーション制御プログラム50へ送る。第2コマンドを受け取ったモーション制御プログラム50は、第2コマンドを解釈し、引数の値を適切なモータ制御パラメータとして求め、モータコントローラ20に送る。
【0048】
そして、モータコントローラ20には図5に示すような共有メモリ60が設けられていて、この共有メモリ60には、各モータ番号毎に、は指令値およびフィードバック値が書き込まれる。指令値は、上記引数のパルス数である。フィードバック値は、指令値に従ってモータが実際に駆動されているときのパルス数である。したがって、フィードバック値が指令値に等しくなったとき、そのモータの制御は完了したと判断する。
【0049】
このように、モーションコントローラ14に含まれる通信コントローラ18は、上位コントローラすなわちホストコントローラ12からの第1コマンドを受け取り、その第1コマンドをモーション制御プログラム50に渡す。モーション制御プログラム50はその第1コマンドを解釈して下位コントローラすなわちモータコントローラ20へその第1コマンドに応じた制御指令(制御パラメータ)を与える。あるいは、通信コントローラ18は、上位コントローラすなわちホストコントローラ12からの第1コマンドを受け取り、アプリケーションプログラム(第2アプリケーションプログラム)を実行することによって、その第1コマンドに応じた第2コマンドを発行し、その第2コマンドをモーション制御プログラム50に渡す。モーション制御プログラム50は第2コマンドを解釈して下位コントローラすなわちモータコントローラ20へ制御指令(制御パラメータ)を与える。
【0050】
ただし、第1コマンドをモーション制御プログラム50に渡すか、アプリケーションプログラム48に渡すかの判定は、上述のように、判定プログラム49に基づき、汎用プロセッサ58が判断する。
【0051】
なお、この場合、図6に示すように、アプリケーションプログラム48では、モータ個別の制御コマンドとして、モーション制御プログラム50ヘ第2コマンド(図3)を発行せずに、直接、アプリケーションプログラム48内でモータ制御パラメータを求め、それをモータコントローラ20に送るようにしてもよい。
【0052】
また、この汎用プロセッサ58は、センサボード24に搭載されているセンサ26入力を、ホストコントローラ12を介さずに直接受け付けるので、ホストコントローラ12の負担を軽減することができる。
【0053】
次に、モータコントローラ20での処理について説明する。通信コントローラ18から送られてくるモータ制御パラメータは、共有メモリ60であるデュアルポートRAM(2MB)を介して、汎用プロセッサ62に受け渡される。つまり、図5に示すように、共有メモリ60に指令値が書き込まれる。また、モータを制御するためのモータ制御ライブラリはROM(256KB)66に格納されている。したがって、汎用プロセッサ62はモータ制御パラメータに対応するモータ制御コマンドをモータ制御ライブラリから選択して、モータドライバ68に送り、モータ22を駆動する。
【0054】
また、ディップ(DIP)スイッチ70によって、モータコントローラ20ごとに、メカニカルID情報をあらかじめ設定しておくことができ、そのメカニカルID情報は通信コントローラ18の汎用プロセッサ58に伝達される。汎用プロセッサ58はこのメカニカルID情報に基づき、ホストコントローラ12のアプリケーションプログラム28または通信コントローラ18のアプリケーションプログラム48を起動する。ここで、メカニカルID情報は、モータコントローラ20に与えられる。
【0055】
さらに、モータドライバ68には、モータ22の回転数の相対値を測定できるエンコーダ72や、絶対値を測定できるポテンショメータ74が連結されている。これらの測定結果は汎用プロセッサ62にフィードバックされる。そして、図5に示すように、共有メモリ60にフィードバック値が書き込まれる。このため、汎用プロセッサ62は、モータ22がモータ制御コマンドどおりに回転しているか否かを確認し、またモータ22の駆動を終了すべきか否か判断する。
【0056】
次に、図7に示す2輪倒立型搬送ロボット(以下、単に「ロボット」ということがある)76を用いて、搬送物を安定に載せた状態で目的地まで運搬する場合について説明する。
【0057】
まず、図7を参照して、2輪倒立型搬送ロボット76について説明する。このロボット76は2輪で倒立しながら、ロボット76の姿勢にかかわらず、テーブル88を水平に維持して搬送物を安定に載せた状態で搬送する。このロボット76は、板状の台車78を含み、この台車78の下部には車輪80が2輪取付けられており、それらの車輪の間には、各車輪を独立に駆動するモータ22がギアボックス82の中に設けられている。また、台車78の上には車両本体84が設けられ、さらにその上にはテーブル支持部86を介して円盤状のテーブル88が取付けられている。
【0058】
このロボット76の姿勢にかかわらず、テーブル88を水平に維持するためには、テーブル支持部86を傾けることによりテーブル88の角度を調整しなければならない。このテーブル支持部86の傾きは、それに垂直な2方向の軸(X軸、Y軸)をモータ22で回転駆動することにより調整する。以上説明したように、このロボット76は車輪80の駆動のための2軸とテーブル88の水平維持のための2軸の合計4軸のモータ22で制御して、テーブルを水平に維持しながら移動する。
【0059】
このロボット76が、図8に示すように進行方向に傾いている場合には、テーブル88も前に傾くので、モータ22によりY軸を回転駆動して、テーブル支持部86を進行方向と反対の方向に傾くように調整することにより、テーブル88を水平に維持する。また、このロボット76が、図9に示すように進行方向に向かって右に傾いている場合には、テーブル88も同様に傾くので、モータ22によりY軸に直行するX軸を回転駆動して、テーブル支持部86を左に傾くように調整することによりテーブルを水平に維持する。また、ロボット76が任意の方向に傾いている場合には、同様にX軸およびY軸を回転駆動することにより、テーブル88を水平に維持する。
【0060】
次に、このロボット76がテーブル88を水平に維持しながら所定の方向に移動する場合について、ホストコントローラからモータコントローラまでの各階層ごとの動作を、フロー図を用いて説明する。この実施例では、ロボット76の移動制御(倒立制御)はホストコントローラ12が行ない、テーブル88の水平維持制御は通信コントローラ18が行なう。
【0061】
まず、図10のフロー図を参照して、ホストコントローラ12での移動制御について説明する。
【0062】
まず、ステップS1で、ロボット76が搬送物を有しているか否かを判断する。ここで、搬送物があるか否かは、たとえばロボット76のセンサボード24に搭載された重量センサ26、あるいは画像処理PC34などの他のPCからの情報により判断する。
【0063】
そして、搬送物がある場合には、ステップS3で水平維持コマンドを通信コントローラ18に対して発行する。この水平維持コマンドが発行されれば、以後、通信コントローラ18がホストコントローラ12とは独立して水平維持制御を行なう。
【0064】
次に、ステップS5で、音声処理PC40によって処理された音声指示により、ロボット76に対して移動開始のトリガがかかったか否かを判断する。他のトリガの例として、たとえばユーザーインターフェースを介して、ロボット76の外部からの人の指示などがある。
【0065】
ステップS7では、画像処理PC34の環境認識結果に基づいて、アプリケーションプログラム28により、ロボット76が移動する距離、方向、速度などの移動パラメータを算出する。あるいは、ユーザーインターフェースを介して、ロボット76の外部から人が直接これらのパラメータを与えてもよい。
【0066】
ステップS9では、ステップS7で求めた移動パラメータをアプリケーションプログラム28によってモーションコントローラ14に対し移動コマンドとして発行する。
【0067】
ステップS11では、ロボット76の移動が完了したか否かを判断し、移動が完了していない場合は、再びステップS7で移動パラメータを算出し、移動コマンドを発行する。また、移動が完了した場合はホストコントローラ12での処理を終了する。なお、移動が完了したか否かの判断は、画像処理PC34からの画像認識結果などに基づいて行なわれる。
【0068】
次に、図11のフロー図を参照して、通信コントローラ18でのロボット76の移動制御について説明する。
【0069】
まず、ステップS13で、ホストコントローラ12から通信コントローラ18に対して移動コマンドが発行されたか否かを判断する。この移動コマンドはUSBの通信割込みによって送信されてくる。
【0070】
次に、ステップS15では、モーション制御プログラム50に基づいてホストコントローラ12からの移動コマンドを解析する。つまり、距離、方向、速度などの移動パラメータからモータ22の回転方向、速度、回転量などのモータ制御パラメータを求める。
【0071】
ステップS17で、ステップS15で求めたモータ制御パラメータをモータコントローラ20に指示する。
【0072】
ステップS19では、ホストコントローラ12から移動停止の指示がない限り、ステップS13にもどり、ホストコントローラ12からの移動コマンドを待つ。
【0073】
次に、図12のフロー図を参照して、モータコントローラ20での移動制御について説明する。
【0074】
まず、ステップS21では、ステップS17により通信コントローラ18から送られてくる、モータ22の回転方向、速度、回転量などのモータ制御パラメータが更新されたものであるか否かを判断する。
【0075】
そして、更新されていれば、ステップS23で、更新されたモータ制御パラメータに基づいて、モータ制御コマンドをモータドライバ68に対して発行することによりモータ22を駆動する。
【0076】
ステップS25では、モータ22がモータ制御パラメータで指定された回転方向、速度、回転量で回転したかどうかを、エンコーダ72、またはポテンショメータ74の測定値に基づき確認する。その結果、モータ22の回転が完了していない場合は、再びステップS23に戻ってモータ22の駆動を継続し、回転が完了している場合はモータ22の駆動を終了する。
【0077】
上述のホストコントローラ12からモータコントローラ20までの処理により、ロボット76の移動を制御することができる。
【0078】
次に、図13のフロー図を参照して、モーションコントローラ14による水平維持制御について説明する。
【0079】
まず、ステップS27では、ステップS3でホストコントローラ12により水平維持コマンドが発行されたか否かを確認する。
【0080】
そして、水平維持コマンドが発行された場合は、ステップS29でロボット76のテーブル88が水平か否かを判断する。この判断は、通信コントローラ18に接続されたセンサボード24に搭載されているジャイロセンサや傾斜センサなどのセンサ26の測定値を汎用プロセッサ58に直接入力し、汎用プロセッサ58が入力された測定値に基づいて行なう。
【0081】
次に、テーブル88が水平でない場合、ステップS31で、通信コントローラ18のフラッシュメモリ56に組み込まれたアプリケーションプログラム48を使用して、テーブル88の傾き角度、傾き方向などの水平維持パラメータを計算し、さらのモーション制御プログラム50に基づき、テーブル支持部86の傾きを制御するX軸、Y軸を回転駆動するモータ22の回転方向、速度、回転量などのモータ制御パラメータを求めて、モータコントローラ20に指示する。
【0082】
ステップS33で、モータコントローラ22は通信コントローラ18から送られてくるモータ制御パラメータに基づき、モータ22を駆動してロボット76のテーブル支持部86の傾きを調整するX軸またはY軸を回転させることにより、テーブル88を水平に維持する。
【0083】
次に、ステップS35でロボット76のテーブル88の水平維持制御を停止するか否かを判断し、水平維持制御を継続する場合は、再びステップS29でテーブル88が水平か否かを判断する処理に戻り、停止する場合は水平維持の動作を終了する。なお、水平維持制御の停止指示は画像処理PC34などからの搬送物に関する情報がホストコントローラ12に伝えられ、その情報に基づきホストコントローラ12が通信コントローラ18に対して水平維持制御を停止する割り込みコマンドを発効することによって行なわれる。
【0084】
上述の通信コントローラ18とモータコントローラ20での処理により、テーブル88の水平維持を制御することができる。
【図面の簡単な説明】
【図1】図1はこの発明の一実施例であるロボット分散制御システムを示すブロック図である。
【図2】図2は図1実施例のモーションコントローラを示すブロック図である。
【図3】図3は図1および図2に示す実施例の動作の一例を示すフロー図である。
【図4】図4はコマンドフォーマットの一例を示す図解図である。
【図5】図5は図2に示す実施例のモータコントローラに含まれる共有メモリの一例を示す図解図である。
【図6】図6は図1および図2に示す実施例の動作の他の例を示すフロー図である。
【図7】図7は2輪倒立型搬送ロボットを示す斜視図である。
【図8】図8は2輪倒立型搬送ロボットが進行方向に傾いて移動している場合の図解図である。
【図9】図9は2輪倒立型搬送ロボットが進行方向に向かって右に傾きながら移動している場合の図解図である。
【図10】図10はホストコントローラにおける移動制御を示すフロー図である。
【図11】図11は通信コントローラにおける移動制御を示すフロー図である。
【図12】図12はモータコントローラにおける移動制御を示すフロー図である。
【図13】図13は通信コントローラおよびモータコントローラにおけるテーブルの水平維持制御を示すフロー図である。
【図14】図14は従来のロボット分散処理システムを示すブロック図である。
【符号の説明】
10…分散処理システム
12…ホストコントローラ
14…モーションコントローラ
18…通信コントローラ
20…モーションコントローラ
22…モータ
24…センサボード
26…センサ
28,48…アプリケーションプログラム
49…判定プログラム
50…モーション制御プログラム
58,62…汎用プロセッサ
68…モータドライバ
70…ディップスイッチ
76…ロボット
80…車輪
86…テーブル支持部
88…テーブル
【発明の属する技術分野】
この発明は、分散制御システムおよび分散制御方法に関し、特にたとえばロボットの分散制御システムおよび分散制御方法に関する。
【0002】
【従来技術】
図14に示す従来のロボット分散制御システム2では、ホストコントローラ4aに、ハブ4bを介して、複数のモータドライバ4cがUSBによって接続されている。また、各モータドライバ4cには、モータ6aが1台ずつ接続されている。さらに、ホストコントローラ4aには、ハブ4bを介して、センサ6bを搭載したセンサボード4dも接続されている。このロボット分散制御システム2は、ホストコントローラ4aが各モータドライバ4cに対して、モータの制御コマンドを直接発行し、各モータドライバ4cは、このモータの制御コマンドを解釈してモータ6aを駆動することにより、ロボットの動きを制御している。
【0003】
この図14の従来技術と同様の従来技術が特許文献1に開示されている。
【0004】
【特許文献1】
特開2000−78891[H02P 8/14,8/00]
【0005】
【発明が解決しようとする課題】
いずれの従来技術においても、以下のような問題があった。すなわち、各モータは対応するモータドライバを介して、ホストコントローラにより制御される。したがって、各モータを制御するためには、ホストコントローラがすべてのモータの制御プログラムを持たなければならないばかりでなく、各モータのためにモータ制御コマンドが複雑になるので、ホストコントローラの負荷が大きくなる。さらに、各モータドライバにコマンドを送る必要があるので、ホストコントローラと各モータドライバとの間の通信負荷が大きくなる。
【0006】
それゆえに、この発明の主たる目的は、新規な分散制御システムおよび分散制御方法を提供することである。
この発明の他の目的は、ホストコントローラの負荷を小さくするとともに、通信負荷を小さくできる分散制御システムおよび分散制御方法を提供することである。
【0007】
【課題を解決するための手段】
第1発明に従った分散制御用コントローラは、上位コントローラからの第1コマンドを受信する受信手段、下位コントローラへの制御指令を出力する出力手段、およびプロセッサを備え、さらにプロセッサによって実行可能にアプリケーションプログラムが組み込まれていて、プロセッサは、第1コマンドに基づいて、またはアプリケーションプログラムを用いて、制御指令を求める。
【0008】
このとき、プロセッサは、第1コマンドに応答してアプリケーションプログラムを実行することによって、第2コマンドを発行するとともに、第1コマンドまたは第2コマンドに基づいて制御指令を求める、ようにしてもよい。
ただし、判定手段を設け、この判定手段によって第1コマンドに基づいてアプリケーションプログラムから第2コマンドを発行するかどうかを判定する、ようにしてもよい。
【0009】
第2発明に従った分散制御システムは、第1アプリケーションプログラムを実行して第1コマンドを発行する上位コントローラと、アクチュエータを駆動する下位コントローラと、上位コントローラからの第1コマンドを受信する受信手段、下位コントローラへの制御指令を出力する出力手段、およびプロセッサを備え、さらにプロセッサによって実行可能に第2アプリケーションプログラムが組み込まれていて、プロセッサは、第1コマンドに基づいて、または第2アプリケーションプログラムを用いて、制御指令を求める、中位コントローラとを備える。
【0010】
第3発明に従った分散制御システムは、第1プロセッサと第1アプリケーションプログラムとを組み込み、外部からの情報または指示により、第1アプリケーションプログラムに基づいて第1コマンドを発行する第1コントローラ、第1コントローラに接続され、第2プロセッサと、第2アプリケーションプログラムとを組み込んだ第2コントローラであって、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求める1または2以上の第2コントローラ、および第2コントローラに接続され、かつ制御パラメータに基づいて複数のアクチュエータを制御する第3コントローラを備える。
【0011】
このとき、第2コントローラは、第1コマンドに応答して第2アプリケーションプログラムを実行することによって第2コマンドを発行するととともに、第1コマンドまたは第2コマンドに基づいて制御パラメータを求める、ようにしてもよい。
【0012】
また、第2コントローラに、第1コマンドに基づき第2アプリケーションプログラムから第2コマンドを発行するかどうかを判定するための判定手段をさらに設けてもよい。
【0013】
第3コントローラに、複数のアクチュエータを含む第3コントローラの識別信号を第2コントローラに伝達する手段をさらに設けてもよい。
また、第3コントローラのかわりに、情報入力装置を接続した第2コントローラを少なくとも1つ設けてもよい。
【0014】
第4発明に従った分散制御方法は、第1プロセッサと第1アプリケーションプログラムとを組み込んだ第1コントローラ、第1コントローラに接続され、且つ第2プロセッサと第2アプリケーションプログラムとを組み込んだ第2コントローラ、および第2コントローラに接続され、かつ複数の駆動装置を制御する第3コントローラとを含む分散制御システムに適用され、(a)第1コントローラが、第1アプリケーションプログラムに基づいて第1コマンドを発行するステップ、(b)第2コントローラが、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求めるステップ、および(c)第3コントローラが、複数の駆動装置を制御パラメータに基づいて駆動するステップを含む。
【0015】
この場合も、ステップ(b)において、第2コントローラは、第1コマンドに応答して第2アプリケーションプログラムを実行することによって第2コマンドを発行するとともに、第1コマンドまたは第2コマンドに基づいて制御パラメータを求める、ようにしてもよい。
【0016】
【作用】
第1発明に従った分散制御用コントローラは、実施例でいえば通信コントローラに相当し、実施例でいえばホストコントローラに該当する上位コントローラからの第1コマンドを受信する。実施例の判定プログラムである判定手段を設け、この判定手段によって、第1コマンドを解釈して直接制御指令を出すか、または第1コマンドに基づいてアプリケーションプログラムから第2コマンドを発行するか、を判断する。第2コマンドを発行した場合には、その第2コマンドに基づいて制御指令を求める。そして、いずれかの方法で求めた制御指令が、モータのようなアクチュエータを制御する下位コントローラに与えられる。
【0017】
第2発明に従った分散制御システムでは、上位コントローラ(実施例のホストコントローラ)が第1アプリケーションプログラムを実行して第1コマンドを発行する。この第1コマンドが中位コントローラ(実施例の通信コントローラ)に与えられる。中位コントローラでは、プロセッサは、上述の方法と同様にして、第1コマンドから制御指令を求めるか、または第1コマンドから第2コマンドを発行し、その第2コマンドから制御指令を求める。制御指令は、アクチュエータを駆動するために下位コントローラへ与えられる。
【0018】
第3発明に従った分散制御システムでは、実施例のホストコントローラ、通信コントローラ、およびモータコントローラにそれぞれ該当する第1コントローラ、第2コントローラ、および第3コントローラが用いられる。第1コントローラは、外部からの情報または指示に応答して、第1アプリケーションプログラムに基づいて第1コマンドを発行する。上述と同様にして、第2コントローラが制御パラメータを求め、その制御パラメータが第3コントローラに与えられる。
【0019】
第4発明に従った分散制御方法では、ステップ(a)で、第1コントローラが、第1アプリケーションプログラムに基づいて第1コマンドを発行し、ステップ(b)で、第2コントローラが、第1コマンドに基づき、または第2アプリケーションプログラムを用いて制御パラメータを求める。そしてステップ(c)で、第3コントローラが、複数のアクチュエータを制御パラメータに基づいて駆動する。
【0020】
このように、従来システムでホストコントローラに組み込まれていたアプリケーションプログラムの一部を、中位(第2)コントローラに移動して、上位(第1)コントローラと中位(第2)コントローラとで複数のアクチュエータを分散制御するので、上位(第1)コントローラの負荷を軽減できるだけでなく、両者間の通信負荷を小さくできる。
【0021】
【発明の効果】
この発明によれば、上位(第1)コントローラの負荷を小さくできるとともに、上位(第1)コントローラと中位(第2)コントローラとの間の通信データ量を削減できるので、たとえば引き回しが楽な2線式シリアル通信によっても両者間で高速通信が可能となる。
【0022】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0023】
【実施例】
図1を参照して、この実施例のロボット分散制御システム10は、1台のホストコントローラ12を含み、このホストコントローラ12を親とするツリー構造となるように、複数のモーションコントローラ14がハブ16を介して、USBによりホストコントローラ12に接続されている。各モーションコントローラ14は通信コントローラ18とモータコントローラ20とを含み、それらはコネクタで接続されている。また、各モータコントローラ20にはロボットの各軸の動きを制御する複数のモータ22が接続され、これらのモータ22は通信コントローラ18により互いに独立に、または互いに協調して動くように駆動され得る。
【0024】
このような階層構造において、ホストコントローラ12が上位または第1のコントローラとして、通信コントローラ18が中位または第2のコントローラとして、そしてモータコントローラ20が下位または第3のコントローラとしてそれぞれ機能する。ただし、この実施例ではアクチュエータとしてモータ22を用いたが、分散制御されるべきアクチュエータとしては、このようなモータの他、電磁ソレノイド、ポンプなど任意の被制御装置が考えられる。
【0025】
また、ハブ16には、通信コントローラ18を介して、センサ26を搭載したセンサボード24などの各種ドータボードも接続されている。
【0026】
まず、ホストコントローラ12について説明する。このホストコントローラ12は、汎用プロセッサ(図示しない)を搭載し、1または2以上のアプリケーションプログラム28とモーションコントロールデバイスクラスドライバ(以下、「MCDクラスドライバ」という)30とが組み込まれている。MCDクラスドライバ30には、モーションコントローラ14を制御するための各種コマンドと、ロボット外部との情報をやり取りするためのインタフェースライブラリが組み込まれている。また、アプリケーションプログラム28は、ロボット全体の動作を管理するとともに、機能別に分散されたモーションコントローラ14毎の動作をインタフェースライブラリを介して制御している。
【0027】
また、ステレオカメラ32からの画像を処理する画像処理専用PC(Personal Computer)34とマイク36からの音声を処理する音声処理専用PC40とが、ハブ42を介して、イーサネット(商品名)によりホストコントローラ12に接続されている。ホストコントローラ12は、障害物などの画像認識結果や音声認識結果をイベントとして受け取り、以下に詳しく説明するモーションコントローラ14と情報をやり取りすることにより、ロボットの起動や停止などを制御する。
【0028】
なお、画像処理PC34に接続されたモニタ44によって処理画像を確認でき、また音声処理PC40にはスピーカ38も接続されているので、ロボットから音を出すことができる。また、ホストコントローラ12は、ハブ42を介して、無線LAN46によりロボット外部のネットワークに接続されている。
【0029】
次に、モーションコントローラ14を構成する通信コントローラ18について説明する。通信コントローラ18は、高性能のプロセッサ58(図2)を搭載しているので、従来ホストコントローラ12のみに組み込まれていた複数のアプリケーションプログラム28の一部を通信コントローラ18に組み込むことによって、ホストコントローラ12が果たす機能の一部を分担している。
【0030】
つまり、通信コントローラ18すなわち汎用プロセッサ58は、ホストコントローラ12からのコマンドを解釈して制御パラメータを求めるだけではなく、通信コントローラ18自身に組み込まれているアプリケーションプログラム48を使用してコマンドを発行し、制御パラメータを求めることができる。なお、アプリケーションプログラム48を使用するかどうかを判定するための判定プログラム49、コマンドを解釈して制御パラメータを求めるために使用するモーション制御プログラム50も、あらかじめ通信コントローラ18のメモリ(たとえば図2のフラッシュメモリ56)内に組み込まれている。
【0031】
この汎用プロセッサ58(図2)およびアプリケーションプログラム48により、各モータ22を互いに独立にあるいは互いに協調して駆動することができる。なお、ホストコントローラ12に接続可能な通信コントローラ18の台数は、ハブ16の通信プロトコルによって決まり、この実施例では8台まで接続できる。
【0032】
次に、通信コントローラ18とともにモーションコントローラ14を構成するモータコントローラ20について説明する。モータコントローラ20は通信コントローラ18に1台ずつ接続されており、汎用プロセッサ62(図2)およびモータドライバ68(図2)を搭載している。このモータドライバ68(図2)には、複数のモータ22が接続されており、これらのモータ22は通信コントローラ18からの制御パラメータに基づいて求められた制御コマンドによって駆動される。
【0033】
なお、ホストコントローラ12または通信コントローラ18が、各モータコントローラ20を識別できるように、モータコントローラ20ごとにID(識別番号)を登録することができる。
【0034】
さらに、通信コントローラ18には、センサ26が搭載されたセンサボード24などの各種ドータボードも接続できる。したがって、画像処理PC34による画像処理結果や音声処理PC40による音声処理結果だけではなく、任意のセンサ入力をホストコントローラ12を介さずに、通信コントローラ18にイベントとして直接入力することができる。
【0035】
ただし、センサボード24は通信コントローラ18へ情報を入力する情報入力装置として機能するが、このような情報入力装置としては、他に、カメラ(画像入力装置)やマイク(音声入力装置)なども利用可能であり、いずれの場合にも、モータコントローラ20に代えて通信コントローラ18とコネクタ接続することによって、モーションコントローラ14中に組み込むことができる。
【0036】
このように、ロボット分散制御システム10の複数のアプリケーションプログラム28のうちの一部をホストコントローラ12から通信コントローラ18に移動させることによって、ホストコントローラ12と通信コントローラ18にモータ22の制御を分担して行わせることができる。したがって、ホストコントローラ12が発行するコマンドの数を減らすことができるので、ホストコントローラ12の負荷を軽減できるとともに、ホストコントローラ12と通信コントローラ18との間の通信データ量を削減できるので、通信負荷を小さくすることができる。したがって、引き回しが楽な2線式シリアル通信によっても、高速通信が可能である。このため、通信コントローラ18に組み込むアプリケーションプログラム48が短い周期でモータ22の制御パラメータを変更しなければならないプログラムであっても、十分に対応できる。
【0037】
また、通信コントローラ18とモータコントローラ20とはコネクタで接続されているので、モータ22ごとモータコントローラ20を他のモータコントローラ20に組替えて接続することができ、モータ22ごとモーションコントローラ14を他のモーションコントローラ14と交換することもできる。すなわち、ホストコントローラ12とモーションコントローラ14が分散制御を行なっているので、モータ22の交換は、対応するアプリケーションプログラムをホストコントローラ12が持っている場合は、モーションコントローラ14ごとに、また対応するアプリケーションプログラムを通信コントローラ18が持っている場合は、モータコントローラ20ごとに行うことができる。このため、ロボット分散制御システム10の構成も任意かつ容易に変更することができる。
【0038】
なお、通信コントローラ18とモータコントローラ20とをコネクタ接続することによって、両者は、図2に示すように、アドレスバス19Aとデータバス19Dとによって、互いにデータ授受が可能とされている。
【0039】
次に、図2および図3を参照して、モーションコントローラ14での処理について説明する。
【0040】
まず、ホストコントローラ12は、先に説明したように、汎用プロセッサ(図示せず)を有し、この汎用プロセッサによってアプリケーションプログラム(第1アプリケーションプログラム)を実行する。そして、通信コントローラ18は、USBコントローラ52を介して、ホストコントローラ12から送られてくる図4に示すようなコマンドを第1コマンドとして受け取る。このコマンドの先頭にはたとえば2バイト識別コードが付与されていて、その識別コードに後続して、任意バイト数の引数が設定される。
【0041】
通信コントローラ18では、予め、汎用プロセッサ58が、フラッシュメモリ(2MB)56に組み込まれた判定プログラム49,モーション制御プログラム50およびアプリケーションプログラム48をSDRAM(8MB)54上に展開し、起動している。
【0042】
USBコントローラ52を介して、通信コントローラ18がホストコントローラ12から送られてくる第1コマンドを受け取ると、汎用プロセッサ58は判定プログラム49を使用してコマンドに含まれる識別コードを判定し、判定結果に応じてコマンドを直接モーション制御プログラム50に受け渡すか、或いはアプリケーションプログラム48に受け渡すかの処理を行う。
【0043】
たとえば、ホストコントローラ12は、モーションコントローラ14に対して「XX n1 n2 n3 n4」というコマンドを発行する。ここで、「XX」が識別コードであり、たとえばモータの回転絶対位置制御を行う場合には、「35」という識別コードが割り付けられる。また、たとえば2つのモータを組合せた2輪駆動移動台車の位置制御を行う場合には、「80」という識別コードが割り付けられる。
【0044】
識別コードに続く「n1 n2 n3 n4」の部分は引数であり、たとえばモータの回転絶対位置制御を行う場合には、制御可能な4つのモータの回転絶対位置を、順番に「−2147483647」から「2147483647」の範囲の4バイトデータで示している。引数の単位はモータに接続されているエンコーダカウンタのパルス数である。また、n1 n2 n3 n4=「−2147483648」は「Don’t Care」を表し、該当軸には、このコマンドを適用しない。また、2つのモータを組合せた2輪駆動移動台車の位置制御を行う場合には、一例として、n1は移動台車の移動量を、n2は移動中の最高速度を、n3は最高速度までの加速度を、n4は停止するまでの減速度を表す。
【0045】
判定プログラム49は、コマンドに含まれる識別コードを識別し、このコマンドを次にモーション制御プログラム50に渡すか、アプリケーションプログラム48に渡すかの判定を行う。具体的には、汎用プロセッサ58は、識別コードテーブル(図示せず)を内蔵していて、このテーブルに、各識別コード毎に、該当のコマンドがどのように処理されるべきかを予め登録している。したがって、判定プログラム49は、この識別コードテーブルを利用して、ホストコントローラ(上位コントローラ)12からのコマンド(第1コマンド)をどのプログラムに渡すかを判定する。
【0046】
たとえば、識別コードが「35」の場合、判定プログラム49を実行することによって、汎用プロセッサ58はコマンドがモータ個別の制御コマンドであると判定し、その第1コマンドをモーション制御プログラム50に受け渡す。コマンドを受け取ったモーション制御プログラム50は、第1コマンドを解釈し、引数の値を適切なモータ制御パラメータとして求め、モータコントローラ20に送る。
【0047】
また、識別コードが「80」の場合、判定プログラム49を実行することによって、汎用プロセッサ58は、コマンドが複数モータによる協調コマンドであると判定し、アプリケーションプログラム48に受け渡す。判定プログラム49の判定結果に応じて第1コマンドを受け取ったアプリケーションプログラム48は、第1コマンドを解釈し、各モータ軸に対する個別のコマンド(第2コマンド)を発行し、すでにSDRAM(8MB)54上に展開されているモーション制御プログラム50へ送る。第2コマンドを受け取ったモーション制御プログラム50は、第2コマンドを解釈し、引数の値を適切なモータ制御パラメータとして求め、モータコントローラ20に送る。
【0048】
そして、モータコントローラ20には図5に示すような共有メモリ60が設けられていて、この共有メモリ60には、各モータ番号毎に、は指令値およびフィードバック値が書き込まれる。指令値は、上記引数のパルス数である。フィードバック値は、指令値に従ってモータが実際に駆動されているときのパルス数である。したがって、フィードバック値が指令値に等しくなったとき、そのモータの制御は完了したと判断する。
【0049】
このように、モーションコントローラ14に含まれる通信コントローラ18は、上位コントローラすなわちホストコントローラ12からの第1コマンドを受け取り、その第1コマンドをモーション制御プログラム50に渡す。モーション制御プログラム50はその第1コマンドを解釈して下位コントローラすなわちモータコントローラ20へその第1コマンドに応じた制御指令(制御パラメータ)を与える。あるいは、通信コントローラ18は、上位コントローラすなわちホストコントローラ12からの第1コマンドを受け取り、アプリケーションプログラム(第2アプリケーションプログラム)を実行することによって、その第1コマンドに応じた第2コマンドを発行し、その第2コマンドをモーション制御プログラム50に渡す。モーション制御プログラム50は第2コマンドを解釈して下位コントローラすなわちモータコントローラ20へ制御指令(制御パラメータ)を与える。
【0050】
ただし、第1コマンドをモーション制御プログラム50に渡すか、アプリケーションプログラム48に渡すかの判定は、上述のように、判定プログラム49に基づき、汎用プロセッサ58が判断する。
【0051】
なお、この場合、図6に示すように、アプリケーションプログラム48では、モータ個別の制御コマンドとして、モーション制御プログラム50ヘ第2コマンド(図3)を発行せずに、直接、アプリケーションプログラム48内でモータ制御パラメータを求め、それをモータコントローラ20に送るようにしてもよい。
【0052】
また、この汎用プロセッサ58は、センサボード24に搭載されているセンサ26入力を、ホストコントローラ12を介さずに直接受け付けるので、ホストコントローラ12の負担を軽減することができる。
【0053】
次に、モータコントローラ20での処理について説明する。通信コントローラ18から送られてくるモータ制御パラメータは、共有メモリ60であるデュアルポートRAM(2MB)を介して、汎用プロセッサ62に受け渡される。つまり、図5に示すように、共有メモリ60に指令値が書き込まれる。また、モータを制御するためのモータ制御ライブラリはROM(256KB)66に格納されている。したがって、汎用プロセッサ62はモータ制御パラメータに対応するモータ制御コマンドをモータ制御ライブラリから選択して、モータドライバ68に送り、モータ22を駆動する。
【0054】
また、ディップ(DIP)スイッチ70によって、モータコントローラ20ごとに、メカニカルID情報をあらかじめ設定しておくことができ、そのメカニカルID情報は通信コントローラ18の汎用プロセッサ58に伝達される。汎用プロセッサ58はこのメカニカルID情報に基づき、ホストコントローラ12のアプリケーションプログラム28または通信コントローラ18のアプリケーションプログラム48を起動する。ここで、メカニカルID情報は、モータコントローラ20に与えられる。
【0055】
さらに、モータドライバ68には、モータ22の回転数の相対値を測定できるエンコーダ72や、絶対値を測定できるポテンショメータ74が連結されている。これらの測定結果は汎用プロセッサ62にフィードバックされる。そして、図5に示すように、共有メモリ60にフィードバック値が書き込まれる。このため、汎用プロセッサ62は、モータ22がモータ制御コマンドどおりに回転しているか否かを確認し、またモータ22の駆動を終了すべきか否か判断する。
【0056】
次に、図7に示す2輪倒立型搬送ロボット(以下、単に「ロボット」ということがある)76を用いて、搬送物を安定に載せた状態で目的地まで運搬する場合について説明する。
【0057】
まず、図7を参照して、2輪倒立型搬送ロボット76について説明する。このロボット76は2輪で倒立しながら、ロボット76の姿勢にかかわらず、テーブル88を水平に維持して搬送物を安定に載せた状態で搬送する。このロボット76は、板状の台車78を含み、この台車78の下部には車輪80が2輪取付けられており、それらの車輪の間には、各車輪を独立に駆動するモータ22がギアボックス82の中に設けられている。また、台車78の上には車両本体84が設けられ、さらにその上にはテーブル支持部86を介して円盤状のテーブル88が取付けられている。
【0058】
このロボット76の姿勢にかかわらず、テーブル88を水平に維持するためには、テーブル支持部86を傾けることによりテーブル88の角度を調整しなければならない。このテーブル支持部86の傾きは、それに垂直な2方向の軸(X軸、Y軸)をモータ22で回転駆動することにより調整する。以上説明したように、このロボット76は車輪80の駆動のための2軸とテーブル88の水平維持のための2軸の合計4軸のモータ22で制御して、テーブルを水平に維持しながら移動する。
【0059】
このロボット76が、図8に示すように進行方向に傾いている場合には、テーブル88も前に傾くので、モータ22によりY軸を回転駆動して、テーブル支持部86を進行方向と反対の方向に傾くように調整することにより、テーブル88を水平に維持する。また、このロボット76が、図9に示すように進行方向に向かって右に傾いている場合には、テーブル88も同様に傾くので、モータ22によりY軸に直行するX軸を回転駆動して、テーブル支持部86を左に傾くように調整することによりテーブルを水平に維持する。また、ロボット76が任意の方向に傾いている場合には、同様にX軸およびY軸を回転駆動することにより、テーブル88を水平に維持する。
【0060】
次に、このロボット76がテーブル88を水平に維持しながら所定の方向に移動する場合について、ホストコントローラからモータコントローラまでの各階層ごとの動作を、フロー図を用いて説明する。この実施例では、ロボット76の移動制御(倒立制御)はホストコントローラ12が行ない、テーブル88の水平維持制御は通信コントローラ18が行なう。
【0061】
まず、図10のフロー図を参照して、ホストコントローラ12での移動制御について説明する。
【0062】
まず、ステップS1で、ロボット76が搬送物を有しているか否かを判断する。ここで、搬送物があるか否かは、たとえばロボット76のセンサボード24に搭載された重量センサ26、あるいは画像処理PC34などの他のPCからの情報により判断する。
【0063】
そして、搬送物がある場合には、ステップS3で水平維持コマンドを通信コントローラ18に対して発行する。この水平維持コマンドが発行されれば、以後、通信コントローラ18がホストコントローラ12とは独立して水平維持制御を行なう。
【0064】
次に、ステップS5で、音声処理PC40によって処理された音声指示により、ロボット76に対して移動開始のトリガがかかったか否かを判断する。他のトリガの例として、たとえばユーザーインターフェースを介して、ロボット76の外部からの人の指示などがある。
【0065】
ステップS7では、画像処理PC34の環境認識結果に基づいて、アプリケーションプログラム28により、ロボット76が移動する距離、方向、速度などの移動パラメータを算出する。あるいは、ユーザーインターフェースを介して、ロボット76の外部から人が直接これらのパラメータを与えてもよい。
【0066】
ステップS9では、ステップS7で求めた移動パラメータをアプリケーションプログラム28によってモーションコントローラ14に対し移動コマンドとして発行する。
【0067】
ステップS11では、ロボット76の移動が完了したか否かを判断し、移動が完了していない場合は、再びステップS7で移動パラメータを算出し、移動コマンドを発行する。また、移動が完了した場合はホストコントローラ12での処理を終了する。なお、移動が完了したか否かの判断は、画像処理PC34からの画像認識結果などに基づいて行なわれる。
【0068】
次に、図11のフロー図を参照して、通信コントローラ18でのロボット76の移動制御について説明する。
【0069】
まず、ステップS13で、ホストコントローラ12から通信コントローラ18に対して移動コマンドが発行されたか否かを判断する。この移動コマンドはUSBの通信割込みによって送信されてくる。
【0070】
次に、ステップS15では、モーション制御プログラム50に基づいてホストコントローラ12からの移動コマンドを解析する。つまり、距離、方向、速度などの移動パラメータからモータ22の回転方向、速度、回転量などのモータ制御パラメータを求める。
【0071】
ステップS17で、ステップS15で求めたモータ制御パラメータをモータコントローラ20に指示する。
【0072】
ステップS19では、ホストコントローラ12から移動停止の指示がない限り、ステップS13にもどり、ホストコントローラ12からの移動コマンドを待つ。
【0073】
次に、図12のフロー図を参照して、モータコントローラ20での移動制御について説明する。
【0074】
まず、ステップS21では、ステップS17により通信コントローラ18から送られてくる、モータ22の回転方向、速度、回転量などのモータ制御パラメータが更新されたものであるか否かを判断する。
【0075】
そして、更新されていれば、ステップS23で、更新されたモータ制御パラメータに基づいて、モータ制御コマンドをモータドライバ68に対して発行することによりモータ22を駆動する。
【0076】
ステップS25では、モータ22がモータ制御パラメータで指定された回転方向、速度、回転量で回転したかどうかを、エンコーダ72、またはポテンショメータ74の測定値に基づき確認する。その結果、モータ22の回転が完了していない場合は、再びステップS23に戻ってモータ22の駆動を継続し、回転が完了している場合はモータ22の駆動を終了する。
【0077】
上述のホストコントローラ12からモータコントローラ20までの処理により、ロボット76の移動を制御することができる。
【0078】
次に、図13のフロー図を参照して、モーションコントローラ14による水平維持制御について説明する。
【0079】
まず、ステップS27では、ステップS3でホストコントローラ12により水平維持コマンドが発行されたか否かを確認する。
【0080】
そして、水平維持コマンドが発行された場合は、ステップS29でロボット76のテーブル88が水平か否かを判断する。この判断は、通信コントローラ18に接続されたセンサボード24に搭載されているジャイロセンサや傾斜センサなどのセンサ26の測定値を汎用プロセッサ58に直接入力し、汎用プロセッサ58が入力された測定値に基づいて行なう。
【0081】
次に、テーブル88が水平でない場合、ステップS31で、通信コントローラ18のフラッシュメモリ56に組み込まれたアプリケーションプログラム48を使用して、テーブル88の傾き角度、傾き方向などの水平維持パラメータを計算し、さらのモーション制御プログラム50に基づき、テーブル支持部86の傾きを制御するX軸、Y軸を回転駆動するモータ22の回転方向、速度、回転量などのモータ制御パラメータを求めて、モータコントローラ20に指示する。
【0082】
ステップS33で、モータコントローラ22は通信コントローラ18から送られてくるモータ制御パラメータに基づき、モータ22を駆動してロボット76のテーブル支持部86の傾きを調整するX軸またはY軸を回転させることにより、テーブル88を水平に維持する。
【0083】
次に、ステップS35でロボット76のテーブル88の水平維持制御を停止するか否かを判断し、水平維持制御を継続する場合は、再びステップS29でテーブル88が水平か否かを判断する処理に戻り、停止する場合は水平維持の動作を終了する。なお、水平維持制御の停止指示は画像処理PC34などからの搬送物に関する情報がホストコントローラ12に伝えられ、その情報に基づきホストコントローラ12が通信コントローラ18に対して水平維持制御を停止する割り込みコマンドを発効することによって行なわれる。
【0084】
上述の通信コントローラ18とモータコントローラ20での処理により、テーブル88の水平維持を制御することができる。
【図面の簡単な説明】
【図1】図1はこの発明の一実施例であるロボット分散制御システムを示すブロック図である。
【図2】図2は図1実施例のモーションコントローラを示すブロック図である。
【図3】図3は図1および図2に示す実施例の動作の一例を示すフロー図である。
【図4】図4はコマンドフォーマットの一例を示す図解図である。
【図5】図5は図2に示す実施例のモータコントローラに含まれる共有メモリの一例を示す図解図である。
【図6】図6は図1および図2に示す実施例の動作の他の例を示すフロー図である。
【図7】図7は2輪倒立型搬送ロボットを示す斜視図である。
【図8】図8は2輪倒立型搬送ロボットが進行方向に傾いて移動している場合の図解図である。
【図9】図9は2輪倒立型搬送ロボットが進行方向に向かって右に傾きながら移動している場合の図解図である。
【図10】図10はホストコントローラにおける移動制御を示すフロー図である。
【図11】図11は通信コントローラにおける移動制御を示すフロー図である。
【図12】図12はモータコントローラにおける移動制御を示すフロー図である。
【図13】図13は通信コントローラおよびモータコントローラにおけるテーブルの水平維持制御を示すフロー図である。
【図14】図14は従来のロボット分散処理システムを示すブロック図である。
【符号の説明】
10…分散処理システム
12…ホストコントローラ
14…モーションコントローラ
18…通信コントローラ
20…モーションコントローラ
22…モータ
24…センサボード
26…センサ
28,48…アプリケーションプログラム
49…判定プログラム
50…モーション制御プログラム
58,62…汎用プロセッサ
68…モータドライバ
70…ディップスイッチ
76…ロボット
80…車輪
86…テーブル支持部
88…テーブル
Claims (11)
- 上位コントローラからの第1コマンドを受信する受信手段、
下位コントローラへの制御指令を出力する出力手段、および
プロセッサを備え、さらに
前記プロセッサによって実行可能にアプリケーションプログラムが組み込まれていて、
前記プロセッサは、前記第1コマンドに基づいて、または前記アプリケーションプログラムを用いて、前記制御指令を求める、分散制御用コントローラ。 - 前記プロセッサは、前記第1コマンドに応答して前記アプリケーションプログラムを実行することによって、第2コマンドを発行するとともに、前記第1コマンドまたは前記第2コマンドに基づいて前記制御指令を求める、請求項1記載の分散制御用コントローラ。
- 前記第1コマンドに基づいて前記アプリケーションプログラムから前記第2コマンドを発行するかどうかを判定するための判定手段をさらに備える、請求項2記載の分散制御用コントローラ。
- 第1アプリケーションプログラムを実行して第1コマンドを発行する上位コントローラと、
アクチュエータを駆動する下位コントローラと、
前記上位コントローラからの第1コマンドを受信する受信手段、前記下位コントローラへの制御指令を出力する出力手段、およびプロセッサを備え、さらに前記プロセッサによって実行可能に第2アプリケーションプログラムが組み込まれていて、前記プロセッサは、前記第1コマンドに基づいて、または前記第2アプリケーションプログラムを用いて、前記制御指令を求める、中位コントローラとを備える、分散制御システム。 - 第1プロセッサと第1アプリケーションプログラムとを組み込み、外部からの情報または指示により、前記第1アプリケーションプログラムに基づいて第1コマンドを発行する第1コントローラ、
前記第1コントローラに接続され、第2プロセッサと、第2アプリケーションプログラムとを組み込んだ第2コントローラであって、前記第1コマンドに基づき、または前記第2アプリケーションプログラムを用いて制御パラメータを求める1または2以上の第2コントローラ、および
前記第2コントローラに接続され、かつ前記制御パラメータに基づいて複数のアクチュエータを制御する第3コントローラを備える、分散制御システム。 - 前記第2コントローラは、前記第1コマンドに応答して前記第2アプリケーションプログラムを実行することによって第2コマンドを発行するととともに、前記第1コマンドまたは第2コマンドに基づいて前記制御パラメータを求める、請求項5記載の分散制御システム。
- 前記第2コントローラは、前記第1コマンドに基づき第2アプリケーションプログラムから前記第2コマンドを発行するかどうかを判定するための判定手段をさらに含む、請求項6記載の分散制御システム。
- 前記第3コントローラは、前記複数のアクチュエータを含む前記第3コントローラの識別信号を前記第2コントローラに伝達する手段をさらに含む、請求項5ないし7のいずれかに記載の分散制御システム。
- 前記第3コントローラのかわりに、情報入力装置を接続した前記第2コントローラを少なくとも1つ含む、請求項5ないし8のいずれかに記載の分散制御システム。
- 第1プロセッサと第1アプリケーションプログラムとを組み込んだ第1コントローラ、前記第1コントローラに接続され、且つ第2プロセッサと第2アプリケーションプログラムとを組み込んだ第2コントローラ、および前記第2コントローラに接続され、かつ複数の駆動装置を制御する第3コントローラとを含む分散制御システムの制御方法であって、
(a)前記第1コントローラが、前記第1アプリケーションプログラムに基づいて第1コマンドを発行するステップと、
(b)前記第2コントローラが、前記第1コマンドに基づき、または前記第2アプリケーションプログラムを用いて制御パラメータを求めるステップ、および(c)前記第3コントローラが、複数の前記駆動装置を前記制御パラメータに基づいて駆動するステップとを含む、分散制御方法。 - 前記ステップ(b)において、前記第2コントローラは、前記第1コマンドに応答して前記第2アプリケーションプログラムを実行することによって第2コマンドを発行するとともに、前記第1コマンドまたは第2コマンドに基づいて前記制御パラメータを求める、請求項10記載の分散制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003157566A JP2004078895A (ja) | 2002-06-17 | 2003-06-03 | 分散制御システムおよび分散制御方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002175769 | 2002-06-17 | ||
JP2003157566A JP2004078895A (ja) | 2002-06-17 | 2003-06-03 | 分散制御システムおよび分散制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004078895A true JP2004078895A (ja) | 2004-03-11 |
Family
ID=32032414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003157566A Pending JP2004078895A (ja) | 2002-06-17 | 2003-06-03 | 分散制御システムおよび分散制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004078895A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006350929A (ja) * | 2005-06-20 | 2006-12-28 | Sumitomo Heavy Ind Ltd | モーションコントローラ、通信制御モジュール、制御装置、及び制御方法 |
JP2011516287A (ja) * | 2008-04-09 | 2011-05-26 | アルデバラン ロボティクス | 関節肢を使用する移動ロボットの制御コマンドアーキテクチャ |
JP2012083894A (ja) * | 2010-10-08 | 2012-04-26 | Yokogawa Electric Corp | 2線式伝送器 |
WO2012090291A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社日立製作所 | モーションコントローラ |
JP2015202793A (ja) * | 2014-04-15 | 2015-11-16 | キヤノン株式会社 | 台車搬送システム |
JP2016207169A (ja) * | 2015-04-28 | 2016-12-08 | 株式会社メレック | モーションコントロールシステム |
DE112017005867T5 (de) | 2017-03-31 | 2019-08-01 | Mitsubishi Electric Corporation | Steuerungsvorrichtung und Motorsteuerungssystem |
CN112123063A (zh) * | 2019-06-24 | 2020-12-25 | 株式会社迪思科 | 被加工物的加工方法 |
JP7437910B2 (ja) | 2019-10-29 | 2024-02-26 | 株式会社東芝 | 制御システム、制御方法、ロボットシステム、プログラム、及び記憶媒体 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0433002A (ja) * | 1990-05-24 | 1992-02-04 | Kobe Steel Ltd | 制御装置 |
JPH05200686A (ja) * | 1992-01-22 | 1993-08-10 | Fujitsu Ltd | ロボット装置 |
-
2003
- 2003-06-03 JP JP2003157566A patent/JP2004078895A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0433002A (ja) * | 1990-05-24 | 1992-02-04 | Kobe Steel Ltd | 制御装置 |
JPH05200686A (ja) * | 1992-01-22 | 1993-08-10 | Fujitsu Ltd | ロボット装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4584045B2 (ja) * | 2005-06-20 | 2010-11-17 | 住友重機械工業株式会社 | モーションコントローラ、通信制御モジュール、制御装置、及び制御方法 |
JP2006350929A (ja) * | 2005-06-20 | 2006-12-28 | Sumitomo Heavy Ind Ltd | モーションコントローラ、通信制御モジュール、制御装置、及び制御方法 |
JP2011516287A (ja) * | 2008-04-09 | 2011-05-26 | アルデバラン ロボティクス | 関節肢を使用する移動ロボットの制御コマンドアーキテクチャ |
US9327400B2 (en) | 2008-04-09 | 2016-05-03 | Aldebaran Robotics | Control-command architecture for a mobile robot using articulated limbs |
JP2012083894A (ja) * | 2010-10-08 | 2012-04-26 | Yokogawa Electric Corp | 2線式伝送器 |
US9459617B2 (en) | 2010-12-28 | 2016-10-04 | Hitachi, Ltd. | Motion controller |
WO2012090291A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社日立製作所 | モーションコントローラ |
JP5553910B2 (ja) * | 2010-12-28 | 2014-07-23 | 株式会社日立製作所 | モーションコントローラ |
JP2015202793A (ja) * | 2014-04-15 | 2015-11-16 | キヤノン株式会社 | 台車搬送システム |
JP2016207169A (ja) * | 2015-04-28 | 2016-12-08 | 株式会社メレック | モーションコントロールシステム |
DE112017005867T5 (de) | 2017-03-31 | 2019-08-01 | Mitsubishi Electric Corporation | Steuerungsvorrichtung und Motorsteuerungssystem |
US10599104B2 (en) | 2017-03-31 | 2020-03-24 | Mitsubishi Electric Corporation | Control device and motor control system |
DE112017005867B4 (de) | 2017-03-31 | 2022-07-14 | Mitsubishi Electric Corporation | Steuerungsvorrichtung und Motorsteuerungssystem |
CN112123063A (zh) * | 2019-06-24 | 2020-12-25 | 株式会社迪思科 | 被加工物的加工方法 |
JP7437910B2 (ja) | 2019-10-29 | 2024-02-26 | 株式会社東芝 | 制御システム、制御方法、ロボットシステム、プログラム、及び記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030230998A1 (en) | Distributed control system and distributed control method | |
JP6820405B2 (ja) | 拡張および/または仮想現実環境における6自由度コントローラを用いた仮想オブジェクトの操作 | |
US20200387150A1 (en) | Robotic programming and motion control | |
JP4544145B2 (ja) | ロボットの干渉回避方法およびロボット | |
JP2004078895A (ja) | 分散制御システムおよび分散制御方法 | |
CN107085428B (zh) | 智能移动方法、装置、机器人及存储介质 | |
EP0852789A1 (en) | Method and apparatus for controlling force feedback interface systems utilizing a host computer | |
CN104793017B (zh) | 一种加速度校正方法及终端 | |
US11241790B2 (en) | Autonomous moving body and control program for autonomous moving body | |
WO2014116360A1 (en) | Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms | |
JP7087316B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN108394456A (zh) | 非自主转向模式 | |
JP2009218933A (ja) | スマートカメラ及びロボットビジョンシステム | |
US11947350B2 (en) | Devices, systems, and methods for operating intelligent vehicles using separate devices | |
JP2007511443A (ja) | 運動制御プログラミング装置および運動制御プログラミング方法 | |
WO2021117701A1 (ja) | マスタスレーブシステム及び制御方法 | |
TW202303322A (zh) | 路徑教導資料生成裝置及路徑教導資料生成方法及其記錄媒體 | |
WO2000068882A1 (fr) | Appareil et procede de traitement d'images, et robot associe | |
JP2003044144A (ja) | 多軸同期制御装置、多軸同期制御方法および多軸同期制御プログラム | |
WO2017185521A1 (zh) | 基于移动终端的无人机控制方法和装置 | |
TW202120273A (zh) | 機器人系統之控制方法 | |
Regenstein et al. | Design of an open hardware architecture for the humanoid robot ARMAR | |
JP2002355783A (ja) | コミュニケーションロボット | |
JP2001287181A (ja) | アクチュエータ駆動制御方式、並びにアクチュエータのための駆動制御装置 | |
WO2018006361A1 (zh) | 一种虚拟机器人的控制方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060315 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060725 |