| RMVL 1.5.2 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
命名空间 | 类 | 类型定义 | 枚举 | 函数 | 变量
rm 命名空间参考

## 命名空间
namespace | helper
namespace | numeric_literals
namespace | para
namespace | reflect

## 类
struct | Argument
| OPC UA 方法参数信息 更多...
class | Armor
| 装甲模块组合特征 更多...
class | ArmorDetector
| 装甲板识别模块 更多...
class | ArmorPredictor
| 装甲预测模块 更多...
struct | CameraConfig
| 相机初始化配置模式 更多...
class | CameraExtrinsics
| 相机外参 更多...
class | ClassificationNet
| 分类网络推理类 更多...
class | Client
| OPC UA 客户端 更多...
class | ClientView
| OPC UA 客户端视图 更多...
class | combo
| 特征组合体 更多...
struct | CompensateInfo
| 补偿模块信息 更多...
class | compensator
| 弹道下坠补偿模块 更多...
class | CurveFitter
| 曲线拟合器 更多...
class | DataType
| OPC UA 数据类型 更多...
struct | DecideInfo
| 决策模块信息 更多...
class | decider
| 目标决策模块 更多...
class | DefaultCombo
| 默认组合体，包含一个固定的特征，退化为 `feature` 使用 更多...
class | DefaultFeature
| 默认图像特征，仅表示一个孤立的点 `cv::Point2f` 更多...
class | DefaultGroup
| 默认序列组（一般退化为 `trackers` 使用） 更多...
class | DefaultTracker
| 默认追踪器，时间序列仅用于存储组合体，可退化为 `combos` 使用 更多...
struct | DetectInfo
| 识别信息结构体 更多...
class | detector
| 识别检测模块 更多...
class | Event
| OPC UA 事件 更多...
class | EventType
| OPC UA 事件类型 更多...
class | EwTopsis
| 熵权 TOPSIS 算法 更多...
class | Exception
| 该类封装了有关程序中发生的错误的所有或几乎所有必要信息。异常通常是通过 RMVL_Error 和 RMVL_Error_ 宏隐式构造和抛出的 更多...
class | ExtendedKalmanFilter
| 扩展卡尔曼滤波器 更多...
class | feature
| 图像中的轮廓特征 更多...
struct | FieldMetaData
| 数据集字段元数据 更多...
class | GravityCompensator
| 使用重力模型的补偿模块 更多...
class | group
| 相关追踪器的空间集合（序列组） 更多...
class | GyroCompensator
| 整车状态补偿模块 更多...
class | GyroDecider
| 整车状态决策类 更多...
class | GyroDetector
| 整车状态识别模块 更多...
class | GyroGroup
| 整车状态序列组 更多...
class | GyroPredictor
| 整车状态预测模块 更多...
class | GyroTracker
| 整车状态追踪器 更多...
struct | hash_aggregate
| 专为聚合类添加的 hash 生成可调用对象 更多...
struct | hash_traits
| 哈希生成函数类型 traits 更多...
struct | hash_traits< Tp, std::enable_if_t< std::is_aggregate_v< Tp > > >
| 聚合类哈希生成函数类型 traits 更多...
struct | hash_traits< Tp, std::enable_if_t<!std::is_aggregate_v< Tp > > >
| 非聚合类哈希生成函数类型 traits 更多...
class | HikCamera
| 海康机器人相机库 更多...
struct | ImuData
| IMU 数据 更多...
class | Interpolator
| 函数插值器 更多...
class | KalmanFilter
| 卡尔曼滤波器 更多...
class | KalmanFilterStaticDatas
| 卡尔曼滤波静态数据 更多...
class | LightBlob
| 装甲板灯条 更多...
struct | LightIpConfig
| OPT 光源控制器 IP 配置信息 更多...
class | Method
| OPC UA 方法 更多...
class | MvCamera
| 迈德威视相机库 更多...
struct | NodeId
| OPC UA 节点 ID 更多...
class | NonlinearSolver
| 非线性方程求解器 更多...
class | Object
| OPC UA 对象 更多...
class | ObjectType
| OPC UA 对象类型 更多...
class | OnnxNet
| ONNX-Runtime (Ort) 部署库基类 [7] 更多...
class | OptCamera
| 奥普特机器视觉相机库 更多...
struct | OptimalOptions
| 无约束多维函数优化选项 更多...
class | OPTLightController
| OPT 奥普特光源控制器 更多...
class | Pilot
| 前哨、基地的引导灯 更多...
class | PlanarTracker
| 平面目标追踪器 更多...
class | Polynomial
| N 次多项式 更多...
struct | PostprocessOptions
| 后处理选项 更多...
struct | PredictInfo
| 预测模块信息 更多...
class | predictor
| 目标预测模块 更多...
struct | PreprocessOptions
| 预处理选项 更多...
struct | PublishedDataSet
| 待发布的数据集 (PDS) 更多...
class | Publisher
| OPC UA 发布者 更多...
class | Publisher< TransportID::UDP_UADP >
| 使用 `UDP` 协议以及 `UADP` 序列化方式的 Publisher 特化 更多...
class | RaHeap
| 支持随机访问的堆（与 `std::priority_queue` 具备相同的基础容器筛选条件） 更多...
struct | RMStatus
| 状态类型 更多...
class | Rune
| 神符（能量机关） 更多...
class | RuneCenter
| 神符中心特征 更多...
class | RuneDecider
| 神符决策模块 更多...
class | RuneDetector
| 能量机关识别模块（包含已激活、未激活） 更多...
class | RuneGroup
| 神符序列组 更多...
class | RunePredictor
| 神符预测模块 更多...
class | RuneTarget
| 神符靶心特征 更多...
class | RuneTracker
| 神符时间序列 更多...
class | RungeKutta
| Butcher 表形式的常微分方程（组）数值求解器 更多...
class | RungeKutta2
| 2 阶 2 级 Runge-Kutta 求解器 更多...
class | RungeKutta3
| 3 阶 3 级 Runge-Kutta 求解器 更多...
class | RungeKutta4
| 4 阶 4 级 Runge-Kutta 求解器 更多...
class | SerialPort
| 串行接口通信库 更多...
class | Server
| OPC UA 服务器 更多...
class | ServerView
| OPC UA 服务器视图 更多...
class | SpiRunePredictor
| 系统参数辨识神符预测类 更多...
class | Subscriber
| OPC UA 订阅者 更多...
class | Subscriber< TransportID::UDP_UADP >
| 使用 `UDP` 协议以及 `UADP` 序列化方式的订阅者特化 更多...
class | Tag
| AprilTag 视觉标签特征类 更多...
class | TagDetector
| AprilTag 识别器 更多...
class | Timer
| 定时器 更多...
class | tracker
| 组合体时间序列 更多...
class | TrackerState
| 序列组中的追踪器状态 更多...
class | TranslationDecider
| 平移目标决策类 更多...
class | UnionFind
| 并查集 更多...
struct | UserConfig
| 用户信息 更多...
class | Variable
| OPC UA 变量 更多...
class | VariableType
| OPC UA 变量类型 更多...
class | View
| OPC UA 视图 更多...

