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

#include <CarlaDVSCameraPublisher.h>

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

Public 成员函数

 CarlaDVSCameraPublisher (CarlaDVSCameraPublisher &&)
 CarlaDVSCameraPublisher的移动构造函数。
 
 CarlaDVSCameraPublisher (const CarlaDVSCameraPublisher &)
 CarlaDVSCameraPublisher的拷贝构造函数。
 
 CarlaDVSCameraPublisher (const char *ros_name="", const char *parent="")
 CarlaDVSCameraPublisher的构造函数。
 
bool HasBeenInitialized () const
 检查是否已初始化
 
bool Init ()
 初始化CarlaDVSCameraPublisher
 
void InitInfoData (uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify)
 初始化相机信息数据
 
CarlaDVSCameraPublisheroperator= (CarlaDVSCameraPublisher &&)
 移动赋值运算符重载。
 
CarlaDVSCameraPublisheroperator= (const CarlaDVSCameraPublisher &)
 赋值运算符重载。
 
bool Publish ()
 发布图像、信息和点云数据。
 
void SetCameraInfoData (int32_t seconds, uint32_t nanoseconds)
 设置相机信息数据的时间戳和帧ID。
 
void SetImageData (int32_t seconds, uint32_t nanoseconds, size_t elements, size_t height, size_t width, const uint8_t *data)
 设置图像数据,用于DVS(动态视觉传感器)相机发布者。
 
void SetPointCloudData (size_t height, size_t width, size_t elements, const uint8_t *data)
 设置点云数据。
 
const char * type () const override
 
 ~CarlaDVSCameraPublisher ()
 CarlaDVSCameraPublisher的析构函数。
 
- 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 ()
 初始化相机信息发布相关资源
 
bool InitPointCloud ()
 初始化点云发布相关资源
 
bool PublishImage ()
 发布图像数据。
 
bool PublishInfo ()
 发布信息数据。
 
bool PublishPointCloud ()
 发布点云数据。
 
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)
 设置相机信息中的感兴趣区域(Region Of Interest, ROI)。
 
void SetPointCloudData (size_t height, size_t width, std::vector< uint8_t > &&data)
 

Private 属性

std::shared_ptr< CarlaDVSCameraPublisherImpl_impl
 
std::shared_ptr< CarlaCameraInfoPublisherImpl_info
 
std::shared_ptr< CarlaPointCloudPublisherImpl_point_cloud
 

额外继承的成员函数

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

详细描述

在文件 CarlaDVSCameraPublisher.h20 行定义.

构造及析构函数说明

◆ CarlaDVSCameraPublisher() [1/3]

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

CarlaDVSCameraPublisher的构造函数。

初始化CarlaDVSCameraPublisher对象,包括内部实现对象、相机信息发布者对象和点云发布者对象。

参数
ros_nameROS节点名称。
parent父节点或相关实体的名称。

在文件 CarlaDVSCameraPublisher.cpp718 行定义.

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

+ 函数调用图:

◆ ~CarlaDVSCameraPublisher()

carla::ros2::CarlaDVSCameraPublisher::~CarlaDVSCameraPublisher ( )

CarlaDVSCameraPublisher的析构函数。

清理CarlaDVSCameraPublisher对象,包括释放内部实现对象、相机信息发布者对象和点云发布者对象所占用的资源。

在文件 CarlaDVSCameraPublisher.cpp730 行定义.

引用了 _impl, _info , 以及 _point_cloud.

◆ CarlaDVSCameraPublisher() [2/3]

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

CarlaDVSCameraPublisher的拷贝构造函数。

创建一个新的CarlaDVSCameraPublisher对象,并复制另一个CarlaDVSCameraPublisher对象的成员变量。

参数
other要复制的CarlaDVSCameraPublisher对象。

在文件 CarlaDVSCameraPublisher.cpp783 行定义.

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

◆ CarlaDVSCameraPublisher() [3/3]

carla::ros2::CarlaDVSCameraPublisher::CarlaDVSCameraPublisher ( CarlaDVSCameraPublisher && other)

CarlaDVSCameraPublisher的移动构造函数。

