Metadata-Version: 2.1
Name: arcor2_calibration
Version: 1.2.0
Summary: ARCOR2 Calibration
Author: Robo@FIT
Author-email: imaterna@fit.vut.cz
License: LGPL
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Programming Language :: Python :: 3.11
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering
Requires-Python: ==3.11.*
Description-Content-Type: text/markdown

# ARCOR2 Calibration service

### Example configuration

```yaml
id: Arbitrary text
marker_size: 0.1
markers:
  10:
    pose:
      position:
        x: 0
        y: 0
        z: 0
      orientation:
        x: 0
        y: 0
        z: 0
        w: 1
```

## Environment variables

- `ARCOR2_CALIBRATION_URL=http://0.0.0.0:5014` - by default, the service listens on port 5014.
- `ARCOR2_CALIBRATION_DEBUG=1` - switches logger to the `DEBUG` level.
- `ARCOR2_CALIBRATION_MOCK=1` - the service will start in a mock (simulator) mode.
- `ARCOR2_REST_API_DEBUG=1` - turns on Flask debugging (logs each endpoint call).
# Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [1.2.0] - 2024-04-11

### Changed

- Updated dependencies, switched to Python 3.11.

## [1.1.0] - 2024-02-07

### Changed

- Markers used to be from 7x7 dictionary, which is unnecessarily large, now a 4x4 dictionary of size 50 is used (use marker IDs 0..49).

## [1.0.0] - 2023-02-14

### Changed

- Marked as a stable version.
- Health check end-point changed to `/healthz/ready`.

## [0.9.0] - 2022-10-28

### Changed

- Switched to Python 3.10, updated dependencies.

## [0.8.0] - 2022-09-15

### Changed

- **BREAKING**: Implement new error handling flow. Error codes of **every** endpoint were replaced with error 
  types as described in swagger documentation.
- Updated to reflect changes in `cv2.aruco`.


## [0.7.0] - 2021-10-25

### Changed

- New environment variables: 
  - `ARCOR2_CALIBRATION_DEBUG` to turn on debugging.
  - `ARCOR2_CALIBRATION_MOCK` to start in mock mode.

## [0.6.1] - 2021-07-29

### Fixed

- Handle invalid input parameters (camera matrix).
- Scale down images to a common resolution before computing blur score.

## [0.6.0] - 2021-06-11
### Changed

- Improved quality estimation (take orientation into account).
- Reject blurry images.

## [0.5.0] - 2021-05-21
### Changed
- `PUT /calibrate/camera` now returns `EstimatedPose` (pose + quality).

### Fixed
- Command line arguments fixed.
  - It is mandatory to provide `-c` (path to a configuration file) or one of `-s` (prints OpenAPI) or `-m` (start as mock).

## [0.4.0] - 2021-04-26
### Changed
- The service now requires YAML configuration file where placement of markers is specified.
- There might be 1-n markers in an arbitrary pose.
- At least one of the configured markers should be visible.
- Un-configured markers are ignored.  
- Estimated poses of the camera from multiple detected markers are so far simply averaged.
- The average is weighted according to the camera-marker distance.

## [0.3.0] - 2021-03-30
### Changed
- `PUT /calibrate/camera` now has `inverse` parameter. 

## [0.2.0] - 2021-02-08
### Changed
- Part of the code refactored into `arcor2/flask.py`.
- API for getting pixel coordinates of markers corners.
  - Approx. three times faster than camera calibration.

## [0.1.1] - 2020-12-14
### Changed
- Bump version to allow reupload to pypi

## [0.1.0] - 2020-12-14
### Changed
- Initial release of the package.
- Support for camera calibration.
- Support for robot calibration.
  - URDF model of the robot needed.
  - Requires depth camera (e.g. Kinect).
- `--mock` argument to start the service in a simulation mode.
