1. 创建srv文件
cd ~/catkin_ws/src/my_package
mkdir srv
echo "int64 a
int64 b
---
int64 sum" > srv/AddTwoInts.srv
2. 更改CMakeList.txt文件
更改find_package()函数:
在CMakeList.txt中添加对message_generation包的依赖:
此步骤已经在ROS学习之自定义msg类型一节中添加过了
指定需要转换的srv文件
编译
回到catkin_ws目录下:
catkin_make
编译之后就会生成Num.h头文件,所在目录如下:
测试:
rossrv show my_package/AddTwoInts
CMakeList.txt文件内容
cmake_minimum_required(VERSION 2.8.3)
project(my_package)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
#指定需要转换的msg文件
add_message_files(FILES Num.msg)
#指定需要转换的srv文件
add_service_files(FILES AddTwoInts.srv)
#只有调用了下面的函数最后才会生成 Num.h 文件
generate_messages()
catkin_package(
INCLUDE_DIRS include
LIBRARIES my_package
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
DEPENDS system_lib
)
include_directories(
# include
${catkin_INCLUDE_DIRS}
)
# talker_Node在ros中是独一无二的,不能和其它节点名字重复
add_executable(publisher_Node src/publisher.cpp)
target_link_libraries(publisher_Node ${catkin_LIBRARIES})
add_executable(subscriber_Node src/subscriber.cpp)
target_link_libraries(subscriber_Node ${catkin_LIBRARIES})