pitasc_library - skills/skill_guarded_approach.xml

Model definitions

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>