JP2023111378A - ロボット制御システムおよびロボット制御システムを構成する方法 - Google Patents

ロボット制御システムおよびロボット制御システムを構成する方法 Download PDF

Info

Publication number
JP2023111378A
JP2023111378A JP2022013210A JP2022013210A JP2023111378A JP 2023111378 A JP2023111378 A JP 2023111378A JP 2022013210 A JP2022013210 A JP 2022013210A JP 2022013210 A JP2022013210 A JP 2022013210A JP 2023111378 A JP2023111378 A JP 2023111378A
Authority
JP
Japan
Prior art keywords
module
robot
control system
controller
controllers
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
Application number
JP2022013210A
Other languages
English (en)
Inventor
エスクデロ ディエゴ
Escudero-Rodrigo Diego
ペナルヴェル アントニオ
Penalver Antonio
ジョバノビッチ イゴール
Jovanovic Igor
アルホムシ サイード
Alhomshi Saeed
カルラス フェラン
Carlas Ferran
フォルナス ダビド
Fornas David
ヴィト ラファエレ
Vito Raffaele
嘉英 田村
Yoshihide Tamura
圭 安田
Kei Yasuda
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2022013210A priority Critical patent/JP2023111378A/ja
Priority to PCT/JP2022/047967 priority patent/WO2023145362A1/ja
Publication of JP2023111378A publication Critical patent/JP2023111378A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】1または複数のロボットの制御に必要なモジュールを最適に配置できるロボット制御システムなどを提供する。【解決手段】ロボット制御システムの開発支援装置は、制御プログラムを逐次解釈する第1のモジュールと、第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュールと、中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、3のモジュールを、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、1または複数の第1のコントローラならびに1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定する構成決定部と、決定した配置先に各モジュールが配置されるように、対象のコントローラを構成する構成反映部とを含む。【選択図】図1

Description

