JP7844882B2 - 制御システム及びプログラム - Google Patents

制御システム及びプログラム

Info

Publication number
JP7844882B2
JP7844882B2 JP2022004708A JP2022004708A JP7844882B2 JP 7844882 B2 JP7844882 B2 JP 7844882B2 JP 2022004708 A JP2022004708 A JP 2022004708A JP 2022004708 A JP2022004708 A JP 2022004708A JP 7844882 B2 JP7844882 B2 JP 7844882B2
Authority
JP
Japan
Prior art keywords
program
user program
robot
execution
user
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.)
Active
Application number
JP2022004708A
Other languages
English (en)
Other versions
JP2023103908A (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.)
Omron Corp
Original Assignee
Omron Corp
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 filed Critical Omron Corp
Priority to JP2022004708A priority Critical patent/JP7844882B2/ja
Priority to CN202280086169.6A priority patent/CN118647491A/zh
Priority to EP22920580.2A priority patent/EP4464466A4/en
Priority to PCT/JP2022/046971 priority patent/WO2023136062A1/ja
Priority to US18/726,092 priority patent/US20250100144A1/en
Publication of JP2023103908A publication Critical patent/JP2023103908A/ja
Application granted granted Critical
Publication of JP7844882B2 publication Critical patent/JP7844882B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1674Program controls characterised by safety, monitoring, diagnostic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1679Program controls characterised by the tasks executed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the program is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program 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
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33309Error recovery, automated error recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Description

