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

用于在ROS 2中发布CARLA深度相机数据的类。
这个类继承自CarlaPublisher,专门用于初始化、设置和发布深度相机数据。
更多...

#include <CarlaDepthCameraPublisher.h>

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

Public 成员函数

 CarlaDepthCameraPublisher (CarlaDepthCameraPublisher &&)
 移动构造函数。
 
 CarlaDepthCameraPublisher (const CarlaDepthCameraPublisher &)
 拷贝构造函数。

 
 CarlaDepthCameraPublisher (const char *ros_name="", const char *parent="")
 构造函数,用于创建CarlaDepthCameraPublisher对象。

 
bool HasBeenInitialized () const
 检查深度相机发布者是否已初始化。
 
bool Init ()
 初始化函数,用于设置ROS节点和发布者。

 
void InitInfoData (uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify)
 初始化深度相机信息数据。
 
CarlaDepthCameraPublisheroperator= (CarlaDepthCameraPublisher &&)
 移动赋值运算符。
 
CarlaDepthCameraPublisheroperator= (const CarlaDepthCameraPublisher &)
 拷贝赋值运算符。
 
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
 
 ~CarlaDepthCameraPublisher ()
 析构函数,用于销毁CarlaDepthCameraPublisher对象。
 
- 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 ()
 初始化相机信息发布者的DDS相关组件。
 
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< CarlaDepthCameraPublisherImpl_impl
 
std::shared_ptr< CarlaCameraInfoPublisherImpl_impl_info
 

额外继承的成员函数

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

详细描述

用于在ROS 2中发布CARLA深度相机数据的类。
这个类继承自CarlaPublisher,专门用于初始化、设置和发布深度相机数据。

在文件 CarlaDepthCameraPublisher.h24 行定义.

构造及析构函数说明

◆ CarlaDepthCameraPublisher() [1/3]

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

构造函数,用于创建CarlaDepthCameraPublisher对象。

CarlaDepthCameraPublisher类的构造函数

参数
ros_nameROS节点的名称(可选)。
parent父节点的名称(可选)。

初始化CarlaDepthCameraPublisher对象,创建_impl和_impl_info智能指针成员变量,并设置ROS节点名和父节点名。

参数
ros_nameROS节点名
parent父节点名

在文件 CarlaDepthCameraPublisher.cpp544 行定义.

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

+ 函数调用图:

◆ ~CarlaDepthCameraPublisher()

carla::ros2::CarlaDepthCameraPublisher::~CarlaDepthCameraPublisher ( )

析构函数,用于销毁CarlaDepthCameraPublisher对象。

CarlaDepthCameraPublisher类的析构函数

清理CarlaDepthCameraPublisher对象,释放_impl和_impl_info成员变量所占用的资源。

在文件 CarlaDepthCameraPublisher.cpp555 行定义.

引用了 _impl , 以及 _impl_info.

◆ CarlaDepthCameraPublisher() [2/3]

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

拷贝构造函数。

CarlaDepthCameraPublisher类的拷贝构造函数

创建一个新的CarlaDepthCameraPublisher对象,作为另一个CarlaDepthCameraPublisher对象的副本。

参数
other要拷贝的CarlaDepthCameraPublisher对象

在文件 CarlaDepthCameraPublisher.cpp593 行定义.

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

◆ CarlaDepthCameraPublisher() [3/3]

carla::ros2::CarlaDepthCameraPublisher::CarlaDepthCameraPublisher ( CarlaDepthCameraPublisher && other)

移动构造函数。

CarlaDepthCameraPublisher类的移动构造函数

创建一个新的CarlaDepthCameraPublisher对象,通过移动另一个CarlaDepthCameraPublisher对象的资源来初始化。

参数
other要移动的CarlaDepthCameraPublisher对象

在文件 CarlaDepthCameraPublisher.cpp624 行定义.

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

成员函数说明

◆ HasBeenInitialized()

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

检查深度相机发布者是否已初始化。

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

在文件 CarlaDepthCameraPublisher.cpp125 行定义.

引用了 _impl_info.

◆ Init()

bool carla::ros2::CarlaDepthCameraPublisher::Init ( )

初始化函数,用于设置ROS节点和发布者。

初始化深度相机发布者。

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

在文件 CarlaDepthCameraPublisher.cpp148 行定义.

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

+ 函数调用图:

◆ InitImage()

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

初始化深度图像数据。

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

输出错误信息,表示类型支持无效。

在文件 CarlaDepthCameraPublisher.cpp156 行定义.

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

被这些函数引用 Init().

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

◆ InitInfo()

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

初始化相机信息发布者的DDS相关组件。

该函数负责为相机信息创建DDS域参与者、发布者、主题和数据写入器,并处理可能出现的错误。

返回
true 如果所有组件都成功创建,否则返回false。

在文件 CarlaDepthCameraPublisher.cpp216 行定义.

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

被这些函数引用 Init().

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

◆ InitInfoData()

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

在文件 CarlaDepthCameraPublisher.cpp138 行定义.

引用了 _impl_info , 以及 SetInfoRegionOfInterest().

+ 函数调用图:

◆ operator=() [1/2]

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

移动赋值运算符。

移动赋值运算符重载

将另一个CarlaDepthCameraPublisher对象的资源移动到当前对象。

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

在文件 CarlaDepthCameraPublisher.cpp640 行定义.

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

◆ operator=() [2/2]

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

拷贝赋值运算符。

赋值运算符重载

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

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

在文件 CarlaDepthCameraPublisher.cpp608 行定义.

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

◆ Publish()

bool carla::ros2::CarlaDepthCameraPublisher::Publish ( )

发布深度图像和相机信息。

该函数负责调用其他函数来发布深度图像和相机信息。

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

在文件 CarlaDepthCameraPublisher.cpp273 行定义.

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

+ 函数调用图:

◆ PublishImage()

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

发布深度图像

该函数尝试通过FastRTPS发布深度图像数据。 如果发布成功,返回true;否则根据返回的错误码输出相应的错误信息,并返回false。

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

在文件 CarlaDepthCameraPublisher.cpp286 行定义.

被这些函数引用 Publish().

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

◆ PublishInfo()

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

发布深度相机信息

此函数尝试通过Fast RTPS发布深度相机的信息。 如果发布成功,则返回true;否则,根据返回码输出相应的错误信息并返回false。

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

Fast RTPS实例句柄

调用数据写入函数并获取返回码

检查返回码,并处理各种可能的错误情况

发布成功

发生一般错误

请求的操作不被支持

提供了错误的参数

调用前的条件未满足

资源不足

实体未启用

试图修改不可变的策略

策略不一致

实体已被删除

操作超时

没有数据

非法操作

安全策略不允许的操作

未知错误

在文件 CarlaDepthCameraPublisher.cpp374 行定义.

引用了 _impl_info.

被这些函数引用 Publish().

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

◆ SetCameraInfoData()

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

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

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

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

在文件 CarlaDepthCameraPublisher.cpp526 行定义.

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

+ 函数调用图:

◆ SetData()

void carla::ros2::CarlaDepthCameraPublisher::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包含图像数据的vector,数据格式为BGRA,每个像素4个字节

在文件 CarlaDepthCameraPublisher.cpp501 行定义.

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

被这些函数引用 SetImageData().

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

◆ SetImageData()

void carla::ros2::CarlaDepthCameraPublisher::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,每个像素4个字节

在文件 CarlaDepthCameraPublisher.cpp464 行定义.

引用了 SetData().

+ 函数调用图:

◆ SetInfoRegionOfInterest()

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

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

设置图像的感兴趣区域(ROI),包括偏移量、高度、宽度以及是否进行校正。

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

在文件 CarlaDepthCameraPublisher.cpp481 行定义.

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

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaDepthCameraPublisher.h49 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaDepthCameraPublisherImpl> carla::ros2::CarlaDepthCameraPublisher::_impl
private

◆ _impl_info

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

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