本発明は、ロボット制御システムおよび当該ロボット制御システムを構成する方法に関する。
生産現場において、様々なロボットの導入および実用化が進行している。生産設備と連携してロボットを動作させる必要なども生じるため、共通の制御装置により1または複数のロボットを制御するような構成が開示されている(特許文献1~4参照)。
特開2021-142625号公報 特開2021-144586号公報 特開2021-144587号公報 特開2021-144588号公報
生産現場で利用されるロボットは、用途に応じて様々な動作を行わせる必要がある。例えば、複数のロボットで同一のワークに対して何らかの処理を行うような場合には、当該複数のロボット間を互いに同期させる必要がある。また、ワークをより高い精度で加工する場合には、ロボットをより高い応答性で動作させる必要がある。
このように、ロボット毎に要求される性能などが行っており、このような要求に応じて、必要なモジュールを最適な計算リソースに配置することが好ましい。
本発明は、1または複数のロボットの制御に必要なモジュールを最適に配置できるロボット制御システムなどを提供することを目的としている。
本発明のある局面に従えば、1または複数のロボットを制御するロボット制御システムは、開発支援装置と、1または複数の第1のコントローラと、ロボットを駆動する1または複数の第2のコントローラとを含む。開発支援装置は、制御プログラムを逐次解釈する第1のモジュールと、第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュールと、中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、第3のモジュールを、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、1または複数の第1のコントローラならびに1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定する構成決定部と、決定した配置先に各モジュールが配置されるように、対象のコントローラを構成する構成反映部とを含む。
この構成によれば、1または複数のロボットの制御に必要な第3のモジュールの配置先を、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて最適化できる。
第3のモジュールは、ロボット毎に用意されてもよい。この構成によれば、ロボット毎に独立した制御を実現できる。
構成決定部は、同期すべき複数のロボットの指定に従って、当該同期すべき複数のロボットにそれぞれ対応付けられる複数の第3のモジュールを同一の第1のコントローラに配置するようにしてもよい。この構成によれば、同一の第1のコントローラに複数の第3のモジュールが配置されることで、ロボットを同期して動作させることができる。
構成決定部は、第1のモジュールおよび第2のモジュールの各々を、1または複数の第1のコントローラのうちいずれのコントローラに配置するのかをさらに決定するようにしてもよい。この構成によれば、1または複数のロボットの制御に必要な、第1のモジュールおよび第2のモジュールの配置先を、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて最適化できる。
開発支援装置は、ロボット制御システムに含まれる各コントローラで利用可能なリソースに基づいて、コントローラ毎に、第1のモジュール、第2のモジュールおよび第3のモジュールのうち配置可能なモジュールを提示するユーザインターフェイス部をさらに含んでいてもよい。この構成によれば、ユーザは、各モジュールをいずれのコントローラに配置可能であるかを容易に把握できる。
ユーザインターフェイス部は、各モジュールを配置すべきコントローラの指定を受け付け、構成決定部は、コントローラの指定に従って、モジュールの配置先を決定するようにしてもよい。この構成によれば、ユーザは、各モジュールの配置先を任意に指定できる。
構成反映部は、決定した配置先に設定情報を送信することで、対象のモジュールを有効化するようにしてもよい。この構成によれば、各モジュールを実現するためのプログラムを送信する場合に比較して、より迅速にシステムを構成できる。
本発明の別の局面に従えば、1または複数のロボットを制御する制御システムを構成する方法が提供される。制御システムは、1または複数の第1のコントローラと、ロボットを駆動する1または複数の第2のコントローラとを含む。方法は、制御プログラムを逐次解釈する第1のモジュールと、第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュールと、中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、第3のモジュールを、1または複数の第1のコントローラならびに1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定するステップとを含む。
本発明によれば、1または複数のロボットの制御に必要なモジュールを最適に配置できる。
本実施の形態に係るロボット制御システムの全体構成例を示す模式図である。 本実施の形態に係るロボット制御システムの機能構成例を示す模式図である。 本実施の形態に係る制御装置のハードウェア構成例を示す模式図である。 本実施の形態に係るロボットのハードウェア構成例を示す模式図である。 本実施の形態に係る開発支援装置のハードウェア構成例を示す模式図である。 本実施の形態に係るロボット制御システムのロボット制御に係る機能構成例を示す模式図である。 本実施の形態に係るロボット制御システムにおける機能モジュールの配置例を示す模式図である。 本実施の形態に係るロボット制御システムにおける機能モジュールの別の配置例を示す模式図である。 本実施の形態に係るロボット制御システムが提供する機能モジュール配置に係るユーザインターフェイス画面の一例を示す模式図である。 本実施の形態に係るロボット制御システムにおける機能モジュールの配置を実現するための処理手順を示すフローチャートである。 本実施の形態に係るロボット制御システムが提供する機能モジュール配置に係るユーザインターフェイス画面の別の一例を示す模式図である。 本実施の形態に係るロボット制御システムにおける機能モジュールの配置を実現するための別の処理手順を示すフローチャートである。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
図1は、本実施の形態に係るロボット制御システム1の全体構成例を示す模式図である。図1を参照して、ロボット制御システム1は、1または複数のロボット200-1,200-2,200-3,…(以下、「ロボット200」とも総称する。)を制御する。
より具体的には、ロボット制御システム1は、制御装置100と、1または複数のロボット200-1,200-2,200-3,…とを含む。なお、制御装置100は、複数であってもよいし、後述するような共有サーバがさらに付加されてもよい。
制御装置100は、第1のコントローラに相当し、任意の制御プログラムに従ってロボット200を制御する。制御プログラムは、例えば、任意の高級言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述されていてもよい。
ロボット200は、第2のコントローラに相当し、後述するようなロボットコントローラ250およびサーボドライバ260を有している。ロボット200は、例えば、多関節ロボット、スカラーロボット、モバイルロボット、任意に構成されたロボットなどどのようなものであってもよい。
制御装置100は、上位ネットワーク10を介して、表示装置400と接続されていてもよい。上位ネットワーク10には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。制御装置100は、フィールドネットワーク20を介してロボット200と接続されている。フィールドネットワーク20には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。なお、フィールドネットワーク20には、定周期通信が可能な通信プロトコルを採用することが好ましい。制御装置100には、開発支援装置300が接続可能になっていてもよい。
図2は、本実施の形態に係るロボット制御システム1の機能構成例を示す模式図である。図2を参照して、開発支援装置300は、ロボット制御システム1に必要な機能モジュール(後述する、解釈部、統合指示部、ロボット制御部)をデバイス(計算リソース)に配置する。
開発支援装置300は、機能構成として、構成反映モジュール340と、構成決定モジュール342と、ユーザインターフェイスモジュール344とを含む。
ユーザインターフェイスモジュール344は、ユーザインターフェイス画面を提供するとともに、ユーザ操作を受け付ける。
構成決定モジュール342は、機能モジュールの配置先を決定する。より具体的には、構成決定モジュール342は、制御プログラムを逐次解釈する解釈部(第1のモジュール)と、解釈部による解釈結果に基づいて中間表現を生成する統合指示部(第2のモジュール)と、中間表現に従ってロボット200に対する指令値を生成するロボット制御部(第3のモジュール)とのうち、第3のモジュールを、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、制御装置100および共有サーバ、ならびに、1または複数のロボットコントローラ(第2のコントローラ)のうちいずれのコントローラに配置するのかを決定する。
また、構成決定モジュール342は、解釈部(第1のモジュール)および統合指示部(第2のモジュール)の各々を、制御装置100および共有サーバ(第1のコントローラ)のうちいずれのコントローラに配置するのかをさらに決定するようにしてもよい。
構成反映モジュール340は、決定した配置先に各モジュールが配置されるように、対象のコントローラを構成する。
このような機能構成を採用することで、1または複数のロボット200の制御に必要な機能モジュールを最適に配置できる。
<B.ハードウェア構成例>
次に、本実施の形態に係るロボット制御システム1のハードウェア構成例について説明する。
(b1:制御装置100)
図3は、本実施の形態に係る制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120と、メモリカードインターフェイス122とを含む。これらのコンポーネントは、プロセッサバス130を介して接続されている。
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、後述するような処理を実現する。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
ストレージ110には、基本的な機能を実現するためのシステムプログラム112などが格納される。
上位ネットワークコントローラ106は、上位ネットワーク10を介して、任意の情報処理装置(図2に示される表示装置400など)との間でデータをやり取りする。
フィールドネットワークコントローラ108は、フィールドネットワーク20を介して、ロボット200との間でデータをやり取りする。
USBコントローラ120は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
メモリカードインターフェイス122は、着脱可能な記憶媒体の一例であるメモリカード124を受け付ける。メモリカードインターフェイス122は、メモリカード124に対して任意のデータの読み書きが可能になっている。
(b2:ロボット200)
図4は、本実施の形態に係るロボット200のハードウェア構成例を示す模式図である。図4を参照して、ロボット200は、ロボットコントローラ250と、サーボドライバ260とを含む。
ロボットコントローラ250は、ロボットを駆動するコントローラであり、フィールドネットワークコントローラ210と、制御処理回路220とを含む。
フィールドネットワークコントローラ210は、フィールドネットワーク20を介して、制御装置100との間でデータをやり取りする。
制御処理回路220は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路220は、プロセッサ222と、メインメモリ224と、ストレージ226と、インターフェイス回路230とを含む。
プロセッサ222は、ロボットを駆動するための制御演算を実行する。メインメモリ224は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ226は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ226には、ロボット200の制御を実現するためのシステムプログラム228が格納される。
インターフェイス回路230は、サーボドライバ260との間で信号をやり取りする。
サーボドライバ260は、1または複数のモータ262-1,262-2,262-3,…,262-Nに電力を供給して駆動する。モータ262-1,262-2,262-3,…,262-Nは、ロボット200を構成する軸と機械的に連結されている。モータ262-1,262-2,262-3,…,262-Nが回転することで、ロボット200の位置および姿勢が変化することになる。
(b3:開発支援装置300)
図5は、本実施の形態に係る開発支援装置300のハードウェア構成例を示す模式図である。図5を参照して、開発支援装置300は、CPUやGPUなどのプロセッサ302と、メインメモリ304と、入力部306と、表示部308と、ストレージ310と、USBコントローラ320と、ネットワークコントローラ322と、光学ドライブ324とを含む。これらのコンポーネントは、バス330を介して接続される。
プロセッサ302は、ストレージ310に格納された各種プログラムを読み出して、メインメモリ304に展開して実行することで、開発支援装置300で後述するような処理を実現する。
ストレージ310は、例えば、HDDやSSDなどで構成される。ストレージ310には、典型的には、OS312と、後述するような処理を実現するための開発支援プログラム314とが格納される。なお、ストレージ310には、図5に示すプログラム以外の必要なプログラムが格納されてもよい。
入力部306は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部308は、ディスプレイ、各種インジケータなどで構成され、プロセッサ302からの処理結果などを出力する。
USBコントローラ320は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
ネットワークコントローラ322は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
光学ドライブ324は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体326(例えば、DVDなどの光学記録媒体)からプログラムを読み取って、ストレージ310などに格納する。
開発支援装置300で実行される各種プログラムは、コンピュータ読取可能な記録媒体326を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。
(b4:表示装置400)
本実施の形態に係る表示装置400は、一例として、汎用パソコンを用いて実現されてもよい。表示装置400の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b5:共有サーバ)
本実施の形態に係るロボット制御システム1は、計算リソースを提供する情報処理装置として図示しない共有サーバを有していてもよい。共有サーバは、汎用的なアーキテクチャに従うコンピュータが用いられてもよい。
(b6:その他の形態)
図3~図5には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
また、本実施の形態に係るロボット制御システムの実現に必要な処理の一部または全部を、いわゆるクラウド上の計算リソースを用いて実行するようにしてもよい。本実施の形態に係るロボット制御システムをどのようなハードウェアリソースおよびソフトウェアリソースを用いて実現するのかについては、任意に設計および選択できる事項である。
<C.機能構成例>
次に、本実施の形態に係るロボット制御システム1の機能(functionality)構成例について説明する。
図6は、本実施の形態に係るロボット制御システム1のロボット制御に係る機能構成例を示す模式図である。図6を参照して、ロボット制御システム1は、ロボット制御に係る機能モジュールとして、解釈部50と、統合指示部60と、1または複数のロボット制御部70とを含む。
解釈部50は、制御プログラム30を逐次解釈し、解釈結果としての中間表現を生成する。
統合指示部60は、解釈部50による解釈結果(解釈結果としての中間表現)に基づいて対象のロボット制御部70に向けた中間表現を生成し、生成した中間表現を対象のロボット制御部70へ順次提供する。より具体的には、統合指示部60は、中間表現に含まれる識別情報に基づいて、当該中間表現の送信先となるロボット制御部70を決定する。
ロボット制御部70は、ロボット200毎に用意される。図6に示す構成例においては、ロボット200-1~200-3のサーボドライバ260-1~260-3にそれぞれ対応付けて、ロボット制御部70-1~70-3が用意されている。
ロボット制御部70の各々は、中間表現に従ってロボットに対する指令値を生成する。より具体的には、ロボット制御部70の各々は、統合指示部60から受信した中間表現に対応する内部コマンドを生成し、生成した内部コマンドに従って、制御周期毎の指令値を生成する。生成される指令値は、ロボット200のサーボドライバ260へ提供される。
制御周期毎の指令値は、例えば、ロボット200を構成するモータ262の各々に対する目標位置(目標角度)あるいは目標速度(目標角速度)であってもよい。
ロボット制御部70は、生成した内部コマンドに従って、ロボット200が移動すべき軌道を生成するとともに、生成した軌道を実現するための各軸の位置(角度)をキネマティクス計算により算出する。
<D.機能モジュール配置の最適化>
本実施の形態に係るロボット制御システム1においては、ロボット制御に係る機能モジュールの配置先を最適化することができる。
図7は、本実施の形態に係るロボット制御システム1における機能モジュールの配置例を示す模式図である。図7を参照して、解釈部50、統合指示部60、および、ロボット制御部70-1~70-3が制御装置100に配置されている。図7に示す配置例においては、ロボット制御部70-1~70-3の各々は、対応付けられたロボット200-1~200-3に対する指令値を制御周期毎に生成する。制御装置100からロボット200-1~200-3の各々までの指令値の伝送にかかる遅延時間は、ロボット200-1~200-3の間で実質的に差はない。そのため、ロボット200-1~200-3を互いに同期して制御することができる。但し、制御装置100は、解釈部50、統合指示部60、および、ロボット制御部70-1~70-3の処理をすべて実行する必要があるので、より多くの計算リソースが必要となる。
図8は、本実施の形態に係るロボット制御システム1における機能モジュールの別の配置例を示す模式図である。図8を参照して、解釈部50、統合指示部60、および、ロボット制御部70-2,70-3が制御装置100に配置されており、ロボット制御部70-1がロボット200-1に配置されている。
図8に示す配置例においては、ロボット制御部70-1が制御周期毎に生成した指令値は、フィールドネットワーク20を介することなくサーボドライバ260(図4参照)へ提供される。そのため、指令値の伝送にかかる遅延時間の影響を実質的に無視できる。
一方、ロボット制御部70-2,70-3の各々は、対応付けられたロボット200-2,200-3に対する指令値を制御周期毎に生成する。制御装置100からロボット200-2,200-3の各々までの指令値の伝送にかかる遅延時間は、ロボット200-2,200-3の間で実質的に差はない。そのため、ロボット200-2,200-3を互いに同期して制御することができる。
なお、図7および図8に示す配置例に限定されることなく、解釈部50、統合指示部60、および、ロボット制御部70-1~70-3をどのように配置してもよい。さらに、制御装置100およびロボット200に加えて、計算リソースを提供する別の情報処理装置が追加されてもよい。
但し、上述したように、機能モジュールの配置先に依存して、ロボット200の制御性能が変化し得る。そのため、本実施の形態に係るロボット制御システム1は、要求に応じて、機能モジュールをどのように配置すべかについて、ユーザを支援することが可能になっている。
<E.機能モジュール配置に係る支援機能>
次に、本実施の形態に係るロボット制御システム1が提供する機能モジュール配置に係る支援機能について説明する。
本実施の形態に係るロボット制御システム1において、開発支援装置300は、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、解釈部50、統合指示部60、および、ロボット制御部70をいずれのコントローラに配置するのかを決定する。
(e1:アプリケーション依存)
まず、設定されたアプリケーションに基づいて、ロボット制御部70の配置先を決定する処理について説明する。
上述したように、ロボット制御部70を制御装置100およびロボット200(ロボットコントローラ250)のいずれに配置するかによって、発揮される性能が異なる場合がある。そのため、ロボット200が担当するアプリケーションに依存して、ロボット制御部70をいずれのデバイス(計算リソース)に配置するかを最適化することが好ましい。
図9は、本実施の形態に係るロボット制御システム1が提供する機能モジュール配置に係るユーザインターフェイス画面の一例を示す模式図である。図9に示すユーザインターフェイス画面350は、制御装置100に接続されているロボット200を特定するためのロボット番号カラム351と、ロボット200が担当するアプリケーションを示すアプリケーション種別カラム352と、複数のロボット間で同期が必要であるか否かを示す同期カラム353と、ロボット制御部70を制御装置100またはロボット200のいずれに配置するかを示す配置位置カラム354,355とを含む。
ロボット番号カラム351の値は、制御装置100の設定情報に基づいて、開発支援装置300により決定される。
アプリケーション種別カラム352の値は、基本的には、ユーザが目的に応じて設定する。但し、制御装置100の設定情報に基づいて、開発支援装置300により決定されてもよい。より具体的には、制御装置100で実行されるユーザプログラムに組み込まれるライブラリなどの情報に基づいて、アプリケーションを特定することができる。
アプリケーション種別カラム352に設定される値としては、例えば、ワークを掴んで別の位置に配置するピック&プレイス動作(Pick and place)、ワーク同士を組み付ける組み付け動作(Assembly)、あるワークに別のワークを装着するキッティング動作(Kitting)、ワークに塗料や樹脂などを塗布するディスペンシング動作(Dispensing)、溶接動作(Welding)、および、研磨動作(Polishing)などが挙げられる。設定される動作に応じて、要求される動作の精度や速度などが異なる。
同期カラム353の値は、ユーザがアプリケーション種別に応じて設定してもよいし、開発支援装置300がアプリケーション種別に応じて自動的に設定してもよい。同期カラム353に設定される値としては、例えば、ロボット間の同期(Multi-robot synchronization)、コンベアなどの軸との同期(Robot to axes synchronization)、および、同期不要(None)などが挙げられる。
配置位置カラム354および配置位置カラム355のいずれか一方に、配置フラグが設定される。配置フラグは、各ロボット200に対する指令値を生成するロボット制御部70を配置する位置を示す。すなわち、配置位置カラム354にフラグが設定されている場合には、ロボット制御部70は制御装置100に配置され、配置位置カラム355にフラグが設定されている場合には、ロボット制御部70はロボット200(ロボットコントローラ250)に配置される。
ロボット制御部70がいずれに配置されるのかについては、設定されたアプリケーション種別、および/または、同期の要否などに応じて決定される。
図9に示す例では、ロボット番号が「1」および「2」の2つのロボット200の間では同期が必要であると設定されており、この場合には、それぞれのロボット200に対応する2つのロボット制御部70は、制御装置100に配置される。このように、開発支援装置300は、同期すべき複数のロボット200の指定に従って、当該同期すべき複数のロボット200にそれぞれ対応付けられる複数のロボット制御部70を同一のコントローラに配置する。
ロボット番号が「3」のロボット200については、組み付け動作であり、要求される応答性は相対的に低いので、ロボット制御部70は、制御装置100に配置される。
一方、ロボット番号が「4」のロボット200については、ピック&プレイス動作であり、要求される応答性は相対的に高いので、ロボット制御部70は、ロボット200(ロボットコントローラ250)に配置される。
このように、開発支援装置300は、ロボット200が担当するアプリケーションに依存して、ロボット制御部70をいずれのデバイス(計算リソース)に配置するかを最適化する。すなわち、開発支援装置300は、設定されたアプリケーションに基づいて、ロボット制御部70を、制御装置100および共有サーバならびに1または複数のロボットコントローラ250のうちいずれのコントローラに配置するのかを決定する。
なお、解釈部50および統合指示部60については、制御装置100または共有サーバに配置されることを前提としたが、設定されたアプリケーションに基づいて配置先を動的に決定してもよい。
図10は、本実施の形態に係るロボット制御システム1における機能モジュールの配置を実現するための処理手順を示すフローチャートである。図10に示す各ステップは、典型的には、開発支援装置300のプロセッサ302が開発支援プログラム314を実行することで実現されてもよい。
図10を参照して、開発支援装置300は、ユーザ操作に応じて、制御装置100に接続されるロボット200の設定情報などを取得し(ステップS100)、取得した情報などに基づいて、ロボット200のアプリケーション種別および同期要否などを決定し(ステップS102)、ユーザインターフェイス画面350を表示する(ステップS104)。また、開発支援装置300は、ユーザ操作に応じて、アプリケーション種別カラム352、および/または、同期カラム353の値を変更する(ステップS106)。
続いて、開発支援装置300は、ユーザ操作に応じて、ユーザインターフェイス画面350の設定値に基づいて、ロボット200毎に、対応するロボット制御部70を制御装置100およびロボット200(ロボットコントローラ250)のいずれに配置すべきかを決定し(ステップS108)、ユーザインターフェイス画面350に反映する(ステップS110)。また、開発支援装置300は、ユーザ操作に応じて、ロボット制御部70の配置先を変更する(ステップS112)。
このように、開発支援装置300は、設定されたアプリケーションに基づいて、ロボット制御部70を制御装置100および共有サーバならびに1または複数のロボットコントローラ250のうちいずれのコントローラに配置するのかを決定する処理を実行する。なお、開発支援装置300は、設定されたアプリケーションに基づいて、解釈部50および統合指示部60を、制御装置100または共有サーバのうちいずれのコントローラに配置するのかを決定してもよい。
最終的に、開発支援装置300は、ユーザ操作に応じて、設定された配置先にロボット制御部70を配置する(ステップS114)。より具体的には、開発支援装置300は、ロボット制御部70を実現するためのプログラムモジュールを配置先に転送してもよいし、ロボット制御部70が有効化されるように設定を配置先に送信してもよい。制御装置100およびロボットコントローラ250のいずれにおいてもロボット制御部70を実現できる場合には、開発支援装置300は、決定した配置先に設定情報を送信することで、対象の機能モジュールを有効化する。
以上のような処理によって、ロボット制御部70の各々が設定されたデバイス(計算リソース)に配置される。
(e2:計算リソース依存)
上述の説明においては、1または複数のロボット制御部70の各々をデバイス(計算リソース)に配置する処理を説明した。ロボット制御部70に加えて、解釈部50および統合指示部60についても配置すべきデバイス(計算リソース)を任意に設定できるようにしてもよい。
このような設定の例として、各コントローラで利用可能なリソースに基づいて、解釈部50、統合指示部60、および、ロボット制御部70の配置先を決定する処理について説明する。すなわち、利用可能な計算リソースを考慮して、各機能モジュールの配置先を決定してもよい。
図11は、本実施の形態に係るロボット制御システム1が提供する機能モジュール配置に係るユーザインターフェイス画面の別の一例を示す模式図である。図11に示すユーザインターフェイス画面360は、ロボット制御システム1において利用可能なデバイスを示す装置カラム361と、機能モジュールの実行に利用可能な計算リソースを示す計算リソースカラム362と、各計算リソースに配置可能な機能モジュールを示す機能モジュールカラム363と、機能モジュールの配置先として決定された計算リソースを示す配置先カラム364とを含む。
装置カラム361には、ロボット制御システム1において利用可能なデバイスが提示される。図11に示す例では、制御装置100およびロボット200に含まれるロボットコントローラ250に加えて、共有サーバが示されている。例えば、上位ネットワーク10を介して、制御装置100と通信可能に接続されたコンピュータであり、機能モジュールを実現するための実行環境を有している。
計算リソースカラム362には、デバイスで利用可能な計算リソースが提示されている。1つのデバイスが複数の機能モジュールを実行することができる場合もあるため、1種類の機能モジュールを実行する計算リソースを「スロット(Slot)」と称する。図11に示す例では、1つの共有サーバは、3つのスロットを提供しており、制御装置100は、2つのスロットを提供している。
機能モジュールカラム363には、各スロットに配置可能な機能モジュールが提示されている。図11に示す例では、共有サーバが提供するスロットでは、解釈部50が実行可能であり、制御装置100が提供するスロット1では、解釈部50および統合指示部60が実行可能であり、制御装置100が提供するスロット2では、3つのロボット制御部70が実行可能である。また、ロボット200のロボットコントローラ250では、ロボット制御部70が実行可能である。
このように、開発支援装置300のユーザインターフェイスモジュール344は、ロボット制御システム1に含まれる各コントローラで利用可能な計算リソースに基づいて、コントローラ毎に、解釈部50、統合指示部60およびロボット制御部70のうち配置可能な機能モジュールを提示する。
配置先カラム364には、各機能モジュールをいずれの計算リソース(スロット)で実行させるかを示す選択が設定される。図11に示す例では、共有サーバのスロット1において解釈部50が実行され、制御装置100のスロット1において統合指示部60が実行され、制御装置100のスロット2において2つのロボット制御部70が実行され、ロボットコントローラ3のスロット1において1つのロボット制御部70が実行されるように設定されている。
配置先カラム364における設定は、機能モジュールカラム363に表示される機能モジュールのうちから、ユーザが任意に選択してもよいし、予め定められた基準などに沿って、自動的に選択されてもよい。
このように、開発支援装置300のユーザインターフェイスモジュール344は、各機能モジュールを配置すべきコントローラの指定を受け付け、開発支援装置300の構成決定モジュール342は、コントローラの指定に従って、機能モジュールの配置先を決定する。
上述したように、開発支援装置300は、ロボット制御システム1において利用可能な計算リソースを考慮して、各機能モジュールをいずれのデバイス(計算リソース)に配置するかを最適化する。すなわち、開発支援装置300は、各コントローラで利用可能なリソースに基づいて、解釈部50および統合指示部60を、制御装置100および共有サーバのうちいずれのコントローラに配置するのかを決定するとともに、ロボット制御部70を、1または複数の制御装置100ならびに1または複数のロボットコントローラ250のうちいずれのコントローラに配置するのかを決定する。
図12は、本実施の形態に係るロボット制御システム1における機能モジュールの配置を実現するための別の処理手順を示すフローチャートである。図12に示す各ステップは、典型的には、開発支援装置300のプロセッサ302が開発支援プログラム314を実行することで実現されてもよい。
図12を参照して、開発支援装置300は、ユーザ操作に応じて、制御装置100と通信可能なデバイスの情報などを取得し(ステップS200)、取得したデバイスの情報に基づいて、各デバイスで利用可能な計算リソースを特定する(ステップS202)。さらに、開発支援装置300は、特定した計算リソース毎に実行可能な機能モジュールを決定する(ステップS204)。そして、開発支援装置300は、取得した情報に基づいて、ユーザインターフェイス画面360を表示する(ステップS206)。
続いて、開発支援装置300は、ユーザ操作に応じて、各機能モジュールを実行する計算リソースを決定する(ステップS208)。すなわち、開発支援装置300は、各コントローラで利用可能なリソースに基づいて、解釈部50、統合指示部60およびロボット制御部70を配置するコントローラを決定する。
開発支援装置300は、決定された各機能モジュールの配置先に従って、各機能モジュールを決定された配置先にそれぞれ配置する(ステップS210)。より具体的には、開発支援装置300は、各機能モジュールを実現するためのプログラムモジュールを配置先に転送してもよいし、各機能モジュールが有効化されるように設定を配置先に送信してもよい。いずれのコントローラにおいても機能モジュールを実現できる場合には、開発支援装置300は、決定した配置先に設定情報を送信することで、対象の機能モジュールを有効化する。
以上のような処理によって、各機能モジュールが指定された配置先に配置される。
(e3:アプリケーションおよび計算リソース依存)
説明の便宜上、アプリケーション依存の処理および計算リソース依存の処理をそれぞれ別々に説明したが、2つの処理を組み合わせてもよい。この場合には、例えば、いずれの処理おいても許容される配置先を配置先の候補としてユーザへ提示するようにしてもよい。
<F.変形例>
上述の説明においては、制御装置100、ロボット200(ロボットコントローラ250)、共有サーバなどのローカルな計算リソースを用いる例を説明したが、さらに、クラウド上の計算リソースを用いるようにしてもよい。クラウド上の計算リソース自体の制限は無視できるが、大量のデータを送受信する場合には、通信遅延などが制約となり得るので、要求される動作の精度や速度などに応じて、クラウド上の計算リソースを用いるか否かが決定される。
<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
1または複数のロボット(200)を制御するロボット制御システム(1)であって、
開発支援装置(300)と、
1または複数の第1のコントローラ(100)と、
ロボットを駆動する1または複数の第2のコントローラ(250)とを備え、
前記開発支援装置は、
制御プログラムを逐次解釈する第1のモジュール(50)と、前記第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュール(60)と、前記中間表現に従ってロボットに対する指令値を生成する第3のモジュール(70)とのうち、前記第3のモジュールを、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、前記1または複数の第1のコントローラならびに前記1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定する構成決定部(342)と、
決定した配置先に各モジュールが配置されるように、対象のコントローラを構成する構成反映部(340)とを備える、ロボット制御システム。
[構成2]
前記第3のモジュールは、ロボット毎に用意される、構成1に記載のロボット制御システム。
[構成3]
前記構成決定部は、同期すべき複数のロボットの指定に従って、当該同期すべき複数のロボットにそれぞれ対応付けられる複数の前記第3のモジュールを同一の第1のコントローラに配置する、構成2に記載のロボット制御システム。
[構成4]
前記構成決定部は、前記第1のモジュールおよび前記第2のモジュールの各々を、前記1または複数の第1のコントローラのうちいずれのコントローラに配置するのかをさらに決定する、構成1~3のいずれか1項に記載のロボット制御システム。
[構成5]
前記開発支援装置は、前記ロボット制御システムに含まれる各コントローラで利用可能なリソースに基づいて、コントローラ毎に、前記第1のモジュール、前記第2のモジュールおよび前記第3のモジュールのうち配置可能なモジュールを提示するユーザインターフェイス部(346)をさらに備える、構成1~4のいずれか1項に記載のロボット制御システム。
[構成6]
前記ユーザインターフェイス部は、各モジュールを配置すべきコントローラの指定を受け付け、
前記構成決定部は、前記コントローラの指定に従って、モジュールの配置先を決定する、構成5に記載のロボット制御システム。
[構成7]
前記構成反映部は、前記決定した配置先に設定情報を送信することで、対象のモジュールを有効化する、構成1~6のいずれか1項に記載のロボット制御システム。
[構成8]
1または複数のロボットを制御する制御システムを構成する方法であって、前記制御システムは、1または複数の第1のコントローラ(100)と、ロボットを駆動する1または複数の第2のコントローラ(250)とを備え、前記方法は、
制御プログラムを逐次解釈する第1のモジュール(50)と、前記第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュール(60)と、前記中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、前記第3のモジュール(70)を、前記1または複数の第1のコントローラならびに前記1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定するステップ(S108~S112;S208~S210)を備える、制御システムを構成する方法。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 ロボット制御システム、10 上位ネットワーク、20 フィールドネットワーク、30 制御プログラム、50 解釈部、60 統合指示部、70 ロボット制御部、100 制御装置、102,222,302 プロセッサ、104,224,304 メインメモリ、106 上位ネットワークコントローラ、108,210 フィールドネットワークコントローラ、110,226,310 ストレージ、112,228 システムプログラム、120,320 USBコントローラ、122 メモリカードインターフェイス、124 メモリカード、130 プロセッサバス、200 ロボット、220 制御処理回路、230 インターフェイス回路、250 ロボットコントローラ、260 サーボドライバ、262 モータ、300 開発支援装置、306 入力部、308 表示部、312 OS、314 開発支援プログラム、322 ネットワークコントローラ、324 光学ドライブ、326 記録媒体、330 バス、340 構成反映モジュール、342 構成決定モジュール、344 ユーザインターフェイスモジュール、350,360 ユーザインターフェイス画面、351 ロボット番号カラム、352 アプリケーション種別カラム、353 同期カラム、354,355 配置位置カラム、361 装置カラム、362 計算リソースカラム、363 機能モジュールカラム、364 配置先カラム、400 表示装置。

