I use InverseKinematicsSolver to control the robot to the target pose and use franka.end_effector.get_local_pose() to get the current end-effector pose after render 20 times.
I expected the current end-effector pose will very close to the target pose that I gave to the controller because there is no obstacle there. However, they have about 1.5-3 cm shift.
One reason I guess make these two poses different is that they use different reference frames.
Is anyone know how to make them use the same reference frames?
Or that is normal when use InverseKinematicsSolver?
The way I create my controller:
self.controller = InverseKinematicsSolver( 'inv_kinematics_controller', robot_prim_path=self.end_effector.prim_path, end_effector_frame_name="panda_rightfinger")
Move robot by the controller:
franka.controller.forward( target_end_effector_position=position, target_end_effector_orientation=quat) franka.apply_action(actuation)
Get current pose
position, quat = franka.end_effector.get_local_pose()