\documentclass{standalone} \usepackage{tikz} \usepackage{aeguill} \begin{document} % generated by Plantuml 1.2022.7 \definecolor{plantucolor0000}{RGB}{255,255,255} \definecolor{plantucolor0001}{RGB}{176,176,176} \definecolor{plantucolor0002}{RGB}{128,128,128} \definecolor{plantucolor0003}{RGB}{226,226,240} \definecolor{plantucolor0004}{RGB}{24,24,24} \definecolor{plantucolor0005}{RGB}{0,0,0} \definecolor{plantucolor0006}{RGB}{254,255,221} \definecolor{plantucolor0007}{RGB}{238,238,238} \definecolor{plantucolor0008}{RGB}{64,64,64} \begin{tikzpicture}[yscale=-1 ,pstyle0/.style={color=plantucolor0001,fill=white,line width=1.0pt} ,pstyle1/.style={color=plantucolor0002,line width=1.5pt} ,pstyle2/.style={color=plantucolor0001,line width=0.5pt,dash pattern=on 5.0pt off 5.0pt} ,pstyle3/.style={color=plantucolor0004,fill=plantucolor0003,line width=0.5pt} ,pstyle4/.style={color=plantucolor0004,fill=plantucolor0006,line width=0.5pt} ,pstyle5/.style={color=plantucolor0007,fill=plantucolor0007,line width=1.0pt} ,pstyle6/.style={color=plantucolor0002,line width=1.0pt} ,pstyle7/.style={color=plantucolor0002,fill=plantucolor0007,line width=2.0pt} ,pstyle8/.style={color=plantucolor0008,fill=plantucolor0008,line width=1.0pt} ,pstyle9/.style={color=plantucolor0008,line width=1.0pt} ,pstyle10/.style={color=plantucolor0008,line width=1.0pt,dash pattern=on 2.0pt off 2.0pt} ,pstyle11/.style={color=plantucolor0002,fill=plantucolor0007,line width=1.5pt} ,pstyle12/.style={color=plantucolor0001,line width=2.0pt} ] \draw[pstyle0] (153.8615pt,156.186pt) rectangle (163.8615pt,705.4822pt); \draw[pstyle0] (313.3771pt,49.0679pt) rectangle (323.3771pt,767.5501pt); \draw[pstyle0] (478.7515pt,49.0679pt) rectangle (488.7515pt,767.5501pt); \draw[pstyle1] (66.7865pt,234.598pt) rectangle (556.1768pt,698.4822pt); \draw[pstyle1] (76.7865pt,370.4221pt) rectangle (546.1768pt,485.2461pt); \draw[pstyle1] (76.7865pt,499.2461pt) rectangle (546.1768pt,582.3642pt); \draw[pstyle2] (158.7865pt,39.0679pt) -- (158.7865pt,733.4822pt); \draw[pstyle2] (317.4068pt,39.0679pt) -- (317.4068pt,733.4822pt); \draw[pstyle2] (483.3262pt,39.0679pt) -- (483.3262pt,733.4822pt); \draw[pstyle3] (86.7865pt,10pt) arc (180:270:5pt) -- (91.7865pt,5pt) -- (225.9365pt,5pt) arc (270:360:5pt) -- (230.9365pt,10pt) -- (230.9365pt,33.0679pt) arc (0:90:5pt) -- (225.9365pt,38.0679pt) -- (91.7865pt,38.0679pt) arc (90:180:5pt) -- (86.7865pt,33.0679pt) -- cycle; \node at (93.7865pt,12pt)[below right,color=black]{ROS ActionClient}; \draw[pstyle3] (86.7865pt,737.4822pt) arc (180:270:5pt) -- (91.7865pt,732.4822pt) -- (225.9365pt,732.4822pt) arc (270:360:5pt) -- (230.9365pt,737.4822pt) -- (230.9365pt,760.5501pt) arc (0:90:5pt) -- (225.9365pt,765.5501pt) -- (91.7865pt,765.5501pt) arc (90:180:5pt) -- (86.7865pt,760.5501pt) -- cycle; \node at (93.7865pt,739.4822pt)[below right,color=black]{ROS ActionClient}; \draw[pstyle3] (264.4068pt,10pt) arc (180:270:5pt) -- (269.4068pt,5pt) -- (367.3475pt,5pt) arc (270:360:5pt) -- (372.3475pt,10pt) -- (372.3475pt,33.0679pt) arc (0:90:5pt) -- (367.3475pt,38.0679pt) -- (269.4068pt,38.0679pt) arc (90:180:5pt) -- (264.4068pt,33.0679pt) -- cycle; \node at (271.4068pt,12pt)[below right,color=black]{ActorServer}; \draw[pstyle3] (264.4068pt,737.4822pt) arc (180:270:5pt) -- (269.4068pt,732.4822pt) -- (367.3475pt,732.4822pt) arc (270:360:5pt) -- (372.3475pt,737.4822pt) -- (372.3475pt,760.5501pt) arc (0:90:5pt) -- (367.3475pt,765.5501pt) -- (269.4068pt,765.5501pt) arc (90:180:5pt) -- (264.4068pt,760.5501pt) -- cycle; \node at (271.4068pt,739.4822pt)[below right,color=black]{ActorServer}; \draw[pstyle3] (431.3262pt,10pt) arc (180:270:5pt) -- (436.3262pt,5pt) -- (531.1768pt,5pt) arc (270:360:5pt) -- (536.1768pt,10pt) -- (536.1768pt,33.0679pt) arc (0:90:5pt) -- (531.1768pt,38.0679pt) -- (436.3262pt,38.0679pt) arc (90:180:5pt) -- (431.3262pt,33.0679pt) -- cycle; \node at (438.3262pt,12pt)[below right,color=black]{ActorPlugin}; \draw[pstyle3] (431.3262pt,737.4822pt) arc (180:270:5pt) -- (436.3262pt,732.4822pt) -- (531.1768pt,732.4822pt) arc (270:360:5pt) -- (536.1768pt,737.4822pt) -- (536.1768pt,760.5501pt) arc (0:90:5pt) -- (531.1768pt,765.5501pt) -- (436.3262pt,765.5501pt) arc (90:180:5pt) -- (431.3262pt,760.5501pt) -- cycle; \node at (438.3262pt,739.4822pt)[below right,color=black]{ActorPlugin}; \draw[pstyle0] (153.8615pt,156.186pt) rectangle (163.8615pt,705.4822pt); \draw[pstyle0] (313.3771pt,49.0679pt) rectangle (323.3771pt,767.5501pt); \draw[pstyle0] (478.7515pt,49.0679pt) rectangle (488.7515pt,767.5501pt); \draw[pstyle4] (67pt,54.0679pt) -- (67pt,81.0679pt) -- (153pt,81.0679pt) -- (153pt,64.0679pt) -- (143pt,54.0679pt) -- (67pt,54.0679pt); \draw[pstyle4] (143pt,54.0679pt) -- (143pt,64.0679pt) -- (153pt,64.0679pt) -- (143pt,54.0679pt); \node at (73pt,59.0679pt)[below right,color=black]{Protocol:}; \draw[pstyle4] (212pt,54.0679pt) -- (212pt,81.0679pt) -- (307pt,81.0679pt) -- (307pt,64.0679pt) -- (297pt,54.0679pt) -- (212pt,54.0679pt); \draw[pstyle4] (297pt,54.0679pt) -- (297pt,64.0679pt) -- (307pt,64.0679pt) -- (297pt,54.0679pt); \node at (218pt,59.0679pt)[below right,color=black]{ros\_action}; \draw[pstyle4] (347pt,54.0679pt) -- (347pt,81.0679pt) -- (472pt,81.0679pt) -- (472pt,64.0679pt) -- (462pt,54.0679pt) -- (347pt,54.0679pt); \draw[pstyle4] (462pt,54.0679pt) -- (462pt,64.0679pt) -- (472pt,64.0679pt) -- (462pt,54.0679pt); \node at (353pt,59.0679pt)[below right,color=black]{MessageQueue}; \draw[pstyle5] (0pt,108.6269pt) rectangle (566.1768pt,111.6269pt); \draw[pstyle6] (0pt,108.6269pt) -- (566.1768pt,108.6269pt); \draw[pstyle6] (0pt,111.6269pt) -- (566.1768pt,111.6269pt); \draw[pstyle7] (259.0368pt,96.7739pt) rectangle (307.14pt,122.4799pt); \node at (265.0368pt,100.7739pt)[below right,color=black]{\textbf{Goal}}; \draw[pstyle8] (141.8615pt,152.186pt) -- (151.8615pt,156.186pt) -- (141.8615pt,160.186pt) -- (145.8615pt,156.186pt) -- cycle; \draw[pstyle9] (0pt,156.186pt) -- (147.8615pt,156.186pt); \node at (9.5pt,136.4799pt)[below right,color=black]{create ActionClient}; \draw[pstyle8] (301.3771pt,183.892pt) -- (311.3771pt,187.892pt) -- (301.3771pt,191.892pt) -- (305.3771pt,187.892pt) -- cycle; \draw[pstyle9] (163.8615pt,187.892pt) -- (307.3771pt,187.892pt); \node at (195.4141pt,168.186pt)[below right,color=black]{goal request}; \draw[pstyle9] (164.8615pt,219.598pt) -- (174.8615pt,215.598pt); \draw[pstyle9] (164.8615pt,219.598pt) -- (174.8615pt,223.598pt); \draw[pstyle10] (163.8615pt,219.598pt) -- (312.3771pt,219.598pt); \node at (190.2546pt,199.892pt)[below right,color=black]{goal response}; \draw[pstyle11] (66.7865pt,234.598pt) -- (132.0532pt,234.598pt) -- (132.0532pt,244.304pt) -- (122.0532pt,254.304pt) -- (66.7865pt,254.304pt) -- (66.7865pt,234.598pt); \draw[pstyle1] (66.7865pt,234.598pt) rectangle (556.1768pt,698.4822pt); \node at (81.7865pt,235.598pt)[below right,color=black]{\textbf{alt}}; \node at (147.0532pt,236.598pt)[below right,color=black]{\textbf{[goal accepted]}}; \draw[pstyle9] (476.7515pt,278.01pt) -- (466.7515pt,274.01pt); \draw[pstyle9] (476.7515pt,278.01pt) -- (466.7515pt,282.01pt); \draw[pstyle9] (323.3771pt,278.01pt) -- (477.7515pt,278.01pt); \node at (335.3771pt,258.304pt)[below right,color=black]{set state and target}; \draw[pstyle9] (324.3771pt,309.716pt) -- (334.3771pt,305.716pt); \draw[pstyle9] (324.3771pt,309.716pt) -- (334.3771pt,313.716pt); \draw[pstyle10] (323.3771pt,309.716pt) -- (477.7515pt,309.716pt); \node at (357.5169pt,290.01pt)[below right,color=black]{state change}; \draw[pstyle5] (0pt,339.5691pt) rectangle (566.1768pt,342.5691pt); \draw[pstyle6] (0pt,339.5691pt) -- (566.1768pt,339.5691pt); \draw[pstyle6] (0pt,342.5691pt) -- (566.1768pt,342.5691pt); \draw[pstyle7] (240.3737pt,327.716pt) rectangle (325.8032pt,353.4221pt); \node at (246.3737pt,331.716pt)[below right,color=black]{\textbf{Feedback}}; \draw[pstyle11] (76.7865pt,370.4221pt) -- (179.6265pt,370.4221pt) -- (179.6265pt,380.1281pt) -- (169.6265pt,390.1281pt) -- (76.7865pt,390.1281pt) -- (76.7865pt,370.4221pt); \draw[pstyle1] (76.7865pt,370.4221pt) rectangle (546.1768pt,485.2461pt); \node at (91.7865pt,371.4221pt)[below right,color=black]{\textbf{opt par }}; \node at (194.6265pt,372.4221pt)[below right,color=black]{\textbf{[abort of current action]}}; \draw[pstyle8] (301.3771pt,409.8341pt) -- (311.3771pt,413.8341pt) -- (301.3771pt,417.8341pt) -- (305.3771pt,413.8341pt) -- cycle; \draw[pstyle9] (163.8615pt,413.8341pt) -- (307.3771pt,413.8341pt); \node at (191.0765pt,394.1281pt)[below right,color=black]{abort request}; \draw[pstyle8] (466.7515pt,441.5401pt) -- (476.7515pt,445.5401pt) -- (466.7515pt,449.5401pt) -- (470.7515pt,445.5401pt) -- cycle; \draw[pstyle9] (323.3771pt,445.5401pt) -- (472.7515pt,445.5401pt); \node at (349.0047pt,425.8341pt)[below right,color=black]{set state to Idle}; \draw[pstyle9] (164.8615pt,477.2461pt) -- (174.8615pt,473.2461pt); \draw[pstyle9] (164.8615pt,477.2461pt) -- (174.8615pt,481.2461pt); \draw[pstyle10] (163.8615pt,477.2461pt) -- (312.3771pt,477.2461pt); \node at (185.9161pt,457.5401pt)[below right,color=black]{abort response}; \draw[pstyle11] (76.7865pt,499.2461pt) -- (154.1038pt,499.2461pt) -- (154.1038pt,508.9521pt) -- (144.1038pt,518.9521pt) -- (76.7865pt,518.9521pt) -- (76.7865pt,499.2461pt); \draw[pstyle1] (76.7865pt,499.2461pt) rectangle (546.1768pt,582.3642pt); \node at (91.7865pt,500.2461pt)[below right,color=black]{\textbf{loop}}; \node at (169.1038pt,501.2461pt)[below right,color=black]{\textbf{[until action is completed or aborted]}}; \draw[pstyle9] (324.3771pt,542.6582pt) -- (334.3771pt,538.6582pt); \draw[pstyle9] (324.3771pt,542.6582pt) -- (334.3771pt,546.6582pt); \draw[pstyle10] (323.3771pt,542.6582pt) -- (477.7515pt,542.6582pt); \node at (369.6072pt,522.9521pt)[below right,color=black]{feedback}; \draw[pstyle9] (164.8615pt,574.3642pt) -- (174.8615pt,570.3642pt); \draw[pstyle9] (164.8615pt,574.3642pt) -- (174.8615pt,578.3642pt); \draw[pstyle10] (163.8615pt,574.3642pt) -- (312.3771pt,574.3642pt); \node at (175.8615pt,554.6582pt)[below right,color=black]{feedback callback}; \draw[pstyle5] (0pt,611.2172pt) rectangle (566.1768pt,614.2172pt); \draw[pstyle6] (0pt,611.2172pt) -- (566.1768pt,611.2172pt); \draw[pstyle6] (0pt,614.2172pt) -- (566.1768pt,614.2172pt); \draw[pstyle7] (252.5128pt,599.3642pt) rectangle (313.664pt,625.0702pt); \node at (258.5128pt,603.3642pt)[below right,color=black]{\textbf{Result}}; \draw[pstyle9] (324.3771pt,658.7762pt) -- (334.3771pt,654.7762pt); \draw[pstyle9] (324.3771pt,658.7762pt) -- (334.3771pt,662.7762pt); \draw[pstyle10] (323.3771pt,658.7762pt) -- (477.7515pt,658.7762pt); \node at (357.5169pt,639.0702pt)[below right,color=black]{state change}; \draw[pstyle9] (164.8615pt,690.4822pt) -- (174.8615pt,686.4822pt); \draw[pstyle9] (164.8615pt,690.4822pt) -- (174.8615pt,694.4822pt); \draw[pstyle10] (163.8615pt,690.4822pt) -- (312.3771pt,690.4822pt); \node at (186.68pt,670.7762pt)[below right,color=black]{result callback}; \draw[pstyle12] (149.8615pt,705.4822pt) -- (167.8615pt,723.4822pt); \draw[pstyle12] (149.8615pt,723.4822pt) -- (167.8615pt,705.4822pt); \end{tikzpicture} \end{document}