ros2genmsg
ROS 2 定義からのカスタム メッセージの生成
説明
ros2genmsg( は、指定されたフォルダー パス内の ROS 2 のカスタム メッセージ、カスタム サービス、カスタム アクション、および ROS 2 IDL 定義を読み取ることにより、ROS 2 カスタム メッセージを生成します。ROS 2 は、OMG IDL 4.2 仕様の一部をサポートしています。この関数のフォルダーには、1 つ以上の ROS 2 パッケージが含まれている必要があります。これらのパッケージでは、メッセージ定義が folderpath).msg ファイルに、サービス定義が .srv ファイルに、アクション定義が .action ファイルに含まれています。カスタム メッセージ、カスタム サービス、およびカスタム アクションの各定義は、.idl ファイルから直接生成することもできます。これらのファイルは、それぞれ /msg、/srv、および /action フォルダーの下に配置しなければなりません。
ROS インターフェイス タイプと IDL タイプの間のマッピングの詳細については、Mapping between ROS interface types and DDS IDL types を参照してください。
生成したカスタム メッセージは、サポートされている他のすべてのメッセージと同様に、MATLAB® で送受信できます。これらのメッセージは ros2message を使用して作成するか、MATLAB コマンド ウィンドウで ros2 msg list と入力してメッセージのリストを表示することもできます。
メモ
ROS 2 用のカスタム メッセージを生成するには、ROS 2 パッケージを作成しなければなりません。このプロセスには、ご使用のプラットフォームに対応した C++ コンパイラが必要です。詳細については、ROS Toolbox システム要件を参照してください。
ROS 2 定義からのカスタム メッセージは、MATLAB の新しいリリースごとに再生成する必要があります。
MATLAB で生成したカスタム メッセージで eProsima Fast DDS ミドルウェアおよび Eclipse Cyclone DDS ミドルウェアがサポートされるようになりました。ROS ミドルウェア実装の詳細については、Switching Between ROS Middleware Implementationsを参照してください。
ros2genmsg( は、1 つ以上の名前と値の引数を使用して追加のオプションを指定します。folderpath,Name=Value)
例
入力引数
名前と値の引数
制限
ノードの再起動
カスタム メッセージを生成した後に、既存の ROS 2 ノードを再起動します。
カスタム メッセージを使用したコード生成
カスタム メッセージ タイプおよびカスタム サービス タイプを ROS 2 機能とともに使用して、スタンドアロン ROS 2 ノード用の C++ コードを生成できます。生成されたコード (TGZ アーカイブ) には、カスタム メッセージ定義および ROS 2 カスタム メッセージ パッケージが含まれます。生成されたコードを対象の Linux® システムでビルドすると、カスタム メッセージ パッケージが
colconワークスペースで自動的に使用可能になります。このワークスペースを現在の作業ディレクトリとして設定します。生成されたコードをビルドする前に、システムにカスタム メッセージ パッケージをインストールまたはコピーします。
MATLAB Compiler
MATLAB Compiler™ ソフトウェアでは、ROS カスタム メッセージと
ros2genmsg関数はサポートされません。
ビルド パスの長さの制限
Windows® では、ビルド パスが長いとカスタム メッセージの生成が失敗する場合があります。カスタム メッセージ フォルダーをパスがより短い場所に移動するか、名前と値の引数
BuildRootを使用して代替ビルド パスを指定します。カスタム メッセージ フォルダーが書き込みアクセス権限のないディレクトリにある場合、メッセージの生成は失敗します。フォルダーを書き込み可能なディレクトリに移動するか、
BuildRoot引数を使用して別のビルド パスを指定します。
ヒント
Microsoft® Visual Studio® のインストール中に、必ず [Desktop development with C++] ワークロードを選択してください。これにより、MSVC コンパイラと、カスタム メッセージの生成に必要なすべての依存関係がインストールされます。
カスタム メッセージ フォルダーへのパスが 260 文字を超えていないことを確認してください。
Python 環境の構成が正しいことを確認します。詳細については、ROS Toolbox システム要件を参照してください。
ROS 2 用に生成されるカスタム メッセージ ライブラリは、内部の ROS ワークフローに統合されるユーザー作成のファイルです。これらのファイルを未承認のアクセスから守り、システムの整合性を維持するには、対象とするユーザー アカウントのみにアクセスを制限するように適切なディレクトリの権限を設定します。



