curobo.cuda_robot_model.cuda_robot_generator module

class curobo.cuda_robot_model.cuda_robot_generator.CudaRobotGeneratorConfig(base_link, ee_link, tensor_args=TensorDeviceType(device=device(type='cuda', index=0), dtype=torch.float32), link_names=None, collision_link_names=None, collision_spheres=None, collision_sphere_buffer=0.0, compute_jacobian=False, self_collision_buffer=None, self_collision_ignore=None, debug=None, use_global_cumul=True, asset_root_path='', mesh_link_names=None, load_link_names_with_mesh=False, urdf_path=None, usd_path=None, usd_robot_root=None, isaac_usd_path=None, use_usd_kinematics=False, usd_flip_joints=None, usd_flip_joint_limits=None, lock_joints=None, extra_links=None, add_object_link=False, use_external_assets=False, external_asset_path=None, external_robot_configs_path=None, extra_collision_spheres=None, cspace=None, load_meshes=False)

Bases: object

Create Cuda Robot Model Configuration.

Parameters:
  • base_link (str) –

  • ee_link (str) –

  • tensor_args (TensorDeviceType) –

  • link_names (List[str] | None) –

  • collision_link_names (List[str] | None) –

  • collision_spheres (None | str | Dict[str, Any]) –

  • collision_sphere_buffer (float) –

  • compute_jacobian (bool) –

  • self_collision_buffer (Dict[str, float] | None) –

  • self_collision_ignore (Dict[str, List[str]] | None) –

  • debug (Dict[str, Any] | None) –

  • use_global_cumul (bool) –

  • asset_root_path (str) –

  • mesh_link_names (List[str] | None) –

  • load_link_names_with_mesh (bool) –

  • urdf_path (str | None) –

  • usd_path (str | None) –

  • usd_robot_root (str | None) –

  • isaac_usd_path (str | None) –

  • use_usd_kinematics (bool) –

  • usd_flip_joints (List[str] | None) –

  • usd_flip_joint_limits (List[str] | None) –

  • lock_joints (Dict[str, float] | None) –

  • extra_links (Dict[str, LinkParams] | None) –

  • add_object_link (bool) –

  • use_external_assets (bool) –

  • external_asset_path (str | None) –

  • external_robot_configs_path (str | None) –

  • extra_collision_spheres (Dict[str, int] | None) –

  • cspace (None | CSpaceConfig | Dict[str, List[Any]]) –

  • load_meshes (bool) –

Name of base link for kinematic tree.

Name of end-effector link to compute pose.

tensor_args: TensorDeviceType = TensorDeviceType(device=device(type='cuda', index=0), dtype=torch.float32)

Device to load cuda robot model.

Name of link names to compute pose in addition to ee_link.

Name of links to compute sphere positions for use in collision checking.

collision_spheres: None | str | Dict[str, Any] = None

Collision spheres that fill the volume occupied by the links of the robot. Collision spheres can be generated for robot using https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/advanced_tutorials/tutorial_motion_generation_robot_description_editor.html#collision-spheres

collision_sphere_buffer: float = 0.0

Radius buffer to add to collision spheres as padding.

compute_jacobian: bool = False

Compute jacobian of link poses. Currently not supported.

self_collision_buffer: Dict[str, float] | None = None

Padding to add for self collision between links. Some robots use a large padding for self collision avoidance (https://github.com/ros-planning/panda_moveit_config/pull/35#issuecomment-671333863)

self_collision_ignore: Dict[str, List[str]] | None = None

Self-collision ignore

debug: Dict[str, Any] | None = None

debug config

use_global_cumul: bool = True

Enabling this flag writes out the cumulative transformation matrix to global memory. This allows for reusing the cumulative matrix during backward of kinematics (15% speedup over recomputing cumul in backward).

asset_root_path: str = ''

Path of meshes of robot links. Currently not used as we represent robot link geometry with collision spheres.

Names of links to load meshes for visualization. This is only used for exporting visualizations.

Set this to true to add mesh_link_names to link_names when computing kinematics.

urdf_path: str | None = None

Path to load robot urdf.

usd_path: str | None = None

Path to load robot usd.

usd_robot_root: str | None = None

Root prim of robot in usd.

isaac_usd_path: str | None = None

Path of robot in Isaac server.

use_usd_kinematics: bool = False

Load Kinematics chain from usd.

usd_flip_joints: List[str] | None = None

Joints to flip axis when loading from USD

usd_flip_joint_limits: List[str] | None = None

Flip joint limits in USD.

lock_joints: Dict[str, float] | None = None

Lock active joints in the kinematic tree. This will convert the joint to a fixed joint with joint angle given from this dictionary.

this is deprecated

use_external_assets: bool = False
external_asset_path: str | None = None
external_robot_configs_path: str | None = None
extra_collision_spheres: Dict[str, int] | None = None

Create n collision spheres for links with name

cspace: None | CSpaceConfig | Dict[str, List[Any]] = None

cspace config

load_meshes: bool = False

Enable loading meshes from kinematics parser.

class curobo.cuda_robot_model.cuda_robot_generator.CudaRobotGenerator(config)

Bases: CudaRobotGeneratorConfig

Parameters:

config (CudaRobotGeneratorConfig) –

property kinematics_config
property self_collision_config
property kinematics_parser
initialize_tensors()
Parameters:

link_params (LinkParams) –

Parameters:
  • link_name (str) –

  • parent_link_name (str) –

  • joint_name (str | None) –

  • transform (Pose | None) –

_build_chain(base_link, ee_link, other_links, link_names)
_build_kinematics_tensors(base_link, ee_link, link_names, chain_link_names)
_build_kinematics(base_link, ee_link, other_links, link_names)
_build_kinematics_with_lock_joints(base_link, ee_link, other_links, link_names, lock_joints)
Parameters:

lock_joints (Dict[str, float]) –

_build_collision_model(collision_spheres, collision_link_names, collision_sphere_buffer=0.0)
Parameters:
  • collision_spheres (_type_) – _description_

  • collision_link_names (_type_) – _description_

  • collision_sphere_buffer (float, optional) – _description_. Defaults to 0.0.

_create_self_collision_thread_data(collision_threshold)
_add_body_to_tree(link_name, base=False)
Parameters:

joint_names (List[str]) –

Parameters:
Return type:

Pose

property get_joint_limits
_get_joint_position_velocity_limits()
_update_joint_limits()