#include <CarlaDVSCameraPublisher.h>
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) |
初始化相机信息数据 | |
CarlaDVSCameraPublisher & | operator= (CarlaDVSCameraPublisher &&) |
移动赋值运算符重载。 | |
CarlaDVSCameraPublisher & | operator= (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的析构函数。 | |
![]() | |
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 |
额外继承的成员函数 | |
![]() | |
std::string | _frame_id = "" |
std::string | _name = "" |
std::string | _parent = "" |
在文件 CarlaDVSCameraPublisher.h 第 20 行定义.
carla::ros2::CarlaDVSCameraPublisher::CarlaDVSCameraPublisher | ( | const char * | ros_name = "", |
const char * | parent = "" ) |
CarlaDVSCameraPublisher的构造函数。
初始化CarlaDVSCameraPublisher对象,包括内部实现对象、相机信息发布者对象和点云发布者对象。
ros_name | ROS节点名称。 |
parent | 父节点或相关实体的名称。 |
在文件 CarlaDVSCameraPublisher.cpp 第 718 行定义.
引用了 carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 carla::ros2::CarlaPublisher::parent().
carla::ros2::CarlaDVSCameraPublisher::~CarlaDVSCameraPublisher | ( | ) |
CarlaDVSCameraPublisher的析构函数。
清理CarlaDVSCameraPublisher对象,包括释放内部实现对象、相机信息发布者对象和点云发布者对象所占用的资源。
在文件 CarlaDVSCameraPublisher.cpp 第 730 行定义.
引用了 _impl, _info , 以及 _point_cloud.
carla::ros2::CarlaDVSCameraPublisher::CarlaDVSCameraPublisher | ( | const CarlaDVSCameraPublisher & | other | ) |
CarlaDVSCameraPublisher的拷贝构造函数。
创建一个新的CarlaDVSCameraPublisher对象,并复制另一个CarlaDVSCameraPublisher对象的成员变量。
other | 要复制的CarlaDVSCameraPublisher对象。 |
在文件 CarlaDVSCameraPublisher.cpp 第 783 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _info, carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 _point_cloud.
carla::ros2::CarlaDVSCameraPublisher::CarlaDVSCameraPublisher | ( | CarlaDVSCameraPublisher && | other | ) |
CarlaDVSCameraPublisher的移动构造函数。
创建一个新的CarlaDVSCameraPublisher对象,并移动另一个CarlaDVSCameraPublisher对象的成员变量。
other | 要移动的CarlaDVSCameraPublisher对象。 |
在文件 CarlaDVSCameraPublisher.cpp 第 816 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _info, carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 _point_cloud.
bool carla::ros2::CarlaDVSCameraPublisher::HasBeenInitialized | ( | ) | const |
bool carla::ros2::CarlaDVSCameraPublisher::Init | ( | ) |
初始化CarlaDVSCameraPublisher
在文件 CarlaDVSCameraPublisher.cpp 第 179 行定义.
引用了 InitImage(), InitInfo() , 以及 InitPointCloud().
|
private |
初始化图像发布相关资源
在文件 CarlaDVSCameraPublisher.cpp 第 187 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
被这些函数引用 Init().
|
private |
初始化相机信息发布相关资源
设置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.cpp 第 240 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _info, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
被这些函数引用 Init().
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_offset | X轴偏移量 |
y_offset | Y轴偏移量 |
height | 图像高度 |
width | 图像宽度 |
fov | 视野角度(以弧度为单位) |
do_rectify | 是否进行校正 |
在文件 CarlaDVSCameraPublisher.cpp 第 169 行定义.
引用了 _info , 以及 SetInfoRegionOfInterest().
|
private |
初始化点云发布相关资源
设置DomainParticipant的QoS策略
获取DomainParticipantFactory的实例
创建DomainParticipant
注册类型到DomainParticipant
设置Publisher的QoS策略
设置Topic的QoS策略
设置DataWriter的QoS策略,并指定历史内存策略为预分配并允许重新分配
设置帧ID为参与者名称
在文件 CarlaDVSCameraPublisher.cpp 第 306 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 _point_cloud.
被这些函数引用 Init().
CarlaDVSCameraPublisher & carla::ros2::CarlaDVSCameraPublisher::operator= | ( | CarlaDVSCameraPublisher && | other | ) |
移动赋值运算符重载。
将另一个CarlaDVSCameraPublisher对象的成员变量移动到当前对象。
other | 要移动的CarlaDVSCameraPublisher对象。 |
在文件 CarlaDVSCameraPublisher.cpp 第 832 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _info, carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 _point_cloud.
CarlaDVSCameraPublisher & carla::ros2::CarlaDVSCameraPublisher::operator= | ( | const CarlaDVSCameraPublisher & | other | ) |
赋值运算符重载。
将另一个CarlaDVSCameraPublisher对象的成员变量赋值给当前对象。
other | 要赋值的CarlaDVSCameraPublisher对象。 |
在文件 CarlaDVSCameraPublisher.cpp 第 799 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _info, carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 _point_cloud.
bool carla::ros2::CarlaDVSCameraPublisher::Publish | ( | ) |
发布图像、信息和点云数据。
此方法会依次调用 PublishImage()、PublishInfo() 和 PublishPointCloud() 方法, 只有当这三个方法都返回 true 时,此方法才返回 true。
在文件 CarlaDVSCameraPublisher.cpp 第 364 行定义.
引用了 PublishImage(), PublishInfo() , 以及 PublishPointCloud().
|
private |
发布图像数据。
使用 DataWriter 将图像数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。
在文件 CarlaDVSCameraPublisher.cpp 第 373 行定义.
引用了 _impl.
被这些函数引用 Publish().
|
private |
发布信息数据。
使用 DataWriter 将信息数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。
在文件 CarlaDVSCameraPublisher.cpp 第 440 行定义.
引用了 _info.
被这些函数引用 Publish().
|
private |
发布点云数据。
使用 DataWriter 将点云数据发布到 DDS 网络中。 根据返回的 ReturnCode 判断发布是否成功,并输出相应的错误信息。
在文件 CarlaDVSCameraPublisher.cpp 第 507 行定义.
引用了 _point_cloud.
被这些函数引用 Publish().
void carla::ros2::CarlaDVSCameraPublisher::SetCameraInfoData | ( | int32_t | seconds, |
uint32_t | nanoseconds ) |
设置相机信息数据的时间戳和帧ID。
该函数接收时间戳,并设置相机信息消息的时间戳和帧ID。
seconds | 时间戳的秒部分 |
nanoseconds | 时间戳的纳秒部分 |
在文件 CarlaDVSCameraPublisher.cpp 第 633 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().
|
private |
设置图像数据,包括时间戳、图像尺寸和图像数据。
该函数接收时间戳、图像高度、图像宽度和图像数据,并设置图像消息的相关字段, 包括时间戳、帧ID、图像尺寸、编码方式以及图像数据。
seconds | 时间戳的秒部分 |
nanoseconds | 时间戳的纳秒部分 |
height | 图像的高度 |
width | 图像的宽度 |
data | 图像数据的右值引用,用于移动语义 |
在文件 CarlaDVSCameraPublisher.cpp 第 606 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, _info, _point_cloud, builtin_interfaces::msg::Time::nanosec() , 以及 builtin_interfaces::msg::Time::sec().
被这些函数引用 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.cpp 第 581 行定义.
引用了 carla::sensor::data::DVSEvent::pol, SetData(), carla::sensor::data::DVSEvent::x , 以及 carla::sensor::data::DVSEvent::y.
|
private |
设置相机信息中的感兴趣区域(Region Of Interest, ROI)。
该函数用于配置相机信息的ROI,包括x和y偏移量、高度、宽度以及是否进行校正。
x_offset | ROI的x轴偏移量。 |
y_offset | ROI的y轴偏移量。 |
height | ROI的高度。 |
width | ROI的宽度。 |
do_rectify | 是否对ROI进行校正。 |
在文件 CarlaDVSCameraPublisher.cpp 第 653 行定义.
引用了 _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().
void carla::ros2::CarlaDVSCameraPublisher::SetPointCloudData | ( | size_t | height, |
size_t | width, | ||
size_t | elements, | ||
const uint8_t * | data ) |
设置点云数据。
该函数用于配置点云消息,包括高度、宽度、元素数量以及点云数据。
height | 点云的高度(即点的行数)。 |
width | 点云的宽度(即点的列数)。 |
elements | 点云中的元素数量。 |
data | 指向点云数据的指针。 |
在文件 CarlaDVSCameraPublisher.cpp 第 672 行定义.
引用了 _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.
|
private |
|
inlineoverridevirtual |
实现了 carla::ros2::CarlaPublisher.
在文件 CarlaDVSCameraPublisher.h 第 37 行定义.
|
private |
在文件 CarlaDVSCameraPublisher.h 第 52 行定义.
被这些函数引用 CarlaDVSCameraPublisher(), CarlaDVSCameraPublisher(), InitImage(), operator=(), operator=(), PublishImage(), SetData() , 以及 ~CarlaDVSCameraPublisher().
|
private |
|
private |