test_articulation_ik
1. Basic Functionality
Utilizes the native IK (Inverse Kinematics) algorithm to move and rotate the robotic arm.
2. Implementation Process
2.1 Initialize the Environment
env = RFUniverseBaseEnv(scene_file="ArticulationIK.json")
Import the scene from a pre-configured
ArticulationIK.jsonfile.
2.2 Invoke the IK Algorithm to Move the Robotic Arm
for id in ids:
current_robot = env.GetAttr(id)
current_robot.IKTargetDoMove(position=[0, 0, -0.5], duration=0.1, relative=True)
env.step()
while not current_robot.data["move_done"]:
env.step()
current_robot.IKTargetDoMove(position=[0, -0.5, 0], duration=0.1, relative=True)
env.step()
while not current_robot.data["move_done"]:
env.step()
current_robot.IKTargetDoMove(position=[0, 0.5, 0.5], duration=0.1, relative=True)
current_robot.IKTargetDoRotateQuaternion(
quaternion=utility.UnityEularToQuaternion([90, 0, 0]),
duration=30,
relative=True,
)
env.step()
while not current_robot.data["move_done"] or not current_robot.data["rotate_done"]:
env.step()
Parameters in
IKTargetDoMove:position: The target position for the movement.duration: The duration from the current position to the target position.relative:trueindicates the movement is relative to the current position,falseindicates an absolute position in world coordinates.
Parameters in
IKTargetDoRotateQuaternion:quaternion: The quaternion representing the rotation.duration: The duration from the current orientation to the target orientation.relative:trueindicates the rotation is relative to the current orientation,falseindicates an absolute orientation in world coordinates.
This tutorial segment demonstrates how to utilize the native IK capabilities of the pyrfuniverse simulation platform for precise control over the movements and rotations of a robotic arm.