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

CarlaTransformPublisher类继承自CarlaPublisher,用于在CARLA中发布变换信息到ROS2。 更多...

#include <CarlaTransformPublisher.h>

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

Public 成员函数

 CarlaTransformPublisher (CarlaTransformPublisher &&)
 移动构造函数,通过移动另一个CarlaTransformPublisher对象来初始化新对象。
 
 CarlaTransformPublisher (const CarlaTransformPublisher &)
 拷贝构造函数,通过拷贝另一个CarlaTransformPublisher对象来初始化新对象。
 
 CarlaTransformPublisher (const char *ros_name="", const char *parent="")
 构造函数,初始化CarlaTransformPublisher对象。
 
bool Init ()
 初始化函数,用于初始化CarlaTransformPublisher对象。
 
CarlaTransformPublisheroperator= (CarlaTransformPublisher &&)
 移动赋值运算符,将另一个CarlaTransformPublisher对象的内容移动到当前对象。
 
CarlaTransformPublisheroperator= (const CarlaTransformPublisher &)
 拷贝赋值运算符,将另一个CarlaTransformPublisher对象的内容复制到当前对象。
 
bool Publish ()
 发布函数,用于将变换信息发布到ROS2。
 
void SetData (int32_t seconds, uint32_t nanoseconds, const float *translation, const float *rotation)
 设置变换数据的函数。
 
const char * type () const override
 重写type函数,返回当前对象的类型字符串。
 
 ~CarlaTransformPublisher ()
 析构函数,释放CarlaTransformPublisher对象占用的资源。
 
- 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 属性

std::shared_ptr< CarlaTransformPublisherImpl_impl
 指向CarlaTransformPublisherImpl的智能指针,用于隐藏实现细节。
 

额外继承的成员函数

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

详细描述

CarlaTransformPublisher类继承自CarlaPublisher,用于在CARLA中发布变换信息到ROS2。

在文件 CarlaTransformPublisher.h31 行定义.

构造及析构函数说明

◆ CarlaTransformPublisher() [1/3]

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

构造函数,初始化CarlaTransformPublisher对象。

CarlaTransformPublisher 类的构造函数

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

初始化 CarlaTransformPublisher 对象,并设置 ROS 名称和父帧ID。

参数
ros_nameROS 节点名称
parent父帧ID

在文件 CarlaTransformPublisher.cpp317 行定义.

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

+ 函数调用图:

◆ ~CarlaTransformPublisher()

carla::ros2::CarlaTransformPublisher::~CarlaTransformPublisher ( )

析构函数,释放CarlaTransformPublisher对象占用的资源。

CarlaTransformPublisher 类的析构函数

清理资源,删除与 DDS(Data Distribution Service)相关的对象。

在文件 CarlaTransformPublisher.cpp327 行定义.

引用了 _impl.

◆ CarlaTransformPublisher() [2/3]

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

拷贝构造函数,通过拷贝另一个CarlaTransformPublisher对象来初始化新对象。

CarlaTransformPublisher 类的拷贝构造函数

参数
other要拷贝的CarlaTransformPublisher对象。

创建一个与现有对象相同的 CarlaTransformPublisher 对象。 注意:这里浅拷贝了 _impl 指针,假设 CarlaTransformPublisherImpl 类是正确管理其生命周期的。

参数
other要拷贝的对象

在文件 CarlaTransformPublisher.cpp351 行定义.

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

◆ CarlaTransformPublisher() [3/3]

carla::ros2::CarlaTransformPublisher::CarlaTransformPublisher ( CarlaTransformPublisher && other)

移动构造函数,通过移动另一个CarlaTransformPublisher对象来初始化新对象。

CarlaTransformPublisher 类的移动构造函数

参数
other要移动的CarlaTransformPublisher对象。

创建一个新的 CarlaTransformPublisher 对象,并将现有对象的资源移动到新对象中。

参数
other要移动的对象

在文件 CarlaTransformPublisher.cpp381 行定义.

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

成员函数说明

◆ Init()

bool carla::ros2::CarlaTransformPublisher::Init ( )

初始化函数,用于初始化CarlaTransformPublisher对象。

初始化CarlaTransformPublisher对象

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

该函数负责初始化CarlaTransformPublisher对象,包括设置DomainParticipant、Publisher、Topic和DataWriter。 如果在初始化过程中遇到任何错误,函数将输出错误信息并返回false。

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

检查_type是否为nullptr。如果是,则表示TypeSupport无效,输出错误信息并返回false。

设置DomainParticipant的QoS策略,并使用默认QoS创建一个DomainParticipant。 设置DomainParticipant的名称为_name。

