JP2011183498A - ロボットのコントローラ - Google Patents

ロボットのコントローラ Download PDF

Info

Publication number
JP2011183498A
JP2011183498A JP2010050446A JP2010050446A JP2011183498A JP 2011183498 A JP2011183498 A JP 2011183498A JP 2010050446 A JP2010050446 A JP 2010050446A JP 2010050446 A JP2010050446 A JP 2010050446A JP 2011183498 A JP2011183498 A JP 2011183498A
Authority
JP
Japan
Prior art keywords
packet
address
header
data
footer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010050446A
Other languages
English (en)
Other versions
JP5445233B2 (ja
Inventor
Shogo Kabetani
昇吾 壁谷
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.)
Denso Wave Inc
Original Assignee
Denso Wave 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 Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2010050446A priority Critical patent/JP5445233B2/ja
Publication of JP2011183498A publication Critical patent/JP2011183498A/ja
Application granted granted Critical
Publication of JP5445233B2 publication Critical patent/JP5445233B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

【課題】制御命令を適切に受信できなかった場合に、どこに問題があるのかを特定することができるロボットのコントローラを提供する。
【解決手段】受信したパケットは、パケット格納用メモリに一時的に格納される。コントローラの制御部は、受信したパケット格納用メモリに格納された全てのパケットに対してパケット確認処理を実行する。このパケット確認処理では、各パケットのそれぞれについて、個別に正常または異常という判断がなされる。制御部は、正常であると判断したパケットのシリアル番号を正常に受信した旨を表すデータとともに外部に出力する。正常でないと判断したパケットについては、正常であると判断したパケットの1つ後に受信したパケットという形で特定し、その旨を表す異常データを外部に出力する。
【選択図】図4

Description

