(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023167806
(43)【公開日】2023-11-24
(54)【発明の名称】ロボット制御システム、下位制御装置、ロボット制御システムの制御方法、及び、下位制御装置の制御方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20231116BHJP
H04Q 9/00 20060101ALI20231116BHJP
【FI】
B25J13/00 Z
H04Q9/00 301B
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022079278
(22)【出願日】2022-05-13
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【弁理士】
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【弁理士】
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【弁理士】
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】狩戸 信宏
【テーマコード(参考)】
3C707
5K048
【Fターム(参考)】
3C707AS06
3C707BS15
3C707BT14
3C707CV07
3C707CW07
3C707CX01
3C707CY01
3C707DS01
3C707HS27
3C707JS03
3C707JS07
3C707KS20
3C707KV01
3C707KW03
3C707KX10
3C707LU06
3C707LV23
3C707MS15
3C707MT02
3C707MT06
5K048BA21
5K048EB12
(57)【要約】
【課題】応答性が要求されるロボット動作を問題なく実行できる技術を提供する。
【解決手段】ロボット制御システムは、サーボ制御部を有するロボットと、予め設定された制御周期毎に、サーボ制御部に制御指令を送信するとともに、サーボ制御部からロボットの状態を表すロボット状態情報を受信する下位制御装置と、下位制御装置に、制御指令を作成するための指令情報を送信する上位制御装置と、を備える。下位制御装置は、(i)過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)次回の制御指令をタイムアウト時刻までに上位制御装置から指令情報を受信できた場合には、指令情報から次回の制御指令を作成してサーボ制御部に送信する処理と、(iii)タイムアウト時刻までに上位制御装置から指令情報を受信できなかった場合には、外挿制御指令をサーボ制御部に送信する処理と、を実行する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ロボット制御システムであって、
サーボ制御部を有するロボットと、
予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する下位制御装置と、
前記下位制御装置に、前記制御指令を作成するための指令情報を送信する上位制御装置と、
を備え、
前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信し、
前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信し、
前記下位制御装置は、
(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、
(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、
(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、
を実行する、ロボット制御システム。
【請求項2】
請求項1に記載のロボット制御システムであって、
前記下位制御装置は、前記外挿制御指令を作成する処理を、前記タイムアウト時刻よりも前に完了する、ロボット制御システム。
【請求項3】
請求項2に記載のロボット制御システムであって、
前記下位制御装置は、
前記上位制御装置から前記指令情報を受信する前に前記外挿制御指令を作成して、前記外挿制御指令を指令メモリーに保存し、
前記タイムアウト時刻よりも前に前記指令情報を受信した場合には、前記指令情報から前記次回の制御指令を作成して、前記次回の制御指令を前記指令メモリー内の前記外挿制御指令に上書きする、ロボット制御システム。
【請求項4】
ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置であって、前記下位制御装置は、
(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、
(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、
を実行するように構成されており、
前記処理(a)は、
(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、
(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、
(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、
を含む、下位制御装置。
【請求項5】
サーボ制御部を有するロボットと、下位制御装置と、上位制御装置と、を備えるロボット制御システムにおける前記ロボットの制御方法であって、
(a)前記下位制御装置が、予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する工程と、
(b)前記上位制御装置が、前記下位制御装置に、前記制御指令を作成するための指令情報を送信する工程と、
を備え、
前記工程(a)において、前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信し、
前記工程(b)において、前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信し、
前記工程(a)は、
(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する工程と、
(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する工程と、
(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する工程と、
を含む、制御方法。
【請求項6】
ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置の制御方法であって、
(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、
(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、
を含み、
前記処理(a)は、
(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、
(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、
(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、
を含む、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御システム、下位制御装置、ロボット制御システムの制御方法、及び、下位制御装置の制御方法に関する。
【背景技術】
【0002】
特許文献1には、サービスサーバーとロボット端末機とを備えたロボット制御システムが記載されている。このロボット制御システムでは、サービスサーバーが、互いに同期する動作制御データと音声データ等をまとめて1つのパケットとして作成し、ロボット端末機に送信する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記従来技術では、サービスサーバーが任意のタイミングでロボット端末機にパケットを送信する構成であり、パケットの送受信にロボットの制御周期との同期を考慮していないため、パケットを送信してから実際の動作に反映されるまでの時間が不定となり、応答性が要求される用途には適用できないという問題があった。
【課題を解決するための手段】
【0005】
本開示の第1の形態によれば、ロボット制御システムが提供される。このロボット制御システムは、サーボ制御部を有するロボットと、予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する下位制御装置と、前記下位制御装置に、前記制御指令を作成するための指令情報を送信する上位制御装置と、を備える。前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する。前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信する。前記下位制御装置は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を実行する。
【0006】
本開示の第2の形態によれば、ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置が提供される。前記下位制御装置は、(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、を実行するように構成されている。前記処理(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を含む。
【0007】
本開示の第3の形態によれば、サーボ制御部を有するロボットと、下位制御装置と、上位制御装置と、を備えるロボット制御システムの制御方法が提供される。この制御方法は、(a)前記下位制御装置が、予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する工程と、(b)前記上位制御装置が、前記下位制御装置に、前記制御指令を作成するための指令情報を送信する工程と、備える。前記工程(a)において、前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する。前記工程(b)において、前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信する。前記工程(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する工程と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する工程と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する工程と、を含む。
【0008】
本開示の第4の形態によれば、ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置の制御方法が提供される。この制御方法は、(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、を含む。前記処理(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を含む。
【図面の簡単な説明】
【0009】
【
図1】実施形態におけるロボット制御システムの構成を示す説明図。
【
図4】指令情報の受信処理の手順を示すフローチャート。
【
図5】制御指令の外挿処理の手順を示すフローチャート。
【
図6】制御指令の送信処理の手順を示すフローチャート。
【
図7】制御指令生成部による制御指令の生成と送信のタイミングチャート。
【
図8】上位制御装置と下位制御装置との間におけるロボット状態の送受信手順と指令情報の送信手順を示すフローチャート。
【発明を実施するための形態】
【0010】
図1は、一実施形態におけるロボット制御システムの一例を示す説明図である。このロボット制御システムは、ロボット100と、ロボット100に制御指令CCを送信する下位制御装置200と、制御指令CCを作成するための指令情報CIを下位制御装置200に送信する上位制御装置300と、を備える。下位制御装置200は、例えばロボットコントローラーであり、上位制御装置300は、例えばパーソナルコンピューターである。なお、下位制御装置200を「第1制御装置」とも呼び、上位制御装置300を「第2制御装置」と呼ぶことも可能である。
【0011】
ロボット100は、基台110と、ロボットアーム120と、サーボ制御部130とを備えている。サーボ制御部130は、ロボットアーム120の関節を動かすアクチュエーターに関するサーボ制御を実行する。サーボ制御部130は、下位制御装置200に接続されている。
【0012】
ロボットアーム120は、4つの関節J1~J4で順次接続されている。ロボットアーム120の先端部には、力覚センサー140と、エンドエフェクター150が装着されている。力覚センサー140は省略しても良い。また、ジャイロセンサーや振動センサー等の他のセンサーをロボットアーム120に設けても良い。ロボットアーム120の先端近傍には、ロボット100の制御点としてのTCP(Tool Center Point)が設定されている。本実施形態では、4つの関節J1~J4を有する4軸ロボットを例示しているが、複数の関節を有する任意のアーム機構を有するロボットを用いることが可能である。また、本実施形態のロボット100は、水平多関節ロボットであるが、垂直多関節ロボットを使用してもよい。
【0013】
図2は、ロボット制御システムの機能ブロック図である。下位制御装置200は、予め定められたロボットの制御周期Tc1に同期して、制御指令CCをサーボ制御部130に送信してロボット100を制御するとともに、ロボット状態情報RIをサーボ制御部130から受信して上位制御装置300に送信する。上位制御装置300は、このロボット状態情報RIを必要に応じて使用して、次回の指令情報CIを作成することができる。上位制御装置300は、ロボット状態情報RIを受信した時刻から、ロボットの制御周期Tc1よりも短い予め定められた送信時間内に指令情報CIを下位制御装置200に送信する。
【0014】
ロボットアーム120は、アクチュエーター122と、センサー124とを含んでいる。アクチュエーター122は、個々の関節に設けられており、個々の関節を動作させるために使用される。アクチュエーター122は、各関節の位置を示す位置センサーとしてのエンコーダーも含んでいる。本開示において、関節の位置とは、関節の変位又は角度を意味する。センサー124は、
図1に示した力覚センサー140等の各種のセンサーを含んでいる。ロボット状態情報RIは、ロボット100の状態を表す情報であり、複数の関節におけるエンコーダーの検出値である位置データと、センサー124の検出値であるセンサー値とを含んでいる。
【0015】
サーボ制御部130は、アクチュエーター122の制御を実行するアクチュエーター制御部132と、リアルタイム通信部134とを有する。リアルタイム通信部134は、ロボットの制御周期Tc1で下位制御装置200と同期通信を行う機能を有する。本実施形態において、ロボットの制御周期Tc1は2msである。サーボ制御部130と下位制御装置200は、一定の周期でリアルタイム通信を行うことが可能なプロトコルで接続されており、例えば、EtherCAT(Ethernet Control Automation Technology)で接続されている。EtherCATでは、デジタルデータやアナログデータ、エンコーダー値などの入出力情報が連結されたプロセスデータを、Ethernetフレームに載せてやりとりすることができる。EtherCAT接続において、下位制御装置200はマスターとして機能し、サーボ制御部130はスレーブとして機能する。下位制御装置200と上位制御装置300は、非リアルタイム通信を行うプロトコルで接続されており、例えば、Ethernetで接続されている。
【0016】
上位制御装置300は、指令情報生成部310と、非リアルタイム通信部320とを有する。指令情報生成部310は、予め作成されていたロボット制御プログラムRPに従ってロボットアーム120の軌道を生成し、その軌道に従ってロボットアーム120を動作させるための指令情報CIを作成する。指令情報CIは、ロボットアーム120を動作させるための位置指令を含んでいる。位置指令は、ロボットアーム120が有する複数のアクチュエーターのそれぞれの位置を示す指令であり、ロボットの制御周期Tc1である2ms周期の位置を示している。非リアルタイム通信部320は、下位制御装置200の非リアルタイム通信部210との間で非リアルタイム通信を実行する。前述したように、本実施形態では、上位制御装置300と下位制御装置200は、Ethernetで接続されている。非リアルタイム通信では、指令情報CIが上位制御装置300から下位制御装置200に送信され、また、ロボット状態情報RIが下位制御装置200から上位制御装置300に送信される。前述したように、ロボット状態情報RIは、ロボットアーム120の各関節の位置データと、センサー124のセンサー値とを含んでいる。
【0017】
指令情報生成部310は、ロボット制御プログラムRPに従って指令情報CIを作成する処理を実行する。指令情報CIの処理としては、以下のいずれかの処理を選択して実行することが可能である。
(i)下位制御装置200から受信したロボット状態情報RIを用いることなく、ロボット制御プログラムRPに従って指令情報CIを作成する第1処理。
(ii)ロボット制御プログラムRPに従い、ロボット状態情報RIを用いて指令情報CIを作成する第2処理。
これらの2つの処理のうちのいずれを選択して実行するかは、ロボット制御プログラムRPに予め記述されている。こうすれば、指令情報生成部310が必要に応じてロボット状態情報RIを用いて指令情報CIを作成するので、下位制御装置200がそのロボット状態情報RIを反映した制御指令CCをサーボ制御部130に送信してロボット100を動作させることができる。なお、上述の2つの処理を選択的に実行する代わりに、常に上記第2の処理を実行するようにしてもよい。
【0018】
上記第2処理においてロボット状態情報RIを用いて指令情報CIを作成する例としては、例えば以下の例が存在する。
(1)力覚センサー140のセンサー値を用いて、指令情報CIに含まれる力制御のパラメーターを変更する。
(2)力覚センサー140のセンサー値を用いて、位置制御による変位に加えて、力制御による変位分を加算した指令情報CIを作成する。
(3)特定の関節のエンコーダー値が特定の角度を示す値に到達したときに、制御点の加速又は減速を開始するように指令情報CIを作成する。
【0019】
下位制御装置200は、非リアルタイム通信部210と、制御指令生成部220と、リアルタイム通信部230と、ロボット状態転送部240と、を有する。上位制御装置300から送信された指令情報CIは、非リアルタイム通信部210で受信されて制御指令生成部220に転送される。制御指令生成部220は、この指令情報CIに従って制御指令CCを作成する。制御指令CCは、指令情報CIに含まれている2ms周期の位置指令と実質的に同じ位置指令を含んでいる。制御指令CCは、指令情報CIと同一のものとしてもよい。リアルタイム通信部230は、ロボットの制御周期Tc1毎に、制御指令CCをサーボ制御部130に送信するとともに、ロボット状態情報RIをサーボ制御部130から受信する。このロボット状態情報RIは、ロボット状態転送部240から、非リアルタイム通信部210を介して上位制御装置300に送信される。
【0020】
制御指令生成部220は、指令受信処理部221と、指令外挿処理部222と、指令送信処理部223とを有する。指令送信処理部223は、制御指令CCを格納する指令メモリー225と、制御指令CCの履歴を格納する指令履歴メモリー226とを含んでいる。指令受信処理部221は、上位制御装置300から受信した指令情報CIのチェックを行い、指令情報CIに応じた制御指令CCを指令メモリー225に書き込む処理を実行する。指令外挿処理部222は、指令送信処理部223によって制御指令CCがサーボ制御部130に送信された後に、次の制御指令の候補として、過去の複数の制御指令CCを外挿処理することによって外挿制御指令CCeを生成し、その外挿制御指令CCeを指令メモリー225に書き込む処理を実行する。但し、指令外挿処理部222は、指令送信処理部223による制御指令CCの送信完了前に外挿処理を開始してもよい。指令送信処理部223は、ロボットの制御周期Tc1に同期したタイミングで、指令メモリー225に格納されている制御指令CCをサーボ制御部130に送信する処理を実行する。後述するように、指令受信処理部221と指令外挿処理部222と指令送信処理部223は、並列に処理を実行する。
【0021】
上位制御装置300と下位制御装置200との間の通信が正常な場合には、指令送信処理部223によって送信される制御指令は、上位制御装置300から受信した指令情報CIに応じた制御指令CCである。一方、制御装置間の通信に遅れが生じた場合には、指令送信処理部223によって送信される制御指令は、指令外挿処理部222によって作成された外挿制御指令CCeである。この処理については更に後述する。制御指令生成部220内の各部の処理の詳細については後述する。
【0022】
図3は、制御装置間の通信のシーケンス図である。なお、以下の説明では、
図3に示した処理P1~P10の順に各種の処理を説明する。
図3では図示の便宜上、ロボット状態転送部240の図示が省略されており、また、「ロボット状態情報」は単に「ロボット状態」と記載されている。
【0023】
下位制御装置200は、下位制御装置200のタイマー割り込みを利用して、一定の制御周期Tc1で動作する。前述したように、この制御周期Tc1は2msである。具体的には、下位制御装置200のリアルタイム通信部230は、タイマー割り込みに応じて、EtherCATプロトコルによるリード/ライト、即ち、送受信を、2msの制御周期Tc1で実行する。このリアルタイム通信部230による送受信のタイミングが、他の各部の動作タイミングをコントロールする基準タイミングとなる。
【0024】
リアルタイム通信部230は、処理P1において、タイマー割り込みのタイミングで制御指令CCをサーボ制御部130に送信する。この制御指令CCは、ロボットアーム120の各関節に関する2ms周期の位置指令を含んでいる。サーボ制御部130は、処理P2において、受信した2ms周期の位置指令を、より細かい分割制御周期Tc2に対する複数の位置指令に補間して、ロボットアーム120のアクチュエーター122を制御する。
図3の例では、分割制御周期Tc2は250μsである。
【0025】
サーボ制御部130は、処理P3において、ロボット状態情報RIを下位制御装置200に送信する。前述したように、このロボット状態情報RIは、各関節の位置データと、センサー124のセンサー値とを含んでいる。下位制御装置200のリアルタイム通信部230は、制御指令CCをサーボ制御部130に送信した後、処理P4において、ロボット状態転送部240に動作の開始を指示する。但し、
図3ではロボット状態転送部240は図示が省略されている。
【0026】
一方、サーボ制御部130への制御指令CCの送信が完了すると、制御指令生成部220の指令外挿処理部222は、処理P5において、過去の複数の制御指令を外挿することによって外挿制御指令CCeを作成して、指令メモリー225に書き込む。過去の複数の制御指令は、指令履歴メモリー226に格納されている。ロボット状態転送部240は、処理P6において、サーボ制御部130から受信したロボット状態情報RIを、非リアルタイム通信部210を介して上位制御装置300に転送する。
【0027】
上位制御装置300の指令情報生成部310は、処理P7において、ロボット状態情報RIの受信を確認し、次回の位置指令のための軌道の計算を実行し、位置指令を含む指令情報CIを生成する。上位制御装置300は、指令情報CIの生成が終了すると、処理P8において、直ちに下位制御装置200に位置指令を含む指令情報CIを送信する。この指令情報CIには、ユニークな連番のシーケンス番号が付される。上位制御装置300内の処理や制御装置間の通信が正常に実行されている場合には、指令情報CIの送信は、ロボット状態情報RIを受信した時刻から、ロボットの制御周期Tc1である2msよりも短い予め定められた送信時間TT内に実行される。上位制御装置300はリアルタイムOSで動作していないため、ロボット状態情報RIを下位制御装置200から受信した後、数十μs未満で次の指令情報CIを送信することは不可能であるが、ロボット状態情報RIを受信したタイミングから、送信時間TT内に指令情報CIを送信することができれば、下位制御装置200が次の制御指令CCをサーボ制御部130に送信するタイミングに間に合わせることができる。
【0028】
制御指令生成部220の指令受信処理部221は、上位制御装置300から指令情報CIが送られてくるのを常時待機する。制御指令生成部220の指令受信処理部221は、処理P9において、上位制御装置300から指令情報CIを受信すると、指令情報CIに付されているシーケンス番号をチェックするとともに、位置指令で示される位置、速度、加速度がリミットを超えていないか否かをチェックする。指令情報CIに異常がなければ、指令情報CIに応じた制御指令CCが指令メモリー225に書き込まれる。制御指令生成部220の指令送信処理部223は、処理P10において、指令メモリー225に格納されている制御指令CCを、リアルタイム通信部230経由でサーボ制御部130に送信する。
【0029】
指令受信処理部221による指令情報CIの受信処理には、制御周期Tc1毎にタイムアウト時刻Toutが設定されている。このタイムアウト時刻Tout前に次の指令情報CIを上位制御装置300から受信した場合には、その指令情報CIに応じた正規の制御指令CCが指令メモリー225に書き込まれるので、この正規の制御指令CCがサーボ制御部130に送信される。一方、タイムアウト時刻Toutまでに次の指令情報CIを受信できなかった場合には、正規の制御指令CCが指令メモリー225に書き込まれないので、外挿制御指令CCeが指令メモリー225から読み出されてサーボ制御部130に送信される。この処理については更に後述する。
【0030】
以上のように、下位制御装置200は、予め定められた制御周期Tc1に同期してロボット状態情報RIを上位制御装置300に送信し、上位制御装置300は、下位制御装置200からロボット状態情報RIを受信した時刻から、制御周期Tc1よりも短い予め定められた送信時間TT内に指令情報CIを下位制御装置200に送信する。このロボット制御システムでは、上位制御装置300と下位制御装置200との間の通信がロボットの制御周期Tc1よりも短い送信時間TT内に行われるため、下位制御装置200が制御周期Tc1毎に制御指令CCをサーボ制御部130に送信することができ、応答性が要求されるロボット動作を問題なく実行できる。
【0031】
下位制御装置200の制御指令生成部220は、指令受信処理部221と指令外挿処理部222と指令送信処理部223とを有しており、これらの各部はそれぞれの処理を並列に実行する。以下では、指令受信処理部221の処理内容と、指令外挿処理部222の処理と、指令送信処理部223の処理内容とを順に説明する。
【0032】
図4は、指令受信処理部221による指令情報CIの受信処理の手順を示すフローチャートである。ステップS111,S112では、指令受信処理部221が、上位制御装置300から指令情報CIを受信するまで待機する。なお、指令受信処理部221は、リアルタイム通信部230や指令送信処理部223からの開始指示を待つことなく、指令情報CIの受信を常時待機することが好ましい。指令情報CIを受信すると、ステップS113において、指令情報CIの受信がタイムアウト時刻を超過しているか否かが判定される。タイムアウト時刻を超過している場合には、その指令情報CIを破棄して後述するステップS117に進む。
【0033】
タイムアウト時刻を超過していない場合には、ステップS114に進み、指令受信処理部221が、指令情報CIのチェックを実行する。具体的には、指令情報CIに付されているシーケンス番号をチェックするとともに、指令情報CIで示される目標位置と、その目標位置に応じた速度及び加速度がリミットを超えていないか否かをチェックする。指令情報CIが正常でなければ、その指令情報CIを破棄して、ステップS115から後述するステップS117に進む。指令情報CIが正常であればステップS116に進み、指令受信処理部221が指令情報CIから次回の制御指令CCを作成して指令メモリー225に書き込む。なお、このタイミングでは、次回の外挿制御指令CCeが既に指令メモリー225に書き込まれているので、正規の制御指令CCは、外挿制御指令CCeに上書きされる。ステップS117では、更に、指令履歴メモリー226にも正規の制御指令CCをそのシーケンス番号とともに格納する。
【0034】
ステップS117では、指令受信処理部221が、処理の終了指示を受けたか否かを判定し、受けていなければステップS111に戻ってステップS111以降の処理を繰り返す。なお、処理の終了指示は、例えば、上位制御装置300から下位制御装置200に送信される。
【0035】
図5は、指令外挿処理部222による制御指令の外挿処理の手順を示すフローチャートである。ステップS121,S122では、指令外挿処理部222が、処理開始指示を受けるまで待機する。この処理開始指示は、例えば、指令送信処理部223が制御指令CCの送信を完了したことを示す通知、又は、リアルタイム通信部230が送受信を完了したことを示す通知である。即ち、本実施形態では、指令外挿処理部222は、サーボ制御部130への制御指令CCの送信の完了後に、次の制御指令CCのための外挿処理を開始する。但し、指令外挿処理部222は、サーボ制御部130への制御指令CCの送信の完了前に、次の制御指令CCのための外挿処理を開始するようにしてもよい。
【0036】
処理開始指示を受けると、ステップS123において、指令外挿処理部222が、直前にサーボ制御部130に送信された制御指令が、上位制御装置300から受信した指令情報CIに応じた正規の制御指令CCと外挿制御指令CCeのいずれであったかを判断し、指令履歴メモリー226に格納されている制御指令の送信履歴を確定させる。なお、指令情報CIに応じた正規の制御指令CCと外挿制御指令CCeのいずれが送信されたかを示す信号は、指令送信処理部223から通知される。前回送信した制御指令が外挿制御指令CCeであった場合には、ステップS124からステップS125に進み、外挿制御指令CCeを送信した回数を記録する外挿処理カウンターを1つカウントアップする。この外挿処理カウンターは、連続して実行された外挿処理回数を表す。
【0037】
ステップS126では、指令外挿処理部222が、外挿処理カウンター値が予め定められた上限値を超えたか否かを判断する。外挿処理カウンター値が上限値を超えた場合には、ステップS127に進み、上位制御装置300からの指令情報CI無しの状態で軌道を過度に移動したものとみなして、ロボット100をエラー停止させる。一方、外挿処理カウンター値が上限値を超えていない場合には、後述するステップS128に進む。なお、外挿処理カウンター値が上限値未満の状態で正しい指令情報CIを受信した場合は、カウンター値は0にリセットされる。外挿処理カウンターの上限値は、10~30の範囲の値が好ましい。
【0038】
ステップS128では、指令外挿処理部222が、過去の複数回の制御指令を用いた外挿処理を行うことによって外挿制御指令CCeを作成し、その外挿制御指令CCeを指令メモリー225に書き込む。過去の複数回の制御指令は、指令履歴メモリー226に格納されている。外挿処理の方法としては、種々の方法を採用できる。例えば、直近の2回の制御指令CCを用いて直線的な外挿を行ってもよい。また、過去の3回以上の制御指令CCを用いて多項式補間やスプライン補間を行ってもよい。なお、外挿処理は、制御指令に含まれる目標位置に関して行われる。
【0039】
外挿制御指令CCeも、通常の制御指令CCと同様に、ロボット100が有する関節毎に作成される。例えば、
図1に示したロボット100は、6個の関節J1~J6を有しているので、これらの6個の関節J1~J6のすべてについて、外挿制御指令CCeが作成される。
図3でも説明したように、外挿制御指令CCeの作成は、外部の上位制御装置300から正規の指令情報CIを受信するよりも前に実行される。
【0040】
指令メモリー225に書き込まれた外挿制御指令CCeは、予め定められたタイムアウト時刻前に正規の指令情報CIを上位制御装置300から受信した場合には、正規の制御指令CCによって上書きされることになる。
図5のステップS128の完了時には、外挿制御指令CCeと正規の制御指令CCのいずれが送信されるかが未だ確定していないため、ステップS129において、仮の制御指令履歴を示す履歴情報が更新されて、外挿制御指令CCeの目標位置と、その目標位置に応じた速度及び加速度と、仮シーケンス番号と、が指令履歴メモリー226に記録される。仮シーケンス番号は、次に期待される正規の指令情報CIのシーケンス番号と同じ値に設定される。この仮の制御指令履歴は、前述したステップS123において確定される。
【0041】
ステップS130では、指令外挿処理部222が、処理の終了指示を受けたか否かを判定し、受けていなければステップS121に戻ってステップS121以降の処理を繰り返す。なお、処理の終了指示は、前述した
図4のステップS117における終了指示と同じものである。
【0042】
図6は、指令送信処理部223による制御指令の送信処理の手順を示すフローチャートである。ステップS131,S132では、指令送信処理部223が、制御周期Tc1毎に下位制御装置200内で発生するタイマー割り込みを待機する。前述したように、この制御周期Tc1は2msである。タイマー割り込みを受信すると、ステップS133において、指令送信処理部223が、指令メモリー225に格納されている制御指令をサーボ制御部130に送信する。この送信は、指令送信処理部223がリアルタイム通信部230に送信処理を実行させることによって行われる。
【0043】
前述したように、
図3に示したタイムアウト時刻Tout前に正規の指令情報CIを上位制御装置300から受信していた場合には正規の制御指令CCがサーボ制御部130に送信される。一方、タイムアウト時刻Tout前に正規の指令情報CIを受信しなかった場合には、外挿制御指令CCeがサーボ制御部130に送信される。ステップS134では、指令送信処理部223が、指令外挿処理部222に処理開始を指示する。この処理開始の指示は、前述した
図6のステップS121において指令外挿処理部222が受信する指示と同じものである。なお、指令送信処理部223の代わりに、リアルタイム通信部230が指令外挿処理部222に処理開始を指示するようにしてもよい。
【0044】
ステップS135では、指令送信処理部223が、処理の終了指示を受けたか否かを判定し、受けていなければステップS131に戻ってステップS131以降の処理を繰り返す。なお、処理の終了指示は、前述した
図4のステップS117における終了指示と同じものである。
【0045】
なお、
図4のステップS114~S116において指令情報CIから正規の制御指令CCを作成して指令メモリー225に書き込む処理Paと、
図5のステップS128において外挿制御指令CCeを作成して指令メモリー225に書き込む処理Pbと、
図6のステップS133において指令メモリー225内の制御指令をサーボ制御部130に送信する処理Pcは、互いに排他的な処理として実行されることが好ましい。即ち、これらの3つの処理Pa,Pb,Pcは、同時に並行して実行されることがなく、いずれか1つの処理のみが単独で実行されるように、指令受信処理部221と指令外挿処理部222と指令送信処理部223とが協調して動作することが好ましい。こうすれば、常に適切な制御指令を適切なタイミングでサーボ制御部130に送信することができる。
【0046】
なお、2つの処理Pa,Pbについては、正規の制御指令CCを生成する処理Paよりも、外挿処理を行う処理Pbの優先度の方を高く設定することが好ましい。即ち、上位制御装置300から指令情報CIを受信するタイミングの前に、外挿処理による外挿制御指令CCeの生成処理が終了していることが好ましい。
【0047】
図7は、制御指令生成部220による制御指令の生成と送信のタイミングチャートである。制御指令は、ロボットの制御周期Tc1である2ms毎にサーボ制御部130に送信される。制御指令の送信が完了すると、指令外挿処理部222による外挿処理が直ちに開始される。指令外挿処理部222によって作成された外挿制御指令CCeは、指令メモリー225に書き込まれる。指令受信処理部221は、指令情報CIの受信を常時待機する。タイムアウト時刻Toutは、次回の制御指令をサーボ制御部130に送るべきタイミングよりも前に設定されている。
【0048】
図7の2つの制御周期Tc1のうちの最初の制御周期では、タイムアウト時刻Toutの前に指令情報CI_1が受信されている。この場合には、指令情報CI_1から正規の制御指令CCが作成されて指令メモリー225に書き込まれるので、この正規の制御指令CCがサーボ制御部130に送信される。一方、2番目の制御周期では、タイムアウト時刻Toutの後に指令情報CI_2が受信されている。この場合には、指令情報CI_2に応じた正規の制御指令CCが指令メモリー225に書き込まれないので、その前に指令メモリー225に書き込まれていた外挿制御指令CCeがサーボ制御部130に送信される。
【0049】
なお、タイムアウト時刻Toutと、次回の制御指令をサーボ制御部130に送るべきタイミングとの間の時間長L1は、外挿処理に要する時間長L2よりも小さく設定することが好ましい。この理由は、上位制御装置300から受信した指令情報CIをチェックして正規の制御指令CCを指令メモリー225に書き込むために要する時間長L1が、外挿制御指令CCeを作成して指令メモリー225に書き込むために要する時間長L2よりも短くて済むためである。また、L1<L2に設定すれば、指令情報CIが無効となる確率を下げることができる。また、外挿処理により発生し得る本来の指令位置とのズレの発生確率を低減することができ、ロボット100が停止する確率を下げることができる。また、外挿処理を実行してもその時点では加速度超過は発生しないが、以降の正規の指令情報CIの受信時に加速度超過が起きる確率が増加する。このため、外挿制御指令CCeを使用する確率を下げることによって、加速度超過が発生する確率を下げることが可能である。
【0050】
図8は、上位制御装置300と下位制御装置200との間におけるロボット状態情報RIの送受信手順と指令情報CIの送信手順を示すフローチャートである。ステップS310~S360は上位制御装置300の処理であり、ステップS210~S250は下位制御装置200の処理である。
【0051】
ステップS210,S220では、ロボット状態転送部240が、リアルタイム通信部230から処理開始指示を受けるまで待機する。処理開始指示を受けると、ロボット状態転送部240は、ステップS230において、サーボ制御部130から送信されたロボット状態情報RIを取得し、ステップS240において、非リアルタイム通信部210を介して上位制御装置300に送信する。ステップS250では、処理の終了指示を受けたか否かを判定し、受けていなければステップS210に戻ってステップS210以降の処理を繰り返す。なお、処理の終了指示は、例えば、上位制御装置300から下位制御装置200に送信される。
【0052】
ステップS310,S320では、非リアルタイム通信部320が下位制御装置200からロボット状態情報RIを受信するまで待機する。ロボット状態情報RIを受信すると、指令情報生成部310が、ステップS330において、ロボット状態情報RIを非リアルタイム通信部320から取得し、ステップS340において、必要に応じてロボット状態情報RIを利用して次回の指令情報CIを生成する。ステップS350では、指令情報生成部310が、非リアルタイム通信部320を介して下位制御装置200に指令情報CIを送信する。この指令情報CIの送信に応じて、
図4に示したステップS114以降の処理が実行される。
【0053】
ステップS360では、指令情報生成部310が、処理の終了指示を受けたか否かを判定し、受けていなければステップS310に戻ってステップS310以降の処理を繰り返す。なお、処理の終了指示は、例えば、ロボット100による作業が終了したことを作業者が上位制御装置300に入力した場合に、その入力に応じて発行される。
【0054】
以上のように、上記実施形態のロボット制御システムでは、下位制御装置200は、ロボットの制御周期Tc1に同期してロボット状態情報RIを上位制御装置300に送信し、上位制御装置300は、下位制御装置200からロボット状態情報RIを受信した時刻から、ロボットの制御周期Tc1よりも短い予め定められた送信時間TT内に指令情報CIを下位制御装置200に送信する。このロボット制御システムによれば、上位制御装置300と下位制御装置200との間の通信がロボットの制御周期Tc1よりも短い送信時間TT内に行われるので、下位制御装置200が制御周期Tc1毎に制御指令CCをサーボ制御部130に送信することができ、応答性が要求されるロボット動作を問題なく実行できる。
【0055】
また、上記実施形態では、下位制御装置200は、次回の制御指令CCをサーボ制御部130に送るべきタイミングよりも前のタイムアウト時刻Toutまでに上位制御装置300から指令情報CIを受信できた場合には、指令情報CIから次回の制御指令CCを作成してサーボ制御部130に送信する。一方、タイムアウト時刻Toutまでに上位制御装置300から指令情報CIを受信できなかった場合には、外挿制御指令CCeをサーボ制御部130に送信する。この結果、上位制御装置300から下位制御装置200に送信される指令情報CIに遅れが発生した場合にも、適切な制御指令をサーボ制御部130に送信できる。
【0056】
なお、
図4のステップS113において、指令情報CIがタイムアウト時刻Toutの後に受信したものと判定された場合に、その指令情報CIを破棄することなく、指令情報CIに応じた正規の制御指令CCを作成して指令履歴メモリー226に追加するようにしてもよい。この場合には、その次の制御周期Tc1において外挿制御指令CCeを作成する際に、指令履歴メモリー226に格納されている正規の制御指令CCを用いて外挿処理を実行するようにしてもよい。即ち、第1の指令情報CI_1をそのタイムアウト時刻Toutの前に受信できないことに起因して第1の外挿制御指令CCe_1をサーボ制御部130に送信した後に第1の指令情報CI_1を受信し、かつ、次の第2の指令情報CI_2をそのタイムアウト時刻Toutの前に受信できない場合には、第2の外挿制御指令CCe_2を作成するための過去の複数の制御指令として、第1の指令情報CI_1に応じた正規の制御指令CC_1を含むものを使用するようにしてもよい。こうすれば、第2の外挿制御指令CCe_2をより正確なものとすることができる。
【0057】
また、指令履歴メモリー226には、タイムアウト時刻Toutの後に受信した指令情報CI_1に応じた正規の制御指令CC_1と、これと同じシーケンス番号を有する外挿制御指令CCe_1と、の両方を格納することが好ましい。こうすれば、次の外挿制御指令CCe_2を作成する際に、その速度や加速度のチェックのために、実際にサーボ制御部130に送信した外挿制御指令CCe_1を用いることができるので、チェックをより正確に行うことができる。
【0058】
更に、タイムアウト時刻Toutの後に受信した指令情報CI_1に応じた正規の制御指令CC_1を指令履歴メモリー226に格納する場合に、外挿処理カウンター値を0又は1に変更するようにしてもよい。こうすれば、外挿処理カウンター値を、より現実に即した値に修正できる。このような外挿処理カウンター値の修正は、実際にサーボ制御部130に送信した外挿制御指令CCe_1における目標位置と、サーボ制御部130に送信しなかった正規の制御指令CC_1における目標位置との差が、予め定められた許容値以下の場合に実行するようにしてもよい。また、目標位置の差が許容値を超える場合には、ロボット100を停止させるようにしてもよい。これらの処理では、ロボット100の制御をより正確に行うことが可能である。
【0059】
・他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0060】
(1)本開示の第1の形態によれば、ロボット制御システムが提供される。このロボット制御システムは、サーボ制御部を有するロボットと、予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する下位制御装置と、前記下位制御装置に、前記制御指令を作成するための指令情報を送信する上位制御装置と、を備える。前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する。前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信する。前記下位制御装置は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を実行する。
このロボット制御システムによれば、上位制御装置と下位制御装置との間の通信がロボットの制御周期よりも短い送信時間内に行われるため、下位制御装置が制御周期毎に制御指令をサーボ制御部に送信することができ、応答性が要求されるロボット動作を問題なく実行できる。また、上位制御装置から下位制御装置に送信される指令情報に遅れが発生した場合にも、適切な制御指令をサーボ制御部に送信できる。
【0061】
(2)上記ロボット制御システムにおいて、前記下位制御装置は、前記外挿制御指令を作成する処理を、前記タイムアウト時刻よりも前に完了するものとしてもよい。
このロボット制御システムによれば、タイムアウト時刻を、サーボ制御部に制御指令を送信するタイミングの直前に設定できるので、タイムアウトが生じ難くすることができる。
【0062】
(3)上記ロボット制御システムにおいて、前記下位制御装置は、前記上位制御装置から前記指令情報を受信する前に前記外挿制御指令を作成して、前記外挿制御指令を指令メモリーに保存し、前記タイムアウト時刻よりも前に前記指令情報を受信した場合には、前記指令情報から前記次回の制御指令を作成して、前記次回の制御指令を前記指令メモリー内の前記外挿制御指令に上書きするものとしてもよい。
このロボット制御システムによれば、サーボ制御部への制御指令の送信タイミングに、指令メモリーに格納されている指令を単に送信することによって、適切な制御指令をサーボ制御部に送信できる。
【0063】
(4)本開示の第2の形態によれば、ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置が提供される。前記下位制御装置は、(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、を実行するように構成されている。前記処理(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を含む。
【0064】
(5)本開示の第3の形態によれば、サーボ制御部を有するロボットと、下位制御装置と、上位制御装置と、を備えるロボット制御システムにおける前記ロボットの制御方法が提供される。この制御方法は、(a)前記下位制御装置が、予め設定された制御周期毎に、前記サーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する工程と、(b)前記上位制御装置が、前記下位制御装置に、前記制御指令を作成するための指令情報を送信する工程と、備える。前記工程(a)において、前記下位制御装置は、前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する。前記工程(b)において、前記上位制御装置は、前記下位制御装置から前記ロボット状態情報を受信した時刻から、前記制御周期よりも短い予め定められた送信時間内に前記指令情報を前記下位制御装置に送信する。前記工程(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する工程と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から前記指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する工程と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する工程と、を含む。
【0065】
(6)本開示の第4の形態によれば、ロボット及び上位制御装置と共にロボット制御システムを構成する下位制御装置の制御方法が提供される。この制御方法は、(a)予め設定された制御周期毎に、前記ロボットのサーボ制御部に制御指令を送信するとともに、前記サーボ制御部から前記ロボットの状態を表すロボット状態情報を受信する処理と、(b)前記制御周期に同期して前記ロボット状態情報を前記上位制御装置に送信する処理と、を含む。前記処理(a)は、(i)前記サーボ制御部に前記制御指令を送信するとともに、次回の制御指令の候補として、過去の複数の制御指令を外挿することによって外挿制御指令を作成する処理と、(ii)前記次回の制御指令を前記サーボ制御部に送るべきタイミングよりも前のタイムアウト時刻までに前記上位制御装置から指令情報を受信できた場合には、前記指令情報から前記次回の制御指令を作成して前記サーボ制御部に送信する処理と、(iii)前記タイムアウト時刻までに前記上位制御装置から前記指令情報を受信できなかった場合には、前記外挿制御指令を前記サーボ制御部に送信する処理と、を含む。
【0066】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット制御装置とを備えたロボットシステム、ロボット制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0067】
100…ロボット、110…基台、120…ロボットアーム、122…アクチュエーター、124…センサー、130…サーボ制御部、132…アクチュエーター制御部、134…リアルタイム通信部、140…力覚センサー、150…エンドエフェクター、200…下位制御装置、210…非リアルタイム通信部、220…制御指令生成部、221…指令受信処理部、222…指令外挿処理部、223…指令送信処理部、225…指令メモリー、226…指令履歴メモリー、230…リアルタイム通信部、240…ロボット状態転送部、300…上位制御装置、310…指令情報生成部、320…非リアルタイム通信部