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