服務資料的定義與話題資料大部分相同,唯一要注意的一處是在cmakelists.txt檔案中,服務資料的定義應為:
add_service_files(files man.srv)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time, thread
import rospy
from geometry_msgs.msg import twist
from test.srv import man,manresponse,manrequest
pubcommand=
true
defcallback
(req)
:global pubcommand
pubcommand =
bool(1
- pubcommand)
rospy.loginfo(
"call the callback! %s"
, pubcommand)
return manresponse(req.name)
def******service()
: rospy.init_node(
'sxcservice'
) s = rospy.service(
'/test01'
, man, callback)
print man
print
'wait!!'
rospy.spin(
)if __name__ ==
'__main__'
: ******service(
)
#!/usr/bin/env python
# coding=utf-8
import rospy
from test.srv import man,manrequest
defshowresult()
:# ros節點初始化,生成節點addturtle
rospy.init_node(
'addturtle'
)# 等待'/spawn'服務,若無一直等待
rospy.wait_for_service(
'/test01'
)try
:# 建立乙個連線名為'/spawn'的服務,資料型別為spawn
showin = rospy.serviceproxy(
'/test01'
, man)
# 呼叫請求服務,輸入請求引數,並得到服務端返回結果
response = showin(
'sxc',1
,1)return response.result
except rospy.serviceexception, e:
print e
if __name__ ==
'__main__'
: rospy.loginfo(
"creat turtle,name: %s"
,(showresult())
)
ROS之自定義服務資料
在我們編譯原始碼時,會經常遇到以下問題 home zztsj catkin ws src as 6dof arm as arm control src check collision.cpp 11 10 fatal error as arm description checkcollisionval...
ROS服務程式設計 1,自定義服務資料 srv檔案
ros中的服務資料可以通過srv檔案進行語言無關的定義介面,一般放在srv資料夾,包含請求與問答兩個資料域,使用 分割開。針對加法運算服務請求,建立乙個服務型別的srv檔案 catkin ws src my package srv addtwoints.srv int64 a int64 b int...
ROS自定義資料型別
自定義資料報可以在使用資料的功能包內進行建立,也可以單獨建立乙個功能包來專門進行自定義資料型別.1.建立乙個功能包 進入工作空間catkin ws src catkin create pkg test msgs actionlib std msgs message generation action...