Are you writing the movej as script? If so, you need to convert the pose that you are storing into joint positions. That’s what the get_inverse_kin in the top script example is doing. Feed that a pose and you get joint positions out. Movej requires joint positions, not a pose. Otherwise, I’ve never had an issue using a pose stored as an installation variable when using polyscope to define a waypoint using the variable type.
@matthewd92 I think I missed the variable in the Installation Variable screenshot, but they're all the same, and acting the same.
For anyone that is curious, I put together a simple blog post on this today with some sample programs and videos of them running. You can see the blog post at https://blog.hirebotics.com/engineering/universal-robots-programming-to-create-editable-feature-points.
@StoopidEngineer I did test using a script assignment versus the assignment from Polyscope and did not see any issues, tested it with both CB3 and E-Series. One thing to note, when you are writing script assignments on the UR touch pendant, you have to go to the text keyboard to get an actual equals sign, the formula builder screen only has the equality sign, its something I have wished for a long time they would change. I have been burned by this more times than I am willing to admit.
No worries, I know about it and yet.....
Hey All - Hopefully a quick/easy question: I'm attempting to use Installation Variables as Global Positions so they can be used across multiple programs on the robot, and re-taught without having to teach them in every single program. So I'm going to the point with the robot and running a script to write the current pose into the variable, then calling that variable as a 'Variable Position' in the waypoint.
I wrote a simple program (as obnoxious as that is) to ‘teach’ the points: variable = get_actual_tcp_pose()
The problem is, I get the ‘Script function movej cannot find an inverse kinematic solution’ error. When I go into the Script file for the program, I see that all of the ‘normal’ waypoint movej commands look like this:movej(get_inverse_kin(p[-.865714192411, .346413018092, .404586829815, -1.216919131853, -1.127686692460, 1.175113434647], qnear=[-3.391362253819601, -1.8620155493365687, -1.6408041159259241, 3.538212776184082, -1.7426098028766077, 3.1503243446350098]), a=1.3962634015954636, v=1.0471975511965976)
but the Script for the movej trying to use a variable position as the waypoint is simply:
movej(variable, a=1.3962634015954636, v=1.0471975511965976)
And kicks out an error every time.
Has anyone else ever tried to use Installation Variables to store waypoints? Am I doing something stupidly wrong here? I'm desperately trying to avoid having to write the entire thing from scratch in Script as well, because that would make me the only person in a large company who knows anything about the program, which is not a good long term solution.
This is on a CB3 UR-10 with v3.9 of the software.
Thanks all!