本発明は、外部から与えられる制御命令に従ってロボットの動作を制御するロボットのコントローラに関する。
ロボットを制御するためのコントローラは、外部から与えられる制御命令(コマンド)に従い、ロボットの各軸の駆動制御やI/Oの切替制御などを行うようになっている。このコマンドは、ユーザが任意に作成したプログラムなどに基づいて例えばパソコンから送信される。また、コマンドは、制御情報(ヘッダ、フッタ、シリアル番号など)が付加されたパケット単位で送信される。このパケットのデータ構造は予め定められている。そして、プログラムについてのデバッグ作業は、ユーザ自身が行う。従って、ユーザがプログラムの作成を誤った場合などには、送信されるパケットが正規のデータ構造でないことも考えられる。一方、ロボットがユーザの意図しない動作を行うことは危険な事態を招くおそれがある。このため、ユーザのプログラムが原因で上記事態を招くことがないようにコントローラ側でその対策を行う必要がある。
このような事情から、コントローラでは、受信したパケットが正規のデータ構造を有していなかった場合など、コマンドを適切に受信できなかった場合には、当該コマンドはデータ長自体が正しくない可能性があるので、そのパケットおよびそれ以降のパケットを全て破棄(リセット)する。その後、パソコン側から同じパケットを再度送信させて、コントローラ側で再度受信動作を行う。これにより、誤った構造のパケットが送信されたとしても、コントローラはこれに応じることがないので、ロボットがユーザの意図しない動作を行う事態を未然に防止できるようになっている。
上記したようにデータ受信に関する問題が生じたときにリセットを行う技術は、例えば特許文献1にも開示されている。すなわち、特許文献1には、外部との間にて非接触でデータを入出力する非接触入力手段に異常が発生した場合に、これをリセットして再度データの送受信を行う技術が開示されている。
特開平5−143791号公報
上記したコマンドの受信方法では以下のような問題が生じる可能性がある。すなわち、パソコンから連続してパケットが送信され、そのうちの1つに問題(非正規のデータ構造になっているなど)があった場合、連続して送信されたパケットの全てがリセットされる。このため、ユーザは、どのパケットに問題があってリセットがかけられたのかを認識することができず、同じミスを繰り返してしまう可能性があった。
本発明は上記事情に鑑みてなされたものであり、その目的は、制御命令を適切に受信できなかった場合に、どこに問題があるのかを特定することができるロボットのコントローラを提供することにある。
請求項1記載の手段によれば、制御部は、外部から与えられる制御命令をパケット単位で受信する。制御部は、受信したパケットを受信した順にパケット格納用メモリの開始アドレスから終了アドレスに向けて順次格納させる。このパケットは、所定のデータ構造を有するものであり、固定長のヘッダ、メッセージ長、シリアル番号およびフッタと、可変長のデータ部とから構成される。ヘッダは、パケットの先頭に設けられる固定値のデータである。メッセージ長は、ヘッダの直後に設けられ、パケットの全データ長を示すデータである。シリアル番号は、パケット毎に特有の値となるデータである。データ部は、制御内容を示すデータである。フッタは、パケットの最後尾に設けられる固定値のデータである。制御部は、パケット格納用メモリに格納されたパケットが正常であるか否か、すなわち、上記したような正規のデータ構造を有しているか否かを判断する。そして、制御部は、正常であると判断したパケットのデータ部が示す制御内容に基づいてロボットの動作制御を行う。
制御部は、パケットが正常であるか否かを判断する際に次のような処理を行う。すなわち、制御部は、パケット格納用メモリにパケットが格納されると、パケットが格納されたアドレスのうち最後尾のアドレスを基準アドレスとした上で第1の確認処理を実行する。この第1の確認処理において、制御部は、上記基準アドレスから開始アドレスに向けてヘッダを探索する(ヘッダ探索処理)。そして、制御部は、ヘッダが発見されるとそのヘッダの直後に設けられたメッセージ長が示す全データ長を取得する(全データ長取得処理)。また、制御部は、発見したヘッダが格納されたヘッダアドレスおよび取得した全データ長を用いてフッタが格納されたフッタアドレスを検出する(フッタアドレス検出処理)。具体的には、ヘッダアドレスに全データ長を加算したものがフッタアドレスとなる。なお、ここで言うヘッダアドレスは、ヘッダが占有する最初のアドレス(開始アドレス)でもよいし、最後のアドレス(終了アドレス)でもよい。また、ヘッダが占有する開始から終了までの各アドレス(つまり、ヘッダ自身が占有するメモリ領域の各アドレス=アドレスの量)でもよい。また、フッタアドレスについては、ヘッダアドレスと同様のものを表すことになる。そして、制御部は、検出したフッタアドレスにフッタが存在するか否かを判断する(フッタ確認処理)。
フッタ確認処理においてフッタが存在しないと判断された場合には、そのフッタを含むパケットが異常であるということになる。この場合、制御部は、発見したヘッダのヘッダアドレスから開始アドレスに向けてヘッダ探索処理を再度実行する。すなわち、制御部は、次のパケットのヘッダを探索すべくヘッダ探索処理を再実行する。一方、フッタ確認処理においてフッタが存在すると判断された場合には、そのフッタを含むパケットが正常であるということになる。この場合、制御部は、第2の確認処理を実行する。
この第2の確認処理において、制御部は、基準アドレスからヘッダアドレスの先頭アドレスまでのデータ長と、取得した全データ長とが一致するか否かを確認する。このような第2の確認処理を行う理由は以下のとおりである。すなわち、正規のデータ構造を有するパケット(正常なパケット)が連続している場合であれば、上記各データ長は一致する。これに対し、異常なパケットに続いて正常なパケット(例えば、ヘッダが存在しない、フッタが存在しない、データ長が間違っているなど)を受信した場合には、上記各データ長が一致しない。
このため、制御部は、第2の確認処理において各データ長が一致すると判断した場合には、フッタ確認処理により確認されたフッタを含むパケットが正常であると判断し、そのシリアル番号を記憶する(正常データ記憶処理)。また、制御部は、第2の確認処理において各データが一致しないと判断された場合には、フッタ確認処理により確認されたフッタを含むパケットよりも1つ後に格納されたパケット(確認されたフッタを含むパケットの終了アドレス側の隣に格納されたパケット)が異常であると判断し、その旨を示す異常データを記憶する(異常データ記憶処理)。なお、この際、制御部は、確認されたフッタを含むパケットのシリアル番号を用いて、上記異常であると判断したパケットを特定する異常データを記憶する。例えば、この異常データは、「パケット(シリアル番号:XXXX)より1つ後に格納されたパケット(シリアル番号:不明)に異常がある」といった内容のものである。
正常データ記憶処理が実行されると、そのパケットは正規なデータ構造を有しているという判断がなされたことになる。この場合には、次のパケット(正常であると判断されたパケットの開始アドレス側の隣に格納されたパケット)が正常であるか否かの確認を行う。すなわち、制御部は、正常データ記憶処理が実行されると、記憶したシリアル番号を含むパケットのヘッダの先頭アドレスから開始アドレス側に向けて1アドレス(例えば1バイト)進んだアドレスを基準アドレスとした上で第1の確認処理を実行する。一方、異常データ記憶処理が実行されると、異常なパケットが存在していることが確認されたため、これ以降のパケットが正常であるか否かの確認を行うことができない。従って、制御部は、異常データ記憶処理が実行されると、その時点で記憶されているシリアル番号および異常データを外部に対して出力する(通知処理)。
また、上記各処理が繰り返された結果、全てのパケットに異常が見つからなかった場合には、第1の確認処理のヘッダ探索処理において開始アドレスを超えることになる。この場合、制御部は、記憶されているシリアル番号を外部に対して出力する通知処理を行う。なお、この場合、任意のシリアル番号(例えば最後に記憶されたシリアル番号)だけを出力してもよいし、全てのシリアル番号を出力してもよい。このように、ヘッダ探索処理は、開始アドレスを終点としてその処理が終了される。開始アドレス(例えば0000番地)を終点とすれば、開始アドレスよりも先の(若い番号の)アドレスが存在しないため、どのような状況であっても、ヘッダ探索処理が確実に終了されることになる。従って、無限ループに陥る可能性が極めて低くなる。
このように、制御部は、受信したパケットに対し、正常であるか否かについての確認を行い、その結果、正常であると判断したパケットのシリアル番号を外部に出力するとともに、異常であると判断したパケットを特定するための異常データを外部に出力する。このような構成によれば、制御命令(プログラム)を作成するユーザは、制御命令の受信エラーが発生した場合、コントローラ側から出力されたシリアル番号および異常データに基づいて、どのパケットに異常があったのかを容易に確認することができる。そして、ユーザは、この情報に基づいてプログラムのデバッグ作業を正確に且つ効率よく行うことが可能となり、以降において同様の受信エラーが発生してしまう事態が防止される。
上述したように、制御部は、パケット格納用メモリの最終アドレスに最も近いところに格納された最後尾のパケットから開始アドレスに最も近いところに格納された先頭のパケットに向けて順番に正常であるか否かの確認を行う。このような確認中、新たなパケットを受信した場合、新たに受信したパケットは、その時点で最後尾だったパケットの後ろに格納される。このため、パケットの確認は、その確認の開始時点で格納されていたパケットに対してのみ行われる。従って、パケットが正常であるか否かの確認は、その確認中に新たなパケットを受信したか否かにかかわらず、当初確認対象とされたパケットに対する確認が完了し次第終了となる。そして、その終了した時点で、確認が完了しているパケットのデータ部が示す制御内容に基づく制御を実行することが可能となる。このような構成によれば、パケットを受信してから、そのパケットに基づくロボットの動作制御が開始されるまでの遅延時間を極力短くすることができる。
請求項2記載の手段によれば、制御部は、第2の確認処理において、データ長と全データ長とが一致しないと判断された際、データ長が全データ長よりも大である場合には、請求項1記載の手段と同様に異常データ記憶処理を実行する。さて、パケットのフッタ、ヘッダ以外の部分に、偶然これらと同一のデータが存在した場合には、第2の確認処理におけるデータ長が全データ長よりも小さくなる。本手段では、このような稀なケースを想定し、第2の確認処理において、データ長が全データ長よりも小である場合には、発見したヘッダのヘッダアドレスから開始アドレスに向けてヘッダ探索処理を実行する。つまり、この時点で発見したヘッダは正しいものではないため、正しいヘッダを発見するまでヘッダ探索処理を継続させる。このような構成によれば、上記した稀なケースであっても、パケットが正常であるか否かを正確に判断することが可能となる。
本発明の一実施形態を示すロボットシステムの構成を概略的に示す図 パケットのデータ構造を示す図 受信処理の流れを説明するための図 パケット確認処理の流れを示すフローチャート ヘッダが存在しないパケットを受信した場合を示す図 フッタが存在しないパケットを受信した場合を示す図 メッセージ長が誤ったデータであるパケットを受信した場合を示す図 先頭のパケットから順番にパケット確認処理を行う場合を示す図 最後のパケットから順番にパケット確認処理を行う場合を示す図
以下、本発明の一実施形態について図面を参照しながら説明する。
図1は、一般的な産業用ロボットのシステム構成を示している。図1に示すロボットシステム1は、ロボット2およびロボット2を制御するコントローラ3を備えている。ロボット2は、例えば部品の組み立て用あるいは部品の検査用など、任意の構成のロボットである。コントローラ3は、周辺機器としてティーチングペンダント4およびパーソナルコンピュータ5(以下、パソコン5と称す)などが接続されている。なお、パソコン5は、必要に応じて接続されるものであり、常時接続されているとは限らない。
ロボット2は、例えば6軸の垂直多関節型ロボットとして構成されている。ロボット2は、ベース6と、このベース6に水平方向に回転可能に支持されたショルダ部7と、このショルダ部7に上下方向に回転可能に支持された下アーム8と、この下アーム8に上下方向に回転可能に支持された第1の上アーム9と、この第1の上アーム9に捻り回転可能に支持された第2の上アーム10と、この第2の上アーム10に上下方向に回転可能に支持された手首11と、この手首11に捻り回転可能に支持されたフランジ12とから構成されている。
ベース6、ショルダ部7、下アーム8、第1の上アーム9、第2の上アーム10、手首11およびフランジ12は、ロボット2のアームとして機能し、アーム先端であるフランジ12には、図示はしないが、エンドエフェクタ(手先)が取り付けられる。ロボット2に設けられる複数の軸はそれぞれに対応して設けられるサーボモータ(図示せず)により駆動される。ロボット2とコントローラ3との間は、接続ケーブル13によって接続されている。これにより、ロボット2の各軸を駆動するサーボモータの駆動がコントローラ3によって制御される。
ティーチングペンダント4は、例えば使用者が携帯あるいは手に所持して操作可能な程度の大きさで、例えば薄型の略矩形箱状に形成されている。ティーチングペンダント4には、各種のキースイッチ14が設けられており、使用者は、キースイッチ14により種々の入力操作を行う。ティーチングペンダント4は、ケーブル15を経由してコントローラ3に接続され、通信インターフェイスを介してコントローラ3との間で高速のデータ転送を実行する。キースイッチ14の操作により入力された操作信号等の情報は、ティーチングペンダント4からコントローラ3へ送信される。また、コントローラ3は、ティーチングペンダント4へ制御信号や表示用の信号などと共に駆動用の電力を供給する。
使用者は、上記のティーチングペンダント4を用いてロボット2の運転や設定などの各種の機能を実行可能であり、例えばキースイッチ14を操作することで、予め記憶されている制御プログラムを呼び出して、ロボット2の起動や各種のパラメータの設定などを実行できる。また、ロボット2をマニュアル操作で動作させて各種の教示作業も実行可能である。
パソコン5は、例えば汎用のノートパソコンなどである。使用者は、パソコン5を用いて、ロボット2の各軸の駆動制御やI/Oの切替制御などを行うための制御命令(コマンド)を記述したプログラムを作成できる。パソコン5は、ケーブル16を経由してコントローラ3に接続されている。これにより、パソコン5は、作成された上記プログラムに基づく各種のコマンドをコントローラ3に送信可能となっている。また、このコマンドは、予め定められたデータ構造を持つパケット単位で送信される。
コントローラ3(ロボットのコントローラに相当)は、パソコン5から送信されるパケットを受信すると、パケット確認処理および受信処理(詳細は後述する)を行う。コントローラ3は、これらの処理を行った後、受信したパケットのうち正規のデータ構造を持つパケットに含まれるデータの内容(コマンド)を解釈し、その内容に基づいてロボット2の動作を制御する。
図2は、本実施形態におけるパケットの正規のデータ構造を示している。図2に示すように、パケットPは、ヘッダH、メッセージ長M、シリアル番号S、データ部DおよびフッタFにより、この順番で構成されている。ヘッダHは、固定長(例えば1バイト)のデータであり、本実施形態のデータ構造特有の値となっている。メッセージ長Mは、固定長(例えば4バイト)のデータである。メッセージ長Mは、パケットP全体(ヘッダHの最初のビットからフッタFの最後のビットまで)の長さ(バイト数)を示すデータである。
シリアル番号Sは、固定長(例えば4バイト)のデータである。シリアル番号Sは、通し番号を示すデータであり、それぞれのパケットP毎に特有の値となっている。データ部Dは、可変長(例えば0〜12バイト)のデータである。データ部Dは、ロボット2の動作などを命令するためのコマンド(制御命令)を示すデータである。フッタFは、固定長(本実施形態では1バイト)のデータであり、本実施形態のデータ構造特有の値となっている。図2に示す構造のパケットPは、正規なデータ構造を持つものであり、これ以外のデータ構造のパケットは、非正規なデータ構造を持つパケットということになる。
図3は、パソコンから送信されるパケットを受信するための構成を示している。図3において、(a)はパケットを受信した直後の状態であり、(b)は1つのパケットの受信処理が終了した状態である。図3(a)に示すように、パソコン5から送信されたパケットP1〜P4は、コントローラ3のパケット格納用メモリ21に一時的に格納される。この際、パケットP1〜P4は、受信した順に、パケット格納用メモリ21に格納される。すなわち、受信したパケットP1〜P4は、その順にパケット格納用メモリ21の開始アドレス側から終了アドレス側に向けて順次格納される。
制御部22は、例えばマイクロコンピュータを主体として構成されたものであり、パソコン5から送信されるコマンドに基づいてロボット2の動作制御を行う。制御部22は、パケット格納用メモリ21にパケットが格納されると、格納された全てのパケットに対してパケット確認処理を実行する(詳細は後述する)。制御部22は、パケット確認処理において「異常無し」と判断した場合、最も開始アドレスに近いところに格納されたパケット、つまり先頭のパケットP1に対する受信処理を行う。一方、制御部22は、パケット確認処理において「異常有り」と判断した場合、詳細は後述するが、どのパケットに異常があったかなどを示すデータをパソコン5に対して送信する。
さて、制御部22は、受信処理において、パケットP1のデータ部D1の内容を解析し、その解析により得られた制御内容(コマンド)に応じた所定の動作を実行する。この受信処理が完了したパケットP1は、パケット格納用メモリ21内から消去され、次のパケットP2が開始アドレス側に移動される。すなわち、図3(b)に示すように、パケットP1の受信処理が終了した後は、次のパケットP2が最も開始アドレスに近いところに格納された状態となる。その後、パケットP2に対する受信処理が行われ、以降は、格納された全てのパケットに対する受信処理が完了するまで、同様の処理が繰り返し行われる。
次に、パケット確認処理の内容について図4〜図7も参照して説明する。
図4は、制御部22によるパケット確認処理の内容を示すフローチャートである。まず、受信したパケットが、図3(a)に示すように、正規のデータ構造を有している場合におけるパケット確認処理の流れについて説明する。パケット確認処理が開始されると、パケットP1〜P4が格納されているアドレスのうち、最後尾のアドレス、つまり最も終了アドレスに近いアドレスであるパケットP4のフッタF4の最後のビットが格納されたアドレスに移動する(ステップA1)。なお、ここで言う「移動」とは、制御部22がパケット格納用メモリ21からデータを読み出して確認するアドレスを変化させることを表している。続くステップA2では、この時点での移動先のアドレスが基準アドレスとして記憶される。この場合、フッタF4の最後のビットが格納されたアドレスが基準アドレスとして記憶される。
続くステップA3では、最後尾のアドレスからパケットの最小データサイズ分だけ遡る。つまり、最後尾のアドレスから本実施形態におけるパケットPの最小データサイズ分だけ開始アドレス側に移動する。なお、パケットPの最小データサイズとは、ヘッダHのデータ長(固定)、メッセージ長Mのデータ長(固定)、データ部Dのデータ長(可変)およびフッタFのデータ長(固定)を全て加算したものである。ただし、データ部Dのデータ長は、想定される最も小さい値(例えば0バイト)とする。続くステップA4では、移動した先のアドレス(遡ったアドレス)がパケット格納用メモリ21の開始アドレスを超えたか否かが判断される。
この場合、受信したパケットが全て正規のデータ構造を有しているため、開始アドレスを超えることはなく、ステップA4では「NO」となり、ステップA5に進む。ステップA5では、その移動先のアドレスから始まるデータがヘッダであるか否かが判断される。データ部Dが特にコマンドを表さないものであり、そのデータ長が0バイトであった場合には移動先のアドレスから始まるデータはヘッダであるため(YES)、ステップA7に進む。一方、データ部Dが何らかのコマンドを表すものであり、そのデータ長が0バイトを超える場合には移動先のアドレスから始まるデータはヘッダではないため(NO)、ステップA6に進む。ステップA6では、さらに1バイトだけ開始アドレス側に移動してステップA4に戻る。その後、移動先のアドレスから始まるデータがヘッダとなるまで(ステップA5で「YES」となるまで)、つまりヘッダが見つかるまでステップA4〜A6が繰り返し実行される。
ステップA4〜A6が繰り返し実行された結果、移動先のアドレスから始まるデータがヘッダであることが確認されると(ステップA5で「YES」になると)、ステップA7に進む。ステップA7では、ヘッダH4の後ろに位置するメッセージ長M4のデータを取得し、ステップA8に進む。ステップA8では、移動先のアドレス(ヘッダH4が格納されたアドレスであり、ヘッダアドレスに相当)と、メッセージ長M4が表すパケットP4のデータ長とからフッタF4のアドレス(フッタアドレスに相当)を求め、ステップA9に進む。ステップA9では、ステップA8で求めたアドレスに格納されたデータが実際にフッタであるか否かが判断される。この場合、全てのパケットが正規のデータ構造を有しているため、求めたアドレスと実際のフッタF4のアドレスとは一致している。従って、求めたアドレスに格納されたデータはフッタF4であるため(YES)、ステップA10に進む。
ステップA10では、ステップA2で求めた基準アドレスからステップA5で求めたヘッダH4の開始アドレスまでの移動量(データ長)と、メッセージ長M4が表すデータ長とが一致するか否かが判断される。この場合、全てのパケットが正規のデータ構造を有しているため、上記移動量とデータ長とが一致するので(YES)、ステップA11に進む。ステップA11では、パケットP4が正常である(正規のデータ構造を有している)と判断されてパケットP4のシリアル番号S4が記憶され、ステップA12に進む。
ステップA12では、さらに1バイトだけ開始アドレス側に移動してステップA2に戻る。この場合、パケットP4よりも1つ前のパケットであるパケットP3のフッタF3の最後のビットが格納されたアドレスに移動してステップA2に戻る。その後、パケットP3、P2、P1について、上記したパケットP1の場合と同様の手順で異常がないか否かが確認される(ステップA2〜A12)。そして、パケットP1が正常であることが確認された後、ステップA12でさらに1バイトだけ遡ると、移動先のアドレスはパケット格納用メモリ21の開始アドレスを超える。従って、ステップA4で「YES」となり、ステップA13に進む。ステップA13では通知処理が行われ、その後に処理終了となる。この通知処理では、正常であると判断されたパケットP4〜P1のシリアル番号S4〜S1が、正常に受信した旨を表すデータとともにパソコン5に送信される。なお、この通知処理では、上記シリアル番号S4〜S1のうち任意のシリアル番号のみを送信してもよい。すなわち、例えば先頭のパケットP1のシリアル番号S1や、最後尾のパケットP4のシリアル番号S4のみを送信してもよい。
続いて、受信したパケットが正規のデータ構造を有していなかった場合におけるパケット確認処理の流れについて説明する。ここでは、下記の3通りのパターンについて説明する。
(1)ヘッダが存在しない場合
図5は、2番目に受信したパケットP2にヘッダ(H2)が存在しなかったパターンを示している。図5に示すようなヘッダ(H2)が存在しないパケットP2を含む3つのパケットP1〜P3を受信した場合のパケット確認処理の流れは以下のとおりとなる。すなわち、図4のパケット確認処理が開始され、最初にステップA1〜A10が実行された結果、パケット格納用メモリ21の最終アドレスに最も近いところに格納されたパケットP3が正常であることが確認される(ステップA9、A10でいずれも「YES」)。
続くステップA11では、パケットP3のシリアル番号S3が記憶され、ステップA12に進む。ステップA12では、パケットP3よりも1つ前のパケットであるパケットP2のフッタF2の最後のビットが格納されたアドレスに移動し、ステップA2に戻る。ステップA2では、この時点での移動先のアドレスが基準アドレスとして記憶される。この場合、フッタF2の最後のビットが格納されたアドレスが基準アドレスとして記憶され、ステップA3に進む。
ステップA3では、パケットの最小データサイズ分だけ遡り、ステップA4に進む。その後、移動先のアドレスから始まるデータがヘッダであることが確認されるまで、ステップA4〜A6が繰り返される。しかし、この場合、パケットP2にはヘッダが存在しない。このため、移動先のアドレスから始まるデータがヘッダであることが確認されるのは、パケットP1のヘッダH1の最初のビットが格納されたアドレス(=開始アドレス)まで移動したときである。つまり、パケットP2のヘッダを探していたはずが、パケットP1のヘッダを発見してしまったことになる。
このように、移動先のアドレスから開始されるデータがヘッダH1であることが確認されると(ステップA5で「YES」)、ステップA7に進む。ステップA7では、ヘッダH1の後ろに位置するメッセージ長M1のデータを取得し、ステップA8に進む。ステップA8では、移動先のアドレス(ヘッダH1が格納されたアドレス)と、メッセージ長M1が表すパケットP1のデータ長とからフッタF1のアドレスを求め、ステップA9に進む。
ステップA9では、ステップA8で求めたアドレスに格納されたデータが、実際にフッタであるか否かを判断する。この場合、ステップA8で求めたアドレスにはパケットP1のフッタF1が格納されている。従って、ステップA8で求めたアドレスにフッタが格納されていると判断され(YES)、ステップA10に進む。
ステップA10では、ステップA2で記憶した基準アドレスから、ステップA5で求めたヘッダH1の開始アドレスまでの移動量(データ長)と、メッセージ長M1が表すデータ長とが一致するか否かが判断される。この場合、上記移動量は、フッタF2の最後のビットが格納されたアドレスからヘッダH1の最初のビットが格納されたアドレスまでのデータ長となる。つまり、上記移動量は、パケットP2全体のデータ長とパケットP1全体のデータ長とを加算した長さとなる。一方、メッセージ長M1が表すデータ長は、パケットP1全体のデータ長である。このため、上記移動量とデータ長とが一致しないと判断し(ステップA10で「NO」)、ステップA14に進む。
ステップA14では、上記移動量が、メッセージ長M1の表すデータ長よりも長いか否かが判断される。この場合、上記移動量は、メッセージ長M1が表すデータ長よりも長いと判断され(YES)、ステップA15に進む。ステップA15では、メッセージ長M1を含むパケットP1が正常であるとともに、パケットP1より1つ前のパケット(P2)が異常であると判断される。また、この際、パケットP1のシリアル番号S1を記憶する。そして、ステップA13の通知処理が行われた後、処理終了となる。この通知処理では、パケットP3、P1のシリアル番号S3、S1が正常に受信した旨を表すデータとともにパソコン5に送信される。また、この際、パケットP1の1つ後に受信したパケット(P2)が異常であるという内容を表す異常データもパソコン5に送信される。
(2)フッタが存在しない場合
図6は、2番目に受信したパケットP2にフッタF2が存在しなかったパターンを示している。図6に示すようなフッタF2が存在しないパケットP2を含む3つのパケットP1〜P3を受信した場合のパケット確認処理の流れは以下のとおりとなる。すなわち、図4のパケット確認処理が開始され、最初にステップA1〜A10が実行された結果、パケット格納用メモリ21の最終アドレスに最も近いところに格納されたパケットP3が正常であることが確認される(ステップA9、A10でいずれも「YES」)。
続くステップA11では、パケットP3のシリアル番号S3が記憶され、ステップA12に進む。ステップA12では、パケットP3よりも1つ前のパケットであるパケットP2のデータ部D2の最後のビットが格納されたアドレスに移動し、ステップA2に戻る。ステップA2では、データ部D2の最後のビットが格納されたアドレスが基準アドレスとして記憶され、ステップA3に進む。
ステップA3では、パケットの最小データサイズ分だけ遡り、ステップA4に進む。その後、移動先のアドレスから始まるデータがヘッダであることが確認されるまで、ステップA4〜A6が繰り返される。その結果、移動先のアドレスから開始されるデータがヘッダH2であることが確認されると(ステップA5で「YES」)、ステップA7に進む。ステップA7では、ヘッダH2の後ろに位置するメッセージ長M2のデータを取得し、ステップA8に進む。ステップA8では、ヘッダH2が格納されたアドレスと、メッセージ長M2が表すパケットP2のデータ長とからフッタF2のアドレスを求め、ステップA9に進む。
ステップA9では、ステップA8で求めたアドレスに格納されたデータが、実際にフッタであるか否かが判断される。この場合、パケットP2にはフッタが存在せず、ステップA8で求めたアドレスにはデータ部D2の一部が格納されている。従って、ステップA8で求めたアドレスにフッタが格納されていないと判断され(NO)、ステップA6に進む。ステップA6では、パケットP2よりも1つ前のパケットであるパケットP1のフッタF1の最後のビットが格納されたアドレスに移動し、ステップA4に戻る。その後、移動先のアドレスから始まるデータがヘッダであることが確認されるまで、つまり次のヘッダが見つかるまでステップA4〜A6が繰り返し実行される。
ステップA4〜A6が繰り返し実行された結果、移動先のアドレスから開始されるデータがヘッダH1であることが確認されると(ステップA5で「YES」)、ステップA7に進む。ステップA7では、ヘッダH1の後ろに位置するメッセージ長M1のデータを取得し、ステップA8に進む。ステップA8では、ヘッダH1が格納されたアドレスと、メッセージ長M1が表すパケットP1のデータ長とからフッタF1のアドレスを求め、ステップA9に進む。この場合、ステップA8で求めたアドレスにはパケットP1のフッタF1が格納されている。従って、ステップA9では、ステップA8で求めたアドレスにフッタが格納されていると判断され(YES)、ステップA10に進む。
ステップA10では、ステップA2で記憶した基準アドレスから、ステップA5で求めたヘッダH1の開始アドレスまでの移動量(データ長)と、メッセージ長M1が表すデータ長とが一致するか否かを判断する。この場合、上記移動量は、データ部D2の最後のビットが格納されたアドレスからヘッダH1の最初のビットが格納されたアドレスまでのデータ長となる。つまり、上記移動量は、パケットP2全体のデータ長とパケットP1全体のデータ長とを加算した長さとなる。一方、メッセージ長M1が表すデータ長は、パケットP1全体のデータ長である。このため、上記移動量とデータ長とが一致しないと判断され(ステップA10で「NO」)、ステップA14に進む。
ステップA14では、上記移動量が、メッセージ長M1が表すデータ長よりも長いと判断され(YES)、ステップA15に進む。ステップA15では、メッセージ長M1を含むパケットP1が正常であるとともに、パケットP1より1つ前のパケット(P2)が異常であると判断される。また、この際、パケットP1のシリアル番号S1が記憶される。そして、ステップA13の通知処理を行われた後、処理終了となる。この通知処理では、パケットP3、P1のシリアル番号S3、S1が正常に受信した旨を表すデータとともにパソコン5に送信される。また、この際、パケットP1の1つ後に受信したパケット(P2)が異常であるという内容を表す異常データもパソコン5に送信される。
(3)メッセージ長が一致しない場合
図7は、2番目に受信したパケットP2のメッセージ長M2が誤ったデータ(パケットP2全体のデータ長を正しく表していないデータ)であるパターンを示している。図7に示すようなメッセージ長M2が誤ったデータであるパケットP2を含む3つのパケットP1〜P3を受信した場合のパケット確認処理の流れは以下のとおりとなる。すなわち、図4のパケット確認処理が開始され、最初にステップA1〜A10が実行された結果、パケット格納用メモリ21の最終アドレスに最も近いところに格納されたパケットP3が正常であることが確認される(ステップA9、A10でいずれも「YES」)。
続くステップA11では、パケットP3のシリアル番号S3が記憶され、ステップA12に進む。ステップA12では、パケットP3よりも1つ前のパケットであるパケットP2のフッタF2の最後のビットが格納されたアドレスに移動し、ステップA2に戻る。ステップA2では、フッタF2の最後のビットが格納されたアドレスが基準アドレスとして記憶され、ステップA3に進む。
ステップA3では、パケットの最小データサイズ分だけ遡り、ステップA4に進む。その後、移動先のアドレスから始まるデータがヘッダであることが確認されるまで、ステップA4〜A6が繰り返される。その結果、移動先のアドレスから開始されるデータがヘッダH2であることが確認されると(ステップA5で「YES」)、ステップA7に進む。ステップA7では、ヘッダH2の後ろに位置するメッセージ長M2のデータを取得し、ステップA8に進む。ステップA8では、ヘッダH2が格納されたアドレスと、メッセージ長M2が表すパケットP2のデータ長とからフッタF2のアドレスを求め、ステップA9に進む。
ステップA9では、ステップA8で求めたアドレスに格納されたデータが、実際にフッタであるか否かが判断される。この場合、メッセージ長M2が誤ったデータであるため、ステップA8で求めたアドレスにはフッタF2は格納されていない。従って、ステップA8で求めたアドレスにフッタが格納されていないと判断され(NO)、ステップA6に進む。ステップA6では、パケットP2よりも1つ前のパケットであるパケットP1のフッタF1の最後のビットが格納されたアドレスに移動し、ステップA4に戻る。その後、移動先のアドレスから始まるデータがヘッダであることが確認されるまで、つまり次のヘッダが見つかるまでステップA4〜A6が繰り返し実行される。
ステップA4〜A6が繰り返し実行された結果、移動先のアドレスから開始されるデータがヘッダH1であることが確認されると(ステップA5で「YES」)、ステップA7に進む。ステップA7では、ヘッダH1の後ろに位置するメッセージ長M1のデータを取得し、ステップA8に進む。ステップA8では、ヘッダH1が格納されたアドレスと、メッセージ長M1が表すパケットP1のデータ長とからフッタF1のアドレスを求め、ステップA9に進む。この場合、ステップA8で求めたアドレスにはパケットP1のフッタF1が格納されている。従って、ステップA9では、ステップA8で求めたアドレスにフッタが格納されていると判断され(YES)、ステップA10に進む。
ステップA10では、ステップA2で記憶した基準アドレスから、ステップA5で求めたヘッダH1の開始アドレスまでの移動量(データ長)と、メッセージ長M1が表すデータ長とが一致するか否かが判断される。この場合、上記移動量は、データ部D2の最後のビットが格納されたアドレスからヘッダH1の最初のビットが格納されたアドレスまでのデータ長となる。つまり、上記移動量は、パケットP2全体のデータ長とパケットP1全体のデータ長とを加算した長さとなる。一方、メッセージ長M1が表すデータ長は、パケットP1全体のデータ長である。このため、上記移動量とデータ長とが一致しないと判断され(ステップA10で「NO」)、ステップA14に進む。
ステップA14では、上記移動量が、メッセージ長M1が表すデータ長よりも長いと判断され(YES)、ステップA15に進む。ステップA15では、メッセージ長M1を含むパケットP1が正常であるとともに、パケットP1より1つ前のパケット(P2)が異常であると判断される。また、この際、パケットP1のシリアル番号S1が記憶される。そして、ステップA13の通知処理を行われた後、処理終了となる。この通知処理では、パケットP3、P1のシリアル番号S3、S1が正常に受信した旨を表すデータとともにパソコン5に送信される。また、この際、パケットP1の1つ後に受信したパケット(P2)が異常であるという内容を表す異常データもパソコン5に送信される。
なお、上記(1)〜(3)のケースおよび全パケットが正規のデータ構造を有しているケースのいずれにおいても、ヘッダと同じデータが例えばデータ部などに存在した場合には、ステップA5の判断においてヘッダではないデータをヘッダであると誤判定する可能性がある。しかし、このような場合、通常は、その誤判定したヘッダの後ろにはメッセージ長が存在しないため、ステップA9の判断において「NO」になる。これにより、正規のヘッダを見つけるまでステップA4〜A6が繰り返し実行される。
ただし、上記誤判定したヘッダの後ろのデータが偶然にもデータ長と同形式のデータであり、ステップA8においてこれらから求められるアドレスに偶然にもフッタが存在した場合には、誤って判断したヘッダに基づいてパケットのデータ構造が正しいか否かの判断が行われてしまう可能性がある。しかし、このような場合、基準アドレスから誤判定したヘッダの開始アドレスまでの移動量と、メッセージ長が表すデータ長とが一致しないため、ステップA10の判断で必ず「NO」となる。また、上記移動量は、メッセージ長が表すデータ長よりも短いため、続くステップA11の判断で「NO」となる。これにより、正規のヘッダを見つけるまでステップA4〜A6が繰り返し実行される。
なお、本実施形態では、ステップA2〜A6がヘッダ探索処理に相当し、ステップA7が全データ長取得処理に相当し、ステップA8がフッタアドレス検出処理に相当し、ステップA9がフッタ確認処理に相当する。また、ステップA2〜A9が第1の確認処理に相当し、ステップA10、A14が第2の確認処理に相当し、ステップA11が正常データ記憶処理に相当し、ステップA15が異常データ記憶処理に相当し、ステップA13が通知処理に相当する。
以上説明したように、本実施形態によれば次のような効果が得られる。
パソコン5から送信されるパケットは、コントローラ3のパケット格納用メモリ21に一時的に格納される。コントローラ3の制御部22は、パケット格納用メモリ21に格納された全てのパケットに対してパケット確認処理を実行する。このパケット確認処理では、各パケットのそれぞれについて、個別に正常または異常という判断がなされる。そして、制御部22は、正常であると判断したパケットのシリアル番号を、正常に受信した旨を表すデータとともにパソコン5に送信する。正常でないと判断したパケットについては、そのシリアル番号を取得することができないし、また取得できたとしてもそれが正しいか否かは不明である。このため、制御部22は、正常でないと判断したパケットを、例えば正常であると判断したパケットの1つ後に受信したパケットという形で特定し、その旨を表す異常データをパソコン5に送信する。
このように、本実施形態では、パソコン5から送信されたコマンドを適切に受信できなかった場合には、そのコマンドを構成するパケットのどこに問題があったか(どのパケットが異常であったか)を表すデータがパソコン5に送信されることになる。これにより、パソコン5を操作するユーザは、送信したコマンドに受信エラーが生じた場合、その送信したコマンドのうち、どの部分に問題があったのかを容易に把握することができ、以ってプログラムのデバッグ作業を容易に行い得るようになる。
制御部22は、パケット確認処理を行う際、パケット格納用メモリ21の最終アドレスに最も近いところに格納された最後のパケットから順番に正常であるか否かの確認を行うようにしている。この理由について、先頭のパケット(開始アドレスに最も近いところに格納されたパケット)から順番にパケット確認処理を行う場合(以下、比較例と称す)と比較しながら説明する。図8は、比較例のパケット確認処理が行われる際におけるパケット格納用メモリ21の状態を示す図である。図9は、本実施形態のパケット確認処理が行われる際におけるパケット格納用メモリ21の状態を示す図である。
比較例では、図8(a)に示すように、パケットP1、P2をこの順に受信した場合、パケットP1からチェックが行われる。このチェック中に、図8(b)に示すように、新たにパケットP3を受信すると、パケットP2の後にパケットP3が格納される。このため、このパケット確認処理は、パケットP3のチェックが終了するまで継続されることになる。さらに、このチェック中に、図8(c)に示すように、新たにパケットP4を受信すると、パケットP3の後ろにパケットP4が格納され、そのパケットP4のチェックが終了するまでパケット確認処理が継続することになる。従って、比較例の場合、所定のパケットに対するパケット確認処理が実行されている途中で新たにパケットを受信すると、その度にパケット確認処理の終了が先に延びることになる。このような場合、パケットを受信してから、そのパケットに対する受信処理が実行されるまでに長い時間を要してしまう可能性がある。つまり、パケットの受信から、そのパケットのデータ部が表す制御内容に基づくロボット2の動作制御が開始されるまでの遅延時間が長くなる可能性がある。
一方、本実施形態では、図9(a)に示すように、パケットP1、P2をこの順に受信した場合、パケットP2から先に正常であるか否かの確認(以下、チェックと称す)が行われる。このチェック中に、図9(b)に示すように、新たにパケットP3、P4をこの順に受信すると、パケットP2の後にパケットP3、P4の順に格納される。この場合、本実施形態のパケット確認処理では、新たに格納されたパケットP3、P4の影響を受けることなく、パケットP2のチェックが引き続き実行され、その後、パケットP1のチェックが行われる。
このように、パケットP1、P2のチェックが完了した後、その時点において、パケット格納用メモリ21に格納されているパケットのうち、未だチェックが行われていないパケットP3、P4に対するチェックが実行されることになる。従って、本実施形態のパケット確認処理は、所定のパケットに対するパケット確認処理が実行されると、当該パケットに対するチェックが完了し次第、パケット確認処理は一旦終了される。従って、この時点でパケット確認処理が完了しているパケットに対する受信処理を実行することが可能となる。このような構成によれば、パケットを受信してから、そのパケットに対する受信処理が実行されるまでに長い時間を要することなく、パケットの受信から、そのパケットのデータ部が表す制御内容に基づくロボット2の動作制御が開始されるまでの遅延時間を極力短くすることができる。
また、ヘッダ探索処理を実行する際、基準アドレスを記憶した後、基準アドレスから想定されるパケットの最小データサイズ分だけ開始アドレス側に一括して移動するように構成した。基準アドレス(パケットの最後尾のアドレス)からパケットの最小データサイズ分だけ開始アドレス側に移動した場合、そのパケットのデータサイズが最小のデータサイズであれば、移動先のアドレスにヘッダが存在する。また、そのパケットのデータサイズが最小のデータサイズよりも大であれば、移動先のアドレスは、ヘッダよりも後のデータ(メッセージ長、シリアル番号、データ部)が存在することになる。つまり、いずれにしても、そのパケットのヘッダを発見し損ねてしまうことはない。さらに、このように構成することで、基準アドレスから開始アドレス側に1バイトずつ移動してヘッダを探すだけの構成と比較して、ヘッダを発見するために要する制御部22の負荷を軽くできるとともに処理時間を短縮することができる。
さて、いずれも正規のデータ構造を有していない2つのパケットを連続して受信した場合であって、これら2つが組み合わさると正規のデータ構造を有する1つのパケットとみなされる場合を考えてみる。例えば、ヘッダ、メッセージ長、シリアル番号のみを有するパケットPaの後にデータ部、フッタのみを有するパケットPbを受信した場合であって、パケットPaのメッセージ長が示すデータ長がパケットPa全体のデータ長とパケットPb全体のデータ長とを加算したものと同一であった場合には、結果的に1つの正規なデータ構造を有したパケットを受信したことと同じ状態になる。この場合には、本実施形態の構成では、各パケットPa、Pbに異常があることを検出できない。しかしながら、上記ケースは非常に稀な場合であって、通常はほとんど起こりえないため、問題とはならない。このため、本実施形態では、このような極めて稀なケースを対象とはしていない。
なお、本発明は上記し且つ図面に記載した実施形態に限定されるものではなく、次のような変形または拡張が可能である。
パケットPのデータ構造としては、シリアル番号Sとデータ部Dとが入れ替わったものであってもよい。
図4におけるステップA14の判断ステップは、パケット内のヘッダ、フッタ以外の部分にヘッダ、フッタと同一のデータが偶然存在するといった稀なケースを想定する必要がない場合には省略可能である。この場合、ステップA10で「NO」の場合にステップA15に進むように構成すればよい。
図4におけるステップA3に代えて、基準アドレスから開始アドレス側に1バイト移動するステップを設けてもよい。
上記実施形態では、本発明を6軸の垂直多関節型のロボットの制御を行うコントローラ3に適用した例を説明したが、本発明は、外部から与えられる制御命令に従ってロボットの動作制御を行うロボットのコントローラ全般に適用可能である。
図面中、2はロボット、3はコントローラ(ロボットのコントローラ)、21はパケット格納用メモリ、22は制御部を示す。

