ptp_trajectory.xml
This example application shows how to run a ptp trajectory through several joint states with blending.
A UR5 moves to start position, then he performs the trajectory. Then, he does it again with higher velocity. Then the application terminates.
Models used
script_measurement_logger: lines 77, 82
skill_lin: lines 50, 91
skill_ptp_trajectory: lines 56, 97
skill_sequence: lines 41
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!-- This example application shows how to run a ptp trajectory through several joint states with blending.
4
5A UR5 moves to start position, then he performs the trajectory. Then, he does it again with higher velocity. Then the application terminates.
6-->
7
8<pitasc>
9
10 <models>
11 <!-- Include pitasc -->
12 <include package="pitasc_library" file="models/pitasc.xml"/>
13
14 <!-- Include the UR5 -->
15 <include package="pitasc_library" file="universal_robots/ur.xml"/>
16
17 <!-- Include the skills -->
18 <include package="pitasc_library" file="models/skills.xml"/>
19
20 </models>
21
22 <!-- Create a project -->
23 <clone prototype="project">
24
25 <member id="configuration">
26 <!-- Use the default configuration with recommended settings -->
27 <clone id="configuration" prototype="default_configuration"/>
28 </member>
29
30 <member id="environment">
31 <!-- Add a UR5 -->
32 <clone prototype="robot_ur5">
33 <member id="robot_driver.max_velocity">5.0</member>
34 <member id="robot_driver.max_acceleration">10.0</member>
35 </clone>
36 </member>
37
38 <member id="applications">
39
40 <!-- Use a skill sequence as a container -->
41 <clone prototype="skill_sequence">
42
43 <!-- Use the UR5 for this skill (and for its subskill) -->
44 <member id="robot" reference_id="environment.robot_ur5"/>
45
46 <!-- Add subskill(s) -->
47 <member id="skills">
48
49 <!-- Move to target1 (lin) -->
50 <clone prototype="skill_lin">
51 <member id="tool_frame">tool</member>
52 <member id="target_frame">target1</member>
53 </clone>
54
55 <!-- Move along several PTP waypoints and log the desired and measured joint states. -->
56 <clone prototype="skill_ptp_trajectory">
57 <member id="waypoints">
58 <clone prototype="ptp_trajectory_waypoint">
59 <member id="target_joint_state">1.35815, -1.31344, 1.94880, -2.2248, 0.78459, -3.2196</member>
60 <member id="blending_distances">0.01, 0.02, 0.1, 0.1, 0.05, 0.1</member>
61 <member id="max_angular_velocity">0.8</member><!-- can be set; is valid for the distance to this waypoint -->
62 <member id="max_angular_acceleration">0.3</member><!-- can be set; is valid for the distance to this waypoint and the blending -->
63 </clone>
64 <clone prototype="ptp_trajectory_waypoint">
65 <member id="target_joint_state">1.39671, -1.4769, 0.752554, -1.40487, 0.115233, -3.26799</member>
66 <member id="blending_distances">0.01</member> <!-- takes these blending distance for all joints -->
67 </clone>
68 <clone prototype="ptp_trajectory_waypoint">
69 <member id="target_joint_state">1.2977, -1.53491, 1.17162, -1.32425, -1.72469, -1.44901</member>
70 <member id="max_angular_velocity">1.0</member>
71 </clone>
72 </member>
73 <member id="max_angular_velocity">0.6</member>
74 <member id="max_angular_acceleration">2.0</member>
75
76 <member id="scripts">
77 <clone prototype="script_measurement_logger">
78 <member id="provider" reference_id="robot.robot_driver"/>
79 <member id="file_name">{rospkg pitasc_common}/examples/skills/logs/ptp_trajectory_measured_pos.csv</member>
80 <member id="filter"></member>
81 </clone>
82 <clone prototype="script_measurement_logger">
83 <member id="provider" reference_id="tasks.tracking.setpoint_generators"/>
84 <member id="file_name">{rospkg pitasc_common}/examples/skills/logs/ptp_trajectory_desired_pos.csv</member>
85 <member id="filter"></member>
86 </clone>
87 </member>
88 </clone>
89
90 <!-- Move to target1 (lin) -->
91 <clone prototype="skill_lin">
92 <member id="tool_frame">tool</member>
93 <member id="target_frame">target1</member>
94 </clone>
95
96 <!-- Move along several PTP waypoints, with higher speed. Notice the manual controller tuning -->
97 <clone prototype="skill_ptp_trajectory">
98 <member id="waypoints">
99 <clone prototype="ptp_trajectory_waypoint">
100 <member id="target_joint_state">1.35815, -1.31344, 1.94880, -2.2248, 0.78459, -3.2196</member>
101 <member id="blending_distances">0.1</member>
102 </clone>
103 <clone prototype="ptp_trajectory_waypoint">
104 <member id="target_joint_state">1.39671, -1.4769, 0.752554, -1.40487, 0.115233, -3.26799</member>
105 <member id="blending_distances">0.3</member> <!-- takes these blending distance for all joints -->
106 </clone>
107 <clone prototype="ptp_trajectory_waypoint">
108 <member id="target_joint_state">1.2977, -1.53491, 1.17162, -1.32425, -1.72469, -1.44901</member>
109 </clone>
110 </member>
111 <member id="max_angular_velocity">3.0</member>
112 <member id="max_angular_acceleration">4.0</member>
113 <member id="angular_controller_gain">2.0</member>
114 <member id="angular_ff_controller_gain">0.75</member>
115 </clone>
116 </member>
117
118 </clone>
119
120 </member>
121
122 </clone>
123
124</pitasc>