simple_dual_robot.xml
This example application shows the usage of 2 robots in the same app (both sequentially and concurrently).
Models used
skill_concurrency: lines 88
skill_lin: lines 56, 63, 71, 78, 94, 105
skill_sequence: lines 47, 52, 92, 103
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!-- This example application shows the usage of 2 robots in the same app
4(both sequentially and concurrently).
5-->
6
7
8<pitasc>
9
10 <models>
11
12 <include package="pitasc_library" file="models/pitasc.xml"/>
13 <include package="pitasc_library" file="models/skills.xml"/>
14
15 <include package="pitasc_library" file="universal_robots/ur.xml"/>
16 </models>
17
18
19 <!-- Create an application -->
20 <clone prototype="project">
21
22 <member id="configuration">
23 <clone id="configuration" prototype="default_configuration"/>
24 </member>
25
26 <member id="environment">
27 <clone id="ur5" prototype="robot_ur5">
28 <member id="namespace">ur5</member>
29 <member id="robot_driver.max_velocity">1.0</member>
30 <member id="robot_driver.max_acceleration">2.0</member>
31 <member id="robot_driver.send_velocities_if_inactive">True</member> <!-- set to true to keep sending zero velocities if the robot is not used in a skill -->
32 <member id="urdf_prefix">ur5_</member>
33 </clone>
34 <clone id="ur3" prototype="robot_ur3">
35 <member id="namespace">ur3</member>
36 <member id="robot_driver">
37 <member id="max_velocity">1.0</member>
38 <member id="max_acceleration">2.0</member>
39 <member id="send_velocities_if_inactive">True</member> <!-- set to true to keep sending zero velocities if the robot is not used in a skill -->
40 </member>
41 <member id="urdf_prefix">ur3_</member>
42 </clone>
43 </member>
44
45
46 <member id="applications">
47 <clone prototype="skill_sequence">
48 <member id="robot" reference_id="environment.ur3"/>
49
50 <member id="skills">
51 <!-- move both robots sequentially -->
52 <clone prototype="skill_sequence">
53 <member id="robot" reference_id="environment.ur3"/>
54 <member id="skills">
55 <!-- Move ur3 to target 1 -->
56 <clone prototype="skill_lin">
57 <member id="tool_frame">ur3_tool0</member>
58 <member id="target_frame">target1</member>
59 <member id="target_offsets">0.1,0,0,0,0,0</member>
60 </clone>
61
62 <!-- Move ur5 to target 1 -->
63 <clone prototype="skill_lin">
64 <member id="robot" reference_id="environment.ur5"/>
65 <member id="tool_frame">ur5_tool</member>
66 <member id="target_frame">target1</member>
67 <member id="target_offsets">-0.1,0,0,0,0,0</member>
68 </clone>
69
70 <!-- Move ur3 to target 2 -->
71 <clone prototype="skill_lin">
72 <member id="tool_frame">ur3_tool0</member>
73 <member id="target_frame">target2</member>
74 <member id="target_offsets">0.1,0,0,0,0,0</member>
75 </clone>
76
77 <!-- Move ur5 to target 2 -->
78 <clone prototype="skill_lin">
79 <member id="robot" reference_id="environment.ur5"/>
80 <member id="tool_frame">ur5_tool</member>
81 <member id="target_frame">target2</member>
82 <member id="target_offsets">-0.1,0,0,0,0,0</member>
83 </clone>
84 </member>
85 </clone>
86
87 <!-- move both robots concurrently -->
88 <clone prototype="skill_concurrency">
89 <member id="robot" reference_id="environment.ur3"/>
90 <member id="skills">
91 <!-- Move ur3 to target 1 -->
92 <clone prototype="skill_sequence">
93 <member id="skills">
94 <clone prototype="skill_lin">
95 <member id="tool_frame">ur3_tool0</member>
96 <member id="target_frame">target1</member>
97 <member id="target_offsets">0.1,0,0,0,0,0</member>
98 </clone>
99 </member>
100 </clone>
101
102 <!-- Move ur5 to target 1 -->
103 <clone prototype="skill_sequence">
104 <member id="skills">
105 <clone prototype="skill_lin">
106 <member id="robot" reference_id="environment.ur5"/>
107 <member id="tool_frame">ur5_tool</member>
108 <member id="target_frame">target1</member>
109 <member id="target_offsets">-0.1,0,0,0,0,0</member>
110 </clone>
111 </member>
112 </clone>
113
114 </member>
115 </clone>
116
117 </member>
118
119 </clone>
120 </member>
121
122 </clone>
123
124</pitasc>