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

CarlaEgoVehicleControlSubscriber类,用于订阅并处理来自ROS2的自动驾驶车辆控制消息 更多...

#include <CarlaEgoVehicleControlSubscriber.h>

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

Public 成员函数

 CarlaEgoVehicleControlSubscriber (CarlaEgoVehicleControlSubscriber &&)
 移动构造函数,创建当前对象的移动拷贝。
 
 CarlaEgoVehicleControlSubscriber (const CarlaEgoVehicleControlSubscriber &)
 拷贝构造函数,创建当前对象的深拷贝。
 
 CarlaEgoVehicleControlSubscriber (void *vehicle, const char *ros_name="", const char *parent="")
 构造函数,初始化用户并关联到指定的车辆。
 
void DestroySubscriber ()
 销毁用户并释放相关资源。
 
void ForwardMessage (VehicleControl control)
 (内部使用)将控制消息转发给内部处理函数。
 
VehicleControl GetMessage ()
 获取最新的车辆控制消息。
 
void * GetVehicle ()
 获取与用户关联的车辆实例的指针。
 
bool HasNewMessage ()
 检查是否有新的控制消息到达。
 
bool Init ()
 初始化用户。
 
bool IsAlive ()
 检查用户是否仍然活跃。
 
CarlaEgoVehicleControlSubscriberoperator= (CarlaEgoVehicleControlSubscriber &&)
 移动赋值运算符,用于移动赋值。
 
CarlaEgoVehicleControlSubscriberoperator= (const CarlaEgoVehicleControlSubscriber &)
 拷贝赋值运算符,用于深拷贝赋值。
 
bool Read ()
 读取并处理新的控制消息。
 
const char * type () const override
 返回用户的类型名称。
 
 ~CarlaEgoVehicleControlSubscriber ()
 析构函数,清理资源并销毁用户。
 
- Public 成员函数 继承自 carla::ros2::CarlaSubscriber
 CarlaSubscriber ()=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 ~CarlaSubscriber ()=default
 

Private 成员函数

void SetData (int32_t seconds, uint32_t nanoseconds, uint32_t actor_id, std::vector< float > &&data)
 设置内部数据,包括时间戳、车辆ID和控制数据。
 

Private 属性

std::shared_ptr< CarlaEgoVehicleControlSubscriberImpl_impl
 指向内部实现结构的智能指针,用于隐藏实现细节。
 

额外继承的成员函数

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

详细描述

CarlaEgoVehicleControlSubscriber类,用于订阅并处理来自ROS2的自动驾驶车辆控制消息

用于订阅和控制CARLA中自车(ego vehicle)的类 此类可能包含与ROS 2节点相关的逻辑,用于接收来自CARLA的自车控制命令。

在文件 CarlaEgoVehicleControlSubscriber.h20 行定义.

构造及析构函数说明

◆ CarlaEgoVehicleControlSubscriber() [1/3]

carla::ros2::CarlaEgoVehicleControlSubscriber::CarlaEgoVehicleControlSubscriber ( void * vehicle,
const char * ros_name = "",
const char * parent = "" )

构造函数,初始化用户并关联到指定的车辆。

CarlaEgoVehicleControlSubscriber类的构造函数。

参数
vehicle指向车辆实例的指针。
ros_nameROS2节点的名称,默认为空字符串。
parent父节点的名称,默认为空字符串。

构造函数初始化内部实现对象,并设置相关属性,包括车辆对象指针、ROS节点名称和父节点名称。

参数
vehicle车辆对象指针。
ros_nameROS节点名称。
parent父节点名称。

在文件 CarlaEgoVehicleControlSubscriber.cpp314 行定义.

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

+ 函数调用图:

◆ ~CarlaEgoVehicleControlSubscriber()

carla::ros2::CarlaEgoVehicleControlSubscriber::~CarlaEgoVehicleControlSubscriber ( )

析构函数,清理资源并销毁用户。

CarlaEgoVehicleControlSubscriber类的析构函数。

析构函数负责清理订阅者所使用的资源。 它首先检查_impl指针是否为空,如果不为空,则依次删除数据读取器、订阅者、主题和参与者。

在文件 CarlaEgoVehicleControlSubscriber.cpp327 行定义.

