CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
carla::ros2::CarlaOpticalFlowCameraPublisher类 参考

#include <CarlaOpticalFlowCameraPublisher.h>

+ 类 carla::ros2::CarlaOpticalFlowCameraPublisher 继承关系图:
+ carla::ros2::CarlaOpticalFlowCameraPublisher 的协作图:

Public 成员函数

 CarlaOpticalFlowCameraPublisher (CarlaOpticalFlowCameraPublisher &&)
 CarlaOpticalFlowCameraPublisher类的移动构造函数
 
 CarlaOpticalFlowCameraPublisher (const CarlaOpticalFlowCameraPublisher &)
 CarlaOpticalFlowCameraPublisher类的拷贝构造函数
 
 CarlaOpticalFlowCameraPublisher (const char *ros_name="", const char *parent="")
 CarlaOpticalFlowCameraPublisher类的构造函数
 
bool HasBeenInitialized () const
 检查类是否已经被初始化。
 
bool Init ()
 初始化类。
 
void InitInfoData (uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify)
 初始化摄像头信息数据。
 
CarlaOpticalFlowCameraPublisheroperator= (CarlaOpticalFlowCameraPublisher &&)
 移动赋值运算符重载
 
CarlaOpticalFlowCameraPublisheroperator= (const CarlaOpticalFlowCameraPublisher &)
 赋值运算符重载
 
bool Publish ()
 发布图像和相关信息。
 
void SetCameraInfoData (int32_t seconds, uint32_t nanoseconds)
 设置相机信息数据的时间戳
 
void SetImageData (int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, const float *data)
 设置图像数据,将光学流数据转换为RGBA图像数据
 
const char * type () const override
 
 ~CarlaOpticalFlowCameraPublisher ()
 CarlaOpticalFlowCameraPublisher类的析构函数
 
- Public 成员函数 继承自 carla::ros2::CarlaPublisher
 CarlaPublisher ()=default
 
const std::string & frame_id () const
 
void frame_id (std::string &&frame_id)
 
const std::string & name () const
 
void name (std::string &&name)
 
const std::string & parent () const
 
void parent (std::string &&parent)
 
virtual ~CarlaPublisher ()=default
 

Private 成员函数

bool InitImage ()
 初始化图像相关的资源。
 
bool InitInfo ()
 初始化信息并设置CarlaOpticalFlowCameraPublisher的相关参数。
 
bool PublishImage ()
 发布图像数据。
 
bool PublishInfo ()
 发布信息函数
 
void SetData (int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, std::vector< uint8_t > &&data)
 设置图像数据
 
void SetInfoRegionOfInterest (uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, bool do_rectify)
 设置感兴趣区域(ROI)信息
 

Private 属性

std::shared_ptr< CarlaOpticalFlowCameraPublisherImpl_impl
 
std::shared_ptr< CarlaCameraInfoPublisherImpl_impl_info
 

额外继承的成员函数

- Protected 属性 继承自 carla::ros2::CarlaPublisher
std::string _frame_id = ""
 
std::string _name = ""
 
std::string _parent = ""
 

详细描述

在文件 CarlaOpticalFlowCameraPublisher.h21 行定义.

构造及析构函数说明

◆ CarlaOpticalFlowCameraPublisher() [1/3]

carla::ros2::CarlaOpticalFlowCameraPublisher::CarlaOpticalFlowCameraPublisher ( const char * ros_name = "",
const char * parent = "" )

CarlaOpticalFlowCameraPublisher类的构造函数

初始化CarlaOpticalFlowCameraPublisher对象,创建内部实现对象和相机信息发布者对象。

参数
ros_nameROS节点名称
parent父节点或相关标识符

在文件 CarlaOpticalFlowCameraPublisher.cpp645 行定义.

引用了 carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 carla::ros2::CarlaPublisher::parent().

+ 函数调用图:

◆ ~CarlaOpticalFlowCameraPublisher()