Claims (2)

  1. 外部から与えられる制御命令に従ってロボットの動作制御を行うロボットのコントローラであって、
    前記制御命令は、所定のデータ構造を有するパケット単位で与えられるものであり、
    前記パケットは、当該パケットの先頭に設けられた固定値のヘッダと、このヘッダの直後に設けられ当該パケットの全データ長を示すメッセージ長と、当該パケット毎に特有の値となるシリアル番号と、前記制御内容を示すデータ部と、当該パケットの最後尾に設けられた固定値のフッタとから構成され、
    前記ヘッダ、前記メッセージ長、前記シリアル番号および前記フッタは固定長であり、
    前記データ部は可変長であり、
    前記パケットを一時的に格納するためのパケット格納用メモリと、
    受信した前記パケットを受信した順に前記パケット格納用メモリの開始アドレスから終了アドレスに向けて順次格納させ、前記パケット格納用メモリに格納されたパケットが正常であるか否かを判断し、正常であると判断したパケットのデータ部が示す制御内容に基づいて前記ロボットの動作制御を行う制御部とを備え、
    前記制御部は、
    所定の基準アドレスから前記開始アドレスに向けて前記ヘッダを探索するヘッダ探索処理と、前記ヘッダ探索処理により前記ヘッダが発見されると当該ヘッダの直後に設けられた前記メッセージ長が示す前記全データ長を取得する全データ長取得処理と、前記ヘッダ探索処理により発見された前記ヘッダが格納されたヘッダアドレスおよび前記全データ長取得処理により取得された全データ長を用いて前記フッタが格納されたフッタアドレスを検出するフッタアドレス検出処理と、前記フッタアドレス検出処理により検出された前記フッタアドレスに前記フッタが存在するか否かを判断するフッタ確認処理とからなる第1の確認処理と、
    前記基準アドレスから前記ヘッダアドレスの先頭アドレスまでのデータ長と前記全データ長取得処理により取得された前記全データ長とが一致するか否かを確認する第2の確認処理と、
    前記フッタ確認処理により確認された前記フッタを含む前記パケットの前記シリアル番号を記憶する正常データ記憶処理と、
    前記フッタ確認処理により確認された前記フッタを含む前記パケットの前記シリアル番号に基づいて当該シリアル番号を含む前記パケットの前記終了アドレス側の隣に格納された前記パケットが異常である旨を示す異常データを記憶する異常データ記憶処理と、
    記憶された前記シリアル番号および前記異常データを外部に対して出力する通知処理とを実行可能に構成され、
    前記制御部は、
    前記パケット格納用メモリにパケットが格納されると、当該パケットの最後尾のアドレスを前記基準アドレスとした上で前記第1の確認処理を実行し、
    前記第1の確認処理において、前記ヘッダ探索処理により前記開始アドレスを超えた場合には前記通知処理を実行し、前記フッタ確認処理により前記フッタが存在しないと判断された場合には前記発見したヘッダの前記ヘッダアドレスから前記開始アドレスに向けて前記ヘッダ探索処理を実行し、前記フッタ確認処理により前記フッタが存在すると判断された場合には前記第2の確認処理を実行し、
    前記第2の確認処理において、前記データ長と前記全データ長とが一致すると判断された場合には前記正常データ記憶処理を実行し、前記データ長と前記全データ長とが一致しないと判断された場合には前記異常データ記憶処理を実行し、
    前記正常データ記憶処理が実行されると、記憶した前記シリアル番号を含む前記パケットの前記ヘッダの先頭アドレスから前記開始アドレス側に向けて1アドレス進んだアドレスを前記基準アドレスとした上で前記第1の確認処理を実行し、
    前記異常データ記憶処理が実行されると、前記通知処理を実行することを特徴とするロボットのコントローラ。
  2. 前記制御部は、前記第2の確認処理において、前記データ長と前記全データ長とが一致しないと判断されると、前記データ長が前記全データ長よりも大である場合には前記異常データ記憶処理を実行し、前記データ長が前記全データ長よりも小である場合には前記発見したヘッダの前記ヘッダアドレスから前記開始アドレスに向けて前記ヘッダ探索処理を実行することを特徴とする請求項1記載のロボットのコントローラ。
