ROS(6)消息和服务具体实现

    xiaoxiao2021-03-26  27

    ROS(6)消息和服务具体实现

    http://wiki.ros.org/cn/ROS/Tutorials/CreatingMsgAndSrv

    消息(msg): msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。

    服务(srv): 一个srv文件描述一项服务。它包含两个部分:请求和响应。

    msg文件存放在package的msg目录下,srv文件则存放在srv目录下。

    msg文件实际上就是每行声明一个数据类型和变量名。可以使用的数据类型如下:

    int8,int16, int32, int64 (plus uint*)

    float32,float64

    string

    time,duration

    othermsg files

    variable-lengtharray[] and fixed-length array[C]

    srv文件分为请求和响应两部分,由'---'分隔。

     

    A.Msg文件创建与使用

    1.编辑.msg后缀

    2.Package.xml文件中需包含两句

    <build_depend>message_generation</build_depend>

    <run_depend>message_runtime</run_depend>

    3.Cmakelists中find_package增加对message_generation&&message_runtime

    的依赖

    4.Cmakelists中add_message_files(

      FILES

      XXX.msg

    )

    手动添加.msg文件后, 确保添加了如下代码:generate_messages();

    5.msg文件的使用

    下面通过rosmsg show命令,检查ROS是否能够识消息。

    使用方法:

    $rosmsg show [message type]

    Messagetype 包括:pkg名/msg名

     

    B.Srv文件创建与使用  

    编辑.srv文件

    2.3步同上

    4.用你自己的srv文件名替换掉那些Service*.srv文件:

    add_service_files(

      FILES

      xxx.srv

    )

    使用 rossrv

    以上就是创建一个服务所需的所有步骤。下面通过rosmsg show命令,检查ROS是否能够识该服务。

    使用方法:

    $rossrv show <service type>

     

    ***msg和srv都需要的步骤

    接下来,在CMakeLists.txt中找到如下部分:

    #generate_messages(

    #   DEPENDENCIES

    ##  std_msgs  # Or other packages containing msgs

    #)

    去掉注释并附加上所有你消息文件所依赖的那些含有.msg文件的package,

    如generate_messages(

      DEPENDENCIES

      std_msgs

    )

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-650080.html

    最新回复(0)