11 #include <boost/thread/thread.hpp> 19 #include <dsr_msgs/RobotState.h> 20 #include <dsr_msgs/RobotStop.h> 22 #include <dsr_msgs/MoveJoint.h> 23 #include <dsr_msgs/MoveLine.h> 24 #include <dsr_msgs/MoveJointx.h> 25 #include <dsr_msgs/MoveCircle.h> 26 #include <dsr_msgs/MoveSplineJoint.h> 27 #include <dsr_msgs/MoveSplineTask.h> 28 #include <dsr_msgs/MoveBlending.h> 29 #include <dsr_msgs/MoveSpiral.h> 30 #include <dsr_msgs/MovePeriodic.h> 31 #include <dsr_msgs/MoveWait.h> 33 #include <dsr_msgs/ConfigCreateTcp.h> 34 #include <dsr_msgs/ConfigDeleteTcp.h> 35 #include <dsr_msgs/GetCurrentTcp.h> 36 #include <dsr_msgs/SetCurrentTcp.h> 38 #include <dsr_msgs/SetCurrentTool.h> 39 #include <dsr_msgs/GetCurrentTool.h> 40 #include <dsr_msgs/ConfigCreateTool.h> 41 #include <dsr_msgs/ConfigDeleteTool.h> 43 #include <dsr_msgs/SetCtrlBoxDigitalOutput.h> 44 #include <dsr_msgs/GetCtrlBoxDigitalInput.h> 45 #include <dsr_msgs/SetToolDigitalOutput.h> 46 #include <dsr_msgs/GetToolDigitalInput.h> 47 #include <dsr_msgs/SetCtrlBoxAnalogOutput.h> 48 #include <dsr_msgs/GetCtrlBoxAnalogInput.h> 49 #include <dsr_msgs/SetCtrlBoxAnalogOutputType.h> 50 #include <dsr_msgs/SetCtrlBoxAnalogInputType.h> 52 #include <dsr_msgs/SetModbusOutput.h> 53 #include <dsr_msgs/GetModbusInput.h> 54 #include <dsr_msgs/ConfigCreateModbus.h> 55 #include <dsr_msgs/ConfigDeleteModbus.h> 57 #include <dsr_msgs/DrlPause.h> 58 #include <dsr_msgs/DrlStart.h> 59 #include <dsr_msgs/DrlStop.h> 60 #include <dsr_msgs/DrlResume.h> 74 int movej(
float fTargetPos[NUM_JOINT],
float fTargetVel,
float fTargetAcc,
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
75 int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 0)
81 dsr_msgs::MoveJoint srv;
83 for(
int i=0; i<NUM_JOINT; i++)
84 srv.request.pos[i] = fTargetPos[i];
85 srv.request.vel = fTargetVel;
86 srv.request.acc = fTargetAcc;
87 srv.request.time = fTargetTime;
88 srv.request.radius = fBlendingRadius;
89 srv.request.mode = nMoveMode;
90 srv.request.blendType = nBlendingType;
91 srv.request.syncType = nSyncType;
93 if(srvMoveJoint.call(srv))
96 return (srv.response.success);
100 ROS_ERROR(
"Failed to call service dr_control_service : move_joint\n");
105 int amovej(
float fTargetPos[NUM_JOINT],
float fTargetVel,
float fTargetAcc,
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
106 int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 1)
108 return movej(fTargetPos, fTargetVel, fTargetAcc, fTargetTime, fBlendingRadius, nMoveMode, nBlendingType, 1);
111 int movel(
float fTargetPos[NUM_JOINT],
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
112 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 0)
116 dsr_msgs::MoveLine srv;
118 for(
int i=0; i<NUM_JOINT; i++)
119 srv.request.pos[i] = fTargetPos[i];
120 for(
int i=0; i<2; i++){
121 srv.request.vel[i] = fTargetVel[i];
122 srv.request.acc[i] = fTargetAcc[i];
124 srv.request.time = fTargetTime;
125 srv.request.radius = fBlendingRadius;
126 srv.request.ref = nMoveReference;
127 srv.request.mode = nMoveMode;
128 srv.request.blendType = nBlendingType;
129 srv.request.syncType = nSyncType;
131 if(srvMoveLine.call(srv))
134 return (srv.response.success);
138 ROS_ERROR(
"Failed to call service dr_control_service : move_line\n");
143 int amovel(
float fTargetPos[NUM_JOINT],
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
144 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 1)
146 return movel(fTargetPos, fTargetVel, fTargetAcc, fTargetTime, fBlendingRadius, nMoveReference, nMoveMode, nBlendingType, 1);
150 int movejx(
float fTargetPos[NUM_TASK],
float fTargetVel,
float fTargetAcc,
float fTargetTime=0.f,
float fBlendingRadius = 0.f,
151 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSolSpace = 0,
int nSyncType = 0)
155 dsr_msgs::MoveJointx srv;
157 for(
int i=0; i<NUM_TASK; i++)
158 srv.request.pos[i] = fTargetPos[i];
159 srv.request.vel = fTargetVel;
160 srv.request.acc = fTargetAcc;
161 srv.request.time = fTargetTime;
162 srv.request.radius = fBlendingRadius;
163 srv.request.ref = nMoveReference;
164 srv.request.mode = nMoveMode;
165 srv.request.blendType = nBlendingType;
166 srv.request.sol = nSolSpace;
168 if(srvMoveJointx.call(srv))
171 return (srv.response.success);
175 ROS_ERROR(
"Failed to call service dr_control_service : move_jointx\n");
180 int amovejx(
float fTargetPos[NUM_TASK],
float fTargetVel,
float fTargetAcc,
float fTargetTime=0.f,
float fBlendingRadius = 0.f,
181 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSolSpace = 0,
int nSyncType = 1)
183 return movejx(fTargetPos, fTargetVel, fTargetAcc, fTargetTime, fBlendingRadius, nMoveReference, nMoveMode, nBlendingType, nSolSpace, 1);
187 int movec(
float fTargetPos[2][NUM_TASK],
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
188 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 0)
193 dsr_msgs::MoveCircle srv;
194 std::vector<std_msgs::Float64MultiArray> poses;
195 std_msgs::Float64MultiArray pos;
196 for(
int i=0; i<2; i++){
198 for(
int j = 0; j < NUM_TASK; j++){
199 pos.data.push_back(fTargetPos[i][j]);
201 poses.push_back(pos);
203 srv.request.pos = poses;
205 for(
int i=0; i<2; i++){
206 srv.request.vel[i] = fTargetVel[i];
207 srv.request.acc[i] = fTargetAcc[i];
209 srv.request.time = fTargetTime;
210 srv.request.radius = fBlendingRadius;
211 srv.request.ref = nMoveReference;
212 srv.request.mode = nMoveMode;
213 srv.request.blendType = nBlendingType;
214 srv.request.syncType = nSyncType;
216 if(srvMoveCircle.call(srv))
219 return (srv.response.success);
223 ROS_ERROR(
"Failed to call service dr_control_service : move_circle\n");
228 int amovec(
float fTargetPos[2][NUM_TASK],
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
float fBlendingRadius = 0.f,
229 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nBlendingType = BLENDING_SPEED_TYPE_DUPLICATE,
int nSyncType = 1)
231 return movec(fTargetPos, fTargetVel, fTargetAcc, fTargetTime, fBlendingRadius, nMoveReference, nMoveMode, nBlendingType, 1);
235 int movesj(
float fTargetPos[MAX_SPLINE_POINT][NUM_JOINT],
int nPosCount,
float fTargetVel,
float fTargetAcc,
float fTargetTime = 0.f,
236 int nMoveMode = MOVE_MODE_ABSOLUTE,
int nSyncType = 0)
240 dsr_msgs::MoveSplineJoint srv;
241 std::vector<std_msgs::Float64MultiArray> poses;
242 std_msgs::Float64MultiArray pos;
244 for(
int i = 0; i < MAX_SPLINE_POINT; i++){
246 for(
int j = 0; j < NUM_JOINT; j++){
247 pos.data.push_back(fTargetPos[i][j]);
249 poses.push_back(pos);
251 srv.request.pos = poses;
252 srv.request.posCnt = nPosCount;
254 srv.request.vel = fTargetVel;
255 srv.request.acc = fTargetAcc;
256 srv.request.time = fTargetTime;
257 srv.request.mode = nMoveMode;
258 srv.request.syncType = nSyncType;
260 if(srvMoveSplineJoint.call(srv))
263 return (srv.response.success);
267 ROS_ERROR(
"Failed to call service dr_control_service : move_spline_joint\n");
272 int amovesj(
float fTargetPos[MAX_SPLINE_POINT][NUM_JOINT],
int nPosCount,
float fTargetVel,
float fTargetAcc,
float fTargetTime = 0.f,
273 int nMoveMode = MOVE_MODE_ABSOLUTE,
int nSyncType = 1)
275 return movesj(fTargetPos, nPosCount, fTargetVel, fTargetAcc, fTargetTime, nMoveMode, 1);
279 int movesx(
float fTargetPos[MAX_SPLINE_POINT][NUM_TASK],
int nPosCount,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
280 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nVelOpt = SPLINE_VELOCITY_OPTION_DEFAULT,
int nSyncType = 0)
284 dsr_msgs::MoveSplineTask srv;
285 std::vector<std_msgs::Float64MultiArray> poses;
286 std_msgs::Float64MultiArray pos;
288 for(
int i = 0; i < MAX_SPLINE_POINT; i++){
290 for(
int j = 0; j < NUM_TASK; j++){
291 pos.data.push_back(fTargetPos[i][j]);
293 poses.push_back(pos);
295 srv.request.pos = poses;
296 srv.request.posCnt = nPosCount;
298 for(
int i=0; i<2; i++){
299 srv.request.vel[i] = fTargetVel[i];
300 srv.request.acc[i] = fTargetAcc[i];
302 srv.request.time = fTargetTime;
303 srv.request.ref = nMoveReference;
304 srv.request.mode = nMoveMode;
305 srv.request.opt = nVelOpt;
306 srv.request.syncType = nSyncType;
308 if(srvMoveSplineTask.call(srv))
311 return (srv.response.success);
315 ROS_ERROR(
"Failed to call service dr_control_service : move_spline_task\n");
320 int amovesx(
float fTargetPos[MAX_SPLINE_POINT][NUM_TASK],
int nPosCount,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
321 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nVelOpt = SPLINE_VELOCITY_OPTION_DEFAULT,
int nSyncType = 1)
323 return movesx(fTargetPos, nPosCount, fTargetVel, fTargetAcc, fTargetTime, nMoveReference, nMoveMode, nVelOpt, 1);
327 int moveb(MOVE_POSB* fTargetPos,
int nPosCount,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
328 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nSyncType = 0)
332 dsr_msgs::MoveBlending srv;
334 std::vector<std_msgs::Float64MultiArray> segments;
335 std_msgs::Float64MultiArray segment;
337 for(
int i=0; i<nPosCount; i++){
338 segment.data.clear();
340 for(
int j=0; j<NUM_TASK; j++)
341 segment.data.push_back( fTargetPos[i]._fTargetPos[0][j]);
342 for(
int j=0; j<NUM_TASK; j++)
343 segment.data.push_back( fTargetPos[i]._fTargetPos[1][j]);
345 segment.data.push_back( fTargetPos[i]._iBlendType );
346 segment.data.push_back( fTargetPos[i]._fBlendRad );
348 segments.push_back(segment);
350 srv.request.segment = segments;
351 srv.request.posCnt = nPosCount;
353 for(
int i=0; i<2; i++){
354 srv.request.vel[i] = fTargetVel[i];
355 srv.request.acc[i] = fTargetAcc[i];
357 srv.request.time = fTargetTime;
358 srv.request.ref = nMoveReference;
359 srv.request.mode = nMoveMode;
360 srv.request.syncType = nSyncType;
362 if(srvMoveBlending.call(srv))
365 return (srv.response.success);
369 ROS_ERROR(
"Failed to call service dr_control_service : move_spline_blending\n");
376 int amoveb(MOVE_POSB* fTargetPos,
int nPosCount,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
377 int nMoveReference = MOVE_REFERENCE_BASE,
int nMoveMode = MOVE_MODE_ABSOLUTE,
int nSyncType = 1)
379 return moveb(fTargetPos, nPosCount, fTargetVel, fTargetAcc, fTargetTime, nMoveReference, nMoveMode, 1);
383 int move_spiral(
float fRevolution,
float fMaxRadius,
float fMaxLength,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
384 int nTaskAxis = TASK_AXIS_Z,
int nMoveReference = MOVE_REFERENCE_TOOL,
int nSyncType = 0)
388 dsr_msgs::MoveSpiral srv;
390 srv.request.revolution = fRevolution;
391 srv.request.maxRadius = fMaxRadius;
392 srv.request.maxLength = fMaxLength;
393 for(
int i=0; i<2; i++){
394 srv.request.vel[i] = fTargetVel[i];
395 srv.request.acc[i] = fTargetAcc[i];
397 srv.request.time = fTargetTime;
398 srv.request.taskAxis = nTaskAxis;
399 srv.request.ref = nMoveReference;
400 srv.request.syncType = nSyncType;
402 if(srvMoveSpiral.call(srv)){
404 return (srv.response.success);
407 ROS_ERROR(
"Failed to call service dr_control_service : move_spiral\n");
412 int amove_spiral(
float fRevolution,
float fMaxRadius,
float fMaxLength,
float fTargetVel[2],
float fTargetAcc[2],
float fTargetTime = 0.f,
413 int nTaskAxis = TASK_AXIS_Z,
int nMoveReference = MOVE_REFERENCE_TOOL,
int nSyncType = 1)
415 return move_spiral(fRevolution, fMaxRadius, fMaxLength, fTargetVel, fTargetAcc, fTargetTime, nTaskAxis, nMoveReference, 1);
419 int move_periodic(
float fAmplitude[NUM_TASK],
float fPeriodic[NUM_TASK],
float fAccelTime = 0.f,
int nRepeat = 1,
int nMoveReference = MOVE_REFERENCE_TOOL,
int nSyncType = 0)
423 dsr_msgs::MovePeriodic srv;
425 for(
int i=0; i<NUM_TASK; i++){
426 srv.request.amp[i] = fAmplitude[i];
427 srv.request.periodic[i] = fPeriodic[i];
429 srv.request.acc = fAccelTime;
430 srv.request.repeat = nRepeat;
431 srv.request.ref = nMoveReference;
432 srv.request.syncType = nSyncType;
434 if(srvMovePeriodic.call(srv))
437 return (srv.response.success);
441 ROS_ERROR(
"Failed to call service dr_control_service : move_periodic\n");
448 int amove_periodic(
float fAmplitude[NUM_TASK],
float fPeriodic[NUM_TASK],
float fAccelTime = 0.f,
int nRepeat = 1,
int nMoveReference = MOVE_REFERENCE_TOOL,
int nSyncType = 1)
450 return move_periodic(fAmplitude, fPeriodic, fAccelTime, nRepeat, nMoveReference, 1);
458 dsr_msgs::MoveWait srv;
460 if(srvMoveWait.call(srv))
463 return (srv.response.success);
467 ROS_ERROR(
"Failed to call service dr_control_service : move_wait\n");
491 ROS_INFO(
"shutdown time! sig=%d",sig);
492 ROS_INFO(
"shutdown time! sig=%d",sig);
493 ROS_INFO(
"shutdown time! sig=%d",sig);
499 dsr_msgs::RobotStop msg;
501 msg.stop_mode = STOP_TYPE_QUICK;
502 pubRobotStop.publish(msg);
507 int main(
int argc,
char** argv)
510 string my_robot_id =
"dsr01";
511 string my_robot_model =
"m1013";
513 ROS_INFO(
"default arguments: dsr01 m1013");
517 ROS_ERROR(
"invalid arguments: <ns> <model> (ex) dsr01 m1013");
520 for (
int i = 1; i < argc; i++){
521 printf(
"argv[%d] = %s\n", i, argv[i]);
523 my_robot_id = argv[1];
524 my_robot_model = argv[2];
553 float velx[2]={250.0, 80.625};
554 float accx[2]={1000.0, 322.5};
556 float j1[6]={0.0, 0.0, 90.0, 0.0, 90.0, 0.0};
557 float sj1[2][6]={{10.00, 0.00, 0.00, 0.00, 10.00, 20.00},{15.00, 0.00, -10.00, 0.00, 10.00, 20.00}};
558 float x1[6]={0.0, 0.0, -100.0, 0.0, 0.0, 0.0};
559 float x2[6]={545,100,514,0,-180,0};
560 float cx1[2][6]={{544.00, 100.00, 500.00, 0.00, -180.00, 0.00},{543.00, 106.00, 479.00, 7.00, -180.00, 7.00}};
561 float sx1[2][6]={{10.00, -10.00, 20.00, 0.00, 10.00, 0.00},{15.00, 10.00, -10.00, 0.00, 10.00, 0.00}};
562 float bx1[2][6]={{564.00, 200.00, 690.00, 0.00, 180.00, 0.00},{0, 0, 0, 0, 0, 0}};
563 float bx2[2][6]={{564.00, 100.00, 590.00, 0.00, 180.00, 0.00},{564.00, 150.00, 590.00, 0.00, 180.00, 0.00}};
565 float amp[6]={10.00, 0.00, 20.00, 0.00, 0.50, 0.00};
566 float period[6]={1.00, 0.00, 1.50, 0.00, 0.00, 0.00};
580 movel(x1, velx, accx, 0, 0, MOVE_REFERENCE_BASE, MOVE_MODE_RELATIVE);
582 movejx(x2, 60, 30, 2, 0, MOVE_REFERENCE_BASE, MOVE_MODE_ABSOLUTE, BLENDING_SPEED_TYPE_DUPLICATE, 2);
584 movec(cx1, velx, accx);
586 movesj(sj1, 2, 60, 30, 0, MOVE_MODE_RELATIVE);
588 movesx(sx1, 2, velx, accx, 0, MOVE_MODE_RELATIVE);
590 for(
int i=0; i<2; i++){
591 for(
int j=0; j<6; j++){
592 posb[0]._fTargetPos[i][j] = bx1[i][j];
593 posb[1]._fTargetPos[i][j] = bx2[i][j];
597 posb[0]._iBlendType = 0;
598 posb[1]._iBlendType = 1;
600 posb[0]._fBlendRad = 40.0;
601 posb[1]._fBlendRad = 20.0;
603 moveb(posb, 2, velx, accx);
605 move_spiral(1.00, 20.00, 20.00, velx, accx, 5, TASK_AXIS_Z, MOVE_REFERENCE_TOOL);
610 amovej(j1, 60, 30, 0, 0, MOVE_MODE_ABSOLUTE, BLENDING_SPEED_TYPE_DUPLICATE);
613 amovel(x1, velx, accx, 0, 0, MOVE_REFERENCE_BASE, MOVE_MODE_RELATIVE, BLENDING_SPEED_TYPE_DUPLICATE);
616 amovejx(x2, 60, 30, 2, MOVE_MODE_ABSOLUTE,MOVE_REFERENCE_BASE, 0, BLENDING_SPEED_TYPE_DUPLICATE, 2);
619 amovec(cx1, velx, accx, 0, 0, MOVE_REFERENCE_BASE, MOVE_MODE_ABSOLUTE, BLENDING_SPEED_TYPE_DUPLICATE);
622 amovesj(sj1, 2, 60, 30, 0, MOVE_MODE_RELATIVE);
625 amovesx(sx1, 2, velx, accx, 0, MOVE_MODE_RELATIVE, MOVE_REFERENCE_BASE, SPLINE_VELOCITY_OPTION_DEFAULT);
628 amoveb(posb, 2, velx, accx, 0, MOVE_MODE_ABSOLUTE, MOVE_REFERENCE_BASE);
631 amove_spiral(1.00, 20.00, 20.00, velx, accx, 5, TASK_AXIS_Z, MOVE_REFERENCE_TOOL);
641 ROS_INFO(
"dsr_service_motion_basic_cpp finished !!!!!!!!!!!!!!!!!!!!!");
int movejx(float fTargetPos[NUM_TASK], float fTargetVel, float fTargetAcc, float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSolSpace=0, int nSyncType=0)
int movesx(float fTargetPos[MAX_SPLINE_POINT][NUM_TASK], int nPosCount, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nVelOpt=SPLINE_VELOCITY_OPTION_DEFAULT, int nSyncType=0)
int amovel(float fTargetPos[NUM_JOINT], float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=1)
void SET_ROBOT(string id, string model)
int amovesj(float fTargetPos[MAX_SPLINE_POINT][NUM_JOINT], int nPosCount, float fTargetVel, float fTargetAcc, float fTargetTime=0.f, int nMoveMode=MOVE_MODE_ABSOLUTE, int nSyncType=1)
int movesj(float fTargetPos[MAX_SPLINE_POINT][NUM_JOINT], int nPosCount, float fTargetVel, float fTargetAcc, float fTargetTime=0.f, int nMoveMode=MOVE_MODE_ABSOLUTE, int nSyncType=0)
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
int amovesx(float fTargetPos[MAX_SPLINE_POINT][NUM_TASK], int nPosCount, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nVelOpt=SPLINE_VELOCITY_OPTION_DEFAULT, int nSyncType=1)
int movec(float fTargetPos[2][NUM_TASK], float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=0)
int moveb(MOVE_POSB *fTargetPos, int nPosCount, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nSyncType=0)
int movel(float fTargetPos[NUM_JOINT], float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=0)
int movej(float fTargetPos[NUM_JOINT], float fTargetVel, float fTargetAcc, float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=0)
int main(int argc, char **argv)
int amovejx(float fTargetPos[NUM_TASK], float fTargetVel, float fTargetAcc, float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSolSpace=0, int nSyncType=1)
int amoveb(MOVE_POSB *fTargetPos, int nPosCount, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nSyncType=1)
int move_spiral(float fRevolution, float fMaxRadius, float fMaxLength, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nTaskAxis=TASK_AXIS_Z, int nMoveReference=MOVE_REFERENCE_TOOL, int nSyncType=0)
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
int move_periodic(float fAmplitude[NUM_TASK], float fPeriodic[NUM_TASK], float fAccelTime=0.f, int nRepeat=1, int nMoveReference=MOVE_REFERENCE_TOOL, int nSyncType=0)
int amove_periodic(float fAmplitude[NUM_TASK], float fPeriodic[NUM_TASK], float fAccelTime=0.f, int nRepeat=1, int nMoveReference=MOVE_REFERENCE_TOOL, int nSyncType=1)
int amove_spiral(float fRevolution, float fMaxRadius, float fMaxLength, float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, int nTaskAxis=TASK_AXIS_Z, int nMoveReference=MOVE_REFERENCE_TOOL, int nSyncType=1)
int amovec(float fTargetPos[2][NUM_TASK], float fTargetVel[2], float fTargetAcc[2], float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveReference=MOVE_REFERENCE_BASE, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=1)
ROSCPP_DECL void shutdown()
int amovej(float fTargetPos[NUM_JOINT], float fTargetVel, float fTargetAcc, float fTargetTime=0.f, float fBlendingRadius=0.f, int nMoveMode=MOVE_MODE_ABSOLUTE, int nBlendingType=BLENDING_SPEED_TYPE_DUPLICATE, int nSyncType=1)