このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
モバイル ロボットのアーキテクチャとアクティビティ図の設計
System Composer™ のアーキテクチャ モデルは、システムをさまざまな抽象化レベルで記述します。このモバイル ロボットの例では、次の 3 つのアーキテクチャを示します。
機能アーキテクチャ — 機能の概要とその機能間の関係を記述する
論理アーキテクチャ — 各サブシステムにおけるハードウェアとソフトウェアの電子コンポーネント間のデータ交換を記述する
物理アーキテクチャ — ロボットに必要な物理的ハードウェアまたはプラットフォームを記述する
これらのアーキテクチャ モデルに加えて、機能フローの動作を表すアクティビティ図を生成できます。あるアーキテクチャから別のアーキテクチャへの、またはアクティビティ図からアーキテクチャへの要素間の有向関係を記述するには、割り当てエディターを使用します。
メモ
この例では、Simscape™ ブロックを使用します。Simscape ライセンスがない場合でも、モデルを開くことができますが、ブロック パラメーターの変更などの基本的な変更しか行えません。
アーキテクチャ モデルの設計、指定、および割り当て
このモバイル ロボット プロジェクトには、要件をコンポーネントにリンクして割り当てを定義できるアーキテクチャ モデルが含まれています。また、このプロジェクトには、機能設計を詳しく記述して代替オプションを確認するためのアクティビティ図も含まれています。
プロジェクトを起動します。
openProject("scMobileRobotExample");
モバイル ロボットの機能フローのアクティビティ図
機能フローのアクティビティ図は、モバイル ロボットが移動するランダムな開始点からランダムな終了点までの動作シナリオを記述します。アルゴリズムによって経路が計画されます。経路が長すぎてロボットのバッテリー残量が十分でない場合、プロセスは途中で終了します。経路が実行可能な場合、ロボットは設定された角度方向で開始し、"x" 方向に移動して "y" 方向に移動した後、その最終的な角度方向を設定します。
systemcomposer.openModel("RobotActivity");
モバイル ロボットの論理アーキテクチャ モデル
論理アーキテクチャ モデルは、シミュレーション用のモバイル ロボット システム、つまり軌跡ジェネレーター、軌跡フォロワー、モーター コントローラー、センサー アルゴリズム、ロボットと環境の動作を記述します。接続はシステム内の相互作用を表します。論理アーキテクチャ モデルを開くには、ファイルをダブルクリックするか、次のコマンドを実行します。
systemcomposer.openModel("scMobileRobotLogicalArchitecture");
モバイル ロボットの物理アーキテクチャ モデル
物理アーキテクチャ モデルは、ハードウェア コンポーネント、つまりセンサー、アクチュエータ、および組み込みプロセッサとそれらの接続を記述します。色とアイコンは、各要素に使用されるステレオタイプを示します。物理アーキテクチャ モデルを開くには、ファイルをダブルクリックするか、次のコマンドを実行します。
systemcomposer.openModel("scMobileRobotHardwareArchitecture");
要件のコンポーネントへのリンク
要件のトレーサビリティとは、技術上の要件をアーキテクチャ モデルのコンポーネントおよびポートにリンクすることであり、これにより、初期の要件の段階とシステムレベルの設計を接続できます。逆にコンポーネントを利害関係者のニーズに接続することで、要件が満たされているかどうかを簡単に追跡できます。要件リンクを追加するには、要件をコンポーネントにドラッグします。
要件を表示するには、[アプリ]、[要件マネージャー] に移動して要件マネージャーを開きます。
物理アーキテクチャ モデルの Payload
コンポーネントは、Maximum Payload 要件 SYSTEM-REQ-03
を実装しています。リンクされた要件の表示と非表示を切り替えるには、コンポーネントの右上隅にある要件アイコンをクリックします。
論理アーキテクチャ モデルにリンクされた要件は、要件ブラウザーで確認できます。SYSTEM-REQ-10
を選択すると、Sensor Life 要件に関連するコンポーネントのみが表示されます。
アーキテクチャとブロック線図の割り当て
モデル間の割り当てを使用して機能コンポーネントを物理コンポーネントに割り当てることができます。割り当てエディターを開くには、[モデル化]、[割り当てエディター] に移動するか、次のコマンドを実行します。
systemcomposer.allocation.editor
割り当てセットを読み込みます。
allocSetPhys = systemcomposer.allocation.load("LogicalToPhysicalAllocation"); allocSetAct = systemcomposer.allocation.load("DiagramToModel");
論理アーキテクチャへの機能アクティビティ図の割り当て
DiagramToModel
割り当てセットで、Scenario 1
を選択します。
[行フィルター] セクションと [列フィルター] セクションで [コンポーネント] を選択します。割り当てエディターツールを使用すると、異なるアーキテクチャ モデル間でコンポーネントをリンクしてプロジェクトのトレーサビリティを確立できます。割り当てマトリクスのボックスをダブルクリックして 2 つの要素を割り当てるか、その割り当てを解除します。
アクティビティ図から、アクション ノード Initialize Path Follower
、Apply Path Limits
、Select Target Position
、および Error out
を論理アーキテクチャ モデルの Alignment Algorithm
コンポーネントに割り当てて、これらのアクションがその論理コンポーネントの内容によって制御されることを示します。
物理アーキテクチャへの論理アーキテクチャの割り当て
LogicalToPhysicalAllocation
割り当てセットで、Scenario 1
を選択します。
ビークルの自律運転は主に、センサー読み取り値を処理して制御入力を計算する役割を担う組み込みコンピューターであるターゲット マシンによって処理されます。そのため、Robot Body
、Sensor Fusion
、Trajectory Generator
などの多くの機能コンポーネントが物理アーキテクチャ モデルの Target Machine
コンポーネントに割り当てられます。
参照
[1] Rahman, Mohd Azizi Abdul, Katsuhiro Mayama, Takahiro Takasu, Akira Yasuda, and Makoto Mizukawa. “Model-Driven Development of Intelligent Mobile Robot Using Systems Modeling Language (SysML).” In Mobile Robots: Control Architectures, Bio-Interfacing, Navigation, Multi Robot Motion Planning and Operator Training, edited by Janusz Będkowski. InTech Open, 2011. https://doi.org/10.5772/26906.
参考
allocate
| addComponent
| addPort
| connect