blenderproc.python.types.URDFUtility module¶
-
class
blenderproc.python.types.URDFUtility.URDFObject(armature, links, xml_tree=None)[source]¶ Bases:
blenderproc.python.types.EntityUtility.Entity-
_set_fk_ik_mode(mode='fk')[source]¶ Sets the mode of the bone chain.
Parameters: mode ( str) – One of “fk” or “ik” for forward / inverse kinematic.
-
_set_ik_bone_constraint(bone)[source]¶ Sets the ik bone constraint.
Parameters: bone ( PoseBone) – Bone to set as ik constraint bone.
-
_set_ik_bone_controller(bone)[source]¶ Sets the ik bone controller.
Parameters: bone ( PoseBone) – Bone to set as ik control bone.
-
_set_ik_bone_offset(offset)[source]¶ Sets the location offset between the control and constraint bone.
Parameters: offset ( Matrix) – The location offset.
-
_set_ik_link(ik_link)[source]¶ Sets the ik link constraint.
Parameters: ik_link ( Optional[Link]) – Link to set as ik link.
-
_set_keyframe(name, frame=0)[source]¶ - Sets a keyframe for a specific name for all bones of all links, as well as the copy_rotation constraint for
- revolute joints.
Parameters:
-
_switch_fk_ik_mode(mode='fk', keep_pose=True)[source]¶ - Switches between forward and inverse kinematics mode. Will do this automatically when switching between e.g.
- set_rotation_euler_fk() and set_rotation_euler_ik().
Parameters:
-
create_ik_bone_controller(link=None, relative_location=[0.0, 0.0, 0.0], use_rotation=True, chain_length=0)[source]¶ Creates an ik bone controller and a corresponding constraint bone for the respective link.
Parameters: - link (
Optional[Link]) – The link to create an ik bone for. If None, will use the last link. - relative_location (
Union[List[float],Vector]) – Relative location of the ik bone controller w.r.t. the bone’s location. This can be used to shift the point of control further away from the end effector. - use_rotation (
bool) – Whether to rotate the child links as well. Defaults to True. - chain_length (
int) – The number of parent links which are influenced by this ik bone. Defaults to 0 for all parents.
- link (
-
get_all_collision_local2world_mats()[source]¶ Returns all transformations from the world frame to the collision objects.
Return type: <built-in function array> Returns: Numpy array of shape (num_bones, 4, 4).
-
get_all_collision_objs()[source]¶ Returns a list of all collision objects.
Return type: List[MeshObject]Returns: List of all collision objects.
-
get_all_inertial_local2world_mats()[source]¶ Returns all transformations from the world frame to the inertial objects.
Return type: <built-in function array> Returns: Numpy array of shape (num_bones, 4, 4).
-
get_all_inertial_objs()[source]¶ Returns a list of all inertial objects.
Return type: List[Inertial]Returns: List of all inertial objects.
-
get_all_local2world_mats()[source]¶ Returns all matrix_world matrices from every joint.
Return type: <built-in function array> Returns: Numpy array of shape (num_bones, 4, 4).
-
get_all_urdf_objs()[source]¶ Returns a list of all urdf-related objects.
Return type: List[Union[Link,Inertial,MeshObject]]Returns: List of all urdf-related objects.
-
get_all_visual_local2world_mats()[source]¶ Returns all transformations from world frame to the visual objects.
Return type: <built-in function array> Returns: Numpy array of shape (num_bones, 4, 4).
-
get_all_visual_objs()[source]¶ Returns a list of all visual objects.
Return type: List[MeshObject]Returns: List of all visual objects.
-
get_links_with_revolute_joints()[source]¶ Returns all revolute joints.
Return type: List[Link]Returns: List of revolute joints.
-
has_reached_ik_pose(location_error=0.01, rotation_error=0.01)[source]¶ Checks whether the urdf object was able to move to the currently set pose.
Parameters: Return type: Returns: True if the link is at the desired ik pose; else False.
-
hide(hide_object=True)[source]¶ Sets the visibility of the object.
Parameters: hide_object ( bool) – Determines whether the object should be hidden in rendering.
-
hide_links_and_collision_inertial_objs()[source]¶ Hides links and their respective collision and inertial objects from rendering.
-
remove_link_by_index(index=0)[source]¶ - Removes a link and all its associated objects given an index. Also handles relationship of the link’s child
- with its parent. This is useful for removing a ‘world link’ which could be a simple flat surface, or if someone wants to shorten the whole urdf object.
Parameters: index ( int) – Index of the joint to be removed.
-
set_ascending_category_ids(category_ids=None)[source]¶ Sets semantic categories to the links and their associated objects.
Parameters: category_ids ( Optional[List[int]]) – List of ‘category_id’s for every link. If None, will create a list from [1 … len(links)].
-
set_location_ik(location, frame=0)[source]¶ Performs location change in inverse kinematics mode.
Parameters:
-
set_rotation_euler_fk(link, rotation_euler, mode='absolute', frame=0)[source]¶ - Rotates one specific link or all links based on euler angles in forward kinematic mode. Validates values
- with given constraints.
Parameters: - link (
Optional[Link]) – The link to be rotated. If None, will perform the rotation on all revolute joints. - rotation_euler (
Union[float,List[float],Euler,ndarray]) – The amount of rotation (in radians). Either three floats for x, y and z axes, or a single float. In the latter case, the axis of rotation is derived based on the rotation constraint. If these are not properly set (i.e., two axes must have equal min/max values) an exception will be thrown. - mode (
str) – One of [“absolute”, “relative”]. For absolute rotations we clip the rotation value based on the constraints. For relative we don’t - this will result in inverse motion after the constraint’s limits have been reached. - frame (
int) – The keyframe where to insert the rotation.
-
set_rotation_euler_ik(rotation_euler, mode='absolute', frame=0)[source]¶ Performs rotation in inverse kinematics mode.
Parameters: - rotation_euler (
Union[float,List[float],Euler,ndarray]) – The amount of rotation (in radians). Either three floats for x, y and z axes, or a single float. In the latter case, the axis of rotation is derived based on the rotation constraint. If these are not properly set (i.e., two axes must have equal min/max values) an exception will be thrown. - mode (
str) – One of [“absolute”, “relative”]. For absolute rotations we clip the rotation value based on the constraints. For relative we don’t - this will result in inverse motion after the constraint’s limits have been reached. - frame (
int) – The keyframe where to insert the rotation.
- rotation_euler (
-