Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ROS パッケージからのカスタム メッセージの作成

この例では、MATLAB®で ROS カスタム メッセージを作成する手順を実行します。必要なmsgおよびsrvファイルが含まれる ROS パッケージがなければなりません。正しいファイルの内容とフォルダー構造については、カスタム メッセージの内容で説明しています。このフォルダー構造は、ROS パッケージの標準の規則に従っています。したがって、既存のパッケージがある場合、この構造に一致しなければなりません。

適切なサードパーティ ソフトウェアがあることを確認するには、ROS System Requirementsを参照してください。

カスタム メッセージ パッケージが正しいことを確認したら、フォルダー パスの場所をメモします。次に、パスを指定してrosgenmsgを呼び出し、コマンド ウィンドウに出力された手順に従います。次の例には、互いに依存関係にあるAB、およびCという 3 つのメッセージがあります。また、この例は、複数のメッセージが含まれるフォルダーを使用して、すべてのメッセージを同時に生成できることも示しています。

MATLAB でカスタム メッセージを設定するには、次を行います。

  • MATLAB を新しいセッションで開きます。

  • カスタム メッセージをある場所に配置し、フォルダーのパスをメモします。すべてのカスタム メッセージ定義を単一のパッケージ フォルダーに配置することをお勧めします。

    folderpath ='c:\MATLAB\custom_msgs\packages';
  • (オプション)既存の catkin ワークスペース (catkin_ws) がある場合、代わりにそのsrcフォルダーへのパスを指定することもできます。ただし、このワークスペースには大量のパッケージが含まれている場合があります。メッセージ生成はすべてのパッケージに対して実行されます。

    folderpath = fullfile('catkin_ws','src');
  • カスタム メッセージ ファイルのフォルダー パスを指定し、関数rosgenmsgを呼び出して、MATLAB 用のカスタム メッセージを作成します。

    rosgenmsg(folderpath)
  • 次に、rosgenmsgの出力から手順に従います。

  1. コマンド ウィンドウでaddpathsavepathを実行して、指定したファイルを MATLAB パスに追加します。

    addpath('C:\MATLAB\custom_msgs\packages\matlab_msg_gen_ros1\msggen') savepath
  2. すべてのメッセージ クラス定義を更新します。これには、以下のとおりワークスペースをクリアする必要があります。

    clear classes
    rehash toolboxcache

  3. その後、ROS Toolboxでサポートされている他の ROS メッセージと同様に、カスタム メッセージを使用することができます。rosmsg listを呼び出してメッセージ タイプを検索するか、rosmessageを使用して新しいメッセージを作成して、これらの変更を確認します。

    custommsg = rosmessage('B/Standalone')
    custommsg = ROS Standalone message with properties: MessageType: 'B/Standalone' IntProperty: 0 StringPropert: '' Use showdetails to show the contents of the message

この最終的な検証により、カスタム メッセージ生成プロセスを正しく実行したことが示されます。これで、MATLAB と Simulink®を使用してこれらのメッセージを ROS ネットワーク上で送受信できるようになりました。新しいカスタム メッセージは、通常のメッセージ タイプと同様に使用できます。これらによってそのメッセージ タイプ固有のオブジェクトが作成され、ワークスペースに表示されるはずです。

custommsg = rosmessage('B/Standalone'); custommsg2 = rosmessage('A/DependsOnB');

カスタム メッセージは、ROS Simulink ブロックとともに使用することもできます。

参考

|

関連するトピック