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

#include <CarlaSSCameraPublisher.h>

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

Public 成员函数

 CarlaSSCameraPublisher (CarlaSSCameraPublisher &&)
 CarlaSSCameraPublisher类的移动构造函数
 
 CarlaSSCameraPublisher (const CarlaSSCameraPublisher &)
 CarlaSSCameraPublisher类的拷贝构造函数
 
 CarlaSSCameraPublisher (const char *ros_name="", const char *parent="")
 CarlaSSCameraPublisher类的构造函数
 
bool HasBeenInitialized () const
 检查CarlaSSCameraPublisher是否已初始化。
 
bool Init ()
 初始化相机发布者
 
void InitInfoData (uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify)
 初始化相机信息数据
 
CarlaSSCameraPublisheroperator= (CarlaSSCameraPublisher &&)
 移动赋值运算符重载
 
CarlaSSCameraPublisheroperator= (const CarlaSSCameraPublisher &)
 赋值运算符重载
 
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 uint8_t *data)
 设置图像数据
 
const char * type () const override
 
 ~CarlaSSCameraPublisher ()
 CarlaSSCameraPublisher类的析构函数
 
- 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 ()
 初始化CarlaSSCameraPublisher的信息
 
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)
 设置感兴趣区域的信息
 

Private 属性

std::shared_ptr< CarlaSSCameraPublisherImpl_impl
 
std::shared_ptr< CarlaCameraInfoPublisherImpl_impl_info
 

额外继承的成员函数

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

详细描述

在文件 CarlaSSCameraPublisher.h24 行定义.

构造及析构函数说明

◆ CarlaSSCameraPublisher() [1/3]

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

CarlaSSCameraPublisher类的构造函数

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

参数
ros_nameROS节点名称
parent父节点或组件的名称

在文件 CarlaSSCameraPublisher.cpp537 行定义.

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

+ 函数调用图:

◆ ~CarlaSSCameraPublisher()

carla::ros2::CarlaSSCameraPublisher::~CarlaSSCameraPublisher ( )

CarlaSSCameraPublisher类的析构函数

清理资源,包括删除数据写入器、发布者、主题和参与者。

在文件 CarlaSSCameraPublisher.cpp548 行定义.

引用了 _impl , 以及 _impl_info.

◆ CarlaSSCameraPublisher() [2/3]

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

CarlaSSCameraPublisher类的拷贝构造函数

创建当前对象的深拷贝。注意:这里的实现可能存在问题,因为_impl和_impl_info是智能指针,直接赋值可能导致多个对象共享相同的内部实现,这通常不是期望的行为。 在实际实现中,应该考虑使用深拷贝或者避免在拷贝构造函数中直接赋值智能指针。

参数
other要拷贝的对象

在文件 CarlaSSCameraPublisher.cpp587 行定义.

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

◆ CarlaSSCameraPublisher() [3/3]

carla::ros2::CarlaSSCameraPublisher::CarlaSSCameraPublisher ( CarlaSSCameraPublisher && other)

CarlaSSCameraPublisher类的移动构造函数

使用另一个CarlaSSCameraPublisher对象的资源初始化当前对象,并清空源对象的资源。

参数
other要移动的对象

在文件 CarlaSSCameraPublisher.cpp618 行定义.

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

成员函数说明

◆ HasBeenInitialized()

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

检查CarlaSSCameraPublisher是否已初始化。

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

在文件 CarlaSSCameraPublisher.cpp118 行定义.

引用了 _impl_info.

◆ Init()

bool carla::ros2::CarlaSSCameraPublisher::Init ( )

初始化相机发布者

该函数用于初始化相机发布者,包括图像和信息的初始化。

返回
初始化是否成功,成功返回true,失败返回false

在文件 CarlaSSCameraPublisher.cpp145 行定义.

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

+ 函数调用图:

◆ InitImage()

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

初始化相机图像

该函数用于初始化相机图像的发布,包括创建DomainParticipant、Publisher、Topic和DataWriter。

返回
初始化是否成功,成功返回true,失败返回false

在文件 CarlaSSCameraPublisher.cpp155 行定义.

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

被这些函数引用 Init().

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

◆ InitInfo()

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

初始化CarlaSSCameraPublisher的信息

此函数负责初始化CarlaSSCameraPublisher所需的各种组件,包括DomainParticipant, Publisher, Topic和DataWriter。 如果任何步骤失败,函数将输出错误信息并返回false。

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

