RMVL  2.6.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::nav::LocalizationPipeline类 参考

将第三方定位结果转换为 RMVL 导航消息 更多...

#include <rmvl/nav/localization.hpp>

rm::nav::LocalizationPipeline 的协作图:

Public 成员函数

 LocalizationPipeline (std::unique_ptr< OdometryBackend > backend, std::unique_ptr< MapperBackend > mapper={}, LocalizationOptions options={})
 创建视觉定位流水线
 ~LocalizationPipeline ()
 LocalizationPipeline (LocalizationPipeline &&) noexcept
LocalizationPipelineoperator= (LocalizationPipeline &&) noexcept
 LocalizationPipeline (const LocalizationPipeline &)=delete
LocalizationPipelineoperator= (const LocalizationPipeline &)=delete
LocalizationResult process (const SensorFrame &frame)
 处理一帧同步输入并生成标准导航输出
void reset ()
 重置定位后端、可选地图后端和历史轨迹,后端 reset() 抛出的异常会向调用方传播
const LocalizationOptionsoptions () const noexcept

详细描述

将第三方定位结果转换为 RMVL 导航消息

  • 成功时统一使用主图像采集时间生成 Odometry、等价动态 TF 和有界 Path
  • 后端返回的位姿四元数以及可选全局修正四元数会被归一化
  • 参考坐标系改变时清空历史 Path,path_capacity 为 0 时不生成 Path
  • 可选 Mapper 在定位成功后运行,其失败不会使已经生成的定位结果失效
  • 后端抛出的异常转换为 BackendError,Mapper 抛出的异常只记录在 MappingResult

调用方可将结果通过 LPSS Publisher 与 lpss::tf::Broadcaster 发布。

注解
本类串行调用后端,即使多个订阅回调同时调用 process() 也不会并发进入第三方实现。

构造及析构函数说明

◆ LocalizationPipeline() [1/3]

rm::nav::LocalizationPipeline::LocalizationPipeline ( std::unique_ptr< OdometryBackend > backend,
std::unique_ptr< MapperBackend > mapper = {},
LocalizationOptions options = {} )
explicit

创建视觉定位流水线

参数
[in]backend视觉里程计或 SLAM 后端,所有权转移至 Pipeline,允许为空
[in]mapper可选地图后端,所有权转移至 Pipeline
[in]options输出整理配置
注解
空后端允许构造,但 process() 将返回 LocalizationStatus::BackendError

◆ ~LocalizationPipeline()

rm::nav::LocalizationPipeline::~LocalizationPipeline ( )

◆ LocalizationPipeline() [2/3]

rm::nav::LocalizationPipeline::LocalizationPipeline ( LocalizationPipeline && )
noexcept
函数调用图:

◆ LocalizationPipeline() [3/3]

rm::nav::LocalizationPipeline::LocalizationPipeline ( const LocalizationPipeline & )
delete
函数调用图:

成员函数说明

◆ operator=() [1/2]

LocalizationPipeline & rm::nav::LocalizationPipeline::operator= ( const LocalizationPipeline & )
delete
函数调用图:

◆ operator=() [2/2]

LocalizationPipeline & rm::nav::LocalizationPipeline::operator= ( LocalizationPipeline && )
noexcept
函数调用图:

◆ options()

const LocalizationOptions & rm::nav::LocalizationPipeline::options ( ) const
noexcept
返回
当前输出整理配置
函数调用图:

◆ process()

LocalizationResult rm::nav::LocalizationPipeline::process ( const SensorFrame & frame)

处理一帧同步输入并生成标准导航输出

参数
[in]frame已同步传感器帧
返回
定位、TF、轨迹和可选地图结果
函数调用图:

◆ reset()

void rm::nav::LocalizationPipeline::reset ( )

重置定位后端、可选地图后端和历史轨迹,后端 reset() 抛出的异常会向调用方传播

函数调用图: