pitasc_library - skills/skill_ptp_time_optimal.xml
Model definitions
line 8: skill_ptp_time_optimal
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="skills/skill_joint_space.xml"/>
7
8 <type id="skill_ptp_time_optimal" prototype="skill_joint_space">
9 <meta>
10 <member id="description">Keeps on tracking a joint configuration using a time-optimal trajectory</member>
11 </meta>
12
13 <data>
14
15 <!-- Task description -->
16 <type id="joint_names" prototype="string_csv">
17 <meta>
18 <member id="description">Joint names of the target pose.</member>
19 <member id="visibility">basic</member>
20 </meta>
21 </type>
22 <member id="joint_names" reference_id="robot.joint_names"/>
23
24 <type id="target_joint_state" prototype="float_csv">
25 <meta>
26 <member id="description">Joint values of the target pose.</member>
27 <member id="visibility">required</member>
28 </meta>
29 </type>
30
31 <type id="trajectory_duration" prototype="float_parameter">
32 <meta>
33 <member id="description">Duration of the trajectory in [s]; '0' means as fast as possible. The realized duration can be longer if the original value conflicts with maximal velocity.</member>
34 <member id="visibility">basic</member>
35 </meta>
36 <data>0</data>
37 </type>
38
39 <!-- Control -->
40 <type id="max_angular_velocity" prototype="float_parameter">
41 <meta>
42 <member id="description">Max angular velocity.</member>
43 <member id="visibility">basic</member>
44 </meta>
45 <data>1.0</data>
46 </type>
47 <type id="max_angular_acceleration" prototype="float_parameter">
48 <meta>
49 <member id="description">Max angular acceleration.</member>
50 <member id="visibility">basic</member>
51 </meta>
52 <data>1.0</data>
53 </type>
54 <type id="angular_controller_gain" prototype="float_parameter">
55 <meta>
56 <member id="description">
57 Specifies the angular controller gain for joint position control.
58 </member>
59 <member id="visibility">expert</member>
60 </meta>
61 <data>3.0</data>
62 </type>
63 <type id="angular_ff_controller_gain" prototype="float_parameter">
64 <meta>
65 <member id="description">
66 Specifies the angular velocity-feed-forward controller gain for joint position control.
67 </member>
68 <member id="visibility">expert</member>
69 </meta>
70 <data>0.7</data>
71 </type>
72
73 <type id="joint_positioning_accuracy" prototype="float_csv">
74 <meta>
75 <member id="description">Threshold around the target joint state to consider it reached by the robot. One entry for all OR one entry for each joint.</member>
76 <member id="visibility">basic</member>
77 </meta>
78 <data>0.01</data>
79 </type>
80
81 <type id="positioning_monitor" prototype="monitor_ptp_distance">
82 <meta>
83 <member id="description">Checks whether the target joint state has been reached</member>
84 <member id="visibility">expert</member>
85 </meta>
86 <data>
87 <member id="robot_driver" reference_id="robot.robot_driver"/>
88 <member id="coordinates" reference_id="tasks.tracking.coordinates"/>
89 <member id="distances" reference_id="joint_positioning_accuracy"/>
90 <member id="target_joint_states" reference_id="target_joint_state" />
91 <member id="operator">absolute_less_equal</member>
92 </data>
93 </type>
94
95 <member id="monitors">
96 <reference reference_id="positioning_monitor"/>
97 </member>
98
99 <!-- Implementation details below: -->
100
101 <member id="tasks">
102 <clone id="tracking" prototype="task">
103 <member id="coordinates" reference_id="joint_names"/><!-- already prefixed -->
104
105 <member id="setpoint_generators">
106 <clone id="setpoint" prototype="time_optimal_setpoint">
107 <member id="data_source">
108 <reference prototype="robot_driver" reference_id="robot.robot_driver"/>
109 </member>
110 <member id="desired" reference_id="target_joint_state"/>
111 <member id="coordinates" reference_id="coordinates"/>
112 <member id="prefix" reference_id="prefix"/>
113 <member id="duration" reference_id="trajectory_duration"/>
114 <member id="max_vel_groups">
115 <reference reference_id="max_angular_velocity"/>
116 </member>
117 <member id="max_acc_groups">
118 <reference reference_id="max_angular_acceleration"/>
119 </member>
120 <clone id="joints_as_groups" prototype="string_csv_disassembled_as_csv_list">
121 <reference reference_id="joint_names" />
122 </clone>
123 <member id="symbol_groups" reference_id="joints_as_groups" />
124 </clone>
125 </member>
126
127 <member id="controllers">
128 <clone prototype="trajectory_p_controller">
129 <member id="gain" reference_id="angular_controller_gain"/>
130 <member id="limit" reference_id="max_angular_velocity"/>
131 <member id="ff_gain" reference_id="angular_ff_controller_gain"/>
132 <member id="data_source">
133 <reference prototype="robot_driver" reference_id="robot.robot_driver"/>
134 </member>
135 <member id="setpoint_generator">
136 <reference reference_id="setpoint_generators.setpoint"/>
137 </member>
138 <member id="coordinates" reference_id="coordinates"/>
139 <member id="prefix" reference_id="prefix"/>
140 </clone>
141 </member>
142 </clone>
143 </member>
144 <member id="tasks.meta.visibility">hidden</member>
145
146 </data>
147 </type>
148
149 </models>
150
151</pitasc>