(57)【要約】  本発明の装置は、少なくとも１つの荷物を運動させる複数の荷物アクチュエータを備え、少なくとも１つの荷物の所望の挙動に関する命令を受け取るインタフェースとプロセッサとを有する。このプロセッサは所望の軌道または目的地にしたがって荷物を運動させるための制御信号を荷物アクチュエータへ送信する。
2007511443.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの荷物（１５２）を運動させる複数の荷物アクチュエータ（１５４）と、少なくとも１つの荷物（１５２）の所望の挙動に関する命令を受け取るインタフェース（３０２）と、プロセッサ（６０２）とを有しており、
該プロセッサは少なくとも１つの荷物アクチュエータに対して少なくとも１つの荷物に所望の挙動を生じさせるための制御信号を選択し、該制御信号を少なくとも１つの荷物アクチュエータへ印加する
ことを特徴とする装置。
【請求項２】
さらに、少なくとも１つの荷物（１５２）の現在の挙動に関する情報を求めるセンサ（３０８）と、該センサからの情報を受け取るセンサインタフェース（３０６）とが設けられている、請求項１記載の装置。
【請求項３】
前記制御信号は少なくとも部分的に前記情報に基づいて選択される、請求項２記載の装置。
【請求項４】
さらに、前記制御信号を選択して少なくとも１つの荷物アクチュエータへ印加するためのプログラムコード（６１２）が設けられており、該プログラムコードは前記プロセッサにより実行される、請求項１記載の装置。
【請求項５】
前記プログラムコードは、少なくとも１つの荷物の所望の速度を決定するためのコードと、該少なくとも１つの荷物の所望の速度を達成可能速度へ変換するためのコードと、該達成可能速度が速度特性にほぼ適合するように修正するためのコードとを含む、請求項４記載の装置。
【請求項６】
前記プログラムコードがさらに、１つの荷物と別の荷物とが衝突するか否かを求めるコードを含む、請求項５記載の装置。
【請求項７】
プロセッサ（６０２）および記録媒体（６１０）を有しており、
該記録媒体は、マシンによって実行される際に、
少なくとも１つの荷物の所望の挙動に関する命令を受け取り、
少なくとも１つの荷物アクチュエータに対して少なくとも１つの荷物に所望の挙動を生じさせるための制御信号を選択し、
該制御信号を少なくとも１つの荷物アクチュエータへ印加する
命令を内部に記憶している
ことを特徴とする装置。
【請求項８】
記録媒体（６１０）を有しており、
該記録媒体は、プログラムコード、すなわち
少なくとも１つの荷物の所望の挙動に関する命令を受け取るコード、
少なくとも１つの荷物アクチュエータに対して少なくとも１つの荷物に所望の挙動を生じさせるための制御信号を選択するコード、および
該制御信号を少なくとも１つの荷物アクチュエータへ印加するコード
を内部に記憶している
ことを特徴とする製品。
【請求項９】
少なくとも１つの荷物の所望の挙動に関する命令を受け取り（２０２）、
少なくとも１つの荷物アクチュエータに対して少なくとも１つの荷物に所望の挙動を生じさせるための制御信号を選択し（２０４）、
該制御信号を少なくとも１つの荷物アクチュエータへ印加する（２０６）
ことを特徴とする方法。
【請求項１０】
少なくとも１つの荷物の現在の挙動を求める、請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本願は、米国特許法第１１９条（ｅ）に基づいて2003年11月14日付米国出願第６０／５２０５１５号明細書（Wynblatt et al.,"A System for Programming Motion Control by Specifying Load Motions"）における優先権を主張する。この明細書の内容は本願発明の内容に組み込まれているものとする。
【０００２】
発明の背景
本願は広くは運動制御プログラミングに関連し、より詳細には所望の荷物運動の詳細な指示に基づく運動制御プログラミングに関連する。倉庫、荷物配送センタ、アセンブリ工場、製造工場などにおける荷物搬送システムは複数の荷物を或る場所から別の場所へ移動させるために用いられている。荷物はコンベヤベルト、ローラ、ロボットアーム、ピンホールエアジェットなどの荷物アクチュエータを介して移動されることが多い。現行の荷物搬送システムは、典型的には、荷物の所望の挙動を達成するためにプログラミングが必須となっている。
【０００３】
図１のａの荷物搬送システム１００について云うと、例えば、荷物１０２は荷物アクチュエータ１０４ａ，１０４ｂにより運動される。図１のａに示されているように、荷物アクチュエータ１０４ａ，１０４ｂは左コンベヤベルト１０４ａおよび右コンベヤベルト１０４ｂから成る。荷物１０２を例えば図中の回転矢印１０６の方向へ回転させる場合には、コンベヤベルト１０４ａ，１０４ｂの速度および方向を直接に指示しなければならない。例えば、左コンベヤベルト１０４ａが逆運動ベクトル１０８ａによって運動し、右コンベヤベルト１０４ｂが順運動ベクトル１０８ｂによって運動するようにプログラミングする。コンベヤベルト１０４ａ，１０４ｂの速度も荷物１０２の回転速度の制御のために定められる。同様に、荷物１０２に所望の挙動または挙動のセット（この場合には９０゜回転してから停止）を起こさせるため、アクチュエータ命令のタイミングも指示する必要がある。したがっってシステムのプログラマは、荷物１０２の回転に必要なアクチュエータ１０４ａ，１０４ｂのそれぞれの速度、方向およびタイミング情報を決定し、コーディングしなければならない。
【０００４】
また、図１のｂの荷物搬送システム１５０について云えば、荷物１５２ａ，１５２ｂは剛性的に全ての荷物を運動させる荷物アクチュエータ１５４ａと、自身の上方に到来した荷物のみを運動させる荷物アクチュエータ１５４ｂ，１５４ｃとを介して運動される。荷物搬送システム１５０はクロスベルトコンベヤシステムである。荷物１５２ａ，１５２ｂをそれぞれ第１の位置Ａ，Ｂから第２の位置Ａ’，Ｂ’へ移動させる場合、プログラマは各荷物アクチュエータ１５４ａ〜１５４ｃの速度、方向および運動ベクトルの開始時点および／または停止時点のタイミングを指示しなければならない。
【０００５】
こうした速度、方向およびタイミングを決定するには、使用される荷物搬送システムでの種々のアクチュエータの全てに対する設定の選択に熟練したプログラマを要し、所定の荷物を正確に搬送できるようにシステムをコンフィグレーションするには多大なプログラミング時間がかかる。多種多様な荷物を１つのシステムによって搬送する場合には、プログラマの決定すべきアクチュエータの速度、方向およびタイミングの複雑さ、ひいてはコンフィグレーションにかかるプログラミング時間がひどく増大してしまう。
【０００６】
ここで本発明の課題は、既存の技術に見出される問題を回避できる運動制御プログラミング装置および運動制御プログラミング方法を提供することである。
【０００７】
発明の概要
本発明は、荷物搬送システムにおける運動制御プログラミングの装置、方法およびプログラムコードに関する。
【０００８】
本発明の装置、方法およびプログラムコードでは、少なくとも１つの荷物の所望の挙動に関する命令が受け取られ、少なくとも１つの荷物アクチュエータに対して少なくとも１つの荷物の所望の挙動を生じさせる制御信号が選択され、この制御信号が少なくとも１つの荷物アクチュエータへ印加される。
【０００９】
また本発明の装置、方法およびプログラムコードでは、少なくとも１つの荷物の所望の速度が決定され、この所望の速度が達成可能速度へ変換され、少なくとも１つの荷物に関する速度特性が求められ、この速度特性に達成可能速度が適合するように修正される。
【００１０】
本発明のこれらの特徴および利点は、以下の実施例の説明、特許請求の範囲および添付図によってさらに明らかになるであろう。
【００１１】
図面の簡単な説明
図１のａ，ｂには荷物搬送システムのブロック図が示されている。図２には本発明の方法の第１の実施例のフローチャートが示されている。図３には本発明の装置の第１の実施例のブロック図が示されている。図４には本発明の方法の第２の実施例のフローチャートが示されている。図５には本発明の装置の第２の実施例のブロック図が示されている。図６には本発明の方法の第３の実施例のフローチャートが示されている。
【００１２】
実施例の説明
ここで説明する幾つかの実施例は“アクチュエータ”“荷物アクチュエータ”または“荷物運動アクチュエータ”に関する。これらの用語“アクチュエータ”“荷物アクチュエータ”または“荷物運動アクチュエータ”は互換可能であり、対象物の運動の開始、配向、抑制その他を制御できる全てのデバイスおよび／または装置を云うものとする。アクチュエータの例としてローラ、コンベヤベルト、ピンホールエアジェット、モータ、サーボモータ、ケーブル、バルブ、磁石、種々のロボットデバイス（アーム、ゲート、クレーン、液圧式リフト）などが挙げられるが、本発明はこれらに限定されない。実施例として、アクチュエータはプロセッサ、プリント回路板ＰＣＢなどの電子回路または電子部品、および／または対象物の運動に関する他のタイプの回路または電子接続部品を含みうる。
【００１３】
ここで説明する実施例は“制御信号”にも関する。この用語“制御信号”はデータ、ビット、パケット、パルス、トーン、波形その他のいずれの形態の信号であってもよい。制御信号は例えばパワーラインコントロールＰＬＣ、フィールドバスまたは工業規格準拠のイーサネットなどにしたがって送信される情報パケットを含む。また実施例として、制御信号は１つまたは複数のアクチュエータの所望の設定、アクションおよび／または挙動に関連する命令および／または情報を含む。この制御信号により、例えば、アクチュエータは所望の挙動にしたがって荷物を運動させる。
【００１４】
図２には（ただし引き続き図１のａ，ｂも参照）、本発明の運動制御プログラミング方法２００のフローチャートが示されている。方法２００は例えば図１のａ，ｂのシステム１００，１５０，後述する図３の装置３００および／または図６の装置６００、またはこれらの装置またはシステムの各コンポーネントに対応しており、これらによって実行される。ここで説明されるフローチャートのステップ順序は固定というわけではなく、実用上有利な順序で実行することができる。ここで説明する方法は、ハードウェア、ソフトウェア（マイクロコードを含む）、ファームウェアまたはこれらの組み合わせによって実行されることに注意されたい。例えば記録媒体は、マシンによって実行される際に各ステップを実行する命令を記憶している。
【００１５】
図２の実施例では、方法２００は、ステップ２０２で荷物の所望の挙動に関する命令を受け取ることにより開始される。例えばプログラマおよび／または他のエンティティが荷物の所望の運動を表す情報をコンピュータ、グラフィカルユーザインタフェースＧＵＩおよび／またはその他の形態のデバイスへ入力する。インタフェースは例えば運動制御プログラミングおよび／またはその標準化に用いられるアプリケーションプログラミングインタフェースＡＰＩである。実施例として、プログラマは、図１のａに示されているような荷物１０２の所望の回転１０６に関する情報を入力する。例えばプログラマはプログラミングインタフェースを使用して荷物の９０゜右回転を指示する。これに加えてまたはこれに代えて、プログラマは、図１のｂに示されているような荷物１５２ａ，１５２ｂの位置Ａ，Ｂから位置Ａ’，Ｂ’への移動も指示する。この実施例では、プログラマまたはユーザは荷物の並進運動（荷物１５２ａ，１５２ｂの位置Ａ，Ｂから位置Ａ’，Ｂ’への移動）および回転運動（回転１０６）に関する命令を入力する。実施例として、複数の荷物および／または荷物集合体の挙動に関連する命令を入力してもよい。
【００１６】
例えば、プログラマおよび／またはユーザはＡＰＩを用いて複数の荷物を操作および／または管理する。実施例として、１つまたは複数の荷物が関連づけられ、例えば関連荷物を電子的に表示した仮想集合体へとグループ化される。また複数の荷物は例えば同じ地域および／または同じタイプごとに１つまたは複数のグループおよび／またはカテゴリに分類することもできる。これに代えてまたはこれに加えて、実施例として、プログラマおよび／またはユーザが他のＡＰＩ機能を利用することもできる。例えばプログラマおよび／またはユーザは１つまたは複数の荷物に関する種々の特性を求めるクエリを送信する。実施例として、プログラマは例えば１つまたは複数の荷物の未来位置を決定および／または要求する。実施例として、プログラマは選択された荷物に最も近接する荷物、荷物グループまたは荷物の仮想集合体を求めることもできる。実施例として、プログラマは例えば２つ以上の荷物のあいだの距離を計算し、衝突確率を求めたり類似の荷物を判別したりすることができる。
【００１７】
実施例として、命令はコンピュータ、コンピュータプログラム、ソフトウェアモジュールその他の形態のコード、デバイスおよび／またはオブジェクトから受け取られる。例えば命令はコンピュータサーバ、コンピュータワークステーションまたはネットワークに接続されたＰＣから受信される。本発明で云うネットワークは周知の利用可能な全ての有線通信網または無線通信網を含み、有利にはローカルエリアネットワークＬＡＮ、ワイドエリアネットワークＷＡＮ、ＰＬＣネットワーク、フィールドバスネットワーク、インターネット、イントラネットまたはエクストラネットなどであるが、これらに限定されない。実施例として、命令は、プロセッサ、アクチュエータ１０４ａ，１０４ｂ，１５４ａ〜１５４ｃ，他のネットワーク接続可能デバイスおよび／または通信可能デバイスを介して受信される。例えばコンピュータおよび／または荷物搬送システムのプログラマはコンピュータワークステーションを使用して運動制御プログラミングのために命令をソフトウェアパッケージおよび／またはＡＰＩへ送信する。実施例として、命令を単一のデバイス、システムおよび／またはオブジェクトを介して、またはこれらの内部で送受信することができる。
【００１８】
方法２００では続いてステップ２０４で、荷物アクチュエータへ印加すべき制御信号が選択される。この制御信号は、実施例として、受信された命令に対応する所望の挙動が生じるように選択される。例えば、プログラマが荷物の９０゜右回転を指示、要求および／または命令すると、これに対応する運動を生じさせる１つまたは複数の制御信号が選択および／または決定される。実施例として、制御信号を受信された命令の一部のみに基づいて選択してもよい。例えば、係数、命令、測定値、パラメータおよび／またはその他の情報が制御信号の選択に利用される。
【００１９】
実施例として、制御信号は自動的に決定、選択および／または形成される。図１のａによれば、例えば、運動ベクトル１０８ａ，１０８ｂおよび／またはアクチュエータの運動のタイミングは自動的に決定される。この場合、運動およびタイミングのパラメータは自動的に適切な制御信号へ変換および／またはエンコーディングされる。実施例として、コンピュータ、プロセッサおよび／またはソフトウェアパッケージにより、荷物が所望の挙動、つまり受信命令によって表される挙動にしたがうように、速度、方向およびタイミングが決定される。このようにすれば、プログラマは必要な速度、方向および／またはタイミングのパラメータの直接の指示、コーディングおよび／または決定を行わずに済む。したがってプログラマが所定の荷物搬送システムに対するカスタム論理回路を開発する時間が大幅に低減される。
【００２０】
実施例として、要求された速度、方向および／またはタイミングは１つまたは複数の特定の制御信号に組み込まれ、変換され、および／または関連づけられる。例えば、要求されたパラメータにしたがって荷物アクチュエータを運動させる電子信号が形成、選択、識別および／または決定される。実施例として、１つまたは複数の適切な制御信号を周知の利用可能な制御信号のデータベースまたはルックアップテーブルから取り出すことができる。制御信号およびその送受信は周知かつ利用可能ないずれの形態であってもよく、有利なものを後述する。実施例として、制御信号を符号化、暗号化および／または圧縮してもよい。
【００２１】
実施例として、図１のｂに示されているようにプログラマが荷物１５２ａ，１５２ｂを位置Ａ，Ｂから位置Ａ’，Ｂ’へ移動させるよう指示したケースにおいて、荷物を適切に所望の位置へ搬送させる多くの手法が考えられる。いずれの手法によっても所望の結果は得られるが、それには種々のアクチュエータ１５４ａ〜１５４ｃに対してそれぞれ別個に速度、方向、タイミングを設定しなければならない。しかし本発明の実施例によれば、プログラマは荷物１５２ａ，１５２ｂの移動位置Ａ’，Ｂ’を指示するだけでよい。本発明の方法により所望の結果を得るための相応の設定は自動的に決定される。実施例として、本発明の方法では複数のステップ、ストラテジおよび／またはルートから最適なものを選択する。例えばプログラマが前述のように荷物１５２ａを位置Ａから位置Ａ’へ移動させるよう命令したとする。位置Ａ’にいたる多数の可能選択肢のなかから最も望ましいルートが自動的に選択される。選択されたルートのための種々のアクチュエータの設定も自動的に決定される。実施例として、自動的に決定された設定を表す制御信号が形成、選択または決定される。
【００２２】
実施例によれば、ステップ２０６で制御信号が荷物アクチュエータへ印加される。つまりステップ２０４で選択された制御信号が荷物アクチュエータへ送信されるのである。実施例として、この制御信号によりアクチュエータは所望の挙動にしたがって運動するよう支援される。実施例として、１つまたは複数のコンバータ、フィルタおよび／またはコントローラを介して制御信号をアクチュエータへ印加してもよい。例えば、ディジタル信号である制御信号がアナログディジタル変換器へ送信され、アナログディジタル変換器によりディジタル制御信号がアクチュエータの理解可能な１つまたは複数のアナログ命令および／またはアナログ設定へ変換される。
【００２３】
実施例として、制御信号は複数のコンポジット信号としてアクチュエータへ印加されてもよい。例えば制御信号によって図１のｂに示されているように荷物１５２ｂを位置Ｂから位置Ｂ’へ移動させようとするとき、まず第１の信号が選択および／または送信され、第１のアクチュエータ１５４ａに作用して荷物１５２ｂを第３のアクチュエータ１５４ｃの箇所まで搬送させる。荷物１５２ｂが第３のアクチュエータ１５４ｃに達するか、部分的に第３のアクチュエータ１５４ｃの上方にさしかかると、第２の信号が送信され、第２のアクチュエータ１５４ｃに作用して荷物１５２ｂを所望の目的地Ｂ’へ搬送させる。アクチュエータごとの信号の選択および／または送信は、例えば、荷物１５２ｂが図示されていない最終目的地へ達するまで続く。実施例として、種々の制御信号および／またはコンポジット信号は荷物が各アクチュエータに達する前に当該のアクチュエータに印加される。実施例として、例えば第３のアクチュエータ１５４ｃは荷物がこれに接近すると制御される。実施例として、選択された制御信号および／または種々のコンポジット信号を、要求された荷物の適切な運動のために、１つまたは複数のアクチュエータへ直接に印加してもよい。
【００２４】
図３には、本発明の運動制御プログラミング装置３００のブロック図が示されている。この装置は例えば前述の方法２００および／または後述する方法４００にしたがって制御される。装置３００はプログラミングデバイス３０２，荷物プログラミングライブラリ３０４，センサインタフェース３０６，センサ３０８，運動制御プログラミングライブラリ３１０およびアクチュエータ３１２を含む。実施例として、アクチュエータ３１２は図１のａ，ｂに則して説明したアクチュエータ１０４ａ，１０４ｂ，１５４ａ〜１５４ｃを含む。もちろん図３に示されているコンポーネントの態様に対して、本発明の範囲から離れることなく、これらのレイアウト、部品点数およびコンフィグレーションを変更することも可能である。
【００２５】
実施例として、プログラミングデバイス３０２は周知の利用可能なＰＣ，コンピュータワークステーション，コンピュータサーバ，ＧＵＩ，ＡＰＩその他の装置を含む。例えばプログラミングデバイス３０２は荷物搬送システムのオペレータによって使用されるコンピュータワークステーションおよび／またはコンソールである。実施例として、プログラミングデバイス３０２は、例えばMicrosoft（Ｒ）  Visual Studio（Ｒ）またはSiemensＴＭ SimaticＴＭ  STEP7などの運動制御プログラミング環境を含む。プログラミングデバイス３０２は、実施例では、プログラマが運動制御命令を指示するために用いられる。プログラミングデバイス３０２は荷物プログラミングライブラリ３０４に接続されるか、荷物プログラミングライブラリ３０４を含むか、荷物プログラミングライブラリ３０４と通信する。
【００２６】
実施例として、荷物プログラミングライブラリ３０４はコンピュータサーバおよび／またはプログラミングデバイス３０２内にインストールされたソフトウェアパッケージまたはプログラムを含む。荷物プログラミングライブラリ３０４は、実施例では、前述の方法２００および／または後述する方法４００にしたがって機能を実行する。例えば荷物プログラミングライブラリ３０４はプログラマからの荷物運動命令をアクチュエータ命令へ変換する。アクチュエータ命令は例えば指示された荷物運動命令にしたがって荷物を運動させるように構成されている。実施例として、荷物プログラミングライブラリ３０４は荷物運動をプログラミングする図示されていないＡＰＩへアクセス可能なように構成することもできる。
【００２７】
実施例として、荷物プログラミングライブラリ３０４は荷物情報メモリ３２０を有する。荷物情報メモリ３２０は周知の利用可能ないずれの形態のものであってもよい。例えば荷物情報メモリ３２０は情報を記憶する１つまたは複数のデータベース、テーブルおよび／またはメモリを含む。実施例では、荷物情報メモリ３２０は提示された荷物の挙動の記憶部３２２および／または現在の荷物の挙動の記憶部３２４を含む。提示された荷物の挙動の記憶部３２２は例えばプログラマの指示した所望の荷物運動を含む。ここで、提示された荷物の挙動の記憶部３２２はプログラミングデバイス３０２からおよび／またはプログラミングデバイス３０２を介して受信された命令に対応する。
【００２８】
現在の荷物の挙動の記憶部３２４は荷物の現在位置、現在挙動および／または現在特性に関する情報を含む。実施例では、荷物の現在情報はセンサインタフェース３０６またはセンサ３０８から得られる。これに代えてまたはこれに加えて、実施例として、荷物情報メモリ３２０が１つまたは複数の荷物の未来位置（予測位置）、未来特性および／または品質に関する情報を記憶していてもよい。これに代えてまたはこれに加えて、実施例として、荷物情報メモリ３２０および／または荷物プログラミングライブラリ３０４がシステムサイズおよび／または境界、荷物運動のデフォルトまたは通常の経路および／または荷物運動計画を記憶することもできる。実施例として、プログラマはプログラミングデバイス３０２を利用して荷物情報メモリ３２０に含まれる情報を問い合わせる。例えばプログラマは現在の挙動の記憶部３２４に対して、特定の荷物の現在速度を要求するクエリ命令“GetVelocity”を入力する。
【００２９】
荷物プログラミングライブラリ３０４は、実施例では、アクチュエータ情報メモリ３３０も有する。アクチュエータ情報メモリ３３０は例えば荷物搬送システム内の各アクチュエータに対応する情報を含む。アクチュエータ情報の例としてアクチュエータの個数、サイズ、特性、作用領域の位置、設定のデフォルト値、速度能および／または方向能などが挙げられるが、これらのみに限定されない。実施例として、アクチュエータ情報メモリ３３０内に記憶されている情報を荷物プログラミングライブラリ３０４が使用して所望の荷物運動を適切なアクチュエータ命令に変換してもよい。
【００３０】
実施例として、アクチュエータ情報メモリ３３０は履歴バッファ３３２および／または現在のアクチュエータの挙動の記憶部３３４を記憶している。履歴バッファ３３２は、例えば、アクチュエータの過去位置、過去挙動および／または過去特性に関する情報を記憶している。これに対して現在のアクチュエータの挙動の記憶部３３４は現在および／または未来のアクチュエータ命令および／または設定を含み、これらを供給する。これに代えてまたはこれに加えて、実施例として、アクチュエータ情報メモリ３３０および／または荷物プログラミングライブラリ３０４は荷物搬送システムに関する他の情報、例えばシステムサイズおよび／または境界、荷物運動のデフォルトまたは通常の経路および／または荷物運動計画などを記憶している。
【００３１】
センサインタフェース３０６は一般に周知の利用可能なセンサと通信できるデバイスおよび／またはコンポーネントである。実施例では、センサインタフェース３０６はコンピュータおよび／またはコンピュータプロセッサ、ネットワークプロセッサ、ネットワークインタフェースカードＮＩＣ、コンバータ、フィルタまたは論理回路および／または計算装置を含む。センサ３０８は荷物の運動または挙動に関する情報を収集、検出および／または決定するデバイスおよび／またはコンポーネントである。センサ３０８は例えば運動センサ、重量センサ、レーザーを含む光センサ、熱センサ、音響センサ、トリガ、ゲート、スイッチ、バーコードまたはその他のリーダおよび／またはスキャナを含む。
【００３２】
実施例として、運動制御プログラミングライブラリ３１０はアクチュエータ命令の管理、形成、編集および送受信を行うことのできる装置またはデバイスを含む。運動制御プログラミングライブラリ３１０は、実施例によれば、運動制御機能または運動制御命令を定義し、プログラミングし、管理する図示されていないＡＰＩを含む。運動制御プログラミングライブラリ３１０は例えばSIEMENSＴＭ SIMOTION（Ｒ）などの運動制御装置である。実施例によれば、運動制御プログラミングライブラリ３１０によって構成されるＡＰＩはInternational Electrotechnical CommissionによるＩＥＣ６１１３１規格および／またはPLCOpenによる定義にしたがって動作する。運動制御プログラミングライブラリ３１０は、実施例では、アクチュエータ命令をアクチュエータ３１２へ印加するように構成されている。例えば運動制御プログラミングライブラリ３１０はアクチュエータ３１２が荷物プログラミングライブラリ３０４によって定められた１つまたは複数のアクチュエータ命令にしたがって動作するように制御する。
【００３３】
図示の例からわかるように、プログラマが荷物を或る位置から別の位置へ、例えば図１のｂの位置Ａから位置Ｂへ移動させることを要求したとする。プログラマはプログラミングデバイス３０２、例えばコンピュータワークステーションを利用する。コンピュータワークステーション３０２はインストールされたソフトウェアプログラムを含み、このソフトウェアプログラムは荷物プログラミングライブラリ３０４によって構成されるＡＰＩを含む。荷物プログラミングライブラリ（ＡＰＩ）を介して、プログラマは荷物の搬送に関連する種々の命令を入力および／またはコーディングする。例えばプログラマは荷物の所望の位置、例えば位置Ｂを表す命令“SetPosition”を入力する。
【００３４】
荷物の所望の挙動すなわち図１のｂの位置Ａから位置Ｂへの移動は、荷物プログラミングライブラリ３０４により、提示された荷物の挙動として荷物情報メモリ３２０の記憶部３２２へ記憶される。例えば荷物の所望の挙動は荷物情報メモリ（荷物データベース）３２０の提示された荷物の挙動の記憶部３２２および／またはテーブルに記憶される。実施例として、荷物プログラミングライブラリ３０４がセンサインタフェース３０６および／またはセンサ３０８と通信し、荷物の現在のステータスを求めてもよい。このとき、センサ３０８はセンサインタフェース３０６を介して荷物プログラミングライブラリ３０４へ連続的または間欠的に情報を供給する。
【００３５】
現在の荷物情報は荷物プログラミングライブラリ３０４によって現在の荷物の挙動として荷物情報メモリ３２０の記憶部３２４へ記憶される。実施例では、提示された荷物の挙動が現在の荷物の挙動に一致しない場合、荷物プログラミングライブラリ３０４は所望の荷物の挙動にしたがって荷物を運動させる命令を形成および／または送信する。換言すれば、荷物プログラミングライブラリ３０４は荷物を運動させる必要があることを決定し、荷物を要求どおりに運動させるためのイベントおよび／またはプロセスをトリガする。実施例として、現在の荷物の挙動と提示された荷物の挙動とを比較せず、プログラマが特定の実行命令（例えば“Go”命令）を入力するまで待機してもよい。
【００３６】
図示の例では、いちど荷物プログラミングライブラリ３０４が荷物を移動させるべきことを検出すると、荷物の所望の速度も決定される。実施例として、プログラマが所望の速度を入力および／または設定してもよい。ただし命令“SetPosition”しか入力されなかった場合、当該の荷物に対する適切な速度を決定しなければならない。この速度は例えば後述する方法４００にしたがって決定される。実施例では、荷物の所望の速度が決定および／または設定されると、所望の荷物の挙動、つまり運動方向、運動速度などが適切なアクチュエータ命令へ変換および／またはマッピングされる。所望の荷物の挙動をアクチュエータ命令へマッピングする手法の例は米国出願Wynblatt et al., "Systems and Methods for Controlling Load Motion Actuators" 2004に記載されており、この出願の内容も本発明に組み込まれるものとする。
【００３７】
実施例では、アクチュエータ情報メモリ３３０からの情報がアクチュエータ３１２を操作する命令を決定するために用いられる。これはアクチュエータ３１２の種々の限界値、能力値および／または特性に依存して行われる。また、荷物搬送システムに関する記憶情報および／または入力情報、例えば荷物のデフォルトの経路または速度の情報も、アクチュエータ命令を決定および／または修正するために用いられる。例えば、荷物プログラミングライブラリ３０４で決定および処理され、そこから受信された所望の荷物の挙動および／または速度は、１つまたは複数のアクチュエータ命令、例えば運動制御プログラミングライブラリ３１０のＡＰＩによって定義される命令へ変換される。
【００３８】
実施例では、運動制御プログラミングライブラリ３１０（および／またはこれに対応するＡＰＩ）によって定義された命令は、典型的には、荷物搬送システムを操作して荷物の運動を管理するプログラマが決定した命令である。この実施例によれば、荷物プログラミングライブラリ３０４によりプログラマの所望の荷物運動の入力が簡単となり、またその入力内容が運動制御プログラミングライブラリ３１０の理解可能な定義された適切なアクチュエータ命令へ変換される。
【００３９】
実施例では、所望の荷物運動に基づいて決定、定義および／またはマッピングされたアクチュエータ命令がアクチュエータ３１２へ印加される。例えば、運動制御プログラミングライブラリ３１０が決定されたアクチュエータ命令を直接にアクチュエータ３１２へ送信する。実施例として、図示されていない個別の運動制御装置がアクチュエータ命令および／またはその他の信号、例えば前述の方法２００に則して説明した制御信号などを受信してもよい。運動制御装置は例えば決定されたアクチュエータ命令にしたがってアクチュエータ３１２を運動させる。
【００４０】
図４には、本発明の運動制御プログラミング方法４００のフローチャートが示されている。この方法４００は例えば前述の図３のシステム３００に関連して実行される。実施例では、方法４００はシステム３００の荷物プログラミングライブラリ３０４によって実行される。実施例では、ステップ４０２で荷物の所望の速度を決定することにより、方法４００が開始される。
【００４１】
例えば、プログラマが荷物の所望の速度を表す命令“SetVelocity”を入力する。プログラマが特に速度を指示せず、例えば最初から命令“SetPosition”を入力した場合には、通常またはデフォルトの荷物運動計画が決定される。例えば、デフォルトの荷物運動情報、例えば有利な荷物経路はデータベースすなわち荷物情報メモリ３２０、または荷物プログラミングライブラリ３０４内のファイルおよび／またはコンピュータプログラムに記憶されている。荷物の速度は、デフォルトの荷物運動計画、つまりデフォルトの速度設定にしたがって、および／またはシステムおよび／またはアクチュエータの能力に関連して記憶されている限界値の範囲内で決定される。
【００４２】
本発明の実施例では、方法４００はステップ４０４へ移行し、荷物の所望の速度が達成可能速度へ変換される。例えばシステムおよび／またはアクチュエータの能力に関する種々の記憶情報および／または入力情報が用いられ、所望の速度が当該の荷物搬送システムによって達成可能であるか否かが判別される。所望の速度が達成可能であればこれに対する変更は必要なく、所望の速度をそのまま達成可能速度として用いることができる。所望の速度が達成不能である場合には、これを達成可能速度へ調整しなければならない。実施例では、所望の速度に近似した達成可能速度が選択および／または決定される。例えば、所望の速度は最も近似の達成可能速度、つまり所望の速度との差が最も小さい達成可能速度へ変換される。
【００４３】
方法４００は、実施例ではステップ４０６へ移行し、荷物に関連する速度特性が求められる。例えば、荷物の不適切な加速を回避するためには、達成可能速度を平滑化しなければならない。このために、荷物の加速、回転および／または移動の範囲を定める限界値に関する情報が記憶および／または入力される。壊れものおよび／または定形外の荷物は滑らかに加速し、衝突や転倒を回避しなければならない。実施例として、荷物ごとに形成された限界値に適合する速度特性、例えば加速計画が選択される。例えば、予測される速度変化量、例えば加速度変化分が荷物の現在速度（例えば荷物情報メモリ３２０の現在の荷物の挙動の記憶部３２４に記憶されている速度）と荷物の達成可能速度（荷物情報メモリ３２０の提示された荷物の挙動の記憶部３２２に記憶されている速度）とを比較することにより求められる。
【００４４】
ステップ４０８で、達成可能速度が求められた速度特性にほぼ適合するように修正される。達成可能速度と現在速度とのあいだの差が所定の値を超える場合には、荷物が許容可能な限界範囲内で加速されるように達成可能速度が修正される。実施例では、達成可能速度は選択された速度特性にしたがって許容可能な速度の最大値、平均値、メディアン値および／または最小値に一致するように変更される。実施例として、現在速度から達成可能速度への速度変更を所望の加速度が得られるように適切な時間にわたって分散させることができる。
【００４５】
実施例として、荷物の速度をさらに調整することもできる。例えば、荷物の経路（またはルート、速度、タイミングなど）が分析され、或る荷物が他の荷物と衝突しそうかどうかが判別される。種々の荷物の提示経路が特定の時間間隔および／またはランダムな種々の時間間隔で比較され、２つ以上の荷物が同時に同位置に存在するか否か、つまり衝突するか否かが判別される。荷物のサイズおよび／または形状に関する情報も荷物の衝突検出に利用される。実施例では、２つの荷物の衝突が予測される場合、競合している２つの荷物の１つまたは複数の速度および／または経路が変更され、衝突が回避される。
【００４６】
例えば、最小の優先度を有する荷物の修正達成可能速度が衝突回避のために調整される。実施例では、衝突の発生可能性がなくなるまで一方または双方の荷物の提示速度が反復して低減される。方法４００では、速度の決定、変換、変更および／または修正が種々の時間間隔で連続的に、および／または予測された衝突を回避するための変更後に、反復される。ただし衝突回避のための変更から例えば新たな衝突発生のおそれが生じることもあるので、その点は検討しなければならない。
【００４７】
図５には、本発明の荷物の運動制御プログラミング装置５００が示されている。装置５００は例えば前述の方法２００，４００に関連して動作する。実施例では、装置５００は荷物Ａ，Ｂ，Ｃを含む。実施例では、荷物Ａは所望の運動ベクトル５０２にしたがって位置Ａ’へ、荷物Ｂ，Ｃはそれぞれ所望の運動ベクトル５０４，５０６にしたがって移動させることが指示された。所望の運動ベクトル５０２，５０４，５０６は、実施例によれば、それぞれの荷物に対応する指示された運動ベクトル、達成可能運動ベクトル、修正された達成可能運動ベクトルその他であってよい。
【００４８】
図示の実施例からわかるように、プログラマは荷物Ａを位置Ａ’へ、荷物Ｂを方向４０゜、速度１．５ｍ／ｓで運動ベクトル５０４にしたがって、荷物Ｃを方向０゜、速度１ｍ／ｓで運動ベクトル５０６にしたがって移動させようとしている。プログラマの指示した荷物Ｂ，Ｃに対する運動ベクトルは初期の所望の運動ベクトル５０４，５０６として選択されている。荷物Ａに対するベクトルは指示されていないので、当該の荷物搬送システムに関連する通常またはデフォルトの荷物運動計画が決定される。
【００４９】
装置５００が図示されていないローラディバータアクチュエータのマトリクスを含む場合、方向０゜，４５゜，１３５゜での運動しか許されない。したがって典型的な運動および／または所望の運動は、方向０゜でまっすぐに進む移動と、方向変換の箇所から４５゜または１３５゜で目的地にいたるまで対角線方向に進む移動とから成る。所望の目的地位置Ａ’は現在の荷物Ａの位置から０゜の方向にあるので、荷物Ａに対してはデフォルトの０゜の経路が選択される。荷物Ａの速度は、実施例によれば、デフォルトの速度、例えば１ｍ／ｓにセットされる。このようにして荷物Ａに対する初期の所望の運動ベクトル５０２が決定される。
【００５０】
実施例では、運動ベクトル５０２，５０４，５０６はアクチュエータの能力と比較され、これらの運動ベクトルが装置５００によって達成可能であるか否かが判別される。例えばローラディバータアクチュエータの速度については２ｍ／ｓ以下で１ｍ／ｓ刻みに設定可能であり、方向については前述した通りである。荷物Ａに対する所望の運動ベクトル５０２は装置５００のデフォルトおよび／または能力に基づいて選択されているので、運動ベクトル５０２はアクチュエータの能力に適合し、方向０゜、速度１ｍ／ｓは達成可能である。また、この実施例での荷物Ｃに対する運動ベクトル５０６は荷物Ａに対して選択された運動ベクトル５０２に等しいので、これも達成可能である。
【００５１】
ただし荷物Ｂに対する所望の運動ベクトル５０４は方向についても速度についても達成不能である。換言すれば、当該のアクチュエータは速度１．５ｍ／ｓでの運動も方向４０゜での運動も達成できない。実施例では、この荷物Ｂに対する所望の運動ベクトル５０４が達成可能な運動ベクトル５０８へ変換される。達成可能な運動ベクトル５０８は、例えば、プログラマの指示した本来の方向および速度に近似の方向および速度に設定される。例えば、荷物Ｂに対する達成可能な運動ベクトル５０８は切り上げにより速度２ｍ／ｓ（切り下げのほうが好ましい場合には速度１ｍ／ｓ）、方向４５゜に設定される。所望の速度および方向は周知の利用可能な手法により達成可能な速度および方向へ丸められるか、変換および／または変更される。
【００５２】
実施例として、衝突の可能性が調査される。荷物Ａ，Ｂ，Ｃの位置が所定の時間にわたって予測され、荷物Ａ，Ｂが衝突しそうかどうかが判別される。ここでは、荷物Ｂの速度が衝突回避のために調整される。例えば、荷物Ｂの本来の所望の速度から達成可能速度への変換が再び行われる。この変換は、例えば、荷物Ｂの本来の所望の速度の切り上げまたは切り下げを交番させることにより行われる。したがって１ｍ／ｓの達成可能速度が選択される。新たな設定を用いた未来位置の分析から、変更によって衝突を回避できることが示された場合、それ以上の変更は必要ない。しかし依然として衝突の生じる可能性が残る場合、荷物Ａ，Ｂに対する達成可能な運動ベクトル５０２，５０８の一方または双方が衝突回避のために適切に調整される。実施例では、切迫した衝突（例えば１マシンサイクル内および／または短時間内に起こる確率の高い衝突）のみが考慮される。これにより例えば、所望の挙動に可能なかぎり近似に、また計算時間を低減して、荷物の搬送を行うことができる。
【００５３】
図６には、本発明の荷物の運動制御プログラミング装置６００のブロック図が示されている。ただしこれは例示に過ぎず、本発明を限定するものではない。種々のタイプ、レイアウト、部品点数またはコンフィグレーションの装置を本発明の範囲から離れることなく使用可能である。実施例では、装置６００はコンピュータ、例えばコンピュータサーバ、コンピュータワークステーション、ＰＣ、および／またはその他の形態の計算装置または論理装置を含む。装置６００は１つまたは複数のプロセッサ６０２を含むが、これは周知の利用可能ないずれの形態のプロセッサ、マイクロプロセッサおよび／またはマイクロエンジンであってもよい。実施例では、装置６００は１つまたは複数の通信インタフェース６０４，出力デバイス６０６，入力デバイス６０８および／またはメモリデバイス６１０を含み、これら全てがプロセッサ６０２と通信する。
【００５４】
通信インタフェース６０４は周知の利用可能ないずれの形態の通信装置を含んでもよい。実施例では、通信インタフェース６０４を介して装置６００および／またはプロセッサ６０２は例えば前述の荷物搬送システム１００，１５０，３００および／またはそのアクチュエータ１０４ａ，１０４ｂ，１５４ａ〜１５４ｃのマトリクスと通信する。実施例では、プロセッサ６０２が信号をアクチュエータのマトリクスおよび／または種々の個別のアクチュエータへ送信する。ここでの信号は例えば前述の方法２００に則して説明した制御信号である。出力デバイス６０６および入力デバイス６０８は１つまたは複数の従来のデバイス、例えばディスプレイ、プリンタ、キーボード、マウス、トラックボールなどを含む。出力デバイス６０６および入力デバイス６０８は荷物搬送システムを前述の実施例にしたがってプログラムするために例えばオペレータまたはシステムのユーザによって用いられる。
【００５５】
メモリデバイス６１０は、実施例として、１つまたは複数の磁気記録装置、例えばハードディスク、１つまたは複数の光学記録装置および／またはソリッドステート記録装置を含む。メモリデバイス６１０は例えば装置６００が荷物アクチュエータのプログラミングを行うためのアプリケーション、プログラム、プロシージャおよび／またはモジュールを記憶している。ここで荷物プログラミングライブラリ６１２は、例えば、荷物アクチュエータのプログラミングを行う標準化されたプログラムおよび／またはＡＰＩである。荷物プログラミングライブラリ６１２は、実施例によれば、図３に則して説明した荷物プログラミングライブラリ３０４に類似している。例えば、荷物プログラミングライブラリ６１２は、プログラマに所望の荷物の挙動を入力させ、これに基づいて荷物の運動を制御する。荷物プログラミングライブラリ６１２は、例えば、所望の荷物の挙動を、適切なアクチュエータ命令および／または荷物を要求通りに運動させるためのアクションへ変換する。
【００５６】
前述した幾つかの実施例は例示のためのものに過ぎない。当該分野の技術者は本明細書からその他の実施例も容易に想到できるはずであり、本発明の修正および変更は特許請求の範囲のみによって制限される。
【図面の簡単な説明】
【００５７】
【図１】荷物搬送システムのブロック図である。
【図２】本発明の方法の第１の実施例のフローチャートである。
【図３】本発明の装置の第１の実施例のブロック図である。
【図４】本発明の方法の第２の実施例のフローチャートである。
【図５】本発明の装置の第２の実施例のブロック図である。
【図６】本発明の方法の第３の実施例のフローチャートである。
【図１ａ】
2007511443.tif 000003
【図１ｂ】
2007511443.tif 000004
【図２】
2007511443.tif 000005
【図３】
2007511443.tif 000006
【図４】
2007511443.tif 000007
【図５】
2007511443.tif 000008
【図６】
2007511443.tif 000009
【国際調査報告】
2007511443.tif 000010
2007511443.tif 000011