ROS行为概述
客户端到服务器的关系
ROS的行动有一个与指定的协议客户机到服务器的通信关系。操作使用ROS主题将目标消息从客户端发送到服务器。您可以使用动作取消目标客户。接收一个目标后,服务器进程可以信息返回给客户端。这些信息包括服务器的状态、当前状态的目标,反馈这一目标在操作过程中,最后结果消息当目标完成。
使用sendGoal
向服务器发送的目标函数。发送目标并等待它完成sendGoalAndWait
。这个函数可以返回结果信息,最终状态的目标和服务器的状态。服务器执行一个目标时,回调函数,FeedbackFcn
,被称为提供这一目标(见相关的数据SimpleActionClient
)。取消当前的目标使用cancelGoal
或所有目标服务器使用cancelAllGoals
。
使用sendFeedback
函数发送反馈信息到客户端在目标执行。在目标执行,服务器调用ExecuteGoalFcn
回调。您可以使用isPreemeptRequested
在回调函数来检查客户端是否已经取消了目标或发送一个新目标执行。
执行操作的工作流程
一般来说,以下步骤发生在创建和执行一个活性氧ROS网络行动。
建立一个ROS操作服务器,使用
rosactionserver
。检查什么行动ROS网络上可用的类型rosaction
列表
在MATLAB®命令窗口。使用
rosactionclient
创建操作客户端并将它们连接到服务器。指定一个动作类型目前ROS网络上可用。使用waitForServer
等待客户端连接到服务器。发送一个目标使用
sendGoal
。定义一个goalMsg
对应于操作类型。当你创建一个操作客户端使用rosactionclient
,一个空白goalMsg
返回。您可以修改这个信息和你所需的参数。当一个目标状态
“活跃”
,开始执行和目标ActivationFcn
回调函数被调用。修改这个回调函数的更多信息,请参阅SimpleActionClient
。当目标状态仍然存在
“活跃”
,服务器继续执行目标。回调函数处理信息的反馈关于这个目标执行定期,每当一个新收到的反馈信息。使用FeedbackFcn
访问或从ROS服务器进程发送的消息数据。当目标实现时,服务器返回一个结果消息和状态。使用
ResultFcn
回调函数来访问或处理结果消息和状态。
行动信息和功能
ROS行动使用ROS消息发送目标和接收反馈对他们执行。在MATLAB中,您可以使用回调函数来访问或过程的反馈从这些信息和结果信息。在您创建的SimpleActionClient
通过分配函数对象,指定回调函数处理的对象上的属性。您可以创建对象使用rosactionclient
。
GoalMsg
目标消息包含有关目标的信息。执行一个动作,你必须发送一个目标信息,更新目标信息(见sendGoal
)。目标信息的类型取决于类型的ROS的行动。ActivationFcn
——一旦操作服务器上接收到一个目标,它的状态去“等待”
直到服务器决定执行它。然后状态“活跃”
。这时,MATLAB中定义的回调函数执行ActivationFcn
财产的SimpleActionClient
对象。没有ROS消息或数据与此相关的功能。默认情况下,这个函数只显示目标是活跃的
在MATLAB命令行通知您正在执行的目标。默认函数句柄:
@ (~)disp (目标是活跃的)
FeedbackMsg
——反馈消息包含信息发送到客户机的服务器在目标执行。反馈消息的类型取决于动作类型。这个反馈包含当前状态和任何其他相关信息进展目标执行。使用sendFeedback
函数来从服务器发送反馈消息。FeedbackFcn
——反馈函数是用来处理信息的反馈信息。反馈消息的类型取决于动作类型。定期反馈函数执行在目标操作期间,每当一个新收到的反馈信息。默认情况下,显示的细节消息使用的函数showdetails
。你可以做其他处理反馈信息的反馈函数。默认函数句柄:
@(~,味精)disp ([的反馈:showdetails(味精)])
味精
反馈消息作为输入参数的函数定义。ResultMsg
——服务器向客户端发送最终结果消息后目标执行作为输出参数sendGoal
或sendGoalAndWait
。ResultFcn
——结果函数执行时,目标已经完成。输入这个函数包括结果信息和执行的状态。结果消息的类型取决于动作类型。这条消息,味精
和状态,年代
是一样的,输出时使用sendGoalAndWait
。这个函数也可以用来触发相关的流程目标完成后。默认函数句柄:
@ (~ s味精)disp ([结果与国家的char (s),“:”showdetails(味精)])
另请参阅
rosactionserver
|rosactionclient
|rosaction