habitat.articulated_agent_controllers.HumanoidRearrangeController class

Humanoid Controller, converts high level actions such as walk, or reach into joints positions

param walk_pose_path:
file containing the walking poses we care about.
param motion_fps:
the FPS at which we should be advancing the pose.
base_offset:
what is the offset between the root of the character and their feet.

Methods

def _trilinear_interpolate_pose(self, position, hand_data)
Given a 3D coordinate position, computes humanoid’s joints, rotations and translations to reach that position, doing trilinear interpolation.
def build_ik_vectors(self, hand_motion)
Given a hand_motion Motion file, containing different humanoid poses to reach objects with the hand, builds a matrix fo joint angles, root offset translations and rotations so that they can be easily interpolated when reaching poses.
def calculate_reach_pose(self, obj_pos: _magnum.Vector3, index_hand = 0)
Updates the humanoid position to reach position obj_pos with the hand. index_hand is 0 or 1 corresponding to the left or right hand
def calculate_stop_pose(self)
Calculates a stop, standing pose
def calculate_turn_pose(self, target_position: _magnum.Vector3)
Generate some motion without base transform, just turn
def calculate_walk_pose(self, target_position: _magnum.Vector3, distance_multiplier: float = 1.0)
Computes a walking pose and transform, so that the humanoid moves to the relative position
def calculate_walk_pose_directional(self, target_position: _magnum.Vector3, distance_multiplier = 1.0, target_dir = None)
def get_pose(self)
Obtains the controller joints, offset and base transform in a vectorized form so that it can be passed as an argument to HumanoidJointAction
def reset(self, base_transformation: _magnum.Matrix4) -> None
Reset the joints on the human. (Put in rest state)
def set_framerate_for_linspeed(self, lin_speed, ang_speed, ctrl_freq)
Set the speed of the humanoid according to the simulator speed

Special methods

def __init__(self, walk_pose_path, motion_fps = 30, base_offset = (0, 0.9, 0))

Method documentation

def habitat.articulated_agent_controllers.HumanoidRearrangeController.calculate_walk_pose(self, target_position: _magnum.Vector3, distance_multiplier: float = 1.0)

Computes a walking pose and transform, so that the humanoid moves to the relative position

Parameters
target_position
distance_multiplier allows to create walk motion while not translating, good for turning