RMVL  1.1.0
RoboMaster Vision Library
命名空间 | | 类型定义 | 枚举 | 函数 | 变量
rm 命名空间参考

命名空间

 helper
 
 para
 
 reflect
 

class  CameraExtrinsics
 相机外参 更多...
 
class  HikCamera
 海康机器人相机库 HikRobot camera library 更多...
 
class  MvCamera
 迈德威视相机库 MindVision camera library 更多...
 
struct  GyroData
 陀螺仪数据 更多...
 
class  KalmanFilter
 轻量级 cv::Matx 的卡尔曼滤波模块 更多...
 
class  Timer
 定时器 更多...
 
class  Exception
 该类封装了有关程序中发生的错误的所有或几乎所有必要信息。异常通常是通过 RMVL_Error 和 RMVL_Error_ 宏隐式构造和抛出的 更多...
 
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  ArrayTool
 阵列工具 更多...
 
struct  IPConfig
 IP 配置聚合类 更多...
 
class  OPTLightController
 OPT 奥普特光源控制器 更多...
 
class  OnnxRT
 ONNX-Runtime (Ort) 部署库 [5] 更多...
 
class  Client
 OPC UA 客户端 更多...
 
class  EventType
 OPC UA 事件类型 更多...
 
class  Event
 OPC UA 事件 更多...
 
struct  Argument
 OPC UA 方法参数 更多...
 
struct  Method
 OPC UA 方法 更多...
 
class  ObjectType
 OPC UA 对象类型 更多...
 
class  Object
 OPC UA 对象 更多...
 
class  Server
 OPC UA 服务器 更多...
 
struct  UserConfig
 用户信息 更多...
 
class  VariableType
 OPC UA 变量类型 更多...
 
class  Variable
 OPC UA 变量 更多...
 
class  EwTopsis
 熵权法 更多...
 
class  RaHeap
 支持随机访问的堆 更多...
 
class  UnionFind
 并查集 更多...
 
class  Armor
 装甲模块组合特征 更多...
 
class  combo
 特征组合体 更多...
 
class  DefaultCombo
 默认组合体,包含一个固定的特征,退化为 feature 使用 更多...
 
class  Rune
 神符(能量机关) 更多...
 
struct  CompensateInfo
 补偿模块信息 更多...
 
class  compensator
 弹道下坠补偿模块 更多...
 
class  GravityCompensator
 使用重力模型的补偿模块 更多...
 
class  GyroCompensator
 整车状态补偿模块 更多...
 
struct  DecideInfo
 决策模块信息 更多...
 
class  decider
 目标决策模块 更多...
 
class  GyroDecider
 整车状态决策类 更多...
 
class  RuneDecider
 神符决策模块 更多...
 
class  TranslationDecider
 平移目标决策类 更多...
 
class  ArmorDetector
 装甲板识别模块 更多...
 
struct  DetectInfo
 识别信息结构体 更多...
 
class  detector
 识别检测模块 更多...
 
class  GyroDetector
 整车状态识别模块 更多...
 
class  RuneDetector
 能量机关识别模块(包含已激活、未激活) 更多...
 
class  TagDetector
 AprilTag 识别器 更多...
 
class  feature
 图像中的轮廓特征 更多...
 
class  DefaultFeature
 默认图像特征,仅表示一个孤立的点 cv::Point2f 更多...
 
class  LightBlob
 装甲板灯条 更多...
 
class  Pilot
 前哨、基地的引导灯 更多...
 
class  RuneCenter
 神符中心特征 更多...
 
class  RuneTarget
 神符靶心特征 更多...
 
class  Tag
 AprilTag 视觉标签特征类 更多...
 
class  group
 相关追踪器的空间集合(序列组) 更多...
 
class  DefaultGroup
 默认序列组(一般退化为 trackers 使用) 更多...
 
class  TrackerState
 序列组中的追踪器状态 更多...
 
class  GyroGroup
 整车状态序列组 更多...
 
class  RuneGroup
 神符序列组 更多...
 
class  ArmorPredictor
 装甲预测模块 更多...
 
class  GyroPredictor
 整车状态预测模块 更多...
 
struct  PredictInfo
 预测模块信息 更多...
 
class  predictor
 目标预测模块 更多...
 
class  RunePredictor
 神符预测模块 更多...
 
class  SpiRunePredictor
 系统参数辨识神符预测类 更多...
 
class  GyroTracker
 整车状态追踪器 更多...
 
class  PlanarTracker
 平面目标追踪器 更多...
 
class  RuneTracker
 神符时间序列 更多...
 
class  tracker
 组合体时间序列 更多...
 
class  DefaultTracker
 默认追踪器,时间序列仅用于存储组合体,可退化为 combos 使用 更多...
 
