|
using | KF21f = KalmanFilter<float, 2U, 1U> |
| 2 × 1 卡尔曼滤波器
|
|
using | KF21d = KalmanFilter<double, 2U, 1U> |
| 2 × 1 卡尔曼滤波器
|
|
using | KF31f = KalmanFilter<float, 3U, 1U> |
| 3 × 1 卡尔曼滤波器
|
|
using | KF31d = KalmanFilter<double, 3U, 1U> |
| 3 × 1 卡尔曼滤波器
|
|
using | KF32f = KalmanFilter<float, 3U, 2U> |
| 3 × 2 卡尔曼滤波器
|
|
using | KF32d = KalmanFilter<double, 3U, 2U> |
| 3 × 2 卡尔曼滤波器
|
|
using | KF42f = KalmanFilter<float, 4U, 2U> |
| 4 × 2 卡尔曼滤波器
|
|
using | KF42d = KalmanFilter<double, 4U, 2U> |
| 4 × 2 卡尔曼滤波器
|
|
using | KF63f = KalmanFilter<float, 6U, 3U> |
| 6 × 3 卡尔曼滤波器
|
|
using | KF63d = KalmanFilter<double, 6U, 3U> |
| 6 × 3 卡尔曼滤波器
|
|
using | KF64f = KalmanFilter<float, 6U, 4U> |
| 6 × 4 卡尔曼滤波器
|
|
using | KF64d = KalmanFilter<double, 6U, 4U> |
| 6 × 4 卡尔曼滤波器
|
|
using | KF73f = KalmanFilter<float, 7U, 3U> |
| 7 × 3 卡尔曼滤波器
|
|
using | KF73d = KalmanFilter<double, 7U, 3U> |
| 7 × 3 卡尔曼滤波器
|
|
using | EKF31f = ExtendedKalmanFilter<float, 3U, 1U> |
| 3 × 1 扩展卡尔曼滤波器
|
|
using | EKF31d = ExtendedKalmanFilter<double, 3U, 1U> |
| 3 × 1 扩展卡尔曼滤波器
|
|
using | EKF32f = ExtendedKalmanFilter<float, 3U, 2U> |
| 3 × 2 扩展卡尔曼滤波器
|
|
using | EKF32d = ExtendedKalmanFilter<double, 3U, 2U> |
| 3 × 2 扩展卡尔曼滤波器
|
|
using | EKF42f = ExtendedKalmanFilter<float, 4U, 2U> |
| 4 × 2 扩展卡尔曼滤波器
|
|
using | EKF42d = ExtendedKalmanFilter<double, 4U, 2U> |
| 4 × 2 扩展卡尔曼滤波器
|
|
using | EKF52f = ExtendedKalmanFilter<float, 5U, 2U> |
| 5 × 2 扩展卡尔曼滤波器
|
|
using | EKF52d = ExtendedKalmanFilter<double, 5U, 2U> |
| 5 × 2 扩展卡尔曼滤波器
|
|
using | EKF53f = ExtendedKalmanFilter<float, 5U, 3U> |
| 5 × 3 扩展卡尔曼滤波器
|
|
using | EKF53d = ExtendedKalmanFilter<double, 5U, 3U> |
| 5 × 3 扩展卡尔曼滤波器
|
|
using | EKF63f = ExtendedKalmanFilter<float, 6U, 3U> |
| 6 × 3 扩展卡尔曼滤波器
|
|
using | EKF63d = ExtendedKalmanFilter<double, 6U, 3U> |
| 6 × 3 扩展卡尔曼滤波器
|
|
using | EKF64f = ExtendedKalmanFilter<float, 6U, 4U> |
| 6 × 4 扩展卡尔曼滤波器
|
|
using | EKF64d = ExtendedKalmanFilter<double, 6U, 4U> |
| 6 × 4 扩展卡尔曼滤波器
|
|
using | EKF73f = ExtendedKalmanFilter<float, 7U, 3U> |
| 7 × 3 扩展卡尔曼滤波器
|
|
using | EKF73d = ExtendedKalmanFilter<double, 7U, 3U> |
| 7 × 3 扩展卡尔曼滤波器
|
|
using | EKF74f = ExtendedKalmanFilter<float, 7U, 4U> |
| 7 × 4 扩展卡尔曼滤波器
|
|
using | EKF74d = ExtendedKalmanFilter<double, 7U, 4U> |
| 7 × 4 扩展卡尔曼滤波器
|
|
using | EKF83f = ExtendedKalmanFilter<float, 8U, 3U> |
| 8 × 3 扩展卡尔曼滤波器
|
|
using | EKF83d = ExtendedKalmanFilter<double, 8U, 3U> |
| 8 × 3 扩展卡尔曼滤波器
|
|
using | EKF84f = ExtendedKalmanFilter<float, 8U, 4U> |
| 8 × 4 扩展卡尔曼滤波器
|
|
using | EKF84d = ExtendedKalmanFilter<double, 8U, 4U> |
| 8 × 4 扩展卡尔曼滤波器
|
|
using | EKF94f = ExtendedKalmanFilter<float, 9U, 4U> |
| 9 × 4 扩展卡尔曼滤波器
|
|
using | EKF94d = ExtendedKalmanFilter<double, 9U, 4U> |
| 9 × 4 扩展卡尔曼滤波器
|
|
using | Ode = std::function<double(double, const std::vector<double> &)> |
| 常微分方程
|
|
using | Odes = std::vector<Ode> |
| 常微分方程组
|
|
using | Func1d = std::function<double(double)> |
| 一元函数
|
|
using | Func1ds = std::vector<Func1d> |
| 一元函数组
|
|
using | FuncNd = std::function<double(const std::vector<double> &)> |
| 多元函数
|
|
using | FuncNds = std::vector<FuncNd> |
| 多元函数组
|
|
using | DataChangeNotificationCallback = std::function<void(ClientView, const Variable &)> |
| 数据变更通知回调函数
|
|
using | EventNotificationCallback = std::function<void(ClientView, const std::vector<Variable> &)> |
|
using | MethodCallback = std::function<std::vector<Variable>(ServerView, const NodeId &, const std::vector<Variable> &)> |
| OPC UA 方法回调函数
|
|
using | ValueCallbackBeforeRead = std::function<void(ServerView, const NodeId &, const Variable &)> |
| 值回调函数,Read 可调用对象定义
|
|
using | ValueCallbackAfterWrite = std::function<void(ServerView, const NodeId &, const Variable &)> |
| 值回调函数,Write 可调用对象定义
|
|
using | DataSourceRead = std::function<Variable(ServerView, const NodeId &)> |
| 数据源回调函数,Read 函数指针定义
|
|
using | DataSourceWrite = std::function<void(ServerView, const NodeId &, const Variable &)> |
| 数据源回调函数,Write 函数指针定义
|
|
using | ServerUserConfig = UA_StatusCode (*)(UA_Server *) |
| 服务器配置函数指针,由 nodeset_compiler 生成
|
|
using | FindNodeInServer = ::std::tuple<UA_Server *, ::std::string_view, uint16_t> |
| 目标节点信息(服务端指针、浏览名、命名空间索引)
|
|
using | FindNodeInClient = ::std::tuple<UA_Client *, ::std::string_view, uint16_t> |
| 目标节点信息(客户端指针、浏览名、命名空间索引)
|
|
|
void | writeCorners (std::ostream &out, const std::vector< std::vector< std::array< float, 2 > > > &corners) |
| 导出角点数据
|
|
void | readCorners (std::istream &in, std::vector< std::vector< std::array< float, 2 > > > &corners) |
| 导入角点数据
|
|
template<typename Tp > |
constexpr Tp | operator+ (Tp val, const cv::Matx< Tp, 1, 1 > &mat) |
|
template<typename Tp > |
constexpr cv::Matx< Tp, 1, 1 > | operator+ (const cv::Matx< Tp, 1, 1 > &mat, Tp val) |
|
template<typename Tp > |
constexpr Tp | operator- (Tp val, const cv::Matx< Tp, 1, 1 > &mat) |
|
template<typename Tp > |
constexpr cv::Matx< Tp, 1, 1 > | operator- (const cv::Matx< Tp, 1, 1 > &mat, Tp val) |
|
template<typename Tp > |
constexpr Tp | deg2rad (Tp deg) |
| 角度转换为弧度
|
|
template<typename Tp > |
constexpr Tp | rad2deg (Tp rad) |
| 弧度转换为角度
|
|
template<typename Tp > |
constexpr cv::Matx< Tp, 3, 1 > | point2matx (cv::Point3_< Tp > point) |
| Point 类型转换为 Matx 类型
|
|
template<typename Tp > |
constexpr cv::Point3_< Tp > | matx2point (cv::Matx< Tp, 3, 1 > matx) |
| Matx 类型转换为 Point 类型
|
|
template<typename Tp > |
constexpr cv::Vec< Tp, 3 > | matx2vec (cv::Matx< Tp, 3, 1 > matx) |
| Matx 类型转换为 Vec 类型
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Point_< Tp1 > &pt_1, const cv::Point_< Tp2 > &pt_2) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 2 > &vec_1, const cv::Vec< Tp2, 2 > &vec_2) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Point3_< Tp1 > &pt_1, const cv::Point3_< Tp2 > &pt_2, CalPlane calplane=CalPlane::xyz) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 3 > &vec_1, const cv::Vec< Tp2, 3 > &vec_2, CalPlane calplane=CalPlane::xyz) |
| 获取距离
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getDistance (const cv::Vec< Tp1, 4 > &line, const cv::Point_< Tp2 > &pt, bool direc=true) |
| 点到直线距离,其中 \(P=(x_0,y_0)\) 到直线 \(l:Ax+By+C=0\) 距离公式为
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getHAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD) |
| 获取与水平方向的夹角,以平面直角坐标系 \(x\) 轴为分界线, 逆时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
|
|
template<typename Tp1 , typename Tp2 > |
constexpr auto | getVAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD) |
| 获取与垂直方向的夹角,以平面直角坐标系 \(y\) 轴为分界线, 顺时针 为正方向,范围: \((-180°,180°]\) ,默认返回弧度制
|
|
template<typename Tp > |
constexpr Tp | getDeltaAngle (Tp angle_1, Tp angle_2) |
| 求两个角之间的夹角
|
|
template<typename Tp > |
constexpr Tp | sec (Tp x) |
| 正割 \(\sec(x)\)
|
|
template<typename Tp > |
constexpr Tp | csc (Tp x) |
| 余割 \(\csc(x)\)
|
|
template<typename Tp > |
constexpr Tp | cot (Tp x) |
| 余切 \(\cot(x)\)
|
|
template<typename Tp > |
constexpr Tp | sgn (Tp x) |
| 符号函数
|
|
template<typename Tp > |
constexpr Tp | sigmoid (Tp x, Tp k=1, Tp Kp=1, Tp mu=0) |
| 计算 sigmoid(x) 在某一点的函数值
|
|
template<typename Tp > |
constexpr Tp | cross2D (const cv::Vec< Tp, 2 > &a, const cv::Vec< Tp, 2 > &b) |
| 平面向量外积
|
|
template<typename Tp > |
constexpr Tp | cross2D (const cv::Point_< Tp > &a, const cv::Point_< Tp > &b) |
| 平面向量外积
|
|
template<typename ForwardIterator > |
ForwardIterator::value_type | calculateModeNum (ForwardIterator first, ForwardIterator last) |
| 在指定范围内寻找众数,时间复杂度 O(N)
|
|
template<typename T > |
std::vector< T > | operator+ (const std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量加法
|
|
template<typename T > |
std::vector< T > | operator- (const std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量减法
|
|
template<typename T > |
std::vector< T > & | operator+= (std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量自加
|
|
template<typename T > |
std::vector< T > & | operator-= (std::vector< T > &vec1, const std::vector< T > &vec2) |
| 使用 std::vector 表示的向量自减
|
|
template<typename T > |
std::vector< T > | operator- (const std::vector< T > &vec) |
| 使用 std::vector 表示的向量取反
|
|
template<typename T > |
std::vector< T > | operator* (const std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > | operator* (T val, const std::vector< T > &vec) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > & | operator*= (std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量乘法(数乘)
|
|
template<typename T > |
std::vector< T > | operator/ (const std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量除法(数乘)
|
|
template<typename T > |
std::vector< T > & | operator/= (std::vector< T > &vec, T val) |
| 使用 std::vector 表示的向量除法(数乘)
|
|
double | derivative (Func1d func, double x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算一元函数的导数
|
|
std::vector< double > | grad (FuncNd func, const std::vector< double > &x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算多元函数的梯度
|
|
std::pair< double, double > | region (Func1d func, double x0, double delta=1) |
| 采用进退法确定搜索区间
|
|
std::pair< double, double > | fminbnd (Func1d func, double x1, double x2, const OptimalOptions &options={}) |
| 一维函数最小值搜索
|
|
std::pair< std::vector< double >, double > | fminunc (FuncNd func, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束多维函数的最小值搜索 [4] [8] ,可参考 多维无约束最优化方法
|
|
std::pair< std::vector< double >, double > | fmincon (FuncNd func, const std::vector< double > &x0, const FuncNds &c, const FuncNds &ceq, const OptimalOptions &options={}) |
| 有约束多维函数的最小值搜索
|
|
std::vector< double > | lsqnonlin (const FuncNds &funcs, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束非线性最小二乘求解
|
|
cv::Mat | binary (cv::Mat src, PixChannel ch1, PixChannel ch2, uint8_t threshold) |
| 通道相减二值化
|
|
cv::Mat | binary (cv::Mat src, uint8_t threshold) |
| 亮度阈值二值化
|
|
cv::Point2f | calculateRelativeAngle (const cv::Matx33f &cameraMatrix, cv::Point2f center) |
| 计算相机中心与目标中心之间的相对角度
|
|
cv::Point2f | calculateRelativeCenter (const cv::Matx33f &cameraMatrix, cv::Point2f angle) |
| 计算目标中心在像素坐标系下的坐标
|
|
cv::Vec2f | cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Vec3f ¢er3d) |
| 计算 3D 目标点在像素坐标系下的坐标
|
|
cv::Point2f | cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Point3f ¢er3d) |
| 计算 3D 目标点在像素坐标系下的坐标
|
|
template<typename Tp > |
cv::Matx< Tp, 3, 3 > | euler2Mat (Tp val, EulerAxis axis) |
| 欧拉角转换为旋转矩阵
|
|
std::string | format (const char *fmt,...) |
| 返回使用类 printf 表达式格式化的文本字符串。
|
|
void | breakOnError () |
| 触发非法内存操作
|
|
void | throwError (const Exception &exc) |
| 抛出异常
|
|
void | error (int _code, std::string_view _err, const char *_func, const char *_file, int _line) |
| 发出错误信号并引发异常
|
|
const char * | getBuildInformation () |
| 返回完整的配置输出
|
|
const char * | getVersionString () |
| 返回库版本字符串
|
|
int | getVersionMajor () |
| 返回主要库版本
|
|
int | getVersionMinor () |
| 返回次要库版本
|
|
int | getVersionPatch () |
| 返回库版本的修订字段
|
|
constexpr NodeId | nodeBoolean (0, UA_NS0ID_BOOLEAN) |
| 数据类型节点:Boolean 节点 ID
|
|
constexpr NodeId | nodeSbyte (0, UA_NS0ID_SBYTE) |
| 数据类型节点:Sbyte 节点 ID
|
|
constexpr NodeId | nodeByte (0, UA_NS0ID_BYTE) |
| 数据类型节点:Byte 节点 ID
|
|
constexpr NodeId | nodeInt16 (0, UA_NS0ID_INT16) |
| 数据类型节点:Int16 节点 ID
|
|
constexpr NodeId | nodeUint16 (0, UA_NS0ID_UINT16) |
| 数据类型节点:Uint16 节点 ID
|
|
constexpr NodeId | nodeInt32 (0, UA_NS0ID_INT32) |
| 数据类型节点:Int32 节点 ID
|
|
constexpr NodeId | nodeUint32 (0, UA_NS0ID_UINT32) |
| 数据类型节点:Uint32 节点 ID
|
|
constexpr NodeId | nodeInt64 (0, UA_NS0ID_INT64) |
| 数据类型节点:Int64 节点 ID
|
|
constexpr NodeId | nodeUint64 (0, UA_NS0ID_UINT64) |
| 数据类型节点:Uint64 节点 ID
|
|
constexpr NodeId | nodeFloat (0, UA_NS0ID_FLOAT) |
| 数据类型节点:Float 节点 ID
|
|
constexpr NodeId | nodeDouble (0, UA_NS0ID_DOUBLE) |
| 数据类型节点:Double 节点 ID
|
|
constexpr NodeId | nodeString (0, UA_NS0ID_STRING) |
| 数据类型节点:String 节点 ID
|
|
constexpr NodeId | nodeDatetime (0, UA_NS0ID_DATETIME) |
| 数据类型节点:Datetime 节点 ID
|
|
constexpr NodeId | nodeObjectsFolder (0, UA_NS0ID_OBJECTSFOLDER) |
| 对象节点:ObjectsFolder 节点 ID
|
|
constexpr NodeId | nodeTypesFolder (0, UA_NS0ID_TYPESFOLDER) |
| 对象节点:TypesFolder 节点 ID
|
|
constexpr NodeId | nodeViewsFolder (0, UA_NS0ID_VIEWSFOLDER) |
| 对象节点:ViewsFolder 节点 ID
|
|
constexpr NodeId | nodeObjectTypesFolder (0, UA_NS0ID_OBJECTTYPESFOLDER) |
| 对象节点:ObjectTypesFolder 节点 ID
|
|
constexpr NodeId | nodeVariableTypesFolder (0, UA_NS0ID_VARIABLETYPESFOLDER) |
| 对象节点:VariableTypesFolder 节点 ID
|
|
constexpr NodeId | nodeServer (0, UA_NS0ID_SERVER) |
| 对象节点:Server 节点 ID
|
|
constexpr NodeId | nodeFolderType (0, UA_NS0ID_FOLDERTYPE) |
| 对象类型节点:FolderType 节点 ID
|
|
constexpr NodeId | nodeBaseObjectType (0, UA_NS0ID_BASEOBJECTTYPE) |
| 对象类型节点:BaseObjectType 节点 ID
|
|
constexpr NodeId | nodeBaseEventType (0, UA_NS0ID_BASEEVENTTYPE) |
| 对象类型节点:BaseEventType 节点 ID
|
|
constexpr NodeId | nodeBaseDataVariableType (0, UA_NS0ID_BASEDATAVARIABLETYPE) |
| 变量类型节点:BaseDataVariableType 节点 ID
|
|
constexpr NodeId | nodePropertyType (0, UA_NS0ID_PROPERTYTYPE) |
| 变量类型节点:PropertyType 节点 ID
|
|
constexpr NodeId | nodeOrganizes (0, UA_NS0ID_ORGANIZES) |
| 引用类型节点:Organizes 节点 ID
|
|
constexpr NodeId | nodeHasTypeDefinition (0, UA_NS0ID_HASTYPEDEFINITION) |
| 引用类型节点:HasTypeDefinition 节点 ID
|
|
constexpr NodeId | nodeHasComponent (0, UA_NS0ID_HASCOMPONENT) |
| 引用类型节点:HasComponent 节点 ID
|
|
constexpr NodeId | nodeHasProperty (0, UA_NS0ID_HASPROPERTY) |
| 引用类型节点:HasProperty 节点 ID
|
|
constexpr NodeId | nodeHasSubtype (0, UA_NS0ID_HASSUBTYPE) |
| 引用类型节点:HasSubtype 节点 ID
|
|
constexpr NodeId | nodeHasModellingRule (0, UA_NS0ID_HASMODELLINGRULE) |
| 引用类型节点:HasModellingRule 节点 ID
|
|
NodeId | operator| (NodeId origin, rm::FindNodeInServer &&fnis) |
| 服务端路径搜索
|
|
NodeId | operator| (NodeId origin, rm::FindNodeInClient &&fnic) |
| 客户端路径搜索
|
|
bool | operator== (const RMStatus &lhs, const RMStatus &rhs) |
| 判断两个 RMStatus 是否相等
|
|