habitat.articulated_agents.MobileManipulator class

Robot with a controllable base and arm.

Methods

def _update_motor_settings_cache(self)
Updates the JointMotorSettings cache for cheaper future updates
def _validate_arm_ctrl_input(self, ctrl: typing.List[float])
Raises an exception if the control input is NaN or does not match the joint dimensions.
def _validate_ctrl_input(self, ctrl: typing.List[float], joints: typing.List[int])
Raises an exception if the control input is NaN or does not match the joint dimensions.
def calculate_ee_forward_kinematics(self, joint_state: numpy.ndarray, ee_index: int = 0) -> numpy.ndarray
Gets the end-effector position for the given joint state.
def calculate_ee_inverse_kinematics(self, ee_target_position: numpy.ndarray, ee_index: int = 0) -> numpy.ndarray
Gets the joint states necessary to achieve the desired end-effector configuration.
def clip_ee_to_workspace(self, pos: numpy.ndarray, ee_index: int = 0) -> numpy.ndarray
Clips a 3D end-effector position within region the robot can reach.
def close_gripper(self) -> None
Set gripper to the close state
def ee_link_id(self, ee_index: int = 0) -> int
Gets the Habitat Sim link id of the end-effector.
def ee_local_offset(self, ee_index: int = 0) -> _magnum.Vector3
Gets the relative offset of the end-effector center from the end-effector link.
def ee_transform(self, ee_index: int = 0) -> _magnum.Matrix4
Gets the transformation of the end-effector location. This is offset from the end-effector link location.
Get a string listing all robot link and joint names for debugging purposes.
def get_robot_sim_id(self) -> int
Get the unique id for referencing the robot.
def open_gripper(self) -> None
Set gripper to the open state
def reconfigure(self) -> None
Instantiates the robot the scene. Loads the URDF, sets initial state of parameters, joints, motors, etc…
def reset(self) -> None
Reset the joints on the existing robot. NOTE: only arm and gripper joint motors (not gains) are reset by default, derived class should handle any other changes.
def set_fixed_arm_joint_pos(self, fix_arm_joint_pos)
Will fix the arm to a desired position at every internal timestep. Can be used for kinematic arm control.
def set_gripper_target_state(self, gripper_state: float) -> None
Set the gripper motors to a desired symmetric state of the gripper [0,1] -> [open, closed]
def update(self) -> None
Updates the camera transformations and performs necessary checks on joint limits and sleep states.
def update_base(self, rigid_state, target_rigid_state)

Special methods

def __init__(self, params: MobileManipulatorParams, agent_cfg, sim: habitat_sim.simulator.Simulator, limit_robo_joints: bool = True, fixed_base: bool = True, maintain_link_order: bool = False, auto_update_sensor_transform = True, base_type = 'mobile')
Constructor

Properties

arm_joint_limits: typing.Tuple[numpy.ndarray, numpy.ndarray] get
Get the arm joint limits in radians
arm_joint_pos get set
Get the current arm joint positions.
arm_motor_forces: numpy.ndarray get set
Get the current torques on the arm joint motors
arm_motor_pos get set
Get the current target of the arm joints motors.
arm_velocity: numpy.ndarray get
Get the velocity of the arm joints.
base_pos get set
Get the robot base ground position
base_rot: float get set
Returns scalar rotation angle of the agent around the Y axis. Within range (-pi,pi) consistency with setter is tested. Outside that range, an equivalent but distinct rotation angle may be returned (e.g. 2pi == -2pi == 0).
base_transformation get
gripper_joint_pos get set
Get the current gripper joint positions.
is_gripper_closed: bool get
True if all gripper joints are within eps of the closed state.
is_gripper_open: bool get
True if all gripper joints are within eps of the open state.
leg_joint_pos get set
Get the current arm joint positions.
leg_motor_pos get set
Get the current target of the leg joint motors.

Method documentation

def habitat.articulated_agents.MobileManipulator.ee_local_offset(self, ee_index: int = 0) -> _magnum.Vector3

Gets the relative offset of the end-effector center from the end-effector link.

Parameters
ee_index the end effector index for which we want the link id

def habitat.articulated_agents.MobileManipulator.__init__(self, params: MobileManipulatorParams, agent_cfg, sim: habitat_sim.simulator.Simulator, limit_robo_joints: bool = True, fixed_base: bool = True, maintain_link_order: bool = False, auto_update_sensor_transform = True, base_type = 'mobile')

Constructor

Parameters
params The parameter of the manipulator articulated agent.
agent_cfg Config to the agent. Contains urdf_path to URDF file.
sim The simulator.
limit_robo_joints If true, joint limits of agent are always enforced.
fixed_base If the robot’s base is fixed or not.
maintain_link_order Whether to to preserve the order of links parsed from URDF files as link indices. Needed for compatibility with PyBullet.
auto_update_sensor_transform
base_type The base type