pitasc_library - skills/skill_pivot.xml
Model definitions
line 10: skill_pivot
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="models/pitasc.xml"/>
7 <include package="pitasc_library" file="skills/skill_apply_force.xml"/>
8 <include package="pitasc_library" file="skills/skill_relative_lin.xml"/>
9
10 <type id="skill_pivot" prototype="skill_concurrency">
11 <meta>
12 <member id="description">Rotates while pushing</member>
13 <member id="categories">single_robot, force_controlled</member>
14 </meta>
15
16 <data>
17
18 <type id="tool_frame" prototype="frame">
19 <meta>
20 <member id="description">Name of the tool frame</member>
21 <member id="visibility">required</member>
22 </meta>
23 </type>
24
25 <type id="control_frame" prototype="frame">
26 <meta>
27 <member id="description">Name of the frame that defines the direction of rotation and forces</member>
28 <member id="visibility">required</member>
29 </meta>
30 </type>
31
32
33 <!-- Force parameters: -->
34 <type id="force_axes" prototype="string_csv">
35 <meta>
36 <member id="description">List of axes.</member>
37 <clone prototype="restrictions">
38 <clone prototype="enum">x, y, z, a, b, c</clone>
39 </clone>
40 <member id="visibility">basic</member>
41 </meta>
42 <data>y, z</data>
43 </type>
44
45 <type id="target_forces" prototype="float_csv">
46 <meta>
47 <member id="description">Forces and torques to be applied. Must be the same number of values as for 'axes'.</member>
48 <clone prototype="restrictions">
49 <clone prototype="float_csv_min">-100.0, -100.0, -100.0, -10.0, -10.0, -10.0</clone>
50 <clone prototype="float_csv_max">100.0, 100.0, 100.0, 10.0, 10.0, 10.0</clone>
51 </clone>
52 <member id="visibility">basic</member>
53 </meta>
54 <data>5, 5</data>
55 </type>
56
57 <type id="compliance" prototype="float_parameter">
58 <meta>
59 <member id="description">Force controller gain</member>
60 <clone prototype="restrictions">
61 <clone prototype="float_min">0.00001</clone>
62 <clone prototype="float_max">0.1</clone>
63 </clone>
64 <member id="visibility">basic</member>
65 </meta>
66 <data>0.002</data>
67 </type>
68
69 <type id="corner_frequency" prototype="float_parameter">
70 <meta>
71 <member id="description">Force controller corner frequency</member>
72 <clone prototype="restrictions">
73 <clone prototype="float_min">1.0</clone>
74 <clone prototype="float_max">50.0</clone>
75 </clone>
76 <member id="visibility">basic</member>
77 </meta>
78 <data>5.0</data>
79 </type>
80
81
82 <!-- Track parameters: -->
83 <type id="rotation_axes" prototype="string_csv">
84 <meta>
85 <member id="description">List of axes to be aligned.</member>
86 <clone prototype="restrictions">
87 <clone prototype="enum">x, y, z, a, b, c</clone>
88 </clone>
89 <member id="visibility">basic</member>
90 </meta>
91 <data>a</data>
92 </type>
93
94 <type id="rotation_offsets" prototype="float_csv">
95 <meta>
96 <member id="description">Offsets of the axes to be aligned. Must be the same number of values as for 'axes'. If no value is provided, 0 is used for all axes.</member>
97 <clone prototype="restrictions">
98 <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
99 <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
100 </clone>
101 <member id="visibility">basic</member>
102 </meta>
103 <data></data>
104 </type>
105
106 <type id="max_angular_velocity" prototype="float_parameter">
107 <meta>
108 <member id="description">Max angular velocity.</member>
109 <member id="visibility">basic</member>
110 </meta>
111 <data>1.5</data>
112 </type>
113
114 <!-- Implementation details below: -->
115
116 <clone id="force" prototype="skill_apply_force">
117 <member id="force_frame" reference_id="control_frame"/>
118 <member id="axes" reference_id="force_axes"/>
119 <member id="target_forces" reference_id="target_forces"/>
120 <member id="compliance" reference_id="compliance"/>
121 <member id="corner_frequency" reference_id="corner_frequency"/>
122 </clone>
123 <member id="force.meta.visibility">expert</member>
124
125 <clone id="rotation" prototype="skill_lin">
126 <member id="tool_frame" reference_id="tool_frame"/>
127 <member id="target_frame" reference_id="control_frame"/>
128 <member id="axes" reference_id="rotation_axes"/>
129 <member id="target_offsets" reference_id="rotation_offsets"/>
130 <member id="max_angular_velocity" reference_id="max_angular_velocity"/>
131 </clone>
132 <member id="rotation.meta.visibility">expert</member>
133
134 <clone id="hold" prototype="skill_hold_pose">
135 <member id="tool_frame" reference_id="tool_frame"/>
136 </clone>
137 <member id="hold.meta.visibility">expert</member>
138
139 <member id="skills">
140 <reference reference_id="force"/>
141 <reference reference_id="rotation"/>
142 <reference reference_id="hold"/>
143 </member>
144 <member id="skills.meta.visibility">expert</member>
145
146 <member id="collections.meta.visibility">hidden</member>
147 <member id="loops.meta.visibility">hidden</member>
148 <member id="tasks.meta.visibility">hidden</member>
149
150 </data>
151 </type>
152
153 </models>
154
155</pitasc>