用于在ROS 2中发布CARLA深度相机数据的类。
这个类继承自CarlaPublisher,专门用于初始化、设置和发布深度相机数据。
更多...
#include <CarlaDepthCameraPublisher.h>
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) |
初始化深度相机信息数据。 | |
CarlaDepthCameraPublisher & | operator= (CarlaDepthCameraPublisher &&) |
移动赋值运算符。 | |
CarlaDepthCameraPublisher & | operator= (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对象。 | |
![]() | |
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 |
额外继承的成员函数 | |
![]() | |
std::string | _frame_id = "" |
std::string | _name = "" |
std::string | _parent = "" |
用于在ROS 2中发布CARLA深度相机数据的类。
这个类继承自CarlaPublisher,专门用于初始化、设置和发布深度相机数据。
在文件 CarlaDepthCameraPublisher.h 第 24 行定义.
carla::ros2::CarlaDepthCameraPublisher::CarlaDepthCameraPublisher | ( | const char * | ros_name = "", |
const char * | parent = "" ) |
构造函数,用于创建CarlaDepthCameraPublisher对象。
CarlaDepthCameraPublisher类的构造函数
ros_name | ROS节点的名称(可选)。 |
parent | 父节点的名称(可选)。 |
初始化CarlaDepthCameraPublisher对象,创建_impl和_impl_info智能指针成员变量,并设置ROS节点名和父节点名。
ros_name | ROS节点名 |
parent | 父节点名 |
在文件 CarlaDepthCameraPublisher.cpp 第 544 行定义.
引用了 carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 carla::ros2::CarlaPublisher::parent().
carla::ros2::CarlaDepthCameraPublisher::~CarlaDepthCameraPublisher | ( | ) |
析构函数,用于销毁CarlaDepthCameraPublisher对象。
CarlaDepthCameraPublisher类的析构函数
清理CarlaDepthCameraPublisher对象,释放_impl和_impl_info成员变量所占用的资源。
在文件 CarlaDepthCameraPublisher.cpp 第 555 行定义.
引用了 _impl , 以及 _impl_info.
carla::ros2::CarlaDepthCameraPublisher::CarlaDepthCameraPublisher | ( | const CarlaDepthCameraPublisher & | other | ) |
拷贝构造函数。
CarlaDepthCameraPublisher类的拷贝构造函数
创建一个新的CarlaDepthCameraPublisher对象,作为另一个CarlaDepthCameraPublisher对象的副本。
other | 要拷贝的CarlaDepthCameraPublisher对象 |
在文件 CarlaDepthCameraPublisher.cpp 第 593 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
carla::ros2::CarlaDepthCameraPublisher::CarlaDepthCameraPublisher | ( | CarlaDepthCameraPublisher && | other | ) |
移动构造函数。
CarlaDepthCameraPublisher类的移动构造函数
创建一个新的CarlaDepthCameraPublisher对象,通过移动另一个CarlaDepthCameraPublisher对象的资源来初始化。
other | 要移动的CarlaDepthCameraPublisher对象 |
在文件 CarlaDepthCameraPublisher.cpp 第 624 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
bool carla::ros2::CarlaDepthCameraPublisher::HasBeenInitialized | ( | ) | const |
检查深度相机发布者是否已初始化。
在文件 CarlaDepthCameraPublisher.cpp 第 125 行定义.
引用了 _impl_info.
bool carla::ros2::CarlaDepthCameraPublisher::Init | ( | ) |
初始化函数,用于设置ROS节点和发布者。
初始化深度相机发布者。
在文件 CarlaDepthCameraPublisher.cpp 第 148 行定义.
引用了 InitImage() , 以及 InitInfo().
|
private |
初始化深度图像数据。
输出错误信息,表示类型支持无效。
在文件 CarlaDepthCameraPublisher.cpp 第 156 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
被这些函数引用 Init().
|
private |
初始化相机信息发布者的DDS相关组件。
该函数负责为相机信息创建DDS域参与者、发布者、主题和数据写入器,并处理可能出现的错误。
在文件 CarlaDepthCameraPublisher.cpp 第 216 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
被这些函数引用 Init().
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_offset | X轴偏移量。 |
y_offset | Y轴偏移量。 |
height | 图像高度。 |
width | 图像宽度。 |
fov | 视野角度。 |
do_rectify | 是否进行校正。 |
在文件 CarlaDepthCameraPublisher.cpp 第 138 行定义.
引用了 _impl_info , 以及 SetInfoRegionOfInterest().
CarlaDepthCameraPublisher & carla::ros2::CarlaDepthCameraPublisher::operator= | ( | CarlaDepthCameraPublisher && | other | ) |
移动赋值运算符。
移动赋值运算符重载
将另一个CarlaDepthCameraPublisher对象的资源移动到当前对象。
other | 要移动的CarlaDepthCameraPublisher对象 |
在文件 CarlaDepthCameraPublisher.cpp 第 640 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
CarlaDepthCameraPublisher & carla::ros2::CarlaDepthCameraPublisher::operator= | ( | const CarlaDepthCameraPublisher & | other | ) |
拷贝赋值运算符。
赋值运算符重载
将另一个CarlaDepthCameraPublisher对象的值赋给当前对象。
other | 要赋值的CarlaDepthCameraPublisher对象 |
在文件 CarlaDepthCameraPublisher.cpp 第 608 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _impl_info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
bool carla::ros2::CarlaDepthCameraPublisher::Publish | ( | ) |
发布深度图像和相机信息。
该函数负责调用其他函数来发布深度图像和相机信息。
在文件 CarlaDepthCameraPublisher.cpp 第 273 行定义.
引用了 PublishImage() , 以及 PublishInfo().
|
private |
发布深度图像
该函数尝试通过FastRTPS发布深度图像数据。 如果发布成功,返回true;否则根据返回的错误码输出相应的错误信息,并返回false。
在文件 CarlaDepthCameraPublisher.cpp 第 286 行定义.
被这些函数引用 Publish().
|
private |
发布深度相机信息
此函数尝试通过Fast RTPS发布深度相机的信息。 如果发布成功,则返回true;否则,根据返回码输出相应的错误信息并返回false。
Fast RTPS实例句柄
调用数据写入函数并获取返回码
检查返回码,并处理各种可能的错误情况
发布成功
发生一般错误
请求的操作不被支持
提供了错误的参数
调用前的条件未满足
资源不足
实体未启用
试图修改不可变的策略
策略不一致
实体已被删除
操作超时
没有数据
非法操作
安全策略不允许的操作
未知错误
在文件 CarlaDepthCameraPublisher.cpp 第 374 行定义.
引用了 _impl_info.
被这些函数引用 Publish().
void carla::ros2::CarlaDepthCameraPublisher::SetCameraInfoData | ( | int32_t | seconds, |
uint32_t | nanoseconds ) |
设置相机信息数据的时间戳
设置相机信息的时间戳和帧ID。
seconds | 时间戳的秒部分 |
nanoseconds | 时间戳的纳秒部分 |
在文件 CarlaDepthCameraPublisher.cpp 第 526 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl_info, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().
|
private |
设置图像数据及其元数据
设置图像的时间戳、帧ID、宽度、高度、编码方式、字节序、步长以及图像数据。
seconds | 时间戳的秒部分 |
nanoseconds | 时间戳的纳秒部分 |
height | 图像的高度 |
width | 图像的宽度 |
data | 包含图像数据的vector,数据格式为BGRA,每个像素4个字节 |
在文件 CarlaDepthCameraPublisher.cpp 第 501 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().
被这些函数引用 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.cpp 第 464 行定义.
引用了 SetData().
|
private |
设置感兴趣区域(ROI)信息
设置图像的感兴趣区域(ROI),包括偏移量、高度、宽度以及是否进行校正。
x_offset | ROI的X轴偏移量 |
y_offset | ROI的Y轴偏移量 |
height | ROI的高度 |
width | ROI的宽度 |
do_rectify | 是否对ROI进行校正 |
在文件 CarlaDepthCameraPublisher.cpp 第 481 行定义.
引用了 _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().
|
inlineoverridevirtual |
实现了 carla::ros2::CarlaPublisher.
在文件 CarlaDepthCameraPublisher.h 第 49 行定义.
|
private |
|
private |