JP6938473B2 - 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム - Google Patents

階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム Download PDF

Info

Publication number
JP6938473B2
JP6938473B2 JP2018514449A JP2018514449A JP6938473B2 JP 6938473 B2 JP6938473 B2 JP 6938473B2 JP 2018514449 A JP2018514449 A JP 2018514449A JP 2018514449 A JP2018514449 A JP 2018514449A JP 6938473 B2 JP6938473 B2 JP 6938473B2
Authority
JP
Japan
Prior art keywords
layer
real
agent
control module
time
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
JP2018514449A
Other languages
English (en)
Other versions
JP2018527680A (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.)
Rainbow Robotics Co Ltd
Original Assignee
Rainbow Robotics Co Ltd
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 Rainbow Robotics Co Ltd filed Critical Rainbow Robotics Co Ltd
Priority claimed from PCT/KR2016/008037 external-priority patent/WO2017052060A1/ko
Publication of JP2018527680A publication Critical patent/JP2018527680A/ja
Application granted granted Critical
Publication of JP6938473B2 publication Critical patent/JP6938473B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller
    • Y10S901/06Communication with another machine
    • Y10S901/08Robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device

Description

本発明は、リアルタイムデバイス制御システム及びリアルタイムロボットシステムに関する。より具体的に、本発明は、正確なリアルタイム処理が可能であり、開発及びデバッギングが容易である他、ハードウェア的に強靭な階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システムに関する。
現在、国内外の多くの機関においてロボットへの取り組みが盛んに行われている。ロボットは、大きく、ハードウェアとソフトウェアとに大別でき、これらがまとめられて一つのシステムを構成する。
ロボットハードウェアを構成する要素としては、ロボット関節を動かすための駆動器及び制御器、バッテリ及び電源制御器、通信モジュール、センサ、ロボットの外骨格、電子回路、バッテリなどが挙げられる。これらの色々な種類の要素を各自が希望するロボットの特性の通りに組み合わせてロボットハードウェアプラットフォームを形成する。
各々の要素もまた、設計目的に応じて、大きさ、外形、性能、製造社などが異なり、結果的に、無数の種類のロボットハードウェアプラットフォームを造ることになる。実際にも、全世界的に非常に多岐にわたるロボットが存在している。このため、共通的に目的とするロボットプラットフォームの性能及び機能を調べ、一つの代表的な標準型ロボットプラットフォームを開発しようとする研究が全世界的に行われている。
また、ハードウェア的に上述したように標準型ロボットプラットフォームを開発することを目指した研究があるのと同様に、ソフトウェアもまた共用可能な標準型ロボットソフトウェアに関する研究がある。ロボットハードウェアに属する駆動制御器やセンサなどのロボットデバイスを制御するためのソフトウェア、ロボットモーションを手軽に開発することを補助するためのソフトウェア、タスク間の連関関係を決定してロボットの運営を補助するソフトウェア、ナビゲーションやビジョンソリューションを提供するソフトウェアなど様々な種類のソフトウェアがあり、標準型ソフトウェアの開発もまた標準型ハードウェアの開発と略同じ目的を目指して研究が行われている。
しかしながら、前記標準型ソフトウェアの開発に当たって、多数の開発者が共通して要求する事項を解消するための標準ソリューションを提供することが困難であるのが現状である。
特に、ハードウェア的に変更される事項が増えるにつれ、開発者間の協業を進めることが困難であるだけではなく、多数の人が同時に開発した機能又はプロセスにより処理が重複するという問題が発生する虞がある。これにより、リアルタイム同期化が困難であり、ハードウェアの安定性又は強靭性に劣る他、開発時間もまた長びいてしまうという問題がある。
また、ハードウェアの開発に当たっても前記標準ソフトウェアとの互換性を保つために追加的な機能の変更を加えることを余儀なくされるため、駆動性能が低下することが懸念されるという問題がある。
本発明は、上述したような課題を解消するためのものであって、リアルタイム性が求められるロボット制御システムにおいて、同じハードウェアの制御及び処理に対する色々な独立したプロセスが共存可能でありながらも、これに従うロボットの動作が安定的に制御可能であり、その強靭性及び拡張性を提供することのできる階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システムを提供するところにその目的がある。
上述した課題を解決するための本発明の実施形態によるシステムは、リアルタイムデバイス制御システムにおいて、一つ以上の制御対象デバイスを備える第1の階層と、前記第1の階層の上位段において前記デバイスを直接的に制御するデバイス制御モジュールを備える第2の階層と、前記第2の階層の上位段において前記デバイス制御モジュールと接続される共有メモリを備える第3の階層と、前記第3の階層の上位段において前記共有メモリを用いた独立したプロセスを行う一つ以上のエージェントを備える第4の階層と、前記第4の階層の上位段においてユーザ指令に従って前記一つ以上のエージェントを制御する第5の階層と、を備える。
また、上述した課題を解決するための本発明の実施形態によるシステムは、 リアルタイムロボット制御システムにおいて、ロボットの関節又はセンサに対応する一つ以上の制御対象デバイスと、前記一つ以上の制御対象デバイスと接続されて前記デバイスを運営する制御システムと、を備え、前記制御システムは、一つ以上の制御対象デバイスを備える第1の階層と、前記第1の階層の上位レイヤにおいて前記デバイスを直接的に制御するデバイス制御モジュールを備える第2の階層と、前記第2の階層の上位レイヤにおいて前記デバイス制御モジュールと接続される共有メモリを備える第3の階層と、前記第3の階層の上位レイヤにおいて前記共有メモリを用いた独立したプロセスを行う一つ以上のエージェントを備える第4の階層と、前記第4の階層の上位レイヤにおいてユーザ指令に従って前記一つ以上のエージェントを制御する第5の階層と、を備えて、前記各階層間の隣り合う階層間通信を用いて前記一つ以上のデバイスを運営する。
一方、上述した課題を解決するための方法は、前記方法をコンピュータにて実行させるためのプログラム及び前記プログラムが記録された記録媒体により実現されてもよい。
本発明の実施形態によれば、互いに独立したプロセスを有する複数のエージェントと、前記複数のエージェントの動作に従って生成されるレファレンスが記憶される共有メモリと、を提供し、前記レファレンスを用いて前記ハードウェアデバイスを制御する別途のデバイス制御モジュールを提供することにより、リアルタイム性が求められるロボット制御システムにおいて、同じハードウェア制御に対する色々な独立したプロセスが共存可能でありながらも、これに従うロボットの動作が安定的に制御可能である。
これによる本発明の実施形態によれば、たとえ各エージェントを互いに独立して開発したとしても、共有メモリを介してレファレンスの合成及び選別が可能になって、相互間の衝突可能性を減らすことができ、強靭なリアルタイム性を確保することができる。なお、誤りが発生したときにエージェントの取り換え及びリアルタイムデバッギングなどが容易になるので、協業のし易さ及び拡張性をもたらすことができる。
また、本発明の実施形態によれば、各々のデバイス、デバイス制御モジュール、共有メモリ及びエージェント間の階層化されたアーキテクチャを提供して、統制されたシステムを介して安定化され、しかも、体系的なシステムを保持することができるという効果がある。
本発明の実施形態による全体のシステムを概略的に示す概念図である。 本発明の実施形態によるロボット制御システムの制御方法を説明するためのフローチャートである。 本発明の実施形態による共有メモリ及びシステム間の関係を説明するための図である。 本発明の実施形態による共有メモリ及びシステム間の関係を説明するための図である。 本発明の実施形態によるデバイス制御モジュール及びエージェント間のデータのやり取りを説明するための図である。 本発明の実施形態によるデバイス制御モジュールを説明するためのブロック図である。 本発明の他の一実施形態によるロボット制御システムの制御動作を説明するためのフローチャートである。 本発明の実施形態による階層の構造及び動作環境を説明するための図である。 本発明の実施形態によるロボットシステムの階層的なアーキテクチャの設計を示す図である。
以下の内容は単に本発明の原理を例示する。このため、当業者は、たとえ本明細書に明確に説明又は図示されていないとしても、本発明の原理を実現し、本発明の概念及び範囲に含まれている様々な装置を発明することができる筈である。なお、本明細書に列挙された全ての条件付き用語及び実施形態は、原則的に本発明の概念が理解されるようにするための目的でのみ明らかに意図され、このように特別に列挙された実施形態及び状態に制限的ではないものと理解されるべきである。
また、本発明の原理、観点及び実施形態だけではなく、特定の実施形態を列挙する全ての詳細な説明は、このような事項の構造的及び機能的な均等物を含むように意図されるものと理解されるべきである。なお、これらの均等物は、現在公知の均等物だけではなく、将来に開発されるべき均等物、すなわち、構造とは無関係に同じ機能を行うように発明された全ての素子を備えるものと理解されるべきである。
したって、例えば、本明細書のブロック図は、本発明の原理を具体化する例示的な回路の概念的な観点を示すものであると理解されるべきである。これと同様に、全てのフローチャート、状態変換図、擬似コードなどは、コンピュータにて読み取り可能な媒体に実質的に表わすことができ、コンピュータ又はプロセッサが明示されているか否かを問わず、コンピュータ又はプロセッサにより行われる様々なプロセスを表わすものであると理解されるべきである。
プロセッサ又はこれと類似の概念として表示された機能ブロックを含む図面に示されている様々な素子の機能は、専用ハードウェアだけではなく、適切なソフトウェアと関連してソフトウェアを実行する能力を有するハードウェアの使用により提供可能である。プロセッサにより提供されるとき、前記機能は、単一の専用プロセッサ、単一の共有プロセッサ又は複数の個別的なプロセッサにより提供可能であり、これらのうちの一部は共有可能である。
また、プロセッサ、制御又はこれと類似の概念として提示される用語の明確な使用は、ソフトウェアを実行する能力を有するハードウェアを排他的に引用して解釈されてはならず、制限なしにデジタル信号プロセッサ(DSP)ハードウェア、ソフトウェアを保存するための読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)及び不揮発性メモリを暗示的に含むものであると理解されるべきである。周知慣用の他のハードウェアも含まれ得る。
本明細書の特許請求の範囲において、詳細な説明の欄に記載された機能を行うための手段として表現された構成要素は、例えば、前記機能を行う回路素子の組み合わせ又はファームウェア/マイクロコードなどをはじめとする全ての形式のソフトウェアを含む機能を行うあらゆる方法を含むものと意図され、前記機能を行うように、前記ソフトウェアを実行するための適切な回路と結合される。このような特許請求の範囲により定義される本発明は、様々に列挙された手段により提供される機能が結合され、請求項が要求する方式と結合されるため、前記機能を提供可能ないかなる手段もまた本明細書から把握されるものと均等なものであると理解されるべきである。
上述した目的、特徴及び長所は、添付図面と結び付けて行う次の詳細な説明によりなお一層明らかになり、これにより、本発明が属する技術分野において通常の知識を有する者が本発明の技術的思想を容易に実施することができる筈である。なお、本発明を説明するに当たって、本発明と関連する公知の技術についての具体的な説明が本発明の要旨を余計に曖昧にする虞があると認められる場合にはその詳細な説明を省略する。
以下、添付図面に基づいて、本発明に係る好適な一実施形態について詳細に説明する。
図1は、本発明の実施形態による全体システムを概略的に示す概念図である。
図1を参照すると、本発明の実施形態による全体システムは、一つ以上のデバイス100と、デバイス制御モジュール200と、共有メモリ300と、一つ以上のエージェント400及びユーザシステム500を備える。
デバイス100は、最終的にロボット制御システムの動作を行う一つ以上の駆動装置を備えていてもよい。駆動装置は、ハードウェア装置又はソフトウェア装置を備えていてもよい。駆動装置は、例えば、関節モータに対する駆動を制御する関節デバイス、センサボードを備えるセンサデバイス又はシミュレータ装置のうちの少なくとも一つを備えていてもよい。
また、デバイス100は、デバイス制御モジュール200から受信される制御信号に従って制御され、前記デバイス制御モジュール200にセンサデータなどの様々なデータを出力してもよい。更に、ここで、デバイス100という用語は、ハードウェアに限定されるものではなく、実際にハードウェアデバイスを駆動するためのソフトウェアドライバを含む概念として用いられてもよい。したって、各デバイス100は、デバイス制御モジュール200と物理的及びソフトウェア的にも接続可能である。
また、各デバイス100は、デバイス制御モジュール200との通信ネットワークを形成してもよい。通信ネットワークは、システムの安定性のために、コントローラエリアネットワーク(CAN:ControllerAreaNetwork)方式のプロトコルを用いたシステムネットワークを形成してもよい。
例えば、各々のデバイス100は、デバイス制御モジュール200と一つ以上のCAN通信チャンネルにより接続されてもよく、前記CAN通信チャンネルを介して予め設定された制御周期に従って、CANフレームデータにより構成されるメッセージを受信したり、前記デバイス制御モジュール200にメッセージを出力したりしてもよい。ここで、前記メッセージは、モータ制御レファレンス、エンコーダ値、制御器のステータス値、パルス幅変調(PWM:PulseWidthModulation)指令、センサ値又はその他の様々な設定又は出力値を含んでいてもよい。
また、デバイス制御モジュール200は、前記複数のエージェント400から生成されて前記共有メモリに記憶された各々のレファレンスから、一つ以上のデバイス100の制御のためのハードウェア制御データを取得し、前記ハードウェア制御データから選択される前記一つ以上のデバイス100に前記レファレンスに従う制御信号を転送する。
デバイス制御モジュール200は、ロボット制御システムの制御のためのオペレーティングシステムの上に常住してもよく、バックグラウンドにおいて実行されてもよい。
デバイス制御モジュール200は、前記共有メモリ300を参照してデバイス100を唯一に直接的に通信してもよく、前記通信チャンネルを介して制御信号を転送したりセンサ信号を受信したりしてもよい。
例えば、デバイス制御モジュール200は、関節デバイス100の制御のためのレファレンスを前記関節デバイス100に転送したり、センサデバイス100から所要のセンサ情報を受信したりしてもよい。
更に、前記デバイス制御モジュール200は、前記オペレーティングシステムの上に生成されたリアルタイムスレッド(thread)を含んでいてもよい。更にまた、前記スレッドは、システムのモーション生成動作周期と同期化されることにより、リアルタイム処理を可能にする。なお、デバイス制御モジュール200は、データの読み取り及び変換などの処理のためのノンリアルタイムスレッドを更に含んでいてもよい。
これらに加えて、前記複数のエージェント400は、互いに独立したプロセスを有する独立したソフトウェアモジュールにより実現されてもよい。例えば、エージェント400は、それぞれ異なるモーションを処理し、これに対応するレファレンスを出力するためのプロセスを行ってもよい。例えば、各エージェント400は、モーションエージェント、コントローラエージェント、通信エージェント又はワーキング(walking)エージェント、ダンピング(damping)エージェント、その他の様々なエージェントを備えていてもよい。
上述したエージェント400は、機能的にプロセスが分離されているため、ヒープ(heap)、データ(data)及びスタティック(static)メモリを共有せず、各々のスレッドを生成して動作してもよく、相互間の共有のための所要データは各々共有メモリ300に提供してもよく、これに伴う相互間の衝突なしに有機的な処理が可能になり、ソフトウェアの開発及び処理が容易になる。
特に、本発明の実施形態によれば、前記複数のエージェント400は、互いに独立したプロセスの動作に従って、前記共有メモリ300からセンサデータを、本発明の実施形態によれば、各々のエージェント400は各々定義されたプロセスに従って共有メモリ300のハードウェア抽象化データ及びユーザ定義データを参照し、これに基づいて生成されるレファレンスデータを共有メモリ300のハードウェア抽象化データに記憶してもよい。
ここで、ユーザ定義データは、エージェント400間の情報の共有のための共有データ及びユーザ定義可能なその他のシステムの駆動のための様々なデータを含んでいてもよい。
また、ハードウェア抽象化データは、デバイス100を制御するために抽象化されたレファレンス、センサデータ、モーションオーナ変数及び指令データを含んでいてもよい。なお、デバイス制御モジュール200は、前記ハードウェア抽象化データ及びハードウェアデータベース250に予め保存されたハードウェア情報を用いて、各デバイス100別の制御信号を生成してもよい。
これにより、デバイス制御モジュール200は、前記共有メモリ300から取り出されるハードウェア抽象化データを用いて、制御対象デバイス100を識別し、制御対象デバイス100に対する制御信号を生成して、制御対象デバイス100に前記レファレンスに従う制御信号を出力してもよい。
更に、強靭なリアルタイム性の保証のために、各エージェント400の処理周期は、システムのモーション情報を処理する動作周期よりも短い必要がある。これにより、前記エージェント400がセンサデータからレファレンスを生成し、共有メモリ300を介して前記デバイス制御モジュール200がレファレンスから制御信号を生成及び出力し、センサデータを更新する時間は、前記システムの第1の動作周期内に含まれてもよい。したがって、前記一連の動作は、前記第1の動作周期内に全て処理可能である。
一方、ユーザシステム500は、エージェント400及びデバイス制御モジュール200の制御及びモニタリングのためのユーザインタフェースを提供してもよい。なお、ユーザシステム500は、エージェント400の制御のためのミドルウェアを備えていてもよく、その他の外部システムと接続可能な様々なインタフェースを提供してもよい。
図2は、本発明の実施形態によるロボット制御システムの制御方法を説明するためのフローチャートである。
また、図3及び図4は、本発明の実施形態による共有メモリ及びシステム間の関係を説明するための図である。
更に、図5は、本発明の実施形態によるデバイス制御モジュール及びエージェント間のデータのやり取りを説明するための図である。
以下、前記図2から図5に基づいて、本発明のロボット制御システム及びその制御方法についてより具体的に説明する。
図2を参照すると、本発明の実施形態によるロボット制御システムの制御方法は、まず、互いに独立したプロセスを有する複数のエージェント400の動作が行われる(S101)。
また、デバイス制御モジュール200は、共有メモリ300に記憶されたレファレンスからハードウェア抽象化データを取得する(S103)。
更に、デバイス制御モジュール200は、ハードウェア抽象化データからハードウェアの制御のための制御信号を生成し(S107)、生成された制御信号を一つ以上のデバイス100に転送する(S109)。
一方、デバイス制御モジュール200は、センサに対応するデバイス100からセンサデータを受信し(S111)、前記受信されたセンサデータを共有メモリ300に更新する(S113)。
更にまた、前記一連の動作ステップはロボット制御システムのリアルタイム動作周期に対応する第1の周期内に全て処理できるので、リアルタイム性を保証することができる。
このようなプロセスのために、図3に示すように、各々のエージェント400及びデバイス制御モジュール200は、共有メモリ300を用いてデータのやり取り及び転送処理を行ってもよい。
各エージェント400の動作に従って、共有メモリ300には、各デバイス100に対応するレファレンスが記憶されてもよく、デバイス制御モジュール200は、レファレンスを取得して制御信号を出力するのに用いられてもよい。
このような複数のエージェント400及びデバイス制御モジュール200は、共有メモリ300を中心としてマルチエージェントシステムを構成してもよい。これにより、独立した仕事を行う各々のパートを多数人の開発者が分離して開発することもでき、協業可能なロボット制御システムの開発環境における有利な構造を有することができる。
本発明の実施形態によるエージェント400を用いれば、開発者は、プロセス同時開発モデルから独立した開発空間を保証されながらも、共有メモリ300を用いることにより、他のエージェント400の演算結果物と互いに作用したりデータをやり取りしたりすることが可能になる。
一方、図4に示すように、共有メモリ300の上には、ハードウェア抽象化データ及びユーザ定義データが含まれていてもよい。
ハードウェア抽象化データは、センサデータ、レファレンスデータ、モーションオーナ(motionowner)及び指令データを含んでいてもよく、デバイス制御モジュール200は、共有メモリ300の前記ハードウェア抽象化データ領域にしかアクセスすることができない。
これにより、デバイス制御モジュール200は、共有メモリ300のハードウェア抽象化データ領域にアクセスしてデバイス100から受信したセンサデータを更新したり、更新されたレファレンスデータを取得してデバイス100に対する制御信号を生成したりすることができる。
ここで、ハードウェア抽象化データは、ロボットデバイス制御に関する細部的なデータを抽象化して変換されたデータフォーマットを有してもよく、デバイス制御モジュール200は、これを実際にハードウェア制御信号に変換して適切なデバイス100に転送してもよい。
これにより、エージェント400の開発者やユーザは、ハードウェアについての深い理解なしにも制御を容易に行うことができる。開発者やユーザは、共有メモリ300を介して抽象化されたハードウェア入力情報をレファレンスに転送し、デバイス制御モジュール200は、前記ハードウェア抽象化データからデバイス100の制御のための低レベルの制御信号を生成してもよい。
また、ハードウェアの拡張性と、ハードウェアの変更及び修正がある可能性があるため、デバイス制御モジュール200は、上述したハードウェアデータベース250を用いて前記制御信号を生成するのに必要なハードウェア情報を管理してもよい。ハードウェア情報は、例えば、デバイス100の一覧、関節モータ情報(減速比、エンコーダパルス、駆動器のチャンネル数など)又は通信規約などを含んでいてもよい。
デバイス制御モジュール200は、前記ハードウェアデータベース250をロードして駆動対象デバイス100のハードウェア情報を把握することができ、これにより、この駆動対象デバイス100の制御のための最適な制御信号を生成することができる。なお、たとえハードウェアの変更があったり、新たな構成のハードウェアを使用したりしたとしても、ハードウェアデータベース250の修正だけでも適用可能になるので、ハードウェアの変化に強靭であり、且つ、ハードウェアが拡張可能な特性を提供することができる。
更に、ハードウェア抽象化データは、レファレンスデータ、センサデータ、モーションオーナ及び指令データを含んでいてもよい。
ここで、前記レファレンスデータは、各エージェント400において演算結果に応じて更新されてもよく、デバイス制御モジュール200が各デバイス100を制御するための現在のステップにおける目標値を含んでいてもよい。例えば、レファレンスデータは、関節モーションレファレンス及び関節コントローラレファレンスを含んでいてもよい。
また、センサデータは、デバイス制御モジュール200が各デバイス100から受信する測定データを含んでいてもよい。ここで、測定データは、例えば、関節デバイスのエンコーダ値、センシングデータを含む現在のステップにおけるステータス情報を含んでいてもよい。
一方、指令データは、デバイス制御モジュール200及びエージェント400を上位システムレベルで制御するための指令情報を含んでいてもよく、指令対象プロセス情報及びパラメータ情報を含んでいてもよい。
一方、他の共有メモリ300のデータは、エージェント400が読み出す値であるため混同の余地がないが、レファレンスデータの場合には、同じ関節デバイス100に対してエージェント400ごとに出力する値が異なる虞がある。これに伴う衝突の余地を無くすために、共有メモリ300は、モーションオーナ(owner)情報を含んでいてもよい。
また、図5に示すように、図5は、本発明の実施形態によるデバイス制御モジュール200及びエージェント400間のデータのやり取りに当たって、モーションオーナ及びレファレンスデータ間の関係が説明可能である。
図5に示すように、共有メモリ300のハードウェア抽象化データ領域は、各エージェント400別にレファレンスデータが更新可能なエージェント400別のメモリ領域350を備えていてもよい。
これにより、各エージェント400は、自分のメモリ空間領域に自分が計算したレファレンスを更新することができる。
ここで、各エージェント400は、各デバイス100に対応するレファレンスデータを演算して更新してもよい。例えば、関節デバイス100がJ1からJ31まで合計で31個存在する場合、各エージェント400別のメモリ空間領域には、前記各々の関節デバイス100に対応するレファレンスデータ領域が含まれていてもよい。
これとともに、共有メモリ300は、前記関節デバイス100の各々に対するモーションオーナ変数を含んでいてもよい。したがって、各モーションオーナ変数空間には、関節デバイス100の数と同じ数のモーションオーナ変数が含まれていてもよい。
また、各モーションオーナ変数は、予め設定された複数のエージェント400のうち前記関節デバイス100に対する権限を有する一つのエージェントを表わしてもよい。これにより、当該関節デバイス100に対する制御権がどのようなエージェント400に従属されているかをデバイス制御モジュール200が判断することができる。
更に、各関節デバイス100に対する制御権は、モーションオーナ変数の変更に伴って、他のエージェント400又はデバイス制御モジュール200にも移転されてもよい。
このために、デバイス制御モジュール200は、優先的にモーションオーナ変数から特定の関節デバイス100の制御権を有するエージェント400を識別してもよい。なお、デバイス制御モジュール200は、識別されたエージェント400のレファレンスデータを収集し、前記収集されたレファレンスデータを結合して総合的に構成された全体の関節デバイス100に関する全体のレファレンスデータを生成してもよい。
また、デバイス制御モジュール200は、全体のレファレンスデータを用いて、各デバイス100に対する制御信号を生成してもよく、適切に転送してもよい。
デバイス制御モジュール200は、相当する関節レファレンスの値を読み込み、このようにして総合的に単一のセットにより構成されたロボットの全体の関節のレファレンスを構成し、これをロボットデバイスに転送して駆動する。
このようなデータのやり取り方式を通じて、ロボットの各関節を異なるエージェント400において衝突なしに制御することができる。例えば、一つのエージェント400においては、下体の姿勢安定化に関するアルゴリズムを介して下体関節を制御し、もう一つのエージェント400においては、上体の特定のタスクモーションを生成すれば、両エージェント400の結果がまとめられてロボットの全身タスクが行われてもよい。これは、ロボットのマルチエージェントシステムの特性に合う効率よい制御を可能にする。
図6は、本発明の実施形態によるデバイス制御モジュールを説明するためのブロック図である。
図6を参照すると、デバイス制御モジュール200は、モーションセレクタ210と、コントローラ信号累積部220と、信号結合部230及び情報ハンドラ240を備える。
本発明の実施形態によれば、関節に関するレファレンスデータは、関節モーションの制御及び細部的なコントロールのための二つ以上のレファレンス信号を含んでいてもよい。これにより、各関節デバイス100に対応するエージェント400は、前記二つ以上のレファレンス信号をレファレンスデータとして生成して共有メモリ300に記憶することができる。
また、図6に示すように、レファレンス信号は、モーションレファレンス及びコントローラレファレンスと名称されてもよい。モーションレファレンスは、各関節に支配的な値を与えるレファレンスデータを含んでいてもよく、コントローラレファレンスは、微視的にモーションレファレンスに加減される細部的なレファレンスデータを含んでいてもよい。但し、本発明の実施形態において、前記レファレンスがその名称に限定されることはない。
これにより、デバイス制御モジュール200には、共有メモリ300からモーションレファレンス出力データM1〜Mm及びコントローラレファレンスM1〜Mmが入力可能である。
更に、モーションレファレンスは、一つの関節デバイス100別に一つが選択されてもよいが、コントローラレファレンスは全て累積されて加減されてもよい。
このために、モーションセレクタ210は、前記モーションオーナ変数情報に基づいて、前記モーションレファレンスデータから各関節デバイス100に対応するモーションレファレンスデータを選択し、これを信号結合部230に出力してもよい。したがって、一つの関節デバイス100には、一つのモーションレファレンスデータが選択可能である。
更にまた、コントローラ信号累積部220においては、前記モーションオーナ変数とは無関係に、各コントローラレファレンスデータを累積して結果値を信号結合部230に出力してもよい。
加えて、信号結合部230においては、前記モーションレファレンスデータ及び前記コントローラレファレンスデータ累積結果値を合成して最終的な関節デバイス100別のレファレンスデータを生成してもよく、適切なターゲット関節デバイス100に出力してもよい。
ここで、信号結合部230は、レファレンスのタイプを識別し、レファレンスのタイプに従う処理空間を仕切ってもよい。このために、信号結合部230は、タイプ識別部及び空間処理部を備えていてもよい。
例えば、レファレンスデータは、関節動作だけではなく、タスク処理などの他のタイプを有してもよく、これにより、タイプ識別部は、前記タスクタイプであるか、又は関節タイプであるかを識別することができ、空間処理部は、前記タイプに従って異なるデータ空間の処理を提供することができる。
このように、モーションレファレンス及びコントローラレファレンスを分離することにより、ロボットモーションを生成する過程において機能的な分離が可能になる。例えば、二足歩行のモーションを生成することを想定したとき、一つのエージェント400において基本的な歩行パターンを生成してモーションレファレンスを生成し、もう一つのエージェント400においてダンピングコントローラを設計し、更にもう一つのエージェント400において振動を制御するコントローラを設計してコントローラレファレンスに出力することにより、非常に手軽に設計及び開発を行うことが可能になる。
一方、情報ハンドラ240は、センサデバイス100又はその他の測定対象デバイスから収集されるセンサデータをまとめて、共有メモリ300に出力する機能を行ってもよい。
図7は、本発明の他の一実施形態によるロボット制御システムの制御動作を説明するためのフローチャートである。
一般に、ロボットを用いた実際の実験において問題が発生すれば、一般に、ロボットを最初から再起動しなければならない。モバイルプラットフォームの場合には、ロボットの初期化過程が簡単であるとはいえ、ヒューマノイドのように多関節システムの場合や、地面において初期化を行い難く、クレーンなどを用いて空中において初期化を行わなければならない場合には、全体的な初期化過程が非常に煩雑であり、しかも、長時間がかかってしまう。
したがって、図7に示すように、本発明の実施形態によるデバイス制御モジュール200は、このようなロボットを初期化する過程なしにデバッギングを行い、再びロボットをテストすることができる。
このために、まず、システムの初期化が行われ(S201)、それぞれ互いに独立したプロセスを有する複数のエージェント400が動作する(S202)。
次いで、誤りが発生した特定のエージェントが存在する場合(S203)、前記誤りが発生したエージェントの動作は中断され、デバイス制御モジュール200又は他のエージェント400が前記モーションオーナ変数を他のエージェントに変更する(S205)。
これにより、ユーザがエージェント400を介してモーションアルゴリズムをテストする間に問題が発生すれば、単に他のエージェント400又はデバイス制御モジュール200にモーションオーナを渡し、中断されたエージェント400に対するコードを修正することができる。
また、作成したコードをコンパイルしてデバッギングが終わった場合(S207)、再びモーションオーナ変数を元のエージェント400にスイッチすることができる(S209)。
このように、開発者は、モーションオーナを読み出した後に実験を行い続けることができる。これは、結果的に開発を促し、ユーザにとって、これを更に上手く活用して他の特殊の粒ALにおいてロボットの関節レファレンスを持続的に観察して衝突が起こることを感知して、衝突が発生する場合にモーションオーナを切り換えてロボットを安全に実験可能にするという効果を有する。
図8は、本発明の実施形態によるロボットシステムの動作環境を説明するための図である。
本発明の実施形態によれば、汎用的にロボットソフトウェアが使われるためには、単一のロボットプラットフォームのみを動作させるソフトウェアではなく、多種多様な形態のロボットを動作させることが求められるため、拡張可能でありながらも、ロボットハードウェアの変化に適用し易い他、実際的なロボットプラットフォームだけではなく、ロボットシミュレータも同じソフトウェアにより制御される必要がある。
これにより、本発明の実施形態によるロボット制御システム(1000)は、アメリカのROS(Robot Operation System)や、韓国のOPRoS(Open Platform for Robotics Services)などの他の有用なロボットミドルウェアの機能が利用可能な汎用システムを構築することができる。これにより、クラウッドロボット体系上のソフトウェアが提供する色々なビジョンソリューションやロボットのタスクを管理する機能を本発明のシステムに手軽に適用可能な環境を提供することができる。
このために、ロボット制御システム1000の各エージェント400がモーションを生成すれば、これにより、各ロボットデバイス100を制御するデバイス制御モジュール200が動作して全体システムのリアルタイム制御を提供することができる。なお、上位の他のロボットソフトウェアにおいてモーション間の接続若しくは判断基準などを提示したり、複数のロボットを同時に運用したりすることもできる。
これは、図9に基づいて説明されるロボット制御システム1000の階層的なアーキテクチャによりなお一層具体的に説明され得る。
図9は、本発明の実施形態によるロボットシステムの階層的なアーキテクチャの設計を示す図である。
上述したように、他の通常の外部プロセスにおいて、本発明の実施形態による複数のエージェントにアクセスしたり、任意のエージェントを生成したりして、独立して動作させ得る環境を提供するために、ロボット制御システム1000は、各データ処理モジュールが階層(layer)化された構造を備えていてもよい。
また、各階層化された構造は、前記ロボット制御システム1000と接続されたり、前記ロボット制御システム1000を搭載(又は、設置)したりしたリアルタイムオペレーティングシステム(RTOS)上においてソフトウェア又はハードウェア的に実現されてもよい。なお、各階層間の動作周期の同期化のために、リアルタイムオペレーティングシステムは、グローバルなタイマ割り込みTimer Interuptを第4の階層及び第2の階層に提供してもよい。
例えば、第4の階層の各エージェントは、前記リアルタイムオペレーティングシステムのプロセスにより実現されてもよく、プロセスに含まれているスレッド動作に従って共有メモリにアクセスし、センサデータを取得し、レファレンスデータを保存してもよい。このため、同期化された第2の階層のデバイス制御モジュールは、前記リアルタイムオペレーティングシステム上におけるスレッド動作に従って、デバイスのセンサデータを共有メモリに保存し、共有メモリのレファレンスデータ及びモーションオーナに従うデバイス制御信号を生成して各デバイスに出力してもよい。
このように、リアルタイムオペレーティングシステム上において実現可能な本発明の実施形態によるロボット制御システム1000は、ロボットプラットフォーム又はシミュレータに取り込まれている一つ以上の制御対象デバイスjoint又はSensorを備える第1の階層と、前記第1の階層の上位段において前記デバイスを直接的に制御するデバイス制御モジュールを備える第2の階層と、前記第2の階層の上位段において前記デバイス制御モジュールと接続される共有メモリを備える第3の階層と、前記第3の階層の上位段において前記共有メモリを用いた独立したプロセスを行う一つ以上のエージェントを備える第4の階層と、前記第4の階層の上位段においてユーザ指令に従って前記一つ以上のエージェントを制御する第5の階層と、を備える階層的なアーキテクチャにより構成されてもよい。
ここで、前記第1乃至第5の階層は、隣り合う階層間にのみ通信可能なように、各々の通信プロトコルが予め設定されている。各階層は、上位又は下位の階層を介してのみその次の階層にアクセスすることができ、このようにして統制されたシステムを介して安定化され、体系的なシステムを保持することができる。
まず、第1の階層には、各デバイスが備えられ得る。デバイスは、実質的な制御の対象である低レベルのロボットデバイスを備えていてもよく、例えば、駆動器の制御器、センサボード又はロボットシミュレータのデバイスが備えられ得る。
また、第2の階層には、デバイス制御モジュール200がロボットを制御するためにバックグラウンドに常駐して実行され得る。第2の階層は、ロボットシステムのデバイスが直接的に制御可能な唯一な階層であってもよい。
例えば、第2の階層のデバイス制御モジュールは、共有メモリから生成された関節のレファレンスをロボットデバイスに転送し、逆に、センサの値をデバイスから取得してもよい。第2の階層は、リアルタイムオペレーティングシステム(RTOS)から生成されるリアルタイムスレッドにより動作してもよく、第2の階層のスレッドは、モーションの生成の制御周期と同期化された周期を有してもよい。もし、デバイスがシミュレータと連動されている場合、第2の階層のスレッドは、シミュレータの時間と同期化されて動作してもよい。第2の階層は、指令を読み込んで解釈可能なノンリアルタイムスレッドをも有してもよく、ノンリアルタイムスレッドは、リアルタイムスレッドから残る時間に他の指令を受け取って処理してもよい。
これにより、デバイス制御モジュールは、前記システムのバックグラウンドに常駐し、前記共有メモリから取得されるレファレンスから前記デバイスを制御するための制御信号を前記第1の階層に転送する階層的なアーキテクチャを有することができる。
一方、第3の階層は、共有メモリ階層であって、ハードウェアの抽象化データ部及びユーザ定義データ部を備えていてもよい。図9に示すように、ハードウェア抽象化データ部には、上述したハードウェア抽象化データが備えられてもよく、ハードウェア抽象化データの種類としては、センサデータ、レファレンスデータ、モーションオーナ(motion owner)及び指令情報が挙げられる。第2の階層のデバイス制御モジュールは、単に第3の階層の共有メモリにのみ接続可能である。
一方、ユーザ定義データ部は、第4の階層に存在する複数のエージェントプロセスの間で共有されるエージェント共有データと、ユーザ定義に従うロボット駆動データと、を一時的に又は永久的に保存してもよい。
また、第4の階層は、外部プロセスのユーザが自分のみのロボットモーションなどを生成するための各エージェントプロセスを駆動する階層であって、エージェントプロセスはまるで葡萄の粒のように階層内において互いに独立して実行されるため、特に粒ALとも呼ばれる。各エージェントは互いに独立して第3の階層の共有メモリからセンサデータを読み込んでモーションを生成し、生成されたモーションの関節レファレンスを共有メモリに更新してもよい。
更に、第4の階層のエージェントプロセスはまた、モーションオーナにどのような粒が当該関節のレファレンスに対する所有権を有しているかを設定してもよい。
更にまた、各エージェントは、リアルタイムオペレーティングシステム(RTOS)から非常に短い周期の速いリアルタイムスレッドを生成してもよく、速いスレッドは、各エージェントのモーション生成スレッドを上述した第4の階層のデバイス制御モジュールのリアルタイムスレッドと同期化させるのに用いられてもよい。例えば、モーションを生成するスレッドは、前記速いスレッドによりデバイス制御モジュールとリアルタイムにて同期化されてもよく、同期化と同時に演算が再開(Resume)され、一回のレファレンス演算ループを巡回してから猶予(Suspend)されてもよい。この動作が繰り返し行われ続けることにより、ロボット制御システム1000の制御が行われてもよい。
ここで、全てのエージェントがロボットのモーションを直接的に生成するわけではなく、衝突を感知してモーションオーナを他のエージェントから読み出して、ロボットを安全にするエージェントがあってもよく、他のエージェントを補助する付随的な処理を施してもよく、通信モジュールcomm.moduleにより実現されて第5の階層と情報をやり取りながら他のエージェントを制御する役割を果たすエージェント(図9におけるエージェントN)も存在してもよい。
一方、第5の階層は、前記エージェントに対応する制御及びロボット制御システム1000に対するモニタリングの機能を提供するユーザインタフェースモジュールを備えていてもよい。
これに伴い、第5の階層は、ロボットの制御のし易さを提供するための様々なプロセスを備えていてもよい。例えば、第5の階層には、指令を与え易いか、又はモニタリングするためのグラフィックユーザインタフェース(GUI:Graphic User Interface)若しくはデータを保存するロギングプログラムが備えられてもよい。
また、前記第5の階層は、外部のプロセスがアクセス可能な領域であって、既存のROS及びOPRoSなどのロボットミドルウェアがエージェントを制御するための一つ以上のインタフェース機能を提供してもよい。
更に、上位の他のロボット制御システムが存在して、第5の階層を介して下位のロボット制御システム1000を制御してもよい。したがって、前記第5の階層を介してロボット制御システム1000は無限に拡張可能な構造を有することができ、これを通じて、ハイパマルチエージェント(hyper multi−agent)システムが制御可能な構造的な可能性を提供することができる。
一方、上述した本発明に係る方法は、コンピュータにて実行されるためのプログラムにより製作されてコンピュータにて読み取り可能な記録媒体に保存されてもよく、コンピュータにて読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ保存装置などが挙げられ、なお、キャリアウェーブ(例えば、インターネットを用いた送信)の形態で実現されるものも含む。
コンピュータにて読み取り可能な記録媒体は、ネットワークにより接続されたコンピュータシステムに分散されて、分散方式によりコンピュータにて読み取り可能なコードが保存され且つ実行され得る。なお、前記方法を実現するための機能的な(function)プログラム、コード及びコードセグメントは、本発明が属する技術分野におけるプログラマにより容易に推論可能である。
また、以上では、本発明の好適な実施形態について図示し且つ説明したが、本発明は、上述した特定の実施形態に何等限定されるものではなく、特許請求の範囲において請求する本発明の要旨を逸脱することなく、当該発明が属する技術分野において通常の知識を有する者により種々に変形して実施可能であるということはいうまでもなく、これらの変形実施は、本発明の技術的思想や展望から個別的に理解されてはならない筈である。

Claims (7)

  1. リアルタイムデバイス制御システムにおいて、
    一つ以上の制御対象デバイスを備える第1の階層と、
    前記第1の階層の上位段において前記デバイスを直接的に制御するデバイス制御モジュールを備える第2の階層と、
    前記第2の階層の上位段において前記デバイス制御モジュールと接続される共有メモリを備える第3の階層と、
    前記第3の階層の上位段において前記共有メモリを用いた独立したプロセスを行う一つ以上のエージェントを備える第4の階層と、
    前記第4の階層の上位段においてユーザ指令に従って前記一つ以上のエージェントを制御する第5の階層と、
    を備え
    前記第2の階層のデバイス制御モジュールは、
    前記システムのバックグラウンドに常駐し、前記共有メモリから取得されるレファレンスから前記デバイスを制御するための制御信号を前記第1の階層に転送し、
    前記デバイス制御モジュールは、
    前記デバイス制御システムと接続されたオペレーティングシステムの上に、前記一つ以上のエージェントと同期化された制御周期を有するリアルタイムスレッドを生成し、
    前記共有メモリは、
    前記第2の階層の前記デバイス制御モジュールの動作のための情報を保存するハードウェア抽象化データ部と、
    前記第4の階層のエージェントの間に共有されるエージェント共有データを保存するユーザ定義データ部と、を備え、
    前記共有メモリは、関節デバイスに対するモーションオーナ変数を含み、
    前記モーションオーナ変数は、複数のエージェントのうち、前記関節デバイスの制御権を有する一つのエージェントを表し、
    前記デバイス制御モジュールは、
    前記第3の階層の共有メモリから取得されたレファレンスに基づいて、前記関節デバイスに関する全体のレファレンスデータを生成し、前記全体のレファレンスデータに基づいた前記関節デバイスに対する制御信号を生成するために、前記モーションオーナ変数から前記関節デバイスに対する制御権を有する一つのエージェントを識別し、
    前記レファレンスは、前記関節デバイスに対応するモーションの制御及び細部的なコントロールのための複数のエージェントの演算結果に応じて更新された二つ以上のレファレンス信号を含む階層的なアーキテクチャを有するリアルタイムデバイス制御システム。
  2. 前記第1乃至第5の階層は、隣り合う階層間にのみ通信可能であることを特徴とする請求項1に記載の階層的なアーキテクチャを有するリアルタイムデバイス制御システム。
  3. 前記第4の階層のエージェントは、それぞれ前記システムと接続されたリアルタイムオペレーティングシステムの上にリアルタイムスレッドを生成し、前記リアルタイムスレッドの動作周期は、前記デバイス制御モジュールと同期化される請求項1に記載の階層的なアーキテクチャを有するリアルタイムデバイス制御システム。
  4. 前記第5の階層は、前記エージェントに対応する制御及びモニタリング機能を提供するユーザインタフェースモジュールを備える請求項1に記載の階層的なアーキテクチャを有するリアルタイムデバイス制御システム。
  5. リアルタイムロボット制御システムにおいて、
    ロボットの関節又はセンサに対応する一つ以上の制御対象デバイスと、
    前記一つ以上の制御対象デバイスと接続されて前記デバイスを運営する制御システムと、
    を備え、
    前記制御システムは、
    一つ以上の制御対象デバイスを備える第1の階層と、前記第1の階層の上位レイヤにおいて前記デバイスを直接的に制御するデバイス制御モジュールを備える第2の階層と、前記第2の階層の上位レイヤにおいて前記デバイス制御モジュールと接続される共有メモリを備える第3の階層と、前記第3の階層の上位レイヤにおいて前記共有メモリを用いた独立したプロセスを行う一つ以上のエージェントを備える第4の階層と、前記第4の階層の上位レイヤにおいてユーザ指令に従って前記一つ以上のエージェントを制御する第5の階層と、を備えて、前記各階層間の隣り合う階層間通信を用いて前記一つ以上のデバイスを運営し、
    前記第2の階層のデバイス制御モジュールは、
    前記システムのバックグラウンドに常駐し、前記共有メモリから取得されるレファレンスから前記デバイスを制御するための制御信号を前記第1の階層に転送し、
    前記デバイス制御モジュールは、
    前記ロボット制御システムと接続されたオペレーティングシステムの上に、前記一つ以上のエージェントと同期化された制御周期を有するリアルタイムスレッドを生成し、
    前記共有メモリは、
    前記第2の階層の前記デバイス制御モジュールの動作のための情報を保存するハードウェア抽象化データ部と、
    前記第4の階層のエージェントの間に共有されるエージェント共有データを保存するユーザ定義データ部と、を備え、
    前記共有メモリは、関節デバイスに対するモーションオーナ変数を含み、
    前記モーションオーナ変数は、複数のエージェントのうち、前記関節デバイスの制御権を有する一つのエージェントを表し、
    前記デバイス制御モジュールは、
    前記第3の階層の共有メモリから取得されたレファレンスに基づいて、前記関節デバイスに関する全体のレファレンスデータを生成し、前記全体のレファレンスデータに基づいた前記関節デバイスに対する制御信号を生成するために、前記モーションオーナ変数から前記関節デバイスに対する制御権を有する一つのエージェントを識別し、
    前記レファレンスは、前記関節デバイスに対応するモーションの制御及び細部的なコントロールのための複数のエージェントの演算結果に応じて更新された二つ以上のレファレンス信号を含むリアルタイムロボット制御システム。
  6. 前記第4の階層のエージェントは、それぞれ前記システムと接続されたリアルタイムオペレーティングシステムの上にリアルタイムスレッドを生成し、前記リアルタイムスレッドの動作周期は、前記デバイス制御モジュールと同期化される請求項に記載のリアルタイムロボット制御システム。
  7. 前記第5の階層は、前記エージェントに対応する制御及びモニタリング機能を提供するユーザインタフェースモジュールを備える請求項に記載のリアルタイムロボット制御システム。
JP2018514449A 2015-09-21 2016-07-22 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム Active JP6938473B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562221215P 2015-09-21 2015-09-21
US62/221,215 2015-09-21
KR10-2016-0020776 2016-02-22
KR1020160020776A KR102235168B1 (ko) 2015-09-21 2016-02-22 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
PCT/KR2016/008037 WO2017052060A1 (ko) 2015-09-21 2016-07-22 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템

Publications (2)

Publication Number Publication Date
JP2018527680A JP2018527680A (ja) 2018-09-20
JP6938473B2 true JP6938473B2 (ja) 2021-09-22

Family

ID=58498109

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018514449A Active JP6938473B2 (ja) 2015-09-21 2016-07-22 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム
JP2018514269A Active JP6836585B2 (ja) 2015-09-21 2016-07-22 リアルタイム制御システム、リアルタイム制御装置及びシステムの制御方法
JP2018514281A Active JP6771027B2 (ja) 2015-09-21 2016-07-22 Gpos連動型リアルタイムロボット制御システム及びこれを用いたリアルタイムデバイス制御システム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2018514269A Active JP6836585B2 (ja) 2015-09-21 2016-07-22 リアルタイム制御システム、リアルタイム制御装置及びシステムの制御方法
JP2018514281A Active JP6771027B2 (ja) 2015-09-21 2016-07-22 Gpos連動型リアルタイムロボット制御システム及びこれを用いたリアルタイムデバイス制御システム

