(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-26
(54)【発明の名称】舞台自動化システム
(51)【国際特許分類】
G06F 9/46 20060101AFI20221019BHJP
H04N 5/222 20060101ALI20221019BHJP
【FI】
G06F9/46 420Z
H04N5/222
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022510830
(86)(22)【出願日】2020-08-14
(85)【翻訳文提出日】2022-04-14
(86)【国際出願番号】 US2020046476
(87)【国際公開番号】W WO2021034703
(87)【国際公開日】2021-02-25
(32)【優先日】2019-08-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-01-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522062195
【氏名又は名称】イザトゥ アイピー エルエルシー
(74)【代理人】
【識別番号】100128347
【氏名又は名称】西内 盛二
(72)【発明者】
【氏名】マスト,ライアン
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA35
5C122DA42
5C122EA55
5C122FL00
5C122GA01
5C122GA23
5C122GC07
5C122GC14
5C122GC75
5C122GF04
5C122GG21
5C122HA13
5C122HA82
(57)【要約】
舞台自動化システムは第1と第2実行プログラムを含み、第1と第2実行プログラムはそれぞれ第1と第2動作可能機構を選択的に制御する。舞台自動化システムは、第1動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを第1実行プログラムから受信し、分散型プログラムオブジェクトアナウンスを第2実行プログラムに送信し、第2実行プログラムから1つ又は複数のデータパケットを受信し、1つ又は複数の受信されたデータパケットに基づいて分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整し、1つ又は複数のデータパケットを第1実行プログラムに送信することにより、第1実行プログラムが第1動作可能機構に関連付けられた分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整する舞台自動化サーバを含むことができる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1実行プログラムと、第2実行プログラムと、舞台自動化サーバとを含む舞台自動化システムであって、
前記第1実行プログラムは、第1動作可能機構を選択的に制御するように構成され、
前記第2実行プログラムは、第2動作可能機構を選択的に制御するように構成され、
前記舞台自動化サーバは、ネットワークプロトコルを介して前記第1実行プログラムおよび前記第2実行プログラムに通信可能に結合され、前記舞台自動化サーバは、メモリに記憶されたプログラムコマンドセットを実行するように構成された1つ又は複数のプロセッサを含み、
前記プログラムコマンドセットは、前記1つ又は複数のプロセッサに、
前記第1動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを前記第1実行プログラムから受信することと、
前記第1動作可能機構に関連付けられた分散型プログラムオブジェクトであって前記1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトを生成することと、
分散型プログラムオブジェクトアナウンスを前記第2実行プログラムに送信することと、
前記第2実行プログラムから1つ又は複数のデータパケットを受信することと、
1つ又は複数の受信されたデータパケットに基づいて、メモリに記憶された前記分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整することと、
1つ又は複数のデータパケットを前記第1実行プログラムに送信することと、
を実行させるように構成され、
前記1つ又は複数のデータパケットは、前記第1実行プログラムが前記第1動作可能機構に関連付けられた前記分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整するように構成され、
前記第1実行プログラムは、前記少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた前記第1動作可能機構の1つ又は複数の特性を調整するように構成される、
ことを特徴とする舞台自動化システム。
【請求項2】
前記舞台自動化サーバは、さらに、
前記第1実行プログラムから1つ又は複数のデータパケットを受信し、且つ、
1つ又は複数の受信されたデータパケットに基づいて、メモリに記憶された前記分散型プログラムオブジェクトの1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整するように構成される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項3】
前記第1動作可能機構又は前記第2動作可能機構のうちの少なくとも1つは、モータ、リニアモータ、ブレーキ、バルブ、ソレノイド、電源、又はランプのうちの少なくとも1つを含む、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項4】
前記第1動作可能機構又は前記第2動作可能機構のうちの少なくとも1つは、1つ又は複数の動作可能アセンブリの1つ又は複数の特性を調整するように構成される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項5】
前記1つ又は複数の動作可能アセンブリは、舞台昇降機、ラインセット、スクリーンレール、ウインチ、又は回転台のうちの少なくとも1つを含む、
ことを特徴とする請求項4に記載の舞台自動化システム。
【請求項6】
前記分散型プログラムオブジェクトアナウンスは、前記1つ又は複数のタイムスタンプ付き変数のセットを定義する1つ又は複数の値タイプのセットを含み、それによって前記1つ又は複数のタイムスタンプ付き変数のセットにおける各タイムスタンプ付き変数は、1つ又は複数の値タイプのセットにおける値タイプにより定義される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項7】
前記1つ又は複数の値タイプのセットは、ブール値タイプ、長整数値タイプ、二重浮動小数点値タイプ、文字列値タイプ、又はバイトアレイ値タイプのうちの少なくとも1つを含む、
ことを特徴とする請求項6に記載の舞台自動化システム。
【請求項8】
前記分散型プログラムオブジェクトアナウンスは、タイムスタンプ付き変数のセットを定義する1つ又は複数の変数モードのセットを含み、それによって前記1つ又は複数のタイムスタンプ付き変数のセットにおける各タイムスタンプ付き変数は、1つ又は複数の変数モードのセットにおける変数モードにより定義される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項9】
前記1つ又は複数の変数モードのセットは、パブリッシュ変数モード、サブスクライブ変数モード、又はオムニパブリッシュ変数モードのうちの少なくとも1つを含む、
ことを特徴とする請求項8に記載の舞台自動化システム。
【請求項10】
前記分散型プログラムオブジェクトアナウンスは、タイムスタンプ付き変数のセットを定義する1つ又は複数の値タイプのセットを含み、それによって前記1つ又は複数のタイムスタンプ付き変数のセットにおける各タイムスタンプ付き変数は、1つ又は複数の値タイプのセットにおける値タイプにより定義される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項11】
前記1つ又は複数のタイムスタンプ付き変数のセットにおける各タイムスタンプ付き変数は、汎用一意識別子(UUID)を含む、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項12】
前記ネットワークプロトコルは、伝送制御プロトコル(TCP)ネットワーク及びシリアルネットワークのうちの少なくとも1つを含む、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項13】
前記舞台自動化サーバは、さらに、
ユーザインターフェースから1つ又は複数の入力コマンドを受信し、且つ、
前記ユーザインターフェースから受信された1つ又は複数の入力コマンドに基づいて、メモリに記憶された前記分散型プログラムオブジェクトの前記1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整するように構成される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項14】
前記第1動作可能機構に関連付けられた前記1つ又は複数のタイムスタンプ付き変数のセットは、前記第1動作可能機構の1つ又は複数の動作特性を定義する、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項15】
1つ又は複数の動作特性は、前記第1動作可能機構の動作状態、位置、速度、加速度、故障状態及び電圧のうちの少なくとも1つを含む、
ことを特徴とする請求項14に記載の舞台自動化システム。
【請求項16】
前記舞台自動化サーバは、さらに、
キューシートをメモリに記憶し、前記キューシートが、前記第1動作可能機構によって実行され得る第1コマンド、および前記第2動作可能機構によって実行され得る第2コマンドを含むように構成される、
ことを特徴とする請求項1に記載の舞台自動化システム。
【請求項17】
前記舞台自動化サーバは、さらに、
第1コマンドに関連付けられた1つ又は複数のデータパケットを前記第1実行プログラムに送信し、前記第1実行プログラムが第1作動機構の少なくとも1つのタイムスタンプ付き変数を調整して前記第1コマンドを実行するように構成され、および、
第2コマンドに関連付けられた1つ又は複数のデータパケットを前記第2実行プログラムに送信し、前記第2実行プログラムが第2作動機構の少なくとも1つのタイムスタンプ付き変数を調整して前記第2コマンドを実行するように構成される、
ことを特徴とする請求項16に記載の舞台自動化システム。
【請求項18】
舞台自動化システムであって、
ネットワークプロトコルを介して1つ又は複数の実行プログラムに通信可能に結合される舞台自動化サーバを含み、前記舞台自動化サーバは、メモリに記憶されたプログラムコマンドセットを実行するように構成された1つ又は複数のプロセッサを含み、
前記プログラムコマンドセットは、前記1つ又は複数のプロセッサに、
第1実行プログラムで実行される動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを前記第1実行プログラムから受信することと、
1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトをメモリに生成することと、
分散型プログラムオブジェクトを少なくとも1つの別の実行プログラムに送信することと、
前記少なくとも1つの別の実行プログラムから1つ又は複数のデータパケットを受信することと、
1つ又は複数の受信されたデータパケットに基づいて、メモリに記憶された前記分散型プログラムオブジェクトの前記1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整することと、
1つ又は複数のデータパケットを前記第1実行プログラムに送信することと、
を実行させるように構成され、
前記1つ又は複数のデータパケットは、前記第1実行プログラムが動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のうちの少なくとも1つのタイムスタンプ付き変数を調整するとともに、少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた前記動作可能機構の1つ又は複数の特性を調整するように構成される、
ことを特徴とする舞台自動化システム。
【請求項19】
前記舞台自動化サーバは、さらに、
前記第1実行プログラムから1つ又は複数のデータパケットを受信し、且つ、
前記1つ又は複数の受信されたデータパケットに基づいて、メモリに記憶された前記分散型プログラムオブジェクトの1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整するように構成される、
ことを特徴とする請求項18に記載の舞台自動化システム。
【請求項20】
方法であって、
第1実行プログラムにより選択的に制御された第1動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを前記第1実行プログラムから受信することと、
前記第1動作可能機構に関連付けられた分散型プログラムオブジェクトであって前記1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトを生成することと、
分散型プログラムオブジェクトを第2実行プログラムに送信することと、
前記第2実行プログラムから1つ又は複数のデータパケットを受信することと、
1つ又は複数の受信されたデータパケットに基づいて、前記分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整することと、
少なくとも1つの調整されたタイムスタンプ付き変数を示す1つ又は複数のデータパケットを前記第1実行プログラムに送信することと、
前記少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた前記第1動作可能機構の1つ又は複数の特性を選択的に調整することと、を含む、
ことを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
(関連出願の相互参照)
本願は、2019年8月16日に提出された出願番号が62/887,998である米国仮特許出願、2019年9月20日に提出された出願番号が62/938,118である米国仮特許出願、および2020年1月24日に提出された出願番号が16/751,984である米国非仮特許出願の優先権を要求し、上記特許出願のそれぞれはその全体が引用により本明細書に組み込まれる。
【技術分野】
【0002】
本発明は、一般的に舞台自動化のためのシステムおよび方法に関し、特に舞台自動化のためのハードウェア、並びにプロトコルアグノスティックなシステム及び方法に関する。
【背景技術】
【0003】
例えば、コンサート、ドラマ、およびスポーツイベントのライブイベントの背景において、複数の各種コンポーネントおよび機器が互いに協働して、ライブイベントの全ての移動および特徴を正確に実行する必要とされる恐れがある。例えば、コンサートの場合、舞台自動化システムは、ランプ、舞台昇降機、および舞台アイテムを移動するように配置されたウインチを含むことができ、全てのアイテムは、コンサート期間全体において互いに協力して(例えば、協調して)個性化のコマンドを実行しなければならない。しかしながら、多くの舞台自動化システムは、異なるメーカからのハードウェアを含み、これらのハードウェアは、異なるソフトウェアプログラム及び通信プロトコルで実行するように構成されてもよい。この点において、従来の舞台自動化システムは、舞台自動化システム内の各ハードウェアデバイスと通信及び制御を行うための効果的なメカニズムを有していない。
【0004】
例えば、従来の舞台自動化システムの多くは、ネットワークを介してインデックスされた「レジスタ」を読み書きすることにより、ネットワーク(例えば、TCP/IPネットワーク、RS-485又はCANbusなどのシリアル/バス型ネットワーク)を介して互いに通信する。あるサーボドライバの位置及び速度情報を取得するために、従来の自動化システムのコントローラをプログラミングすることにより、ドライバに一般的な機能を実行する必要がある。例えば、各種サーボドライバに対して、モータをオンにし、ブレーキを解放し、かつ前向きに移動するには、コントローラは、第1製造メーカにより製造された第1サーボドライバに3つの独立したレジスタを設け、かつ第2製造メーカにより製造された第2サーボドライバに特定の順序で2つの独立したレジスタを設ける必要が生じる恐れがある。当該例では、コントローラを第1サーボドライバ及び第2サーボドライバの両方と対話させるために、どのレジスタインデックスがある機能を実行するのか、各サーボドライバが16/32/64ビットで動作するか否か、各サーボドライバがどのバイトシーケンスタイプを使用して数値データを記憶して送信するのか、およびどのように第1サーボドライバおよび第2サーボドライバのそれぞれに特定の機能を実行するための特定のプログラミングを含むマッピングを必要とする。
【0005】
以上の例に示されるように、異なるメーカからのハードウェアおよびソフトウェアを含む従来の舞台自動化システムでは、過度、冗長なプログラミングを必要として、各種デバイスの間の効果的な協調および通信を実現することが可能となる。また、舞台自動化システムのハードウェア/ソフトウェアデバイスごとにプログラミングを実行することが必要となるため、従来のシステムでは、修正および/または拡張が困難であった。そこで、当該分野において、上記従来方法の1つ又は複数の欠陥を補うためのシステムおよび方法を必要とする。
【発明の概要】
【0006】
舞台自動化システムを開示する。実施例において、舞台自動化システムは、第1動作可能機構を選択的に制御するように構成される第1実行プログラムと、第2動作可能機構を選択的に制御するように構成される第2実行プログラムとを含む。舞台自動化システムは、さらに舞台自動化サーバを含むことができ、前記舞台自動化サーバは、第1動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを第1実行プログラムから受信し、第1動作可能機構に関連付けられた分散型プログラムオブジェクトであって1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトを生成し、分散型プログラムオブジェクトアナウンスを第2実行プログラムに送信し、第2実行プログラムから1つ又は複数のデータパケットを受信し、1つ又は複数の受信されたデータパケットに基づいてメモリに記憶された分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整し、且つ、1つ又は複数のデータパケットを第1実行プログラムに送信するように構成される。実施例において、1つ又は複数のデータパケットは、第1実行プログラムが第1動作可能機構に関連付けられた分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整するように構成され、かつ第1実行プログラムは、少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた第1動作可能機構の1つ又は複数の特性を調整するように構成される。
【0007】
舞台自動化システムを開示する。実施例において、舞台自動化システムは、ネットワークプロトコルを介して1つ又は複数の実行プログラムに通信可能に結合される舞台自動化サーバを含む。実施例において、舞台自動化サーバは、第1実行プログラムで実行される動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを第1実行プログラムから受信し、1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトをメモリに生成し、分散型プログラムオブジェクトを少なくとも1つの別の実行プログラムに送信し、少なくとも1つの別の実行プログラムから1つ又は複数のデータパケットを受信し、1つ又は複数の受信されたデータパケットに基づいて、メモリに記憶された分散型プログラムオブジェクトの1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整し、且つ、1つ又は複数のデータパケットを第1実行プログラムに送信するように構成される。いくつかの実施例において、当該1つ又は複数のデータパケットは、第1実行プログラムが動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のうちの少なくとも1つのタイムスタンプ付き変数を調整するとともに、少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた動作可能機構の1つ又は複数の特性を調整するように構成される。
【0008】
方法を開示する。実施例において、当該方法は、第1実行プログラムにより選択的に制御された第1動作可能機構に関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトアナウンスを第1実行プログラムから受信することと、第1動作可能機構に関連付けられた分散型プログラムオブジェクトであって1つ又は複数のタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトを生成することと、分散型プログラムオブジェクトを第2実行プログラムに送信することと、第2実行プログラムから1つ又は複数のデータパケットを受信することと、1つ又は複数の受信されたデータパケットに基づいて分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整することと、少なくとも1つの調整されたタイムスタンプ付き変数を示す1つ又は複数のデータパケットを第1実行プログラムに送信することと、少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた第1動作可能機構の1つ又は複数の特性を選択的に調整することとを含む。
【0009】
添付図面を参照することによって、当業者は、本発明の多くの利点をより良く理解することができるであろう。
【図面の簡単な説明】
【0010】
【
図1】本発明の1つ又は複数の実施例による舞台自動化システムの簡略化ブロック図を示す。
【
図2A】本発明の1つ又は複数の実施例による舞台自動化システムのアナウンスデータパケットを示す。
【
図2B】本発明の1つ又は複数の実施例による舞台自動化システムの第1ステージハンドシェイクデータパケットを示す。
【
図2C】本発明の1つ又は複数の実施例による舞台自動化システムの第2ステージハンドシェイクデータパケットを示す。
【
図3A】本発明の1つ又は複数の実施例による、パブリッシュ変数モードを有するタイムスタンプ付き変数と、オムニパブリッシュ変数モードを有するタイムスタンプ付き変数との概念図である。
【
図3B】本発明の1つ又は複数の実施例による、パブリッシュ変数モードを有するタイムスタンプ付き変数と、オムニパブリッシュ変数モードを有するタイムスタンプ付き変数との概念図である。
【
図3C】本発明の1つ又は複数の実施例による、パブリッシュ変数モードを有するタイムスタンプ付き変数と、オムニパブリッシュ変数モードを有するタイムスタンプ付き変数との概念図である。
【
図4】本発明の1つ又は複数の実施例による、コマンドを実行するコンポーネントの位置と速度制限を描画するグラフ400を示す。
【
図5】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6A-1】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6A-2】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6B-1】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6B-2】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6C】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6D】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6E-1】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図6E-2】本発明の1つ又は複数の実施例による舞台自動化システムの概念図を示す。
【
図7A】本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【
図7B】本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【
図7C】本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【
図7D】本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【
図7E】本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【
図8】本発明の1つ又は複数の実施例による舞台自動化システムを操作するための方法のフローチャートを示す。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本発明を詳細に説明する。
【0012】
総体的に
図1~8を参照し、本発明は、一般的に協調のための舞台自動化のシステムおよび方法に関する。特に、本発明の実施例は、舞台自動化システムに関し、当該舞台自動化システムは、コモンコミュニケーションアンブレラの下で異なる製造メーカにより製造された(かつしたがって異なるソフトウェア/実行プログラムで操作された)動作可能機構(例えば、機械デバイス)を連合するように配置される。本発明の別の実施例は、舞台自動化システムを制御する方法に関し、当該舞台自動化システムは、変化する実行プログラムを操作するための運動デバイスを複数含む。
【0013】
ここで予想されるように、本発明の実施例は、舞台自動化システム内の変化する動作可能機構の効果的な通信および連携を促進することができる。共通通信プロトコルを利用して各動作可能機構と通信して舞台自動化システム内でプログラムを実行することにより、本発明の実施例は、高度な協調で拡張可能な舞台自動化システムを実現することができる。
【0014】
図1は、本発明の1つ又は複数の実施例による舞台自動化システム100の簡略化ブロック図を示す。舞台自動化システム100は、1つ以上の動作可能アセンブリ102、1つ以上の動作可能機構104、1つ以上の実行プログラム106、舞台自動化サーバ108およびユーザインターフェース114を含むが、これらに限定されるものではない。
【0015】
一実施例において、舞台自動化システム100は、ハードウェアおよびソフトウェアアグノスティックな自動化を実現するために、ライブパフォーマンスのコンテキストで使用することができる。例えば、舞台自動化システム100は、コンサート、ドラマ、スポーツ競技などのコンテキストにおけるハードウェア(例えば、動作可能アセンブリ102、動作可能機構104)を制御するために用いられる。実施例において、舞台自動化システム100の各実施形態は、「環境」に限定/記述されてもよく、それによって第1コンサートのコンテキストで実現された舞台自動化コンポーネント100が第1環境により識別され、かつ第2コンサートのコンテキストで実現された舞台自動化コンポーネント100が第2環境により識別される。実施例において、環境は、少なくとも舞台自動化サーバ108および1つ又は複数の実行プログラム106を含むことができる。環境は、一意のUUIDと、対応する環境を初期化した日時と、環境を初期化してから秒単位の動作クロックとによって定義することができる。各環境に関連付けられたデータは、舞台自動化サーバ108のメモリ112に記憶されてもよい。環境は、さらに特定の環境を確立するプロファイルのUUIDによって定義されてもよい。一般的に、ここで使用されるように、用語「環境」は、舞台自動化システム100の単独の「会話」と捉えることができる。
【0016】
舞台自動化サーバ108は、ローカルサーバ/コントローラおよび/またはリモートサーバ/コントローラを含むことができる。例えば、各環境は、ローカルサーバ/コントローラを含むことができ、それは、対応するパフォーマンス又はイベントを貫通する、環境に関連付けられたデータを制御・記憶する。パフォーマンス/イベントが終了した後、ローカルサーバ/コントローラ(例えば、ローカル舞台自動化サーバ108)は、リモートサーバ/コントローラ(例えば、クラウドに基づく舞台自動化サーバ108)に通信可能に結合され、それによって環境に関連付けられたデータは、集中型のクラウドに基づくサーバ(例えば、クラウドに基づく舞台自動化サーバ108)にアップロードして記憶することができる。なお、ローカルサーバ/コントローラを集中型のクラウドに基づくサーバ(例えば、クラウドに基づく舞台自動化サーバ108)と同期することにより、既知の問題に対して故障検索を行い、分析を行ってコンポーネント問題を調整し、および機械学習分析を行ってオペレータおよび各種コンポーネントを取り囲む予測モデルを生成することができる。
【0017】
実施例において、舞台コンポーネントシステム100は、舞台自動化サーバ108に通信可能に結合された1つ又は複数の実行プログラム106a、106b(例えば、「インスタンス」)を含むことができる。1つ又は複数の実行プログラム106a、106bは、当該分野で既知の任意のネットワークプロトコルを介して舞台自動化サーバ108および/または他の実行プログラム106a、106bと通信可能に結合される。例えば、舞台自動化システム100により利用されるネットワークプロトコルは、伝送制御プロトコル(TCP)又はインターネットプロトコル(IP)ネットワーク(例えば、イーサネット、WiFi)、シリアル又はバス型ネットワーク(例えば、RS-485)等を含むが、これらに限定されるものではない。別の例として、ネットワークプロトコルは、ソケットなしのユーザデータグラムプロトコル(UDP)を含むことができる。実施例において、舞台自動化システム100のコンポーネント(例えば、実行プログラム106a、106b、舞台自動化サーバ108など)の間に確立された通信接続は、例えば、データグラム伝送層セキュリティ(DTLS)、伝送層セキュリティ(TLS)などの非対称かつその後に対称的な暗号化を確立することを介して実行される。
【0018】
1つ以上の実行プログラム106a、106bは、1つ以上の動作可能機構104(例えば、デバイス)を制御するように構成されたソフトウェアおよび/またはコードプログラムを含むことができる。実施例において、各実行ソフトウェアは、UUID、それが所在する環境のUUID、およびインターネットプロトコル(IP)アドレスにより、一意に識別することができる。前文に述べたように、各製造メーカにより製造されたハードウェアおよび工業機構は、変化するソフトウェアプログラムにより実行/制御することができる。この点において、第1実行プログラム106aは、第1組のコンピュータ(例えば、サーバ、仮想マシン、グラフィカルユーザインターフェース(GUI))で実行される第1メーカのソフトウェアおよびコードライブラリを含むことができ、かつ、第2実行プログラム106bは、第2組のコンピュータで実行される第2メーカのソフトウェアおよびコードライブラリを含むことができる。各実行プログラム106a、106bは、個別の実行時構成を含んでもよい。例えば、第1実行プログラム106aは第1構成を有する第1ソフトウェアプログラムを含み、かつ第2実行プログラム106bは第2構成を有する第2ソフトウェアプログラムを含むことができる。
【0019】
実施例において、各実行プログラム106は、1つ又は複数の動作可能機構104a~104n(例えば、「軸」又は「複数の軸」)を選択的に制御するように構成される。1つ以上の動作可能機構104a~104nは、当該分野で既知の任意の有線又は無線通信プロトコル(例えば、TCPネットワーク、シリアル接続など)により、対応する実行プログラム106a-106 nに通信可能に接続される。1つ又は複数の動作可能機構104a~104nは、当該分野で既知の任意の機械又は産業用運動制御デバイスを含むことができ、サーボドライバ、モータ、リニアモータ、ブレーキ、バルブ、エンコーダ、ソレノイド、ランプ、電源などを含むが、これらに限定されるものではない。例えば、動作可能機構104aは、制御技術M700又はKollmorgenAKDを含むことができる。
【0020】
実施例において、1つ又は複数の動作可能機構104a~104nは、1つ又は複数の動作可能アセンブリ102a~102nの1つ又は複数の特性を選択的に制御するように構成される。この点でにおいて、動作可能アセンブリ102a~102nは、移動される物理的な「物」又は「デバイス」と捉えることができ、かつ、動作可能機構104は、「コントローラ」又はデバイスと捉えることができ、動作可能アセンブリ102a~102nは、動作可能機構104により移動される。例えば、1つ又は複数の動作可能アセンブリ102a~102nは、舞台昇降機、線形グループ、スクリーンレール、チェーンモータ、ウインチ、ターンテーブル等を含むが、これらに限定されるものではない。可動機構104a~104nによって選択的に制御可能な動作可能アセンブリ102a~102nの動作特性は、位置/場所、速度、加速度、減速度、動作状態(例えば、「アクティブ/オン」、「インアクティブ/オフ」)、電圧、ワット数、電流、故障状態などを含むが、これらに限定されるものではない。
【0021】
なお、各動作可能アセンブリ102a~102nおよび/または動作可能機構104a~104nは、舞台自動化システム100の特定の環境の三次元(3D)空間内に存在すると記述することができる。各種の動作可能アセンブリ102a~102nおよび/または可動機構104a~104nの3D位置データは、(x、y、z)座標で定義することができる。回転データは、限定され、送信されかつ四元数として舞台自動化システム100内に記憶され、かつオイラー(x、y、z)値としてユーザに表示することができる。本発明を簡略化するために、位置(0、0、0)は、舞台自動化システム100の環境が使用される特定の場所又は位置のバックグラウンドセンターに限定されてもよい。類似した形態で、簡単のために、舞台上では、正のz値に対応する可能性があり、地面/床以上の標高は、正のy値に対応する可能性があり、舞台の左側は、正のx値に対応する可能性がある。しかしながら、当該分野で既知の任意の方式で位置データを示して記述することができ、かつ、任意の参照系について位置データを限定することができると理解されるべきである。
【0022】
実施例において、舞台自動化サーバ108は、1つ又は複数のプロセッサ110およびメモリ112を含むことができ、1つ又は複数のプロセッサ110は、メモリ112に記憶されたプログラムコマンドセットを実行するように構成され、当該プログラムコマンドセットは、1つ又は複数のプロセッサ110が本発明の各種ステップを実行するように構成される。例えば、舞台自動化サーバ108の1つ又は複数のプロセッサ110は、第1実行プログラム106aから分散型プログラムオブジェクトアナウンスを受信し、当該分散型プログラムオブジェクトアナウンスが、第1動作可能機構104aに関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含むこと、第1動作可能機構104aに関連付けられた分散型プログラムオブジェクトを生成し、当該分散型プログラムオブジェクトが1つ又は複数のタイムスタンプ付き変数のセットを含むこと、分散型プログラムオブジェクトを少なくとも第2実行プログラム106bに送信すること、第2実行プログラム106bから1つ又は複数のデータパケットを受信すること、1つ又は複数の受信されたデータパケットに基づいてメモリ112に記憶された分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整すること、1つ又は複数のデータパケットを第1実行プログラム106aに送信することを含むように構成されてもよい。これらの各ステップは、順次行われる。
【0023】
実施例において、舞台自動化サーバ108は、第1実行プログラム106aから分散型プログラムオブジェクトアナウンス(例えば、「XaObject」、「XaValuesAnnonment」)を受信するように構成されてもよく、当該分散型プログラムオブジェクトアナウンスは、第1動作可能機構104aに関連付けられた1つ又は複数のタイムスタンプ付き変数(例えば、「XaValues」)のセットを含む。例えば、第1動作機構104aに関連付けられた第1実行プログラム106aは、分散型プログラムオブジェクトアナウンスを送信することができ、当該分散型プログラムオブジェクトアナウンスは、第1動作機構104aに関連付けられた1つ又は複数のタイムスタンプ付き変数のセットを含む。
【0024】
分散型プログラムオブジェクト(例えば、「XaObject」)は、舞台自動化システム100内において読み取り、記録、およびコマンド機能のオブジェクトを含むことができる。各実行プログラム106aは、各対応する動作可能機構104a~104nに関連付けられた分散型プログラムオブジェクトアナウンスを送信して、対応する動作可能機構104a~104nが環境に存在することを示すことができる。分散型プログラムオブジェクトは、舞台自動化システム100のコンポーネント(例えば、動作可能機構104a)、キュー、又はコマンドに関連付けられた任意の数のタイムスタンプ付き変数を含むことができる。
【0025】
ここで使用されるように、「分散型プログラムオブジェクトアナウンス」は、特定の環境内に存在することをアナウンスするために、特定のコンポーネントから送信されたデータの初期「アナウンス」データパケットと捉えることができる。より具体的には、分散型プログラムオブジェクトアナウンス(例えば、アナウンスデータパケット)は、舞台自動化システムの他のコンポーネントへ特定の実行プログラム106および/または動作可能機構で必ずパブリッシュしまたは使用しようとする1つ又は複数のタイムスタンプ付き変数をアナウンスすることができる。アナウンスデータパケットには、送信コンポーネントに含まれる汎用一意識別子(UUID)のリスト、および、各UUIDの定義が含まれていてもよい。アナウンスデータパケット内の「定義」は、表1に示される以下のバイト列で構成されてもよく、単一のアナウンスデータパケット内に含まれる定義バイトアレイの数は、舞台自動化システム100の最大伝送ユニット(MTU)および最大パケット長さに依存することができる。
(表1)
(アナウンスデータパケットの「定義」バイトアレイ構造)
【0026】
第1動作可能機構104aに関連付けられた1つ又は複数のタイムスタンプ付き変数は、第1動作可能機構104aの任意の特性(例えば、動作特性)に関連付けられた変数を含むことができ、第1動作可能機構104aのある時点での位置、第1動作可能機構104aのある時点での速度、第1動作可能機構104aのある時点でのブレーキ係合状態、第1動作可能機構104aのある時点での接続状態、第1動作可能機構104aのある時点での関連するコマンド又はキューなどを含むがそれらに限定されない。別の例として、タイムスタンプ付き変数は、特定のコンポーネントの他の特性を限定することができ、開始/起動時間、ネットワーク遅延、コマンド、目標位置/速度/加速度、速度クランプ、位置クランプ、キューシートにおける順序などを含むがこれらに限定されるものではない。1つ又は複数のタイムスタンプ付き変数は、タイムスタンプ付き変数を定義するUUID、値が関連付けられたコンポーネント(例えば、動作可能機構104a)のUUID、測定単位、および各タイムスタンプ付き変数がいつキャプチャされたのかを示すタイムスタンプを含むことができる。
【0027】
実施例において、各分散型プログラムオブジェクト(例えば、分散型プログラムオブジェクトアナウンス)は、1つ又は複数の値タイプのセット(例えば「XaValueType」)を含むことができ、それは、各タイムスタンプ付き変数に関連付けられた値のタイプを定義する。この点において、分散型プログラムオブジェクトの各タイムスタンプ付き変数は、値タイプにより定義されてもよい。値タイプは、ブール値タイプ(真/偽)、長整数値タイプ(数字)、ダブル浮動値タイプ(数字)、文字列値タイプ(テキスト)、バイト配列値タイプ(データ)などを含むがこれらに限定されるものではない。例えば、動作可能機構104のDCバス電圧フィードバックを定義するタイムスタンプ付き変数は、二重浮動小数点値タイプ(例えば、「322.12V」)の値タイプにより定義することができる。別の例として、ブレーキ(例えば、動作可能機構104)の状態を定義するタイムスタンプ付き変数は、ブール値タイプ(例えば、オンに対して「真」であり、又はオフに対して「偽」である)により定義されてもよい。別の例として、機器(例えば、動作可能機構104)からの初期エンコーダフィードバックを定義するタイムスタンプ付き変数は、長整数値タイプ(例えば、「103923」)により定義されてもよい。別の例として、タイムスタンプ付き変数は、ドライバ(例えば、動作可能機構104)が報告したブランドおよび/または型番を文字列値タイプ(例えば、「Kollmorgen AKD-TBAN 0607」)に定義することができる。別の例として、ドライバ(例えば、動作可能機構104)のUUIDを定義するタイムスタンプ付き変数は、十六進法のバイトアレイ値タイプで定義することができる(例えば、「2bd2fb25b76849288fbe49874b610287」)。
【0028】
実施例において、各分散型プログラムオブジェクト(例えば、分散型プログラムオブジェクトアナウンス)は、各タイムスタンプ付き変数に関連付けられた各種モードを定義するための1つ又は複数の変数モードのセットを含むことができる。この点において、分散型プログラムオブジェクトの各タイムスタンプ付き変数は、変数モードにより定義されてもよい。各タイムスタンプ付き変数に関連付けられた変数モードは、舞台自動化システム100内の他のコンポーネントがどのように各対応するタイムスタンプ付き変数を見るか、および/または各対応するタイムスタンプ付き変数と対話するかを定義することができる。変数モードは、「パブリッシュ」変数モード、「サブスクライブ」変数モードおよび「オムニパブリッシュ」変数モードを含むことができるが、これらに限定されるものではない。
【0029】
例えば、パブリッシュ変数モードは、タイムスタンプ付き変数に関連付けられたコンポーネントが値を調整/更新可能な唯一のコンポーネントであることを示す。例えば、動作可能機構104がパブリッシュ変数モードを有する動作可能機構104の電流消費を示すタイムスタンプ付き変数を含む場合、動作可能機構104自体のみは、タイムスタンプ付き変数を調整/更新することができ、他のコンポーネントは、このようにすることができない。別の例として、サブスクライブ変数モードは、タイムスタンプ付き変数に依存するコンポーネント(例えば、「サブスクライブ」タイムスタンプ付き変数)が、タイムスタンプ付き変数が更新されるときにパブリッシュされた更新を受信することができることを示す。例えば、第2実行プログラム106bが第1実行プログラム106aのサブスクライブ値タイプを有するタイムスタンプ付き変数をサブスクライブすれば、舞台自動化サーバ108は、タイムスタンプ付き変数を更新する度に、第2実行プログラム106aへデータパケット/分散型プログラムオブジェクトを送信することができる。コンポーネントは、それらとそれら自身の操作との関連性に基づいて、他の分散型プログラムオブジェクトおよび/または単独のタイムスタンプ付き変数をサブスクライブするか又はサブスクライブしないことができる。別の例として、オムニパブリッシュ変数モードは、複数のコンポーネントが値を調整/更新可能であり、かつパブリッシュされた更新をサブスクライブされたコンポーネントに送信することを示す。例えば、ブレーキ(例えば、動作可能機構104)は、オムニパブリッシュ変数モードを有する動作状態(例えば、オン/オフ)を示すタイムスタンプ付き変数を含むことができ、それによって舞台アセンブリシステム100内の任意のコンポーネントは、ブレーキの動作状態(例えば、それをオンにするか又はオフにする)を調整/更新することができる。
【0030】
前文に述べたように、実行プログラム106により送信されたアナウンスデータパケット(例えば、分散型プログラムオブジェクトアナウンスデータパケット)は、特定の実行プログラム106および/または動作可能機構が必ずパブリッシュするか又は使用したい1つ又は複数のタイムスタンプ付き変数を含むことができる。例えば、第1実行プログラム106aにより送信されたアナウンスデータパケットは、第1動作可能機構104aに関連付けられた第1分散型プログラムオブジェクト、第2動作可能機構104bに関連付けられた第2分散型プログラムオブジェクト、第3動作可能機構104cに関連付けられた第3分散型プログラムオブジェクト、動作可能アセンブリ102aに関連付けられた第4分散型プログラムオブジェクトなどに対する定義を含むことができる。アナウンスデータパケットは、各コンポーネント(例えば、動作可能機構104、動作可能アセンブリ102)のタイプ、どのタイムスタンプ付き変数が各対応する分散型プログラムオブジェクトに関連付けられるか、および各タイムスタンプ付き変数の値タイプを記述することができる。例えば、アナウンスデータパケットは、以下の表2にさらに詳細に示される。
(表2)
(アナウンスデータパケット構造)
【0031】
上表に示すように、文字列値タイプを有するタイムスタンプ付き変数は、各タイムスタンプ付き変数キーのバイト数がテキスト文字の数よりも大きくするように、UTF-16で符号化されたテキストを含むことができることに留意すべきである。
【0032】
実施例において、舞台自動化サーバ108は、第1動作可能機構104aに関連付けられた分散型プログラムオブジェクトを生成するように構成され、当該分散型プログラムオブジェクトは、1つ又は複数のタイムスタンプ付き変数のセットを含む。この点において、舞台自動化サーバ108は、第1動作可能機構104aから受信された分散型プログラムオブジェクトを生成し、および/またはそれをメモリ112に記憶するように構成されてもよい。したがって、動作可能機構104aに関連付けられたタイムスタンプ付き変数(例えば、位置、速度、動作状態)は、メモリ112に記憶することができる。また、いくつかの実施例において、実行プログラム106a~106bは、タイムスタンプ付き変数のセットおよび/または単独のタイムスタンプ付き変数を含む分散型プログラムオブジェクトを規則的および/または不規則的な間隔で送信することができる。例えば、第1実行プログラム106aは、十ミリ秒(10ms)毎に、動作可能機構104aに関連付けられたタイムスタンプ付き変数のセットを含む分散型プログラムオブジェクトを送信するように構成されてもよい。この点において、動作可能機構104aに関連付けられたタイムスタンプ付き変数(例えば、位置、速度、動作状態)は、十ミリ秒ごとに更新されてメモリ112に記憶されてもよい。メモリ112は、環境の存在期間全体に舞台自動化システム100の各コンポーネントに関連付けられた全てのタイムスタンプ付き変数を記憶するように構成されてもよく、それによって環境全体における履歴値を容易にサーチして検索することができる。
【0033】
他のコンポーネントの1つ又は複数のタイムスタンプ付き変数をサブスクライブするコンポーネント(例えば、動作可能アセンブリ102、動作可能機構104、実行プログラム106、舞台自動化サーバ108)のコンテキストにおいて、サブスクライブコンポーネントは、サブスクライブインスタンスのタイムスタンプ付き変数をメモリに記憶することができる。この点において、コンポーネントは、それら自身のタイムスタンプ付き変数、およびそれらがサブスクライブするタイムスタンプ付き変数を記憶することができる。コンポーネントは、さらに、ネットワークプロトコルを介して要求パケットを送信することにより、舞台自動化サーバ108から他のコンポーネントの特定のタイムスタンプ付き変数を要求するように構成されてもよい。別の実施例において、舞台アセンブリシステム100のコンポーネントは、記録/記憶されたタイムスタンプ付き変数を舞台自動化サーバ108のメモリ112に記録/記憶されたタイムスタンプ付き変数と同期させるように構成されてもよい。
【0034】
実施例において、いくつかのコンポーネントは、他のコンポーネント又はタイムスタンプ付き変数に「依存」することができ、それによって第1コンポーネントの動作は、第2コンポーネントのタイムスタンプ付き変数に「依存」する。当該例において、第2コンポーネントのタイムスタンプ付き変数は、第1コンポーネントに対して「クリティカル」であると呼ばれてもよい。他のコンポーネントのクリティカルタイムスタンプ付き変数をサブスクライブすることにより、舞台自動化システム100は、内蔵故障状態を有するコンポーネントの分散型、相互接続のネットワークおよび運動を協調するためのコマンドを実現することができる。また、ここでさらに詳細に説明するように、舞台自動化サーバ108および/または別のコンポーネント(例えば、実行プログラム106、動作可能機構104、動作可能アセンブリ102)が所定のウィンドウ内(例えば、20msウィンドウ内)のクリティカルパケット、分散型プログラムオブジェクト、又は別のクリティカルコンポーネントのタイムスタンプ付き変数に依存し、かつ当該コンポーネントが所定のウィンドウ内にクリティカルパケット、分散型プログラムオブジェクト、又はタイムスタンプ付き変数を受信しなければ、当該コンポーネントは、故障状態に入るように設けられてもよい。
【0035】
なお、環境によりイベントの持続時間全体内に生成されたタイムスタンプ付き変数の完全な(又は半完全な)データベースを記憶することは、故障排除に特に有用であり得る。現在、舞台自動化システムは、例えばコンサートのイベントの完全なデータセットを記憶しない。したがって、コンサート中に異常(例えば、舞台昇降機が高度クランプを超え、光線が予想される計画経路から外れる)が発生する場合、これらの異常は、故障を排除しにくく、かつほとんど再現できない。タイムスタンプ付き変数を中央舞台自動化サーバ108に記憶することにより、本発明の実施例は、改善された故障排除および舞台自動化管理を実現することができる。
【0036】
なお、舞台自動化システム100内のコンポーネントは、それぞれ1つ又は複数のプロセッサおよびメモリを含むことができる。例えば、各実行プログラム106a~106nは、1つ又は複数のプロセッサおよびメモリを含むことができ、それによって各実行プログラム106a~106nは、結合されたコンポーネントに関連付けられたタイムスタンプ付き変数をメモリに記憶するように構成されることができる。この点において、特定の動作可能機構104に関連付けられたタイムスタンプ付き変数は、結合された実行プログラム106、舞台自動化サーバ108などのメモリに記憶することができる。同様に、舞台自動化システム100内の各コンポーネント(例えば、舞台自動化サーバ、実行プログラム106)は、メッセージエージェントを含むことができ、当該メッセージエージェントは、タイムスタンプ付き変数更新および舞台自動化システム100全体の分散型プログラムオブジェクトを送信および/または受信するように構成される。
【0037】
実施例において、確認(ACK)および否定確認(NACK)パケットは、舞台自動化システム100のアプリケーション層内で処理されて送信されてもよく、それによって未受信のデータパケットは、送信実行プログラム106のUUIDおよびシリアル番号の符号なし長整数値により識別され、かつ再送信されることができる。
【0038】
舞台自動化システム100のネットワークプロトコルを介して送信された、分散型プログラムオブジェクトおよび/またはタイムスタンプ付き変数を含むデータパケットは、ネットワーク遅延を監視し、各実行プログラム106の実行時配置(例えば、タイムコード)と舞台自動化サーバ108の実行時配置との同期を確保するために用いることができる。例えば、第1実行プログラム106から分散型プログラムオブジェクトを受信する場合、舞台自動化サーバ108は、舞台自動化サーバ108のタイムコードを含むデータパケット(ACK)を送信することができ、それによって第1実行プログラム106aは、そのタイムコードと舞台自動化サーバ108のタイムコードとの同期を確保することができる。
【0039】
実施例において、舞台自動化サーバ108は、さらに第1実行プログラム106aから受信した分散型プログラムオブジェクトアナウンスを少なくとも第2実行プログラム106bに送信するように構成される。実施例において、舞台自動化サーバ108のネットワークプロトコルを介して送信されたデータパケット(例えば、分散型プログラムオブジェクトアナウンスのデータパケット)が一つのコンポーネントから別のコンポーネントに伝達されるときに時間同期を実行することにより、ネットワークジッタおよび遅延を判断する。例えば、時間同期プロトコル、例えばシンプルネットワークタイムプロトコル(SNTP)、ネットワークタイムプロトコル(NTP)、又は高精度時間プロトコル(PTP)は、応答コンポーネントの内部クロック同期を保持し、ネットワーク輻輳を監視するために、舞台自動化サーバ108により使用することができる。いくつかの実施例において、2つのポートで舞台自動化システム100内の全ての通信(例えば、データパケットを送信/受信する)を実行して、ネットワークセキュリティ管理を簡略化する。この点において、いくつかの実施例において、分散型ネットワークプロトコルの異なる機能を異なる機能のための異なるネットワークポートに分解することではなく、2つのネットワークポートで舞台自動化システム100内の機能を実行することができる。例えば、データパケットは、データパケットサービスの舞台自動化システム100内の特定機能目的に関連付けられたバイト識別子を含むことができる。また、バイト識別子は、データパケットの効果的な復号を促進することができる。
【0040】
ここで、舞台自動化システム100内において2つのネットワークポートのみにより通信を実行することは、多くの利点を提供することができると予想される。例えば、いくつかの従来の舞台自動化システムは、複数のポートを利用して異なる機能に用いることができる。例えば、従来の舞台自動化システムでは、4321ポートを一種のタイプのオーディオサービスに用い、5004ポートを他種のタイプのオーディオサービスに用い、8700~8708ポートを制御および監視に用い、319および320ポートを時間同期に用い、および他のポートを用いることができる。これに対して、2つのネットワークポートを使用することにより、本発明の舞台自動化システム100では、システム内のコンポーネントが舞台自動化システム100内からのサービスをより効率的かつ効果的に識別することを可能にし、かつファイアウォール規則を設定して特定のサービスを許可(又は阻止)することができる。
【0041】
いくつかの実施例において、舞台自動化システム100全体において送信された全てのデータパケット(例えば、分散型プログラムオブジェクトのデータパケット)は、共通データヘッダを含むことができる。以下の表3には、さらに舞台自動化システム100のネットワークプロトコルを介して送信されるデータパケットのデータヘッダの例を示す。実施例において、粗体分割線以上の値を暗号化せずに送信することができ、かつ暗号化されたパケットにおいて完全に重複する。これは、受信されたパケットが環境内の別のコンポーネント(例えば、受信コンポーネントがそれと通信結合を確立した別のコンポーネント)に由来することを検証するために完了されてもよい。また、暗号化パケットにおいて暗号化されていない値を送信することおよび暗号化されていない値を重複することは、さらに受信されたデータパケットが伝送された後に変更又は破壊されないことを検証するために用いることができる。
(表3)
(データパケットのデータヘッダ)
【0042】
いくつかの実施例において、舞台自動化システム100全体において送信された全てのデータパケット(例えば、分散型プログラムオブジェクトのデータパケット)は、以上の表3に示すように、共通ショートデータヘッダを含むことができる。前文に述べたように、ショートヘッダは、常に暗号化せずに送信することができ、それによって復号を試みる前にデバッグ、大まかな健全性検査を行うことができ、かつ必要に応じてサービス整形を行うことができる。ネットワークプロトコルを介して舞台自動化システム100全体において送信されたデータパケットは、
図2A~2Cを参照してさらに示して述べることができる。
【0043】
図2Aは、本発明の1つ又は複数の実施例による舞台自動化システム100のアナウンスデータパケット202aを示す。アナウンスデータパケット202aは、ショートヘッダ204およびデータペイロード206aを含んでもよいが、これらに限定されるものではない。
【0044】
各種コンポーネント(例えば、動作可能アセンブリ102、動作可能機構104、実行プログラム106、舞台自動化サーバ108)の間に通信結合を確立するために、対応するコンポーネントの間に一連のアナウンスおよびハンドシェイクデータパケットを交換することができる。例えば、
図2Aは、第1コンポーネント(例えば、「送信」コンポーネント)と第2コンポーネント(例えば、「受信」又は「目標」コンポーネント)との間に通信結合を確立するために第1コンポーネントから第2コンポーネントに送信可能なアナウンスパケットを示す。アナウンスデータパケット202aは、ショートヘッダ202およびデータペイロード206aと共に送信および/またはブロードキャストされることにより、1つ又は複数の受信/目標コンポーネントが送信コンポーネントと通信可能に結合される。実施例において、データペイロード206aは、送信コンポーネントの非対称公開鍵(RSA)を含むことができ、それによって受信コンポーネントは、送信コンポーネントのみが復号可能な暗号化パケットで安全に応答することができる。
【0045】
なお、各種コンポーネントは、舞台自動化サーバ108により相互間にデータパケット(例えば、分散型プログラムオブジェクトのデータパケット)を送信/受信することができる。例えば、第1実行プログラム106aは、データパケットを舞台自動化サーバ108に送信することができ、その後に舞台自動化サーバは、データパケットを第2実行プログラム106bに転送/送信することができる。他のおよび/または代替実施例において、コンポーネントは、互いの間にデータパケットを直接送信/受信することができる。例えば、
図1に示すように、第1実行プログラム106aは、データパケットを第2実行プログラム106bに直接送信できる。
【0046】
図2Bは、本発明の1つ又は複数の実施例による舞台自動化システム100の第1ステージハンドシェイクデータパケット202bを示す。第1ステージハンドシェイクデータパケット202bは、ショートヘッダ204と、ロングヘッダ208と、データペイロード206bとを含むが、これらに限定されるものではない。
【0047】
2つのコンポーネントが互いの共通RSA鍵を受信すると、2つのコンポーネントは、第1ステージハンドシェイクデータパケット202bを交換することができる。前記のように、ショートヘッダ204は、暗号化せずに送信することができ、かつデータパケットの暗号化部分において完全に重複する。実施例において、データペイロード206bは、送信コンポーネントのAES対称鍵を含むことができる。この点において、第1ステージハンドシェイクデータパケット202bを交換することは、各種コンポーネントが安全にハンドシェイクして相互にAES対称鍵を交換することを許可する。
【0048】
図2Cは、本発明の1つ又は複数の実施例による舞台自動化システム100の第2ステージハンドシェイクデータパケット202Cを示す。第2ステージハンドシェイクパケット202cは、ショートヘッダ204、ロングヘッダ208、およびデータペイロード206cを含むことができるが、これらに限定されるものではない。
【0049】
2つのコンポーネントが互いのAES対称鍵を受信すると、2つのインスタンスは、一連の第2ステージハンドシェイクデータパケット202cを送信することができる。第2ステージハンドシェイクデータパケット202cは、コンポーネントの間に送信することにより、ネットワーク遅延および対応するコンポーネントの間のジッタを判断することができる。実施例において、ロングヘッダ208は、タイミング情報(例えば、タイムコード又は送信コンポーネントの動作時間配置)を含むことができ、かつ全ての後続データパケット内に含まれることにより、ネットワーク遅延およびネットワークプロトコルの他の条件/特性を連続的に監視することができる。AES対称鍵が既に交換され、かつ舞台自動化システム100のコンポーネントの間に通信結合が既に確立された後、コンポーネントの間に交換されたデータペイロード206cは、信頼されかつ作用されることができる。
【0050】
RSA/AES暗号化アルゴリズムのコンテキストにおいて
図2A~2Cを示して説明したが、ここで特に指摘しない限り、これらのアルゴリズムは、本発明を限定するものと考えられるべきではない。この点において、本発明の精神および範囲から逸脱することなく、舞台自動化システム100は、当該分野で既知の任意の暗号化アルゴリズム又は技術案を利用するように構成されてもよい。
【0051】
実施例において、コンポーネントは、当該コンポーネントに関連付けられた1つ又は複数のタイムスタンプ付き変数の値が調整されるか又は更新される場合に1つ又は複数の更新データパケット(例えば、「XaValuesUpdate」データパケット)を送信するように構成されてもよい。例えば、動作可能機構104aの位置が更新されると、第1実行プログラム106aは、1つ又は複数の更新データパケットを舞台自動化サーバ108に送信することができる。次に、舞台自動化サーバ108は、1つ又は複数の更新されたパケットをサブスクライブ/更新された値に依存する1つ又は複数の他の実行プログラム106b~106nに転送するように構成されてもよい。サブスクライブ/更新された値に依存するコンポーネント(例えば、実行プログラム106)のデータベースは、メモリ112に記憶することができる。この例において、その後、1つ又は複数の実行プログラム106は、1つ又は複数の受信された更新パケットに基づいて、更新されたタイムスタンプ付き変数に関連付けられた分散型プログラムオブジェクトを更新することができる。以下の表4および表5には、ネットワークプロトコルを介して舞台自動化システム100全体において送信することができる更新データパケットの例を示す。
(表4)
(更新データパケット構造)
(表5)
(更新データパケット構造)
【0052】
特に、表4は、長整数値タイプを含む2つのタイムスタンプ付き変数に対して複数のタイムスタンプ付き変数スライス(例えば、各時点に対する複数のタイムスタンプ付き変数)を記憶する更新データパケットを示し、および、表5は、文字列値タイプおよびブール値タイプを含む2つのタイムスタンプ付き変数に対して複数のタイムスタンプ付き変数スライスを記憶する更新データパケットを示す。
【0053】
なお、タイムスタンプ付き変数を更新するときに、舞台自動化システム100全体において更新データパケットを送信することは、システムの各コンポーネントが他のコンポーネントに関する最新の情報、例えば位置、速度、動作状態などを維持することを可能にすることができる。なお、更新データパケットの大きさは、ネットワークの最大伝送ユニット(MTU)に限定され、舞台自動化システム100全体で使用されたショートヘッダ204の既知の長さを減算するものである。更新データパケット(又は他のデータパケット)のデータペイロードのバイトカウントが最大長さに達すると、対応するデータパケットを送信することができ、かつ、送信待ちの残りのバイトを含む新たなデータパケットを構築することができる。
【0054】
図3A~
図3Cは、本発明の1つ又は複数の実施例による、パブリッシュ変数モードを有するタイムスタンプ付き変数、およびオムニパブリッシュ変数モードを有するタイムスタンプ付き変数の概念図である。特に、
図3A~3Cは、第1コンポーネント(コンポーネント1)を示し、それが第2コンポーネント(コンポーネント2)の第1タイムスタンプ付き変数をサブスクライブし、第2コンポーネント(コンポーネント2)の第2タイムスタンプ付き変数を更新する。
【0055】
例えば、
図3Aに示すように、第2コンポーネント(コンポーネント2)(例えば、実行プログラム106bの動作可能機構104d)は、分散型プログラムオブジェクトアナウンスを舞台自動化サーバ108に送信することができ、当該分散型プログラムオブジェクトアナウンスは、パブリッシュ変数モードを有する第1タイムスタンプ付き変数、およびオムニパブリッシュ変数モードを有する第2タイムスタンプ付き変数を含む。舞台自動化サーバ108は、分散型プログラムアナウンスを受信し、かつコンポーネント2の分散型プログラムアナウンスを生成/記憶することができる。分散プログラムオブジェクトアナウンスは、タイムスタンプ付き変数の名称、変数モード、および値タイプのみを含むことができる。その後、コンポーネント2は、各タイムスタンプ付き変数に対する実際値を含む更新データパケット(例えば、更新されたタイムスタンプ付き変数)を送信することができる。
図3Bに示すように、第1コンポーネント(コンポーネント1)(例えば、ユーザインターフェース114、動作可能機構104d、実行プログラム106b)は、コンポーネント2の分散型プログラムオブジェクトをサブスクライブすることにより、タイムスタンプ付き変数の値を閲覧することができる。その後、コンポーネント2は、オムニパブリッシュ変数タイプを用いて第2タイムスタンプ付き変数の値を更新し、更新データパケットをコンポーネント2に送信して、コンポーネント2の1つ又は複数の特性を調整することができる。逆に、
図3Aにおいて、コンポーネント2は、第1タイムスタンプ付き変数を更新することができ、かつ該変化を反映する更新データパケットをコンポーネント1に送信することができる。
【0056】
実施例において、1つ又は複数の実行プログラム106b~106nは、第2実行プログラム106bから1つ又は複数のデータパケットを受信することができる。別の実施例において、1つ又は複数の実行プログラム106a~106nは、オムニパブリッシュ値タイプを使用して1つ又は複数のタイムスタンプ付き変数を調整するように構成されてもよい。例えば、第1実行プログラム106aは、第1動作可能機構104aとするモータを含むことができる。モータは、分散型プログラムオブジェクトを含むことができ、当該分散型プログラムオブジェクトは、モータの出力を示すタイムスタンプ付き変数を含み、かつモータは、システムの他のコンポーネントがモータ出力を調整/更新することが可能となるように、オムニパブリッシュ値タイプで表すことができる。当該例において、第2実行プログラム106bは、モータの分散型プログラムオブジェクト(例えば、第1動作可能機構104a)をサブスクライブおよび/または受信し、モータ出力を示すタイムスタンプ付き変数を新たな出力に調整し、かつ更新された分散型プログラムオブジェクトおよび/または更新されたタイムスタンプ付き変数を含む1つ又は複数のデータパケットを第1実行プログラム106に送信することができる。1つ又は複数のデータパケットは、第1実行プログラム106aが、受信されたデータパケットに応答してモータの分散型プログラムオブジェクトのモータ(例えば、第1動作可能機構104a)のタイムスタンプ付き変数を調整するように構成されてもよい。この点において、第1実行プログラム106aは、当該少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた第1動作可能機構104aの1つ又は複数の動作特性(例えば、モータ出力)を調整するように構成される。
【0057】
上記と同じ例を継続し、更新された分散型プログラムオブジェクトおよび/または更新されたタイムスタンプ付き変数を含む1つ又は複数のデータパケットを受信する場合、舞台自動化サーバ108は、受信された第1実行プログラム106aに転送可能なデータパケットに基づいて、メモリ112に記憶されたモータのタイムスタンプ付き変数を更新するように構成されてもよい。
【0058】
なお、分散型プログラムオブジェクトを介して舞台自動化システム100内のコンポーネントの特性を選択的に調整して制御することは、現在の従来のシステムよりもはるかに大きい柔軟性およびロバスト性を実現することができる。
【0059】
一例は、例示的なものであることを証明できる。従来の舞台自動化システムを考慮し、そのうち、メーカAからの第1電子レンジを含む。第1電子レンジを起動するために、ユーザは、「調理」ボタンを選択し、次に「時間調理」ボタンを選択し、時間を入力し、次に「開始」ボタンを押したまま2秒保持しなければならない。第2電子レンジを起動するために、ユーザは、時間を入力し、「調理」ボタンを選択し、次に「起動」ボタンを押して解放しなければならない。サーバ/コントローラにより第1電子レンジおよび第2電子レンジを遠隔制御するために、サーバ/コントローラは、正確な順序、正確なフォーマット等で正確なステップを実行するために、それぞれメーカAおよびメーカBに専門的にプログラミングしなければならない。このような特定のプログラミングは、メーカおよび製品に応じて個人化される。このようなカスタマイズプログラミングは、退屈で時間がかかる恐れがあり、これは、従来の舞台自動化システムのコンポーネントの間に互換性および通信が不足することをもたらす。
【0060】
対比的には、舞台自動化システム100のコンテキストにおいて、第1電子レンジおよび第2電子レンジを有する同じ例を考慮する。舞台自動化システム100の環境に導入する場合、各電子レンジは、分散型プログラムオブジェクトアナウンスを生成して送信することができる。各電子レンジの分散型プログラムオブジェクトは、値タイプ文字列付きのタイムスタンプ付き変数を含むことができ、当該値タイプ文字列は、電子レンジのタイプ/名称(例えば、「CookMeister 500電子レンジ」、「GEJES 1072 SH電子レンジ」)を示し、それは、各電子レンジに対して唯一である。また、各電子レンジの分散型プログラムオブジェクトは、他のコンポーネントが調理タイマー(例えば、タイムスタンプ付き変数、二重浮動小数点、パブリッシュ)を更新することを許可することができ、対応する電子レンジの動作状態(オン/オフ)(例えば、タイムスタンプ付き変数、ブール、パブリッシュ)をパブリッシュし、内部温度(例えば、タイムスタンプ付き変数、二重浮動小数点、パブリッシュ)をパブリッシュして、かつ他のコンポーネントが電子レンジ(例えば、タイムスタンプ付き変数、ブール、オムニパブリッシュ)をオンにすることを許可することができる。各電子レンジの分散型プログラムオブジェクトを受信するときに、関心/従属コンポーネントは、分散型プログラムオブジェクトを記憶/生成することができ、当該分散型プログラムオブジェクトは、電子レンジの温度を監視/視聴し、かつ監視/視聴して調理タイマーおよびオン/オフ状態を更新・調整する。例えば、いずれかの電子レンジをオンにするために、他のコンポーネントのすべては、調理タイマーおよびオン/オフ状態に関連付けられたタイムスタンプ付き変数を更新し、更新された分散型プログラムオブジェクトを含む更新データパケットを対応する電子レンジに送信しなければならない。その後、各対応する電子レンジは、更新された割り当てられたプログラムオブジェクトを受信し、かつ更新された分散型プログラムオブジェクトおよび製造メーカに基づいて電子レンジの調理時間およびオン/オフ状態をプログラムに関連して変更するように構成されてもよい。
【0061】
以上の例に示すように、分散型プログラムオブジェクトを介して舞台自動化システム100内のコンポーネントの特性を制御/調整することは、より大きな柔軟性を実現することができる。特に、分散型プログラムオブジェクトは、メーカの特定のプロセスおよびコマンドを特定のタイプの全てのコンポーネント/マシンに対して共通にすることができる。例えば、メーカ又はメーカ専用プログラムコマンドに関わらず、分散型プログラムオブジェクトによりオン/オフ状態を更新することは、全ての電子レンジに対して類似することができる。換言すれば、舞台自動化システム100は、分散型プログラムオブジェクトに対する一般的な更新を使用して、メーカ専用プログラミングを実現することができる。したがって、舞台自動化システム100内のコンポーネントを制御することは、コンポーネントに関連付けられたメーカ又は単独の機器ではなく、コンポーネントのタイプ(例えばその分散型プログラムオブジェクトにより限定されるもの)に集中する。この点において、本発明の実施例は、ハードウェアおよびプロトコルアグノスティックな舞台アセンブリシステム100を実現することができる。
【0062】
別の例として、ブレーキを解放しかつNidecM750サーボドライバにおける速度変化をトリガするためのプロセスは、Kollmorgen AKD-BASICサーボドライバのプロセスと大きく異なる。分散プログラムオブジェクトには、異なるサーボドライバを示す名称(値タイプ文字列)が含まれる。しかしながら、2つのサーボドライバの分散型プログラムオブジェクトは、類似および/または同じタイムスタンプ付き変数(例えば、オン/オフ状態、電圧、電流、出力)を含むことにより、各特定のサーボドライバの分散型プログラムオブジェクトは、任意のサーボドライバに対して汎用分散型プログラムオブジェクト(各分散型プログラムオブジェクト内の名称を減算する)として表現される。
【0063】
なお、舞台自動化システム100のコンポーネントが舞台自動化システム100の環境内の他のコンポーネントの特性を選択的に調整することを可能にすることは、ますます自動化されたイベントおよびパフォーマンス(例えば、コンサート、ドラマ等)を実現することができる。例えば、コンサート期間において、第4動作可能機構104dがアクティブ化されてその指定された動作を実行する前に、3つの独立した動作可能機構104a~104cでその指定された動作を実行する必要が生じる可能性がある。この例において、その指定された動作(例えば、作動して位置を補正し、光を生成するなど)を実行する場合、第1動作可能機構104aは、第2動作可能機構104bの分散型プログラムオブジェクトを更新することにより、第2動作可能機構104bがその指定された動作を実行することができる。その指定された動作(例えば、起動して位置を補正し、光を生成するなど)を実行した後、第2動作可能機構104bは、第3動作可能機構104cおよび第4動作可能機構104dの分散型プログラムオブジェクトを更新することにより、第3動作可能機構104cおよび第4動作可能機構104dがその指定された動作を実行することができる。
【0064】
実施例において、タイムスタンプ付き変数および/または分散型プログラムオブジェクトの更新は、実世界単位で編集され、それによって舞台自動化システム100の各コンポーネントの位置、速度、加速度などは、3D空間に対して既知である。前記のように、位置情報(例えば、位置、速度、加速度、減速度、位置クランプなど)は、限定された参照点に対して選択され、システム内に記憶されてもよい。
【0065】
いくつかの実施例において、舞台自動化システム100内で実行される動作は、「条件」により制限されたり制御されたりすることができる。用語「条件」は、動作を制限しおよび/またはある動作を環境内で発生させる論理的語句を指すために用いることができる。例えば、条件は、あるタイムスタンプ付き変数又はタイムスタンプ付き変数の比較文が真であれば、動作可能アセンブリ102aの速度を1m/sに制限することを規定することができる。別の例として、条件は、あるタイムスタンプ付き変数の立ち上がりエッジでコマンドを送信するように設けられてもよい(例えば、タイムスタンプ付き変数を更新して動作を開始する)。実施例において、環境に関連付けられた条件のデータベースは、舞台自動化サーバ108のメモリ112および/または舞台自動化システム100内のコンポーネントのメモリに記憶することができる。
【0066】
いくつかの実施例において、キューシート、キュー、およびコマンドに基づいて、パフォーマンス又はイベント(例えば、コンサート、試合、スポーツイベント)をプログラミングすることができる。キューシートは、メモリ112に記憶することができ、ここでキューシートは、1つ又は複数のキューおよび/またはコマンドのリストを含む。コマンドは、動作可能機構104および/または動作可能アセンブリ102が取り可能な動作を指すことができる。例えば、コマンドは、「x位置に移動する」、「別の動作可能機構104および/または動作可能アセンブリ102と位置を同期する」、「x速度に移動してx速度を保持する」、「所定の一連の位置又は速度に沿って移動する」、「開放型音声制御(OSC)又はArt-Netを介して伝達された位置値に追従する」、「x秒待ち、その後にy位置に移動する」などを含むことができる。キューは、1つ又は複数の動作可能機構104および/または動作可能アセンブリ102で実行された複数の動作を指すことができる。したがって、キューは、1つ又は複数のコマンドのグループを指すことができる。
【0067】
実際には、舞台自動化サーバ108のメモリ112は、複数のキューおよび/またはコマンドを含むキューシートを記憶するように構成されてもよく、一般的には、ショー全体のためのキュー/コマンドである。例えば、舞台自動化サーバ108は、メモリにキューシートを記憶するように構成されてもよく、ここでキューシートは、第1動作可能機構104aにより実行可能な第1コマンド、および第2動作可能機構104bにより実行可能な第2コマンドを含む。キューおよびコマンドは、対応するコンポーネントのUUIDに基づいてそれらを実行するように構成された特定のコンポーネント(例えば、動作可能アセンブリ102、動作可能機構104、実行プログラム106)にリンクされてもよい。
【0068】
例えば、舞台自動化サーバ108は、第1コマンドに関連付けられた1つ又は複数のデータパケットを第1実行プログラム106aに送信するように構成されてもよく、ここで第1実行プログラム106aは、第1作動機構104aの少なくとも1つのタイムスタンプ付き変数を調整して第1コマンドを実行するように構成される。舞台自動化サーバ108は、さらに第2コマンドに関連付けられた1つ又は複数のデータパケットを第2実行プログラム106bに送信するように構成されてもよく、ここで第2実行プログラム106bは、第2作動機構104dの少なくとも1つのタイムスタンプ付き変数を調整して第2コマンドを実行するように構成される。
【0069】
舞台自動化サーバ108は、「CueManager」を含むことができる。CueManagerは、1つ又は複数のプロセッサ110により実行可能なモジュール又はプログラムコマンドセットを含むことができる。CueManagerは、現在「Command Exector」と表示された位置で動作しているコマンドと、次に「Command Standby」と表示された位置で動作しているコマンドとを保持するように構成されていてもよい。キュー又はコマンドを起動するために、CueManagerは、従来のキュー又はコマンドのUUIDを受信することができる。次に、CueManagerは、当該キュー/コマンドをコピーし、そのコンテンツをCommandStandby位置に入れることができる。環境における各実行プログラム106について、CueManagerは、CommandStandby位置における第1キュー/コマンドを取得し、それをCommandExector位置に移動することにより、その所望の実行プログラムで当該キュー/コマンドを起動/実行するように構成されてもよい。コマンド実行の位置でのキュー/コマンドが完了すると、CueManagerは、それをコマンド実行の位置から除去し、かつ次のキュー/コマンド(あれば)をCommandStandby位置からCueExecuter位置に移動することができる。
【0070】
実施例において、いくつかのキュー/コマンドは、特定の基準又は条件を満たすまで、コンポーネント(例えば、実行プログラム106、動作可能機構104、動作可能アセンブリ102)の活動を保持することができる。例えば、コマンドは、タイマーの期限が切れ、別のモジュールの位置を満たし、又は特定のタイムスタンプ付き変数が特定の値に達するまで、モジュールの活動を保持することができる。この点において、CueManager(例えば、舞台自動化サーバ108)は、コマンドが完了するまで、コマンド実行位置におけるコマンドをアクティブ化しないことができる。他の実施例において、いくつかのコンポーネントは、フィクスチャーモードに配置されて、照明コンソール又は他の外部コントローラにより制御されてもよい。例えば、いくつかのコンポーネントは、ユーザインターフェース114を介して制御されるように、フィクスチャーモードに配置されてもよい。フィクスチャーモードにおけるコマンドは、それらが手動でクリアされるまで、活動を保持することができる。環境の舞台自動化サーバ108は、DMX宇宙/多元宇宙においてフレームを伝送するために、Art-Net/制御ネットワークのストリーミングアーキテクチャ(sACN)宇宙/多元宇宙を監視することができ、かつ実行プログラム106がリアルタイムコマンドに応答してArt-Netからの位置コマンドを追跡するようにすることができる。各実行プログラム106は、DMX多元宇宙およびOSCネームスペースにおける先頭アドレスを含んでもよい。
【0071】
図1に示すように、舞台自動化システム100は、さらにユーザインターフェース114を含むことができる。ユーザインターフェース114は、ユーザ入力デバイス1167と、表示デバイス118とを含むことができる。ユーザインターフェース114は、当該分野で既知の任意のユーザインターフェースデバイスを含むことができ、デスクトップコンピュータ、ノート型コンピュータ、モバイルデバイス(例えば、スマートフォン、タブレットコンピュータ)、着用可能なデバイスなどを含むが、これらに限定されるものではない。表示デバイス118は、舞台自動化システム100のデータ/情報をユーザへ表示するように構成されてもよい。この点において、ユーザは、ユーザインターフェース114を介して舞台自動化システム100内のコンポーネントの特性(例えば、分散型プログラムオブジェクト、位置、速度、動作状態などに用いられるタイムスタンプ付き変数)を見ることができる。
【0072】
実施例において、ユーザ入力デバイス116は、表示デバイス118に示されたデータに応答して、ユーザから1つ又は複数の入力コマンドを受信するように構成されてもよい。例えば、ユーザは、ユーザインターフェース114を介して各種コマンド、条件などを入力することができる。別の例として、ユーザは、「ジョグモード」で舞台自動化システム100のコンポーネント(例えば、動作可能アセンブリ102、動作可能機構104)を実行することができる。用語「ジョグ」は、ユーザが制御する動作(例えば、ユーザ入力位置、ユーザ入力速度、前向き又は後向きに移動するためのユーザ入力コマンド)を指すために用いることができる。例えば、実行プログラム106は、ジョグモードで実行して、位置、速度、又はトルク目標をリアルタイムに追跡することができ、ここで、最小/最大位置クランプ、速度クランプ、および加速度クランプは、実行プログラム106の設定、コマンドに関連付けられたパラメータ又は限定された条件により設定される。特定のコンポーネントの動作は、最も限定的な任意のパラメータ(例えば、実行プログラム106の設定、コマンドに関連付けられたパラメータ、限定された条件)に限定されてもよい。
【0073】
例えば、舞台自動化サーバ108は、ユーザインターフェース114から1つ又は複数の入力コマンド(例えば、データパケット)を受信し、かつユーザインターフェース114から受信した1つ又は複数の入力コマンドに基づいてメモリ112に記憶された分散型プログラムオブジェクトの1つ又は複数のタイムスタンプ付き変数のセットにおける少なくとも1つのタイムスタンプ付き変数を調整するように構成されてもよい。その後、舞台自動化サーバ108は、1つ又は複数の更新データパケットを、更新された分散型プログラムオブジェクトに関連付けられたコンポーネントに送信することにより、受信された入力コマンドに基づいて動作、コマンド又は条件を実現するように構成されてもよい。
【0074】
いくつかの実施例において、舞台自動化システム100は、DMX多元宇宙を実現することができ、それは、データを受信して、データをDMX、Art-Netおよび/またはRDMネットワークに送信する。DMX多元宇宙は、各種実行プログラム106のUUIDを多元宇宙中の先頭アドレスおよびフィクスチャースタイルにリンクする構成を含むこともでき、これは、環境の構成において静的および永続的な構成である。実施例において、舞台自動化システム100の環境の実行プログラム106は、DMX 512ソース(例えば、RS-485、DMX 512、Art-Net、sACNによるDMX)を監視し、かつネットワークプロトコルにより宇宙値をデータパケットとして舞台自動化サーバ108に送信するように構成されてもよい。宇宙値は、キャプチャ時間でタイムスタンプされた(タイムスタンプ付き変数に類似する)ものであって、物理的デバイスのUUID(例えばRS-485、DMX 512)又は値に由来するArt-Net宇宙でマックされたものであってもよい。デフォルトの場合、多元宇宙対象は、任意の実行プログラム106からの任意の入力されたDMXデータを使用することになり、当該プログラムにはDMXソースが配置され、DMX 512又は配置されたArt-Net/sACNネットワークエンドポイントにより環境に配置された任意のDMX出力から任意のDMXを放送する。
【0075】
実施例において、舞台自動化システム100は、舞台自動化システム100の環境に出入りするOSCをサポートするように構成されてもよい。デフォルトでは、OSCのフィクスチャーモードは、各動作可能アセンブリ102/動作可能機構104に対する予め定義されたアドレスプレフィックスを監視し、予め定義されたアドレスプレフィックスで状態を送信する。アドレスプレフィックスは、動作可能アセンブリ102/可動機構104のUUIDであってもよいし、他の名称であってもよい。別の実施例において、舞台自動化システム100は、PosiStateNetの入力および出力をサポートするように構成されてもよい。デフォルトでは、システムは、ネットワーク上の任意のPSNデータを消費し、かつ各唯一のトラクタソースのために単一点幾何学的オブジェクトを作成して更新する。それは、さらに既知の3D位置を有する全ての動作可能アセンブリ102/動作可能機構104の現在点データをネットワークプロトコル(例えば、舞台自動化サーバ108)にパブリッシュする。
【0076】
実施例において、フィクスチャー移動コマンドは、動作可能アセンブリ102/動作可能機構104がDMXフィクスチャーに設定された設定クランプおよび制限以外の設定クランプおよび制限内に要求された位置目標チャネルを最大限にヒットするように指すことができる。各動作可能アセンブリ102/動作可能機構104は、「簡略化」モードで動作するか又は「完了」モードで動作するかに関わらず、いずれも開始DMX多元宇宙およびアドレスを配置するオプションを有する。このことは、表6および表7を参照してさらに理解される。表6は、簡略化された一次元(1D)位置ジョグフィクスチャーの概要を示し、表7は、完全な一次元(1D)位置ジョグフィクスチャーの概要を示す。
(表6)
(簡略化された1D位置ジョグフィクスチャーの概要)
(表7)
(完全な1D位置ジョグフィクスチャーの概要)
【0077】
図4は、本発明の1つ又は複数の実施例によるコマンドを実行するコンポーネントの位置及び速度制限を描画するグラフ400を示す。前文に述べたように、各種コンポーネント(例えば、動作可能機構104、動作可能アセンブリ102)により実現されたコマンドおよび動作は、条件文、位置クランプ、速度クランプ、加速度/減速度クランプなどを含む各種パラメータに制約される。
【0078】
例えば、グラフ400は動作可能アセンブリ102の位置の経時的な視覚表示である。動作可能アセンブリ102は、初期時間(t0)に初期開始位置301で開始し、かつ最終時間(tf)に終了位置311で終了することができる。動作可能アセンブリ102の移動は、動作可能アセンブリ102が対応する位置クランプ403a、403bの外部に移動しないように、最大位置クランプ403aおよび最小位置クランプ403bにより制限される。また、動作可能アセンブリ102の移動は、斜線/対角線で示された速度クランプ413により制限することができる。実施例において、グラフ400は、表示デバイス118を介してユーザへ表示された動作可能アセンブリ102の位置の例示的な描画であってもよい。
【0079】
動作可能アセンブリ102のためのキュー/コマンドは、位置目標402a~402nのセットを含むことができ、動作可能アセンブリ102は、キュー/コマンドの実行過程全体において前記位置目標にヒットする。
図4に示すように、1つ又は複数のコマンド位置402d、402eが位置クランプ403a、403bにより決定された値の範囲外にあれば、動作可能アセンブリ102は、位置クランプ制限(例えば、最小位置クランプ403b、クランプの位置目標407)まで移動することができ、その後に、コマンド位置が位置クランプ403a、403bにより決定された値の範囲に戻ると、所望のコマンド位置と同期して継続する。
【0080】
実施例において、舞台自動化システム100は、3D幾何学的システムを含むことができ、その機能は、映画館の4D/統一的なスタイルレベルに類似し、当該3D幾何学的システムは、親/子関係、およびそれを他のオブジェクトの影響にリンクできるオブジェクトの他の属性を有する。環境内の全てのコンポーネントは、関連する幾何学的ツリーを有することができる。その最も簡単な構成において、当該ツリーは、原点位置&配向、および静的幾何学的構造のためのサブオブジェクト、軸位置測定により駆動された空オブジェクト、および駆動幾何学的構造を有するサブオブジェクトを有する。例えば、舞台昇降機(例えば、動作可能アセンブリ102)は、移動しない支持構造を含むことができ、かつ駆動対象の配向は、頂部で下向きに指向する。コンポーネント上の負の位置値は、物理プラットフォームを地面に下向きに移動する。コンポーネントが移動する場合、3Dオブジェクトも移動して該移動を模倣する。当該コンポーネントは、さらに代表的な幾何学的形状を自動的に作成して該コンポーネントに配置された物理的位置制限を示す。PSNオブジェクトは、それ自身の関連する幾何学的ツリーを有し、かつそれは、それがネットワークデータを受信する各「ショー」IDおよびオブジェクトIDのためにサブオブジェクトを作成して更新する。各コンポーネント(例えば、動作可能機構104、動作可能アセンブリ102)は、その原点および駆動位置をPSNネットワークにデフォルトでパブリッシュし、かつ環境レベルにおける他の幾何学的オブジェクトもマークされてそれらの位置をPSNネットワークに送信することができる。舞台自動化サーバ108は、コンポーネントの各構成/モデルのための3Dモデルを含むことができ、かつモデルを導入してカスタマイズされたコンポーネントに取り付けることができる。
【0081】
図7A~7Eは、本発明の1つ又は複数の実施例による舞台自動化システムの三次元(3D)追跡システムを示す。
【0082】
なお、環境の測定および3D空間における機器/コンポーネント(例えば、動作可能機構104、動作可能アセンブリ102)の位置および配向への理解は、複雑な運動をプログラミングしかつ他の部品および人の周りの安全操作を確保することに対してクリティカルである。実施例において、
図7Aに示すように、舞台自動化システム100の3D追跡システムは、複数のアンカーコンステレーション700を含むことにより、RF追跡システムを自動的に配置することができる。実施例において、単一のアンカーコンステレーション700は、複数のトランスポンダ702a~702dを含むことができる。アンカーコンスタレーション700とトランスポンダ702a~702nのGUIDおよび/またはUUIDは、記憶部112に記憶されていてもよい。各アンカーコンステレーション700およびトランスポンダ702a~702dは、さらにシステム全体で送信可能な分散型プログラムオブジェクトを含むことができる。他のおよび/または代替実施例において、複数のトランスポンダ702を含むアンカーコンステレーション700は、単一の分散型プログラムオブジェクトを含むことができ、それによってアンカーコンステレーション700は、単一のコンポーネントと見なされる。
【0083】
実施例において、複数のトランスポンダ702a~702nは、剛性、静止のフレーム701(例えば、3Dピラミッド)に配置されてもよい。イベント舞台上の各アンカーコンステレーション700の位置は、既知であってもよく、かつ各トランスポンダの間の高さおよび距離も、既知であり、かつメモリ112に記憶されてもよい。例えば、
図7Bおよび
図7Cに示すように、複数のアンカーコンステレーション700a~700dにおける各アンカーコンステレーション700a~700dの位置/方位は、メモリ112に記憶されてもよい。同様に、各トランスポンダ702の高さと各トランスポンダ702間の距離は、メモリ112に記憶することができる。
図7B~7Cに示すように、環境は、複数のアンカーコンステレーション群700、複数のアクチュエータ(例えば、複数の動作可能機構104a~104d)およびアクチュエータにより移動する対象(例えば、チェーンモータ動作可能機構102a~102d)を含むことができる。トラッカ704は、アクチュエータ(例えば、動作可能機構104)および移動される対象(例えば、動作可能アセンブリ102)に取り付けられてもよく、
図7D~7Eに示すとおりである。各コンポーネントUUIDと関連付けられたトラッカのシリアル番号とが関連付けられたデータベースは、記憶部112に記憶されていてもよい。また、トラッカに関連付けられたアクチュエータの幾何学的形状は、メモリ112に記憶されてもよい。
【0084】
UUIDを対応するコンポーネントに関連付け、かつコマンド/プロンプトをUUIDに関連付けることにより、舞台自動化システム100は、特定のプロンプト/コマンドをそれらの意図された関連するコンポーネントにリンクするように構成することができる。例えば、
図7C~7Dにおけるアクチュエータは、それらのUUIDにより識別して操作することができる。当該例において、制御デバイス上の光スキャナーは、QRコードに類似する2Dバーコードでコードされた昇降機のUUIDを読み取ることにより、それを選択して直ちに操作するために用いることができる。物理アクチュエータは、唯一の、永続的なUUIDによって識別されてもよく、当該UUIDにより、舞台自動化サーバ108は、それが何であるか、どのようにそれに付着されたドライバを配置するか、およびどのようにユーザインターフェース114にそれを表示するかを検索することを可能にする。
【0085】
実施例において、各アンカーコンステレーション700の対応するトラッカ704とトランスポンダ702との間に信号を送信することにより、舞台自動化システム100の各コンポーネントの3D位置に三角測量を行うことができる。3D位置情報は、当該分野で既知の任意の数学公式、アルゴリズム、又は技術を用いて決定することができ、飛行時間決定、慣性測定ユニット(IMU)、および気圧センサ、受信信号強度インジケータ(RSSI)値を含むが、これらに限定されるものではない。例えば、舞台自動化システム100を、RSSI値を用いてブロックされる可能性のあるノードからの潜在的な不良データパケットを拒否し、又は他の表面から反射された信号を拒否するように構成することができる。
【0086】
実施例において、環境の原点に対して球体(例えば、
図7B~7Cにおける動作可能アセンブリ102)のための移動キュー/コマンドを作成することができる。全ての昇降機およびそのフックがどこにあることが分かる場合、舞台自動化サーバ108は、吊り下げられた球体を昇降機の間の領域内の任意の場所に選択的に移動/作動するように構成されてもよい。オペレータは、各昇降機の運動を個別にプログラミングする必要がなく、球体自体の運動のみをプログラミングする。実施例において、動作可能機構104および/または動作可能アセンブリ102は、1Dおよび/または3D空間においてコマンドを受信および/または実行するように構成されてもよく、これは、対応する動作可能機構104および/または動作可能アセンブリ102の物理的属性に依存する。動作機構104および/または動作アセンブリ102は、RF位置決めフィードバックを舞台自動化サーバ108に送信し、および/またはオペレータがユーザインターフェース114を介して入力した測定結果によりそれらの物理的位置を連続的に識別することができる。
【0087】
例えば、
図7Bに示すように、動作可能アセンブリ102は、4つの分離された動作可能機構104a~104d(例えば、昇降機104a~104d)により物理的に作動(例えば、移動)することができる。当該例において、動作可能アセンブリ102を移動するためのコマンドは、動作可能アセンブリ102自体を移動する3D空間のコンテキストに書き込まれてもよく、かつ舞台自動化サーバ108は、ジョグコマンドを各対応する昇降機104a~104dに送信することにより、動作可能アセンブリ102の3Dコマンドを実現することができる。例えば、ユーザは、ユーザインターフェース114を介して動作可能アセンブリ102のための新たな位置を入力することができる。その後、舞台自動化サーバ108は、必要な昇降機の作動を計算することにより3Dコマンドにより指示された新たな位置を実現し、かつ3Dコマンド(例えば、ジョグコマンド)を昇降機104a~104dのそれぞれに送信することができる。動作可能アセンブリ102の新たな位置のための3Dコマンド(例えば、ジョグコマンド)を受信する場合、各昇降機104a~104dは、昇降機を決定された位置にジョグすることができる。このような計算は、1秒ごとに複数回実行することにより、各昇降機104a~104dの位置を動作可能アセンブリ102の3D位置決めを実現するために必要な所望の昇降機位置に徐々に移動させることができる。他のおよび/または代替実施例において、ユーザコマンドに関連付けられた位置を実現するために必要な計算は、昇降機104a~104d自体のプロセッサにより実行することが可能である。分散型プログラムオブジェクトのコンテキストにキュー/コマンドを書くことにより、舞台アセンブリシステム100は、昇降機の運動をコマンドしてその3D空間でシミュレーションされた長さにマッチングするように構成することができる。
【0088】
なお、複数の動作可能機構104を組み合わせて1つ又は複数の動作可能アセンブリ102(例えば、
図7B)を移動することは、複数の利点を提供することができる。例えば、
図7Bに示すように、オペレータが単一の作動可能な機構104a(昇降機104a)をグループの一部ではなく個別に移動するように選択すると、昇降機104aのチェーンが緩む可能性があり、他の3つの昇降機104b~104dが現在対象の大部分の重量を保持することをもたらす。当該例において、オペレータが続いて3D移動コマンドを動作可能アセンブリ102に送信すると、舞台自動化サーバ108は、まず全ての動作可能機構104(例えば、昇降機104a~104d)を所望のその位置の安定位置(例えば、昇降機104aから弛みを除去する)に駆動し、次に移動し続けるように構成することができる。
【0089】
また、動作可能機構104ではなく移動される動作可能アセンブリ102のコンテキストにおける書き込みコマンドを他のコンテキストに適用することができる。例えば、ガントリレール(例えば、動作可能機構104)および複数の昇降機(例えば、動作可能機構104)は、協働して操作することにより、動作可能アセンブリ102を選択的に作動/移動することができる。当該例において、動作可能アセンブリ102を分散型プログラムオブジェクトとしてそれのためにコマンドを書き込むことができ、それによって動作可能アセンブリ102のためのキューおよびコマンドを、フレームレールおよび/または昇降機のために単独に書き込むことではなく、動作可能アセンブリ102自体のために書き込むことができる。
【0090】
なお、オペレータの正確な位置測定又は3D追跡システムの自動測定は、いくつかの目的に用いることができ、ユーザインターフェース114を介してユーザへ3D環境を正確に可視化すること、単独のアクチュエータではなくキューを書き込んでオブジェクトを移動することができること、インターフェースはそれらが近接するか又は照準されたオブジェクト又はデバイスに関するコンテキスト情報を表示することができること、拡張現実ディスプレイはコンテキスト情報を実際のオブジェクト又はアクチュエータにカバーすることができること、アクチュエータは、手動制御を必要とせず、オブジェクトを自動的に移動し、レベリングし、又は所定の位置に傾斜することができること、オブジェクトおよびアクチュエータはプログラミング的に動作者又は他の作動していない道具の運動に応答することができること、アクチュエータはそのエンドエフェクタの既知の近接度を介してシステムに自動的に割り当てることができること、システムは他のオブジェクト又は人の既知の位置に基づいて静的又は動的制限を自動的に設定することができることを含むが、これらに限定されるものではない。
【0091】
図5~
図6E-2は、本発明の1つ又は複数の実施例による舞台自動化システム100の概念図を示す。
【0092】
特に、
図5~
図6E-2に示された概念図は、独立した構成において、舞台自動化システム100のソフトウェアコンポーネントがどのようにデバイス(例えば、動作可能機構104、動作可能アセンブリ102)に接続され、制御するのかを示す。
図5~
図6E-2は、さらに舞台自動化システム100のソフトウェアアーキテクチャ内の分散型プログラムオブジェクトがどのように互いに関連付けられたのかを示す。しかしながら、
図5~
図6E-2は、ここで別の説明がない限り、単に例示的なものとして提供され、かつ限定的なものであると考えられるべきではない。
【0093】
ホストオペレーティングシステムは、正常なオペレーティングシステムコンポーネントおよび機能を含むオペレーティングシステムを含むことができ、当該正常なオペレーティングシステムコンポーネントおよび機能は、ファイルシステム又は永久記憶デバイス(2)、ネットワークスタック(3)、シリアルポート(4)、RAM、プロセッサなどを含むが、これらに限定されるものではない。いくつかの実施例において、舞台自動化システム100は、裸金属又は仮想マシン上のあるスタイルのLinux又はWindows上に配置することができるが、当該環境は、Dockerコンテナ、別の汎用コンテナ、又は簡単なブートローダおよび類似するオペレーティングシステムの機能を有するオンチップ埋め込みシステムであってもよい。
【0094】
データベースファイルは、複数のランダムアクセス可能情報テーブルを格納可能なパーシステントストレージを含んでもよい。これは、SQLiteデータベースファイルを含むことができるが、単独のPostgresサーバプロセスにより管理されたPostgresデータベース、複数のプレーンCSVファイル、又は組み込みシステムオンチップのEEPROMに記憶されたキー/バリューペアを含むことができる。これは、必ずしも実行される実行プログラム106の要求ではなく、多くのコア特徴が要求される可能性がある。
【0095】
「ネットワークエンドポイント」は、ネットワークで正常な交換イーサネットデータパケットを送受信する、又は単一の他のネットワークデバイスへ正常な交換イーサネットデータパケットを送受信することができるIPアドレスを含むことができる。「エンドポイント」は、単一のIPアドレスを有する物理RJ-45イーサネットソケット、物理RJ-45ポート上の複数のうちの単一のIPアドレス、光ファイバポート、仮想スイッチ上の仮想ポート、WiFiカード、複数のバインディングされたイーサネットポート上の単一のIPアドレス、又はネットワークエンドポイントの任意の他の一般的なコンピュータ科学概念であってもよい。同様に、「シリアルポート」は、当該分野で公知の任意のシリアルポートを含むことができる。実際には、当該シリアルポートおよび物理媒体(10)は、ボックス上の物理DB-9コネクタ、USBからシリアルデバイス、又はネットワーク上の他のプロセスを介して共有された仮想シリアルポートを含むことができる。それは、半二重又は全二重に用いることができ、RS-232、RS-485、CANbus/CANogen又はUARTのような汎用シリアル標準に伴う任意の汎用状態シグナリングを有する。一般的には、これは、それ自体をLinux上の/dev/tty*デバイス、Windows上のCOMデバイス又は組み込みシステムにおけるシリアルデバイスオブジェクトとしてオペレーティングシステムに提示する。
【0096】
TCP/IPネットワークは、デバイス間/のうちの各種伝送タイプ(9)を有する「ネットワーク」として理解される様々な実際の構成を含むことができ、単一のイーサネットケーブルから他のデバイスへ直接的に、交換ネットワーク、VPN又はWiFiネットワークを介した接続、又はデータパケットをデバイスに交換し放送するコンピュータネットワークの任意の他の一般的なコンピュータに対して科学的に理解される。実施例において、舞台自動化システム100は、TCP/IPネットワークの任意の異常配置を不要とすることができ、かつ当該分野で既知の任意のコンピュータネットワークは、舞台自動化システム100内の通信を促進するように配置することができる。
【0097】
実施例において、「サーボドライバ」は、当該分野で既知の、機械(例えば、動作可能機構104、動作可能アセンブリ102)へ動力および制御を提供するように構成された任意のデバイスを含むことができる。舞台自動化システム100のコンテキストにおいて、サーボドライバおよび/またはサーボモータは、予測可能な閉ループ制御を提供するために用いられる。本発明の目的のために、想定されるように、予測可能な閉ループ制御は、特定の位置、速度、温度等を実現するための任意のデバイスに適用することができる。この点において、「サーボドライバ」に対する任意の引用は、付加的及び/又は代替的に他の機構に適用することができ、モータ(例えば、DCモータ、ACモータ)、油圧デバイス、空気圧デバイスなどを含むが、これらに限定されるものではない。当該例において、サーボドライバは、異なる通信技術により接続されたサーボドライバの同じモデルを含むことができ、又はサーボドライバの完全に異なるモデルであってもよい。
図5~
図6E-2は、単一のサーボドライバに接続された複数のデバイス(例えば、サーボモータ、ブレーキ、リミットスイッチ)を示し、これらのデバイスは、可動機構104/動作可能アセンブリ102を製造するために要求される。実施例において、サーボドライバは、その自身の能力を含むことにより電力を提供して機器(例えば、動作可能機構104、動作可能アセンブリ102)上の運動を制御することができ、かつ舞台自動化システム100は、その構成およびコマンドを提供してそれを設定し、かつ舞台自動化システム100からそれを制御する。舞台自動化システム100は、定期的にドライバをポーリングしてその状態、その構成および全ての接続された周辺デバイスの状態に関する情報を取得することができる。
【0098】
「インスタンス」は、単一のオペレーティングシステム(例えば、環境、オペレーティングシステム、Dockerに類似するコンテナ、仮想マシン又は組み込みシステム)で実行される実行プログラム106を含むことができる。当該インスタンスは、その起動時にその自身の唯一の識別子を生成することができ、その起動からその自身の内部時間を追跡し、かつその自身内の分散型プログラムオブジェクトおよび値を管理することができる。舞台自動化システム100は、全ての機器に直接接続できる単一のインスタンス(例えば、実行プログラム)により実行されてもよく、又はシステムは、複数の機器を管理するネットワークにまたがって分布された複数の実行プログラム106により実行されてもよい。インスタンスボックスで囲まれたオブジェクト内に描かれた矢印のすべては、ソフトウェアオブジェクト間の直接通信を示す。
【0099】
舞台自動化システム100における「環境」の概念には、システムの構成および相互に通信可能な全てのコンポーネントが含まれる。ソフトウェアの実行インスタンス(実行プログラム106)は、環境に関する情報を保存し、かつネットワークにまたがる複数のインスタンスは、環境に関する共有情報を保存するとともに、環境の一部である。
【0100】
データベースオブジェクトは、前述のような下層データベースシステムとの通信を処理する。その処理は、インスタンスのライフサイクル全体内に多くの事物を記録し、例えば、XaObject、XaObjectがリンクされたXaValues、それらのXaValues内の変数の時間および値、ネットワークデータパケット、デバッグ情報などである。それは、さらに保存された環境構成をロードするためのデータ、軸を一意に識別するためのサーボドライバ構成、インスタンス内又は前のセッションからのXavlue履歴などを読み取る。インスタンスにおける他の全ては、データベースオブジェクト内の関数を呼び出して、それがデータを保存するか又は読み取るように要求し、かつデータベースオブジェクトは、基礎データベースファイルシステムを抽象化する。
【0101】
ネットワークマネージャは、コアExatoシステムのオペレーティングシステム上のTCP/IPネットワーク上の通信を処理する。Exatoのコア分散型ネットワークシステムからの任意のデータは、いずれもExatoのコア分散型ネットワークシステムを通過し、かつそれは、受信されたデータパケットをExatoインスタンスに必要なオブジェクト、例えばXaValueManagerに伝送する。XaValueManagerは、インスタンスにおける全ての活動XaValuesを監視するメッセージエージェントであり、それらのソースが当該インスタンスであるのか、又はネットワーク上の他のインスタンスであるのかに関わらない(当該ロジック図に示されていない)。
【0102】
実空間で測定又は推定された軸の3D位置および方位に基づいて、Geometry Managerは、これらの軸の位置データを3D情報に変換する。それは、さらにCueManagerと共に動作することにより、各軸の空間での位置に基づいて、オブジェクトに基づくキューを各軸のためのジョグコマンドに変換する。例えば、4つの昇降機を設けてセットピースを持ち上げることができ、この4つの昇降機は、劇場によって異なる高さに位置することができる。オペレータは、セットピースを各種高さに到達させるためのキューを書き込み、かつGeometry Managerは、昇降機の当日の作業台の上方における測定高さに基づいて、セットピースの要求位置を昇降機が従うコマンドに変換する。ログは、Exato内のソフトウェアオブジェクトからのキャプチャされた全てのメッセージであり、オペレータによりフィルタリング可能な各種レベルの深刻性を有する。全てのログメッセージは、データベース(21)に送信されるとともに、ユーザインターフェースに選択的に送信される。
【0103】
AxisManagerは、インスタンスにおける全ての自動化軸オブジェクトを保持する。それは、全てのオブジェクトの状態を監視し、それらを表示することにより、それらが実施例内の他のオブジェクトから容易にアクセスして検索することを可能にする。その構成(それは何のAxesを含み、それらに含まれる真のAxisDevicesおよびその構成など)は、データベースからロードされ、又はデータベースに保存されるEnvironmentConfigurationにより限定されてもよい。
【0104】
CueManagerは、環境CueSheetおよびそれに含まれる全てのキューおよびコマンドを保存する。それは、さらにCueExecomputerを保存し、当該CueExecomputerは、AxisManagerを呼び出して単独の軸上の関数を呼び出すことにより、それらがコマンドに記述されたことを完了する。それは、キュー内のコマンドをソートし、1つのキューは、軸に複数のコマンドを保存することができ、これらのコマンドを順に実行する必要がある。その構成は、EnvironmentConfiguration内に含まれてもよく、データベースからロードするか、又はデータベースに保存することができる。
【0105】
Axisは、AxisSimおよび選択可能なAxisDeviceオブジェクトを含むオブジェクトである。AxisSimは、実デバイスがオフライン番組編成およびショーのための設定の構成およびキューにどのように応答するかを仮想的にシミュレーションする。これは、XaObjectであり、分散ネットワーク環境において他のインスタンスとその存在および関連するXaValueを共有する。このような独立構成において、XaValueは、依然として存在するとともに、それらの時間&値をデータベースに記録する。
【0106】
当該図において、AxisDeviceは、オペレーティングシステムのネットワークスタックに直接接続されることにより、それが監視及び制御するサーボドライバに接続される。
【0107】
図8は、本発明の1つ又は複数の実施例による舞台自動化システム100を操作するための方法800のフローチャートを示す。なお、方法800のステップは、舞台自動化システム100により全部又は部分的に実現することができる。しかしながら、方法800が舞台自動化システム100に限定されず、他の又は候補のシステムレベル実施例が方法800の全て又は一部のステップを実行することができるからであると理解されるべきである。
【0108】
ステップ802において、第1実行プログラム106aから分散型プログラムオブジェクトアナウンスを受信する。例えば、舞台自動化サーバ108は、第1実行プログラム106aから分散型プログラムオブジェクトを受信することができる。分散プログラムオブジェクトは、第1実行プログラム106aによって選択的に制御される第1動作可能機構104aに関連付けられた1つ以上のタイムスタンプ付き変数のセットを含んでもよい。
【0109】
ステップ804において、第1動作可能機構に関連付けられた分散型プログラムオブジェクトを生成する。例えば、舞台自動化サーバ108は、第1動作可能機構104 aに関連付けられた分散型プログラムオブジェクトを生成し、それをメモリ112に記憶するように構成されてもよく、ここで、分散型プログラムオブジェクトは、1つ又は複数のタイムスタンプ付き変数のセットを含む。
【0110】
ステップ806において、分散型プログラムオブジェクトを第2実行プログラムに送信する。例えば、舞台自動化サーバ108は、分散型プログラムオブジェクトアナウンスを第2実行プログラム106bに送信するように構成されてもよい。その後、第2実行プログラムから1つ又は複数のデータパケットを受信する。例えば、第2実行プログラム106bは、分散型プログラムオブジェクトの1つ又は複数のタイムスタンプ付き変数を更新・調整し、舞台自動化サーバ108を介して1つ又は複数の更新データパケットを第1実行プログラム106aに送信することができる。
【0111】
ステップ808において、1つ又は複数の受信されたデータパケットに基づいて、分散型プログラムオブジェクトの少なくとも1つのタイムスタンプ付き変数を調整する。例えば、第2実行プログラム106bから1つ又は複数の更新データパケットを受信する場合、舞台自動化サーバ108は、受信された更新データパケットに基づいて、第2実行プログラム106bにより調整された1つ又は複数のタイムスタンプ付き変数を調整するように構成されてもよい。
【0112】
ステップ810において、少なくとも1つの調整されたタイムスタンプ付き変数を示す1つ又は複数のデータパケットを第1実行プログラムに送信する。例えば、舞台自動化サーバ108は、1つ又は複数の更新されたタイムスタンプ付き変数を示す1つ又は複数の更新データパケットを転送するように構成されてもよい。
【0113】
ステップ812において、少なくとも1つの調整されたタイムスタンプ付き変数に関連付けられた第1動作可能機構の1つ又は複数の特性を選択的に調整する。例えば、第1実行プログラム106bは、1つ又は複数の制御信号を生成するように構成されてもよく、当該1つ又は複数の制御信号は、1つ又は複数の更新されたタイムスタンプ付き変数に基づいて、第1動作可能機構104aの1つ又は複数の動作特性を選択的に調整するように構成される。
【0114】
以上の説明により、本発明およびその多くの付随する利点を理解し、かつ開示された主題から逸脱しないか、又はその全ての実質的な利点を犠牲にしない場合に、コンポーネントの形式、構造および配置の面で様々な変更を行うことができることは、明らかである。記述された形式は、例示的なものに過ぎず、かつ添付の特許請求の範囲は、このような変更が含まれることが意図される。
【国際調査報告】