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

#include <CarlaRadarPublisher.h>

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

Public 成员函数

 CarlaRadarPublisher (CarlaRadarPublisher &&)
 CarlaRadarPublisher 类的移动构造函数
 
 CarlaRadarPublisher (const CarlaRadarPublisher &)
 CarlaRadarPublisher 类的拷贝构造函数
 
 CarlaRadarPublisher (const char *ros_name="", const char *parent="")
 CarlaRadarPublisher 类的构造函数
 
bool Init ()
 初始化CarlaRadarPublisher对象。
 
CarlaRadarPublisheroperator= (CarlaRadarPublisher &&)
 移动赋值运算符
 
CarlaRadarPublisheroperator= (const CarlaRadarPublisher &)
 拷贝赋值运算符
 
bool Publish ()
 发布雷达数据
 
void SetData (int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, const uint8_t *data)
 设置雷达数据
 
const char * type () const override
 
 ~CarlaRadarPublisher ()
 CarlaRadarPublisher 类的析构函数
 
- 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 成员函数

void SetData (int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, std::vector< uint8_t > &&data)
 设置雷达数据并发布
 

Private 属性

std::shared_ptr< CarlaRadarPublisherImpl_impl
 

额外继承的成员函数

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

详细描述

在文件 CarlaRadarPublisher.h19 行定义.

构造及析构函数说明

◆ CarlaRadarPublisher() [1/3]

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

CarlaRadarPublisher 类的构造函数

初始化 CarlaRadarPublisher 对象,并创建一个 CarlaRadarPublisherImpl 对象的智能指针。

参数
ros_nameROS 节点的名称
parent父节点的名称

< ROS 节点的名称

< 父节点的名称

在文件 CarlaRadarPublisher.cpp398 行定义.

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

+ 函数调用图:

◆ ~CarlaRadarPublisher()

carla::ros2::CarlaRadarPublisher::~CarlaRadarPublisher ( )

CarlaRadarPublisher 类的析构函数

清理资源,包括删除 DataWriter、Publisher、Topic 和 Participant。

< 删除 DataWriter

< 删除 Publisher

< 删除 Topic

< 删除 Participant

在文件 CarlaRadarPublisher.cpp408 行定义.

引用了 _impl.

◆ CarlaRadarPublisher() [2/3]

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

CarlaRadarPublisher 类的拷贝构造函数

使用另一个 CarlaRadarPublisher 对象来初始化当前对象。

参数
other另一个 CarlaRadarPublisher 对象

< 拷贝帧 ID

< 拷贝 ROS 节点的名称

< 拷贝父节点的名称

< 共享相同的 CarlaRadarPublisherImpl 对象

在文件 CarlaRadarPublisher.cpp431 行定义.

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

◆ CarlaRadarPublisher() [3/3]

carla::ros2::CarlaRadarPublisher::CarlaRadarPublisher ( CarlaRadarPublisher && other)

CarlaRadarPublisher 类的移动构造函数

使用另一个 CarlaRadarPublisher 对象(右值)来初始化当前对象。

参数
other另一个 CarlaRadarPublisher 对象(右值)

< 移动帧 ID

< 移动 ROS 节点的名称

< 移动父节点的名称

< 移动 CarlaRadarPublisherImpl 对象

在文件 CarlaRadarPublisher.cpp460 行定义.

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

成员函数说明

◆ Init()

bool carla::ros2::CarlaRadarPublisher::Init ( )

初始化CarlaRadarPublisher对象。

此函数负责创建Fast-DDS域参与者、发布者、主题和数据写入器,并注册ROS 2点云消息类型。

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

检查类型支持是否有效。如果_impl->_type为nullptr,表示类型支持无效,打印错误信息并返回false。

设置域参与者(DomainParticipant)的质量服务(Qos)参数,使用默认值,并设置名称。

检查域参与者是否创建成功。如果为nullptr,表示创建失败,打印错误信息并返回false。

注册类型支持到域参与者。

设置发布者(Publisher)的质量服务(Qos)参数,使用默认值。

创建发布者。

检查发布者是否创建成功。如果为nullptr,表示创建失败,打印错误信息并返回false。

设置主题(Topic)的质量服务(Qos)参数,使用默认值。

构造主题名称,根据基础名称"rt/carla/"和可能的父级名称以及本对象的名称。

