JP4762999B2 - ロボット制御システム - Google Patents

ロボット制御システム Download PDF

Info

Publication number
JP4762999B2
JP4762999B2 JP2007549982A JP2007549982A JP4762999B2 JP 4762999 B2 JP4762999 B2 JP 4762999B2 JP 2007549982 A JP2007549982 A JP 2007549982A JP 2007549982 A JP2007549982 A JP 2007549982A JP 4762999 B2 JP4762999 B2 JP 4762999B2
Authority
JP
Japan
Prior art keywords
data
time
sensor
sensor unit
main processor
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.)
Expired - Fee Related
Application number
JP2007549982A
Other languages
English (en)
Other versions
JP2008526536A (ja
Inventor
久義 杉原
裕 野々村
基弘 藤吉
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.)
Toyota Motor Corp
Toyota Central R&D Labs Inc
Original Assignee
Toyota Motor Corp
Toyota Central R&D Labs Inc
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 Toyota Motor Corp, Toyota Central R&D Labs Inc filed Critical Toyota Motor Corp
Priority to JP2007549982A priority Critical patent/JP4762999B2/ja
Publication of JP2008526536A publication Critical patent/JP2008526536A/ja
Application granted granted Critical
Publication of JP4762999B2 publication Critical patent/JP4762999B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Numerical Control (AREA)
  • Communication Control (AREA)

Description

本発明はロボット制御システム、特にロボットのメインプロセッサとセンサユニット間のデータ通信に関する。
ロボット等の移動体の姿勢制御に加速度センサや角速度センサが用いられている。直交する3軸をX軸、Y軸、Z軸とすると、各軸方向の加速度を3個の加速度センサで検出し、各軸回りの角速度を3個の角速度センサで検出する。軸回りの角度、あるいは姿勢角は、角速度センサの出力を時間積分して得られ、ロール角、ピッチ角、ヨー角が算出される。
特開2004−268730号公報には、ジャイロセンサから出力される加速度データ及び姿勢データを用いて姿勢制御する技術が開示されている。
また、特開平6−340149号公報には、コマンド及び可変長のパラメータの組からなるデータを送受信することが記載されている。
センサユニットで検出された姿勢角等のセンサデータはロボットの姿勢制御を行うメインプロセッサ(あるいはホストプロセッサ)に送信され、フィードバック制御に用いられるが、データ量の増大に伴い制御周期が長くなるとロボットの制御性が低下するため、必要に応じて送信データ量を調整してデータ通信速度を確保し、制御性を向上できることが望ましい。
また、通信の失敗等によりデータが欠落した場合、メインプロセッサは所定の欠落処理を実行してロボットの制御性を維持できるが、欠落の発生自体をメインプロセッサが確実に検出できることが必要である。
本発明の目的は、ロボット制御の応答性を確保できるロボット制御システムを提供することにある。
本発明の一態様は、ロボットのメインプロセッサと、センサ出力を前記メインプロセッサに送信するセンサユニットとを有するロボット制御システムにおいて、前記メインプロセッサと前記センサユニットとの間は、可変長データフォーマットでデータを送受信し、前記可変長データフォーマットは、転送サイズ部、コマンド部、転送パターン部、及びデータ部を含み、前記転送サイズ部で、転送されるデータ量を規定し、前記転送パターン部は、転送される前記データ部のデータ種類及び順序を規定するものであり、複数ビットで構成され、前記複数ビットの各ビットはそれぞれ特定のデータ種類と対応づけられ、各ビットの値は対応づけられたデータ種類のデータの有無を表し、前記メインプロセッサは、前記センサユニットから転送されるデータ種類を減じる場合に、前記コマンド部に前記転送パターン部の各ビットの値を新たな設定パラメータとして記憶する旨のコマンドを含めて、前記センサユニットに送信し、前記センサユニットは、前記メインプロセッサから送信された設定パラメータを格納するメモリを有し、前記センサ出力のうち、前記メモリに格納された設定パラメータで特定されるデータ種類のセンサ出力のみを前記データ部に含めて前記メインプロセッサに送信することを特徴とする。
上記の態様では、固定長データフォーマットではなく可変長データフォーマットでデータを送受信することで、ロボットの制御性を確保する。すなわち、適宜データ長を短くして送受信することで通信速度を向上させ、制御遅れを抑制する。
また、本発明の第2の態様は、上記第1の態様において、メインプロセッサからセンサユニットに送信されるデータにメインプロセッサで計時された時刻のデータを含め、かつ、センサユニットからメインプロセッサに送信されるデータに時刻のデータ及びセンサユニットで計時された経過時間のデータを含める。センサユニットからメインプロセッサに送信されるデータに時刻のデータ及び経過時間のデータを含めることで、メインプロセッサではセンサユニットから受信したデータの時間情報を得ることができ、受信したデータの時間の不連続性からデータの欠落を容易に検出できる。また、センサユニットからメインプロセッサに送るデータに遅延が生じたとしても、センサユニットからメインプロセッサに送信されるデータに(時刻のデータ+経過時間のデータ)が含まれているため、メインプロセッサは正確にセンサユニットから送信されたデータの時間(計測時間)を識別できる。また、時刻のデータはメインプロセッサのみで生成するため、メインプロセッサで計測した時刻とセンサユニットで計測した時刻の誤差問題、いわゆる同時性問題を生じない。
本発明によれば、送受信するデータ長を適宜増減調整できるので、ロボットの制御応答性を確保できる。
また、本発明の第2の態様によれば、センサユニットから送信されるデータに時間遅れが生じていても、メインプロセッサは正確に時間情報を取得することができるので、ロボットのリアルタイム処理を実行できる。
以下、図面に基づき本発明の実施形態について説明する。
図1に、本実施形態に係るロボット制御システムの概念構成を示す。センサユニット10及びロボットのメインプロセッサ(ホストプロセッサ)であるロボットCPU12が設けられ、センサユニット10とロボットCPU12はシリアルデータライン14でシリアル通信可能に接続される。なお、センサユニット10及びロボットCPU12が組み込まれるロボットの形状は任意であり、2輪走行ロボット、4輪走行ロボット、2足歩行ロボット、飛行体ロボット等のいずれでもよい。
センサユニット10は、加速度センサや角速度センサ等のセンサ15、RAM16、ROM18、ドライバ20及びCPU22を含む。
ROM18は、センサユニット10の実行処理を記述したOS(operating system)あるいはプログラムを格納する。プログラムには、ロボット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を経て送信されてきたデータを受信する。
図2A,2Bに、センサユニット10のCPU22とロボットCPU12との間で行われるシリアル通信のタイミングチャートを示す。図2AはCPU22から見た送信時のタイミングチャートであり、図2BはCPU22から見た受信時のタイミングチャートである。
図2Aにおいて、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で検出されたセンサデータが含まれることを示すデリミタとする。前者をコマンド系、後者を計測データ系と称する。
一方、図2Bにおいて、制御周期のうちの送信周期の残りの周期が受信周期として割り当てられ、ロボット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を示す。送信データ量を増減調整できる可変長データフォーマットである。
データフォーマット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バイトで表現される。計測データ系では転送パターンを指定する必要があるが、コマンド系では必要ない。転送パターンを例示すると以下のとおりである。
最下位ビット(LSB):姿勢角(ロール角、ピッチ角、ヨー角)
第1位ビット:角速度
第2位ビット:加速度
第3位ビット:傾斜角
第4位ビット:重力補正後の加速度
第5位ビット:速度
第6位ビット:位置
第7位ビット:姿勢行列
第8位ビット:姿勢行列
第9位ビット:姿勢行列
第10位ビット:姿勢行列
第11位ビット:無効
第12位ビット:ユニット温度
第13位ビット:基板温度
第14位ビット:ダイアグ
第15位ビット:タイムカウント
各ビットが「1」のときに該当するデータが計測データとして送信される。例えば、ビット0(LSB)が「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は、受信した加速度に基づいてロボットの姿勢をフィードバック制御する。かくして送信データ量を小さくし(あるいはデータ長を短くし)、通信速度を向上できる。
図4A,4Bに、パラメータ変更前のデータフォーマット(図4A)、及びパラメータ変更後のデータフォーマット(図4B)を示す。計測データ部308においてデータ長が短くなることが模式的に示されている。
<タイムスタンプによる時間管理>
一方、センサユニット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との間でデータが欠落したことを検出できる。
図7A,7Bに、センサユニット10とロボットCPU12との間のタイムマネジメント、すなち時間データ送受による時間管理を模式的に示す。まず、図7Aにおいて、時刻t1でロボットCPU12はタイムスタンプを送信する。センサユニット10のCPU22は、タイムスタンプを受信し、時刻t1を示すこのタイムスタンプをRAM16に格納する。タイムスタンプとともに「RsTim」コマンドを受信した場合には、このコマンドによりタイマを0にリセットし、タイムスタンプの時刻t1から再びカウントアップする。図7Bに示すように、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が正確に特定できるようにする
ことで、円滑な姿勢制御が可能となる。
本実施形態では、センサユニット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が同一のタイムスタンプを共有することにより、お互いの時刻を等価的に合わせることも容易に実現できる。
本発明の実施形態に係るロボット制御システムの概念構成図である。 データ送受信のタイミングチャートである。 データ送受信のタイミングチャートである。 データフォーマット図である。 可変長データの説明図である。 可変長データの説明図である。 計測データ部に含まれるタイムスタンプ及びタイムカウントの説明図である。 タイムスタンプ及びタイムカウントの一例を示す図である。 ロボット制御システムの時間管理を示す説明図である。 ロボット制御システムの時間管理を示す説明図である。

Claims (6)

  1. ロボットのメインプロセッサと、
    センサ出力を前記メインプロセッサに送信するセンサユニットと、
    を有するロボット制御システムにおいて、
    前記メインプロセッサと前記センサユニットとの間は、可変長データフォーマットでデータを送受信し、
    前記可変長データフォーマットは、転送サイズ部、コマンド部、転送パターン部、及びデータ部を含み、
    前記転送サイズ部で、転送されるデータ量を規定し、
    前記転送パターン部は、転送される前記データ部のデータ種類及び順序を規定するものであり、複数ビットで構成され、前記複数ビットの各ビットはそれぞれ特定のデータ種類と対応づけられ、各ビットの値は対応づけられたデータ種類のデータの有無を表し、
    前記メインプロセッサは、前記センサユニットから転送されるデータ種類を減じる場合に、前記コマンド部に前記転送パターン部の各ビットの値を新たな設定パラメータとして記憶する旨のコマンドを含めて、前記センサユニットに送信し、
    前記センサユニットは、前記メインプロセッサから送信された設定パラメータを格納するメモリを有し、前記センサ出力のうち、前記メモリに格納された設定パラメータで特定されるデータ種類のセンサ出力のみを前記データ部に含めて前記メインプロセッサに送信する
    ことを特徴とするロボット制御システム。
  2. 請求項1記載のシステムにおいて、
    前記メインプロセッサから前記センサユニットに送信されるデータには前記メインプロセッサで計時された時刻のデータが含まれ、
    前記センサユニットから前記メインプロセッサに送信されるデータには前記時刻のデータ及び前記センサユニットで計時された前記時刻のデータが示す時刻からの経過時間のデータが含まれる
    ことを特徴とするロボット制御システム。
  3. 請求項2記載のシステムにおいて、
    前記経過時間は、各センサに固有のタイムカウント器により計時される
    ことを特徴とするロボット制御システム。
  4. 請求項1記載のシステムにおいて、
    前記センサユニットは、所定制御周期のうち、送信周期においてデータをメインプロセッサに送信し、残りの周期においてデータをメインプロセッサから受信する
    ことを特徴とするロボット制御システム。
  5. 請求項1記載のシステムにおいて、
    前記センサ出力は、姿勢角、角速度、加速度、温度の少なくとも一つを含む
    ことを特徴とするロボット制御システム。
  6. 請求項1記載のシステムにおいて、
    前記メインプロセッサと前記センサユニットの少なくともいずれかは複数存在し、
    前記センサ出力は、複数の前記センサユニットを識別する記号と複数の前記メインプロセッサを識別する記号の少なくともいずれかを含む
    ことを特徴とするロボット制御システム。
JP2007549982A 2005-08-01 2006-08-01 ロボット制御システム Expired - Fee Related JP4762999B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007549982A JP4762999B2 (ja) 2005-08-01 2006-08-01 ロボット制御システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005223512 2005-08-01
JP2005223512A JP2007038326A (ja) 2005-08-01 2005-08-01 ロボット制御システム
JP2007549982A JP4762999B2 (ja) 2005-08-01 2006-08-01 ロボット制御システム
PCT/IB2006/002097 WO2007015145A2 (en) 2005-08-01 2006-08-01 Robot control system

Publications (2)

Publication Number Publication Date
JP2008526536A JP2008526536A (ja) 2008-07-24
JP4762999B2 true JP4762999B2 (ja) 2011-08-31

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 Before (1)

Application Number Title Priority Date Filing Date
JP2005223512A Pending JP2007038326A (ja) 2005-08-01 2005-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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248588B2 (en) 2016-01-04 2019-04-02 Lsis Co., Ltd. Frame reception monitoring method in serial communications

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2929873B1 (fr) * 2008-04-09 2010-09-03 Aldebaran Robotics Architecture de controle-commande d'un robot mobile utilisant des membres articules
AU2008364001B2 (en) * 2008-11-13 2014-02-13 Micro Motion, Inc. Transmitter with a relative-time timer
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
JP6337449B2 (ja) * 2013-11-27 2018-06-06 株式会社リコー 会議サーバ装置、プログラム、情報処理方法、及び会議システム
JP5815664B2 (ja) * 2013-12-26 2015-11-17 ファナック株式会社 無線加速度センサを有するロボットシステム
CN104015190B (zh) * 2014-05-13 2016-04-13 中国科学院力学研究所 一种不确定双向时延条件下的机器人远程控制方法和系统
JP5855170B2 (ja) * 2014-06-24 2016-02-09 マイクロ モーション インコーポレイテッド 相対時間タイマーを備えた送信機
CN109070345B (zh) * 2016-02-23 2021-08-06 Abb瑞士股份有限公司 机器人控制器系统及方法
JP6165286B1 (ja) * 2016-02-29 2017-07-19 株式会社安川電機 モータ制御システム、ロボットシステム、及びモータ制御システムの通信方法
CN107972024A (zh) * 2016-10-24 2018-05-01 深圳光启合众科技有限公司 机器人及应用在机器人上的数据处理方法和系统
JP6426781B2 (ja) 2017-03-08 2018-11-21 ファナック株式会社 機械システム
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 日本金銭機械株式会社 情報処理装置及び情報処理システム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60177888A (ja) * 1984-02-22 1985-09-11 フアナツク株式会社 視覚センサ処理装置とロボツト制御装置との結合方式
JPH09285983A (ja) * 1996-04-23 1997-11-04 Mitsubishi Electric Corp ロボット制御装置およびそのデータ通信方法
JPH10275006A (ja) * 1997-03-31 1998-10-13 Tokico Ltd 工業用ロボット
JPH1158275A (ja) * 1997-08-25 1999-03-02 Nec Corp 多関節ロボット用制御装置
JPH11156765A (ja) * 1997-11-30 1999-06-15 Sony Corp ロボツト装置
JP2003323687A (ja) * 2002-05-08 2003-11-14 Yaskawa Electric Corp マルチドロップタイプエンコーダのアドレス設定方法
JP2004318439A (ja) * 2003-04-15 2004-11-11 Sendai Nikon:Kk エンコーダ装置、ロボットシステム
JP2004317261A (ja) * 2003-04-15 2004-11-11 Sendai Nikon:Kk エンコーダ装置、ロボットシステム
JP2004351551A (ja) * 2003-05-28 2004-12-16 Seiko Epson Corp ロボットの制御装置およびロボットの制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
DE50205022D1 (de) * 2001-03-22 2005-12-29 Siemens Ag 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

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60177888A (ja) * 1984-02-22 1985-09-11 フアナツク株式会社 視覚センサ処理装置とロボツト制御装置との結合方式
JPH09285983A (ja) * 1996-04-23 1997-11-04 Mitsubishi Electric Corp ロボット制御装置およびそのデータ通信方法
JPH10275006A (ja) * 1997-03-31 1998-10-13 Tokico Ltd 工業用ロボット
JPH1158275A (ja) * 1997-08-25 1999-03-02 Nec Corp 多関節ロボット用制御装置
JPH11156765A (ja) * 1997-11-30 1999-06-15 Sony Corp ロボツト装置
JP2003323687A (ja) * 2002-05-08 2003-11-14 Yaskawa Electric Corp マルチドロップタイプエンコーダのアドレス設定方法
JP2004318439A (ja) * 2003-04-15 2004-11-11 Sendai Nikon:Kk エンコーダ装置、ロボットシステム
JP2004317261A (ja) * 2003-04-15 2004-11-11 Sendai Nikon:Kk エンコーダ装置、ロボットシステム
JP2004351551A (ja) * 2003-05-28 2004-12-16 Seiko Epson Corp ロボットの制御装置およびロボットの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248588B2 (en) 2016-01-04 2019-04-02 Lsis Co., Ltd. Frame reception monitoring method in serial communications

Also Published As

Publication number Publication date
CN100534730C (zh) 2009-09-02
CN101232977A (zh) 2008-07-30
JP2007038326A (ja) 2007-02-15
WO2007015145A2 (en) 2007-02-08
JP2008526536A (ja) 2008-07-24
WO2007015145A3 (en) 2007-04-26
US20100094462A1 (en) 2010-04-15

Similar Documents

Publication Publication Date Title
JP4762999B2 (ja) ロボット制御システム
JP6187674B2 (ja) 制御システム、制御装置および制御方法
TWI476550B (zh) 資料轉送裝置
JP4812836B2 (ja) ロボット制御システムおよびロボットの制御方法
JP5849345B2 (ja) 関節肢を使用する移動ロボットの制御コマンドアーキテクチャ
JP6263836B2 (ja) 制御装置および制御方法
JP2019159697A (ja) 制御システムおよび制御方法
JP7059673B2 (ja) 制御装置、制御システム、制御方法、および、制御プログラム
JP2022093387A (ja) 制御システム、装置および制御方法
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单元、以及数据传送方法
WO2022199000A1 (zh) 一种控制方法、控制系统及智能设备
JP7430694B2 (ja) 制御システム、制御方法、及びプログラム
JP2007249560A (ja) プログラマブルコントローラにおけるcpuモジュール
JP5413801B2 (ja) フィールド通信方法およびこれを用いたフィールド機器
JP2002077201A (ja) 通信制御装置
JP2008199092A (ja) データ送信装置
JPWO2012111653A1 (ja) データ転送装置
JP2009077111A (ja) Ieee1394応用マスタ・スレーブ同期通信システムおよびその方法
JP2009005412A (ja) 制御装置,制御方法及び制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

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: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110608

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees