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

命名空间

 para
 

class  HikVideoCapture
 海康机器人相机库 HikRobot camera library 更多...
 
class  MvVideoCapture
 迈德威视相机库 MindVision camera library 更多...
 
struct  GyroData
 陀螺仪数据 更多...
 
class  SerialPort
 Serial communication library 更多...
 
class  GlobalSingleton
 单例模板 更多...
 
class  Timer
 计时器 更多...
 
class  Exception
 该类封装了有关程序中发生的错误的所有或几乎所有必要信息。异常通常是通过 RMVL_Error 和 RMVL_Error_ 宏隐式构造和抛出的 更多...
 
class  ArrayTool
 阵列工具 更多...
 
class  OnnxRT
 ONNX-Runtime (Ort) 部署库 [2] 更多...
 
class  EwTopsis
 熵权法 更多...
 
class  RaHeap
 支持随机访问的堆 更多...
 
class  ResultPnP
 pnp 姿态解算 更多...
 
class  UnionFind
 并查集 更多...
 
class  Armor
 装甲模块组合特征 更多...
 
class  combo
 特征组合体 更多...
 
class  Rune
 能量机关神符 更多...
 
struct  CompensateInfo
 补偿模块信息 更多...
 
class  compensator
 弹道下坠补偿模块 更多...
 
class  GravityCompensator
 使用重力模型的补偿模块 更多...
 
class  GyroCompensator
 整车状态补偿模块 更多...
 
struct  DecideInfo
 决策模块信息 更多...
 
class  decider
 目标决策模块 更多...
 
class  GyroDecider
 整车状态决策类 更多...
 
class  OutpostDecider
 前哨站决策模块 更多...
 
class  RuneDecider
 神符决策模块 更多...
 
class  TranslationDecider
 平移目标决策类 更多...
 
class  ArmorDetector
 装甲板识别模块 更多...
 
struct  DetectInfo
 识别信息结构体 更多...
 
class  detector
 识别检测模块 更多...
 
class  GyroDetector
 整车状态识别模块 更多...
 
class  RuneDetector
 能量机关识别模块(包含已激活、未激活) 更多...
 
class  feature
 图像中的轮廓特征 更多...
 
class  LightBlob
 装甲板灯条 更多...
 
class  Pilot
 前哨、基地的引导灯 更多...
 
class  RuneCenter
 神符中心特征 更多...
 
class  RuneTarget
 神符靶心特征 更多...
 
class  group
 相关追踪器的集合(序列组) 更多...
 
class  DefaultGroup
 默认序列组(一般退化为 trackers 使用) 更多...
 
class  TrackerState
 序列组中的追踪器状态 更多...
 
class  GyroGroup
 整车状态序列组 更多...
 
class  RuneGroup
 神符序列组 更多...
 
class  ArmorPredictor
 装甲预测模块 更多...
 
class  GyroPredictor
 整车状态预测模块 更多...
 
struct  PredictInfo
 预测模块信息 更多...
 
class  predictor
 目标预测模块 更多...
 
class  RunePredictor
 神符预测模块 更多...
 
class  SpiRunePredictor
 系统参数辨识神符预测类 更多...
 
class  ArmorTracker
 装甲模块追踪器 更多...
 
class  GyroTracker
 整车状态追踪器 更多...
 
class  RuneTracker
 神符时间序列 更多...
 
class  tracker
 组合体时间序列 更多...
 
struct  RMStatus
 状态类型 更多...
 

类型定义

using capture_ptr = std::unique_ptr< cv::VideoCapture >
 
using RetrieveMode = int
 处理模式 Camera retrieve mode 更多...
 
using serial_port_ptr = std::unique_ptr< SerialPort >
 
using armor_ptr = std::shared_ptr< Armor >
 装甲模块组合特征共享指针 更多...
 
using combo_ptr = std::shared_ptr< combo >
 组合体共享指针 更多...
 
using rune_ptr = std::shared_ptr< Rune >
 神符组合特征共享指针 更多...
 
using compensate_ptr = std::unique_ptr< compensator >
 补偿类非共享指针 更多...
 
using decide_ptr = std::unique_ptr< decider >
 决策模块智能指针 更多...
 
using detect_ptr = std::unique_ptr< detector >
 
using feature_ptr = std::shared_ptr< feature >
 特征共享指针 更多...
 
using light_blob_ptr = std::shared_ptr< LightBlob >
 
using pilot_ptr = std::shared_ptr< Pilot >
 
using rune_center_ptr = std::shared_ptr< RuneCenter >
 神符中心特征共享指针 更多...
 
using rune_target_ptr = std::shared_ptr< RuneTarget >
 神符靶心特征共享指针 更多...
 
using group_ptr = std::shared_ptr< group >
 序列组共享指针 更多...
 
