45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
@startuml plugin_connectivity
|
|
skinparam fixCircleLabelOverlapping true
|
|
skinparam SequenceLifeLineBorderColor #B0B0B0
|
|
skinparam SequenceDividerBorderColor Gray
|
|
skinparam SequenceGroupBorderColor Gray
|
|
skinparam sequenceMessageAlign Center
|
|
skinparam ArrowColor #404040
|
|
participant "ROS ActionClient" as client
|
|
participant ActorServer as server
|
|
participant ActorPlugin as plugin
|
|
|
|
note left of client: Protocol:
|
|
/note left of server: ros_action
|
|
/note left of plugin: MessageQueue
|
|
|
|
|
|
==Goal==
|
|
activate server
|
|
activate plugin
|
|
|
|
[-> client: create ActionClient
|
|
activate client
|
|
|
|
client -> server: goal request
|
|
server -->> client: goal response
|
|
|
|
alt goal accepted
|
|
server ->> plugin: set state and target
|
|
plugin -->> server: state change
|
|
== Feedback==
|
|
group opt par [abort of current action]
|
|
client->server: abort request
|
|
server->plugin: set state to Idle
|
|
server-->>client: abort response
|
|
end
|
|
loop until action is completed or aborted
|
|
plugin -->> server: feedback
|
|
server -->> client: feedback callback
|
|
end
|
|
==Result==
|
|
plugin -->> server: state change
|
|
server -->> client: result callback
|
|
end
|
|
destroy client
|
|
@enduml |