创建一个新的CarlaDVSCameraPublisher对象,并移动另一个CarlaDVSCameraPublisher对象的成员变量。

参数
other要移动的CarlaDVSCameraPublisher对象。

在文件 CarlaDVSCameraPublisher.cpp816 行定义.

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

成员函数说明

◆ HasBeenInitialized()

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

检查是否已初始化

返回
true 如果已经初始化,否则返回false

在文件 CarlaDVSCameraPublisher.cpp156 行定义.

引用了 _info.

◆ Init()

bool carla::ros2::CarlaDVSCameraPublisher::Init ( )

初始化CarlaDVSCameraPublisher

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

在文件 CarlaDVSCameraPublisher.cpp179 行定义.

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

+ 函数调用图:

◆ InitImage()

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

初始化图像发布相关资源

返回
true 如果图像发布初始化成功,否则返回false

在文件 CarlaDVSCameraPublisher.cpp187 行定义.

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

被这些函数引用 Init().

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

◆ InitInfo()

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

初始化相机信息发布相关资源

返回
true 如果相机信息初始化成功,否则返回false

设置DomainParticipant的QoS(Quality of Service)策略为默认值,并设置其名称

获取DomainParticipantFactory的实例

创建DomainParticipant

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

注册数据类型

设置Publisher的QoS策略为默认值

创建Publisher

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

设置Topic的QoS策略为默认值

构建Topic的名称

创建Topic

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

设置DataWriter的QoS策略为默认值

获取DataWriterListener的实例

创建DataWriter

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

设置帧ID为节点名称

所有组件都成功创建,返回true

在文件 CarlaDVSCameraPublisher.cpp240 行定义.

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

被这些函数引用 Init().

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

◆ InitInfoData()

void carla::ros2::CarlaDVSCameraPublisher::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是否进行校正

在文件 CarlaDVSCameraPublisher.cpp169 行定义.

引用了 _info , 以及 SetInfoRegionOfInterest().

+ 函数调用图:

◆ InitPointCloud()

bool carla::ros2::CarlaDVSCameraPublisher::InitPointCloud ( )
private

初始化点云发布相关资源

返回
true 如果点云初始化成功,否则返回false

设置DomainParticipant的QoS策略

获取DomainParticipantFactory的实例

创建DomainParticipant

注册类型到DomainParticipant

设置Publisher的QoS策略

设置Topic的QoS策略

设置DataWriter的QoS策略,并指定历史内存策略为预分配并允许重新分配

设置帧ID为参与者名称

在文件 CarlaDVSCameraPublisher.cpp306 行定义.

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

被这些函数引用 Init().

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

◆ operator=() [1/2]

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

移动赋值运算符重载。

将另一个CarlaDVSCameraPublisher对象的成员变量移动到当前对象。

参数
other要移动的CarlaDVSCameraPublisher对象。
返回
返回对当前对象的引用。

在文件 CarlaDVSCameraPublisher.cpp832 行定义.

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

◆ operator=() [2/2]

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

赋值运算符重载。

将另一个CarlaDVSCameraPublisher对象的成员变量赋值给当前对象。

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

在文件 CarlaDVSCameraPublisher.cpp799 行定义.

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

◆ Publish()

bool carla::ros2::CarlaDVSCameraPublisher::Publish ( )

发布图像、信息和点云数据。

此方法会依次调用 PublishImage()、PublishInfo() 和 PublishPointCloud() 方法, 只有当这三个方法都返回 true 时,此方法才返回 true。

返回
bool 如果图像、信息和点云数据都成功发布,则返回 true;否则返回 false。

在文件 CarlaDVSCameraPublisher.cpp364 行定义.

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

+ 函数调用图:

◆ PublishImage()

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

发布图像数据。

使用 DataWriter 将图像数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。

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

在文件 CarlaDVSCameraPublisher.cpp373 行定义.

引用了 _impl.

被这些函数引用 Publish().

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

◆ PublishInfo()

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

发布信息数据。

使用 DataWriter 将信息数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。

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

在文件 CarlaDVSCameraPublisher.cpp440 行定义.

引用了 _info.

被这些函数引用 Publish().

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

◆ PublishPointCloud()

bool carla::ros2::CarlaDVSCameraPublisher::PublishPointCloud ( )
private

发布点云数据。

使用 DataWriter 将点云数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。

返回
bool 如果点云数据成功发布,则返回 true;否则返回 false。

在文件 CarlaDVSCameraPublisher.cpp507 行定义.

引用了 _point_cloud.

被这些函数引用 Publish().

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

◆ SetCameraInfoData()

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

设置相机信息数据的时间戳和帧ID。

该函数接收时间戳,并设置相机信息消息的时间戳和帧ID。

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

在文件 CarlaDVSCameraPublisher.cpp633 行定义.

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

+ 函数调用图:

◆ SetData()

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

设置图像数据,包括时间戳、图像尺寸和图像数据。

该函数接收时间戳、图像高度、图像宽度和图像数据,并设置图像消息的相关字段, 包括时间戳、帧ID、图像尺寸、编码方式以及图像数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height图像的高度
width图像的宽度
data图像数据的右值引用,用于移动语义

在文件 CarlaDVSCameraPublisher.cpp606 行定义.

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

被这些函数引用 SetImageData().

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

◆ SetImageData()

void carla::ros2::CarlaDVSCameraPublisher::SetImageData ( int32_t seconds,
uint32_t nanoseconds,
size_t elements,
size_t height,
size_t width,
const uint8_t * data )

设置图像数据,用于DVS(动态视觉传感器)相机发布者。

该函数接收时间戳、图像元素数量、高度、宽度以及图像数据,并将这些数据转换为BGR8格式的图像数据, 然后调用SetData函数来设置图像数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
elements图像中的事件元素数量
height图像的高度
width图像的宽度
data指向图像数据的指针,数据格式为DVS事件

在文件 CarlaDVSCameraPublisher.cpp581 行定义.

引用了 carla::sensor::data::DVSEvent::pol, SetData(), carla::sensor::data::DVSEvent::x , 以及 carla::sensor::data::DVSEvent::y.

+ 函数调用图:

◆ SetInfoRegionOfInterest()

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

设置相机信息中的感兴趣区域(Region Of Interest, ROI)。

该函数用于配置相机信息的ROI,包括x和y偏移量、高度、宽度以及是否进行校正。

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

在文件 CarlaDVSCameraPublisher.cpp653 行定义.

引用了 _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().

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

◆ SetPointCloudData() [1/2]

void carla::ros2::CarlaDVSCameraPublisher::SetPointCloudData ( size_t height,
size_t width,
size_t elements,
const uint8_t * data )

设置点云数据。

该函数用于配置点云消息,包括高度、宽度、元素数量以及点云数据。

参数
height点云的高度(即点的行数)。
width点云的宽度(即点的列数)。
elements点云中的元素数量。
data指向点云数据的指针。

在文件 CarlaDVSCameraPublisher.cpp672 行定义.

引用了 _point_cloud, sensor_msgs::msg::PointField::count(), sensor_msgs::msg::PointField::datatype(), sensor_msgs::msg::PointField::name(), sensor_msgs::msg::PointField::offset(), sensor_msgs::msg::PointField__FLOAT64, sensor_msgs::msg::PointField__INT8 , 以及 sensor_msgs::msg::PointField__UINT16.

+ 函数调用图:

◆ SetPointCloudData() [2/2]

void carla::ros2::CarlaDVSCameraPublisher::SetPointCloudData ( size_t height,
size_t width,
std::vector< uint8_t > && data )
private

◆ type()

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

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaDVSCameraPublisher.h37 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaDVSCameraPublisherImpl> carla::ros2::CarlaDVSCameraPublisher::_impl
private

◆ _info

std::shared_ptr<CarlaCameraInfoPublisherImpl> carla::ros2::CarlaDVSCameraPublisher::_info
private

◆ _point_cloud

std::shared_ptr<CarlaPointCloudPublisherImpl> carla::ros2::CarlaDVSCameraPublisher::_point_cloud
private

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