update positions at end of control loop