pitasc_library - skills/skill_guarded_approach.xml
Model definitions
line 10: skill_guarded_approach
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="skills/skill_cartesian_velocity.xml"/>
7 <include package="pitasc_library" file="skills/skill_hold_pose.xml"/>
8 <include package="pitasc_library" file="skills/skill_force.xml"/>
9
10 <type id="skill_guarded_approach" prototype="skill_concurrency">
11 <meta>
12 <member id="description">A skill that moves along a fixed frame axis until it measures a certain force</member>
13 <member id="categories">single_robot, force_controlled</member>
14 </meta>
15
16 <data>
17
18 <type id="max_forces" prototype="float_csv">
19 <meta>
20 <member id="description">Forces in [N].</member>
21 <member id="visibility">basic</member>
22 </meta>
23 <data>10.0</data>
24 </type>
25
26 <type id="tool_frame" prototype="frame">
27 <meta>
28 <member id="description">Name of the tool frame.</member>
29 <member id="visibility">required</member>
30 </meta>
31 </type>
32
33 <type id="control_frame" prototype="frame">
34 <meta>
35 <member id="description">Name of the frame that defines the direction of motion.</member>
36 <member id="visibility">required</member>
37 </meta>
38 </type>
39
40 <type id="axes" prototype="string_csv">
41 <meta>
42 <member id="description">The direction of motion. Can be multiple axes.</member>
43 <member id="visibility">basic</member>
44 <clone prototype="restrictions">
45 <clone prototype="enum">x, y, z</clone>
46 </clone>
47 </meta>
48 <data>x</data>
49 </type>
50
51 <type id="velocities" prototype="float_csv">
52 <meta>
53 <member id="description">Velocities in [m/s].</member>
54 <member id="visibility">basic</member>
55 </meta>
56 <data>0.01</data>
57 </type>
58
59 <!-- Implementation details below: -->
60
61 <clone id="move_skill" prototype="skill_cartesian_velocity">
62 <member id="velocity_frame" reference_id="control_frame"/>
63 <member id="tool_frame" reference_id="tool_frame"/>
64 <member id="axes" reference_id="axes"/>
65 <member id="velocities" reference_id="velocities"/>
66 </clone>
67 <member id="move_skill.meta.visibility">expert</member>
68
69 <clone id="hold_skill" prototype="skill_hold_pose">
70 <member id="tool_frame" reference_id="tool_frame"/>
71 </clone>
72 <member id="hold_skill.meta.visibility">expert</member>
73
74 <clone id="force_skill" prototype="skill_force">
75 <member id="force_frame" reference_id="control_frame"/>
76 </clone>
77 <member id="force_skill.meta.visibility">expert</member>
78
79 <member id="monitors">
80 <clone id="force_threshold" prototype="monitor_threshold">
81 <member id="provider" reference_id="force_skill.collections.force_chain.chains[0]"/>
82 <member id="coordinates" reference_id="axes"/>
83 <member id="prefix" reference_id="force_skill.collections.force_chain.prefix"/>
84 <member id="operator">absolute_greater</member>
85 <member id="thresholds" reference_id="max_forces"/>
86 </clone>
87 </member>
88
89 <member id="skills">
90 <reference reference_id="move_skill"/>
91 <reference reference_id="hold_skill"/>
92 <reference reference_id="force_skill"/>
93 </member>
94 <member id="skills.meta.visibility">expert</member>
95
96 </data>
97 </type>
98
99 </models>
100
101</pitasc>