主要内容

rosgenmsg

Ros定義からのカスタムメッセ,ジの生成

説明

rosgenmsg (folderpathは,指定されたフォルダーパスでROSカスタムメッセージ,サービス定義,アクション定義を読み取ることにより,ROSカスタムメッセージを生成します。この関数のフォルダーには,1つ以上のROSパッケージフォルダーが含まれている必要があります。これらのパッケ,ジでは,メッセ,ジ定義が.msgファ@ @ルに,サ@ @ビス定義が.srvファesc escルに,アクション定義が.actionファ@ @ルに含まれています。

生成したカスタムメッセ,ジは,サポ,トされている他のすべてのメッセ,ジと同様に,matlab®で送受信できます。これらのメッセ,ジはrosmessageを使用して作成するか,matlabコマンドウィンドウで"rosmsg列表と入力してメッセ,ジのリストを表示することもできます。

メモ

  • Ros用のカスタムメッセ,ジを生成するには,Rosパッケ,ジを作成しなければなりません。このプロセスでは,ご使用のプラットフォーム用のCMakeソフトウェアとc++コンパイラにアクセスできる必要があります。詳細にいては,ROS工具箱システム要件を参照してください。

  • ROS定義からのカスタムメッセージは,MATLABの新しいリリースごとに再生成する必要があります。

rosgenmsg (folderpath名称=值は,1以上の名前と値の引数を使用して追加のオプションを指定します。

すべて折りたたむ

カスタムメッセ,ジはユ,ザ,定義のメッセ,ジです。カスタムメッセージを使用して,ROSで現在サポートされているメッセージタイプのセットを拡張します。サポートされているメッセージタイプを送受信する場合は,カスタムメッセージを使用する必要はありません。サポトされているメッセジタプのリストを表示するには,matlabコマンドウィンドウで”rosmsg列表と入力します。サポトされている ROS メッセージの詳細については、使用基本ROS消息を参照してください。

Rosカスタムメッセ,ジをはじめて取り扱う場合は,ROS工具箱システム要件を参照してください。

Rosカスタムメッセ,ジは,味精という名前のフォルダを含むrosパッケジフォルダ内に指定されます。味精フォルダには,すべてのカスタムメッセジタプ定義が含まれています。たとえば,rosCustomMessagesフォルダ,にあるsimple_msgsパッケジのフォルダとファルの構造は次のとおりです。

このパッケジにはカスタムメッセジタプNum.msgが含まれています。MATLABはこれらのファイルを使用して、パッケージに含まれるカスタム メッセージを使用するために必要なファイルを生成します。

この例では,MATLABでROSカスタムメッセージを作成し,共有可能なZIPアーカイブに圧縮します。必要な味精ファ▪▪ルが含まれるrosパッケ▪▪ジがなければなりません。

カスタムメッセージパッケージフォルダーを準備したら,親フォルダーへのパスを指定し,指定したパスでrosgenmsgを呼び出します。

新しいMATLABセッションを開き,カスタムメッセージパッケージフォルダーをローカルフォルダーに作成します。Windowsマシン上でカスタムメッセージを生成する場合は,フォルダーパスの文字数の制限を回避するために,短いフォルダーパスを選択します。次に例を示します。

genDir = fullfile('C:/test/rosCustomMessages')

genDir = fullfile(pwd,“rosCustomMessages”);packagePath = fullfile(genDir,“simple_msgs”);mkdir (packagePath)

カスタムメッセ,ジパッケ,ジフォルダ,内に味精という名前のフォルダ,を作成します。

mkdir (packagePath“味精”

味精フォルダ,内に.msgという名前のファ@ @ルを作成します。

messageDefinition = {“int64 num”};fileID = fopen(fullfile(packagePath,“味精”...“Num.msg”),' w ');流(文件标识,“% s \ n”, messageDefinition {:});文件关闭(文件标识);

カスタムメッセ,ジパッケ,ジフォルダ,内に深水救生艇という名前のフォルダ,を作成します。

mkdir (packagePath“电脑”

深水救生艇フォルダ,内に.srvという名前のファ@ @ルを作成します。

serviceDefinition = {“int64““int64 b”“——”“int64总和”};fileID = fopen(fullfile(packagePath,“电脑”...“AddTwoInts.srv”),' w ');流(文件标识,“% s \ n”, serviceDefinition {:});文件关闭(文件标识);

カスタムメッセ,ジパッケ,ジフォルダ,内に行动という名前のフォルダ,を作成します。

mkdir (packagePath“行动”

行动フォルダ,内に.actionという名前のファ@ @ルを作成します。

actionDefinition = {“int64目标”“——”“int64结果”“——”“int64反馈”};fileID = fopen(fullfile(packagePath,“行动”...“Test.action”),' w ');流(文件标识,“% s \ n”, actionDefinition {:});文件关闭(文件标识);

.msgファ电子邮箱ル,.srvファesc escル,および.actionファ▪▪ル内のros定義からカスタムメッセ▪▪ジを生成します。名前と値の引数CreateShareableFileを使用して,生成したカスタムメッセジの共有可能なzipアカブを作成します。

このzipアカブを使用してカスタムメッセジを別のマシンに登録する方法の詳細にいては,rosRegisterMessagesを参照してください。

rosgenmsg (genDir CreateShareableFile = true)
识别“C:/test/rosCustomMessages”文件夹中的消息文件。完成。创建Python虚拟环境。完成。将所需的Python包添加到虚拟环境。复制包含文件夹,完成。复制libraries.Done。验证“C:/test/rosCustomMessages”文件夹中的消息文件。完成。[1/1]生成自定义消息包的MATLAB接口…完成了。在“C:/test/rosCustomMessages/matlab_msg_gen_ros1/win64”文件夹中运行catkin构建。循序渐进。 This may take several minutes... Build succeeded.build log Generating zip file in the folder 'C:/test/rosCustomMessages'.Done. To use the custom messages, follow these steps: 1. Add the custom message folder to the MATLAB path by executing: addpath('C:\test\rosCustomMessages\matlab_msg_gen_ros1\win64\install\m') savepath 2. Refresh all message class definitions, which requires clearing the workspace, by executing: clear classes rehash toolboxcache 3. Verify that you can use the custom messages. Enter "rosmsg list" and ensure that the output contains the generated custom message types.

rosmsg列表と入力して,新しいカスタムメッセ,ジの作成を確認します。

入力引数

すべて折りたたむ

Rosメッセ,ジパッケ,ジへのパス。字符串スカラまたは文字ベクトルとして指定します。親フォルダ,はパッケ,ジフォルダ,を含む必要があります。これらのフォルダ,には,メッセ,ジ定義用の.msgファ@ @ルがある/味精という名前のフォルダ,サ,ビス定義用の.srvファ@ @ルがある如果という名前のフォルダ,アクション定義用の.actionファ@ @ルがある/行动という名前のフォルダ,があります。

例:“C: /测试/ rosCustomMessages”

デ,タ型:字符|字符串

名前と値の引数

オプションの引数のペアをName1 = Value1,…,以=家として指定します。ここで,的名字は引数名,价值は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021aより前は,名前と値をそれぞれコンマを使って区切り,的名字引用符で囲みます。

例:BuildConfiguration = ' fasterruns '

ビルド構成。次の値のいずれかとして指定します。

  • “fasterbuilds”—ビルド時間を短縮するためにコンパラを最適化して,メッセジラブラリをビルドします。これは既定の設定です。

  • “fasterruns”—実行速度を高速化するためにコンパラを最適化して,メッセジラブラリをビルドします。

例:rosgenmsg (C: /测试/ rosCustomMessages, BuildConfiguration =“fasterruns”)

デ,タ型:字符|字符串

共有可能なzipアカブを生成するオプション。数値あるいは逻辑の1(真正的)または0(假)として指定します。

この引数を1(真正的)として指定した場合,この関数は,ンストルフォルダをmatlab_msg_gen_ros1フォルダに圧縮してzipアカブを作成します。このファイルは,同じプラットフォームで実行されていて同じMATLABバージョンを使用している別のマシンで使用できます。

この引数を0(假)として指定した場合,この関数はzipアカブを作成しません。

例:rosgenmsg (C: /测试/ rosCustomMessages, CreateShareableFile = true)

デ,タ型:逻辑

制限

MATLAB编译器™ソフトウェアでは,rosカスタムメッセ,ジと関数rosgenmsgはサポ,トされません。

バ,ジョン履歴

R2019bで導入