carla::ros2::CarlaOpticalFlowCameraPublisher::~CarlaOpticalFlowCameraPublisher ( )

CarlaOpticalFlowCameraPublisher类的析构函数

清理CarlaOpticalFlowCameraPublisher对象,释放与DDS(数据分发服务)相关的资源。

在文件 CarlaOpticalFlowCameraPublisher.cpp656 行定义.

引用了 _impl , 以及 _impl_info.

◆ CarlaOpticalFlowCameraPublisher() [2/3]

carla::ros2::CarlaOpticalFlowCameraPublisher::CarlaOpticalFlowCameraPublisher ( const CarlaOpticalFlowCameraPublisher & other)

CarlaOpticalFlowCameraPublisher类的拷贝构造函数

创建CarlaOpticalFlowCameraPublisher对象的深拷贝。

参数
other要拷贝的CarlaOpticalFlowCameraPublisher对象

在文件 CarlaOpticalFlowCameraPublisher.cpp694 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

◆ CarlaOpticalFlowCameraPublisher() [3/3]

carla::ros2::CarlaOpticalFlowCameraPublisher::CarlaOpticalFlowCameraPublisher ( CarlaOpticalFlowCameraPublisher && other)

CarlaOpticalFlowCameraPublisher类的移动构造函数

创建CarlaOpticalFlowCameraPublisher对象的移动拷贝,避免不必要的拷贝操作。

参数
other要移动的CarlaOpticalFlowCameraPublisher对象

在文件 CarlaOpticalFlowCameraPublisher.cpp724 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

成员函数说明

◆ HasBeenInitialized()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::HasBeenInitialized ( ) const

检查类是否已经被初始化。

返回
如果类已经被初始化,则返回true;否则返回false。

在文件 CarlaOpticalFlowCameraPublisher.cpp92 行定义.

引用了 _impl_info.

◆ Init()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::Init ( )

初始化类。

调用InitImage()和InitInfo()进行初始化,并返回两者的逻辑与结果。

返回
如果初始化成功,则返回true;否则返回false。

在文件 CarlaOpticalFlowCameraPublisher.cpp117 行定义.

引用了 InitImage() , 以及 InitInfo().

+ 函数调用图:

◆ InitImage()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::InitImage ( )
private

初始化图像相关的资源。

创建一个DomainParticipant、Publisher、Topic和DataWriter用于发布图像数据。

返回
如果初始化成功,则返回true;否则返回false。

设置DomainParticipant的QoS策略为默认值,并设置名称。

获取DomainParticipantFactory的实例。

创建DomainParticipant。

如果创建DomainParticipant失败,输出错误信息并返回false。

在DomainParticipant中注册数据类型。

设置Publisher的QoS策略为默认值。

创建Publisher。

如果创建Publisher失败,输出错误信息并返回false。

设置Topic的QoS策略为默认值。

构建Topic的名称。

创建Topic。

如果创建Topic失败,输出错误信息并返回false。

设置DataWriter的QoS策略为默认值,并修改历史内存策略。

获取DataWriter的监听器。

创建DataWriter。

如果创建DataWriter失败,输出错误信息并返回false。

设置帧ID为名称。

所有对象都成功创建,返回true。

在文件 CarlaOpticalFlowCameraPublisher.cpp127 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

被这些函数引用 Init().

+ 这是这个函数的调用关系图:

◆ InitInfo()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::InitInfo ( )
private

初始化信息并设置CarlaOpticalFlowCameraPublisher的相关参数。

此函数负责初始化域参与者(DomainParticipant)、发布者(Publisher)、主题(Topic)和数据写入器(DataWriter), 并确保它们被正确创建。如果任何一步失败,函数将输出错误信息并返回false。

返回
如果初始化成功,返回true;否则返回false。

检查类型支持是否有效。如果_impl_info->_type为空,则输出错误信息并返回false。

