このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
カスタムメッセージは,ROS工具箱で現在サポートされているメッセージタイプのセットの拡張に使用できる,ユーザー定義のメッセージです。サポートされているメッセージ タイプを送受信する場合は、カスタム メッセージを使用する必要はありません。サポートされているメッセージ タイプのリストを表示するには、MATLAB®コマンドウィンドウでrosmsg列表
を呼び出します。
カスタムメッセージの作成にはROSパッケージが必要です。ROSパッケージの詳細については,ROS Wikiの包で説明しています。カスタムメッセージ用の有効なROSパッケージがあることを確認したら,カスタムメッセージパッケージへのファイルパスを指定してrosgenmsg
を呼び出し,カスタムメッセージの使用に必要なMATLABコードを生成します。MATLABでROSカスタムメッセージを生成する方法の例については,ROSパッケージからのカスタムメッセージの作成を参照してください。
ROSカスタムメッセージをはじめて使用する場合は,ROS系统需求を確認してください。
ROSカスタムメッセージは,味精
および深水救生艇
ディレクトリを含むROSパッケージフォルダー内に指定されます。
メモ
どの時点でも,MATLABパス上のカスタムメッセージフォルダーは1つのみでなければなりません。このフォルダーには複数のパッケージを含めることができます。すべてのパッケージを 1 つの固有のフォルダーに維持することを推奨します。
味精
フォルダーには,すべてのカスタムメッセージタイプ定義が含まれています。また,深水救生艇
フォルダーには,すべてのカスタムサービスタイプ定義を追加しなければなりません。たとえば,パッケージcustom_robot_msgs
のフォルダーとファイルの構造は次のとおりです。
このパッケージでは,1つのカスタムメッセージタイプがRobotTopic.msg
に含まれ1つのカスタムサービスタイプがRobotService.srv
に含まれています。MATLABはこれらのファイルを使用して、パッケージに含まれるカスタム メッセージを使用するために必要なファイルを生成します。味精
および深水救生艇
ファイル作成の詳細については,ROS Wikiの创建ROS消息和srvと定义自定义消息を参照してください。これらのファイルの構文は,味精
と深水救生艇
についてのページで説明されています。
メモ
カスタムメッセージフォルダーに対する書き込みアクセス権限がなければなりません。
どの時点でも,MATLABパス上のカスタムメッセージフォルダーは1つのみでなければなりません。このフォルダーには複数のパッケージを含めることができます。すべてのパッケージを 1 つの固有のフォルダーに維持することを推奨します。
ROSアクションはサポートされておらず,カスタムメッセージ生成の際に無視されます。
ROSメッセージ定義がMATLABに変換されると,フィールド名がメッセージオブジェクトのプロパティに変換されます。オブジェクトプロパティは常に大文字で始まり,アンダースコアは含まれません。フィールド名はこの命名規則に従って変更されます。最初の文字と,アンダースコアの直後の文字が大文字になり,アンダースコアは削除されます。たとえば,sensor_msgs /形象
メッセージには,ROSでは次のフィールドがあります。
头高度宽度编码is_bigendian步长数据
変換されたMATLABプロパティは次のようになります。
头高度宽度编码是bigendian步骤数据
これは,ROSメッセージを仿真金宝app软件®で使用するときにも反映されます。ROSメッセージバスは,MATLABと同じプロパティ名を使用します。
前の節で説明したとおりにカスタムメッセージ構造を設定したら,これらのカスタムメッセージを使用するために必要なコードを作成できます。まず,カスタムメッセージファイルへの既知のパスを使用してrosgenmsg
を呼び出し,MATLABコードを作成します。
関数rosgenmsg
は,カスタムメッセージファイル(.msg
および.srv
)を取り,それぞれのメッセージタイプを,動作するMATLABコードに変換します。関数rosgenmsg
は味精
フォルダーで.msg
ファイルを検索し,深水救生艇
フォルダーで.srv
ファイルを検索します。このコードは,新しいカスタムメッセージを作成するときにメッセージプロパティを定義するクラスのグループです。この関数によって,さまざまなメッセージクラスに必要なMATLAB的Mファイルが作成されます。
関数rosgenmsg
によってこれらのファイルが作成された後,クラスファイルをMATLABパスに追加しなければなりません。これらの手順は,MATLABコマンドウィンドウのプロンプトとして示されます。
クラスファイルの場所をMATLABパスに追加:目录
を使用して。m拡張子のファイルの新しい場所をMATLABパスに追加し,savepath
を使用して変更を保存します。
すべてのメッセージクラス定義を更新します。これには,以下のとおりワークスペースをクリアする必要があります。
清晰的类重新处理toolboxcache
メッセージが使用可能であることを確認:
または関数rosmsg
列表rosmessage
を使用して,新しいカスタムメッセージが使用可能であることを確認します。
この手順の例については,ROSパッケージからのカスタムメッセージの作成を参照してください。この例では,サンプルカスタムメッセージファイルを使用してMATLABでカスタムメッセージを作成しています。
この手順は,カスタムメッセージの特定のセットに対して1回だけ実行する必要があります。その後,新しいカスタムメッセージをMATLABの他のROSメッセージと同様に使用し,ROS工具箱が提供するROSのフル機能を活用することができます。メッセージタイプを更新する場合や,新しいメッセージタイプを作成する場合は,この生成手順を繰り返します。
ファイルのディレクトリが含まれるMATLABパスを維持しなければなりません。MATLABパスに、カスタム メッセージ アーティファクトが含まれるフォルダーが一度に 1 つだけ存在することを確認してください。
カスタムメッセージタイプとカスタムサービスタイプをROS仿真软件ブロ金宝appックとともに使用して,スタンドアロンROSノード用のc++コードを生成できます。生成されたコード(. tgz
归档)には,カスタムメッセージの模型定義が含まれ金宝appますが,ROSカスタムメッセージパッケージは含まれません。生成されたコードが生成先のLinuxシステム内でビルドされる際には,カスタムメッセージパッケージが柔荑花序ワークスペースまたはROS_PACKAGE_PATH
上で使用できる必要があります。生成されたコードをビルドする前に,Linuxシステムにカスタムメッセージパッケージを確実にインストールまたはコピーします。