JP2010050446A 2010-03-08 2010-03-08 ロボットのコントローラ Active JP5445233B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010050446A JP5445233B2 (ja) 2010-03-08 2010-03-08 ロボットのコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010050446A JP5445233B2 (ja) 2010-03-08 2010-03-08 ロボットのコントローラ

Publications (2)

Publication Number Publication Date
JP2011183498A true JP2011183498A (ja) 2011-09-22
JP5445233B2 JP5445233B2 (ja) 2014-03-19

Family

ID=44790389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010050446A Active JP5445233B2 (ja) 2010-03-08 2010-03-08 ロボットのコントローラ

Country Status (1)

Country Link
JP (1) JP5445233B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018144199A (ja) * 2017-03-08 2018-09-20 ファナック株式会社 機械システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6244808A (ja) * 1985-08-23 1987-02-26 Amada Co Ltd Nc加工機械群の制御方法
JPH0483439A (ja) * 1990-07-25 1992-03-17 Fujitsu Ltd データ転送量異常検出方式
JPH04160409A (ja) * 1990-10-23 1992-06-03 Sony Corp ロボットの数値制御装置
JPH05134736A (ja) * 1991-11-13 1993-06-01 Hitachi Seiko Ltd データ転送方法
JPH06262558A (ja) * 1993-03-11 1994-09-20 Natl Aerospace Lab ロボットの速度制御方式
JP2002049363A (ja) * 2000-05-24 2002-02-15 Sharp Corp 画像表示システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6244808A (ja) * 1985-08-23 1987-02-26 Amada Co Ltd Nc加工機械群の制御方法
JPH0483439A (ja) * 1990-07-25 1992-03-17 Fujitsu Ltd データ転送量異常検出方式
JPH04160409A (ja) * 1990-10-23 1992-06-03 Sony Corp ロボットの数値制御装置
JPH05134736A (ja) * 1991-11-13 1993-06-01 Hitachi Seiko Ltd データ転送方法
JPH06262558A (ja) * 1993-03-11 1994-09-20 Natl Aerospace Lab ロボットの速度制御方式
JP2002049363A (ja) * 2000-05-24 2002-02-15 Sharp Corp 画像表示システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018144199A (ja) * 2017-03-08 2018-09-20 ファナック株式会社 機械システム
US10589429B2 (en) 2017-03-08 2020-03-17 Fanuc Corporation Machine system

