ros2genmsg
ROS 2 定義からのカスタム メッセージの生成
説明
ros2genmsg(
は、指定されたフォルダー パスで ROS 2 カスタム メッセージおよびサービス定義を読み取ることにより、ROS 2 カスタム メッセージを生成します。この関数のフォルダーには、1 つ以上の ROS 2 パッケージが含まれている必要があります。これらのパッケージでは、メッセージ定義が folderpath
).msg
ファイルに、サービス定義が .srv
ファイルに、アクション定義が .action
ファイルに含まれています。
生成したカスタム メッセージは、サポートされている他のすべてのメッセージと同様に、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 カスタム メッセージ パッケージは含まれません。生成されたコードが生成先で関数によってビルドされる際には、カスタム メッセージ パッケージが colcon ワークスペースで使用可能でなければなりません。このワークスペースを現在の作業ディレクトリとして設定します。生成されたコードをビルドする前に、システムにカスタム メッセージ パッケージをインストールまたはコピーします。
MATLAB Compiler
MATLAB Compiler™ ソフトウェアでは、ROS カスタム メッセージと関数
ros2genmsg
はサポートされません。
ヒント
Microsoft® Visual Studio® のインストール中に、必ず [Desktop development with C++] ワークロードを選択してください。これにより、MSVC コンパイラと、カスタム メッセージの生成に必要なすべての依存関係がインストールされます。
カスタム メッセージ フォルダーへのパスが 64 文字を超えていないことを確認してください。
Python 環境の構成が正しいことを確認します。詳細については、ROS Toolbox システム要件を参照してください。
ROS 2 用に生成されるカスタム メッセージ ライブラリは、内部の ROS ワークフローに統合されるユーザー作成のファイルです。これらのファイルを未承認のアクセスから守り、システムの整合性を維持するには、対象とするユーザー アカウントのみにアクセスを制限するように適切なディレクトリの権限を設定します。