pitasc_library - skills/skill_apply_force.xml
Model definitions
line 8: skill_apply_force
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="skills/skill_force.xml"/>
7
8 <type id="skill_apply_force" prototype="skill_force">
9 <meta>
10 <member id="description">Applies a force in the direction of a frame</member>
11 <member id="categories">single_robot, force_controlled</member>
12 <member id="visibility">basic</member>
13 </meta>
14
15 <data>
16 <!-- Task description -->
17 <type id="axes" prototype="string_csv">
18 <meta>
19 <member id="description">List of axes.</member>
20 <clone prototype="restrictions">
21 <clone prototype="enum">x, y, z, a, b, c</clone>
22 </clone>
23 <member id="visibility">required</member>
24 </meta>
25 </type>
26 <type id="target_forces" prototype="float_csv">
27 <meta>
28 <member id="description">Forces and torques to be applied. Must be the same number of values as for 'axes'.</member>
29 <clone prototype="restrictions">
30 <clone prototype="float_csv_min">-100.0, -100.0, -100.0, -10.0, -10.0, -10.0</clone>
31 <clone prototype="float_csv_max">100.0, 100.0, 100.0, 10.0, 10.0, 10.0</clone>
32 </clone>
33 <member id="visibility">required</member>
34 </meta>
35 </type>
36
37 <type id="ff_velocities" prototype="float_csv">
38 <meta>
39 <member id="description">Feedforward velocities in [m/s] or [rad/s]. This is useful to hold contact to a surface moving with a constant velocity, like while loosing a screw.</member>
40 <member id="visibility">expert</member>
41 </meta>
42 <data></data>
43 </type>
44
45 <!-- Control -->
46 <type id="compliance" prototype="float_parameter">
47 <meta>
48 <member id="description">Force controller gain</member>
49 <clone prototype="restrictions">
50 <clone prototype="float_min">0.00001</clone>
51 <clone prototype="float_max">0.1</clone>
52 </clone>
53 <member id="visibility">basic</member>
54 </meta>
55 <data>0.002</data>
56 </type>
57 <type id="corner_frequency" prototype="float_parameter">
58 <meta>
59 <member id="description">Force controller corner frequency</member>
60 <clone prototype="restrictions">
61 <clone prototype="float_min">1.0</clone>
62 <clone prototype="float_max">50.0</clone>
63 </clone>
64 <member id="visibility">basic</member>
65 </meta>
66 <data>5.0</data>
67 </type>
68
69 <!-- Implementation details below: -->
70
71 <member id="tasks">
72 <clone id="apply_force" prototype="task">
73 <member id="coordinates" reference_id="axes"/>
74 <member id="prefix" reference_id="collections.force_chain.prefix"/>
75
76 <member id="setpoint_generators">
77 <clone id="setpoint" prototype="constant_setpoint">
78 <member id="desired" reference_id="target_forces"/>
79 <member id="coordinates" reference_id="coordinates"/>
80 <member id="prefix" reference_id="prefix"/>
81 </clone>
82 </member>
83
84 <member id="controllers">
85 <clone prototype="first_order_impedance_controller">
86 <member id="compliance" reference_id="compliance"/>
87 <member id="f0_hz" reference_id="corner_frequency"/>
88 <member id="ff_setpoint">
89 <clone id="setpoint" prototype="constant_setpoint">
90 <member id="desired" reference_id="ff_velocities" />
91 <member id="coordinates" reference_id="coordinates"/>
92 <member id="prefix" reference_id="prefix"/>
93 </clone>
94 </member>
95 <member id="data_source">
96 <reference reference_id="collections.force_chain.chains[0]"/>
97 </member>
98 <member id="setpoint_generator">
99 <reference reference_id="setpoint_generators.setpoint"/>
100 </member>
101 <member id="coordinates" reference_id="coordinates"/>
102 <member id="prefix" reference_id="prefix"/>
103 </clone>
104 </member>
105
106 </clone>
107 </member>
108 <member id="tasks.meta.visibility">hidden</member>
109
110 </data>
111 </type>
112
113 </models>
114
115</pitasc>