struct  RMStatus
 状态类型 更多...
 

类型定义

using RetrieveMode = int
 处理模式 Camera retrieve mode 更多...
 
using KF11f = KalmanFilter< float, 1U, 1U >
 1 × 1 卡尔曼滤波器,无控制量 更多...
 
using KF11d = KalmanFilter< double, 1U, 1U >
 1 × 1 卡尔曼滤波器,无控制量 更多...
 
using KF22f = KalmanFilter< float, 2U, 2U >
 2 × 2 卡尔曼滤波器,无控制量 更多...
 
using KF22d = KalmanFilter< double, 2U, 2U >
 2 × 2 卡尔曼滤波器,无控制量 更多...
 
using KF33f = KalmanFilter< float, 3U, 3U >
 3 × 3 卡尔曼滤波器,无控制量 更多...
 
using KF33d = KalmanFilter< double, 3U, 3U >
 3 × 3 卡尔曼滤波器,无控制量 更多...
 
using KF44f = KalmanFilter< float, 4U, 4U >
 4 × 4 卡尔曼滤波器,无控制量 更多...
 
using KF44d = KalmanFilter< double, 4U, 4U >
 4 × 4 卡尔曼滤波器,无控制量 更多...
 
using KF66f = KalmanFilter< float, 6U, 6U >
 6 × 6 卡尔曼滤波器,无控制量 更多...
 
using KF66d = KalmanFilter< double, 6U, 6U >
 6 × 6 卡尔曼滤波器,无控制量 更多...
 
using ValueCallBackBeforeRead = void(*)(UA_Server *, const UA_NodeId *, void *, const UA_NodeId *, void *, const UA_NumericRange *, const UA_DataValue *)
 值回调函数,Read 函数指针定义 更多...
 
using ValueCallBackAfterWrite = void(*)(UA_Server *, const UA_NodeId *, void *, const UA_NodeId *, void *, const UA_NumericRange *, const UA_DataValue *)
 值回调函数,Write 函数指针定义 更多...
 
using DataSourceRead = UA_StatusCode(*)(UA_Server *, const UA_NodeId *, void *, const UA_NodeId *, void *, UA_Boolean, const UA_NumericRange *, UA_DataValue *)
 数据源回调函数,Read 函数指针定义 更多...
 
using DataSourceWrite = UA_StatusCode(*)(UA_Server *, const UA_NodeId *, void *, const UA_NodeId *, void *, const UA_NumericRange *, const UA_DataValue *)
 数据源回调函数,Write 函数指针定义 更多...
 
using UA_TypeFlag = UA_UInt32
 类型标志位,可通过 typeflag[xxx] 进行获取 更多...
 
using FindNodeInServer = ::std::tuple< UA_Server *, ::std::string >
 目标节点信息(服务端指针、浏览名) 更多...
 
using FindNodeInClient = ::std::tuple< UA_Client *, ::std::string >
 目标节点信息(客户端指针、浏览名) 更多...
 

枚举

enum  GrabMode : int { GRAB_CONTINUOUS = 0 , GRAB_SOFTWARE = 1 , GRAB_HARDWARE = 2 }
 采集模式 Camera grab mode 更多...
 
enum  _RetrieveMode : RetrieveMode { RETRIEVE_SDK = 0x01 , RETRIEVE_CV = 0x02 , RETRIEVE_LUT = 0x10 }
 
enum  CameraActivities : uint16_t { CAMERA_ONCE_WB = 0x0101 , CAMERA_SOFT_TRIGGER = 0x0102 }
 相机事件 Camera Activities 更多...
 
enum  CameraProperties : uint16_t {
  CAMERA_AUTO_EXPOSURE = 0x001 , CAMERA_AUTO_WB = 0x002 , CAMERA_MANUAL_EXPOSURE = 0x003 , CAMERA_MANUAL_WB = 0x004 ,
  CAMERA_EXPOSURE = 0x005 , CAMERA_GAIN = 0x006 , CAMERA_GAMMA = 0x007 , CAMERA_WB_RGAIN = 0x008 ,
  CAMERA_WB_GGAIN = 0x009 , CAMERA_WB_BGAIN = 0x00a , CAMERA_CONTRAST = 0x00c , CAMERA_SATURATION = 0x00d ,
  CAMERA_SHARPNESS = 0x00e , CAMERA_FRAME_HEIGHT = 0x00f , CAMERA_FRAME_WIDTH = 0x010 , CAMERA_TRIGGER_DELAY = 0x041 ,
  CAMERA_TRIGGER_COUNT = 0x042 , CAMERA_TRIGGER_PERIOD = 0x043
}
 相机属性 Camera Properties 更多...
 
enum  PixChannel : uint8_t { BLUE , GREEN , RED , AUTO }
 像素通道枚举 更多...
 