设置域参与者的QoS策略,并将其命名为_name。

如果域参与者创建失败,输出错误信息并返回false。

在域参与者中注册类型。

设置发布者的QoS策略,并创建一个发布者。

如果发布者创建失败,输出错误信息并返回false。

设置主题的QoS策略,并创建一个主题。主题名称由基础名称、父级名称(如果存在)、自身名称和类型名称组成。

如果主题创建失败,输出错误信息并返回false。

设置数据写入器的QoS策略,并创建一个数据写入器。

如果数据写入器创建失败,输出错误信息并返回false。

设置帧ID为名称。

所有对象都成功创建,返回true。

在文件 CarlaOpticalFlowCameraPublisher.cpp197 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

被这些函数引用 Init().

+ 这是这个函数的调用关系图:

◆ InitInfoData()

void carla::ros2::CarlaOpticalFlowCameraPublisher::InitInfoData ( uint32_t x_offset,
uint32_t y_offset,
uint32_t height,
uint32_t width,
float fov,
bool do_rectify )

初始化摄像头信息数据。

参数
x_offsetX轴偏移量
y_offsetY轴偏移量
height图像高度
width图像宽度
fov视场角
do_rectify是否进行校正

在文件 CarlaOpticalFlowCameraPublisher.cpp105 行定义.

引用了 _impl_info , 以及 SetInfoRegionOfInterest().

+ 函数调用图:

◆ operator=() [1/2]

CarlaOpticalFlowCameraPublisher & carla::ros2::CarlaOpticalFlowCameraPublisher::operator= ( CarlaOpticalFlowCameraPublisher && other)

移动赋值运算符重载

将另一个CarlaOpticalFlowCameraPublisher对象移动赋值给当前对象,避免不必要的拷贝操作。

参数
other要移动赋值的CarlaOpticalFlowCameraPublisher对象
返回
引用当前对象

在文件 CarlaOpticalFlowCameraPublisher.cpp740 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

◆ operator=() [2/2]

CarlaOpticalFlowCameraPublisher & carla::ros2::CarlaOpticalFlowCameraPublisher::operator= ( const CarlaOpticalFlowCameraPublisher & other)

赋值运算符重载

将另一个CarlaOpticalFlowCameraPublisher对象赋值给当前对象。

参数
other要赋值的CarlaOpticalFlowCameraPublisher对象
返回
引用当前对象

在文件 CarlaOpticalFlowCameraPublisher.cpp708 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.

◆ Publish()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::Publish ( )

发布图像和相关信息。

此函数负责调用PublishImage()和PublishInfo()函数来发布图像和相关信息。 如果两者都成功发布,则返回true;否则返回false。

返回
如果图像和相关信息都成功发布,返回true;否则返回false。

在文件 CarlaOpticalFlowCameraPublisher.cpp280 行定义.

引用了 PublishImage() , 以及 PublishInfo().

+ 函数调用图:

◆ PublishImage()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::PublishImage ( )
private

发布图像数据。

此函数尝试使用DataWriter发布图像数据。根据返回的ReturnCode值,函数会输出相应的错误信息(如果有的话) 并返回发布是否成功的布尔值。

返回
如果图像数据成功发布,返回true;否则返回false。

尝试写入图像数据到DataWriter。

根据返回的ReturnCode值处理发布结果。

返回值
true表示发布信息成功。
false表示通用错误。
false表示操作不支持。
false表示参数错误。
false表示前提条件未满足。
false表示资源不足。
false表示功能未启用。
false表示策略不可变。
false表示策略不一致。
false表示实体已被删除。
false表示操作超时。
false表示无数据。
false表示非法操作。
false表示安全策略不允许。
false表示未知错误,发布失败。

在文件 CarlaOpticalFlowCameraPublisher.cpp291 行定义.

引用了 _impl.

被这些函数引用 Publish().

+ 这是这个函数的调用关系图:

