#include <CarlaSemanticLidarPublisher.h>
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类的析构函数。 | |
![]() | |
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 成员函数 | |
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 |
额外继承的成员函数 | |
![]() | |
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 |