I just downloaded the ubuntu release, and it shows up as 5.5.3-23011 release date 2022-12-22. Does that mean the linux fix hasn't dropped yet? Any ETA on that?
We've done a bunch of testing and gotten some weird results where we'd swear we got different results on different days. But attached is our most complete test so far and what it's doing today. It creates a station from scratch, but you need to point it at a UR10e.robot file.
It seems like with the latest version, it's not safe to assume some_target.Joints() will be accurate unless we've done some_target.setParam("Recalculate") right before calling Joints().
但是我们在不同的linux ro得到不同的结果bodk versions. Summary:
5.4.3: seems to update automatically in the way that seems most natural, EXCEPT when running the post, where it uses wrong values.
5.5.2 and 5.5.3: program.setParam('RecalculateTargets') seems to be broken
5.5.4: doesn't update like 5.4.3, but target.setParam('Recalculate') and program.setParam('RecalculateTargets') do seem to trigger updates, and the "Recalculate targets before generation" checkbox does seem to cause it to output the right joints in the post.
Moving target's parent reference frame Good: Interesting, joints updated automatically. Version 5.5.4 doesn't do that for me. Good: target joints are correct after target.setParam('Recalculate')
Moving reference frame back to its original pose Good: Interesting, joints updated automatically again. Version 5.5.4 doesn't do that for me. Good: after another recalculate the target is back to its original joints
Moving reference frame back to its original pose Good: Joints updated automatically again.
Moving target's parent reference frame again Good: joints automatically updated Please right click 'program' in the RoboDK GUI and select 'Recalculate targets', then hit enter Good: joints updated
Moving reference frame back to its original pose and recalculating to ensure update
Moving target's parent reference frame again Good: joints automatically updated Good: joints are correct after running the postprocessor Joints in /tmp/program.csv are expected to be very close to: [0.0, -99.40054503189285, -79.77440517824634, -0.8250497898608222, 90.0, -7.016709298534877e-15] Here are the contents. Do they match? Instruction,X (mm),Y (mm),Z (mm),Rx (deg),Ry (deg),Rz (deg),J1 (deg),J2 (deg),J3 (deg),J4 (deg),J5 (deg),J6 (deg) Program Start,program Comment,Program generated by RoboDK v5.4.3 for UR10e on 16/02/2023 19:33:47 Comment,Using nominal kinematics. ,913.150移动关节,687.885,-1174.150,0.000,90.000,-90.000,0.000000,-90.000000,-90.000000,0.000000,90.000000,-0.000000 Program Finish,program
Moving target's parent reference frame Bug: target joints remained the same even though target PoseAbs changed: [787.885, -174.1500000000001, 913.15] Good: target joints are correct after target.setParam('Recalculate')
Moving reference frame back to its original pose target joints didn't update, so setParam('Recalculate') seems to be a command rather than a persistent setting Good: after another recalculate the target is back to its original joints
Moving target's parent reference frame again Bug: once again joints haven't updated, no surprise there. Trying program.setParam('RecalculateTargets') Bug: Joints didn't change even after program.setParam('RecalculateTargets') Traceback (most recent call last): File "./test.py", line 100, in assert False, "Aborting so we don't confuse ourselves" AssertionError: Aborting so we don't confuse ourselves
Moving target's parent reference frame Bug: target joints remained the same even though target PoseAbs changed: [787.885, -174.1500000000001, 913.15] Good: target joints are correct after target.setParam('Recalculate')
Moving reference frame back to its original pose target joints didn't update, so setParam('Recalculate') seems to be a command rather than a persistent setting Good: after another recalculate the target is back to its original joints
Moving target's parent reference frame again Bug: once again joints haven't updated, no surprise there. Trying program.setParam('RecalculateTargets') Good: joints updated
Moving reference frame back to its original pose target joints didn't update, so program.setParam('RecalculateTargets') seems to be a command rather than a persistent setting Recalculating again to update the joints
Moving target's parent reference frame again Bug: once again joints haven't updated, no surprise there. Please right click 'program' in the RoboDK GUI and select 'Recalculate targets', then hit enter Good: joints updated
Moving reference frame back to its original pose and recalculating to ensure update
Moving target's parent reference frame again Bug: once again joints haven't updated, no surprise there. Good: joints are correct after running the postprocessor Joints in /tmp/program.csv are expected to be very close to: [0.0, -99.40054503189285, -79.77440517824634, -0.8250497898608222, 90.0, -7.016709298534877e-15] Here are the contents. Do they match? Instruction,X (mm),Y (mm),Z (mm),Rx (deg),Ry (deg),Rz (deg),J1 (deg),J2 (deg),J3 (deg),J4 (deg),J5 (deg),J6 (deg) Program Start,program Comment,Program generated by RoboDK v5.5.4 for UR10e on 16/02/2023 19:35:42 Comment,Using nominal kinematics. ,913.150移动关节,687.885,-1174.150,0.000,90.000,-90.000,0.000000,-99.400500,-79.774400,-0.825050,90.000000,-0.000000 Program Finish,program
I believe 5.5.4 is the intended behaviour. If you are not using the API, you should simply enable Tools->Options->Program->Recalculate Targets before generation. If you are using the API and your programs has joint movements on targets that are cartesian, you need to call program.setParam('RecalculateTargets') if any of the parent frames has changed.