参考网址: http://wiki.ros.org/actionlib_tutorials/Tutorials
编写简单的action客户端,含有两步
(1)使用SimpleActionClient库创建action客户端
import actionlib_tutorials.msg//导入生成的消息,action会生成用于发送目标,接受反馈的消息
client = actionlib.SimpleActionClient('fibonacci', actionlib_tutorials.msg.FibonacciAction)
//创建action客户端,action客户端和action服务器端利用一系列主题(在actionlib协议描述)交流,action名称描述了包含这些主题的命名空间,并且action规范消息描述了这些主题应该传递什么信息
action客户端依照action模板定义的消息类型与action服务器进行通讯
action客户端构造器需要提供两个参数:服务器名称和boolean选项(是否打开线程)
(2)使用action客户端创建目标goal,并发送到action服务器端,并获取反馈结果
# Creates a goal to send to the action server.
goal = actionlib_tutorials.msg.FibonacciGoal(order=20)
# Sends the goal to the action server.
client.send_goal(goal)
# Waits for the server to finish performing the action.
client.wait_for_result()#等待action服务器端完成运算
# Prints out the result of executing the action
return client.get_result() # A FibonacciResult,取得反馈的结果。
1.初始化节点,两种方式
rospy.init_node('my_node_name')
或
rospy.init_node('my_node_name', anonymous=True)
init_node()函数需要提供一个节点名,必须要是唯一的节点名称,如果不太关心系欸但的唯一性情况下,可以设置anonymous=True,函数定义
rospy.init_node(name, anonymous=False, log_level=rospy.INFO, disable_signals=False)