JP2007038326A - ロボット制御システム - Google Patents
ロボット制御システム Download PDFInfo
- Publication number
- JP2007038326A JP2007038326A JP2005223512A JP2005223512A JP2007038326A JP 2007038326 A JP2007038326 A JP 2007038326A JP 2005223512 A JP2005223512 A JP 2005223512A JP 2005223512 A JP2005223512 A JP 2005223512A JP 2007038326 A JP2007038326 A JP 2007038326A
- Authority
- JP
- Japan
- Prior art keywords
- data
- sensor unit
- time
- robot
- cpu
- 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
- 238000012546 transfer Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 abstract description 19
- 230000003247 decreasing effect Effects 0.000 abstract 2
- 230000001105 regulatory effect Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 28
- 238000005259 measurement Methods 0.000 description 20
- 230000001133 acceleration Effects 0.000 description 17
- 238000000034 method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
Abstract
【課題】ロボットのメインプロセッサとセンサユニット間の通信を迅速に行う。また、制御の実時間性を確保する。
【解決手段】センサユニット10とロボットCPU12との間はシリアルデータライン14を用いて通信で行う。可変長データフォーマットを転送サイズ部、コマンド部、転送パターン部、計測データ部、CRC部とし、計測データ部のデータの種類を増減するとともに、転送パターン部で転送されるそのデータの種類を規定する。データの種類を減じることでデータ長を短くし通信速度を確保する。また、ロボットCPU12からタイムスタンプデータを送信し、センサユニット10からタイムスタンプ+タイムカウントのデータを送信することでロボットCPU12でセンサユニット10の計測時間を正確に管理する。
【選択図】図1
【解決手段】センサユニット10とロボットCPU12との間はシリアルデータライン14を用いて通信で行う。可変長データフォーマットを転送サイズ部、コマンド部、転送パターン部、計測データ部、CRC部とし、計測データ部のデータの種類を増減するとともに、転送パターン部で転送されるそのデータの種類を規定する。データの種類を減じることでデータ長を短くし通信速度を確保する。また、ロボットCPU12からタイムスタンプデータを送信し、センサユニット10からタイムスタンプ+タイムカウントのデータを送信することでロボットCPU12でセンサユニット10の計測時間を正確に管理する。
【選択図】図1
Description
本発明はロボット制御システム、特にロボットのメインプロセッサとセンサユニット間のデータ通信に関する。
ロボット等の移動体の姿勢制御に加速度センサや角速度センサが用いられている。直交する3軸をX軸、Y軸、Z軸とすると、各軸方向の加速度を3個の加速度センサで検出し、各軸回りの角速度を3個の角速度センサで検出する。軸回りの角度、あるいは姿勢角は、角速度センサの出力を時間積分して得られ、ピッチ角、ロール角、ヨー角が算出される。
以下の特許文献1には、ジャイロセンサから出力される加速度データ及び姿勢データを用いて姿勢制御する技術が開示されている。
また、特許文献2には、コマンド及び可変長のパラメータの組からなるデータを送受信することが記載されている。
センサユニットで検出された姿勢角等のセンサデータはロボットの姿勢制御を行うメインプロセッサ(あるいはホストプロセッサ)に送信され、フィードバック制御に用いられるが、データ量の増大に伴い制御周期が長くなるとロボットの制御性が低下するため、必要に応じて送信データ量を調整してデータ通信速度を確保し、制御性を向上できることが望ましい。
また、通信の失敗等によりデータが欠落した場合、メインプロセッサは所定の欠落処理を実行してロボットの制御性を維持できるが、欠落の発生自体をメインプロセッサが確実に検出できることが必要である。
本発明の目的は、ロボット制御の応答性を確保できるロボット制御システムを提供することにある。
本発明は、ロボットのメインプロセッサと、センサ出力を前記メインプロセッサに送信するセンサユニットとを有するロボット制御システムであって、前記メインプロセッサと前記センサユニットとの間は、可変長データフォーマットでデータを送受信する。
本発明では、固定長データフォーマットではなく可変長データフォーマットでデータを送受信することで、ロボットの制御性を確保する。すなわち、適宜データ長を短くして送受信することで通信速度を向上させ、制御遅れを抑制する。
ここで、可変長データフォーマットは、具体的には転送サイズ部、コマンド部、転送パターン部、及びデータ部を含み、転送サイズ部で転送されるデータ量を規定し、コマンド部で転送先の実行内容を規定し、転送パターン部で転送されるデータの種類及び順序を規定する。転送すべきデータの種類を減じることでデータ長を短くすることができ、転送パターン部により転送データ(受信側にとっては受信データ)の種類及び順序が規定されるから、データ長が変化しても受信側で必要なデータを確実に取得できる。
また、本発明は、メインプロセッサからセンサユニットに送信されるデータにメインプロセッサで計時された時刻のデータを含め、かつ、センサユニットからメインプロセッサに送信されるデータに時刻のデータ及びセンサユニットで計時された経過時間のデータを含めることを特徴とする。センサユニットからメインプロセッサに送信されるデータに時刻のデータ及び経過時間のデータを含めることで、メインプロセッサではセンサユニットから受信したデータの時間情報を得ることができ、受信したデータの時間の不連続性からデータの欠落を容易に検出できる。また、センサユニットからメインプロセッサに送るデータに遅延が生じたとしても、センサユニットからメインプロセッサに送信されるデータに(時刻のデータ+経過時間のデータ)が含まれているため、メインプロセッサは正確にセンサユニットから送信されたデータの時間(計測時間)を識別できる。また、時刻のデータはメインプロセッサのみで生成するため、メインプロセッサで計測した時刻とセンサユニットで計測した時刻の誤差問題、いわゆる同時性問題を生じない。
本発明によれば、送受信するデータ長を適宜増減調整できるので、ロボットの制御応答性を確保できる。
また、本発明によれば、センサユニットから送信されるデータに時間遅れが生じていても、メインプロセッサは正確に時間情報を取得することができるので、ロボットのリアルタイム処理を実行できる。
以下、図面に基づき本発明の実施形態について説明する。
図1に、本実施形態に係るロボット制御システムの概念構成を示す。センサユニット10及びロボットのメインプロセッサ(ホストプロセッサ)であるロボットCPU12が設けられ、センサユニット10とロボットCPU12はシリアルデータライン14でシリアル通信可能に接続される。なお、センサユニット10及びロボットCPU12が組み込まれるロボットの形状は任意であり、2輪走行ロボット、4輪走行ロボット、2足歩行ロボット、飛行体ロボット等のいずれでもよい。
センサユニット10は、加速度センサや角速度センサ等のセンサ15、RAM16、ROM18、ドライバ20及びCPU22を含む。
ROM18は、センサユニット10の実行処理を記述したOSあるいはプログラムを格納する。プログラムには、ロボットCPU12に対して送信すべきセンサ出力の種類やリセット機能の切替、内部フィルタの時定数などを設定するパラメータを含む。ROM18は、フラッシュROM等の書換可能なメモリで構成される。
RAM16は、ROM18に記憶されたパラメータを記憶する。すなわち、電源投入時のブート動作において、CPU22はROM18に記憶されたパラメータを読み出してRAM16に書き込み(ロード)、RAM16に書き込まれたパラメータを読み出して所定の処理を実行する。CPU22は、ROM18から読み出したパラメータをRAM16の特定領域に書き込む。本実施形態において、この特定領域を第1領域と称する。第1領域は、RAM16内に予めその開始アドレス(物理アドレス)と終了アドレスが固定的に設定されていてもよいが、可変であってもよい。
CPU22は、RAM16から読み出したパラメータに従い、センサ15から入力した各種のセンサ出力のうちパラメータで設定されたセンサ出力を選択してドライバ20を介してロボットCPU12に送信する。ドライバ20は、例えばRS−232Cドライバであるが、これに限定されるものではなく、USB、RS422、IEEE1394等でもよい。CPU22は、ドライバ20を介してシリアルデータライン14にセンサ出力データを送出するが、所定制御周期のうちの送信周期においてデータを送信する。所定制御周期のうちの残りの周期は受信周期に割り当てられ、CPU22はロボットCPU12からシリアルデータライン14を経て送信されてきたデータを受信する。
図2に、センサユニット10のCPU22とロボットCPU12との間で行われるシリアル通信のタイミングチャートを示す。図2(a)はCPU22から見た送信時のタイミングチャートであり、図2(b)はCPU22から見た受信時のタイミングチャートである。
図2(a)において、1制御周期は例えば10msecであり、この制御周期を送信周期と受信周期に時分割する。CPU22は、送信周期においてセンサ15からのセンサ出力をロボットCPU12にシリアルで送信する。図において、CPU22から送信周期において送信されたデータは送信データ100として示されている。送信データ100は、例えばBASE64でエンコードされて送信される。BASE64は周知技術であり、バイナリデータをASCIIファイル化して送信するための変換方式で、バイナリデータを6ビットずつに区切り、それぞれを0〜63までの6ビット整数とみなしてアルファベットや文字の全64文字に対応させるものである。BASE64エンコードではデータ量が増大するものの、一般形式なのでデータを読み書きしやすい利点がある。もちろん、他のエンコード方式あるいはデータ圧縮方式を用いてもよい。
BASE64エンコードデータの前後には所定の区切り記号(デリミタ)が付加されて送信データの1フレームとされる。デリミタは、「(」や「)」、「<」が用いられる。「(」や「<」をフレームの先頭デリミタ、「)」をフレームの最後デリミタとし、送信データの1フレームを例示すると、
送信データ1フレーム=(BASE64エンコードデータ)
送信データ1フレーム=<BASE64エンコードデータ)
である。「(」は送信データにコマンドが含まれ、「<」はセンサユニット10で検出されたセンサデータが含まれることを示すデリミタとする。前者をコマンド系、後者を計測データ系と称する。
送信データ1フレーム=(BASE64エンコードデータ)
送信データ1フレーム=<BASE64エンコードデータ)
である。「(」は送信データにコマンドが含まれ、「<」はセンサユニット10で検出されたセンサデータが含まれることを示すデリミタとする。前者をコマンド系、後者を計測データ系と称する。
一方、図2(b)において、制御周期のうちの送信周期の残りの周期が受信周期として割り当てられ、ロボットCPU12はこのタイミングでシリアルデータライン14にデータを送信する。CPU22は、このタイミングでロボットCPU12から送信されたデータを受信する。図において、ロボットCPU12から送信されたデータは受信データ200として示されている。CPU22は、受信周期においてロボットCPU12からのデータを受信すると、受信データ200をRAM16に格納する。受信データ200の格納領域は、第1領域と異なる第2領域である。第2領域の開始アドレスは第1領域の終了アドレスの次番地としてもよく、所定番地だけ離れていてもよい。ロボットCPU12は、送信すべきデータ量が多い場合には複数の制御周期にわたってデータをパケットに分割して順次送信する。CPU22は、これらのデータを順次受信して、RAM16の第2領域に格納する。第2領域に格納されたパラメータは、センサユニット10からロボットCPU12に送信するデータの種類等を変更する際に用いられる。
<可変長データフォーマット>
図3に、センサユニット10とロボットCPU12間のデータ送信に用いられるデータフォーマット300を示す。送信データ量を増減調整できる可変長データフォーマットである。
図3に、センサユニット10とロボットCPU12間のデータ送信に用いられるデータフォーマット300を示す。送信データ量を増減調整できる可変長データフォーマットである。
データフォーマット300は、転送サイズ部302、コマンド部304、転送パターン部306、計測データ部308及びCRC部310の順序で構成される。
転送サイズ部302は、送信データ1フレームの全データ量を規定する。全データ量は、例えば2バイトで表現される。
コマンド部304は、転送先の実行内容を規定する。特に、センサユニット10が実行すべき内容を規定する。コマンドは1バイトで表現される。コマンドを例示すると以下のとおりである。
「START」コマンドは、センサユニット10での計測を開始するコマンドである。「START」コマンドを受信したCPU22は、センサ15からのセンサ出力を指定された周期でロボットCPU12に送信する。
「STOP」コマンドは、センサユニット10での計測を停止するコマンドである。
「GET」コマンドは、RAM16の第1領域あるいは第2領域に記憶されたパラメータを読み出すコマンドである。
「SET」コマンドは、RAM16の第2領域に新たなパラメータを書き込むコマンドであり、この「SET」コマンドによりCPU22はロボットCPU12から受信したデータを上記のようにRAM16の第2領域に格納し、第2領域に格納された新たなパラメータ(更新パラメータ)を読み出し実行することでその特性を変更できる。本実施形態におけるセンサユニット10の特性変更には送信データの種類あるいは送信データ数の変更が含まれる。
「WRITE」コマンドは、RAM16の第2領域に記憶された新たなパラメータをROM18に書き込むコマンドである。これにより、電源遮断後においても新たなパラメータがセンサユニット10内に保持される。
「RstTim」コマンドは、センサユニット10のタイムカウントを0にリセットするコマンドである。センサユニット10のタイムカウントについてはさらに後述する。
転送パターン部306は、センサユニット10からロボットCPU12に送信するセンサデータの種類を規定する。転送パターンは、例えば6バイトで表現される。計測データ系では転送パターンを指定する必要があるが、コマンド系では必要ない。転送パターンを例示すると以下のとおりである。
最下位ビット(MSB):姿勢角(ピッチ角、ロール角、ヨー角)
第1位ビット:角速度
第2位ビット:加速度
第3位ビット:傾斜角
第4位ビット:重力補正後の加速度
第5位ビット:速度
第6位ビット:位置
第7位ビット:姿勢行列
第8位ビット:姿勢行列
第9位ビット:姿勢行列
第10位ビット:姿勢行列
第11位ビット:無効
第12位ビット:ユニット温度
第13位ビット:基板温度
第14位ビット:ダイアグ
第15位ビット:タイムカウント
各ビットが「1」のときに該当するデータが計測データとして送信される。例えば、ビット0が「1」のときにはセンサ15からの姿勢角データが計測データとして送信される。
最下位ビット(MSB):姿勢角(ピッチ角、ロール角、ヨー角)
第1位ビット:角速度
第2位ビット:加速度
第3位ビット:傾斜角
第4位ビット:重力補正後の加速度
第5位ビット:速度
第6位ビット:位置
第7位ビット:姿勢行列
第8位ビット:姿勢行列
第9位ビット:姿勢行列
第10位ビット:姿勢行列
第11位ビット:無効
第12位ビット:ユニット温度
第13位ビット:基板温度
第14位ビット:ダイアグ
第15位ビット:タイムカウント
各ビットが「1」のときに該当するデータが計測データとして送信される。例えば、ビット0が「1」のときにはセンサ15からの姿勢角データが計測データとして送信される。
計測データ部308は、センサ15の出力のうちの転送パターンで規定されたセンサ出力である。例えば、姿勢角、角速度、加速度、温度、タイムスタンプ、タイムカウント、ユニット名等である。各センサデータは、それぞれ固有のデータ形式を有する。すなわち、姿勢角、角速度、加速度、温度等は浮動小数点型データ、タイムスタンプやタイムカウントは整数型データ、ユニット名は文字型データである。
CRC部310は、CRC(Cyclic Redundancy Check:巡回冗長検査)データを規定する。CRCも周知技術であり、検査対象のデータ伝送ブロックを2進データとみなし、2進データを生成多項式という計算式で処理して一定のビット数(16ビットや32ビット)の検査データを作成し、生成した検査用データを実際のデータにつけて送信し、受信側で同様の多項式で処理してエラーの有無を検査する。
このように、送信データフォーマットの先頭の転送サイズ部302でデータ量を規定し、転送パターン部306でどのようなセンサデータがどの順で送信されているかを規定するため、データ長が変化したとしても受信側では各センサデータを正確に受信することができる。また、フレームの先頭と最後に特定のデリミタを付加しているため、受信側はデータ長を気にせずにデータの取り込み開始と終了を容易に判別できる。さらに、ロボットCPU12(あるいはユーザ)がデータの種類や形式の変更をセンサユニット10に対して要求し、実時間処理のために当該変更内容が反映された送信フレームが遅れてセンサユニット10からロボットCPU12に送信されたとしても、データフォーマット300内にデータ種類等についての情報が書き込まれているので、ロボットCPU12は遅れフレームであることを意識することなく読み取ることができる。
以下、ロボットCPU12からセンサユニット10に対して送信すべきセンサ出力を変更するコマンドを出力し、このコマンドに応じてセンサユニットがセンサ出力を変化させ、センサユニット10からロボットCPU12に送信されるデータ長を可変にする場合を例にとり説明する。
センサユニット10のCPU22は、センサ15の出力のうち、姿勢角、角速度、及び加速度を送信周期において送信しているものとする。ロボットCPU12は、図3のデータフォーマット300において、コマンド部304に「SET」コマンドを設定し、続いてデータ番号(設定箇所)、設定パラメータを設定して図2の受信周期にセンサユニット10に送信する。センサユニット10のCPU22は、「SET」コマンドを解釈し、計測データ部308に設定されているパラメータをRAM16の第2領域に格納する。RAM16の第1領域に既に格納されているパラメータは、転送パターンの各ビット値であり、姿勢角、角速度、加速度を全て送信するパターンであるから、第2位ビット、第1位ビット、及び最下位ビットで示すと「111」である。一方、ロボットCPU12から受信しRAM16の第2領域に格納される新たなパラメータは「100」である。これは、加速度を出力し、角速度及び姿勢角を出力しないパターンである。CPU22は、RAM16の第2領域に全てのパラメータを格納した後、第2領域に格納されたパラメータに従ってセンサ15からのセンサ出力を図3のデータフォーマット300でロボットCPU12に送信する。CPU22は、「SET」コマンドを解釈し、新たなパラメータをRAM16の第2領域に格納した後に、次の送信タイミングから新たなパラメータに切り替えてデータを送信する。CPU22が演算処理の実行中でジョブを割り当てられない、あるいはRS−232Cが通信中等で時間に余裕がない場合には、以降の送信フレームから新たなパラメータに切り替えられ反映される。このようにして転送パターン部306の転送パターンは「111」から「100」に変更され、計測データ部308に含まれるセンサ出力も(加速度、角速度、姿勢角)から(加速度)に変更される。フレームの先頭には「<」のデリミタが付加され、フレームの最後には「)」のデリミタが付加される。計測データのうち角速度及び姿勢角が削除されているためデータ長が短くなり、1フレームのデータ量も小さくなる。総データ量は先頭の転送サイズ部302で設定される。
ロボットCPU12は、センサユニット10から受信したデータの先頭デリミタ及び最後デリミタを検出することで1フレーム分のデータを判別し、転送サイズ部302で受信したフレームのデータ量を判別し、転送パターン部306で加速度のみが送信されたことを判別し、計測データ部308に設定された加速度を取得する。ロボットCPU12は、受信した加速度に基づいてロボットの姿勢をフィードバック制御する。かくして送信データ量を小さくし(あるいはデータ長を短くし)、通信速度を向上できる。
図4に、パラメータ変更前のデータフォーマット(図4(a))、及びパラメータ変更後のデータフォーマット(図4(b))を示す。計測データ部308においてデータ長が短くなることが模式的に示されている。
<タイムスタンプによる時間管理>
一方、センサユニット10からロボットCPU12にセンサ出力を送信する場合、データが欠落してデータの「飛び」が生じる場合がある。各制御周期をT1、T2、T3とすると、センサユニット10は間断なくこれらの周期でデータを送信し、周期T1、T3においてロボットCPU12はデータを受信するが、周期T2のデータが欠落する場合である。このようなデータ欠落が生じた場合、ロボットCPU12は欠落処理を実行するためにデータ欠落が生じたことを確実に検出する必要がある。データ欠落を検出できない場合、誤った時間におけるセンサ出力に基づいて姿勢制御が行われてしまう一方、データ欠落を検出できれば、欠落したデータを補完処理等して姿勢制御を維持できる。
一方、センサユニット10からロボットCPU12にセンサ出力を送信する場合、データが欠落してデータの「飛び」が生じる場合がある。各制御周期をT1、T2、T3とすると、センサユニット10は間断なくこれらの周期でデータを送信し、周期T1、T3においてロボットCPU12はデータを受信するが、周期T2のデータが欠落する場合である。このようなデータ欠落が生じた場合、ロボットCPU12は欠落処理を実行するためにデータ欠落が生じたことを確実に検出する必要がある。データ欠落を検出できない場合、誤った時間におけるセンサ出力に基づいて姿勢制御が行われてしまう一方、データ欠落を検出できれば、欠落したデータを補完処理等して姿勢制御を維持できる。
そこで、本実施形態では、上記の可変長データフォーマットに加え、計測データ部308に「タイムスタンプ」データ及び「タイムカウント」データを付加している。「タイムスタンプ」データは、ロボットCPU12からセンサユニット10に送信するデータに周期的タイミング、あるいは任意のタイミングで付加される。タイムスタンプの付加タイミングはユーザが設定する。ロボットCPU12は時計を内蔵し、データを送信するときの現在時刻のデータをタイムスタンプとしてセンサユニット10に送信する。
センサユニット10のCPU22はタイマを内蔵し、センサ15のセンサ出力をロボットCPU12に送信する場合に、ロボットCPU12からのデータに含まれるタイムスタンプ、つまり現在時刻のデータと、タイマでカウントアップした経過時間とをロボットCPU12に送信する。CPU22は、ロボットCPU12からタイムスタンプを受信する毎にこれを更新してRAM16に記憶する。また、CPU22のタイマは電源投入時、あるいはロボットCPU12から「RtTim」コマンドを受信したときにリセットされる。したがって、経過時間は、電源投入時からの経過時間、あるいはRtTimコマンドを受信してからの経過時間を示す。ロボットCPU12から「RtTim」コマンドを送信するとともにタイムスタンプを送信することで、タイムカウントはタイムスタンプで示された時刻からの経過時間を示すことになり、ロボットCPU12はタイムスタンプとタイムカウントの2つの情報を用いてセンサユニット10から受信したデータの時間情報を正確に検出できる。
図5に、データフォーマット300における計測データ部308の一部を模式的に示す。「タイムスタンプ」308aは、ロボットCPU12からセンサユニット10に送信されたデータに含まれる、ロボットCPU12で計測した現在時刻のデータであり、例えば12:01:15等である。「タイムカウント」308bは、センサユニット10で計測した経過時間のデータであり、例えば00:00:12である。ロボットCPU12は、センサユニット10から受信したデータに付加された、タイムスタンプ308a及びタイムカウンタ308bを検出することで、センサユニット10から受信したデータがどのタイミングのデータであるのかを識別できる。「タイムスタンプ」308aは、「タイムカウント」308bに付された時間ラベルと云うこともできる。図6に示すように、ロボットCPU12がセンサユニット10から順次受信したフレーム1、2、3のタイムスタンプ及びタイムカウントが以下のようであったとする。
<受信フレーム1>
タイムスタンプ 12:01:15
タイムカウント 00:00:12
<受信フレーム2>
タイムスタンプ 12:01:15
タイムカウント 00:00:14
<受信フレーム3>
タイムスタンプ 12:01:15
タイムカウント 00:00:18
ロボットCPU12は、受信フレーム2と受信フレーム3のタイムカウントの差分から、受信フレーム2と受信フレーム3との間でデータが欠落したことを検出できる。
<受信フレーム1>
タイムスタンプ 12:01:15
タイムカウント 00:00:12
<受信フレーム2>
タイムスタンプ 12:01:15
タイムカウント 00:00:14
<受信フレーム3>
タイムスタンプ 12:01:15
タイムカウント 00:00:18
ロボットCPU12は、受信フレーム2と受信フレーム3のタイムカウントの差分から、受信フレーム2と受信フレーム3との間でデータが欠落したことを検出できる。
図7に、センサユニット10とロボットCPU12との間のタイムマネジメント、すなち時間データ送受による時間管理を模式的に示す。まず、図7(a)において、時刻t1でロボットCPU12はタイムスタンプを送信する。センサユニット10のCPU22は、タイムスタンプを受信し、時刻t1を示すこのタイムスタンプをRAM16に格納する。タイムスタンプとともに「RsTim」コマンドを受信した場合には、このコマンドによりタイマを0にリセットし、タイムスタンプの時刻t1から再びカウントアップする。図7(b)に示すように、CPU22は、センサ15からのセンサ出力に時刻t1のタイムスタンプ、並びにタイマで計測したタイムカウントΔtを付加してロボットCPU12に送信する。ロボットCPU12は、受信したデータの時刻をt1+Δtとして識別できる。したがって、たとえ通信に時間を要し、センサユニット10からロボットCPU12に送信するフレームに遅延時間が生じていたとしても、ロボットCPU12は受信フレームの時刻、つまりセンサユニット10での計測時間を特定できるため、実時間処理を実行できる。また、順次受信したデータの有効時刻がそれぞれt1+Δt、t1+2・Δt、t1+3・Δtである場合、欠落なくデータを受信していることを検出できる。順次受信したデータの有効時刻がそれぞれt1+Δt、t1+2・Δt、t1+4・Δtである場合、センサユニット10から予め定められた周期で間断なくデータが送信されているから、t1+3・Δtのデータが欠落したことを検出できる。
本実施形態において、ロボットCPU12のみならず、センサユニット10にも固有の時計を内蔵し、センサユニット10からデータを送信する場合にその内蔵時計で計測した現在時刻を付加して送信することも可能であるが、センサユニット10の時計とロボットCPU12の時計とを正確に一致させる必要がある。本実施形態では、センサユニット10は現在時刻を計測するのではなく、時間間隔だけを計測してタイムスタンプとともに送信しているため、2つの時計の同時性について考慮する必要がなくなる。
以上説明したように、本実施形態では、
(1)センサユニット10からロボットCPU12に対して予め決められた間隔で間断なくデータを送信する
(2)センサユニット10からロボットCPU12に対して可変長データフォーマットでデータを送信し、どのようなデータをどのようなタイミングで送信してもロボットCPU12が確実に受信しこれを読み取ることができるようにする
(3)センサユニット10からロボットCPU12に対してデータを送信する際に、センサユニット10での計測時間データを付加してロボットCPU12に送信し、同時性の問題、あるいは2つの時計間の誤差問題を生じることなく、いつのデータであるかをロボットCPU12が正確に特定できるようにする
ことで、円滑な姿勢制御が可能となる。
(1)センサユニット10からロボットCPU12に対して予め決められた間隔で間断なくデータを送信する
(2)センサユニット10からロボットCPU12に対して可変長データフォーマットでデータを送信し、どのようなデータをどのようなタイミングで送信してもロボットCPU12が確実に受信しこれを読み取ることができるようにする
(3)センサユニット10からロボットCPU12に対してデータを送信する際に、センサユニット10での計測時間データを付加してロボットCPU12に送信し、同時性の問題、あるいは2つの時計間の誤差問題を生じることなく、いつのデータであるかをロボットCPU12が正確に特定できるようにする
ことで、円滑な姿勢制御が可能となる。
本実施形態では、センサユニット10は可変長データフォーマット300においてタイムスタンプ及びタイムカウントのデータをロボットCPU12に送信しているが、固定長データフォーマットを含む任意のデータフォーマットに適用することもできる。
また、上記の実施形態では、ロボットCPU12とセンサユニット10との間の1対1での通信を例示したが、本発明はこれに限定されるものではない。USBやIEEE1394、イーサネット(登録商標)(Ethernet(登録商標)等)の通信ラインに多数のデバイスが接続されていてもよい。具体的には、各種センサやアクチュエータが多数存在し、ロボットCPU12も多数存在して通信ネットワークに接続される状況である。このような多対多のシステムでは、リアルタイム性を確保するためには通信速度が十分速いだけでは不十分で、データの解読(デコード)がそのデータ単位で実行できること、データに時刻補正を行うに必要な時刻情報が含まれていることが重要となる。すなわち、通信ネットワーク上には高級で通信速度の速い機器や、低級で通信速度の遅い機器、高級で通信速度が速いがデータ量が極めて大きく通信時間をかなり占有するデバイス等が混在し、これらがランダムに通信を行うため正確に実時間で全ての機器が動作することはできず、実用上十分な時間幅でタイミングを合わせることが必要である。実用上十分な時間幅はシステムに依存するが、一般に1ms〜100ms程度である。このように実用上の実時間制御を確保するためには上記の自己解読性及び時刻算出機能を有することがキーとなる。なお、自己を識別し、あるいはどのデバイスからの指示に基づくものかも識別する必要があるが、これはヘッダ部で管理できる。また、本実施形態では上記のようにBASE64を用いているが、BASE64は一般的な形式なのでデータサイズとヘッダが読めれば内容(測定データ)を読まずとも複数のデバイスが自分に必要なデータかそうでないかを容易に判別できる利点もある。
以下、ロボットCPU12やセンサユニット10がネットワークに接続される場合について、より具体的に説明する。なお、ネットワーク上の各センサを互いに識別する記号(センサ名前やセンサ番号等)、CPUを識別する記号(プロセッサ名やプロセッサ番号等)はそれぞれに付与されており、これらは送信データに含まれるものとする。
<ネットワーク上に複数のセンサが存在する場合>
センサからのデータの中に、センサを識別する記号が含まれているので、ロボットCPUは複数のセンサの中から特定のセンサを識別できる。また、ロボットCPUはセンサを識別する記号を用いて特定のセンサへコマンドを送信することができる。
センサからのデータの中に、センサを識別する記号が含まれているので、ロボットCPUは複数のセンサの中から特定のセンサを識別できる。また、ロボットCPUはセンサを識別する記号を用いて特定のセンサへコマンドを送信することができる。
<ネットワーク上に複数のCPUが存在する場合>
センサからのデータの中に、複数のCPUの中から特定のCPUを識別する記号が含まれているので、ロボットの複数のCPUは該当センサのデータを使用すべき特定のCPUを識別できる。また、ロボットの複数のCPUの中で、特定のCPUが自分を識別する記号をデータに含ませて送信するので、センサへ特定のCPUを識別させながらコマンドを送信することができる。
センサからのデータの中に、複数のCPUの中から特定のCPUを識別する記号が含まれているので、ロボットの複数のCPUは該当センサのデータを使用すべき特定のCPUを識別できる。また、ロボットの複数のCPUの中で、特定のCPUが自分を識別する記号をデータに含ませて送信するので、センサへ特定のCPUを識別させながらコマンドを送信することができる。
<ネットワーク上に複数のセンサと複数のCPUが存在する場合>
センサからのデータの中に、センサを識別する記号とCPUを識別する記号が含まれているので、ロボットの複数のCPUと複数のセンサが互いに該当するセンサとCPUの組合せを識別できる。また、ロボットの複数のCPUの中で、特定のCPUが特定のセンサを識別する記号とCPUを識別する記号をデータに含ませて送信するので、特定のセンサへ特定のCPUを識別させながらコマンドを送信することができる。
センサからのデータの中に、センサを識別する記号とCPUを識別する記号が含まれているので、ロボットの複数のCPUと複数のセンサが互いに該当するセンサとCPUの組合せを識別できる。また、ロボットの複数のCPUの中で、特定のCPUが特定のセンサを識別する記号とCPUを識別する記号をデータに含ませて送信するので、特定のセンサへ特定のCPUを識別させながらコマンドを送信することができる。
<ネットワーク上に複数のセンサと複数のCPUが存在する場合のタイムスタンプとタイムカウント>
タイムカウントは各センサに固有のタイムカウント器により積算カウントされる。タイムスタンプは各CPU固有のタイムスタンプを持ち、所定のセンサとの組合せでセンサとCPUがタイムスタンプを共有する。これにより、複数のセンサが認識、管理する時刻を同一とし、かつ保持しなくてもロボットを実時間制御できる。センサは簡単なタイムカウント器(クロックカウンタ等)で動作が可能で、小型、低価格で本機能を実現できる。
タイムカウントは各センサに固有のタイムカウント器により積算カウントされる。タイムスタンプは各CPU固有のタイムスタンプを持ち、所定のセンサとの組合せでセンサとCPUがタイムスタンプを共有する。これにより、複数のセンサが認識、管理する時刻を同一とし、かつ保持しなくてもロボットを実時間制御できる。センサは簡単なタイムカウント器(クロックカウンタ等)で動作が可能で、小型、低価格で本機能を実現できる。
本方式により、複数のCPUの時刻を同一とし、かつ保持しなくてもロボットを実時間制御できる。そのため、CPUの小型化、低価格化が実現できる。また、システムを追加したり、プラグインしたりしても、追加したCPU、センサの時刻の同期も必要としないので、システムの追加、修正が容易である。一般に、複数のセンサやCPUの時刻を同一にし、保持することは難しく、サイズの大型化、価格の上昇、動作の遅延を生じる。通常、簡単なクロックカウント器は低品位な水晶発振器のクロックをカウントするので、複数のセンサと複数のCPUのクロック周期とクロックタイミングを正確に合わせることが困難で、複数のセンサと複数のCPUの時刻は同一とならない。ロボット等の実時間制御に必要なことは、所定のCPUと所定のセンサとの同期と時刻把握にあるので、固有のタイムスタンプを共有することにより、時刻を同一とすることと等価な行為が容易に実現できる。また、所定の長周期でタイムスタンプを更新することにより、低品位な水晶発振器のクロックをカウントすることによる積算誤差を除去し、実用に耐える時刻管理が可能となる。複数のCPUが同一のタイムスタンプを共有することにより、お互いの時刻を等価的に合わせることも容易に実現できる。
10 センサユニット、12 ロボットCPU、14 シリアルデータライン、15 センサ、16 RAM、18 ROM、20 ドライバ、22 CPU、300 データフォーマット。
Claims (3)
- ロボットのメインプロセッサと、
センサ出力を前記メインプロセッサに送信するセンサユニットと、
を有するロボット制御システムであって、
前記メインプロセッサと前記センサユニットとの間は、可変長データフォーマットでデータを送受信し、
前記可変長データフォーマットは、転送サイズ部、コマンド部、転送パターン部、及びデータ部を含み、
前記転送サイズ部で、転送されるデータ量を規定し、
前記コマンド部で、転送先の実行内容を規定し、
前記転送パターン部で、転送されるデータの種類及び順序を規定する
ことを特徴とするロボット制御システム。 - 請求項1記載のシステムにおいて、
前記メインプロセッサは、前記転送パターンとして転送されるデータの種類を減じるようなパラメータを設定して前記センサユニットに送信し、
前記センサユニットは、前記パラメータに応じて前記可変長データフォーマットの転送サイズ及び転送パターンを設定し、減じられた種類のデータを前記メインプロセッサに送信する
ことを特徴とするロボット制御システム。 - 請求項1記載のシステムにおいて、
前記メインプロセッサから前記センサユニットに送信されるデータには前記メインプロセッサで計時された時刻のデータが含まれ、
前記センサユニットから前記メインプロセッサに送信されるデータには前記時刻のデータ及び前記センサユニットで計時された経過時間のデータが含まれる
ことを特徴とするロボット制御システム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005223512A JP2007038326A (ja) | 2005-08-01 | 2005-08-01 | ロボット制御システム |
JP2007549982A JP4762999B2 (ja) | 2005-08-01 | 2006-08-01 | ロボット制御システム |
CNB2006800279333A CN100534730C (zh) | 2005-08-01 | 2006-08-01 | 机器人控制系统 |
US11/989,606 US20100094462A1 (en) | 2005-08-01 | 2006-08-01 | Robot Control System |
PCT/IB2006/002097 WO2007015145A2 (en) | 2005-08-01 | 2006-08-01 | Robot control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005223512A JP2007038326A (ja) | 2005-08-01 | 2005-08-01 | ロボット制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007038326A true JP2007038326A (ja) | 2007-02-15 |
Family
ID=37708192
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005223512A Pending JP2007038326A (ja) | 2005-08-01 | 2005-08-01 | ロボット制御システム |
JP2007549982A Expired - Fee Related JP4762999B2 (ja) | 2005-08-01 | 2006-08-01 | ロボット制御システム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007549982A Expired - Fee Related JP4762999B2 (ja) | 2005-08-01 | 2006-08-01 | ロボット制御システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100094462A1 (ja) |
JP (2) | JP2007038326A (ja) |
CN (1) | CN100534730C (ja) |
WO (1) | WO2007015145A2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011516287A (ja) * | 2008-04-09 | 2011-05-26 | アルデバラン ロボティクス | 関節肢を使用する移動ロボットの制御コマンドアーキテクチャ |
JP2012508926A (ja) * | 2008-11-13 | 2012-04-12 | マイクロ モーション インコーポレイテッド | 相対時間タイマーを備えた送信機 |
JP2014209370A (ja) * | 2014-06-24 | 2014-11-06 | マイクロ モーション インコーポレイテッド | 相対時間タイマーを備えた送信機 |
JP2015103176A (ja) * | 2013-11-27 | 2015-06-04 | 株式会社リコー | 情報処理装置、プログラム、情報処理方法、及び情報処理システム |
US10589429B2 (en) | 2017-03-08 | 2020-03-17 | Fanuc Corporation | Machine system |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4676544B2 (ja) * | 2009-05-29 | 2011-04-27 | ファナック株式会社 | 工作機械に対してワークの供給及び取り出しを行うロボットを制御するロボット制御装置 |
DE102009037302B4 (de) * | 2009-08-14 | 2022-03-24 | Abb Ag | Anordnung zur Diagnose einer Vorrichtung mit beweglichen Teilen |
DE102010052394B4 (de) * | 2010-11-24 | 2019-01-03 | Kuka Roboter Gmbh | Robotersystem mit einem Roboter und zwei wechselweise mit diesem verbindbaren Einrichtungen sowie Verfahren zum Wechseln dieser Einrichtungen |
JP6052576B2 (ja) * | 2012-05-30 | 2016-12-27 | 日本電気株式会社 | 情報処理システム、情報処理方法、情報処理装置、携帯端末およびその制御方法と制御プログラム |
AU2013204965B2 (en) * | 2012-11-12 | 2016-07-28 | C2 Systems Limited | A system, method, computer program and data signal for the registration, monitoring and control of machines and devices |
JP5815664B2 (ja) * | 2013-12-26 | 2015-11-17 | ファナック株式会社 | 無線加速度センサを有するロボットシステム |
CN104015190B (zh) * | 2014-05-13 | 2016-04-13 | 中国科学院力学研究所 | 一种不确定双向时延条件下的机器人远程控制方法和系统 |
KR101785821B1 (ko) | 2016-01-04 | 2017-10-16 | 엘에스산전 주식회사 | 시리얼 통신의 프레임 수신 모니터링 방법 |
WO2017144078A1 (en) * | 2016-02-23 | 2017-08-31 | Abb Schweiz Ag | Robot controller system and method therefor |
JP6165286B1 (ja) * | 2016-02-29 | 2017-07-19 | 株式会社安川電機 | モータ制御システム、ロボットシステム、及びモータ制御システムの通信方法 |
CN107972024A (zh) * | 2016-10-24 | 2018-05-01 | 深圳光启合众科技有限公司 | 机器人及应用在机器人上的数据处理方法和系统 |
JP6605638B2 (ja) * | 2018-02-02 | 2019-11-13 | 本田技研工業株式会社 | 制御処理装置 |
JP6919596B2 (ja) * | 2018-03-01 | 2021-08-18 | オムロン株式会社 | 計測システムおよび方法 |
CN111376259A (zh) * | 2018-12-30 | 2020-07-07 | 深圳市优必选科技有限公司 | 一种数据发送周期的确定方法、装置、存储介质及机器人 |
JP6826644B1 (ja) | 2019-09-19 | 2021-02-03 | 日本金銭機械株式会社 | 情報処理装置及び情報処理システム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60177888A (ja) * | 1984-02-22 | 1985-09-11 | フアナツク株式会社 | 視覚センサ処理装置とロボツト制御装置との結合方式 |
US4975856A (en) * | 1986-02-18 | 1990-12-04 | Robotics Research Corporation | Motion controller for redundant or nonredundant linkages |
US5036334A (en) * | 1990-02-08 | 1991-07-30 | The Research Foundation Of State University Of New York | Lightning direction finder controller (LDFC) |
US5481675A (en) * | 1992-05-12 | 1996-01-02 | International Business Machines Corporation | Asynchronous serial communication system for delaying with software dwell time a receiving computer's acknowledgement in order for the transmitting computer to see the acknowledgement |
US5682460A (en) * | 1994-08-29 | 1997-10-28 | Motorola, Inc. | Method for selecting transmission preferences |
JP3421191B2 (ja) * | 1996-04-23 | 2003-06-30 | 三菱電機株式会社 | ロボット制御装置およびそのデータ通信方法 |
JPH10275006A (ja) * | 1997-03-31 | 1998-10-13 | Tokico Ltd | 工業用ロボット |
JP2959534B2 (ja) * | 1997-08-25 | 1999-10-06 | 日本電気株式会社 | 多関節ロボット用制御装置 |
JP3919040B2 (ja) * | 1997-11-30 | 2007-05-23 | ソニー株式会社 | ロボツト装置 |
US7020701B1 (en) * | 1999-10-06 | 2006-03-28 | Sensoria Corporation | Method for collecting and processing data using internetworked wireless integrated network sensors (WINS) |
US7031288B2 (en) * | 2000-09-12 | 2006-04-18 | Sri International | Reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network |
EP1371185B1 (de) * | 2001-03-22 | 2005-11-23 | Siemens Aktiengesellschaft | Verfahren und elektronischer schaltkreis für eine skalierbare kommunikationsschnittstelle in automatisierungskomponenten |
US7882253B2 (en) * | 2001-04-05 | 2011-02-01 | Real-Time Innovations, Inc. | Real-time publish-subscribe system |
GB0130812D0 (en) * | 2001-12-22 | 2002-02-06 | Koninkl Philips Electronics Nv | Messaging arrangement |
JP2003323687A (ja) * | 2002-05-08 | 2003-11-14 | Yaskawa Electric Corp | マルチドロップタイプエンコーダのアドレス設定方法 |
JP4254321B2 (ja) * | 2003-04-15 | 2009-04-15 | 株式会社ニコン | エンコーダ装置、ロボットシステム |
JP2004318439A (ja) * | 2003-04-15 | 2004-11-11 | Sendai Nikon:Kk | エンコーダ装置、ロボットシステム |
JP2004351551A (ja) * | 2003-05-28 | 2004-12-16 | Seiko Epson Corp | ロボットの制御装置およびロボットの制御方法 |
-
2005
- 2005-08-01 JP JP2005223512A patent/JP2007038326A/ja active Pending
-
2006
- 2006-08-01 WO PCT/IB2006/002097 patent/WO2007015145A2/en active Application Filing
- 2006-08-01 JP JP2007549982A patent/JP4762999B2/ja not_active Expired - Fee Related
- 2006-08-01 US US11/989,606 patent/US20100094462A1/en not_active Abandoned
- 2006-08-01 CN CNB2006800279333A patent/CN100534730C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP2012508926A (ja) * | 2008-11-13 | 2012-04-12 | マイクロ モーション インコーポレイテッド | 相対時間タイマーを備えた送信機 |
US9820019B2 (en) | 2008-11-13 | 2017-11-14 | Micro Motion, Inc. | Transmitter with a relative-time timer |
JP2015103176A (ja) * | 2013-11-27 | 2015-06-04 | 株式会社リコー | 情報処理装置、プログラム、情報処理方法、及び情報処理システム |
JP2014209370A (ja) * | 2014-06-24 | 2014-11-06 | マイクロ モーション インコーポレイテッド | 相対時間タイマーを備えた送信機 |
US10589429B2 (en) | 2017-03-08 | 2020-03-17 | Fanuc Corporation | Machine system |
Also Published As
Publication number | Publication date |
---|---|
CN100534730C (zh) | 2009-09-02 |
CN101232977A (zh) | 2008-07-30 |
JP2008526536A (ja) | 2008-07-24 |
US20100094462A1 (en) | 2010-04-15 |
WO2007015145A2 (en) | 2007-02-08 |
JP4762999B2 (ja) | 2011-08-31 |
WO2007015145A3 (en) | 2007-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4762999B2 (ja) | ロボット制御システム | |
JP4812836B2 (ja) | ロボット制御システムおよびロボットの制御方法 | |
EP3116166B1 (en) | Control system, control device, and control method | |
TWI476550B (zh) | 資料轉送裝置 | |
US10022862B2 (en) | Control-command architecture for a mobile robot using articulated limbs | |
US20140005835A1 (en) | Cpu of plc, system program for plc, and recording medium storing system program for plc | |
KR102148943B1 (ko) | 프로그래머블 컨트롤러 시스템, 그 컨트롤러 | |
US9753447B2 (en) | Control unit, output control method and program | |
JP7059673B2 (ja) | 制御装置、制御システム、制御方法、および、制御プログラム | |
JP2022093387A (ja) | 制御システム、装置および制御方法 | |
US20220244697A1 (en) | Control system, setting device, and computer-readable storage medium | |
WO2016024483A1 (ja) | アナログ/ディジタル変換回路 | |
EP2398190B1 (en) | Field communication system | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
CN110278716B (zh) | Plc、网络单元、cpu单元、以及数据传送方法 | |
JP2021033437A (ja) | 制御システム、制御装置およびプログラム | |
WO2022199000A1 (zh) | 一种控制方法、控制系统及智能设备 | |
EP3869745B1 (en) | Production system, communication method, and program | |
US20210255598A1 (en) | Production system, communication method, and information storage medium | |
JP7430694B2 (ja) | 制御システム、制御方法、及びプログラム | |
JP2008199092A (ja) | データ送信装置 | |
JP5413801B2 (ja) | フィールド通信方法およびこれを用いたフィールド機器 | |
Chvostek et al. | Simulation of network using truetime toolbox | |
JP5490267B2 (ja) | データ転送装置 | |
JP2008539475A (ja) | 事象メッセージをエネルギー節約的かつ適時に伝送する方法 |