ROS节点中创建msg和srv文件(kinetic/melodic)

1.msg文件创建

#创建msg文件夹

roscd ros_pkg

mkdir msg

cd msg

#创建msg文件

touch a_msg.msg

gedit a_msg.msg

在a_msg.msg文件中写入msg内容,举个栗子

#数据类型 数据名称
int8 A
int8 B

修改package.xml,添加如下内容

<build_depend>message_generation</build_depend>

<run_depend>message_runtime</run_depend>

修改CMakeList.txt,添加如下内容

find_package(catkin REQUIRED COMPONENTS
   ...
   ...
   std_msgs
   message_generation
   ...
)
catkin_package(
  ...
  CATKIN_DEPENDS message_runtime ...
  ...)
add_message_files(
  FILES
  a_msg.msg
)
generate_messages(
  DEPENDENCIES
  std_msgs
)

2.srv文件创建

#创建srv文件夹

cd ros_pkg

mkdir srv

cd srv

#创建srv文件

touch b_srv.srv

gedit b_srv.srv

在b_srv.srv文件中写入srv内容,举个栗子,注意三个减号(---)

int64 A
int64 B
---
int64 Sum

同上,修改package.xml和CMakeList.txt文件,注意Files文件添加行改为如下内容

add_service_files(
  FILES
  b_srv.srv
)

3.验证是否成功

cd workspace

catkin_make

source devel/setup.bash

rosmsg show ros_pkg/a_msg

rossrv show ros_pkg/b_srv

如果show得到的内容跟a.msg和b.srv中写的内容一致,则编译正确!

4.msg和srv文件的使用,在cpp文件中添加如下头文件

//使用msg文件
#include "ros_pkg/a_msg.h"


//使用srv文件
#include "ros_pkg/b_srv.h"
发布了28 篇原创文章 · 获赞 28 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/u013164707/article/details/104021430