既にお気づきかと思いますが、当社の社名は、様々なロジックを実装できることを暗示しています。AnyLogic では、モデル開発エクスペリエンスを簡素化するために、 コンベア、クレーン、エレベーターなどのマークアップ コンポーネントや、事前に構築されたロジック ブロックを多数開発しています。これにより、Java プログラミングの深い知識がなくても、複雑なシミュレーション モデルを作成できます。
しかし、カスタム ロボット クレーン (ロボット アーム) などの独自のオブジェクトをコンベア システムに追加する必要がある場合はどうすればよいでしょうか? 実際、今日では、それらを備えていない製造会社を見つけるのは困難です。幸いなことに、AnyLogic シミュレーション ソフトウェアを使用すると、独自のロボットを設計してモデルに統合できます。このブログ投稿は、まさにそれを行うのに役立つように設計されています。カスタム ロボット クレーンを作成する方法を段階的に学習します。このプロセスは、シミュレーション モデルで必要な様々なカスタム オブジェクト作成に応用できることにご注意ください。.
ポイントは、このガイドは経験豊富な AnyLogic ユーザーを対象としているということです。したがって、当社のシミュレーション ソフトウェアを使い始めたばかりの場合は、このガイドに従う前に、Getting Started ページを参照して基本を勉強する必要があります。
まずは、カスタム ロボット クレーンの構造と機能を定義することから始めましょう。
目次:
- ロボットクレーンの設計
- ロボットリンクの作成とパラメータ化
- 動作とパラメータ化の実装
- ユーザーカスタマイズ用のパラメータの整理
- ロボット クレーンをモデルに追加
- タスク管理用のカスタム ブロックの作成
- タスク管理ロジックの確立
- 再利用のためにモデルをエクスポート
ステップ 1: ロボット クレーンの設計
まず、ロボットが効果的に機能するには、シミュレーション内で表現オブジェクトが必要です。オブジェクトを場所間で移動でき、速度や高さなどのパラメータを調整できる必要があり、この場合、エージェントベースのモデリング手法が最適な方法であることは明らかです。したがって、まず Robot という名前のエージェントを作成します。
ステップ 2: ロボット リンクの作成とパラメータ化
ロボット クレーンのリンクは、ジョイントを接続して動きとサポートを可能にする剛性コンポーネントです。そこで、個別のエージェントを通じて各リンクを表す 2 リンクのロボット クレーンを作成します。動きの計算には複雑な式が使用されるため、このアプローチが必要になります。また、長さを調整するなどして、各リンクをパラメータ化することもできます。
視覚的に表現するには、リンクごとに カスタムの「.dae」オブジェクトをインポートします。これらのリンク エージェントをロボット エージェントのマークアップ スペースに統合すると、ロボット クレーンは次のように表示されます。
ステップ 3: 移動とパラメータ化の実装
ロボット モデリングで最も難しい点は、物体を持ち上げたり移動したりするときにロボットのリンクを調整できるメカニズムを考案することです。このプロセスには複雑な数学的計算が含まれますが、カスタム ロジックのデモンストレーションに重点を置いているため、ここでは詳しく説明しません。
AnyLogic シミュレーション ソフトウェアの重要な側面の 1 つは、シミュレートされたオブジェクトをパラメータ化する機能です。この場合、ロボットのリンクの幅、垂直速度、回転などの属性を調整できます。これを実現するには、Robot エージェントに特定のパラメータを導入します。これらのパラメータは、以下に示すように、エージェントのプロパティの Parameters preview セクションに配置されます。
ステップ 4: ユーザーカスタマイズ用パラメータの整理
上の画像から、異なるセクション間でパラメータを分散できることがわかります。たとえば、ロボット クレーンの外観を変更するすべてのパラメータをそれぞれのセクションにグループ化し、その他のパラメータを Parameters セクションに配置することができます。
ロボット クレーンをモデルに追加すると、エージェントのプロパティ内にこれらのセクションが表示されます。これにより、モデルを実行する前に必要なパラメータを調整できます。
ステップ 5: ロボット クレーンをマークアップ要素としてモデルに追加
これで、Robot エージェントをモデル内の任意の場所に配置し、スペース マークアップ要素として機能する準備が整いました。これは、ロボット クレーンがタスクを待機し、タスクを受信すると、定義されたロジックを内部で実行することを意味します。ただし、タスクを効果的に管理できるコンポーネントを追加する必要があります。
ステップ 6: タスク管理用のカスタム ブロックの作成
AnyLogic シミュレーション ソフトウェアには、ロジックを設定するためのデフォルト ブロックが用意されていますが、標準オプションのどれも、受信エージェントをロボット クレーンに接続するという特定のニーズに適合しません。幸いなことに、AnyLogic ではカスタム ブロックを作成し、それらをデフォルトのブロックと統合できます。
AnyLogic の各ブロックはエージェントとして機能し、表現用のアイコンと他のブロックとの接続用のポートが含まれています。したがって、新しいエージェントを作成し、MoveByRobot という名前を付けます。このエージェントには、必要なアイコン、ポート、Robot などのパラメータが装備されており、オブジェクトを目的地に移動するために特定のロボットを選択できます。
ステップ 7: タスク管理ロジックの確立
AnyLogic では、各ブロックに On enter または On exit アクション フィールドがあり、エージェントがブロックに出入りするときに実行されるコードを記述できます。これらのフィールドは、ブロック エージェント内で定義された Action タイプ パラメータを使用して作成されます。
パラメータ (たとえば、onEnter()) がアクティブになると、アクション フィールドで定義したコードが実行されます。この例の場合、このコードは、エージェントがこのブロックに入ると、オブジェクトの移動がトリガーされることを示しています。これで、フローチャート内の任意の位置にブロックを配置し、定義されたパラメータを設定できるようになりました。
ステップ 8: 再利用のためにモデルをエクスポート
最後のステップは、ブロックのロジックを確立し、ロボット クレーンにタスクを割り当てることです。この場合、内部ロジックには Queue ブロックと Delay ブロックが含まれており、メッセージがロボットに送信されます。次に、ロボット クレーンが内部ロジックを実行し、オブジェクトを現在の位置から目的の目的地まで輸送します。
その結果、プロセスを駆動するカスタマイズされたブロックとマークアップ スペース要素が正常に作成されました。これらの要素の複数のインスタンスを Main などの最上位エージェントに配置して、ロボットが詳細を処理する製造ラインを構築できるようになりました。上で説明したロジックは、モデル内でさらに調査するために利用できます。
さらに、ロボット クレーンをライブラリ オブジェクトとして再利用できるようにこのモデルを設計しました。それでは、このモデルをエクスポートして、独自のプロジェクトで使用してみましょう。将来使用するためにモデルが必要な場合は、AnyLogic Cloud から見つけてダウンロードできます。
ライブラリをエクスポートするには、プロジェクト ツリーでモデルを右クリックし、New → Library を選択し、ライブラリに名前を付けます。表示されるウィンドウで、使用可能にするエージェント (この場合は Robot エージェントと MoveByRobot エージェント) を選択し、アイコンを割り当て、必要に応じて説明を書き込みます。すべてを設定したら、左下隅にある Export the library をクリックします。
モデルは、任意のプロジェクトの Palette に追加できる「.jar」ファイルとしてエクスポートされ、デフォルトのライブラリとともにモデルの依存関係に表示されます。これで、最終的に、ロボット クレーンを統合オブジェクトとしてあらゆるプロジェクトで使用する準備が整いました。
AnyLogic シミュレーション ソフトウェアを使用して、独自のロボット クレーンをゼロから作成しました。さらに、同様の方法で他のカスタム オブジェクトを開発できるようになります。
自分自身をプログラムしなければ、人生があなたをプログラムするでしょう!
したがって、独自のカスタム ロボットやオブジェクトを作成する際は、このガイドに従ってください。こうすることで、私たちのチームによる正式リリースを待たずに、革新的なアイデアを実現することができます。
最新情報を見逃さないように、ブログのチェックと、毎月のニュースレター購読をおすすめします。