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 const char * type () const =0
 
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

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