このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
Simulink でロボットアーム用の CAN ネットワークを実装する
この例では、Vehicle Network Toolbox ™ と Simulink ® を使用して、リモート マニピュレータ アームに Controller Area Network (CAN) を実装する方法を示します。
Vehicle Network Toolbox は、Controller Area Network (CAN) を介して Simulink モデルを介してライブ メッセージを送受信するための Simulink ブロックを提供します。この例では、CAN Configuration、CAN Pack、CAN Transmit、CAN Receive、および CAN Unpack ブロックを使用して、CAN バスを介してデータ転送を実行します。使用される CAN メッセージは、CAN データベース ファイル canDatabaseFor6DofRoboticArm.dbc で定義されています。
この例では、MathWorks ® 仮想 CAN チャネルを使用します。あるいは、モデルを他のサポートされているハードウェアに接続することもできます。
モデルの説明


このモデルは次のサブシステムで構成されています。マニピュレータ アーム システム、逆運動学およびコントローラ、Joint CAN 送信インターフェイス、Joint CAN 受信インターフェイス、逆運動学およびコントローラ CAN 送信インターフェイス、および逆運動学およびコントローラ CAN 受信インターフェイス。各ジョイントと逆運動学およびコントローラ サブシステムは、CAN バス内のノードを構成します。
ユーザーは、エンド エフェクタの位置座標 (X、Y、Z の単位はメートル) と方向 (ロール、ピッチ、ヨーの角度の単位は度、ボディ 3、2、3、1 の順序) を入力します。逆運動学およびコントローラ サブシステムは、CAN バス経由で送信される関節角度センサーからのフィードバックを受信し、CAN バス経由で各関節モーターに適切なコマンドを送信して、エンド エフェクタの位置と方向をユーザー入力値に合わせて制御します。
リモートマニピュレータアームは軌道上の宇宙船に取り付けられると想定されています。その結果、重力は無視されます。
マニピュレーターアームシステム
このサブシステムは、Simscape ™ Multibody™ 2G を使用してモデル化されたリモート マニピュレータ アームの剛体モデルで構成されています。腕には6つの関節があります。各ジョイントはギアボックス付きの DC モーターによって駆動され、Simscape Foundational Library を使用してモデル化されます。各ジョイントにはジョイント角度センサーも備わっています。センサーデータは CAN バスに送信されます。各モーターは制御された電圧源によって電力を供給されます。電圧源は CAN バスからメッセージを受信し、メッセージの情報に応じて端子間に DC 電圧を印加します。
逆運動学とコントローラ
逆運動学およびコントローラ サブシステムは、逆運動学および制御アルゴリズムをさらに実装します。逆運動学は、ユーザーが入力した目的の位置 (X、Y、Z) と方向 (ロール、ピッチ、ヨー角度) から目的の関節角度を計算します。離散 PID コントローラは、CAN バスから読み取られた関節角度センサーの値を利用して、関節角度を目的の値に駆動するために各モーターに適用する必要がある DC 電圧を決定します。DC 電圧値は CAN バス内のメッセージとして送信されます。
Joint CAN送信インターフェース
このサブシステムは、対応するセンサーから CAN バスに関節角度の値を送信するために必要な VNT ブロックで構成されています。
Joint CAN 受信インターフェース
このサブシステムは、各モーターに対応する制御電圧源に適用する必要がある DC 電圧に関する情報を含むメッセージを CAN バスから受信してアンパックするために必要な VNT ブロックで構成されています。
逆運動学およびコントローラCAN送信インターフェース

このサブシステムは、逆運動学およびコントローラー サブシステムによって計算されたモーター信号 (制御された電圧源に印加する必要がある DC 電圧) を CAN バスに送信するために必要な VNT ブロックで構成されています。
逆運動学およびコントローラCAN受信インターフェース

このサブシステムは、関節角度センサーによって送信される関節角度に関する情報を含む CAN バスからのメッセージを受信するために必要な VNT ブロックで構成されています。