geometry.xml

This example application shows the usage of monitors.

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of monitors.
  4
  5-->
  6
  7<pitasc>
  8
  9    <models>
 10        <include package="pitasc_library" file="models/pitasc.xml"/>
 11        <include package="pitasc_library" file="models/skills.xml"/>
 12
 13        <include package="pitasc_library" file="universal_robots/ur.xml"/>
 14    </models>
 15
 16    <clone prototype="project">
 17
 18        <member id="configuration">
 19            <clone id="configuration" prototype="default_configuration"/>
 20        </member>
 21
 22        <member id="environment">
 23            <clone prototype="robot_ur5">
 24                <member id="robot_driver.max_velocity">0.2</member>
 25                <member id="robot_driver.max_acceleration">2.0</member>
 26            </clone>
 27        </member>
 28
 29        <member id="applications">
 30            <clone prototype="skill_sequence">
 31
 32                <member id="robot" reference_id="environment.robot_ur5"/>
 33
 34                <member id="skills">
 35
 36                    <clone prototype="skill_wait_for_transform">
 37                        <member id="parent_frame">target2</member>
 38                        <member id="frame">tool</member>
 39                    </clone>
 40
 41                    <clone prototype="skill_lin">
 42                        <member id="tool_frame">tool</member>
 43                        <member id="target_frame">target1</member>
 44                    </clone>
 45
 46                    <clone prototype="skill_cartesian_tracking">
 47                        <member id="tool_frame">tool</member>
 48                        <member id="target_frame">target2</member>
 49
 50                        <!-- Quit after 3 cm -->
 51                        <member id="monitors">
 52                            <clone prototype="monitor_distance">
 53                                <member id="reference_frame">target1</member>
 54                                <member id="frame">tool</member>
 55                                <member id="coordinates">y</member>
 56                                <member id="distances">0.03</member>
 57                                <member id="operator">absolute_greater</member>
 58                            </clone>
 59                        </member>
 60
 61                    </clone>
 62
 63                    <clone prototype="skill_cartesian_tracking">
 64                        <member id="tool_frame">tool</member>
 65                        <member id="target_frame">target1</member>
 66
 67                        <!-- Quit after 1 cm -->
 68                        <member id="monitors">
 69                            <clone prototype="monitor_relative_distance">
 70                                <member id="reference_frame">target1</member>
 71                                <member id="frame">tool</member>
 72                                <member id="coordinates">y</member>
 73                                <member id="distances">0.01</member>
 74                                <member id="operator">absolute_greater</member>
 75                            </clone>
 76                        </member>
 77
 78                    </clone>
 79
 80                    <clone prototype="skill_cartesian_tracking">
 81                        <member id="tool_frame">tool</member>
 82                        <member id="target_frame">target2</member>
 83
 84                        <!-- Quit when tool left the box around target1 -->
 85                        <member id="monitors">
 86                            <clone prototype="monitor_frame_in_box">
 87                                <member id="box_center_frame">target1</member>
 88                                <member id="frame">tool</member>
 89                                <member id="edge_length_xyz">0.05, 0.05, 0.05</member>
 90                            </clone>
 91                        </member>
 92
 93                    </clone>
 94
 95                </member>
 96
 97            </clone>
 98        </member>
 99
100    </clone>
101
102</pitasc>