io.xml

This example application shows the usage of scripts.

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of scripts.
  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.5</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                <member id="robot" reference_id="environment.robot_ur5"/>
 32                <member id="skills">
 33
 34                    <clone prototype="skill_sequence">
 35                        <member id="skills">
 36
 37                            <!-- needed, because pitasc does not create the robot publisher otherwise -->
 38                            <clone prototype="skill_relative_ptp">
 39                                <member id="relative_joint_state">0, 0, 0, 0, 0, 0</member>
 40                            </clone>
 41
 42                            <clone prototype="skill_idle_duration">
 43                                <member id="duration">0.5</member>
 44                                <member id="scripts">
 45                                    <!-- Call Empty service -->
 46                                    <clone prototype="script_call_empty_srvs">
 47                                        <member id="namespace">monitor_test_namespace</member>
 48                                        <member id="service_name">/monitor_test_empty</member>
 49                                        <member id="wait_for_service">True</member>
 50                                        <member id="on_start">False</member>
 51                                    </clone>
 52                                </member>
 53                            </clone>
 54                            <clone prototype="skill_idle"/>
 55                        </member>
 56
 57                        <member id="monitors">
 58                            <!-- Wait for Empty service -->
 59                            <clone prototype="monitor_ros_empty_service">
 60                                <member id="namespace">monitor_test_namespace</member>
 61                                <member id="service_name">/monitor_test_empty</member>
 62                            </clone>
 63                        </member>
 64                    </clone>
 65
 66
 67                    <clone prototype="skill_sequence">
 68                        <member id="skills">
 69                            <clone prototype="skill_idle_duration">
 70                                <member id="duration">0.5</member>
 71                                <member id="scripts">
 72                                    <!-- Call Trigger service -->
 73                                    <clone prototype="script_call_trigger_srvs">
 74                                        <member id="namespace">monitor_test_namespace</member>
 75                                        <member id="service_name">/monitor_test_trigger</member>
 76                                        <member id="wait_for_service">True</member>
 77                                        <member id="on_start">False</member>
 78                                    </clone>
 79                                </member>
 80                            </clone>
 81                            <clone prototype="skill_idle"/>
 82                        </member>
 83
 84                        <member id="monitors">
 85                            <!-- Wait for Trigger service -->
 86                            <clone prototype="monitor_ros_trigger_service">
 87                                <member id="namespace">monitor_test_namespace</member>
 88                                <member id="service_name">/monitor_test_trigger</member>
 89                            </clone>
 90                        </member>
 91                    </clone>
 92
 93
 94                    <clone prototype="skill_sequence">
 95                        <member id="skills">
 96                            <clone prototype="skill_idle_duration">
 97                                <member id="duration">0.5</member>
 98                                <member id="scripts">
 99                                    <!-- Call SetBool service -->
100                                    <clone prototype="script_call_setbool_srvs">
101                                        <member id="namespace">monitor_test_namespace</member>
102                                        <member id="service_name">/monitor_test_setbool</member>
103                                        <member id="wait_for_service">True</member>
104                                        <member id="on_start">False</member>
105                                        <member id="value">True</member>
106                                    </clone>
107                                </member>
108                            </clone>
109                            <clone prototype="skill_idle"/>
110                        </member>
111
112                        <member id="monitors">
113                            <!-- Wait for SetBool service -->
114                            <clone prototype="monitor_ros_setbool_service">
115                                <member id="namespace">monitor_test_namespace</member>
116                                <member id="service_name">/monitor_test_setbool</member>
117                            </clone>
118                        </member>
119                    </clone>
120
121                </member>
122
123            </clone>
124        </member>
125
126    </clone>
127
128</pitasc>