io.xml

This example application shows the usage of rostopic monitors.

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of rostopic 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.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
 35                    <!-- needed, because pitasc does not create the robot publisher otherwise -->
 36                    <clone prototype="skill_relative_ptp">
 37                        <member id="relative_joint_state">0, 0, 0, 0, 0, 0</member>
 38                    </clone>
 39
 40                    <!-- To trigger the monitor, publish a std_msgs/Bool message with value False on the given topic: -->
 41                    <!-- rostopic pub /monitor_test_namespace/monitor_test_bool std_msgs/Bool "data: false" -->
 42                    <clone prototype="skill_idle_duration">
 43                        <member id="duration">20</member>
 44                        <member id="monitors">
 45                            <clone prototype="monitor_ros_bool_topic">
 46                                <member id="namespace">monitor_test_namespace</member>
 47                                <member id="topic">monitor_test_bool</member>
 48                                <member id="value">False</member>
 49                            </clone>
 50                        </member>
 51                    </clone>
 52
 53                    <!-- To trigger the monitor, publish a std_msgs/Int8 message with value 20 on the given topic: -->
 54                    <!-- rostopic pub /monitor_test_namespace/monitor_test_int8 std_msgs/Int8 "data: 20" -->
 55                    <clone prototype="skill_idle_duration">
 56                        <member id="duration">20</member>
 57                        <member id="monitors">
 58                            <clone prototype="monitor_ros_int8_topic">
 59                                <member id="namespace">monitor_test_namespace</member>
 60                                <member id="topic">monitor_test_int8</member>
 61                                <member id="value">20</member>
 62                            </clone>
 63                        </member>
 64                    </clone>
 65
 66                    <!-- To trigger the monitor, publish a std_msgs/Int16 message with a value less than 20 on the given topic: -->
 67                    <!-- rostopic pub /monitor_test_namespace/monitor_test_int16 std_msgs/Int8 "data: 19" -->
 68                    <clone prototype="skill_idle_duration">
 69                        <member id="duration">20</member>
 70                        <member id="monitors">
 71                            <clone prototype="monitor_ros_int16_topic">
 72                                <member id="namespace">monitor_test_namespace</member>
 73                                <member id="topic">monitor_test_int16</member>
 74                                <member id="value">20</member>
 75                                <member id="operator">less</member>
 76                            </clone>
 77                        </member>
 78                    </clone>
 79
 80                    <clone prototype="skill_idle_duration">
 81                        <member id="duration">20</member>
 82                        <member id="monitors">
 83                            <clone prototype="monitor_ros_float32_topic">
 84                                <member id="namespace">monitor_test_namespace</member>
 85                                <member id="topic">monitor_test_float32</member>
 86                                <member id="value">20</member>
 87                                <member id="operator">less</member>
 88                            </clone>
 89                        </member>
 90                    </clone>
 91
 92                    <clone prototype="skill_idle_duration">
 93                        <member id="duration">20</member>
 94                        <member id="monitors">
 95                            <clone prototype="monitor_ros_string_topic">
 96                                <member id="namespace">monitor_test_namespace</member>
 97                                <member id="topic">monitor_test_string</member>
 98                                <member id="value">narf</member>
 99                                <member id="operator">equal</member>
100                            </clone>
101                        </member>
102                    </clone>
103
104                    <!-- The input on the fireevent monitor decides which event is fired. On value 10, it succeeds, on 0 it preempts. -->
105                    <clone prototype="skill_idle">
106                        <member id="monitors">
107                            <clone prototype="monitor_ros_fireevent_rostopic">
108                                <member id="namespace">monitor_test_namespace</member>
109                                <member id="topic">monitor_test_fireevent</member>
110                                <member id="values">
111                                    <clone prototype="value_event_pair">
112                                        <member id="event">succeeded</member>
113                                        <member id="value">10</member>
114                                    </clone>
115                                    <clone prototype="value_event_pair">
116                                        <member id="event">preempted</member>
117                                        <member id="value">0</member>
118                                    </clone>
119                                </member>
120                                <member id="type">std_msgs/Int16</member>
121                            </clone>
122                        </member>
123                    </clone>
124
125                </member>
126
127            </clone>
128        </member>
129
130    </clone>
131
132</pitasc>