## 类型定义
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>
| 目标节点信息（客户端指针、浏览名、命名空间索引）

## 枚举
enum class | TriggerChannel : uint8_t { TriggerChannel::Chn0 , TriggerChannel::Chn1 , TriggerChannel::Chn2 , TriggerChannel::Chn3 }
| 相机外部触发通道 更多...
enum class | GrabMode : uint8_t { GrabMode::Continuous , GrabMode::Software , GrabMode::Hardware , GrabMode::RotaryEnc }
| 相机采集模式 更多...
enum class | HandleMode : uint8_t { HandleMode::Index , HandleMode::Key , HandleMode::ID , HandleMode::IP }
| 相机句柄创建方式 更多...
enum class | RetrieveMode : uint8_t { RetrieveMode::OpenCV , RetrieveMode::SDK }
| 相机数据处理模式 更多...
enum | CameraProperties : uint16_t { CAMERA_AUTO_EXPOSURE = 0x1 , CAMERA_MANUAL_EXPOSURE = 0x2 , CAMERA_ONCE_EXPOSURE = 0x3 , CAMERA_AUTO_WB = 0x10 , CAMERA_MANUAL_WB = 0x11 , CAMERA_ONCE_WB = 0x12 , CAMERA_EXPOSURE = 0x20 , CAMERA_GAIN = 0x21 , CAMERA_GAMMA = 0x22 , CAMERA_WB_RGAIN = 0x23 , CAMERA_WB_GGAIN = 0x24 , CAMERA_WB_BGAIN = 0x25 , CAMERA_CONTRAST = 0x26 , CAMERA_SATURATION = 0x27 , CAMERA_SHARPNESS = 0x28 , CAMERA_FRAME_HEIGHT = 0x30 , CAMERA_FRAME_WIDTH = 0x31 , CAMERA_TRIGGER_DELAY = 0x40 , CAMERA_TRIGGER_COUNT = 0x41 , CAMERA_TRIGGER_PERIOD = 0x42 , CAMERA_TRIGGER_SOFT = 0x43 }
| 相机运行时属性 更多...
enum | AngleMode : bool { RAD = true , DEG = false }
| 角度制式 更多...
enum class | CalPlane : uint8_t { CalPlane::xyz = 0 , CalPlane::xOy = 1 , CalPlane::xOz = 2 , CalPlane::yOz = 3 }
| 计算所在平面 更多...
enum class | DiffMode : uint8_t { DiffMode::Central , DiffMode::Ridders }
| 梯度/导数计算模式 更多...
enum class | FminMode : uint8_t { FminMode::ConjGrad , FminMode::Simplex }
| 多维函数最优化模式 更多...
enum | PixChannel : uint8_t { BLUE , GREEN , RED , AUTO }
| 像素通道枚举 更多...
enum | EulerAxis : int { X = 0 , Y = 1 , Z = 2 }
| 欧拉角转轴枚举 更多...
enum class | OrtProvider : uint8_t { OrtProvider::CPU , OrtProvider::CUDA , OrtProvider::TensorRT , OrtProvider::OpenVINO }
| Ort 提供者 更多...
enum class | TransportID : uint8_t { TransportID::UDP_UADP = 1U , TransportID::MQTT_UADP = 2U , TransportID::MQTT_JSON = 3U }
| 传输协议 更多...
enum | AccessLevel : uint8_t { VARIABLE_READ = 1U , VARIABLE_WRITE = 2U }
enum class | RotStatus : uint8_t { LOW_ROT_SPEED , HIGH_ROT_SPEED }
| 旋转状态类型 更多...
enum | : std::size_t { POS_X = 0 , POS_Y = 1 , POS_Z = 2 , ANG_X = 3 , ANG_Y = 4 , ANG_Z = 5 , YAW = 6 , PITCH = 7 , ROLL = 8 }
| 预测对象枚举 更多...
enum class | ArmorSizeType : uint8_t { ArmorSizeType::UNKNOWN , ArmorSizeType::SMALL , ArmorSizeType::BIG }
| 装甲板大小类型 更多...
enum class | RuneType : uint8_t { RuneType::UNKNOWN , RuneType::INACTIVE , RuneType::ACTIVE }
| 能量机关激活类型 更多...
enum class | TagType : uint8_t { TagType::UNKNOWN , TagType::NUM_0 , TagType::NUM_1 , TagType::NUM_2 , TagType::NUM_3 , TagType::NUM_4 , TagType::NUM_5 , TagType::NUM_6 , TagType::NUM_7 , TagType::NUM_8 , TagType::NUM_9 , TagType::CHAR_A , TagType::CHAR_B , TagType::CHAR_C , TagType::CHAR_D , TagType::CHAR_E , TagType::CHAR_F , TagType::CHAR_G , TagType::CHAR_H , TagType::CHAR_I , TagType::CHAR_J , TagType::CHAR_K , TagType::CHAR_L , TagType::CHAR_M , TagType::CHAR_N , TagType::CHAR_O , TagType::CHAR_P , TagType::CHAR_Q , TagType::CHAR_R , TagType::CHAR_S , TagType::CHAR_T , TagType::CHAR_U , TagType::CHAR_V , TagType::CHAR_W , TagType::CHAR_X , TagType::CHAR_Y , TagType::CHAR_Z }
| AprilTag 视觉标签类型 更多...
enum class | RobotType : uint8_t { RobotType::UNKNOWN , RobotType::HERO , RobotType::ENGINEER , RobotType::INFANTRY_3 , RobotType::INFANTRY_4 , RobotType::INFANTRY_5 , RobotType::OUTPOST , RobotType::BASE , RobotType::SENTRY }
| 机器人类型 更多...
enum class | CompensateType : uint8_t { CompensateType::UNKNOWN , CompensateType::UP , CompensateType::DOWN , CompensateType::LEFT , CompensateType::RIGHT }
| 强制补偿类型 更多...

