Modeling rails in arms

sub discussion for Modeling arm capabilities, but thought I would make a new thread because the discussion there is good and this topic is somewhat tangential

In the case of KX2 and PF400, the arm has its own cartesian space (3D + rotation around z) and then the rails also has its space (1 dimensional). So that means when you move the rail, the end effector location changes but the get_cartesian_position of the arm remains unchanged.

Initially I was thinking the rails + arm should form one space together. Like in PLR join them into a space. This introduces an ambiguity: when you go to position P does that mean arm or rail should move? How much? On the other hand, this can actually be super nice. I have calibrated some positions for our workcell (PF400 on rail) where the rail position is actually different. If we had a universal space, I could fix the rail and have the arm figure out where to move which would reduce movement time.

  • Should we make rail + arm into one space or keep separate spaces?

Also, the locations are currently “just calibrated” wrt arm (actually in joint space bc it’s quick & dirty to get things working…). I want to move this to Cartesian space to make calibration and tweaks and labware etc. easier. It’s essentially like teach points. But this made me think, since I can currently very very quickly calibrate the arm (whether that’s cartesian or joint space, does not really matter), updating things to work in one giant space might also complicate calibration without much immediate gain. The one thing I can think about is if I know the location of like plate carrier spot 0 on a Hamilton, then I can automatically say “move to spot 1” and it will know how to do to that since the coordinate systems are linked. But this seems to be a narrow use case and most machines and even Hamiltons will probably have a hand-off spot. The benefit of linking coordinate spaces is really when you have other things in those spaces that you then don’t have to calibrate anymore.

  • Does it even make sense to model this as one big space, or does it introduce more problems than it solves?
1 Like