enum  EulerAxis : int { X = 0 , Y = 1 , Z = 2 }
 欧拉角转轴枚举 更多...
 
enum  AngleMode : bool { RAD = true , DEG = false }
 角度制式 更多...
 
enum class  CalPlane : uint8_t { xyz = 0 , xOy = 1 , xOz = 2 , yOz = 3 }
 计算所在平面 更多...
 
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 { UNKNOWN , SMALL , BIG }
 装甲板大小类型 更多...
 
enum class  RuneType : uint8_t { UNKNOWN , INACTIVE , ACTIVE }
 能量机关激活类型 更多...
 
enum class  TagType : uint8_t {
  UNKNOWN , NUM_0 , NUM_1 , NUM_2 ,
  NUM_3 , NUM_4 , NUM_5 , NUM_6 ,
  NUM_7 , NUM_8 , NUM_9 , A ,
  B , C , D , E ,
  F , G , H , I ,
  J , K , L , M ,
  N , O , P , Q ,
  R , S , T , U ,
  V , W , X , Y ,
  Z
}
 AprilTag 视觉标签类型 更多...
 
enum class  RobotType : uint8_t {
  UNKNOWN , HERO , ENGINEER , INFANTRY_3 ,
  INFANTRY_4 , INFANTRY_5 , OUTPOST , BASE ,
  SENTRY
}
 机器人类型 更多...
 
enum class  TargetChangeType : uint8_t { UNKNOWN , CHANGE , AUTO }
 目标切换类型 更多...
 
enum class  MoveType : uint8_t { UNKNOWN , STATIC , MOVE }
 运动类型 更多...
 
enum class  CompensateType : uint8_t {
  UNKNOWN , UP , DOWN , LEFT ,
  RIGHT
}
 强制补偿类型 更多...
 

函数

bool writeCorners (const std::string &path, uint32_t idx, const std::vector< std::vector< cv::Point2f >> &corners)
 将角点数据写入 YAML 文件中 更多...
 
bool readCorners (const std::string &path, uint32_t idx, std::vector< std::vector< cv::Point2f >> &corners)
 从指定 YAML 文件中读取角点数据 更多...
 
std::string format (const char *fmt,...)
 返回使用类 printf 表达式格式化的文本字符串。 更多...
 
void breakOnError ()
 触发非法内存操作 更多...
 
void throwError (const Exception &exc)
 抛出异常 更多...
 
void error (int _code, const std::string &_err, const char *_func, const char *_file, int _line)
 发出错误信号并引发异常 更多...
 
const char * getBuildInformation ()
 返回完整的配置输出 更多...
 
const char * getVersionString ()
 返回库版本字符串 更多...
 
int getVersionMajor ()
 返回主要库版本 更多...
 
int getVersionMinor ()
 返回次要库版本 更多...
 
int getVersionPatch ()
 返回库版本的修订字段 更多...
 
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 目标点在像素坐标系下的坐标 更多...
 
cv::Point2f relativeAngle2EulerAngle (float yaw, float pitch)
 将投影角转换为欧拉角 更多...
 
template<typename Tp >
cv::Matx< Tp, 3, 3 > euler2Mat (Tp val, EulerAxis axis)
 欧拉角转换为旋转矩阵 更多...
 
constexpr double operator""_PI (long double num)
 
constexpr double operator""_PI (long long unsigned num)
 
constexpr double operator""_to_rad (long double num)
 
constexpr double operator""_to_rad (long long unsigned num)
 
constexpr double operator""_to_deg (long double num)
 
constexpr double operator""_to_deg (long long unsigned num)
 