Country Status (5)

Country Link
US (3) US11135719B2 (ja)
EP (3) EP3354416A4 (ja)
JP (3) JP6938473B2 (ja)
KR (4) KR102235166B1 (ja)
CN (3) CN108025436B (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106737686A (zh) * 2017-01-18 2017-05-31 成都黑盒子电子技术有限公司 一种机器人互动内容扩展方法及系统
CN107584491B (zh) * 2017-09-29 2020-03-24 深圳市盛路物联通讯技术有限公司 一种基于测向天线的机器人移动控制方法及设备
KR102370493B1 (ko) 2017-10-30 2022-03-04 현대자동차주식회사 로봇을 이용한 공유 모빌리티 시스템 및 제어방법
JP6969447B2 (ja) 2018-03-05 2021-11-24 日本電産株式会社 ロボット制御装置、記録の作成方法およびプログラム
WO2019178144A1 (en) * 2018-03-12 2019-09-19 Creator, Inc. Control system architecture and distributed human-machine interface for robot control
US10678228B2 (en) * 2018-04-04 2020-06-09 Invia Robotics, Inc. Autonomous robots performing concerted operation based on shared sensory access and holistic flow of information
EP3812853B1 (en) 2018-06-22 2024-01-17 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
SG11202010173TA (en) 2018-06-22 2020-11-27 Soft Servo Systems Inc Motion control program, motion control method, and motion control device
EP3812854B1 (en) * 2018-06-22 2023-09-06 Soft Servo Systems, Inc. Motion control program, motion control method, and motion control device
US11325263B2 (en) * 2018-06-29 2022-05-10 Teradyne, Inc. System and method for real-time robotic control
US10848160B2 (en) * 2018-07-10 2020-11-24 Aerotech, Inc. Devices, systems, and methods for reducing jitter in control systems
KR102511813B1 (ko) * 2018-08-10 2023-03-20 카와사키 주코교 카부시키 카이샤 중개 장치 및 중개 방법
US10949800B2 (en) * 2018-12-21 2021-03-16 Invia Robotics, Inc. Partitioning and coalescing operation of robots for coordinated autonomous execution
JP7303061B2 (ja) * 2019-01-10 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7303132B2 (ja) * 2019-01-10 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7303131B2 (ja) * 2019-01-23 2023-07-04 モベンシス株式会社 モーション制御プログラム、モーション制御方法及びモーション制御装置
JP7417356B2 (ja) * 2019-01-25 2024-01-18 株式会社ソニー・インタラクティブエンタテインメント ロボット制御システム
JP7216357B2 (ja) * 2019-03-01 2023-02-01 日本電気株式会社 制御装置、制御システム、ネットワークシステム、制御方法、制御プログラムおよび光ネットワークシステム
CN110008267B (zh) * 2019-03-12 2022-06-14 北京国电智深控制技术有限公司 一种数据处理的系统及方法
CN111745636B (zh) * 2019-05-15 2022-01-07 北京京东乾石科技有限公司 机器人控制方法及控制系统、存储介质及电子设备
CN110297471B (zh) * 2019-06-24 2021-10-01 佛山智异科技开发有限公司 一种工业机器人实验数据的采集方法及其采集装置
CN110497410A (zh) * 2019-08-22 2019-11-26 苏州浪潮智能科技有限公司 一种机器人控制系统及方法
KR102216824B1 (ko) * 2019-11-04 2021-02-18 (주)로보티즈 로봇 시스템의 구동부 연동 모듈 및 방법
JP7444591B2 (ja) * 2019-12-04 2024-03-06 ファナック株式会社 制御装置
CN111085999B (zh) * 2019-12-18 2022-11-15 达闼机器人股份有限公司 机器人控制方法、装置、系统及机器人控制器
US11498211B2 (en) * 2019-12-30 2022-11-15 Intrinsic Innovation Llc Composability framework for robotic control system
CN111061203A (zh) * 2019-12-31 2020-04-24 深圳市优必选科技股份有限公司 机器人的实时控制系统及机器人
CN111745651B (zh) * 2020-06-15 2022-04-05 哈工大机器人(合肥)国际创新研究院 一种智能机器人操作系统结构及其运作方法
KR20230091111A (ko) * 2020-10-12 2023-06-22 더 존스 홉킨스 유니버시티 로봇 워치독
CN112757291A (zh) * 2020-12-24 2021-05-07 北方工业大学 一种水下设施表面攀爬机器人通信系统及其控制方法
CN112936276B (zh) * 2021-02-05 2023-07-18 华南理工大学 基于ros系统的类人机器人关节多级控制装置及方法
US20220347844A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US20220347846A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US20220347841A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
CN114932961B (zh) * 2022-06-15 2023-10-10 中电海康集团有限公司 一种四足机器人运动控制系统
KR20240011342A (ko) * 2022-07-19 2024-01-26 코가로보틱스 주식회사 로봇 제어를 위한 데이터 처리 장치 및 방법

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117605A (ja) * 1984-11-14 1986-06-05 Hitachi Ltd ロボツトの制御方法
JPS63289607A (ja) * 1987-05-21 1988-11-28 Toshiba Corp 知能ロボットのモジュ−ル間通信制御方式
US5047700A (en) * 1988-03-23 1991-09-10 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Universal computer control system for motors
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
JPH0538689A (ja) * 1991-07-29 1993-02-19 Toshiba Corp 多関節ロボツトの分散制御システム
JP3832517B2 (ja) * 1996-07-05 2006-10-11 セイコーエプソン株式会社 ロボット用コントローラ及びその制御方法
JP3269003B2 (ja) 1997-05-12 2002-03-25 川崎重工業株式会社 ロボット制御装置
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
JP4402797B2 (ja) * 2000-03-02 2010-01-20 株式会社日立製作所 情報処理装置
JP3486774B2 (ja) 2000-03-13 2004-01-13 住友重機械工業株式会社 多軸制御システム
JP2002187082A (ja) * 2000-10-11 2002-07-02 Sony Corp ロボット制御システム及びロボット制御方法
US6442451B1 (en) * 2000-12-28 2002-08-27 Robotic Workspace Technologies, Inc. Versatile robot control system
JP3826004B2 (ja) 2001-10-04 2006-09-27 オークマ株式会社 数値制御装置及び制御方法
JP3577028B2 (ja) * 2001-11-07 2004-10-13 川崎重工業株式会社 ロボットの協調制御システム
KR100454714B1 (ko) 2002-02-16 2004-11-05 한국과학기술연구원 작업용 로봇, 작업용 로봇을 위한 액츄에이터 및 작업용 로봇의 제어방법
KR100520779B1 (ko) * 2003-01-09 2005-10-12 삼성중공업 주식회사 Fpga를 이용한 다 축 위치 제어장치
JP3920818B2 (ja) * 2003-07-22 2007-05-30 株式会社東芝 スケジューリング方法および情報処理システム
JP4661074B2 (ja) 2004-04-07 2011-03-30 ソニー株式会社 情報処理システム、情報処理方法、並びにロボット装置
US20060010446A1 (en) 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
JP2006146758A (ja) * 2004-11-24 2006-06-08 Matsushita Electric Ind Co Ltd コンピュータシステム
US7554560B2 (en) * 2004-12-24 2009-06-30 Donald Pieronek System for defining network behaviors within application programs
JP2006255797A (ja) 2005-03-15 2006-09-28 Sanyo Electric Co Ltd ロボット装置
JP2007011978A (ja) 2005-07-04 2007-01-18 Toyota Motor Corp ロボットの運動制御装置
KR20070075957A (ko) * 2006-01-17 2007-07-24 주식회사 로보스타 멀티 타스킹을 위한 타스크 기반 로봇 제어시스템
US20080027580A1 (en) 2006-07-28 2008-01-31 Hui Zhang Robot programming method and apparatus with both vision and force
KR100896705B1 (ko) * 2007-02-06 2009-05-14 한국과학기술연구원 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
KR100906121B1 (ko) 2007-10-25 2009-07-07 강원대학교산학협력단 이종 인터페이스들로 구성된 모듈 기반의 지능형로봇시스템을 위한 계층 구조 및 이의 구조화 방법
WO2009089914A1 (en) * 2008-01-18 2009-07-23 Abb Technology Ab A control system for controlling an industrial robot
WO2009123650A1 (en) * 2008-04-02 2009-10-08 Irobot Corporation Robotics systems
CN101826032B (zh) * 2009-03-06 2013-07-31 盈威力新能源科技(上海)有限公司 一种高效实时多任务操作系统内核
IL203642A (en) * 2010-02-01 2014-01-30 Yesaiahu Redler A system and method for optimizing electric current utilization in the control of multiplex motors, and a projectile device containing it
US8364314B2 (en) 2009-04-30 2013-01-29 GM Global Technology Operations LLC Method and apparatus for automatic control of a humanoid robot
KR101234204B1 (ko) * 2010-08-11 2013-02-18 한국과학기술원 로봇의 고 신뢰도 분산 제어를 위한 실시간 감시 방법
JP5582992B2 (ja) 2010-12-13 2014-09-03 川崎重工業株式会社 ロボット教示データの算出方法およびロボットのコントローラ
KR101809973B1 (ko) * 2011-01-24 2017-12-19 삼성전자주식회사 로봇 제어 시스템 및 로봇 제어 방법
JP5613114B2 (ja) 2011-06-29 2014-10-22 本田技研工業株式会社 分散制御システム
DE102011107169A1 (de) * 2011-07-13 2013-01-17 Kuka Roboter Gmbh Steuerung eines Roboter
EP2575002B1 (de) 2011-09-28 2018-02-21 Siemens Aktiengesellschaft Verfahren und Virtualisierungssoftware für die Bereitstellung von unabhängigen Zeitquellen für virtuelle Laufzeitumgebungen
KR101337650B1 (ko) * 2011-11-02 2013-12-05 삼성중공업 주식회사 실시간 위빙 모션 제어 장치 및 그 방법
KR101275020B1 (ko) 2011-11-18 2013-06-17 한국생산기술연구원 통신망을 이용한 로봇 개발 플랫폼의 집단협업공간 제공시스템
KR101399588B1 (ko) 2012-03-29 2014-05-27 주식회사 엔티리서치 의료용 수술 로봇 장치
JP5943676B2 (ja) * 2012-03-30 2016-07-05 株式会社デンソーウェーブ ロボットの制御システム及びエンコーダシステム
US9461471B2 (en) * 2012-06-20 2016-10-04 Causam Energy, Inc System and methods for actively managing electric power over an electric power grid and providing revenue grade date usable for settlement
JP2014027595A (ja) * 2012-07-30 2014-02-06 Yamaha Corp 音響信号処理方法および音声信号処理システム
EP2904492A1 (en) * 2012-10-01 2015-08-12 ABB Technology Ltd. Symmetric multi-processor arrangement, safety critical system, and method therefor
US9527211B2 (en) * 2013-05-10 2016-12-27 Cnh Industrial America Llc Control architecture for multi-robot system
KR101491622B1 (ko) 2014-02-17 2015-02-11 연세대학교 산학협력단 자율 주행형 차량의 주행 제어 장치 및 방법
US20160019105A1 (en) * 2014-07-16 2016-01-21 Machiko MIKAMI Computer embedded apparatus, recording medium and computer embedded apparatus test system
US11299161B2 (en) * 2016-12-21 2022-04-12 Honda Motor Co., Ltd. Vehicle control system, vehicle control method, and storage medium
WO2018132608A2 (en) * 2017-01-12 2018-07-19 Mobileye Vision Technologies Ltd. Navigation based on occlusion zones
WO2018162521A1 (en) * 2017-03-07 2018-09-13 Robert Bosch Gmbh Action planning system and method for autonomous vehicles
US10513268B2 (en) * 2017-04-07 2019-12-24 Steering Solutions Ip Holding Corporation Vehicle safety system
JP6704890B2 (ja) * 2017-11-08 2020-06-03 本田技研工業株式会社 車両制御装置、車両制御方法、およびプログラム
US10423558B1 (en) * 2018-08-08 2019-09-24 Apple Inc. Systems and methods for controlling data on a bus using latency

Also Published As

Publication number Publication date
EP3354416A4 (en) 2019-05-29
US20180229367A1 (en) 2018-08-16
JP2018527680A (ja) 2018-09-20
KR102235947B1 (ko) 2021-04-05
KR20170034752A (ko) 2017-03-29
EP3354415A4 (en) 2019-08-21
CN108136578B (zh) 2021-08-20
US20180281195A1 (en) 2018-10-04
US10864635B2 (en) 2020-12-15
EP3354416A1 (en) 2018-08-01
US10857672B2 (en) 2020-12-08
CN108136577B (zh) 2021-10-08
CN108025436B (zh) 2021-08-03
CN108136577A (zh) 2018-06-08
KR102235167B9 (ko) 2021-09-17
JP2018530443A (ja) 2018-10-18
JP6836585B2 (ja) 2021-03-03
JP6771027B2 (ja) 2020-10-21
EP3354415A1 (en) 2018-08-01
KR20170034753A (ko) 2017-03-29
KR102235166B1 (ko) 2021-04-02
KR102235167B1 (ko) 2021-04-02
EP3354417A1 (en) 2018-08-01
CN108025436A (zh) 2018-05-11
US11135719B2 (en) 2021-10-05
EP3354417A4 (en) 2019-07-10
KR20170034755A (ko) 2017-03-29
JP2018535468A (ja) 2018-11-29
KR102235168B1 (ko) 2021-04-02
KR20170034754A (ko) 2017-03-29
US20180281187A1 (en) 2018-10-04
CN108136578A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
JP6938473B2 (ja) 階層的なアーキテクチャを有するリアルタイムデバイス制御システム及びこれを用いたリアルタイムロボット制御システム
Orebäck et al. Evaluation of architectures for mobile robotics
KR100896705B1 (ko) 지능형 로봇의 지능적 작업 관리를 위한 컴포넌트 기반의 작업 관리 시스템
Cui et al. Refresh: A self-adaptation framework to support fault tolerance in field mobile robots
WO2017052060A1 (ko) 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
Kim et al. Implementation of multi-functional service robots using tripodal schematic control architecture
Cui et al. A mechanism for real-time decision making and system maintenance for resource constrained robotic systems through ReFrESH
KR101277275B1 (ko) 로봇 시스템의 행위 기반 태스크 구현 방법
Yasuda Discrete event behavior-based distributed architecture design for autonomous intelligent control of mobile robots with embedded petri nets
Nebot et al. A framework for the development of cooperative robotic applications
Wirkus Towards robot-independent manipulation behavior description
Chen et al. A simulation environment for OpenRTM-aist
Frazao et al. Agent-based software architecture for multi-robot teams
Jawawi et al. Early-life cycle reuse approach for component-based software of autonomous mobile robot system
Jahn et al. Design of an operator-controller based distributed robotic system
Nalepa Prototype prolog API for mindstorms NXT
Reichardt et al. Principles in framework design applied in networked robotics
Colon Annex F–SURVEY OF ROBOTIC CONTROL AND TELEOPERATION ARCHITECTURES
Hassan et al. ARTiSt—An Augmented Reality Testbed for Intelligent Technical Systems
Hannebauer et al. Team Cooperation Using Dual Dynamics

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180326

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210901

R150 Certificate of patent or registration of utility model

Ref document number: 6938473

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150