创建主题。

检查主题是否创建成功。如果为nullptr,表示创建失败,打印错误信息并返回false。

设置数据写入器(DataWriter)的质量服务(Qos)参数,使用默认值,并设置历史内存策略为预分配并重新分配模式。

获取数据写入器监听器实例。

创建数据写入器。

检查数据写入器是否创建成功。如果为nullptr,表示创建失败,打印错误信息并返回false。

初始化成功,返回true。

在文件 CarlaRadarPublisher.cpp104 行定义.

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

◆ operator=() [1/2]

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

移动赋值运算符

使用另一个 CarlaRadarPublisher 对象(右值)来更新当前对象。

参数
other另一个 CarlaRadarPublisher 对象(右值)
返回
CarlaRadarPublisher& 当前对象的引用

< 移动帧 ID

< 移动 ROS 节点的名称

< 移动父节点的名称

< 移动 CarlaRadarPublisherImpl 对象

在文件 CarlaRadarPublisher.cpp474 行定义.

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

◆ operator=() [2/2]

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

拷贝赋值运算符

使用另一个 CarlaRadarPublisher 对象来更新当前对象。

参数
other另一个 CarlaRadarPublisher 对象
返回
CarlaRadarPublisher& 当前对象的引用

< 拷贝帧 ID

< 拷贝 ROS 节点的名称

< 拷贝父节点的名称

< 共享相同的 CarlaRadarPublisherImpl 对象

在文件 CarlaRadarPublisher.cpp445 行定义.

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

◆ Publish()

bool carla::ros2::CarlaRadarPublisher::Publish ( )

发布雷达数据

此函数尝试通过Fast-RTPS发布雷达数据。根据返回代码,函数会返回不同的结果,并在控制台上打印相应的错误信息。

返回
true 如果数据成功发布
false 如果数据发布失败,并根据返回代码打印错误信息

Fast-RTPS实例句柄

尝试写入雷达数据到数据写入器,并获取返回代码

根据返回代码处理不同的结果

数据成功发布

通用错误

操作不支持

参数错误

先决条件未满足

资源不足

功能未启用

不可变策略

策略不一致

已被删除

超时

无数据

非法操作

安全策略不允许

未知错误

在文件 CarlaRadarPublisher.cpp203 行定义.

引用了 _impl.

◆ SetData() [1/2]

void carla::ros2::CarlaRadarPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
size_t height,
size_t width,
size_t elements,
const uint8_t * data )

设置雷达数据

该函数接收雷达检测数据,并将其转换为内部使用的格式,然后调用另一个重载的SetData函数来发布数据。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height数据的高度(通常用于图像数据,这里可能表示雷达扫描的垂直分辨率)
width数据的宽度(通常用于图像数据,这里可能表示雷达扫描的水平分辨率)
elements数据点的数量
data指向雷达检测数据的指针,数据格式为carla::sensor::data::RadarDetection

在文件 CarlaRadarPublisher.cpp294 行定义.

引用了 carla::sensor::data::RadarDetection::altitude, carla::sensor::data::RadarDetection::azimuth, carla::sensor::data::RadarDetection::depth, carla::ros2::RadarDetectionWithPosition::detection, SetData(), carla::ros2::RadarDetectionWithPosition::x, carla::ros2::RadarDetectionWithPosition::y , 以及 carla::ros2::RadarDetectionWithPosition::z.

被这些函数引用 SetData().

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

◆ SetData() [2/2]

void carla::ros2::CarlaRadarPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
size_t height,
size_t width,
size_t elements,
std::vector< uint8_t > && data )
private

设置雷达数据并发布

该函数接收时间戳、数据尺寸、数据点数量以及数据本身,然后将这些数据封装成ROS消息格式并发布。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
height数据的高度
width数据的宽度
elements数据点的数量
data包含雷达检测数据的向量,数据格式为RadarDetectionWithPosition

在文件 CarlaRadarPublisher.cpp331 行定义.

引用了 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 , 以及 builtin_interfaces::msg::Time::sec().

+ 函数调用图:

◆ type()

const char * carla::ros2::CarlaRadarPublisher::type ( ) const
inlineoverridevirtual

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaRadarPublisher.h32 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaRadarPublisherImpl> carla::ros2::CarlaRadarPublisher::_impl
private

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