AGV
説明
AGVに関連するデータおよびメソッドが利用可能になります。
プロパティ
accumAheadAGV | 累積パス上にある次のAGVを取得します。 |
ampHours | AGVのバッテリーに残っているアンペア時間を数値で取得します。 |
batteryLevel | (残りアンペア時間)/(合計アンペア時間)の割合をパーセント単位で取得もしくは設定します。 |
currentCP | このAGVの現在のコントロールポイントを取得もしくは設定します。 |
destination | AGVの現在目的地を取得します。 |
destinationCP | AGVの現在目的地のコントロールポイントを取得します。 |
finalDestinationCP | AGVの最終目的地のコントロールポイントを取得します。 |
object | このAGVでオブジェクトメソッドとプロパティが利用可能になります。 |
originCP | AGVの元のコントロールポイントを取得します。 |
overflowCP | AGVがトレーラーを押している場合、「オーバーフロー」するコントロールポイントを取得するか、そのようなコントロールポイントを設定します。 |
proximityState | AGVの現在の近接状態を取得します。 |
recentCP | 最後にagvのcurrentCPであったコントロールポイントを取得します。 |
speed | AGVの現在の速度を取得します。 |
te | このAGVでTaskExecuterメソッドとプロパティが利用可能になります。 |
trailers | このAGVにアタッチされている一連のトレーラーで構成されているAGV.Trailerの配列です。 |
メソッド
attachTrailer | 特定のオブジェクトをAGV上のトレーラーとしてアタッチします。 |
coupleTrain | このAGVに対してトレーラーの輸送列をアタッチし、ネットワークジオメトリに基づいてギャップなどを自動計算します。 |
detachTrailer | AGVから特定のトレーラーをデタッチします。 |
getTrailer | ahead/behindパラメータに基づく特定のトレーラーを取得し、AGVドライバに対するランクを取得します。 |
redirect | 指定されたモードに応じて、AGVを新しい目的地にリダイレクトします。 |
startRecharge | AGVのバッテリーの充電を開始します。 |
uncoupleTrain | このAGVからトレーラーの輸送列をデタッチし、独立したAGV輸送列を作成します。 |
コンストラクター
AGV | 指定したTaskExecuterに基づいて、AGVオブジェクトを構築します。 |
詳細
AGV.overflowCP
treenode overflowCP
説明
AGVがトレーラーを押している場合、「オーバーフロー」するコントロールポイントを取得するか、そのようなコントロールポイントを設定します。
一般的には、AGVがトレーラーを押している場合でのみ必要です。トレーラーを押している場合、これらのトレーラーはAGVの予定目的地を越えて押されることになります。そのため、overflowCPはAGVのトレーラーが「オーバーフロー」すべきAGVパスネットワーク上のポイントを定義します。
overflowCPの制御はユーザーによってのみ行われます。モデルがリセットされた場合のみ、自動でリセットされます。そのため、このプロパティを設定する場合、適用可能な動作を完了した後でこのプロパティを0にリセットする必要があります。適用可能な移動動作の後でリセットしなかった場合、異常なAGVパス移動動作が発生する恐れがあります。
agv.overflowCP = Model.find("ControlPoint5");
AGV.trailers
readonly trailers
説明
このAGVにアタッチされている一連のトレーラーで構成されているAGV.Trailerの配列です。
トレーラーは前方から後方に向けて順序付けされています。言い換えると、最前列のトレーラーが
agv.trailers[1]になり、最後列のトレーラーが
agv.trailers[agv.trailers.length].
AGV.attachTrailer()
attachTrailer( treenode trailer , double gap , int behind , int detachRule ) |
パラメータ
trailer | AGVにけん引されるオブジェクト |
gap | 次のトレーラーまたはAGVからのトレーラーの距離 |
behind | トレーラーの位置を設定します。0または1に設定でき、0は前方、1は後方を示します。 |
detachRule | AGVのデタッチモードを設定します。0または1に設定でき、0は手動、1は自動を示します。 |
説明
特定のオブジェクトをAGV上のトレーラーとしてアタッチします。
トレーラーを手動デタッチモードでアタッチする場合、トレーラーのデタッチにはdetachTrailer()を呼び出す必要があります。
agv.attachTrailer(trailerObj, 0.1, 1, 0);
AGV.coupleTrain()
coupleTrain( treenode trailer ) |
パラメータ
trailer | AGVに結合されるオブジェクトです。トレーラー自体がAGVであるか、AGVのトレーラーである場合、AGV輸送列全体がアタッチされます。 |
説明
このAGVに対してトレーラーの輸送列をアタッチし、ネットワークジオメトリに基づいてギャップなどを自動計算します。
coupleTrain()は、次に示すの主な違いを除けばattachTrailer()と同様です。
- attachTrailer()がAGVに単一のトレーラーをアタッチする一方で、coupleTrain()は他のAGV輸送列の一部であるトレーラーをすべてアタッチします(そのような輸送列があれば)。
- attachTrailer()ではトレーラーを前方と後方のどちらにアタッチすべきかやギャップ距離などのパラメータを定義する必要がありますが、coupleTrain()では反対に、それらのパラメータをAGVパスネットワークのトレーラー/輸送列の位置に基づいて自動で決定します。
トレーラーをAGVの輸送列に結合する際には、2通りのシナリオが想定されます。各シナリオは、次のように輸送列の結合に関する異なるロジックに影響を与えます。
- トレーラーが独立オブジェクトである場合 - トレーラーが他のAGV輸送列と関連付けられていない場合、AGVは単純な空間近接性を分析することでトレーラーを結合すべき場所を判断します。トレーラーの位置を取得して、その位置がAGVの前方と後方のどちらかを判断します。その後、その判断に基づいて空間近接性を再分析することで、トレーラーとAGVに関連付けられた最前列/最後列トレーラー間のギャップを決定します。さらに、トレーラーと関連付けられたAGV輸送列がないため、そのトレーラーをAGVにのみ結合して、他のオブジェクトには結合しません。
- トレーラー自体が他のAGVであるか、他のAGVのトレーラーである場合 - トレーラーが他のAGVの一部である場合、AGVはAGVパスネットワーク上の他のAGVとの自身の相対的な位置を分析することで結合パラメータを判断します。各AGVの終端間でパスネットワーク距離分析を行い、導き出した輸送列の終端間の最短パスを通して輸送列を結合することで、前方/後方属性やギャップなどを判断します。このアルゴリズムでは、輸送列方向のスイッチを必要としない1つ以上のパスを通じて、AGV終端同士はお互いに到達可能であると想定されています。言い換えると、ネットワーク上における輸送列のお互いへの近接性は、たとえば実際の状況でどのように輸送列を結合することを望むかといったように、「近くて直感的」である必要があります。異常なパスジオメトリで結合することは特定できない動作を引き起こします。
このメソッドをuncoupleTrain()と組み合わせて使用すると、操車場における車両の連結と非連結をシミュレートすることができます。
AGV.getTrailer()
AGV.Trailer getTrailer( int isBehind , int rankFromDriver ) |
パラメータ
isBehind | AGVの後方にあるトレーラーにアクセスしたい場合は1を、AGVの前方にあるトレーラーにアクセスしたい場合は0を指定します。 |
rankFromDriver | 1から始まる、AGVドライバからのトレーラーランクです。 |
説明
ahead/behindパラメータに基づく特定のトレーラーを取得し、AGVドライバに対するランクを取得します。
Object trailer = agv.getTrailer(1, 2).object;
AGV.redirect()
redirect( Object newDest , int mode ) |
パラメータ
newDest | AGVが移動する新しい目的地 |
mode | リダイレクト時に行うことを決定します。次の4つの値の1つを指定できます。 REDIRECT_AND_WAIT - 到着前にリダイレクトされていない場合、AGVはリダイレクトされるまで目的地で待機します。 REDIRECT_AS_FINAL - 目的地がAGVの新しい最終目的地になります。 REDIRECT_AND_CONTINUE_ON_ARRIVAL - AGVは中間目的地に到着した後で、最終目的地に移動を続けます。 REDIRECT_AND_CONTINUE_ON_PRE_ARRIVAL - AGVは中間目的地に事前に到着した後で、最終目的地に移動を続けます(減速して停止しません)。 |
説明
指定されたモードに応じて、AGVを新しい目的地にリダイレクトします。
agv.redirect(newDest, REDIRECT_AS_FINAL);
AGV.uncoupleTrain()
uncoupleTrain( treenode trailer , treenode newDriver = 0 ) |
パラメータ
trailer | 輸送列から結合を解除されるトレーラーです。 |
newDriver | 新しい「ドライバ」AGVになるオブジェクトです。このオブジェクトにAGVインスタンスがまだ関連付けられていない場合、AGVが作成されます。newDriverがパラメータとして渡されていないか、0である場合、最初のトレーラーパラメータが新しいドライバになります。 新しいドライバがTaskExecuterでない場合、そのドライバはパスネットワーク上のAGV輸送列の場所を保存するAGVデータだけを格納します。TaskExecuterとは異なり、オブジェクト移動タスクを付与することはできません。 |
説明
このAGVからトレーラーの輸送列をデタッチし、独立したAGV輸送列を作成します。
AGV(current).uncoupleTrain(AGV(current).trailers[1].object);
このメソッドをcoupleTrain()と組み合わせて使用すると、操車場における車両の連結と非連結をシミュレートすることができます。