装甲模块组合特征
更多...
#include <rmvl/combo/armor.h>
|
| Armor ()=default |
|
| Armor (LightBlob::ptr, LightBlob::ptr, const GyroData &, double, float, float, float, float, float, float, float, ArmorSizeType) |
|
combo::ptr | clone (double tick) override |
| 从另一个组合体进行构造
|
|
float | getComboRatio () |
| 获取组合特征宽高比
|
|
float | getWidthRatio () |
| 获取左右灯条宽度的比值
|
|
float | getLengthRatio () |
| 获取左右灯条长度的比值
|
|
float | getCornerAngle () |
| 获取左右灯条错位角
|
|
float | getError () |
| 获取匹配误差
|
|
ArmorSizeType | getArmorType () |
| 获取装甲板大小类型
|
|
void | setType (RobotType stat) |
| 设置机器人类型 RobotType
|
|
void | setExtrinsic (const CameraExtrinsics &extrinsic) |
| 设置相机外参
|
|
const cv::Vec2f & | getPose () const |
| 获取装甲板姿态法向量
|
|
float | getHeight () const |
| 获取组合体高度
|
|
float | getWidth () const |
| 获取组合体宽度
|
|
float | getAngle () const |
| 获取组合体角度
|
|
cv::Point2f | getCenter () const |
| 获取组合体中心点
|
|
const std::vector< cv::Point2f > & | getCorners () const |
| 获取组合体角点
|
|
const CameraExtrinsics & | getExtrinsics () const |
| 获取组合体相机外参
|
|
RMStatus | getType () const |
| 获取组合体类型
|
|
double | getTick () const |
| 获取捕获该组合体的时间点
|
|
cv::Point2f | getRelativeAngle () const |
| 获取组合体的相对目标转角
|
|
const GyroData & | getGyroData () const |
| 获取组合体当前的陀螺仪数据
|
|
feature::ptr | at (std::size_t idx) |
| 获取指定特征
|
|
const feature::const_ptr | at (std::size_t idx) const |
| 获取指定特征
|
|
const auto & | data () const |
| 获取特征列表数据
|
|
std::size_t | size () const |
| 获取特征列表大小
|
|
bool | empty () const |
| 判断特征列表是否为空
|
|
|
static ptr | make_combo (LightBlob::ptr p_left, LightBlob::ptr p_right, const GyroData &gyro_data, double tick, ArmorSizeType armor_size_type=ArmorSizeType::UNKNOWN) |
| Armor 构造接口
|
|
static ptr | cast (combo::ptr p_combo) |
| 动态类型转换
|
|
static const_ptr | cast (combo::const_ptr p_combo) |
| 动态类型转换
|
|
static void | loadSVM (const std::string &path) |
| 加载 SVM 装甲板大小分类的 *.xml 文件
|
|
static void | gyroConvertToCamera (const cv::Matx33f &gyro_rmat, const cv::Vec3f &gyro_tvec, const GyroData &gyro_data, cv::Matx33f &cam_rmat, cv::Vec3f &cam_tvec) |
| 装甲板相机外参从陀螺仪坐标系转化为相机坐标系
|
|
static void | cameraConvertToGyro (const cv::Matx33f &cam_rmat, const cv::Vec3f &cam_tvec, const GyroData &gyro_data, cv::Matx33f &gyro_rmat, cv::Vec3f &gyro_tvec) |
| 装甲板相机外参从相机坐标系转化为陀螺仪坐标系
|
|
static bool | isContainBlob (LightBlob::ptr blob, Armor::ptr armor) |
| 判断单个装甲板所在区域内是否包含指定的灯条
|
|
static cv::Mat | getNumberROI (cv::Mat src, const_ptr p_armor) |
| 根据图像中指定装甲板的信息,截取仅包含数字的 ROI
|
|
装甲模块组合特征
- 注解
- 特征包括
[0]
: 左灯条,[1]
: 右灯条
- 角点为
[0]
: 左灯条下顶点,[1]
: 左灯条上顶点,[2]
: 右灯条上顶点,[3]
: 右灯条下顶点
◆ const_ptr
◆ ptr
◆ Armor() [1/2]
◆ Armor() [2/2]
rm::Armor::Armor |
( |
LightBlob::ptr | , |
|
|
LightBlob::ptr | , |
|
|
const GyroData & | , |
|
|
double | , |
|
|
float | , |
|
|
float | , |
|
|
float | , |
|
|
float | , |
|
|
float | , |
|
|
float | , |
|
|
float | , |
|
|
ArmorSizeType | ) |
◆ cameraConvertToGyro()
static void rm::Armor::cameraConvertToGyro |
( |
const cv::Matx33f & | cam_rmat, |
|
|
const cv::Vec3f & | cam_tvec, |
|
|
const GyroData & | gyro_data, |
|
|
cv::Matx33f & | gyro_rmat, |
|
|
cv::Vec3f & | gyro_tvec ) |
|
static |
装甲板相机外参从相机坐标系转化为陀螺仪坐标系
- 参数
-
[in] | cam_rmat | 相机坐标系下的装甲板旋转矩阵 |
[in] | cam_tvec | 相机坐标系下的装甲板平移向量 |
[in] | gyro_data | 陀螺仪数据信息 |
[out] | gyro_rmat | 陀螺仪坐标系下的装甲板旋转矩阵 |
[out] | gyro_tvec | 陀螺仪坐标系下的装甲板平移向量 |
◆ cast() [1/2]
◆ cast() [2/2]
◆ clone()
◆ getArmorType()
◆ getComboRatio()
float rm::Armor::getComboRatio |
( |
| ) |
|
|
inline |
◆ getCornerAngle()
float rm::Armor::getCornerAngle |
( |
| ) |
|
|
inline |
◆ getError()
float rm::Armor::getError |
( |
| ) |
|
|
inline |
◆ getLengthRatio()
float rm::Armor::getLengthRatio |
( |
| ) |
|
|
inline |
◆ getNumberROI()
static cv::Mat rm::Armor::getNumberROI |
( |
cv::Mat | src, |
|
|
const_ptr | p_armor ) |
|
static |
◆ getPose()
const cv::Vec2f & rm::Armor::getPose |
( |
| ) |
const |
|
inline |
◆ getWidthRatio()
float rm::Armor::getWidthRatio |
( |
| ) |
|
|
inline |
◆ gyroConvertToCamera()
static void rm::Armor::gyroConvertToCamera |
( |
const cv::Matx33f & | gyro_rmat, |
|
|
const cv::Vec3f & | gyro_tvec, |
|
|
const GyroData & | gyro_data, |
|
|
cv::Matx33f & | cam_rmat, |
|
|
cv::Vec3f & | cam_tvec ) |
|
static |
装甲板相机外参从陀螺仪坐标系转化为相机坐标系
- 参数
-
[in] | gyro_rmat | 陀螺仪坐标系下的装甲板旋转矩阵 |
[in] | gyro_tvec | 陀螺仪坐标系下的装甲板平移向量 |
[in] | gyro_data | 陀螺仪数据信息 |
[out] | cam_rmat | 相机坐标系下的装甲板旋转矩阵 |
[out] | cam_tvec | 相机坐标系下的装甲板平移向量 |
◆ isContainBlob()
判断单个装甲板所在区域内是否包含指定的灯条
- 参数
-
[in] | blob | 指定的灯条 |
[in] | armor | 单一装甲板 |
- 返回
- 是否包含灯条中心
◆ loadSVM()
static void rm::Armor::loadSVM |
( |
const std::string & | path | ) |
|
|
inlinestatic |
加载 SVM 装甲板大小分类的 *.xml 文件
- 参数
-
◆ make_combo()
Armor 构造接口
- 注解
- 若提供具体的
armor_size_type
参数,则不进行可行性验证,直接强制构造
- 参数
-
[in] | p_left | 左灯条共享指针 |
[in] | p_right | 右灯条共享指针 |
[in] | gyro_data | 当前时刻组合特征对应的陀螺仪数据 |
[in] | tick | 捕获组合特征的时间点 |
[in] | armor_size_type | 需要指定的大小装甲板类型,默认为 ArmorSizeType::UNKNOWN |
- 返回
- 若成功,返回 Armor 的共享指针,否则返回空
◆ setExtrinsic()
◆ setType()
该类的文档由以下文件生成: