sendFeedback
Description
sendFeedback(
sends the feedback message, server
,feedbackMsg
)feedbackMsg
, to the action client that sent
the goal currently being executed by the action server, server
.
Examples
This example shows how to create a ROS action server, connect an action client to it, receive goal, and execute it.
Connect to a ROS network.
rosinit
Launching ROS Core... ..Done in 2.1278 seconds. Initializing ROS master on http://172.19.136.75:52554. Initializing global node /matlab_global_node_56708 with NodeURI http://vdi-wd1bgl-223:61999/ and MasterURI http://localhost:52554.
Set up an action server for calculating Fibonacci sequence. Use structures for the ROS message data format. Use fibbonacciExecution
function as the callback.
cb = @fibonacciExecution; server = rosactionserver("/fibonacci","actionlib_tutorials/Fibonacci",ExecuteGoalFcn=cb,DataFormat="struct")
server = SimpleActionServer with properties: ActionName: '/fibonacci' ActionType: 'actionlib_tutorials/Fibonacci' ExecuteGoalFcn: @fibonacciExecution DataFormat: 'struct'
Create action client and send a goal to the server to calculate the Fibonacci sequence up to 10 terms past the first two terms, 0
and 1
. Display the result sequence.
client = rosactionclient("/fibonacci","actionlib_tutorials/Fibonacci",DataFormat="struct"); goal = rosmessage(client); goal.Order = int32(10); result = sendGoalAndWait(client,goal); result.Sequence
ans = 12×1 int32 column vector
0
1
1
2
3
5
8
13
21
34
⋮
Shut down ROS network.
rosshutdown;
Shutting down global node /matlab_global_node_56708 with NodeURI http://vdi-wd1bgl-223:61999/ and MasterURI http://localhost:52554. Shutting down ROS master on http://172.19.136.75:52554.
Warning: Error shutting down the ROS master.
Supporting Functions
The callback function fibbonacciExecution
is executed every time the server receives a goal execution request from the client. This function checks if the goal has been preempted, executes the goal and sends feedback to the client during goal execution.
function [result,success] = fibonacciExecution(src,goal,defaultFeedback,defaultResult) % Initialize variables success = true; result = defaultResult; feedback = defaultFeedback; feedback.Sequence = int32([0 1]); for k = 1:goal.Order % Check that the client has not canceled or sent a new goal if isPreemptRequested(src) success = false; break end % Send feedback to the client periodically feedback.Sequence(end+1) = feedback.Sequence(end-1) + feedback.Sequence(end); sendFeedback(src,feedback) % Pause to allow time to complete other callbacks (like client feedback) pause(0.2) end if success result.Sequence = feedback.Sequence; end end
Input Arguments
ROS action server, specified as a SimpleActionServer
object
handle.
Feedback message for action client, specified as a ROS message. The type and format
of the feedbackMsg
must match the ActionType
and
DataFormat
properties of server
,
respectively.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2022a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)