引用了 _impl.

◆ CarlaEgoVehicleControlSubscriber() [2/3]

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

拷贝构造函数,创建当前对象的深拷贝。

CarlaEgoVehicleControlSubscriber类的拷贝构造函数。

拷贝构造函数通过复制另一个CarlaEgoVehicleControlSubscriber对象来初始化新对象。 它复制了所有成员变量,并设置了监听器的所有者。

参数
other要复制的CarlaEgoVehicleControlSubscriber对象。

在文件 CarlaEgoVehicleControlSubscriber.cpp351 行定义.

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

◆ CarlaEgoVehicleControlSubscriber() [3/3]

carla::ros2::CarlaEgoVehicleControlSubscriber::CarlaEgoVehicleControlSubscriber ( CarlaEgoVehicleControlSubscriber && other)

移动构造函数,创建当前对象的移动拷贝。

CarlaEgoVehicleControlSubscriber类的移动构造函数。

移动构造函数通过移动另一个CarlaEgoVehicleControlSubscriber对象的资源来初始化新对象。 它移动了所有成员变量,并设置了监听器的所有者。

参数
other要移动的CarlaEgoVehicleControlSubscriber对象。

在文件 CarlaEgoVehicleControlSubscriber.cpp384 行定义.

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

成员函数说明

◆ DestroySubscriber()

void carla::ros2::CarlaEgoVehicleControlSubscriber::DestroySubscriber ( )

销毁用户并释放相关资源。

销毁订阅者。

该函数将内部实现对象的存活标志设置为false,用于通知其他部分该订阅者已经不再活跃。

在文件 CarlaEgoVehicleControlSubscriber.cpp260 行定义.

引用了 _impl.

被这些函数引用 carla::ros2::CarlaSubscriberListenerImpl::on_subscription_matched().

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

◆ ForwardMessage()

void carla::ros2::CarlaEgoVehicleControlSubscriber::ForwardMessage ( VehicleControl control)

(内部使用)将控制消息转发给内部处理函数。

将车辆控制信息转发给内部实现。

参数
control包含控制指令的VehicleControl对象。
警告
此方法仅供内部使用,外部调用可能会导致未定义行为。

该函数将传入的车辆控制信息(VehicleControl)保存到内部实现对象的对应成员变量中, 并标记有新的消息到达。

参数
control车辆控制信息。

在文件 CarlaEgoVehicleControlSubscriber.cpp251 行定义.

引用了 _impl.

被这些函数引用 carla::ros2::CarlaSubscriberListenerImpl::on_data_available().

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

◆ GetMessage()

VehicleControl carla::ros2::CarlaEgoVehicleControlSubscriber::GetMessage ( )

获取最新的车辆控制消息。

获取最新的车辆控制信息。

返回
包含控制指令的VehicleControl对象。

该函数返回内部实现对象中保存的车辆控制信息,并将新的消息标志设置为false, 表示该消息已被读取。

返回
车辆控制信息。

在文件 CarlaEgoVehicleControlSubscriber.cpp271 行定义.

引用了 _impl.

◆ GetVehicle()

void * carla::ros2::CarlaEgoVehicleControlSubscriber::GetVehicle ( )

获取与用户关联的车辆实例的指针。

获取关联的车辆对象。

返回
指向车辆实例的指针。

该函数返回内部实现对象中保存的车辆对象指针。

返回
车辆对象指针。

在文件 CarlaEgoVehicleControlSubscriber.cpp302 行定义.

引用了 _impl.

◆ HasNewMessage()

bool carla::ros2::CarlaEgoVehicleControlSubscriber::HasNewMessage ( )

检查是否有新的控制消息到达。

检查是否有新的消息到达。

返回
如果有新消息,则返回true;否则返回false。

该函数返回内部实现对象的新消息标志,用于判断是否有新的车辆控制信息到达。

返回
如果有新的消息到达,则返回true;否则返回false。

在文件 CarlaEgoVehicleControlSubscriber.cpp292 行定义.

引用了 _impl.

◆ Init()

bool carla::ros2::CarlaEgoVehicleControlSubscriber::Init ( )

初始化用户。

