@@ -182,28 +182,23 @@ int main(int argc, char** argv)
182182 int const N_STEPS = 20 ; // number of steps
183183 int const N_DOF = 7 ; // number of degrees of freedom
184184
185- // Calculate the increment value for each joint
186- std::vector<double > dt_vector;
187- for (int joint_index = 0 ; joint_index < N_DOF; ++joint_index)
188- {
189- double dt = (goal_joint_values[joint_index] - current_joint_values[joint_index]) / N_STEPS;
190- dt_vector.push_back (dt);
191- }
192-
185+ // We need one reference trajectory with one joint_trajectory
193186 req.reference_trajectories .resize (1 );
194187 req.reference_trajectories [0 ].joint_trajectory .resize (1 );
195188 // trajectory includes both the start and end points (N_STEPS + 1)
196189 req.reference_trajectories [0 ].joint_trajectory [0 ].points .resize (N_STEPS + 1 );
197190 req.reference_trajectories [0 ].joint_trajectory [0 ].joint_names = joint_names;
198191 req.reference_trajectories [0 ].joint_trajectory [0 ].points [0 ].positions = current_joint_values;
199- // Use the increment values (dt_vector) to caluclate the joint values at each step
192+
193+ std::vector<double > joint_values = current_joint_values;
194+ // Increment joint values at each step
200195 for (std::size_t step_index = 1 ; step_index <= N_STEPS; ++step_index)
201196 {
202- std::vector<double > joint_values;
197+ double increment;
198+ step_index <= 10 ? (increment = 0.05 ) : (increment = 0.044 );
203199 for (int dof_index = 0 ; dof_index < N_DOF; ++dof_index)
204200 {
205- double joint_value = current_joint_values[dof_index] + step_index * dt_vector[dof_index];
206- joint_values.push_back (joint_value);
201+ joint_values[dof_index] = joint_values[dof_index] + increment;
207202 }
208203 req.reference_trajectories [0 ].joint_trajectory [0 ].joint_names = joint_names;
209204 req.reference_trajectories [0 ].joint_trajectory [0 ].points [step_index].positions = joint_values;
0 commit comments