添加按设备 ID 选择和校验标定文件
避免多台传感器误用默认标定,缺文件时保持 raw。已通过 SDK 回归测试和文档检查。
This commit is contained in:
@@ -9,7 +9,8 @@ PyPI: [https://pypi.org/project/orisys/](https://pypi.org/project/orisys/)
|
||||
## Repository Layout
|
||||
|
||||
- `src/orisys/`: installable SDK package
|
||||
- `config/`: default and lab/runtime JSON configurations
|
||||
- `sensors/`: product bundles containing the current `sensor.json` configurations and assets
|
||||
- `config/`: legacy JSON configurations retained for compatibility
|
||||
- `examples/`: runnable demos (`basic_pipeline.py`, `mini_pipeline.py`, `finger_pipeline*.py`) plus shared `gui/`, `pipeline/`, `viz/`
|
||||
- `scripts/`: maintenance, calibration, packaging, and demo scripts
|
||||
- `tools/`: non-package tooling such as patch-generation utilities
|
||||
@@ -73,12 +74,13 @@ Run commands from the repository root.
|
||||
|
||||
## Configuration
|
||||
|
||||
The canonical configuration files now live in the repo-level `config/` folder.
|
||||
Product configurations live in `sensors/<name>/sensor.json`. The repo-level `config/`
|
||||
folder remains available for older configurations and aliases.
|
||||
The package loader `orisys.configs` resolves configs from:
|
||||
|
||||
1. an explicit JSON file path
|
||||
2. a config file stem under `config/` (for example `box`, `mini`, `finger`)
|
||||
3. a product alias such as `dd02` -> `dd02-ov`
|
||||
2. `sensors/<name>/sensor.json` (for example `box`, `mini`, `finger`)
|
||||
3. a file stem under the legacy `config/` folder, including aliases such as `dd02` -> `dd02-ov`
|
||||
4. a backward-compatible JSON `"name"` match, such as `"prototype"`
|
||||
|
||||
Examples:
|
||||
@@ -90,6 +92,25 @@ sensor = orisys.Sensor(0, config_name="box")
|
||||
cfg = orisys.export_config("box", "./config/exported_config.json")
|
||||
```
|
||||
|
||||
For multiple physical sensors, keep calibration files in a user-selected directory:
|
||||
`<calibration_dir>/<product>/<device_id>.json` (for example,
|
||||
`./calibrations/box/BOX-001.json`). Each file uses the existing calibration JSON
|
||||
format and must contain matching `identity.sensor_type` and `identity.sn`, Newton
|
||||
curves for FN/FX/FY, and a compatible measurement pipeline. Enter the device ID
|
||||
manually until hardware identification is available:
|
||||
|
||||
```python
|
||||
sensor = orisys.Sensor(0, config_name="box", calibration_dir="./calibrations", device_id="BOX-001")
|
||||
```
|
||||
|
||||
If that ID has no file, the sensor reports raw force; it never falls back to the
|
||||
product's default. An invalid or mismatched file raises `CalibrationError`.
|
||||
`FingerRuntime.open` accepts the same `calibration_dir` and `device_id` arguments.
|
||||
Existing calls without a device ID still use the product bundle default, and
|
||||
explicit `cal_path` remains available for one-off use. `cal_path` and
|
||||
`calibration_dir` cannot be combined. Pass `device_id` with `cal_path` to validate
|
||||
that explicit file against the selected device.
|
||||
|
||||
## Examples and Tools
|
||||
|
||||
- Example entry points: `examples/README.md`
|
||||
|
||||
Reference in New Issue
Block a user