Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
<p align="center">
<a href="https://github.com/openrobokit/graspkit"><img src="https://raw.githubusercontent.com/openrobokit/graspkit/main/docs/assets/graspkit-banner.webp" alt="GraspKit" width="100%"></a>
<a href="https://github.com/openrobokit/graspkit"><img src="https://openrobokit.com/assets/docs/graspkit/assets/graspkit-banner.webp" alt="GraspKit" width="100%"></a>
</p>

<p align="center">
<a href="https://github.com/openrobokit/graspkit/blob/main/pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%2B-blue" alt="Python 3.10+"></a>
<a href="https://github.com/openrobokit/graspkit/actions/workflows/build.yaml"><img src="https://img.shields.io/badge/CI-GitHub_Actions-blue" alt="GitHub Actions"></a>
<a href="https://openrobokit.com/graspkit/"><img src="https://img.shields.io/badge/homepage-GraspKit-blue" alt="Homepage"></a>
<a href="https://openrobokit.com/docs/graspkit/overview/"><img src="https://img.shields.io/badge/docs-GraspKit-blue" alt="Docs"></a>
<a href="https://github.com/openrobokit/graspkit/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
</p>

Expand All @@ -13,8 +15,14 @@ and dexterous hands.
It synthesizes grasps, plans trajectories, trains policies, and deploys them
in simulation or on real robots; it is built on top of [RoboKit](https://github.com/openrobokit/robokit).

<p align="center">
<a href="https://openrobokit.com/graspkit/"><img src="https://openrobokit.com/assets/docs/graspkit/assets/showcase/real-world.webp" alt="Robot hands grasping objects during a real-world run" width="100%"></a><br>
<em>Real-world grasping with dexterous robot hands in San Diego.</em>
</p>

## Quick links

- [Homepage](https://openrobokit.com/graspkit/)
- [Docs](https://github.com/openrobokit/graspkit/blob/main/docs/guide/overview.md)
- [Quickstart](https://github.com/openrobokit/graspkit/blob/main/docs/guide/quickstart.md)
- [Installation](https://github.com/openrobokit/graspkit/blob/main/docs/guide/installation.md)
Expand All @@ -35,21 +43,21 @@ See [Installation](https://github.com/openrobokit/graspkit/blob/main/docs/guide/
<table width="100%">
<tr>
<td width="50%">
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/grasp_optim.md"><img src="https://raw.githubusercontent.com/openrobokit/graspkit/main/docs/assets/features/grasp-optimization.webp" alt="1,024 dexterous grasps optimized in one GPU batch" width="100%"></a><br>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/grasp_optim.md"><img src="https://openrobokit.com/assets/docs/graspkit/assets/features/grasp-optimization.webp" alt="1,024 dexterous grasps optimized in one GPU batch" width="100%"></a><br>
<strong><a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/grasp_optim.md">Fast grasp optimization</a></strong>
</td>
<td width="50%">
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/training.md"><img src="https://raw.githubusercontent.com/openrobokit/graspkit/main/docs/assets/features/policy-learning.webp" alt="Object point cloud mapped by a grasp generator to a hand grasp" width="100%"></a><br>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/training.md"><img src="https://openrobokit.com/assets/docs/graspkit/assets/features/policy-learning.webp" alt="Object point cloud mapped by a grasp generator to a hand grasp" width="100%"></a><br>
<strong><a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/training.md">Policy learning</a></strong>
</td>
</tr>
<tr>
<td>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/reference/robot_hands.md"><img src="https://raw.githubusercontent.com/openrobokit/graspkit/main/docs/assets/features/embodiments.webp" alt="Different arms with dexterous hands grasping the same object in simulation" width="100%"></a><br>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/reference/robot_hands.md"><img src="https://openrobokit.com/assets/docs/graspkit/assets/features/embodiments.webp" alt="Different arms with dexterous hands grasping the same object in simulation" width="100%"></a><br>
<strong><a href="https://github.com/openrobokit/graspkit/blob/main/docs/reference/robot_hands.md">All arms, all hands</a></strong>
</td>
<td>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/real_deployment.md"><img src="https://raw.githubusercontent.com/openrobokit/graspkit/main/docs/assets/features/sim-to-real.webp" alt="Two real xArm robots with dexterous hands, diagonally split with their aligned simulation twin" width="100%"></a><br>
<a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/real_deployment.md"><img src="https://openrobokit.com/assets/docs/graspkit/assets/features/sim-to-real.webp" alt="Two real xArm robots with dexterous hands, diagonally split with their aligned simulation twin" width="100%"></a><br>
<strong><a href="https://github.com/openrobokit/graspkit/blob/main/docs/guide/real_deployment.md">Real-world robustness</a></strong>
</td>
</tr>
Expand Down
Binary file removed docs/assets/features/embodiments.webp
Binary file not shown.
Binary file removed docs/assets/features/grasp-optimization.webp
Binary file not shown.
Binary file removed docs/assets/features/policy-learning.webp
Binary file not shown.
Binary file removed docs/assets/features/sim-to-real.webp
Binary file not shown.
Binary file removed docs/assets/gallery/grasp_optim.webp
Binary file not shown.
Binary file removed docs/assets/graspkit-banner.webp
Binary file not shown.
Binary file removed docs/assets/guide/deploy_capture.webp
Binary file not shown.
Binary file removed docs/assets/guide/deploy_pause.webp
Binary file not shown.
Binary file removed docs/assets/guide/deploy_plan.webp
Binary file not shown.
Binary file removed docs/assets/guide/deploy_release.webp
Binary file not shown.
Binary file removed docs/assets/guide/deploy_segment.webp
Binary file not shown.
Binary file removed docs/assets/guide/grasp_filters.png
Binary file not shown.
Binary file removed docs/assets/guide/sharpa_init.webp
Binary file not shown.
Binary file removed docs/assets/guide/sharpa_optim.webp
Binary file not shown.
Binary file removed docs/assets/guide/xarm7_sharpa_optim.webp
Binary file not shown.
10 changes: 5 additions & 5 deletions docs/guide/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,32 +29,32 @@ Click **Capture** to start over whenever it is enabled.

Pick a **Scene**. Click **Capture**. See the camera image on the right.

![Captured simulation RGB alongside the xArm7 and xHand scene](../assets/guide/deploy_capture.webp)
![Captured simulation RGB alongside the xArm7 and xHand scene](https://openrobokit.com/assets/docs/graspkit/assets/guide/deploy_capture.webp)

### 2. Segment

Click **Segment**. Click the object in the large image. Blue = selected. Click **Submit Mask**.

![SAM2 object mask with a positive prompt and the segmentation controls](../assets/guide/deploy_segment.webp)
![SAM2 object mask with a positive prompt and the segmentation controls](https://openrobokit.com/assets/docs/graspkit/assets/guide/deploy_segment.webp)

### 3. Check Grasp/Trajectory

Click **Check Grasp/Trajectory**. **Grasp** picks a candidate. **Trajectory Step** previews its motion.

![A candidate grasp and its planned trajectory beside the segmented red cloud](../assets/guide/deploy_plan.webp)
![A candidate grasp and its planned trajectory beside the segmented red cloud](https://openrobokit.com/assets/docs/graspkit/assets/guide/deploy_plan.webp)

### 4. Deploy

Click **Deploy** to move. **Deploy Until Step** sets where to stop.
Raise it; click **Deploy** to continue.

![Simulation paused partway through execution using Deploy Until Step](../assets/guide/deploy_pause.webp)
![Simulation paused partway through execution using Deploy Until Step](https://openrobokit.com/assets/docs/graspkit/assets/guide/deploy_pause.webp)

### 5. Release

Click **Release**. Hand opens. Arm goes home. `--loop` lets you repeat.

![The completed simulated trajectory, ready to release and park](../assets/guide/deploy_release.webp)
![The completed simulated trajectory, ready to release and park](https://openrobokit.com/assets/docs/graspkit/assets/guide/deploy_release.webp)

### Controls and options

Expand Down
6 changes: 3 additions & 3 deletions docs/guide/grasp_optim.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Grasp Optimization (`grasp_optim`)


| ![A floating Sharpa hand optimizing a grasp on a cube](../assets/guide/sharpa_optim.webp) | ![An xArm7 + Sharpa optimizing arm and hand joints together](../assets/guide/xarm7_sharpa_optim.webp) |
| ![A floating Sharpa hand optimizing a grasp on a cube](https://openrobokit.com/assets/docs/graspkit/assets/guide/sharpa_optim.webp) | ![An xArm7 + Sharpa optimizing arm and hand joints together](https://openrobokit.com/assets/docs/graspkit/assets/guide/xarm7_sharpa_optim.webp) |
| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| A floating hand optimizing a grasp. | An arm and hand optimized together on a fixed base. |

Expand Down Expand Up @@ -67,7 +67,7 @@ The sections below build the same stage step by step in Python.

### Sampling initial poses

![Initial Sharpa hand poses sampled around a mustard bottle](../assets/guide/sharpa_init.webp)
![Initial Sharpa hand poses sampled around a mustard bottle](https://openrobokit.com/assets/docs/graspkit/assets/guide/sharpa_init.webp)

Init samples drawn with the palm-down cone below: red is the hand axis (`palm_forward`), gray is the target
(world -z). Both start at the wrist; the label is their angle, always within the 60 deg cone.
Expand Down Expand Up @@ -118,7 +118,7 @@ grasp_qpos = optimizer.optimize([scene], num_samples_per_scene=8) # (1, 8, 18)
Grasp filters live in `GraspTrajBuilderConfig` and run first inside `GraspTrajBuilder.build()`. They
only mark grasps, they don't drop them. Call `filter_grasps` to run them alone, without motion planning:

![A passing and a failing xHand grasp for each filter: contact-avoid, penetration, hand axis](../assets/guide/grasp_filters.png)
![A passing and a failing xHand grasp for each filter: contact-avoid, penetration, hand axis](https://openrobokit.com/assets/docs/graspkit/assets/guide/grasp_filters.png)

```python
from graspkit.configs.experiment_config import GraspTrajBuilderConfig
Expand Down
11 changes: 8 additions & 3 deletions docs/guide/overview.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
![GraspKit](../assets/graspkit-banner.webp)
![GraspKit](https://openrobokit.com/assets/docs/graspkit/assets/graspkit-banner.webp)

GraspKit is an end-to-end toolkit for manipulation across various robot embodiments, including grippers
and dexterous hands.
It synthesizes grasps, plans trajectories, trains policies, and deploys them
in simulation or on real robots; it is built on top of [RoboKit](https://github.com/openrobokit/robokit).

[![Robot hands grasping objects during a real-world run](https://openrobokit.com/assets/docs/graspkit/assets/showcase/real-world.webp)](https://openrobokit.com/graspkit/)

*Real-world grasping with dexterous robot hands in San Diego.*

## Key features

- **Fast grasp optimization.** GPU optimizers refine thousands of grasp seeds per batch against
Expand All @@ -18,10 +22,10 @@ in simulation or on real robots; it is built on top of [RoboKit](https://github.
- **Real-world validation.** Run trained policies on xArm and Vega robots with calibrated cameras
and collision-checked motions. See [Real deployment](real_deployment.md).

| [![Fast grasp optimization](../assets/features/grasp-optimization.webp)](grasp_optim.md) | [![Policy training](../assets/features/policy-learning.webp)](training.md) |
| [![Fast grasp optimization](https://openrobokit.com/assets/docs/graspkit/assets/features/grasp-optimization.webp)](grasp_optim.md) | [![Policy training](https://openrobokit.com/assets/docs/graspkit/assets/features/policy-learning.webp)](training.md) |
| --- | --- |
| **[Fast grasp optimization](grasp_optim.md)** | **[Performant policy training](training.md)** |
| [![All arms, all hands](../assets/features/embodiments.webp)](../reference/robot_hands.md) | [![Real-world robustness](../assets/features/sim-to-real.webp)](real_deployment.md) |
| [![All arms, all hands](https://openrobokit.com/assets/docs/graspkit/assets/features/embodiments.webp)](../reference/robot_hands.md) | [![Real-world robustness](https://openrobokit.com/assets/docs/graspkit/assets/features/sim-to-real.webp)](real_deployment.md) |
| **[All arms, all hands](../reference/robot_hands.md)** | **[Real-world robustness](real_deployment.md)** |

## How it works
Expand All @@ -42,3 +46,4 @@ For the graph of stages and the artifacts between them, see
- [Quickstart](quickstart.md)
- [Installation](installation.md)
- [GitHub](https://github.com/openrobokit/graspkit)
- [Website](https://openrobokit.com/graspkit/)
2 changes: 2 additions & 0 deletions docs/guide/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ uvx --from graspkit python -m graspkit.gallery.grasp_optim
Pick a hand, arm, and object. Press *Optimize* to generate grasps, then browse them with the
*Grasp* slider. The gallery caches results for the next visit.

![The grasp gallery switching from xHand to a Robotiq gripper](https://openrobokit.com/assets/docs/graspkit/assets/gallery/grasp_optim.webp)

## Optimize one grasp

After [installing](installation.md), run the smallest grasp optimization example:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Grasp Benchmark Results — mesh_vs_low_sdf (graspkit on robokit contact var and solvers; volcan RTX 3090, idle GPU)
# Grasp Benchmark Results — mesh_vs_low_sdf (graspkit on robokit contact var and solvers; RTX 3090, idle GPU)
Date: 2026-09-05 01:29
## xhand_right_dev_mesh_vs_low_sdf (floating task, 8 scenes × 64 samples = 512 grasps)
| Metric | mesh_warp_gd | mesh_warp_lm | low_sdf_warp_gd | low_sdf_warp_lm |
Expand Down
Loading
Loading