concepts.simulator.pybullet.components.panda.panda_robot.PandaRobot#

class PandaRobot[source]#

Bases: Robot

Methods

close_gripper_free([timeout, force])

create_gripper_constraint(object_id[, verbose])

do(action_name, *args, **kwargs)

Execute an action primitive.

fk(qpos[, link_name_or_id])

Forward kinematics.

get_collision_free_problem_space()

get_configuration_space()

get_ee_home_pos()

Get the home position of the end effector.

get_ee_home_quat()

Get the home orientation of the end effector.

get_ee_pose([fk])

Get the pose of the end effector.

get_ee_velocity([fk])

Get the velocity of the end effector.

get_gripper_state()

Get the gripper state.

get_home_qpos()

Get the home joint configuration.

get_jacobian([qpos, link_id])

Get the Jacobian matrix.

get_qpos()

Get the current joint configuration.

get_robot_body_id()

Get the pybullet body ID of the robot.

get_robot_ee_link_id()

Get the pybullet link ID of the robot end effector.

ik(pos, quat[, force, max_distance, ...])

Inverse kinematics.

ik_pybullet(pos, quat[, force, verbose])

Inverse kinematics using pybullet.

ikfast(pos, quat[, last_qpos, max_attempts, ...])

Inverse kinematics using IKFast.

internal_set_gripper_state(activate[, ...])

is_colliding([q, return_contacts])

move_home([timeout])

Move the robot to the home configuration.

move_home_cfree([speed, timeout])

move_pose(pos, quat[, speed, force, verbose])

Move the end effector to the given pose.

move_pose_smooth(pos, quat[, speed, ...])

move_qpos(target_qpos[, speed, timeout, ...])

Move the robot to the given joint configuration.

move_qpos_trajectory(qpos_trajectory[, ...])

Move the robot along the given joint configuration trajectory.

move_qpos_trajectory_v2(qpos_trajectory[, ...])

A customized version of move_qpos_trajectory.

open_gripper_free([timeout, force])

register_action(name, func[, interface])

Register an action primitive.

replay_qpos_trajectory(qpos_trajectory[, ...])

Replay a joint confifguartion trajectory.

reset_home_qpos()

Reset the home joint configuration.

rrt_collision_free(pos1[, pos2, ...])

RRT-based collision-free path planning.

set_ee_pose(pos, quat)

Set the pose of the end effector by inverse kinematics.

set_ik_method(ik_method)

set_next_panda_open(open_target)

set_qpos(qpos)

Set the joint configuration.

set_qpos_with_holding(qpos)

Set the joint configuration with the gripper holding the object.

set_suppress_warnings([value])

suppress_warnings()

Attributes

PANDA_FILE

PANDA_GRIPPER_CLOSE

PANDA_GRIPPER_HOME

PANDA_GRIPPER_OPEN

PANDA_JOINT_HOMES

p

w

world

__init__(client, body_id=None, body_name='panda', gripper_objects=None, use_magic_gripper=True, pos=None, quat=None, ik_fast=False)[source]#
Parameters:
__new__(**kwargs)#
close_gripper_free(timeout=2, force=False)[source]#
Parameters:
Return type:

bool

create_gripper_constraint(object_id, verbose=False)[source]#
Parameters:

verbose (bool) –

do(action_name, *args, **kwargs)#

Execute an action primitive.

Parameters:

action_name (str) – Name of the action primitive.

Returns:

True if the action primitive is successful.

Return type:

bool

fk(qpos, link_name_or_id=None)#

Forward kinematics.

Parameters:
  • qpos (ndarray) – Joint configuration.

  • link_name_or_id (str | int | None) – name or id of the link. If not specified, the pose of the end effector is returned.

Returns:

3D position and 4D quaternion of the end effector.

Return type:

Tuple[np.ndarray, np.ndarray]

get_collision_free_problem_space()[source]#
Return type:

CollisionFreeProblemSpace

get_configuration_space()[source]#
Return type:

BoxConfigurationSpace

get_ee_home_pos()[source]#

Get the home position of the end effector.

get_ee_home_quat()[source]#

Get the home orientation of the end effector.

get_ee_pose(fk=True)#

Get the pose of the end effector.

Parameters:

fk (bool) – whether to run forward kinematics to re-compute the pose.

Returns:

3D position and 4D quaternion of the end effector.

Return type:

Tuple[np.ndarray, np.ndarray]

get_ee_velocity(fk=True)#

Get the velocity of the end effector.

Returns:

3D linear velocity and 3D angular velocity of the end effector.

Return type:

Tuple[np.ndarray, np.ndarray]

Parameters:

fk (bool) –

get_gripper_state()[source]#

Get the gripper state.

Returns:

True if the gripper is activated.

Return type:

Optional[bool]

get_home_qpos()[source]#

Get the home joint configuration.

get_jacobian(qpos=None, link_id=None)#

Get the Jacobian matrix.

Parameters:
  • qpos (ndarray | None) – Joint configuration.

  • link_id (int | None) – id of the link. If not specified, the Jacobian of the end effector is returned.

Returns:

Jacobian matrix. The shape is (6, nr_moveable_joints).

Return type:

np.ndarray

get_qpos()[source]#

Get the current joint configuration.

Returns:

Current joint configuration.

Return type:

np.ndarray

get_robot_body_id()[source]#

Get the pybullet body ID of the robot.

Returns:

Body ID of the robot.

Return type:

int

Get the pybullet link ID of the robot end effector.

Returns:

Link ID of the robot end effector.

Return type:

int

ik(pos, quat, force=False, max_distance=float('inf'), max_attempts=1000, verbose=False)#

Inverse kinematics.

Parameters:
  • pos (ndarray) – 3D position of the end effector.

  • quat (ndarray) – 4D quaternion of the end effector.

  • force (bool) – Whether to force the IK solver to return a solution. Defaults to False. If set, the IK solve may return a solution even if the end effector is not at the given pose. This function is useful for debugging and for moving towards a certain direction.

  • max_distance (float) – Maximum distance between the last qpos and the solution (Only used for IKFast). Defaults to float(‘inf’).

  • max_attempts (int) – Maximum number of attempts (only used for IKFast). Defaults to 1000.

  • verbose (bool) – Whether to print debug information.

Returns:

Joint configuration.

Return type:

np.ndarray

ik_pybullet(pos, quat, force=False, verbose=False)[source]#

Inverse kinematics using pybullet.

Parameters:
  • pos (ndarray) – 3D position of the end effector.

  • quat (ndarray) – 4D quaternion of the end effector.

  • force (bool) – Whether to force the IK solver to return a solution. Defaults to False. If set, the IK solve may return a solution even if the end effector is not at the given pose. This function is useful for debugging and for moving towards a certain direction.

  • verbose (bool) – Whether to print debug information.

Returns:

Joint configuration.

Return type:

np.ndarray

ikfast(pos, quat, last_qpos=None, max_attempts=1000, max_distance=float('inf'), error_on_fail=True, verbose=False)[source]#

Inverse kinematics using IKFast.

Parameters:
  • pos (ndarray) – 3D position of the end effector.

  • quat (ndarray) – 4D quaternion of the end effector.

  • last_qpos (ndarray | None) – Last joint configuration. Defaults to None. If None, the current joint configuration is used.

  • max_attempts (int) – Maximum number of IKFast attempts. Defaults to 1000.

  • max_distance (float) – Maximum distance between the target pose and the end effector. Defaults to float(‘inf’).

  • error_on_fail (bool) – Whether to raise an error if the IKFast solver fails. Defaults to True.

  • verbose (bool) – Whether to print debug information.

Returns:

Joint configuration.

Return type:

np.ndarray

internal_set_gripper_state(activate, constraint_info=None)[source]#
Parameters:
Return type:

None

is_colliding(q=None, return_contacts=False)[source]#
Parameters:
move_home(timeout=10.0)#

Move the robot to the home configuration.

Parameters:

timeout (float) –

Return type:

bool

move_home_cfree(speed=0.01, timeout=10.0)[source]#
Parameters:
move_pose(pos, quat, speed=0.01, force=False, verbose=False)#

Move the end effector to the given pose.

Parameters:
  • pos – 3D position of the end effector.

  • quat – 4D quaternion of the end effector.

  • speed – Speed of the movement. Defaults to 0.01.

  • force (bool) – Whether to force the IK solver to return a solution. Defaults to False. If set, the IK solve may return a solution even if the end effector is not at the specified pose.

  • verbose (bool) – Whether to print debug information.

Returns:

True if the movement is successful.

Return type:

bool

move_pose_smooth(pos, quat, speed=0.01, max_qpos_distance=1.0)[source]#
Parameters:
Return type:

bool

move_qpos(target_qpos, speed=0.01, timeout=10, gains=1, local_smoothing=True)[source]#

Move the robot to the given joint configuration.

Parameters:
  • target_qpos – Target joint configuration.

  • speed – Speed of the movement. Defaults to 0.01.

  • timeout – Timeout of the movement. Defaults to 10.

  • local_smoothing (bool) – Whether to use local smoothing. Defaults to True.

Returns:

True if the movement is successful.

Return type:

bool

move_qpos_trajectory(qpos_trajectory, speed=0.01, timeout=10, first_timeout=None, local_smoothing=True, verbose=False)#

Move the robot along the given joint configuration trajectory.

Parameters:
  • qpos_trajectory (Iterable[ndarray]) – Joint configuration trajectory.

  • speed (float) – Speed of the movement. Defaults to 0.01.

  • timeout (float) – Timeout of the movement. Defaults to 10.

  • first_timeout (float | None) – Timeout of the first movement. Defaults to None (same as timeout).

  • local_smoothing (bool) – Whether to use local smoothing. Defaults to True.

  • verbose (bool) – Whether to print debug information.

Returns:

True if the movement is successful.

Return type:

bool

move_qpos_trajectory_v2(qpos_trajectory, step_size=1, gains=0.3, atol=0.03, timeout=20, verbose=False, return_world_states=False)[source]#

A customized version of move_qpos_trajectory. It allows the user to specify path tracking mechanisms.

Parameters:
  • qpos_trajectory (Iterable[ndarray]) – joint configuration trajectory.

  • timeout (float) – timeout of the movement.

  • step_size (float) –

  • gains (float) –

  • atol (float) –

  • verbose (bool) –

  • return_world_states (bool) –

Returns:

True if the movement is successful.

Return type:

bool

open_gripper_free(timeout=2, force=False)[source]#
Parameters:
Return type:

bool

register_action(name, func, interface=None)#

Register an action primitive.

Parameters:
  • name (str) – Name of the action primitive.

  • func (Callable) – Function that implements the action primitive.

  • interface (str | None) – Interface of the action primitive. Defaults to None. If None, the action primitive is registered for the current interface.

Raises:

ValueError – If the action primitive is already registered.

Return type:

None

replay_qpos_trajectory(qpos_trajectory, verbose=True)#

Replay a joint confifguartion trajectory. This function is useful for debugging a generated joint trajectory.

Parameters:
  • qpos_trajectory (Iterable[ndarray]) – joint configuration trajectory.

  • verbose (bool) – whether to print debug information.

reset_home_qpos()[source]#

Reset the home joint configuration.

rrt_collision_free(pos1, pos2=None, smooth_fine_path=False, disable_renderer=True, **kwargs)[source]#

RRT-based collision-free path planning.

Parameters:
  • pos1 (ndarray) – Start position.

  • pos2 (ndarray | None) – End position. If None, the current position is used.

  • smooth_fine_path (bool) – Whether to smooth the path. Defaults to False.

  • disable_renderer (bool) – Whether to disable the renderer. Defaults to True.

  • kwargs – Additional arguments.

Returns:

True if the path is collision-free. List[np.ndarray]: Joint configuration trajectory.

Return type:

bool

set_ee_pose(pos, quat)#

Set the pose of the end effector by inverse kinematics. Return True if the IK solver succeeds.

Parameters:
  • pos (ndarray) – 3D position of the end effector.

  • quat (ndarray) – 4D quaternion of the end effector.

Returns:

True if the IK solver succeeds.

Return type:

bool

set_ik_method(ik_method)#
Parameters:

ik_method (str | IKMethod) –

set_next_panda_open(open_target)[source]#
Parameters:

open_target (float) –

set_qpos(qpos)[source]#

Set the joint configuration.

Parameters:

qpos (ndarray) – Joint configuration.

Return type:

None

set_qpos_with_holding(qpos)[source]#

Set the joint configuration with the gripper holding the object.

Parameters:

qpos (ndarray) – Joint configuration.

Return type:

None

set_suppress_warnings(value=True)#
Parameters:

value (bool) –

suppress_warnings()#
PANDA_FILE = 'assets://robots/franka_description/robots/panda_arm_hand.urdf'#
PANDA_GRIPPER_CLOSE = 0.0#
PANDA_GRIPPER_HOME = 0.04#
PANDA_GRIPPER_OPEN = 0.04#
PANDA_JOINT_HOMES = array([-0.45105, -0.38886,  0.45533, -2.19163,  0.13169,  1.8172 ,         0.51563])#
property p#
property w#
property world#