◆ PublishInfo()

bool carla::ros2::CarlaOpticalFlowCameraPublisher::PublishInfo ( )
private

发布信息函数

此函数尝试通过数据写入器发布信息。根据返回码(ReturnCode_t)的不同,函数会返回不同的结果, 并在控制台输出相应的错误信息。

返回
如果发布信息成功,则返回true;否则返回false。

在文件 CarlaOpticalFlowCameraPublisher.cpp382 行定义.

被这些函数引用 Publish().

+ 这是这个函数的调用关系图:

◆ SetCameraInfoData()

void carla::ros2::CarlaOpticalFlowCameraPublisher::SetCameraInfoData ( int32_t seconds,
uint32_t nanoseconds )

设置相机信息数据的时间戳

该函数用于设置相机信息消息的时间戳和帧ID。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分

在文件 CarlaOpticalFlowCameraPublisher.cpp627 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl_info, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().

+ 函数调用图:

◆ SetData()

void carla::ros2::CarlaOpticalFlowCameraPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
size_t height,
size_t width,
std::vector< uint8_t > && data )
private

设置图像数据

该函数用于设置图像的时间戳、高度、宽度以及图像数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height图像的高度
width图像的宽度
data图像数据,使用右值引用和移动语义来避免不必要的拷贝

在文件 CarlaOpticalFlowCameraPublisher.cpp602 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().

被这些函数引用 SetImageData().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SetImageData()

void carla::ros2::CarlaOpticalFlowCameraPublisher::SetImageData ( int32_t seconds,
uint32_t nanoseconds,
size_t height,
size_t width,
const float * data )

设置图像数据,将光学流数据转换为RGBA图像数据

该函数将输入的光学流数据(速度向量场)转换为RGBA格式的图像数据。 每个速度向量(vx, vy)被转换为一个HSV颜色值,然后转换为RGB格式,并附加一个透明度通道(Alpha)。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height图像的高度
width图像的宽度
data指向包含光学流数据的浮点数组的指针,每个元素对(vx, vy)表示一个速度向量

在文件 CarlaOpticalFlowCameraPublisher.cpp473 行定义.

引用了 SetData().

+ 函数调用图:

◆ SetInfoRegionOfInterest()

void carla::ros2::CarlaOpticalFlowCameraPublisher::SetInfoRegionOfInterest ( uint32_t x_offset,
uint32_t y_offset,
uint32_t height,
uint32_t width,
bool do_rectify )
private

设置感兴趣区域(ROI)信息

该函数用于设置相机的感兴趣区域(Region Of Interest, ROI)信息, 包括ROI的起始点偏移(x_offset, y_offset)、高度(height)、宽度(width) 以及是否进行校正(do_rectify)。

参数
x_offsetROI起始点的x轴偏移量
y_offsetROI起始点的y轴偏移量
heightROI的高度
widthROI的宽度
do_rectify是否对ROI进行校正

在文件 CarlaOpticalFlowCameraPublisher.cpp582 行定义.

引用了 _impl_info, sensor_msgs::msg::RegionOfInterest::do_rectify(), sensor_msgs::msg::RegionOfInterest::height(), sensor_msgs::msg::RegionOfInterest::width(), sensor_msgs::msg::RegionOfInterest::x_offset() , 以及 sensor_msgs::msg::RegionOfInterest::y_offset().

被这些函数引用 InitInfoData().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ type()

const char * carla::ros2::CarlaOpticalFlowCameraPublisher::type ( ) const
inlineoverridevirtual

类成员变量说明

◆ _impl

std::shared_ptr<CarlaOpticalFlowCameraPublisherImpl> carla::ros2::CarlaOpticalFlowCameraPublisher::_impl
private

◆ _impl_info

std::shared_ptr<CarlaCameraInfoPublisherImpl> carla::ros2::CarlaOpticalFlowCameraPublisher::_impl_info
private

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