init
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# Examples
|
||||
|
||||
This folder contains user-facing example scripts for the Orisys SDK.
|
||||
|
||||
## Files
|
||||
|
||||
- `basic_pipeline.py`: single-sensor basic processing and visualization flow
|
||||
- `two_sensor_pipeline.py`: dual-sensor multiprocessing example
|
||||
- `two_sensor_force_reader.py`: dual-sensor force-only reader for gripper control
|
||||
- `gripper_force_control.py`: closed-loop gripper force control from left/right tactile feedback
|
||||
- `gripper_timed_cycle_control.py`: timed open/close gripper loop with two-sided tactile force adjustment
|
||||
- `plot_data.py`: real-time plotting example with PyQtGraph
|
||||
- `manual_annotator.py`: manual Qt annotation tool for corners, lines, rectangles, and ROI boxes
|
||||
|
||||
## Typical usage
|
||||
|
||||
Run examples from the repository root so relative paths such as `./config/ddjx01.json`
|
||||
resolve correctly.
|
||||
|
||||
### Basic pipeline
|
||||
|
||||
```bash
|
||||
python examples/basic_pipeline.py -v 0 -c ./config/ddjx01.json
|
||||
```
|
||||
|
||||
### Two-sensor pipeline
|
||||
|
||||
```bash
|
||||
python examples/two_sensor_pipeline.py
|
||||
```
|
||||
|
||||
### Two-sensor force reader
|
||||
|
||||
```bash
|
||||
python examples/two_sensor_force_reader.py -v1 0 -v2 1
|
||||
```
|
||||
|
||||
### Gripper force control
|
||||
|
||||
```bash
|
||||
python examples/gripper_force_control.py --port COM3 -v1 0 -v2 1
|
||||
```
|
||||
|
||||
Use `--dry-run` to verify tactile feedback and control decisions without
|
||||
opening the gripper serial port.
|
||||
|
||||
### Timed gripper open/close control
|
||||
|
||||
```bash
|
||||
python examples/gripper_timed_cycle_control.py --port COM3 -v1 0 -v2 1 --open-seconds 3 --close-seconds 5
|
||||
```
|
||||
|
||||
By default, control parameters are loaded from
|
||||
`./gripper_control/config/gripper_timed_cycle_control.py`; CLI options override config values.
|
||||
|
||||
The open/close cycle is time-driven. During the close phase, object detection
|
||||
uses calibrated N thresholds. After detection, the timed open/close loop stops.
|
||||
The gripper holds its current position, resets to a low force, and slowly ramps
|
||||
force. When tangential force is high enough and stable, it enters hold-check.
|
||||
Human handoff release is enabled by default; pass `--disable-human-release` to
|
||||
keep holding even after later tangential-force changes.
|
||||
|
||||
### Real-time plotting
|
||||
|
||||
```bash
|
||||
python examples/plot_data.py -v 0 -c ./config/ddjx01.json
|
||||
```
|
||||
|
||||
### Manual annotation
|
||||
|
||||
```bash
|
||||
python examples/manual_annotator.py -s 0
|
||||
```
|
||||
|
||||
Use `-s` with a camera index, video path, or image path. Coordinates saved in the
|
||||
JSON file are original image pixel coordinates.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python environment with the SDK dependencies installed
|
||||
- a supported camera or test video
|
||||
- valid JSON config in `./config/`
|
||||
|
||||
Some examples also require:
|
||||
|
||||
- `pyqtgraph`
|
||||
- `PyQt5`
|
||||
- multiple cameras for multi-sensor demos
|
||||
|
||||
## Notes
|
||||
|
||||
- Most examples assume a tactile sensor camera is connected.
|
||||
- Press `q` in the display window to quit where applicable.
|
||||
- If your camera index is not `0`, change `-v` accordingly.
|
||||
Reference in New Issue
Block a user