I have a target defined in Cartesian space, and a program which makes a Mecademic 500 robot go there via a "MoveJ" joint move. The generated robot program contains these relevant commands:
robot.Run('SetWRF', [0.000, 280.000, 0.000, 0.000, 90.000, -90.000])
robot.Run('MoveJoints', [37.303900, 4.182890, -0.568555, 85.270100, -37.453300, -84.049700])
where MoveJoints sets the six joint angles as stored in the target properties under "Robot joints". When run, the robot moves to the Cartesian target as expected.
Now I move the base of the robot and re-run the program. The simulation in RoboDK updates the joint angles (which now have different values since the base was moved), and the robot again reaches the Cartesian target.
When I again generate a robot program, the values of SetWRF command are changed as expected because the base position of the robot has changed. However the values of the MoveJoints command remain the same values as stored in the target properties under "Robot joints". They do not match the updated joint angles in the RoboDK simulation. Since MoveJoints is a robot pose command independent of SetWRF, the robot will not reach the target, unlike the simulation.
So RoboDK's "MoveJ" command to a Cartesian target seems to be exported as a "MoveJoints" to a pose target instead. The joint angles stored in the target properties under "Robot joints" are maintained, despite the robot should take a different pose to account for its base having moved. What am I missing?
Kind regards,
Maarten
robot.Run('SetWRF', [0.000, 280.000, 0.000, 0.000, 90.000, -90.000])
robot.Run('MoveJoints', [37.303900, 4.182890, -0.568555, 85.270100, -37.453300, -84.049700])
where MoveJoints sets the six joint angles as stored in the target properties under "Robot joints". When run, the robot moves to the Cartesian target as expected.
Now I move the base of the robot and re-run the program. The simulation in RoboDK updates the joint angles (which now have different values since the base was moved), and the robot again reaches the Cartesian target.
When I again generate a robot program, the values of SetWRF command are changed as expected because the base position of the robot has changed. However the values of the MoveJoints command remain the same values as stored in the target properties under "Robot joints". They do not match the updated joint angles in the RoboDK simulation. Since MoveJoints is a robot pose command independent of SetWRF, the robot will not reach the target, unlike the simulation.
So RoboDK's "MoveJ" command to a Cartesian target seems to be exported as a "MoveJoints" to a pose target instead. The joint angles stored in the target properties under "Robot joints" are maintained, despite the robot should take a different pose to account for its base having moved. What am I missing?
Kind regards,
Maarten