using gyro_group_ptr = std::shared_ptr< GyroGroup >
 序列组共享指针 更多...
 
using RuneGroup_ptr = std::shared_ptr< RuneGroup >
 
using predict_ptr = std::unique_ptr< predictor >
 抽象预测类非共享指针 更多...
 
using armor_tracker_ptr = std::shared_ptr< ArmorTracker >
 装甲模块追踪器共享指针 更多...
 
using gyro_tracker_ptr = std::shared_ptr< GyroTracker >
 包含旋转的装甲板追踪器共享指针 更多...
 
using rune_tracker_ptr = std::shared_ptr< RuneTracker >
 神符追踪器共享指针 更多...
 
using tracker_ptr = std::shared_ptr< tracker >
 

枚举

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  RMVideoActivities : uint16_t { CAP_ACT_RM_ONCE_WB = 0x0101 , CAP_ACT_RM_SOFT_TRIGGER = 0x0102 }
 RoboMaster Video Capture Activities 更多...
 
enum  RMVideoProperties : uint16_t {
  CAP_PROP_RM_AUTO_EXPOSURE = 0x001 , CAP_PROP_RM_AUTO_WB = 0x002 , CAP_PROP_RM_MANUAL_EXPOSURE = 0x003 , CAP_PROP_RM_MANUAL_WB = 0x004 ,
  CAP_PROP_RM_EXPOSURE = 0x005 , CAP_PROP_RM_GAIN = 0x006 , CAP_PROP_RM_GAMMA = 0x007 , CAP_PROP_RM_WB_RGAIN = 0x008 ,
  CAP_PROP_RM_WB_GGAIN = 0x009 , CAP_PROP_RM_WB_BGAIN = 0x00a , CAP_PROP_RM_CONTRAST = 0x00c , CAP_PROP_RM_SATURATION = 0x00d ,
  CAP_PROP_RM_SHARPNESS = 0x00e , CAP_PROP_RM_FRAME_HEIGHT = 0x00f , CAP_PROP_RM_FRAME_WIDTH = 0x010 , CAP_PROP_RM_TRIGGER_DELAY = 0x041 ,
  CAP_PROP_RM_TRIGGER_COUNT = 0x042 , CAP_PROP_RM_TRIGGER_PERIOD = 0x043
}
 RoboMaster Video Capture Properties 更多...
 
enum  PixChannel : uint8_t { BLUE = 0U , GREEN = 1U , RED = 2U }
 像素通道枚举 更多...
 
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  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::Point2d >> &corners)
 将角点数据写入 YAML 文件中 更多...
 
bool readCorners (const std::string &path, uint32_t idx, std::vector< std::vector< cv::Point2d >> &corners)
 从指定 YAML 文件中读取角点数据 更多...
 
template<typename Tp , typename Enable = typename std::enable_if<std::is_same<Tp, std::string>::value || std::is_same<Tp, int64_t>::value>::type>
Tp getSystemTick ()
 获取当前系统时间 更多...
 
void syncWait (int64_t time_length)
 同步定时,当前进程挂起time_length时长后,再继续当前进程 更多...
 
template<typename Callable , class... Args>
void asyncWait (int after, Callable &&fn, Args &&...args)
 异步定时,另外开一个线程,在定时time_length ms后执行某个函数 更多...
 
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 std::string & getBuildInformation ()
 返回完整的配置输出,返回值是原始的 CMake 输出,包括版本控制系统修订,编译器版本,编译器标志,启用的模块和第三方库等。 更多...
 
std::string 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 &distCoeff, const cv::Vec3f &center3d)
 计算 3D 目标点在像素坐标系下的坐标 更多...
 
cv::Point2f cameraConvertToPixel (const cv::Matx33f &cameraMatrix, const cv::Matx51f &distCoeff, 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)
 三个数据寻找中位数 更多...
 

变量

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 \(\to\) uintmax_t, int64 \(\to\) intmax_t ju, jd
size_t zu
示例
samples/camera/mv/sample_mv_auto_calib.cpp.

◆ getBuildInformation()

const std::string& rm::getBuildInformation ( )

返回完整的配置输出,返回值是原始的 CMake 输出,包括版本控制系统修订,编译器版本,编译器标志,启用的模块和第三方库等。

返回
const&

◆ getVersionMajor()

int rm::getVersionMajor ( )
inline

返回主要库版本

◆ getVersionMinor()

int rm::getVersionMinor ( )
inline

返回次要库版本

◆ getVersionPatch()

int rm::getVersionPatch ( )
inline

返回库版本的修订字段

◆ getVersionString()

std::string rm::getVersionString ( )
inline

返回库版本字符串

注解
"For example: 3.6.0-dev"
参见
getVersionMajor, getVersionMinor, getVersionPatch

◆ throwError()

void rm::throwError ( const Exception exc)
inline
参数
exc