> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# contact-graspnet

> Generate grasps using ContactGraspNet

Generate grasps using ContactGraspNet.

## Parameters

<ParamField body="depth_image" type="Union[str, Image.Image, np.ndarray, None]">
  Depth image (required).
</ParamField>

<ParamField body="camera_intrinsics" type="Union[str, np.ndarray, None]">
  3×3 intrinsics matrix (required).
</ParamField>

<ParamField body="seg_image" type="Union[str, Image.Image, np.ndarray, None]">
  Optional segmentation mask (uint8 H×W).
</ParamField>

<ParamField body="aux_args" type="Dict[str, Any] | None">
  Optional dict. Keys: `top_k` (int, default 64), `z_range` (\[float, float], default \[0.2, 1.8]), `local_regions` (bool, default False), `filter_grasps` (bool, default False; requires `seg_image`), `forward_passes` (int, default 1).
</ParamField>

<ParamField body="timeout" type="float | None">
  Optional HTTP timeout.
</ParamField>

## Returns

Dict with:

* `grasps`: (N, 4, 4) array of grasp poses in camera frame
* `confidence`: (N,) array of confidence scores in \[0, 1]
* `latency_ms`: server-reported latency

## Example

```python theme={null}
from grid_cortex_client import CortexClient, ModelType
import numpy as np
client = CortexClient()
depth = np.load("depth.npy")
K = np.array([[615,0,320],[0,615,240],[0,0,1]], dtype=np.float64)
out = client.run(ModelType.CONTACT_GRASPNET, depth_image=depth, camera_intrinsics=K, aux_args={"top_k": 32})
print(out["grasps"].shape)  # (<=32, 4, 4)
```


## Related topics

- [Sensors](/simulation/isaac/sensors.md)
- [Customizing RL Training](/simulation/isaac/reinforcement-learning/customizing-training.md)
- [Camera Calibration](/deployment/camera-calibration.md)
- [ROS2 Communication](/simulation/isaac/comms.md)
- [MDP Config](/simulation/isaac/session_configuration/mdp.md)