template<typename Tp >
Tp operator+ (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
 
template<typename Tp >
cv::Matx< Tp, 1, 1 > operator+ (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
 
template<typename Tp >
Tp operator- (Tp val, const cv::Matx< Tp, 1, 1 > &mat)
 
template<typename Tp >
cv::Matx< Tp, 1, 1 > operator- (const cv::Matx< Tp, 1, 1 > &mat, Tp val)
 
template<typename Tp >
Tp deg2rad (Tp deg)
 角度转换为弧度 更多...
 
template<typename Tp >
Tp rad2deg (Tp rad)
 弧度转换为角度 更多...
 
template<typename Tp >
cv::Matx< Tp, 3, 1 > point2matx (cv::Point3_< Tp > point)
 Point类型转换为Matx类型 更多...
 
template<typename Tp >
cv::Point3_< Tp > matx2point (cv::Matx< Tp, 3, 1 > matx)
 Matx类型转换为Point类型 更多...
 
template<typename Tp >
cv::Vec< Tp, 3 > matx2vec (cv::Matx< Tp, 3, 1 > matx)
 Matx类型转换为Vec类型 更多...
 
template<typename Tp1 , typename Tp2 >
auto getDistance (const cv::Point_< Tp1 > &pt_1, const cv::Point_< Tp2 > &pt_2)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
auto getDistance (const cv::Vec< Tp1, 2 > &vec_1, const cv::Vec< Tp2, 2 > &vec_2)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
auto getDistance (const cv::Point3_< Tp1 > &pt_1, const cv::Point3_< Tp2 > &pt_2, CalPlane calplane=CalPlane::xyz)
 获取距离 更多...
 
template<typename Tp1 , typename Tp2 >
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 >
auto getDistance (const cv::Vec< Tp1, 4 > &line, const cv::Point_< Tp2 > &pt, bool direc=true)
 点到直线距离 更多...
 
template<typename Tp1 , typename Tp2 >
auto getHAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
 获取与水平方向的夹角,以平面直角坐标系 x 轴为分界线, 逆时针为正方向,范围: (-180°, 180°],默认返回弧度制 更多...
 
template<typename Tp1 , typename Tp2 >
auto getVAngle (const cv::Point_< Tp1 > &start, const cv::Point_< Tp2 > &end, AngleMode mode=RAD)
 获取与垂直方向的夹角,以平面直角坐标系 y 轴为分界线, 顺时针为正方向,范围: (-180°, 180°],默认返回弧度制 更多...
 
template<typename Tp >
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 >
Tp sigmoid (Tp x, Tp k=1, Tp Kp=1, Tp mu=0)
 计算 sigmoid(x) 在某一点的函数值 更多...
 
template<typename Tp >
Tp cross2D (const cv::Vec< Tp, 2 > &a, const cv::Vec< Tp, 2 > &b)
 平面向量外积 更多...
 
template<typename Tp >
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 Tp >
Tp getMid (Tp a, Tp b, Tp c)
 三个数据寻找中位数 更多...
 
bool operator== (const RMStatus &lhs, const RMStatus &rhs)
 判断两个 RMStatus 是否相等 更多...
 

变量

Timer timer
 全局定时器对象 更多...
 
std::unordered_map< std::type_index, UA_TypeFlagtypeflag
 获取形如 UA_TYPES_<xxx> 的类型标志位 更多...
 
constexpr double PI = 3.14159265358979323
 圆周率: \(\pi\) 更多...
 
constexpr double e = 2.7182818459045
 自然对数底数: \(e\) 更多...
 
constexpr double SQRT_2 = 1.4142135623731
 根号 2: \(\sqrt2\) 更多...
 
constexpr double PI_2 = PI / 2
 PI / 2: \(\frac\pi2\) 更多...
 
constexpr double PI_4 = PI / 4
 PI / 4: \(\frac\pi4\) 更多...
 
constexpr double g = 9.788
 重力加速度: \(g\) 更多...
 

枚举类型说明

◆ RotStatus

enum rm::RotStatus : uint8_t
strong

旋转状态类型

枚举值
LOW_ROT_SPEED 

低转速

HIGH_ROT_SPEED 

高转速

函数说明

◆ breakOnError()

void rm::breakOnError ( )
inline

触发非法内存操作

注解
当调用该函数时,默认错误处理程序会发出一个硬件异常,这可以使调试更加方便

◆ error()

void rm::error ( int  _code,
const std::string &  _err,
const char *  _func,
const char *  _file,
int  _line 
)

发出错误信号并引发异常

注解
该函数将错误信息打印到 stderr
参数
[in]_code错误码
[in]_err错误描述
[in]_func函数名,仅在编译器支持获取时可用
[in]_file发生错误的源文件名
[in]_line源文件中发生错误的行号
参见
RMVL_Error, RMVL_Error_, RMVL_Assert

◆ format()

std::string rm::format ( const char *  fmt,
  ... 
)

返回使用类 printf 表达式格式化的文本字符串。

注解
该函数的作用类似于 sprintf,但形成并返回一个 STL 字符串。它可用于在 Exception 构造函数中形成错误消息。
参数
[in]fmtprintf 兼容的格式化说明符。
类型 限定符
const char* s
char c
float or double f,g
int, long, long long d, ld, `lld
unsigned, unsigned long, unsigned long long u, lu, llu
uint64_t \(\to\) uintmax_t, int64_t \(\to\) intmax_t ju, jd
size_t zu
示例
samples/camera/mv/sample_mv_auto_calib.cpp.

◆ getBuildInformation()

const char* rm::getBuildInformation ( )

返回完整的配置输出

返回
原始的 CMake 输出,包括版本控制系统修订,编译器版本,编译器标志,启用的模块和第三方库等。
返回值
配置、构建信息字符串

◆ 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

◆ throwError()

void rm::throwError ( const Exception exc)
inline

抛出异常