bound_example.xml

This example application shows the usage of boundaries with the optimizer solver. i.e., inequality constraints in cartesian and joint space , weighted combination of conflicting skill objectives

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of boundaries with the optimizer solver.
  4    i.e.,
  5inequality constraints in cartesian and joint space
  6        , weighted combination of conflicting
  7skill objectives
  8-->
  9
 10<pitasc>
 11
 12    <models>
 13        <include package="pitasc_library" file="models/pitasc.xml" />
 14        <include package="pitasc_library" file="models/skills.xml" />
 15
 16        <include package="pitasc_library" file="universal_robots/ur.xml" />
 17    </models>
 18
 19    <clone prototype="project">
 20
 21        <member id="environment">
 22            <clone prototype="robot_ur5">
 23                <member id="robot_driver.max_velocity">2.0</member>
 24                <member id="robot_driver.max_acceleration">3.0</member>
 25                <member id="components">
 26                    <clone prototype="force_sensor">
 27                        <member id="wrench_topic">wrench</member>
 28                    </clone>
 29                </member>
 30            </clone>
 31        </member>
 32
 33        <member id="configuration">
 34            <clone id="configuration" prototype="default_configuration" />
 35        </member>
 36
 37        <member id="applications">
 38            <clone prototype="skill_sequence">
 39                <member id="robot" reference_id="environment.robot_ur5" />
 40                <member id="skills">
 41                    <clone prototype="skill_lin">
 42                        <member id="tool_frame">tool</member>
 43                        <member id="target_frame">target1</member>
 44                    </clone>
 45
 46                    <!-- unconstraint motion from target 1 to target 2-->
 47                    <clone prototype="skill_lin">
 48                        <member id="tool_frame">tool</member>
 49                        <member id="target_frame">target2</member>
 50                        <member id="max_linear_velocity">0.3</member>
 51                    </clone>
 52
 53                    <!-- reset to target 1 -->
 54                    <clone prototype="skill_lin">
 55                        <member id="tool_frame">tool</member>
 56                        <member id="target_frame">target1</member>
 57                    </clone>
 58
 59                    <!-- constraint for x axis during motion from target 1 to target 2 -->
 60                    <clone prototype="skill_concurrency">
 61                        <member id="skills">
 62                            <clone prototype="skill_lin">
 63                                <member id="tool_frame">tool</member>
 64                                <member id="target_frame">target2</member>
 65                                <member id="max_linear_velocity">0.3</member>
 66                                <!-- Tracking weight can be set directly
 67                                     Will
 68                                be ignored, if not set for every tasks individually! -->
 69                                <member id="tasks.tracking.weight">100</member>
 70                            </clone>
 71                            <clone prototype="skill_cartesian_bound">
 72                                <member id="tool_frame">tool</member>
 73                                <member id="target_frame">target1</member>
 74                                <member id="axes">x</member>
 75                                <member id="lower_bound">-0.05</member>
 76                                <member id="upper_bound">0.5</member>
 77                                <!-- value that determines on how close the target_frame
 78                                    has
 79                                to be for the robot velocity to be limited -->
 80                                <member id="scaler">1.0</member>
 81                            </clone>
 82                        </member>
 83                        <!-- due to the constraint, skill_lin will never finish, so we need an extra
 84                        monitor -->
 85                        <member id="monitors">
 86                            <clone prototype="monitor_duration">
 87                                <member id="duration">5.0</member>
 88                            </clone>
 89                        </member>
 90                    </clone>
 91
 92                    <!-- constrain z axis for a lin trajectory, e.g. to prevent touching the ground -->
 93                    <clone prototype="skill_lin">
 94                        <member id="tool_frame">tool</member>
 95                        <member id="target_frame">target1</member>
 96                    </clone>
 97                    <clone prototype="skill_concurrency">
 98                        <member id="skills">
 99                            <clone prototype="skill_lin_trajectory">
100                                <member id="tool_frame">tool</member>
101                                <member id="max_linear_velocity">0.2</member>
102                                <member id="max_linear_acceleration">1.5</member>
103                                <member id="linear_ff_controller_gain">0.8</member>
104                                <member id="waypoints">
105                                    <clone prototype="lin_trajectory_waypoint">
106                                        <member id="target_frame">target2</member>
107                                        <member id="blending_distance">0.02</member>
108                                    </clone>
109                                    <clone prototype="lin_trajectory_waypoint">
110                                        <member id="target_frame">start_position</member>
111                                        <member id="blending_distance">0.1</member>
112                                    </clone>
113                                    <clone prototype="lin_trajectory_waypoint">
114                                        <member id="target_frame">target3</member>
115                                    </clone>
116                                </member>
117                            </clone>
118                            <clone prototype="skill_cartesian_bound">
119                                <member id="tool_frame">tool</member>
120                                <member id="target_frame">base_link</member>
121                                <member id="axes">z</member>
122                                <member id="lower_bound">0.1</member>
123                                <member id="upper_bound">1.0</member>
124                            </clone>
125                            <clone prototype="skill_joint_space_bound">
126                                <member id="lower_bound">-6,-6,-6,-6,-6,-6</member>
127                                <member id="upper_bound"> 6, 6, 6, 6, 6, 6</member>
128                            </clone>
129                        </member>
130                    </clone>
131
132                </member>
133
134            </clone>
135        </member>
136
137    </clone>
138
139</pitasc>