#include <CarlaSemanticLidarPublisher.h>
类 carla::ros2::CarlaSemanticLidarPublisher 继承关系图:
carla::ros2::CarlaSemanticLidarPublisher 的协作图:Public 成员函数 | |
| CarlaSemanticLidarPublisher (CarlaSemanticLidarPublisher &&) | |
| CarlaSemanticLidarPublisher类的移动构造函数。 更多... | |
| CarlaSemanticLidarPublisher (const CarlaSemanticLidarPublisher &) | |
| CarlaSemanticLidarPublisher类的拷贝构造函数。 更多... | |
| CarlaSemanticLidarPublisher (const char *ros_name="", const char *parent="") | |
| CarlaSemanticLidarPublisher类的构造函数。 更多... | |
| bool | Init () |
| 初始化Carla语义激光雷达数据发布者。 更多... | |
| CarlaSemanticLidarPublisher & | operator= (CarlaSemanticLidarPublisher &&) |
| 移动赋值运算符重载。 更多... | |
| CarlaSemanticLidarPublisher & | operator= (const CarlaSemanticLidarPublisher &) |
| 拷贝赋值运算符重载。 更多... | |
| bool | Publish () |
| void | SetData (int32_t seconds, uint32_t nanoseconds, size_t elements, size_t height, size_t width, float *data) |
| 设置激光雷达数据,包括时间戳、数据尺寸以及浮点数据数组,并对数据进行预处理。 更多... | |
| const char * | type () const override |
| ~CarlaSemanticLidarPublisher () | |
| CarlaSemanticLidarPublisher类的析构函数。 更多... | |
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 成员函数 | |
| void | SetData (int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, std::vector< uint8_t > &&data) |
| 设置激光雷达数据,包括时间戳、数据尺寸以及字节数据。 更多... | |
Private 属性 | |
| std::shared_ptr< CarlaSemanticLidarPublisherImpl > | _impl |
额外继承的成员函数 | |
Protected 属性 继承自 carla::ros2::CarlaPublisher | |
| std::string | _frame_id = "" |
| std::string | _name = "" |
| std::string | _parent = "" |
在文件 CarlaSemanticLidarPublisher.h 第 18 行定义.
| carla::ros2::CarlaSemanticLidarPublisher::CarlaSemanticLidarPublisher | ( | const char * | ros_name = "", |
| const char * | parent = "" |
||
| ) |
CarlaSemanticLidarPublisher类的构造函数。
初始化CarlaSemanticLidarPublisher对象,创建内部实现对象,并设置ROS节点名称和父节点名称。
| ros_name | ROS节点名称。 |
| parent | 父节点名称或空字符串(如果无父节点)。 |
在文件 CarlaSemanticLidarPublisher.cpp 第 299 行定义.
引用了 carla::ros2::CarlaPublisher::_name, carla::ros2::CarlaPublisher::_parent , 以及 carla::ros2::CarlaPublisher::parent().
函数调用图:| carla::ros2::CarlaSemanticLidarPublisher::~CarlaSemanticLidarPublisher | ( | ) |
CarlaSemanticLidarPublisher类的析构函数。
清理CarlaSemanticLidarPublisher对象,释放所有资源。 这包括删除数据写入器、发布者、主题和参与者(如果它们存在)。
在文件 CarlaSemanticLidarPublisher.cpp 第 310 行定义.
引用了 _impl.
| carla::ros2::CarlaSemanticLidarPublisher::CarlaSemanticLidarPublisher | ( | const CarlaSemanticLidarPublisher & | other | ) |
CarlaSemanticLidarPublisher类的拷贝构造函数。
通过另一个CarlaSemanticLidarPublisher对象来初始化当前对象,实现深拷贝(如果_impl是智能指针则实现浅拷贝)。
| other | 要拷贝的CarlaSemanticLidarPublisher对象。 |
在文件 CarlaSemanticLidarPublisher.cpp 第 334 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
| carla::ros2::CarlaSemanticLidarPublisher::CarlaSemanticLidarPublisher | ( | CarlaSemanticLidarPublisher && | other | ) |
CarlaSemanticLidarPublisher类的移动构造函数。
通过另一个CarlaSemanticLidarPublisher对象(右值引用)来初始化当前对象,实现资源的转移。
| other | 要移动的CarlaSemanticLidarPublisher对象(右值)。 |
在文件 CarlaSemanticLidarPublisher.cpp 第 363 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
| bool carla::ros2::CarlaSemanticLidarPublisher::Init | ( | ) |
初始化Carla语义激光雷达数据发布者。
该函数负责创建Fast-DDS的域参与者、发布者、话题和数据写入器,并注册类型支持。
在文件 CarlaSemanticLidarPublisher.cpp 第 62 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
| CarlaSemanticLidarPublisher & carla::ros2::CarlaSemanticLidarPublisher::operator= | ( | CarlaSemanticLidarPublisher && | other | ) |
移动赋值运算符重载。
将当前对象替换为另一个CarlaSemanticLidarPublisher对象(右值)的资源转移。
| other | 要赋值的CarlaSemanticLidarPublisher对象(右值)。 |
在文件 CarlaSemanticLidarPublisher.cpp 第 377 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
| CarlaSemanticLidarPublisher & carla::ros2::CarlaSemanticLidarPublisher::operator= | ( | const CarlaSemanticLidarPublisher & | other | ) |
拷贝赋值运算符重载。
将当前对象替换为另一个CarlaSemanticLidarPublisher对象的拷贝。
| other | 要赋值的CarlaSemanticLidarPublisher对象。 |
在文件 CarlaSemanticLidarPublisher.cpp 第 348 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_name , 以及 carla::ros2::CarlaPublisher::_parent.
| bool carla::ros2::CarlaSemanticLidarPublisher::Publish | ( | ) |
在文件 CarlaSemanticLidarPublisher.cpp 第 114 行定义.
| void carla::ros2::CarlaSemanticLidarPublisher::SetData | ( | int32_t | seconds, |
| uint32_t | nanoseconds, | ||
| size_t | elements, | ||
| size_t | height, | ||
| size_t | width, | ||
| float * | data | ||
| ) |
设置激光雷达数据,包括时间戳、数据尺寸以及浮点数据数组,并对数据进行预处理。
此函数首先遍历浮点数据数组(除了第一个元素),将其中的每个元素乘以-1(即取反)。 然后,它将浮点数数据转换为字节序列,并调用另一个重载的SetData函数来设置处理后的数据。
| seconds | 时间戳的秒部分 |
| nanoseconds | 时间戳的纳秒部分 |
| elements | 每个点的数据元素数量(例如,一个点可能包含x, y, z坐标等) |
| height | 数据的高度(行数) |
| width | 数据的宽度(列数) |
| data | 指向浮点数据数组的指针,这些数据将被处理并用于设置激光雷达数据 |
在文件 CarlaSemanticLidarPublisher.cpp 第 206 行定义.
被这些函数引用 SetData().
函数调用图:
这是这个函数的调用关系图:
|
private |
设置激光雷达数据,包括时间戳、数据尺寸以及字节数据。
此函数创建并设置ROS消息头(Header)、点字段描述符(PointField)以及激光雷达数据(Lidar)的相关属性。 它使用提供的时间戳、高度、宽度和字节数据来填充这些属性,并准备激光雷达数据以供发布。
| seconds | 时间戳的秒部分 |
| nanoseconds | 时间戳的纳秒部分 |
| height | 数据的高度(行数) |
| width | 数据的宽度(点数/列数) |
| data | 包含激光雷达点数据的字节向量,这些数据将被直接用于设置激光雷达消息的数据部分 |
在文件 CarlaSemanticLidarPublisher.cpp 第 238 行定义.
引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, sensor_msgs::msg::PointField::count(), sensor_msgs::msg::PointField::datatype(), sensor_msgs::msg::PointField::name(), builtin_interfaces::msg::Time::nanosec(), sensor_msgs::msg::PointField::offset(), sensor_msgs::msg::PointField__FLOAT32, sensor_msgs::msg::PointField__UINT32 , 以及 builtin_interfaces::msg::Time::sec().
函数调用图:
|
inlineoverridevirtual |
实现了 carla::ros2::CarlaPublisher.
在文件 CarlaSemanticLidarPublisher.h 第 30 行定义.
|
private |
在文件 CarlaSemanticLidarPublisher.h 第 36 行定义.
被这些函数引用 CarlaSemanticLidarPublisher(), Init(), operator=(), SetData() , 以及 ~CarlaSemanticLidarPublisher().