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

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>