Also Published As

Publication number Publication date
JP5445233B2 (ja) 2014-03-19

Similar Documents

Publication Publication Date Title
US7774099B2 (en) Programming device for returning robot to waiting position
US20180178380A1 (en) Method for extending end user programming of an industrial robot with third party contributions
US10850394B2 (en) Driving device
JP6456051B2 (ja) ロボットシステムの制御方法、ロボットシステム、ロボットシステムの制御プログラム、及び記録媒体
WO2014056533A1 (en) A method and an apparatus for automatically generating a collision free return program for returning a robot from a stop position to a predefined restart position
JP2012232363A (ja) ロボット制御システム、ロボットシステム及びプログラム
CN108349082B (zh) 用于产生操纵器程序的图形用户界面的方法和计算机程序
JP7020812B2 (ja) ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の組立方法、制御プログラムおよび記録媒体
US20180099410A1 (en) Robot control device having function for limiting speed and/or acceleration of robot
JP7108103B2 (ja) 機械の教示に用いる機械教示端末、教示システム、プログラム及び安全確認方法
JP2015186834A (ja) ロボット制御装置、把持部制御装置、ロボット、把持部、ロボット制御方法、及びプログラム
CN108290288B (zh) 用于简化地修改控制工业设备的应用程序的方法
JP6658985B1 (ja) ロボットシステム、復帰プログラム生成装置、制御支援装置、制御装置、プログラム、復帰プログラムの生成方法及び復帰プログラムの出力方法
JP5445233B2 (ja) ロボットのコントローラ
EP3690642A1 (en) Method for coding robot control device, program, and robot control device
JP7173079B2 (ja) 作業再開システム、製造方法、及びプログラム
CN112714683B (zh) 机器人控制装置、方法以及程序
JP2009045678A (ja) ロボットの作業成否判定方法およびロボットシステム
JP5365875B2 (ja) 産業用コントローラ
JP4289219B2 (ja) 人間介入型ロボットの制御装置
US20210197374A1 (en) Composability framework for robotic control system
CN112987658A (zh) 生产系统、修复系统、生产方法以及信息存储介质
KR20200144038A (ko) 산업용 적재로봇 제어 시스템
KR20190029284A (ko) 로봇의 제어 장치, 방법 및 시스템
CN116056841A (zh) 机器人控制系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Ref document number: 5445233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250