Converting between Base coordinates and World coordinates

Hello, I’ve done a search of the forum and all related manuals I could find but haven’t had any luck.

I have a program where a robot performs a series of pick/place tasks. Some of the points it moves to are predefinied as poses in Base coordinates, others are programmatically defined by using pose_trans() on the predefined points with various offsets. The robot is mounted on a linear rail that can extend to any arbitrary number of mm.

Let’s say that the robot picks an object at Point A and places it at Point B while the actuator is not extended. After a while, the robot will need to pick again from Point A, but this time place the object at Point C, which is unreachable while the actuator is not extended. So, I extend the actuator, let’s say 100mm, putting the base of the robot at a location where the arm can reach both point A and Point C. How do I tell the robot that its base has moved, by 100mm in World coordinates, so that the next time I tell it to move to Point A to perform the pick it will go to the correct location? Is there a way to do that? Or do I have to do a pose_trans() on every single point in my program to adjust them by the same amount that the actuator extended by?

If you make all of your points relative to a feature (plane/point). You could just make an adjustment to that feature each time you move the actuator and it should adjust the robot movement accordingly.

Just make sure you have something on startup that sets the feature to the correct value ( or homes the actuator) as installation features reset to original values whenever you restart the robot.