引入
from move_base_msgs.msg import MoveBaseGoal, MoveBaseAction
定义
ac = SimpleActionClient('move_base', MoveBaseAction)
等待服务
self.ac.wait_for_server()
发送goal
goal = MoveBaseGoal()
ac.send_goal(goal, done_cb=None, active_cb=None, feedback_cb=None)
发送后可以指定完成函数,激活函数和回调函数
等待
ac.wait_for_result()
阻塞,直到返回结果
返回结果
ac.get_result()
获取状态get_state
状态返回的是数字,数字代表的含义在actionlib_msgs/GoalStatus.msg中定义了
GoalID goal_id
uint8 status
uint8 PENDING = 0 # The goal has yet to be processed by the action server
uint8 ACTIVE = 1 # The goal is currently being processed by the action server
uint8 PREEMPTED = 2 # The goal received a cancel request after it started executing
# and has since completed its execution (Terminal State)
uint8 SUCCEEDED = 3 # The goal was achieved successfully by the action server (Terminal State)
uint8 ABORTED = 4 # The goal was aborted during execution by the action server due
# to some failure (Terminal State)
uint8 REJECTED = 5 # The goal was rejected by the action server without being processed,
# because the goal was unattainable or invalid (Terminal State)
uint8 PREEMPTING = 6 # The goal received a cancel request after it started executing
# and has not yet completed execution
uint8 RECALLING = 7 # The goal received a cancel request before it started executing,
# but the action server has not yet confirmed that the goal is canceled
uint8 RECALLED = 8 # The goal received a cancel request before it started executing
# and was successfully cancelled (Terminal State)
uint8 LOST = 9 # An action client can determine that a goal is LOST. This should not be
# sent over the wire by an action server
#Allow for the user to associate a string with GoalStatus for debugging
string text