30 #define STD_CHECK_PROCEDURE() \
33 ROS_WARN("Manipulator still in motion, call stop first!"); \
36 if (m_pRefVals != NULL) { \
42 #define START_CTRL_JOB(info) \
43 if ( m_cThread.startJob(m_pRefVals) == false ) { \
44 m_ErrorMsg.assign("Internal Error: Unable to start movement, other control Job still active."); \
109 for (
int i = 0; i <
m_DOF; i++)
116 for (
int i = 0; i <
m_DOF; i++)
132 for (
unsigned int i = 0; i<
m_vel_js.size(); i++)
138 for (
unsigned int i = 0; i<
m_acc_js.size(); i++)
157 if (pfad.points.size() == 2)
159 return moveThetas(pfad.points[1].positions, conf_current);
161 for(
unsigned int i = 0; i < pfad.points.front().positions.size(); i++ )
163 if((pfad.points.front().positions.at(i) - conf_current.at(i)) > 0.25)
165 ROS_ERROR(
"Cannot start trajectory motion, manipulator not in trajectory start position.");
175 for (
unsigned int i = 0; i<
m_vel_js.size(); i++)
181 for (
unsigned int i = 0; i<
m_acc_js.size(); i++)
253 for(
int i = 0; i <
m_DOF; i++)
255 len += (m_qsoll.at(i) - current_pos.at(i)) * (m_qsoll.at(i) - current_pos.at(i));
269 desired_vel.resize(
m_DOF);
271 for(
int i = 0; i <
m_DOF; i++)
273 desired_vel.at(i) = m_vsoll.at(i) *
m_Vorsteuer + ( m_qsoll.at(i) - current_pos.at(i) ) *
m_P;
280 ROS_INFO(
"Probably finished trajectory");
282 desired_vel.resize(
m_DOF);
283 for(
int i = 0; i <
m_DOF; i++)
285 desired_vel.at(i) = 0.0;