開示の技術は、制御システム及びプログラムに関する。
生産現場のFA(Factory Automation)の分野においては、自動化を担うロボットを制御するための種々の技術が開発されている。ロボット制御には、何らかの要因により緊急停止した場合に、停止から再開までの動作を制御するための仕組みがある。
例えば、ロボットが緊急停止した場合の運転再開時間を短縮するためのロボット制御装置に関する技術がある(特許文献1参照)。この技術では、後戻りの動作を指令する信号によって、ロボットに1ステップ刻みで後退する動作をさせ、ロボットの運転を再開させることをしている。
また、作業対象部品などの位置ずれに起因するいわゆる「チョコ停」の未然防止を可能とするロボット制御方法に関する技術がある(特許文献2参照)。この技術では、検出された作業対象部品それぞれの正常位置に対する位置誤差が許容範囲内か否かを判定している。
特開平9-091018号公報 特開2011-110629号公報 特開2019-061466号公報
ここで、従来技術に挙げたようなロボット制御では、ロボットの停止及び再開に係る制御は、当該ロボットの動作を制御するためのプログラムに定められていた。
しかしながら、昨今の生産現場のFAにおいては、画像センサやグリッパといった、それ自体が制御の対象となる複数のパーツを組み合わせたロボットである場合や、多数のロボットが連携しながら作業を行う場合があり、高度化している。このような高度化したFAにおいては、上位の統合コントローラによって統合した制御を行い、個々のロボットの制御はロボットコントローラで行うことが想定される。統合コントローラを用いた制御システムにおいて、システムプログラムと、ユーザプログラムという異なるプログラムが規定される。
例えば、単一の制御装置上で実行形式の異なる複数種類のプログラムを効率的に動作できる構成を提供する制御装置に関する技術がある(特許文献3参照)。特許文献3においては、システムプログラムは、基本的な機能を実現するためのプログラムである。特許文献3においては、ユーザプログラムは、ユーザに固有の制御用途に応じて用意されたプログラムの総称である。ユーザプログラムには、例えば、IECプログラムのような実行毎に全体がスキャンされ、実行毎に制御指令を出力できるプログラムも包含する。
特許文献1及び特許文献2のような従来技術では、制御システムにおいてシステムプログラムとユーザプログラムとを使い分ける想定はなく、あくまでユーザプログラムとしてのロボット制御が想定されていた。また、従来のFAでは、作業用のロボットというのは一連の同じ動作を繰り返すものであり、したがってトルクオーバーを代表的な原因とする緊急停止が発生したということは正常動作時には生じないはずの危険な状況が生じたことを意味し、ヒト(ユーザ)による安全確認と復帰動作への介入が必要、という前提であった。
しかし、システムプログラムとユーザプログラムとを用いる制御システムにおいて、従来技術のような停止及び再開の制御に関する技術を適用することはできない。システムプログラムによってロボットを停止させる場合、プログラム相互の処理の整合等を考慮して、ユーザプログラムの実行が停止させられることになるため、ユーザプログラムに停止及び再開のための動作を規定することはできないからである。また、従来のように、停止後の動作の再開のための例外処理にユーザを関与させる設計にしてしまうと、停止のたびにユーザの関与が発生し、ユーザにとって煩雑である。また、特許文献3におけるシステムプログラムの制御態様は優先度変更に係る処理の実行手段に留まっており、他の制御については規定されていない。
本開示は、上記の点に鑑みてなされたものであり、保護停止及び再開をコントローラの提供者によって提供されるプログラムに規定し、実行することができる制御システム及びプログラムを提供することを目的とする。
開示の第1態様は、制御システムであって、ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段と、前記ユーザプログラムを実行するユーザプログラム実行手段と、前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段と、前記システムプログラムを実行するシステムプログラム実行手段と、を備える。
上記第1態様において、前記ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とするようにしてもよい。
上記第1態様において、前記再開要件は、自己診断の結果として不具合の発生が検出されなかったこと及び保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であることの少なくともいずれかを含むようにしてもよい。
上記第1態様において、前記システムプログラムは、さらに、前記ユーザプログラムの再開後の実行において利用される再開用データを前記ユーザプログラムから利用可能とする処理を規定するようにしてもよい。
上記第1態様において、前記再開用データは、前記ユーザプログラムにおける実行の停止が発生した区域である停止区域を含むようにしてもよい。
上記第1態様において、復帰位置データを取得する復帰位置データ取得手段をさらに備え、前記復帰位置データは、前記ユーザプログラムの複数の停止区域の候補に対応付けられた前記ユーザプログラムにおける複数の復帰位置を含み、前記ユーザプログラムの実行を再開させる処理は、前記復帰位置データにしたがって前記ユーザプログラムの実行を再開させる処理であるようにしてもよい。
開示の第2態様は、プログラムであって、ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段、前記ユーザプログラムを実行するユーザプログラム実行手段、前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段、並びに前記システムプログラムを実行するシステムプログラム実行手段として1又は連携する複数のコンピュータを機能させる。
本発明の制御システム及びプログラムによれば、保護停止及び再開をコントローラの提供者によって提供されるプログラムに規定し、実行することができる。
制御システムの全体構成例を模式的に示す図である。 本実施形態に係る統合コントローラのハードウェア構成例を示すブロック図である。 統合コントローラの機能的な構成を示す図である。 統合コントローラからロボットコントローラに指令を送信してスクリプトを実行する場合のシーケンス制御である。 統合コントローラからロボットに直接指令を送信して制御する場合のシーケンス制御である。 作業板に部品を挿入する作業を実行する制御内容を模式的に示す図である。 部品を挿入する作業を実行する場合の制御フローの一例である。 保護停止の判断に用いられるロボットの取得データの一例である。 保護停止判断の制御フローの一例である。 保護停止後の再開判断に使用されうる情報源の例である。 保護停止後の再開判断の制御フローである。 ユーザプログラムによる復帰の制御フローである。 部品を挿入する作業を実行する場合の制御フローに対する復帰位置及び復帰位置テーブルの例である。 ロボットに付随するケーブルの引っ張りのケースを模式的に示す図である。 外付けツールなどの外部に固定されたケーブルが引っ張られるケースを模式的に示す図である。 ロボットのロボットアームで冷凍庫などの扉を開閉途中に過負荷がかかりアーム側が保護停止するケースを模式的に示す図である。
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
本実施形態では、制御システムにおいて統合コントローラのシステムプログラムと、ユーザプログラムとを用いて、生産現場のロボットを制御する処理を規定する。本実施形態では、ロボットの保護停止事象が発生した場合を想定して、システムプログラム及びユーザプログラムの処理を規定する。本実施形態では、システムプログラムに、ロボットの保護停止事象が発生した場合にユーザプログラムの実行の停止及び再開を行う処理を規定する。「保護停止」及び「保護停止事象」の詳細については後述する。
(制御システムの全体構成例)
図1は制御システムの全体構成例を模式的に示す図である。図1に示すように、制御システム1において、統合コントローラ100は、ツール端末200とはUSB等で接続され、ネットワークNを介して各種装置及び各種コントローラとの通信を行う。ネットワークNは、上流側の情報ネットワークN1と、下流側のフィールドネットワークN2とがある。情報ネットワークN1を介しては、管理端末202、及びサーバ装置210等と接続される。フィールドネットワークN2を介しては、ロボットアプリケーションRAの各種コントローラと接続される。また、その他のI/Oデバイス及び各種センサと接続されてもよい。ロボットアプリケーションRAには、ロボットコントローラ300、画像センサコントローラ302、及びグリッパコントローラ304を含み、これらの各種コントローラによりロボット400の動作の制御を行う。なお、統合コントローラ100が、本開示の技術の「コントローラ」の一例である。
ツール端末200は、統合コントローラ100が制御対象を制御するために必要な準備を支援する装置である。具体的には、ツール端末200は、統合コントローラ100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、統合コントローラ100及び統合コントローラ100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成されたユーザプログラムを統合コントローラ100へ出力する機能、統合コントローラ100上で実行されるユーザプログラムをオンラインで修正・変更する機能、などを提供する。
管理端末202は、生産全体の監視及び管理に用いられる端末であり、統合コントローラ100及びサーバ装置210を管理する端末である。サーバ装置210としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視及び管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を情報ネットワークN1に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。
ロボットコントローラ300は、統合コントローラ100からの制御指令(位置指令または速度指令など)にしたがって、軌跡計算及び各軸の角度計算などを行うとともに、計算結果にしたがって、ロボット400を構成するサーボモータ(図省省略)などを駆動する。また、ロボット400に付随する画像センサ402は画像センサコントローラ302で制御され、グリッパ404はグリッパコントローラ304で制御される。また、ティーチングペンダント310によりロボット400のパラメータの変更、動作の調整等が行われる。
(統合コントローラ100のハードウェア構成例)
次に、本実施形態に係る統合コントローラ100のハードウェア構成例について説明する。図2は、本実施形態に係る統合コントローラ100のハードウェア構成例を示すブロック図である。
図2に示すように、統合コントローラ100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、メインメモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。すなわち、統合コントローラ100は、1または複数のプロセッサ102、及び/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102及び周辺エレメントを制御することで、統合コントローラ100全体としての処理を実現する。メインメモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、メモリ106に展開して実行することで、制御対象に応じた制御、及び、後述するような各種処理を実現する。ストレージ108には、制御対象のロボット400等の製造装置や設備に応じて作成されるユーザプログラム30と、制御システム1の基本的な機能を実現するためのシステムプログラム32と、各種設定をするための設定情報34とが格納される。システムプログラム32は、統合コントローラ100の提供者によって提供されるプログラムである。
上位ネットワークコントローラ110は、情報ネットワークN1を介して、サーバ装置210などとの間のデータのやり取りを制御する。USBコントローラ112は、USB接続を介してツール端末200との間のデータのやり取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ120は、統合コントローラ100に装着されるI/Oユニット122との間のデータのやり取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワークN2を介したロボットアプリケーションRAとの間のデータのやり取りを制御する。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、統合コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
また、図2に示す制御システム1においては、統合コントローラ100、ツール端末200及び管理端末202がそれぞれ別体として構成される例としているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
(統合コントローラ100の機能的構成例)
図3は、統合コントローラ100の機能的な構成を示す図である。統合コントローラ100は、機能的には、プログラム機能部160と、上位ネットワークインターフェイス170と、フィールドネットワークインターフェイス172とを含む。プログラム機能部160は、ユーザプログラム30及びシステムプログラム32に関する実行制御全般の機能を担う手段をまとめた機能部である。プログラム機能部160は、ユーザプログラム取得手段162と、ユーザプログラム実行手段164と、システムプログラム記憶手段166と、システムプログラム実行手段168と、を有する。また、プログラム機能部160は、メモリ(図示省略)に格納されるデータ、及びユーザプログラム実行手段164又はシステムプログラム実行手段168による処理結果などをユーザなどへ出力するためのデータに加工する機能も担う。
上位ネットワークインターフェイス170は、情報ネットワークN1を介して接続されている装置との間のデータのやり取りを仲介する。フィールドネットワークインターフェイス172は、フィールドネットワークN2を介して接続されている各種ロボット400との間のデータのやり取りを仲介する。
ユーザプログラム取得手段162は、ユーザプログラム30を何らかの手段で保持又は入力が可能な各種装置からユーザプログラム30を取得する。ユーザプログラム取得手段162には次のようなものが該当する。第1に、制御システム1がユーザプログラム30をツール端末200から取得する場合には、ツール端末200との間の通信インタフェースのハードウェア及びソフトウェアである。第2に、制御システム1がユーザプログラム30の編集機能を備え、キーボードのような入力デバイスからユーザプログラム30を入力する場合には、入力デバイス及びそれに関連するソフトウェアである。第3に、制御システム1がサーバ装置210等に蓄積されたユーザプログラム30のライブラリから、情報ネットワークN1を介してユーザプログラム30を取得する場合は、ネットワーク通信のためのハードウェア及びユーザプログラム30の取得に関わるソフトウェアである。
システムプログラム記憶手段166は、システムプログラム32を記憶する手段であり、ROM及びメモリ等のプログラムが記憶可能な記憶手段が用いられる。
ユーザプログラム実行手段164は、ユーザプログラム30を実行する手段である。システムプログラム実行手段168は、システムプログラム32を実行する手段である。ユーザプログラム実行手段164及びシステムプログラム実行手段168には次のようなものが該当する。制御システム1に含まれる、汎用プロセッサ、ASICのようなハードウェア及びユーザプログラム実行のためのリソースやタイミングを管理するソフトウェアである。また、ユーザプログラム実行手段164及びシステムプログラム実行手段168の実体は、同一であってもよいし互いに別の実体であってもよい。
システムプログラム32は、制御システム1の基本的な機能を実現するためのプログラムであり、本実施形態では、システムプログラム32の一部において保護停止に係る各種処理が規定される。保護停止に係る各種処理とは、ロボット400における保護停止事象の発生を検知する処理(発生検知処理)、保護停止事象が発生した場合にユーザプログラム30の実行を停止させる処理(実行停止処理)、及びあらかじめ決められたユーザプログラム30の復帰位置からユーザプログラム30の実行を再開させるための処理(再開処理)、である。このようにシステムプログラム32は、保護停止事象が発生した場合にユーザプログラム30の実行を停止させる処理の規定を含む。これにより、保護停止事象が発生した場合にロボット400の動作が停止する。さらに、ロボット400の運動を迅速に停止させるためにロボット400の運動に制動をかける処理、停止したロボット400の位置姿勢を維持する処理などを追加してもよい。
(「保護停止」及び「「保護停止事象」の定義」)
ここで、本実施形態における「保護停止」について説明する。「保護停止」は、ロボット400が周囲の物体と接触したとき、計画外の接触をするおそれがあるとき、又はロボット400の動作に高負荷が生じたときにロボット自身又は周囲の物体を損傷させないことを目的として、ロボット400の動作を停止することをいう。周囲の物体には人体を含む。
ロボット400が周囲の物体と接触したときに動作を停止する判断は、ロボットが接触によって受けた力の大きさについての検知結果に基づいて行うことができる。ロボット400が受けた力の大きさについての検知のために、ロボットの関節を駆動するモータにかかるトルクの値や、ロボット400に備えられた力覚センサの検出値を利用することができる。高負荷が生じたときに動作を停止する判断についても同様である。
ロボット400が周囲の物体と計画外の接触をするおそれがあるときに動作を停止する判断は、ロボットの周囲の状況を監視するカメラなどのセンサによる検知結果に基づいて行うことができる。
「保護停止事象」は、保護停止の原因となる事象である。ロボットが所定以上の大きさの力を受けたことや、ロボットの周囲に計画外の接触をするおそれのある物体が存在することは、保護停止事象に該当する。
(ロボット制御)
制御システム1のロボット制御は、例えば、(A)統合コントローラ100からロボットコントローラ300に指令を送信してスクリプトを実行する場合と、(B)統合コントローラ100からロボット400に直接指令を送信して制御する場合とが想定されるため、図4及び図5を参照してそれぞれ説明する。また、統合コントローラ100で実行される各タスクには、特許文献3に記載されているように、優先度が規定され、制御周期T1毎にトリガされる。第1タスク10ではフィールドとの間で入力値および制御指令を更新する入出力リフレッシュ処理(図4及び図5では「O/I」、以降ではO/I処理と記載する)が実行される。入出力リフレッシュ処理を行うためのプログラムはシステムプログラム32に属する。第1タスク10の次の優先度のタスクが第2タスク18である。第2タスク18では、ユーザの制御目的に応じたプログラムが実行される。具体的には、第2タスク18は、シーケンスプログラムを実行するシーケンス処理12と、第1ロボット制御プログラムを実行する第1ロボット制御プログラム処理14(RP14)と、モーションコントロールプログラムを実行するモーションコントロールプログラム処理16(MC16)とを含む。シーケンスプログラム、第1ロボット制御プログラム、及びモーションコントロールプログラムは、ユーザプログラム30に属する。シーケンス処理12では、1回の制御周期T1においてシーケンスプログラムが先頭から最終まで実行される。シーケンスプログラムは、例えば、搬送装置をはじめとするロボット周辺に存在する装置の制御を担っている。第1ロボット制御プログラムは、ロボットの制御を担っている。第1ロボット制御プログラム処理14を設けずに、シーケンス処理12において実行されるシーケンスプログラムにロボットの制御を担わせるようにしてもよい。モーションコントロールプログラムは、例えば、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、及び角加加速度などの数値を制御指令として演算するためのプログラムである。
図4を参照して(A)の場合のロボット制御について説明する。制御周期T1aにおいて第2タスクの第1ロボット制御プログラム処理14によりスクリプト実行命令(以下、単に命令と記載する場合もある)が生成される。次の制御周期T1bの第1タスクのO/I処理において、生成されたスクリプト実行命令がロボットコントローラ300に送信される。なお、便宜上図示していないが、システムプログラム32として、図示の各プログラムの実行タイミングを制御しているスケジューラ、保護停止事象の発生を監視するプログラムなどがバックグラウンドで実行されている。スクリプト実行命令は、O/I処理の一環としてではなく、第1ロボット制御プログラム処理14の実行直後などの任意のタイミングで送信するようにしてもよい。
ロボットコントローラ300は、制御周期T1毎に制御を実行する。指令を受け付け(20)、受け付けた命令のスクリプトを実行し(22)、実行完了通知を統合コントローラ100に送信する(24)。ロボットコントローラ300の制御周期T1は、統合コントローラ100の制御周期T1と同じ長さで、かつ、同期していることが好ましいが、異なる長さの周期であったり非同期であったりしてもよい。また、ロボットコントローラ300における制御周期を、統合コントローラの制御周期T1より短い(例えば半分の長さの)制御周期T2とし、制御周期T2毎にスクリプトを実行するようにしてもよい。そうすると、より滑らかなロボット制御が行える。この場合のスクリプトは制御周期T2内の時間で実行完了できる規模のものである。この場合も、統合コントローラ100とロボットコントローラ300との間の通信は制御周期T1毎に行われる。
図5を参照して(B)の場合のロボット制御について説明する。図5では、統合コントローラ100が実行するタスクとして、第3タスク26が追加されている。第3タスク26は、第2タスク18よりも優先度が低く、制御周期T1の2倍の長さの周期で実行される。第3タスク26では、第2ロボット制御プログラムが実行される。第2ロボット制御プログラムは、ユーザプログラム30に属する。第2ロボット制御プログラムは、ロボット400の一部、例えばグリッパの制御を担うプログラムである。第2ロボット制御プログラムの内容は、(A)の場合にロボットコントローラ300で実行されるスクリプトに相当する。第3タスク処理26で生成されたロボット400のグリッパに対する指令は、O/I処理の一環としてロボットコントローラ300に送信される。第3タスク処理26で生成された指令は、第3タスク処理の実行が完了していない制御周期T1bにおける符号(1)のO/I処理では送信されず、実行が完了した後の制御周期T1cにおける符号(2)のO/I処理で送信される。また、第2タスク18で実行される第1ロボット制御プログラムにおいて(A)の場合にロボットコントローラ300で実行されるスクリプトに相当する内容を規定し、第1ロボット制御プログラムの実行によってロボット400に対する指令を生成するようにしてもよい。
(A)及び(B)のロボット制御の方式は、何れかだけを用いるようにしてもよいし、制御対象部位に応じて使い分けてもよい。例えばロボットアームの各関節の制御は(A)の方式で制御し、グリッパの開閉の制御に関しては(B)の方式で制御する使い分けが可能である。(A)及び(B)の方式を同一のタスク、例えば第2タスク18の中で使い分けてもよい。
ロボット動作の制御中には保護停止事象が発生する場合がある。保護停止事象が発生した場合の処理はシステムプログラム32に規定する。
(作業例に係る制御)
次に、作業板に部品を挿入する作業例を実行する制御内容とする場合について、制御フローを説明する。制御の方式は、上記(A)のスクリプトの実行指令を生成する方式、(B)のロボットに対する指令を直接生成する方式のいずれでもよい。図6は、作業板に部品を挿入する作業を実行する制御内容を模式的に示す図である。図6に示すように、トレイRaに配置された部品Aを作業板Rbの挿入位置Piの穴に挿入する作業が想定される。挿入は仮挿し及び本挿しの工程に分けられる。
図7は、部品を挿入する作業を実行する場合の制御フローの一例である。
S10では、画像センサ402でトレイRaを撮像し、部品Aの部品位置Paを取得する。ここで、「部品位置」は部品の位置及び姿勢を表す情報の意味である。
S12では、取得した部品位置Paにある部品Aを把持できる位置までグリッパ404を移動し、部品Aをグリッパ404で把持する。
S14では、把持した部品Aを挿入位置Piに移動し、穴に押し込む(仮挿し工程に相当)。仮挿しは、部品Aを挿入開始位置Piに移動した後、部品Aの一部が穴に入っていてグリッパ404を開いても部品Aが落下しない状態となるまで部品Aを穴に押し込む動作である。グリッパ404が部品Aの側面を把持しているのでそのままでは部品Aを深く挿入できないため、仮挿しが必要である。
S16では、グリッパ404を開き、作業板Rbの挿入位置Piに対して後方の本挿しの開始位置(Pr)にグリッパ404を移動させ、グリッパ404を閉じる。
S18では、閉じたグリッパ404で仮挿し状態の部品Aを押し込み(本挿し工程に相当)、所定の深さまで、または、穴の底に到達するまで、押し込む動作により本挿しを完了させる。
S20では、グリッパ404を作業板Rbの挿入位置Piに対して後方の所定の退避場所まで移動し、作業を終了する。なお、S10~S20の制御は一例であり他の制御を行ってもよい。
(保護停止判断)
次に、保護停止判断の例を説明する。以下に説明する保護停止判断の処理は、システムプログラム32によるユーザプログラム30の実行を停止させる処理の一態様である。図8は、保護停止の判断に用いられるロボット400の取得データの一例である。ロボットコントローラ300は、ロボット400の力覚センサから力覚情報を取得し、ロボット400の各軸モータの電流検出器から電流値を取得する。統合コントローラ100は、図4のO/I処理の一環として、力覚情報及び電流値をロボットコントローラ300から取得する。
図9は、保護停止判断の制御フローの一例である。保護停止判断の制御フローは、システムプログラム32において実行される。保護停止判断の制御に必要な情報として、統合コントローラ100の設定情報34には、保護停止に係る力覚情報について定めた閾値、保護停止に係るトルクレベルについて定めた閾値、電流値をトルクに変換するためのトルク定数が記憶されている。
S30では、力覚センサの力覚情報、各軸モータの電流値を取得する。
S32では、取得した力覚情報が、力覚情報について定めた閾値以上であるか否かを判定する。閾値以上である場合はS38(保護停止)へ移行し、閾値以上でない場合はS34へ移行する。
S34では、トルク定数を元に、取得した各軸モータの電流値をトルクに変換する。
S36では、変換したトルクが、トルクレベルについて定めた閾値以上であるか否かを判定する。閾値以上であると判定した場合はS38(保護停止)へ移行し、閾値以上でないと判定した場合は保護停止不要として、処理を終了する。
S38では、ロボット400を保護停止する。保護停止はユーザプログラム30の停止により実行する。ユーザプログラム30の実行が停止されると、それ以降の運動指令が出なくなるのでロボット400が新たな運動指令によって運動することがなくなる。
S40では、保護停止時のデバッグ情報を保存する。
ユーザプログラム30の実行停止をするときには、実行中の運動指令があればその実行をキャンセルすることが好ましい。それにより、例えば実行中の速度指令が有効状態のままになっていてロボット400のモータが駆動され続けることを防止できる。このキャンセル処理は、システムプログラム32に記述してもよいし、ロボット400のモータを駆動する部分が一定周期で指令が来ない場合に自動的に実行中の指令をキャンセルするようにしてもよい。
システムプログラム32には、ロボット400の運動を迅速に停止させるためにロボット400の運動に制動をかける処理、停止したロボット400の位置姿勢を維持する処理などを追加してもよい。
また、図9の保護停止判断の制御フローでは力覚情報及びトルクを元に保護停止する場合について説明したが、この他にも、画像センサ402による周囲の障害物の検出結果やグリッパ情報の過負荷によって判断してもよい。
(再開判断)
次に、保護停止後の再開判断の例について説明する。図10に、保護停止後の再開判断に使用されうる情報源の例を示す。システムプログラム32の「再開判断」には各情報源からの入力として、「画像処理」から検出結果、「把持制御」からグリッパ情報、「ロボット制御」からロボット400の位置、及び力覚情報・トルク情報(電流値)、「ロボット診断」からユーザプログラム30の停止区域、自己診断の結果、デバッグ情報、等が与えられる。以下に説明する再開判断の処理は、システムプログラム32によるあらかじめ決められたユーザプログラム30の復帰位置からユーザプログラム30の実行を再開させるための処理の一態様である。システムプログラム32では、ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とする。
また、システムプログラム32には、ユーザプログラム30の再開後の実行において利用される再開用データをユーザプログラム30から利用可能とする処理を規定する。再開用データにはユーザプログラム30における実行の停止が発生した区域である停止区域を含むようにしてもよい。
図11は、保護停止後の再開判断の制御フローである。
S50では、グリッパ診断情報、画像センサ診断情報(検出結果)、ロボット診断情報の各種診断情報を取得する。
S52では、取得した各種診断情報を用いて、故障しているか否かを判定する。S52の判定が、本開示の再開要件における「自己診断の結果として不具合の発生が検出されなかったこと」の一例である。故障していると判定した場合はS64へ移行し、故障していないと判定した場合はS54へ移行する。故障しているか否かは、各種診断情報の何れかで故障との診断結果が含まれているかにより判定すればよい。また、通信エラーが発生したがすぐに正常通信を再開できた場合のように、ロボット400の動作続行に支障のない一時的な不具合は「故障していない」と扱う。
S54では、停止時のデバッグ情報を取得する。なお、デバッグ情報には、停止時に実行されていたユーザプログラム30により計画された軌道を含む。
S56では、デバッグ情報において保護停止からの復帰に支障となるような、故障以外の異常事象が起きているか否かを判定する。異常事象の例としては、操作対象物が破損していることを検出したという事象がある。異常事象が起きていると判定した場合はS64へ移行し、異常事象が起きていないと判定した場合はS58へ移行する。
S58では、ロボット400の現在の位置姿勢を取得する。
S60では、現在の位置姿勢と計画された軌道とを比較し、現在の位置姿勢がユーザプログラム30により計画された軌道から逸脱しているか否かを判定する。逸脱していないと判定した場合はS62へ移行し、逸脱していると判定した場合はS64へ移行する。なお、逸脱していないかは、計画された軌道に対して、現在の位置姿勢が基準値以上ずれていないかにより判断すればよい。計画された軌道は、計画された軌道上におけるロボット400の位置姿勢である。好ましくは、実行していた最後の指令位置と検出位置とを比較して判断する。
上記S60の判定が、本開示の再開要件における「保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であること」の一例である。
S62では、復帰可否を「True」(復帰可)と判断し、S66へ移行する。
S64では、復帰可否を「False」(復帰不可)と判断し、処理を終了する。
復帰可の判断を得るための再開要件として、保護停止が発生した原因が解消されていることを追加してもよい。例えば、力覚情報、トルク、又はグリッパの高負荷により保護停止が発生した場合に、高負荷が解消された状態が一定時間以上継続していることを再開要件として追加してもよい。また、検出結果においてロボット400が周囲の物体と計画外の接触をするおそれがあるという判断に基づいて保護停止が発生した場合に、検出されていた物体が検出されなくなったことにより計画外の接触をするおそれがなくなったという判断をすることを再開要件として追加してもよい。
S66では、再開用データとして、ユーザプログラム30の停止区域をユーザプログラム30に通知し、ユーザプログラム30の復帰位置からユーザプログラム30の実行を開始させる。
停止区域とは、保護停止が発生したときに実行していたユーザプログラム30の命令のステップを区域内に含む、ユーザプログラム30における区域である。停止区域は、停止位置として把握するのにふさわしいロボットの1つ又は一続きの要素動作に対応する区域として設定される。例えば、実施形態の仮挿し動作に対応するユーザプログラム30の区域、本挿し動作に対応するユーザプログラム30の区域は、その区域内でユーザプログラム30の実行が停止されれば、その区域を、ユーザプログラム30における実行が停止された位置に相当するとみなすことができる。通知は、例えばユーザプログラム30からもアクセスできるメモリ領域に停止区域を特定するデータを格納することによって行う。
再開用データには、停止区域のほか、ユーザプログラム30の実行が停止された時刻、ユーザプログラム30の実行が停止されたときのロボット400の位置姿勢、ユーザプログラム30の実行が停止されたときにロボット400が受けていたトルクや力覚センサの検出値、ユーザプログラム30の実行が停止されたとき又はその後に撮像された周囲の物体を含む画像データの検出結果も含めてよい。
(復帰後のユーザプログラム30による制御フロー)
図12は、復帰後のユーザプログラム30による制御フローである。図13は、部品を挿入する作業を実行する場合の制御フローに対する復帰位置、及び復帰位置テーブルの例である。
S70では、停止区域を取得する。S72では、停止区域が仮挿し中(Pg1)に対応するか、本挿し中(Pg2)に対応するかを判定して処理を分岐する。S74(S74A,S74B)では、部品状態が落下か、非落下かを判定して処理を分岐する。落下の場合はRp1(S76)へ移行する。S74Aでは非落下の場合はRp2(S80)へ移行する。S74Bでは非落下の場合は図13のRp3へ移行することで復帰する。
S76では、落下している部品Aの位置を画像センサ402で検出する。S78では、グリッパ404で部品Aを把持し、仕分け箱に入れるように制御し、図13のAに移行することで復帰する。
S80では、部品Aを穴から引き抜き、図13のBへ移行することで復帰する。
ユーザプログラム30の復帰位置は、例えば、復帰用のアドレスを格納した変数としてシステムプログラム32に与えられる。
また、復帰後のユーザプログラム30による制御フローは上記のフローに限定されない。例えば、仮挿し動作の途中で部品Aが穴とかみ合ってそれ以上奥には動かなくなることがあり、このときに部品Aをさらに押し込むと保護停止にいたる場合がある。この場合に、いったん部品Aを穴から引き抜いた後に仮挿し動作をやり直してもよい。引き抜いた後に直ちに仮挿し動作をやり直すのではなく、部品Aを引き抜いた後にいったん仕分け箱に戻し、戻した部品Aを把持し直して仮挿し動作をやり直すようにしてもよい。
ロボットアームとグリッパとの接続部分にコンプライアンスモジュールを挿入したりグリッパの把持面に弾性部材層を設けたりすることにより部品Aや穴の縁の面取りに案内されて部品Aが動けるようにしておけば、部品Aと穴との間にわずかな位置ずれがあっても仮挿しが1回目から成功しやすくなり、仮挿しをやり直した場合の成功率も高くなる。このように仮挿し動作をやり直すだけで成功する場合もある。
また、本挿し動作が途中で保護停止になったときは、部品Aを押していたグリッパの指先を部品Aからいったん離し、本挿し動作をやり直す。本挿し動作のやり直しを所定回数試みても保護停止を繰り返す場合は、部品Aを把持して穴から引き抜き、仕分け箱に戻して把持し直し、仮挿し動作からやり直すようにしてもよい。
上記の説明では、ユーザプログラム30の復帰位置が単一であり、復帰後の動作フローをユーザプログラム30が担うようにしたが、用意された複数の復帰位置の中からシステムプログラム32が復帰位置を選択することにより復帰後のユーザプログラム30が担う制御動作を変えるようにしてもよい。復帰位置の選択は、例えば図13の復帰位置テーブルにしたがって行われる。復帰位置テーブルには、停止区域の候補である停止区域Pg1、停止区域Pg2のそれぞれについて、停止後部品状態に応じた復帰位置が示されている。復帰位置テーブルは、ユーザプログラム30とともに統合コントローラ100に与えられ、システムプログラム32からアクセス可能とされる。復帰位置テーブルには、停止後部品状態(部品非落下か、部品落下か)の識別方法の情報が付随する。停止後部品状態の識別方法は、例えば画像センサ402の画像を処理する画像処理部に対して問合せを行い、部品非落下か部品落下かの判定結果を得ることである。また、ユーザプログラム30によって規定される動作の内容によっては、停止後部品状態のような場合分けがなく、停止区域に応じて復帰位置が決まる復帰位置テーブルでよい場合もある。復帰位置テーブルは、本開示の復帰位置データの一例である。
また、図3の統合コントローラ100の機能的な構成において、復帰位置データを取得する復帰位置データ取得手段をさらに備え、上記の復帰位置テーブルの情報を取得するようにしてもよい。
また、ロボット400が周囲の物体と計画外の接触をするおそれがあるという判断(検出結果)に基づいて動作を停止した場合には、ユーザプログラム30の停止区域の冒頭の位置を復帰位置としてもよい。また、当該判断に基づいて動作を停止した場合には、ユーザプログラム30の停止したステップから、ステップを遡ることなくそのまま続きのステップを実行するように決められていてもよい。
(保護停止事象に関するケース)
保護停止事象に関するケースを説明する。例えば、ケーブルの引っ張りによって一時的に過負荷が発生した時、操作において接触がなくても、保護停止事象が発生する場合がある。また、部品のばらつきにより、同じパラメータ動作でも対象物体が異なるだけで成功したり、失敗したりするケースで保護停止事象が生じることがある。この場合、基本的に部品の組み合わせを変えれば成功することが想定される。
ロボット400にケーブルが付随するケースがある。図14は、ロボット400に付随するケーブルの引っ張りのケースを模式的に示す図である。図14の(A)では、ロボット400の動作によって、ケーブルの引っ張りが発生しており、ロボット400の動作又はロボットハンドの移動とは逆方向又は逆方向に準ずる方向の力が検出され保護停止が発生する。この方向の力は手首の力覚センサなどで検出可能である。ケーブルの引っ張りはロボットアームが伸びるときに発生する。この引っ張りはロボット400自体のモデルがあれば計算可能である。この場合、復帰方法としては図14の(B)のように、ロボットアームを曲げる方向にロボットハンドを移動させ、ケーブルを緩ませてから動作を再開することが想定される。
また、ケーブルの引っ張りには、外付けツールなどの外部に固定されたケーブルが引っ張られるケースも想定される。図15に示すように、ロボット400がツールTaを把持しており、ツールTaのケーブルが固定されているコントローラTbから離れる方向にロボット400のハンドを移動している場合に、手首力覚にて移動方向とは逆に力の過負荷が検出されれば、ツールTaによるケーブルが過負荷になったと判断される。復帰方法としては、(1)ロボット400が双腕であれば、停止していない方の腕にツールTaを持ち替える。(2)単腕であれば、そのまま再起動して、ケーブルを緩める方向にロボット400のハンドを移動する。緩める方向は、もともとの移動方向とは逆方向、コントローラTbに近づく方向である。移動後、累積のケーブルテンションを初期化し作業を再開する。ケーブルにテンションがかかった原因が図示しない他の物品にケーブルが絡んだためであれば、当該ケーブルの絡みを解消するようにロボット400を動作させてから作業を再開する。また、一度ツールTaを解放し、もう一度拾いなおしてから作業を再開することも想定される。
また、図16に示すように、ロボット400のロボットアームで冷凍庫などの扉を開ける作業の途中に扉がわずかに開いた状態で過負荷がかかりロボット400が保護停止するケースが想定される。この場合、まずロボット400を積載したAGV(Automatic Guided Vehicle:無人搬送車)を扉が閉まる方向に移動させることによって扉を閉め、その後、アームの負荷が軽減するようにAGVの位置決めをし直してから扉を開ける作業を再開する。LA(Laboratory Automation)では、扉を開けるという作業を遂行することよりも、冷凍庫内の温度変化を最小限に抑えるという観点、すなわち、この場合は冷凍庫の扉を一刻も早く閉める動作を重視する観点がある。そのため、AGV側だけを動かしまずは扉を閉める復帰の制御が想定される。
以上、本実施形態の制御システム1によれば、保護停止及び再開を統合コントローラ100の提供者によって提供されるシステムプログラム32に規定し、実行することができる。
上記実施形態の制御システム1の態様について補足する。制御システム1は実施形態において以下のような形態で実施可能である。制御システム1は、各手段を備えた装置、又は全体として各手段を備える複数の連携する装置として以下(A1)及び(A2)の少なくとも一方のように実施できる。
(A1)例えば、実施形態において、統合コントローラ100がロボット400への指令を決定する場合は、ロボット400への指令を決定するための、統合コントローラ100で実行されるプログラムがユーザプログラム30に該当する。
(A2)実施形態において、統合コントローラ100がロボットコントローラ300に対して、ロボットコントローラ300が実行するスクリプトを指示する場合がある。この場合は、少なくともスクリプトの実行指示を決定するための統合コントローラ100で実行されるプログラムがユーザプログラム30に該当する。ロボットコントローラ300で実行されるスクリプトも、ユーザが要求する作業であって一連の動作によって遂行される特定の作業の全部又は一部をロボットに実行させるために作成されている場合はユーザプログラム30に該当する。なお、スクリプトが、例えばグリッパ404を「開く又は閉じる」のような汎用的な要素動作だけのために作成されている場合はユーザプログラム30に該当しない。
システムプログラム32は統合コントローラ100においてのみ記憶され、かつ、実行される態様に限定されない。実施形態の上記(A1)及び(A2)いずれの場合も、システムプログラム32は、統合コントローラ100、ロボットコントローラ300のいずれかに集約して、又は両方に分担して、記憶及び実行されてよい。実施形態の上記(A1)及び(A2)いずれの場合も、ロボットコントローラ300は、統合コントローラ100で決定された指令又はロボットコントローラ300でスクリプトを実行して生成された指令を実現する動作が実行されるようにロボット400の各モータを駆動する。また、制御システム1は、統合コントローラ100の機能及びロボットコントローラ300の機能を兼ね備えた装置であってもよい。
また、制御システム1は、広域ネットワークを介してロボット400と連携するシステムとして実施できる。
例えば、ロボット400の近傍には実施形態のロボットコントローラ300のうちロボット400の各モータを駆動する機能だけを配置し、これをインターネットに接続したうえで、各手段(ユーザプログラム取得手段162、ユーザプログラム実行手段164、システムプログラム記憶手段166、システムプログラム実行手段168)はインターネットに接続した1又は複数のコンピュータに配置してもよい。
なお、上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本開示の技術は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
また、上実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の認識の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
1 制御システム
30 ユーザプログラム
32 システムプログラム
100 統合コントローラ
160 プログラム機能部
162 ユーザプログラム取得手段
164 ユーザプログラム実行手段
166 システムプログラム記憶手段
168 システムプログラム実行手段

Claims (6)

  1. ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段と、
    前記ユーザプログラムを実行するユーザプログラム実行手段と、
    前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段と、
    前記システムプログラムを実行するシステムプログラム実行手段と
    復帰位置データを取得する復帰位置データ取得手段を備え、
    前記復帰位置データは、前記ユーザプログラムの複数の停止区域の候補に対応付けられた前記ユーザプログラムにおける複数の復帰位置を含み、
    前記ユーザプログラムの実行を再開させる処理は、前記復帰位置データにしたがって前記ユーザプログラムの実行を再開させる処理である、制御システム。
  2. 前記ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とする、請求項1に記載の制御システム。
  3. 前記再開要件は、自己診断の結果として不具合の発生が検出されなかったこと及び保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であることの少なくともいずれかを含む、請求項2に記載の制御システム。
  4. 前記システムプログラムは、さらに、前記ユーザプログラムの再開後の実行において利用される再開用データを前記ユーザプログラムから利用可能とする処理を規定する、請求項1~請求項3の何れか1項に記載の制御システム。
  5. 前記再開用データは、前記ユーザプログラムにおける実行の停止が発生した区域である停止区域を含む、請求項4に記載の制御システム。
  6. ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段、
    前記ユーザプログラムを実行するユーザプログラム実行手段、
    前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段
    前記システムプログラムを実行するシステムプログラム実行手段、並びに
    復帰位置データを取得する復帰位置データ取得手段、として1又は連携する複数のコンピュータを機能させるためのプログラムであって、
    前記復帰位置データは、前記ユーザプログラムの複数の停止区域の候補に対応付けられた前記ユーザプログラムにおける複数の復帰位置を含み、
    前記ユーザプログラムの実行を再開させる処理は、前記復帰位置データにしたがって前記ユーザプログラムの実行を再開させる処理である、プログラム。
JP2022004708A 2022-01-14 2022-01-14 制御システム及びプログラム Active JP7844882B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2022004708A JP7844882B2 (ja) 2022-01-14 2022-01-14 制御システム及びプログラム
CN202280086169.6A CN118647491A (zh) 2022-01-14 2022-12-20 控制系统以及程序
EP22920580.2A EP4464466A4 (en) 2022-01-14 2022-12-20 CONTROL SYSTEM AND PROGRAM
PCT/JP2022/046971 WO2023136062A1 (ja) 2022-01-14 2022-12-20 制御システム及びプログラム
US18/726,092 US20250100144A1 (en) 2022-01-14 2022-12-20 Control system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022004708A JP7844882B2 (ja) 2022-01-14 2022-01-14 制御システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2023103908A JP2023103908A (ja) 2023-07-27
JP7844882B2 true JP7844882B2 (ja) 2026-04-14

Family

ID=87278991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022004708A Active JP7844882B2 (ja) 2022-01-14 2022-01-14 制御システム及びプログラム

Country Status (5)

Country Link
US (1) US20250100144A1 (ja)
EP (1) EP4464466A4 (ja)
JP (1) JP7844882B2 (ja)
CN (1) CN118647491A (ja)
WO (1) WO2023136062A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011110629A (ja) 2009-11-24 2011-06-09 Idec Corp ロボット制御方法およびロボット制御システム
JP2019061466A (ja) 2017-09-26 2019-04-18 オムロン株式会社 制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434489A (en) * 1993-07-30 1995-07-18 Fanuc Robotics North America, Inc. Method and system for path planning in cartesian space
JPH07129418A (ja) * 1993-11-08 1995-05-19 Fanuc Ltd マルチタスク環境でのプログラム制御方式
JPH0991018A (ja) * 1995-09-26 1997-04-04 Fuji Electric Co Ltd ロボット制御装置
JPH0991918A (ja) 1995-09-26 1997-04-04 Mitsubishi Rayon Co Ltd フロッピーディスクジャケット用ライナー
JP4131078B2 (ja) * 2000-06-30 2008-08-13 株式会社デンソー ロボットコントローラ
JP4210270B2 (ja) * 2005-06-07 2009-01-14 ファナック株式会社 ロボット制御装置及びロボット制御方法
JP5415311B2 (ja) * 2010-01-29 2014-02-12 株式会社森精機製作所 自動運転を再開可能な工作機械の制御方法およびその装置
JP5668770B2 (ja) * 2013-03-15 2015-02-12 株式会社安川電機 ロボットシステム、及び、ロボットシステムの制御方法
JP5931167B1 (ja) * 2014-12-11 2016-06-08 ファナック株式会社 人間協調型ロボットシステム
JP5937706B1 (ja) * 2015-01-21 2016-06-22 ファナック株式会社 ロボットに加わる外力に基づいてロボットを制御するロボット制御装置、およびロボットシステム
JP6034900B2 (ja) * 2015-03-06 2016-11-30 ファナック株式会社 動作プログラムの再開を判断するロボット制御装置
WO2020234946A1 (ja) * 2019-05-17 2020-11-26 株式会社安川電機 ロボットシステム、復帰プログラム生成装置、制御支援装置、制御装置、プログラム、復帰プログラムの生成方法及び復帰プログラムの出力方法
CN111651211A (zh) * 2020-05-06 2020-09-11 珠海格力电器股份有限公司 一种防止示教器系统崩溃的方法、计算机可读存储介质及示教器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011110629A (ja) 2009-11-24 2011-06-09 Idec Corp ロボット制御方法およびロボット制御システム
JP2019061466A (ja) 2017-09-26 2019-04-18 オムロン株式会社 制御装置

Also Published As

Publication number Publication date
US20250100144A1 (en) 2025-03-27
CN118647491A (zh) 2024-09-13
WO2023136062A1 (ja) 2023-07-20
EP4464466A1 (en) 2024-11-20
JP2023103908A (ja) 2023-07-27
EP4464466A4 (en) 2026-01-14

Similar Documents

Publication Publication Date Title
US6678582B2 (en) Method and control device for avoiding collisions between cooperating robots
US9393691B2 (en) Industrial robot system including action planning circuitry for temporary halts
EP3476550B1 (en) Robot system, robot controller, and method for withdrawing robot
Dumonteil et al. Reactive planning on a collaborative robot for industrial applications
Liu et al. Learning peg-in-hole assembly using Cartesian DMPs with feedback mechanism
JP7738779B2 (ja) 機会制約付き最適化を用いたロバストなロボット操作のためのシステムおよび方法
US12358132B2 (en) Robot system and picking method
Gordić et al. Collision detection on industrial robots in repetitive tasks using modified dynamic time warping
JP2014018941A (ja) 制御装置、及び制御方法
Chochon et al. NNS, a knowledge-based on-line system for an assembly workcell
JP2016221659A (ja) ロボットシステム、ロボットシステムの制御方法、プログラム、記録媒体及び物品の製造方法
JP7844882B2 (ja) 制御システム及びプログラム
US20240367320A1 (en) Method and Apparatus for Implementing a Safety Configuration
CN110312975B (zh) 闭合回路的产品
CN114450644B (zh) 生产机器在无碰撞的轨迹上的停止
JPH08106320A (ja) 自動機械及び自動機械の制御方法
Hyde et al. A phase management framework for event-driven dextrous manipulation
JP2020183021A (ja) 制御方法、制御プログラム、記録媒体、ロボットシステム、ロボット装置、生産システム、物品の製造方法および外部入力装置
JP7355965B1 (ja) 数値制御装置及び数値制御システム
Vistein et al. Towards re-orchestration of real-time component systems in robotics
Álvarez et al. Towards a Generic Software Architecture for a Service Robot Controller
JPH0656584B2 (ja) 複数コンピュータによる分割処理システムにおける動作状態監視装置
JPH04279901A (ja) 産業用ロボットの制御装置
Steiner et al. Self-Management within a Software Architecture for Parallel Kinematic Machines
Zielinski Reaction to errors in robot systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260316

R150 Certificate of patent or registration of utility model

Ref document number: 7844882

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150