Send goal message and wait for result
This example shows how to send and cancel goals for ROS actions. Action types must be setup beforehand with an action server running.
You must have set up the
'/fibonacci' action type. To run this action server, use the following command on the ROS system:
rosrun actionlib_tutorials fibonacci_server
First, set up a ROS action client. Then, send a goal message with modified parameters. Finally, cancel your goal and all goals on the action server.
Connect to a ROS network with a specified IP address. Create a ROS action client connected to the ROS network using
rosactionclient. Specify the action name. Wait for the client to be connected to the server.
Initializing global node /matlab_global_node_59254 with NodeURI http://192.168.17.1:59729/
[actClient,goalMsg] = rosactionclient('/fibonacci'); waitForServer(actClient);
Send a goal message with modified parameters. Wait for the goal to finish executing.
goalMsg.Order = 4; [resultMsg,resultState] = sendGoalAndWait(actClient,goalMsg)
resultMsg = ROS FibonacciResult message with properties: MessageType: 'actionlib_tutorials/FibonacciResult' Sequence: [6×1 int32] Use showdetails to show the contents of the message
resultState = 'succeeded'
Sequence : [0, 1, 1, 2, 3, 5]
Send a new goal message without waiting.
goalMsg.Order = 5; sendGoal(actClient,goalMsg)
Cancel the goal on the ROS action client,
Cancel all the goals on the action server that
actClient is connected to.
Delete the action client.
Disconnect from the ROS network.
Shutting down global node /matlab_global_node_59254 with NodeURI http://192.168.17.1:59729/
client— ROS action client
ROS action client, specified as a
handle. This simple action client enables you to track a single goal
at a time.
goalMsg— ROS action goal message
ROS action goal message, specified as a
Message object handle. Update this
message with your goal details and send it to the ROS action client using
timeout— Timeout period
Timeout period for receiving a result message, specified as a scalar in seconds. If the client does not receive a new result message in that time period, an error is displayed.
resultMsg— Result message
Result message, returned as a ROS
The result message contains the result data sent by the action server.
This data depends on the action type.
state— Final goal state
Final goal state, returned as one of the following:
'pending' — Goal was received,
but has not yet been accepted or rejected.
'active' — Goal was accepted
and is running on the server.
'succeeded' — Goal executed
'preempted' — An action
client canceled the goal before it finished executing.
'aborted' — The goal was
aborted before it finished executing. The action server typically
aborts a goal.
'rejected' — The goal was
not accepted after being in the
The action server typically triggers this status.
'recalled' — A client canceled
the goal while it was in the
'lost' — An internal error
occurred in the action client.
status— Status text
Status text that the server associated with the final goal state, returned as a character vector.