Hello everyone,
Sunrise Workbench - 1.10.0.8
WorkVisual - 3.0
LBR_iiwa_7_R_800
A bit of background of my program. I have created a Java server that connect to a windows c# based client. With this connection I am able to pose the robot, get current joint positions, and etc.
My current issue is that I am unable to Stream a set of Joint Poses to the robot and have the robot follow a predetermined path. On the c# side, I am recording the joint positions of the robot every 100ms for path recording. After this I pass the Joint positions, about 71 different poses in this case, to the robot I want to create a spline of all these "frames", which are stored in a JointPosition array.
At the moment I am using robot.moveasync with PTP motion to complete this task, however the robot takes way to long to execute the entire path. After speaking to a KUKA rep, they pointed me to use the Spline motion to complete this task. However with the Spline method, I am unable to create a dynamic spline based of the number of joint positions passed through my C# client.
Any Ideas? Below is the section of code:
else if (command.compareToIgnoreCase("jointblastdone") == 0) {
if (this.jointBlastIteration < 50) {
int step = Math.round(this.jointBlastIteration / 5);
for (int i = 0; i < this.jointBlastIteration; i += step) {
this.motionContainer = this.robot.moveAsync(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
int check = i + step;
if (check > this.jointBlastIteration) {
this.motionContainer = this.robot.move(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
return "done";
}
}
} else if (this.jointBlastIteration < 100) {
int step = Math.round(this.jointBlastIteration / 10);
for (int i = 0; i < this.jointBlastIteration; i += step) {
this.motionContainer = this.robot.moveAsync(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
int check = i + step;
if (check > this.jointBlastIteration) {
this.motionContainer = this.robot.move(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
return "done";
}
}
} else if (this.jointBlastIteration < 150) {
int step = Math.round(this.jointBlastIteration / 15);
for (int i = 0; i < this.jointBlastIteration; i += step) {
this.motionContainer = this.robot.moveAsync(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
int check = i + step;
if (check > this.jointBlastIteration) {
this.motionContainer = this.robot.move(ptp(
this.JointPoses[i]).setJointVelocityRel(
joggingVelocity));
return "done";
}
}
}
this.jointBlastCount = 0;
this.JointPoses = null;
this.jointBlastIteration = 0;
return "done";
}
Display More