curobo.collision_checking module

Robot-scene collision checking module.

This module provides robot-scene collision checking for custom pipelines. Most users should use InverseKinematics or TrajectoryOptimizer which handle collision checking internally.

Use this module when building custom collision-aware pipelines outside the main solvers.

Example

from curobo.collision_checking import RobotCollisionChecker, RobotCollisionCheckerCfg
import torch

# Create collision checker for custom pipeline
config = RobotCollisionCheckerCfg.load_from_config(
    robot_config="franka.yml",
    scene_model="scene.yml",
    collision_activation_distance=0.01,
)
checker = RobotCollisionChecker(config)

# Query collision at joint configurations
joint_positions = torch.rand((10, 1, 7), device="cuda:0")
scene_distance, self_distance = checker.get_scene_self_collision_distance_from_joints(
    joint_positions
)

# Sample collision-free configurations
valid_configs = checker.sample(num_samples=100, mask_valid=True)

# Validate configurations
is_valid = checker.validate(joint_positions)

# Use in custom optimization (differentiable)
joint_positions.requires_grad = True
scene_dist, self_dist = checker.get_scene_self_collision_distance_from_joints(
    joint_positions
)
cost = scene_dist.sum() + self_dist.sum()
cost.backward()  # Gradients flow through
RobotCollisionChecker

alias of curobo._src.collision.collision_robot_scene.RobotSceneCollision

RobotCollisionCheckerCfg

alias of curobo._src.collision.collision_robot_scene_cfg.RobotSceneCollisionCfg