初始化CARLA EgoVehicleControl消息的订阅者。

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

检查类型支持是否有效。

设置域参与者的QoS(Quality of Service)并创建域参与者。

注册消息类型。

设置订阅者的QoS并创建订阅者。

设置主题的QoS并创建主题。

设置数据读取器的QoS并创建数据读取器。

在文件 CarlaEgoVehicleControlSubscriber.cpp97 行定义.

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

◆ IsAlive()

bool carla::ros2::CarlaEgoVehicleControlSubscriber::IsAlive ( )

检查用户是否仍然活跃。

检查订阅者是否存活。

返回
如果用户活跃,则返回true;否则返回false

该函数返回内部实现对象的存活标志,用于判断订阅者是否仍然活跃。

返回
如果订阅者存活,则返回true;否则返回false。

在文件 CarlaEgoVehicleControlSubscriber.cpp282 行定义.

引用了 _impl.

◆ operator=() [1/2]

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

移动赋值运算符,用于移动赋值。

移动赋值运算符。

移动赋值运算符将当前对象替换为通过移动另一个CarlaEgoVehicleControlSubscriber对象的资源得到的对象。 它移动了所有成员变量,并设置了监听器的所有者。

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

在文件 CarlaEgoVehicleControlSubscriber.cpp400 行定义.

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

◆ operator=() [2/2]

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

拷贝赋值运算符,用于深拷贝赋值。

拷贝赋值运算符。

拷贝赋值运算符将当前对象替换为另一个CarlaEgoVehicleControlSubscriber对象的副本。 它复制了所有成员变量,并设置了监听器的所有者。

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

在文件 CarlaEgoVehicleControlSubscriber.cpp367 行定义.

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

◆ Read()

bool carla::ros2::CarlaEgoVehicleControlSubscriber::Read ( )

读取并处理新的控制消息。

读取并处理来自数据读取器的样本

返回
如果读取成功,则返回true;否则返回false。

该函数尝试从内部数据读取器中获取下一个样本,并根据返回的代码执行相应的操作。 如果成功获取样本,则返回true;否则,根据错误代码打印错误信息并返回false。

返回
bool 如果成功获取样本,则返回true;否则返回false。
待办事项
成功获取样本,返回true
待办事项
打印错误代码"RETCODE_ERROR"并返回false
待办事项
打印错误代码"RETCODE_UNSUPPORTED"并返回false
待办事项
打印错误代码"RETCODE_BAD_PARAMETER"并返回false
待办事项
打印错误代码"RETCODE_PRECONDITION_NOT_MET"并返回false
待办事项
打印错误代码"RETCODE_OUT_OF_RESOURCES"并返回false
待办事项
打印错误代码"RETCODE_NOT_ENABLED"并返回false
待办事项
打印错误代码"RETCODE_IMMUTABLE_POLICY"并返回false
待办事项
打印错误代码"RETCODE_INCONSISTENT_POLICY"并返回false
待办事项
打印错误代码"RETCODE_ALREADY_DELETED"并返回false
待办事项
打印错误代码"RETCODE_TIMEOUT"并返回false
待办事项
打印错误代码"RETCODE_NO_DATA"并返回false
待办事项
打印错误代码"RETCODE_ILLEGAL_OPERATION"并返回false
待办事项
打印错误代码"RETCODE_NOT_ALLOWED_BY_SECURITY"并返回false
待办事项
打印未知错误代码"UNKNOWN"并返回false

在文件 CarlaEgoVehicleControlSubscriber.cpp165 行定义.

引用了 _impl.

◆ SetData()

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

设置内部数据,包括时间戳、车辆ID和控制数据。

参数
seconds时间戳的秒部分。
nanoseconds时间戳的纳秒部分。
actor_id车辆ID。
data控制指令的浮点数数组。

◆ type()

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

返回用户的类型名称。

返回
类型为"Ego vehicle control"的字符串。

实现了 carla::ros2::CarlaSubscriber.

在文件 CarlaEgoVehicleControlSubscriber.h57 行定义.

类成员变量说明

◆ _impl

std::shared_ptr<CarlaEgoVehicleControlSubscriberImpl> carla::ros2::CarlaEgoVehicleControlSubscriber::_impl
private

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