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

用于发布CARLA碰撞事件的ROS 2发布者类。 更多...

#include <CarlaCollisionPublisher.h>

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

Public 成员函数

 CarlaCollisionPublisher (CarlaCollisionPublisher &&)
 移动构造函数。
 
 CarlaCollisionPublisher (const CarlaCollisionPublisher &)
 拷贝构造函数。
 
 CarlaCollisionPublisher (const char *ros_name="", const char *parent="")
 构造函数,初始化CarlaCollisionPublisher。
 
bool Init ()
 初始化发布者。
 
CarlaCollisionPublisheroperator= (CarlaCollisionPublisher &&)
 移动赋值运算符。
 
CarlaCollisionPublisheroperator= (const CarlaCollisionPublisher &)
 赋值运算符。
 
bool Publish ()
 发布碰撞事件信息。
 
void SetData (int32_t seconds, uint32_t nanoseconds, uint32_t actor_id, float x, float y, float z)
 设置要发布的碰撞事件数据。
 
const char * type () const override
 重写基类中的type函数,返回此发布者的类型。
 
 ~CarlaCollisionPublisher ()
 析构函数,清理资源并释放内部实现。
 
- 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, uint32_t actor_id, std::vector< float > &&data)
 另一个版本的SetData函数,允许传递碰撞位置数据的向量。
 

Private 属性

std::shared_ptr< CarlaCollisionPublisherImpl_impl
 指向内部实现结构体的智能指针。
 

额外继承的成员函数

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

详细描述

用于发布CARLA碰撞事件的ROS 2发布者类。

该类继承自CarlaPublisher,并专门用于发布碰撞事件信息,如碰撞时间、碰撞物体的ID和碰撞位置。

在文件 CarlaCollisionPublisher.h31 行定义.

构造及析构函数说明

◆ CarlaCollisionPublisher() [1/3]

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

构造函数,初始化CarlaCollisionPublisher。

CarlaCollisionPublisher类的构造函数

参数
ros_nameROS 2节点的名称,默认为空字符串。
parent父节点的名称,默认为空字符串。

初始化CarlaCollisionPublisher对象,包括设置ROS名称、父节点以及内部实现对象。

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

在文件 CarlaCollisionPublisher.cpp312 行定义.

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

+ 函数调用图:

◆ ~CarlaCollisionPublisher()

carla::ros2::CarlaCollisionPublisher::~CarlaCollisionPublisher ( )

析构函数,清理资源并释放内部实现。

CarlaCollisionPublisher类的析构函数

清理资源,包括删除数据写入器、发布者、主题和参与者。

在文件 CarlaCollisionPublisher.cpp322 行定义.

引用了 _impl.

◆ CarlaCollisionPublisher() [2/3]

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

拷贝构造函数。

CarlaCollisionPublisher类的拷贝构造函数

参数
other要拷贝的CarlaCollisionPublisher对象。

创建并初始化一个新的CarlaCollisionPublisher对象,作为另一个CarlaCollisionPublisher对象的拷贝。

参数
other要拷贝的CarlaCollisionPublisher对象

在文件 CarlaCollisionPublisher.cpp345 行定义.

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

◆ CarlaCollisionPublisher() [3/3]

carla::ros2::CarlaCollisionPublisher::CarlaCollisionPublisher ( CarlaCollisionPublisher && other)

移动构造函数。

CarlaCollisionPublisher类的移动构造函数

参数
other要移动的CarlaCollisionPublisher对象。

创建并初始化一个新的CarlaCollisionPublisher对象,作为另一个CarlaCollisionPublisher对象的移动。

参数
other要移动的CarlaCollisionPublisher对象

在文件 CarlaCollisionPublisher.cpp374 行定义.

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

成员函数说明

◆ Init()

bool carla::ros2::CarlaCollisionPublisher::Init ( )

初始化发布者。

初始化CarlaCollisionPublisher

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

该函数负责初始化CarlaCollisionPublisher,包括创建DDS域参与者、发布者、主题和数据写入器,并注册消息类型。

检查类型支持是否有效

如果_type为nullptr,则打印错误信息并返回false。

设置域参与者QoS策略

使用默认的域参与者QoS策略,并设置名称。

创建域参与者

使用DomainParticipantFactory创建域参与者,如果失败则打印错误信息并返回false。

注册类型支持

使用类型支持对象注册消息类型到域参与者。

设置发布者QoS策略

使用默认的发布者QoS策略。

创建发布者

在域参与者中创建一个发布者,如果失败则打印错误信息并返回false。

设置主题QoS策略

使用默认的主题QoS策略。

构建主题名称

根据_name和_parent成员变量构建主题名称。

创建主题

在域参与者中创建一个主题,如果失败则打印错误信息并返回false。

设置数据写入器QoS策略

使用默认的数据写入器QoS策略,并设置历史内存策略为预分配并允许重新分配。

创建数据写入器

在发布者中创建一个数据写入器,并关联监听器,如果失败则打印错误信息并返回false。

设置帧ID

将_frame_id设置为_name的值。

初始化成功

初始化所有DDS组件成功后返回true。

在文件 CarlaCollisionPublisher.cpp90 行定义.

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

◆ operator=() [1/2]

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

移动赋值运算符。

移动赋值运算符重载

参数
other要移动赋值的CarlaCollisionPublisher对象。
返回
引用到当前对象。

将当前对象设置为另一个CarlaCollisionPublisher对象的移动。

参数
other要移动的CarlaCollisionPublisher对象
返回
引用当前对象

在文件 CarlaCollisionPublisher.cpp388 行定义.

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

◆ operator=() [2/2]

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

赋值运算符。

赋值运算符重载

参数
other要赋值的CarlaCollisionPublisher对象。
返回
引用到当前对象。

将当前对象设置为另一个CarlaCollisionPublisher对象的拷贝。

参数
other要拷贝的CarlaCollisionPublisher对象
返回
引用当前对象

在文件 CarlaCollisionPublisher.cpp359 行定义.

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

◆ Publish()

bool carla::ros2::CarlaCollisionPublisher::Publish ( )

发布碰撞事件信息。

发布碰撞数据

返回
如果发布成功,则返回true;否则返回false。

此函数尝试通过Fast-RTPS发布碰撞事件数据。 根据返回码(ReturnCode_t)判断发布是否成功,并输出相应的错误信息。

返回
bool 如果发布成功返回true,否则返回false。

用于存储Fast-RTPS实例句柄的变量

调用DataWriter的write方法尝试发布数据,并获取返回码

如果返回码为RETCODE_OK,表示发布成功

处理各种可能的错误返回码,并输出相应的错误信息

注解
以下分支处理不同的错误情况

如果返回码未知,则输出"UNKNOWN"错误信息

在文件 CarlaCollisionPublisher.cpp192 行定义.

引用了 _impl.

◆ SetData() [1/2]

void carla::ros2::CarlaCollisionPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
uint32_t actor_id,
float x,
float y,
float z )

设置要发布的碰撞事件数据。

设置碰撞数据,使用单独的x, y, z坐标

参数
seconds碰撞发生的时间(秒)。
nanoseconds碰撞发生的时间(纳秒)。
actor_id发生碰撞的物体的ID。
x碰撞位置的X坐标。
y碰撞位置的Y坐标。
z碰撞位置的Z坐标。

该函数将时间戳(秒和纳秒)、actor_id以及碰撞的x, y, z坐标作为参数, 并将这些数据封装成向量后调用重载的SetData函数。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
actor_id发生碰撞的actor的ID
x碰撞点的x坐标
y碰撞点的y坐标
z碰撞点的z坐标

在文件 CarlaCollisionPublisher.cpp272 行定义.

引用了 SetData().

被这些函数引用 SetData().

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

◆ SetData() [2/2]

void carla::ros2::CarlaCollisionPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
uint32_t actor_id,
std::vector< float > && data )
private

另一个版本的SetData函数,允许传递碰撞位置数据的向量。

设置碰撞数据,使用向量数据

这个函数是私有的,意味着它只能在CarlaCollisionPublisher类内部被调用。

参数
seconds碰撞发生的时间(秒)。
nanoseconds碰撞发生的时间(纳秒)。
actor_id发生碰撞的物体的ID。
data包含碰撞位置数据的向量(X, Y, Z)。

该函数将时间戳(秒和纳秒)、actor_id以及包含碰撞数据的向量作为参数, 并使用这些数据填充碰撞事件的消息结构。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
actor_id发生碰撞的actor的ID
data包含碰撞点x, y, z坐标的向量

在文件 CarlaCollisionPublisher.cpp287 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, builtin_interfaces::msg::Time::nanosec(), builtin_interfaces::msg::Time::sec(), geometry_msgs::msg::Vector3::x(), geometry_msgs::msg::Vector3::y() , 以及 geometry_msgs::msg::Vector3::z().

+ 函数调用图:

◆ type()

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

重写基类中的type函数,返回此发布者的类型。

返回
指向类型名称的常量字符指针,此处为"collision"。

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaCollisionPublisher.h98 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaCollisionPublisherImpl> carla::ros2::CarlaCollisionPublisher::_impl
private

指向内部实现结构体的智能指针。

使用shared_ptr来管理CarlaCollisionPublisherImpl的生命周期,允许多个对象共享同一个实现。

在文件 CarlaCollisionPublisher.h119 行定义.

被这些函数引用 CarlaCollisionPublisher(), CarlaCollisionPublisher(), Init(), operator=(), operator=(), Publish(), SetData() , 以及 ~CarlaCollisionPublisher().


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