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
monitor_duration: lines 86
skill_cartesian_bound: lines 71, 118
skill_concurrency: lines 60, 97
skill_joint_space_bound: lines 125
skill_lin: lines 41, 47, 54, 62, 93
skill_lin_trajectory: lines 99
skill_sequence: lines 38
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>