ros編寫自定義的服務( srv)

2021-09-05 10:24:06 字數 1935 閱讀 2416

1、編寫自定義的服務檔案(即.srv)檔案。

2、儲存,catkin_make編譯,要生成可以被#include "包/addtwoints.h",注意cmakelist.txt檔案的配置

cmake_minimum_required(version 2.8.3)

project(learing_communication)

## compile as c++11, supported in ros kinetic and newer

# add_compile_options(-std=c++11)

## find catkin macros and libraries

## if components list like find_package(catkin required components xyz)

## is used, also find other catkin packages

find_package(catkin required components

roscpp

rospy

std_msgs

message_generation

)## generate messages in the 'msg' folder

add_message_files(

files

person.msg

# message2.msg

)## generate services in the 'srv' folder

add_service_files(

files

addtwoints.srv

# service1.srv

# service2.srv

)## generate actions in the 'action' folder

# add_action_files(

# files

# action1.action

# action2.action

# )## generate added messages and services with any dependencies listed here

generate_messages(

dependencies

std_msgs

#message_generation

)add_executable(talker src/talker.cpp)

target_link_libraries(talker $)

add_dependencies(talker $_generate_messages_cpp)

add_executable(listener src/listener.cpp)

target_link_libraries(listener $)

add_dependencies(listener $_generate_messages_cpp)

add_executable(server src/server.cpp)

target_link_libraries(server $)

add_dependencies(server $_gencpp)

add_executable(client src/client.cpp)

target_link_libraries(client $)

add_dependencies(client $_gencpp)

3、現在就可以在你其他節點中以#include "包/addtwoints.h"的形式引用了。

注意:對於addtwoints.h 是有addtwoints.srv檔案在編譯後自動生成的

自定義srv訊息之ros

在ros中,如果沒有現成的訊息型別來描述要去傳遞的訊息時,我們會自定義訊息。我們會新建乙個package來去自定義訊息,通常這個package寫任何的業務邏輯,只是用來宣告自定義的訊息型別,可以只定義一種訊息型別,也可以定義多種訊息型別,根據業務需求來定。所以,首先我們單獨的建立乙個package,...

ros定義srv服務

在beginner tutorials,新建srv服務目錄,新建addtwoints.srv檔案 roscd beginner tutorials mkdir srv cd srv touch addtwoints.srv rosed beginner tutorials addtwoints.sr...

ROS服務程式設計 1,自定義服務資料 srv檔案

ros中的服務資料可以通過srv檔案進行語言無關的定義介面,一般放在srv資料夾,包含請求與問答兩個資料域,使用 分割開。針對加法運算服務請求,建立乙個服務型別的srv檔案 catkin ws src my package srv addtwoints.srv int64 a int64 b int...