检查_impl_info->_type是否为nullptr,如果是,则输出错误信息并返回false。

设置DomainParticipant的QoS参数为默认值,并设置其名称。

获取DomainParticipantFactory的实例,并创建一个DomainParticipant。

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

注册类型到DomainParticipant。

设置Publisher的QoS参数为默认值,并创建一个Publisher。

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

设置Topic的QoS参数为默认值,并构造Topic名称。

创建一个Topic。

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

设置DataWriter的QoS参数为默认值,并创建一个DataWriter。

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

设置_frame_id为_name。

初始化成功,返回true。

在文件 CarlaSSCameraPublisher.cpp210 行定义.

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

被这些函数引用 Init().

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

◆ InitInfoData()

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

初始化相机信息数据

该函数用于初始化相机的信息数据,包括高度、宽度、视场角(FOV),并设置感兴趣区域(ROI)。

参数
x_offset感兴趣区域的X轴偏移量
y_offset感兴趣区域的Y轴偏移量
height相机图像的高度
width相机图像的宽度
fov相机的视场角(FOV)
do_rectify是否对图像进行校正

在文件 CarlaSSCameraPublisher.cpp133 行定义.

引用了 _impl_info , 以及 SetInfoRegionOfInterest().

+ 函数调用图:

◆ operator=() [1/2]

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

移动赋值运算符重载

将当前对象设置为另一个CarlaSSCameraPublisher对象的移动拷贝,并清空源对象的资源。

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

在文件 CarlaSSCameraPublisher.cpp633 行定义.

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

◆ operator=() [2/2]

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

赋值运算符重载

将当前对象设置为另一个CarlaSSCameraPublisher对象的拷贝。与拷贝构造函数类似,这里的实现也可能存在问题。

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

在文件 CarlaSSCameraPublisher.cpp602 行定义.

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

◆ Publish()

bool carla::ros2::CarlaSSCameraPublisher::Publish ( )

发布图像和信息

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

返回
bool 如果发布成功返回true,否则返回false。

在文件 CarlaSSCameraPublisher.cpp303 行定义.

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

+ 函数调用图:

◆ PublishImage()

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

发布图像数据

此函数尝试通过Fast RTPS发布图像数据。根据返回码(ReturnCode_t),函数会输出相应的错误信息并返回发布是否成功。

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

在文件 CarlaSSCameraPublisher.cpp313 行定义.

引用了 _impl.

被这些函数引用 Publish().

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

◆ PublishInfo()

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

发布信息数据

此函数尝试通过Fast RTPS发布信息数据。根据返回码(ReturnCode_t),函数会输出相应的错误信息并返回发布是否成功。

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

在文件 CarlaSSCameraPublisher.cpp382 行定义.

引用了 _impl_info.

被这些函数引用 Publish().

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

◆ SetCameraInfoData()

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

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

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

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

在文件 CarlaSSCameraPublisher.cpp519 行定义.

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

+ 函数调用图:

◆ SetData()

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

设置图像数据

该函数接收时间戳、图像高度、图像宽度和图像数据(以vector形式),然后设置图像的元数据和数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height图像的高度
width图像的宽度
data图像数据的vector,假设为BGRA格式,使用右值引用进行移动语义优化

在文件 CarlaSSCameraPublisher.cpp494 行定义.

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

被这些函数引用 SetImageData().

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

◆ SetImageData()

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

设置图像数据

该函数接收时间戳、图像高度、图像宽度和图像数据,然后将这些数据复制到一个新的vector中, 并调用SetData函数设置图像数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height图像的高度
width图像的宽度
data图像数据的指针,假设为BGRA格式

在文件 CarlaSSCameraPublisher.cpp456 行定义.

引用了 SetData().

+ 函数调用图:

◆ SetInfoRegionOfInterest()

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

设置感兴趣区域的信息

该函数用于设置图像的感兴趣区域(Region Of Interest, ROI),包括偏移量、高度、宽度和是否需要校正。

参数
x_offsetROI的X轴偏移量
y_offsetROI的Y轴偏移量
heightROI的高度
widthROI的宽度
do_rectify是否需要校正ROI

在文件 CarlaSSCameraPublisher.cpp474 行定义.

引用了 _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::CarlaSSCameraPublisher::type ( ) const
inlineoverridevirtual

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaSSCameraPublisher.h53 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaSSCameraPublisherImpl> carla::ros2::CarlaSSCameraPublisher::_impl
private

◆ _impl_info

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

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