## 函数
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 &center3d)
| 计算 3D 目标点在像素坐标系下的坐标
cv::Point2f | cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeffs, const cv::Point3f &center3d)
| 计算 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 是否相等

## 变量
constexpr double | PI = ::std::numbers::pi
| 圆周率: \(\pi\)
constexpr double | e = ::std::numbers::e
| 自然对数底数: \(e\)
constexpr double | SQRT_2 = ::std::numbers::sqrt2
| 根号 2: \(\sqrt2\)
constexpr double | PI_2 = PI / 2.
| PI / 2: \(\frac\pi2\)
constexpr double | PI_4 = PI / 4.
| PI / 4: \(\frac\pi4\)
Timer | timer
| 全局定时器对象
constexpr UA_Byte | typeflag_ns0 []
| `DataType` 到对应 `NS0` 下的类型名的映射

## 枚举类型说明

## ◆ RotStatus

enum class rm::RotStatus : uint8_t
| strong

旋转状态类型

枚举值
LOW_ROT_SPEED | 低转速
HIGH_ROT_SPEED | 高转速

## 函数说明

## ◆ getVersionMajor()

int rm::getVersionMajor | ( |  | ) |
| inline

返回主要库版本

## ◆ getVersionMinor()

int rm::getVersionMinor | ( |  | ) |
| inline

返回次要库版本

## ◆ getVersionPatch()

int rm::getVersionPatch | ( |  | ) |
| inline

返回库版本的修订字段

## ◆ getVersionString()

const char * rm::getVersionString | ( |  | ) |
| inline

返回库版本字符串

注解
  "For example: 3.6.0-dev"

参见
  getVersionMajor, getVersionMinor, getVersionPatch