Claims (8)

  1. 1または複数のロボットを制御するロボット制御システムであって、
    開発支援装置と、
    1または複数の第1のコントローラと、
    ロボットを駆動する1または複数の第2のコントローラとを備え、
    前記開発支援装置は、
    制御プログラムを逐次解釈する第1のモジュールと、前記第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュールと、前記中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、前記第3のモジュールを、設定されたアプリケーション、および、各コントローラで利用可能なリソースのうち少なくとも一方に基づいて、前記1または複数の第1のコントローラならびに前記1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定する構成決定部と、
    決定した配置先に各モジュールが配置されるように、対象のコントローラを構成する構成反映部とを備える、ロボット制御システム。
  2. 前記第3のモジュールは、ロボット毎に用意される、請求項1に記載のロボット制御システム。
  3. 前記構成決定部は、同期すべき複数のロボットの指定に従って、当該同期すべき複数のロボットにそれぞれ対応付けられる複数の前記第3のモジュールを同一の第1のコントローラに配置する、請求項2に記載のロボット制御システム。
  4. 前記構成決定部は、前記第1のモジュールおよび前記第2のモジュールの各々を、前記1または複数の第1のコントローラのうちいずれのコントローラに配置するのかをさらに決定する、請求項1~3のいずれか1項に記載のロボット制御システム。
  5. 前記開発支援装置は、前記ロボット制御システムに含まれる各コントローラで利用可能なリソースに基づいて、コントローラ毎に、前記第1のモジュール、前記第2のモジュールおよび前記第3のモジュールのうち配置可能なモジュールを提示するユーザインターフェイス部をさらに備える、請求項1~4のいずれか1項に記載のロボット制御システム。
  6. 前記ユーザインターフェイス部は、各モジュールを配置すべきコントローラの指定を受け付け、
    前記構成決定部は、前記コントローラの指定に従って、モジュールの配置先を決定する、請求項5に記載のロボット制御システム。
  7. 前記構成反映部は、前記決定した配置先に設定情報を送信することで、対象のモジュールを有効化する、請求項1~6のいずれか1項に記載のロボット制御システム。
  8. 1または複数のロボットを制御する制御システムを構成する方法であって、前記制御システムは、1または複数の第1のコントローラと、ロボットを駆動する1または複数の第2のコントローラとを備え、前記方法は、
    制御プログラムを逐次解釈する第1のモジュールと、前記第1のモジュールによる解釈結果に基づいて中間表現を生成する第2のモジュールと、前記中間表現に従ってロボットに対する指令値を生成する第3のモジュールとのうち、前記第3のモジュールを、前記1または複数の第1のコントローラならびに前記1または複数の第2のコントローラのうちいずれのコントローラに配置するのかを決定するステップを備える、制御システムを構成する方法。
JP2022013210A 2022-01-31 2022-01-31 ロボット制御システムおよびロボット制御システムを構成する方法 Pending JP2023111378A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022013210A JP2023111378A (ja) 2022-01-31 2022-01-31 ロボット制御システムおよびロボット制御システムを構成する方法
PCT/JP2022/047967 WO2023145362A1 (ja) 2022-01-31 2022-12-26 ロボット制御システムおよびロボット制御システムを構成する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022013210A JP2023111378A (ja) 2022-01-31 2022-01-31 ロボット制御システムおよびロボット制御システムを構成する方法

Publications (1)

Publication Number Publication Date
JP2023111378A true JP2023111378A (ja) 2023-08-10

Family

ID=87471131

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022013210A Pending JP2023111378A (ja) 2022-01-31 2022-01-31 ロボット制御システムおよびロボット制御システムを構成する方法

Country Status (2)

Country Link
JP (1) JP2023111378A (ja)
WO (1) WO2023145362A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6903275B2 (ja) * 2017-09-14 2021-07-14 オムロン株式会社 制御装置および制御方法
JP7067273B2 (ja) * 2018-05-29 2022-05-16 オムロン株式会社 サポート装置、制御システム、および開発支援プログラム
JP6984565B2 (ja) * 2018-08-23 2021-12-22 オムロン株式会社 情報処理装置およびプログラム

