This repository implements a robotic USB insertion task in a cluttered environment using the Franka Emika Panda robot. The system demonstrates both scripted policies and motion planning approaches for solving the task, with support for different scene configurations and planning parameters.
The system successfully demonstrates USB insertion in different environments. Below are visualizations of the motion planning policy in various scenarios:
| Cluttered Scene | Spheres Scene |
|---|---|
![]() |
![]() |
| Wall Scene | Plain Scene |
![]() |
![]() |
The system simulates a USB insertion task where a robot must:
- Grasp a USB plug
- Navigate through a cluttered environment
- Insert the plug into a USB port
The implementation includes:
- Scripted policy for basic insertion
- Hybrid RRT-Connect* motion planning for complex environments
- Multiple scene configurations with varying levels of difficulty
- Configurable planning parameters
- Clone the repository:
git clone https://github.com/theonlynick0430/usb
cd usb- Create env and install dependencies:
conda create --name usb python=3.10
conda activate usb
pip install -r requirements.txt
pip install "qpsolvers[quadprog]"python scripted_policy.pyThe motion planning policy can be run with different scene configurations and planning parameters using Hydra. The default configuration is in configs/config.yaml.
- Default configuration (cluttered scene):
python motion_plan.py- Specify a different scene:
python motion_plan.py scene=plain # No obstacles
python motion_plan.py scene=wall # Only wall obstacle
python motion_plan.py scene=spheres # Only floating spheres
python motion_plan.py scene=clutter # Wall and spheres (default)- Adjust planning parameters:
python motion_plan.py step_size=0.1 max_iters=2000You can override any of these parameters via command line arguments.
- Nikhil Sridhar



