dajianli

金牌会员
  • 主题:31
  • 回复:288
  • 金钱:1016
  • 积分:1674

1、消息(msg)和服务(srv)
         消息(msg):一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。
         服务(srv): 一个srv文件描述一项服务。它包含两个部分:请求和响应        
         msg存放在package下的msg
         srv存放在package下的srv
         msg例程:
                   cd~/catkin_ws/src/beginner_tutorials
             mkdir msg
             vim msg/Num.msg
         修改beginner_tutorials目录下的package.xml
         确保msg文件被转换成C++Python等语言的源代码
             vim package.xml
        添加:
               <build_depend>message_generation</build_depend>
              <run_depend>message_runtime</run_depend>
        修改beginner_tutorials目录下的CMakeLists.txt
        //确保增加了message-generation依赖
        fing_package(catkin REQUIRED COMPONENTS
       roscpp
       rospy
       std_msgs
       message_generation
    )
   //确保运行了message_runtime依赖
   catkin_package(
               CATKIN_DEPENDS message_runtime
    )
   add_message_files(
        FILES
        Num.msg
    )
   //确保运行了函数
   generate_messages()
运行:
          格式:rosmsg show[message type]
          例程:rosmsg showbeginner_tutorials/Num
          结果:返回int64 num
srv例程:
             cd ~/catkin_ws/src/beginner_tutorials
             mkdir srv
                   使用roscp复制一个文件到目录下
                   格式:roscp[package_name] [file_to_copy_path] [copy_path]
                   roscpropy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
         确保srv文件被转换成C++Python等语言的源代码
                           vimpackage.xml
    添加:
               <build_depend>message_generation</build_depend>
             <run_depend>message_runtime</run_depend>
    修改beginner_tutorials目录下的CMakeLists.txt
   //确保增加了message-generation依赖,这个对msgsrv都起作用
   fing_package(catkin REQUIRED COMPONENTS
             roscpp
             rospy
             std_msgs
             message_generation
    )
   //确保运行了message_runtime依赖
   catkin_package(
               CATKIN_DEPENDS message_runtime
     )
   add_services_files(
               FILES
               AddTwoInts.srv
     )
   //确保运行了函数
   generate_messages()
    运行:
          格式:rossrv show[service type]
          例程:rossrv showbeginner_tutorials/AddTwoInts
          结果:返回int64 a
                              int64 b
                              ---
                              int64 sum