| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using System;
- using System.Collections.Generic;
- using TeamAAS.Robot.Enums;
- using TeamAAS.Vision.Calibration.Models;
- namespace TeamAAS.Vision.Calibration.Interfaces
- {
- /// <summary>
- /// 标定信息管理 CRUD + 运行时像素→机器人坐标换算接口。
- /// 实现类封装数据存储细节,并在 Dispose 中释放相关资源。
- /// </summary>
- public interface ICalibrationService : IDisposable
- {
- /// <summary>获取所有已知的校准信息,只读集合(不为 null,可为空)。</summary>
- IReadOnlyCollection<CalibrationInfo> GetAllCalibrations();
- /// <summary>根据标识获取校准信息;不存在返回 null。</summary>
- CalibrationInfo GetCalibration(Guid id);
- /// <summary>新增或更新校准信息,返回保存后的实例。</summary>
- CalibrationInfo AddOrUpdateCalibration(CalibrationInfo calib);
- /// <summary>删除指定标识对应的校准信息;成功返回 true。</summary>
- bool RemoveCalibration(Guid id);
- /// <summary>从持久化存储加载所有校准信息,替换当前内存集合。</summary>
- void LoadAll();
- /// <summary>将当前内存中的所有校准信息保存到持久化存储。</summary>
- void SaveAll();
- /// <summary>
- /// 校准转换:根据像素坐标与机器人当前坐标换算目标位姿。
- /// </summary>
- /// <param name="pixelCoord">像素坐标(X, Y, angle)。</param>
- /// <param name="robotCoord">机器人当前坐标 [X, Y, U]。</param>
- /// <param name="calib">标定配置。</param>
- /// <param name="robotBrand">机器人品牌(影响角度符号等)。</param>
- (bool IsSucceed, double X, double Y, double U) ConvertPixelToPosition(
- (double X, double Y, double angle) pixelCoord,
- double[] robotCoord,
- CalibrationInfo calib,
- RobotBrand robotBrand = RobotBrand.Default);
- /// <summary>校准转换:根据标定 ID 获取配置并换算目标位姿。</summary>
- (bool IsSucceed, double X, double Y, double U) ConvertPixelToPosition(
- (double X, double Y, double angle) pixelCoord,
- double[] robotCoord,
- Guid calibId,
- RobotBrand robotBrand = RobotBrand.Default);
- }
- }
|