In order to attach an effector to the end of a robot arm in the middle of the simulation, I have been using the UDK SetRotation and SetLocation functions to set an effector's pose to match an empty actuator at the end of a fanuc arm, and then SetBase to base the effector on the empty actuator so it matches the end of the arm's motion when it updates.
For some reason, the effector does not always rotate with the arm, and sometimes rotates in a different direction that the arm and the empty attached actuator do. The behavior is very inconsistent--sometimes, the effector follows the rotation of the end of the arm no matter which joint is rotated, and sometimes, for the same initial joint values and effector rotation, the effector rotates about the wrong axis or in the wrong direction when certain joints are moved.
The problem seems to be somewhere in the effector's own rotation. Sometimes, using SetRotation to set the effector to have a global roll/pitch/yaw of 0,0,0 does not end up with it pointing along the x-axis as expected--instead it points off at an odd angle (this happens even when all collision on the effector is turned off). Again this is inconsistent even across two trials with the exact same arm and effector rotations--sometimes it breaks, sometimes it doesn't.
Any suggestions?
Found the problem--it turns out this was a problem with the base chain. One of the actors in the chain was rotating independently of its parent even though it shouldn't have been (and did not change position independent of the parent). Resetting the relative rotation of the parts involved whenever the base was changed fixed the problem.