主要内容

Ros패키지에서사용자지정메시지만들기

이예제에서는matlab®에서ros사용자지정메시지를만드는절차를살펴봅니다。필수적味精파일,深水救生艇파일,行动파일이포함되어있는ros패키지가있어야합니다。올바른파일내용과폴더구조는自定义消息内容항목에설명되어있습니다。이폴더구조는준Ros패키지규칙을따릅니다。따라서기존패키지가있다면이구조와일치해야합니다。

적절한타사소프트웨어가있는지확,하려면Ros시스템구사항항목을참조하십시오。

사용자지정메시지패키지가올바른지확,한후폴더경로위치를기록해둡니다。그런다음지정된경로로rosgenmsg함수를호출하고명령창에출력되는단계를따릅니다。다음예제에는서로종속된세개의메시지一个BC가있습니다。이예제에서는여러메시지가포함된폴더를사용하여이들을동시에생성할수있음을보여줍니다。

Matlab에서사용자지정메시지를설정하기위해다음을수행합니다。

  • 새세션에서matlab을엽니다。

  • 사용자지정메시지를특정위치에두고폴더경로를기록합니다。사용자지정메시지의모든정의를단일패키지폴더에넣는것이좋습니다。

    folderpath =“c: \ MATLAB \ custom_msgs \包”
  • (선택사항)기존柳絮작업공간(catkin_ws이있는경우경로를작업공간의src폴더로대신지정할수있습니다。그러나이작업공간에는다수의패키지가포함될수있으며모든패키지에대해메시지생성이실행됩니다。

    folderpath = fullfile (“catkin_ws”“src”);
  • 사용자지정메시지패키지가포함된폴더경로를지정하고rosgenmsg함수를호출하여matlab을위한사용자지정메시지를만듭니다。

    rosgenmsg (“c: \ MATLAB \ custom_msgs”
  • 그런 다음rosgenmsg의출력에시되는단계를따릅니다。

  1. 명령창에서目录savepath를실행하여주어진파일을matlab경로에추가합니다。

    目录“C: \ MATLAB \ custom_msgs \ \ matlab_msg_gen_ros1 \ msggen包') savepath
  2. 모든메시지클래스정의를새로고칩니다。이를위해서는작업공간을지워야합니다。

    明确的类
    重复toolboxcache

  3. 그런다음사용자지정메시지를ROS工具箱가지원하는다른ros메시지처럼사용할수있습니다。rosmsg列表를호출하고메시지유형을검색하여변경내용을확,하거나rosmessage를사용하여새메시지를만들어변경내용을확,합니다。

    custommsg = rosmessage (B /独立的
    custommsg = ROS带有属性的独立消息:MessageType: 'B/Standalone' IntProperty: 0 stringproperty: "使用showdetails显示消息的内容

이최종확,은사용자지정메시지생성절차를올바르게수행했음을보여줍니다。이제MATLAB과Simulink®를사용하여ros네트워크를통해사용자지정메시지를보내고받을수있습니다。새사용자지정메시지는일반메시지유형처럼사용할수있습니다。메시지유형에맞는객체를만들고작업공간에明文시되는것을확明文할수있을것입니다。

custommsg = rosmessage (B /独立的);custommsg2 = rosmessage(“A / DependsOnB”);

在MATLAB命令窗口和工作空间中查看Custommsg和custommsg2。

또한사용자지정메시지를ROS Simulink블록과함께사용할수도있습니다。

Simulink模型中的空白消息块,配置为创建自定义消息类型的空白消息。

참고 항목

|

관련 항목

Baidu
map