| RMVL 1.5.2 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
Public 类型 | Public 成员函数 | 静态 Public 成员函数 | 所有成员列表
rm::Rune类 参考final
特征组合体（数据组件） » 能量机关特征组合

神符（能量机关） 更多...

`#include <rmvl/combo/rune.h>`

类 rm::Rune 继承关系图:
rm::Rune 的协作图:

## Public 类型
using | ptr = std::shared_ptr<Rune>
using | const_ptr = std::shared_ptr<const Rune>
Public 类型 继承自 rm::combo
using | ptr = std::shared_ptr<combo>
using | const_ptr = std::shared_ptr<const combo>

## Public 成员函数
combo::ptr | clone (double tick) override
| 从另一个组合体进行构造
float | getFeatureDis () const
| 3D 空间下神符特征间距
bool | isActive ()
| 是否激活
Public 成员函数 继承自 rm::combo
float | height () const
| 获取组合体高度
float | width () const
| 获取组合体宽度
float | angle () const
| 获取组合体角度
cv::Point2f | center () const
| 获取组合体中心点
const std::vector< cv::Point2f > & | corners () const
| 获取组合体角点
cv::Point2f | corner (int idx) const
| 获取指定角点
const CameraExtrinsics & | extrinsic () const
| 获取组合体相机外参
RMStatus | type () const
| 获取组合体类型
double | tick () const
| 获取捕获该组合体的时间点
cv::Point2f | getRelativeAngle () const
| 获取组合体的相对目标转角
const ImuData & | imu () const
| 获取组合体当前的 IMU 数据
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
| 判断特征列表是否为空

## 静态 Public 成员函数
static ptr | make_combo (RuneTarget::ptr p_target, RuneCenter::ptr p_center, const ImuData &imu_data, double tick, bool force=false)
| Rune 构造接口
static cv::Vec2f | cameraConvertToVertical (const cv::Vec2f &angle_vec, float diff_theta)
| 相机平面中将角度值映射至垂直平面
static cv::Vec2f | verticalConvertToCamera (const cv::Vec2f &angle_vec, float diff_theta)
| 垂直平面中将角度值映射至相机平面

## 额外继承的成员函数
Protected 属性 继承自 rm::combo
std::vector< feature::ptr > | _features
| 特征列表
float | _height {}
| 高度
float | _width {}
| 宽度
float | _angle {}
| 角度
RMStatus | _type {}
| 类型
cv::Point2f | _center
| 中心点
cv::Point2f | _relative_angle
| 相对目标转角
ImuData | _imu_data
| 当前 IMU 数据
std::vector< cv::Point2f > | _corners
| 角点
CameraExtrinsics | _extrinsic
| 相机外参
double | _tick {}
| 捕获该组合体时的时间点

## 详细描述

神符（能量机关）

- 特征信息 `[0]`: 神符靶心，`[1]`: 神符旋转中心（R 标）
- 角度信息 `angle()` 获取的角度范围是 `[-180,180)`
- 角点信息 `corners()` 获取的内容是 `[0]`: 神符靶心特征中心点，`[1]`: 神符中心特征中心点
- 相机外参 `extrinsic()` 数据仅直线距离 `distance` 有效
- 中心点 `center()` 为神符靶心的中心点，要获取神符旋转中心请访问对应特征，例如使用 `at(1)`

## 成员类型定义说明

## ◆ const_ptr

using rm::Rune::const_ptr = std::shared_ptr<const Rune>

## ◆ ptr

using rm::Rune::ptr = std::shared_ptr<Rune>

## 成员函数说明

## ◆ cameraConvertToVertical()

static cv::Vec2f rm::Rune::cameraConvertToVertical | ( | const cv::Vec2f & | angle_vec,
|  | float | diff_theta )
| inline static

相机平面中将角度值映射至垂直平面

注解
  为保证域的连续性，角度使用从原点出发的向量表示

参数

  [in] | angle_vec | 相机平面中的角度值（起点指向终点的向量）
  [in] | diff_theta | 两个平面之间的夹角（角度制）

返回
  垂直平面中的角度值

函数调用图:

## ◆ clone()

combo::ptr rm::Rune::clone | ( | double | tick | ) |
| override virtual

从另一个组合体进行构造

参数

  [in] | tick | 当前时间点，可用 `rm::Timer::now()` 获取

返回
  指向新组合体的共享指针

实现了 rm::combo.

函数调用图:

## ◆ getFeatureDis()

float rm::Rune::getFeatureDis | ( |  | ) | const
| inline

3D 空间下神符特征间距

## ◆ isActive()

bool rm::Rune::isActive | ( |  | ) |
| inline

是否激活

## ◆ make_combo()

static ptr rm::Rune::make_combo | ( | RuneTarget::ptr | p_target,
|  | RuneCenter::ptr | p_center,
|  | const ImuData & | imu_data,
|  | double | tick,
|  | bool | force = false )
| static

Rune 构造接口

参数

  [in] | p_target | 神符靶心
  [in] | p_center | 神符中心
  [in] | imu_data | IMU 数据
  [in] | tick | 捕获特征的时间点
  [in] | force | 是否为强制构造

返回
  神符共享指针

函数调用图:

## ◆ verticalConvertToCamera()

static cv::Vec2f rm::Rune::verticalConvertToCamera | ( | const cv::Vec2f & | angle_vec,
|  | float | diff_theta )
| inline static

垂直平面中将角度值映射至相机平面

注解
  为保证域的连续性，角度使用从原点出发的向量表示

参数

  [in] | angle_vec | 垂直平面中的角度值（起点指向终点的向量）
  [in] | diff_theta | 两个平面之间的夹角（角度制）

返回
  相机平面中的角度值

函数调用图:

该类的文档由以下文件生成:

- rmvl/combo/rune.h