如果DomainParticipant创建失败,则输出错误信息并返回false。

使用_type注册类型到DomainParticipant。

设置Publisher的QoS策略,并使用默认QoS创建一个Publisher。

如果Publisher创建失败,则输出错误信息并返回false。

设置Topic的QoS策略,并创建一个名为"rt/tf"的Topic。

如果Topic创建失败,则输出错误信息并返回false。

设置DataWriter的QoS策略,并创建一个DataWriter。 将history_memory_policy设置为PREALLOCATED_WITH_REALLOC_MEMORY_MODE。

如果DataWriter创建失败,则输出错误信息并返回false。

设置_frame_id为_name。

初始化成功,返回true。

在文件 CarlaTransformPublisher.cpp74 行定义.

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

◆ operator=() [1/2]

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

移动赋值运算符,将另一个CarlaTransformPublisher对象的内容移动到当前对象。

移动赋值运算符重载

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

将现有对象的资源移动到另一个 CarlaTransformPublisher 对象。

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

在文件 CarlaTransformPublisher.cpp395 行定义.

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

◆ operator=() [2/2]

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

拷贝赋值运算符,将另一个CarlaTransformPublisher对象的内容复制到当前对象。

赋值运算符重载

参数
other要复制的CarlaTransformPublisher对象。
返回
返回当前对象的引用。

将现有对象的值赋给另一个 CarlaTransformPublisher 对象。 注意:这里浅拷贝了 _impl 指针。

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

在文件 CarlaTransformPublisher.cpp366 行定义.

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

◆ Publish()

bool carla::ros2::CarlaTransformPublisher::Publish ( )

发布函数,用于将变换信息发布到ROS2。

发布Carla的变换信息

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

该函数负责使用DataWriter发布_impl->_transform中的数据。根据返回码(ReturnCode_t)处理不同的错误情况, 并输出相应的错误信息。如果发布成功,则返回true;否则返回false。

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

声明一个InstanceHandle_t类型的变量instance_handle,用于接收write方法的返回值。

调用DataWriter的write方法发布_impl->_transform数据,并获取返回码。

根据返回码处理不同的错误情况。

发布成功,返回true。

通用错误

请求的操作不受支持

传递给函数的参数无效

操作的前置条件未满足

系统资源不足,无法完成操作

实体未启用,无法执行操作

试图更改不可变的QoS策略

QoS策略不一致,无法设置

实体已被删除

操作超时

请求的数据不存在

执行了非法操作

安全策略不允许执行此操作

如果返回码不是预定义的任何值,则输出"UNKNOWN"错误信息

在文件 CarlaTransformPublisher.cpp158 行定义.

引用了 _impl.

◆ SetData()

void carla::ros2::CarlaTransformPublisher::SetData ( int32_t seconds,
uint32_t nanoseconds,
const float * translation,
const float * rotation )

设置变换数据的函数。

设置CarlaTransformPublisher的数据

参数
seconds变换的时间戳,秒部分。
nanoseconds变换的时间戳,纳秒部分。
translation变换的平移部分,数组包含x, y, z三个分量。
rotation变换的旋转部分,数组包含roll, pitch, yaw三个分量。

此函数用于更新位置和时间信息,并计算四元数旋转。 如果传入的位置或旋转与上一次的不同,则更新内部状态,并计算新的四元数旋转。

参数
seconds时间戳的秒部分
nanoseconds时间戳的纳秒部分
translation指向包含x, y, z位置信息的浮点数组的指针
rotation指向包含绕x, y, z轴旋转角度(以度为单位)的浮点数组的指针

在文件 CarlaTransformPublisher.cpp256 行定义.

引用了 carla::ros2::CarlaPublisher::_frame_id, _impl, carla::ros2::CarlaPublisher::_parent, geometry_msgs::msg::TransformStamped::child_frame_id(), geometry_msgs::msg::TransformStamped::header(), builtin_interfaces::msg::Time::nanosec(), geometry_msgs::msg::Transform::rotation(), builtin_interfaces::msg::Time::sec(), geometry_msgs::msg::TransformStamped::transform() , 以及 geometry_msgs::msg::Transform::translation().

+ 函数调用图:

◆ type()

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

重写type函数,返回当前对象的类型字符串。

返回
返回"transform"字符串,表示当前对象发布的消息类型为变换信息。

实现了 carla::ros2::CarlaPublisher.

在文件 CarlaTransformPublisher.h87 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaTransformPublisherImpl> carla::ros2::CarlaTransformPublisher::_impl
private

指向CarlaTransformPublisherImpl的智能指针,用于隐藏实现细节。

在文件 CarlaTransformPublisher.h93 行定义.

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


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