top of page
4.37. New Spline Motion End
/**
* @brief New spline motion end
* @return Error code
*/
errno_t NewSplineEnd();
4.38. New Spline Motion Example
int TestNewSpline(void)
{
ROBOT_STATE_PKG pkg = {};
FRRobot robot;
robot.LoggerInit();
robot.SetLoggerLevel(1);
int rtn = robot.RPC("192.168.58.2");
if (rtn != 0)
{
return -1;
}
robot.SetReConnectParam(true, 30000, 500);
JointPos j1(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
JointPos j2(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
JointPos j3(-61.954, -84.409, 108.153, -116.316, -91.283, 74.260);
JointPos j4(-89.575, -80.276, 102.713, -116.302, -91.284, 74.267);
JointPos j5(-95.228, -54.621, 73.691, -112.245, -91.280, 74.268);
DescPose desc_pos1(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
DescPose desc_pos2(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
DescPose desc_pos3(-327.622, 402.230, 320.402, -178.067, 2.127, -46.207);
DescPose desc_pos4(-104.066, 544.321, 327.023, -177.715, 3.371, -73.818);
DescPose desc_pos5(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
DescPose offset_pos(0, 0, 0, 0, 0, 0);
ExaxisPos epos(0, 0, 0, 0);
int tool = 0;
int user = 0;
float vel = 100.0;
float acc = 100.0;
float ovl = 100.0;
float blendT = -1.0;
uint8_t flag = 0;
robot.SetSpeed(20);
int err1 = robot.MoveJ(&j1, &desc_pos1, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
printf("movej errcode:%d\n", err1);
robot.NewSplineStart(1, 2000);
robot.NewSplinePoint(&j1, &desc_pos1, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&j2, &desc_pos2, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&j3, &desc_pos3, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&j4, &desc_pos4, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&j5, &desc_pos5, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplineEnd();
err1 = robot.MoveJ(&j1, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
printf("movej errcode:%d\n", err1);
robot.NewSplineStart(1, 2000);
robot.NewSplinePoint(&desc_pos1, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&desc_pos2, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&desc_pos3, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&desc_pos4, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplinePoint(&desc_pos5, tool, user, vel, acc, ovl, -1, 0);
robot.NewSplineEnd();
robot.CloseRPC();
return 0;
}
4.39. Stop Motion
/**
* @brief Stop motion
* @return Error code
*/
errno_t StopMotion();
4.40. Pause Motion
/**
* @brief Pause motion
* @return Error code
*/
errno_t PauseMotion();
4.41. Resume Motion
/**
* @brief Resume motion
* @return Error code
*/
errno_t ResumeMotion();
4.42. Motion Pause, Resume, Stop Example
int TestPause(void)
{
ROBOT_STATE_PKG pkg = {};
FRRobot robot;
robot.LoggerInit();
robot.SetLoggerLevel(1);
int rtn = robot.RPC("192.168.58.2");
if (rtn != 0)
{
return -1;
}
robot.SetReConnectParam(true, 30000, 500);
JointPos j1(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
JointPos j5(-95.228, -54.621, 73.691, -112.245, -91.280, 74.268);
DescPose desc_pos1(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
DescPose desc_pos5(-33.421, 732.572, 275.103, -177.907, 2.709, -79.482);
DescPose offset_pos(0, 0, 0, 0, 0, 0);
ExaxisPos epos(0, 0, 0, 0);
int tool = 0;
int user = 0;
float vel = 100.0;
float acc = 100.0;
float ovl = 100.0;
float blendT = -1.0;
uint8_t flag = 0;
robot.SetSpeed(20);
rtn = robot.MoveJ(&j1, &desc_pos1, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
rtn = robot.MoveJ(&j5, &desc_pos5, tool, user, vel, acc, ovl, &epos, 1, flag, &offset_pos);
robot.Sleep(1000);
robot.PauseMotion();
robot.Sleep(1000);
robot.ResumeMotion();
robot.Sleep(1000);
robot.StopMotion();
robot.Sleep(1000);
robot.CloseRPC();
return 0;
}
4.43. Point Global Offset Start
/**
* @brief Point global offset start
* @param [in] flag 0-Offset in base/workpiece coordinate, 2-Offset in tool coordinate
* @param [in] offset_pos Pose offset
* @return Error code
*/
errno_t PointsOffsetEnable(int flag, DescPose *offset_pos);
4.44. Point Global Offset End
/**
* @brief Point global offset end
* @return Error code
*/
errno_t PointsOffsetDisable();
4.45. Point Offset Example
int TestOffset(void)
{
ROBOT_STATE_PKG pkg = {};
FRRobot robot;
robot.LoggerInit();
robot.SetLoggerLevel(1);
int rtn = robot.RPC("192.168.58.2");
if (rtn != 0)
{
return -1;
}
robot.SetReConnectParam(true, 30000, 500);
JointPos j1(-11.904, -99.669, 117.473, -108.616, -91.726, 74.256);
JointPos j2(-45.615, -106.172, 124.296, -107.151, -91.282, 74.255);
DescPose desc_pos1(-419.524, -13.000, 351.569, -178.118, 0.314, 3.833);
DescPose desc_pos2(-321.222, 185.189, 335.520, -179.030, -1.284, -29.869);
DescPose offset_pos(0, 0, 0, 0, 0, 0);
DescPose offset_pos1(0, 0, 50, 0, 0, 0);
ExaxisPos epos(0, 0, 0, 0);
int tool = 0;
int user = 0;
float vel = 100.0;
float acc = 100.0;
float ovl = 100.0;
float blendT = -1.0;
uint8_t flag = 0;
robot.SetSpeed(20);
robot.MoveJ(&j1, &desc_pos1, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
robot.MoveJ(&j2, &desc_pos2, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
robot.Sleep(1000);
robot.PointsOffsetEnable(0, &offset_pos1);
robot.MoveJ(&j1, &desc_pos1, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
robot.MoveJ(&j2, &desc_pos2, tool, user, vel, acc, ovl, &epos, blendT, flag, &offset_pos);
robot.PointsOffsetDisable();
robot.CloseRPC();
return 0;
}bottom of page