Also Published As

Publication number Publication date
WO2023145362A1 (ja) 2023-08-03

Similar Documents

Publication Publication Date Title
EP3643455B1 (en) Method and system for programming a cobot for a plurality of industrial cells
JP5553910B2 (ja) モーションコントローラ
EP2923805A2 (en) Object manipulation driven robot offline programming for multiple robot system
US11478930B2 (en) Simulation assisted planning of motions to lift heavy objects
JP7382298B2 (ja) 駐車処理のための方法、システム、装置及び車両コントローラ
CN104903800A (zh) 运动控制器和使用这种运动控制器的机器人控制系统
JP2018144145A (ja) 制御システム、設定装置、設定方法、および設定プログラム
JP7259860B2 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
WO2023145362A1 (ja) ロボット制御システムおよびロボット制御システムを構成する方法
JPH07295622A (ja) 制御システム
WO2021021689A1 (en) Optimization for a computer numerical control machining tool
WO2023145361A1 (ja) ロボット制御システムおよびロボット制御システムを構成する方法
JP6821101B1 (ja) 数値制御装置
Moreno et al. Performance evaluation of ROS on the Raspberry Pi platform as OS for small robots
JP2023111376A (ja) ロボット制御システムおよび制御装置
WO2023171574A1 (ja) 制御システム、演算モジュール、ロボットコントローラ、及び制御方法
EP4257303A1 (en) Apparatus and method for providing development environment for functional modules of robot
WO2022269896A1 (ja) 数値制御システム
US20230405811A1 (en) Extensible hardware abstraction layer for real-time robotics control framework
KR102272294B1 (ko) 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법
US20230050387A1 (en) Method and system for imposing constraints in a skill-based autonomous system
WO2022162958A1 (ja) 制御装置、プログラム実行方法およびプログラム
US20230373098A1 (en) Method and System for Robotic Programming
WO2006051902A1 (ja) 演算処理システム、演算処理方法、ユーザプログラムシステム、ライブラリプログラムシステム、プログラム、および、プログラムを記録した記録媒体
Piškur et al. Use of bimanual haptic teleoperation system for optimized task performance with adaptive haptic tunnel