CarlaEgoVehicleControlSubscriber类,用于订阅并处理来自ROS2的自动驾驶车辆控制消息 更多...
#include <CarlaEgoVehicleControlSubscriber.h>
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 () |
检查用户是否仍然活跃。 | |
CarlaEgoVehicleControlSubscriber & | operator= (CarlaEgoVehicleControlSubscriber &&) |
移动赋值运算符,用于移动赋值。 | |
CarlaEgoVehicleControlSubscriber & | operator= (const CarlaEgoVehicleControlSubscriber &) |
拷贝赋值运算符,用于深拷贝赋值。 | |
bool | Read () |
读取并处理新的控制消息。 | |
const char * | type () const override |
返回用户的类型名称。 | |
~CarlaEgoVehicleControlSubscriber () | |
析构函数,清理资源并销毁用户。 | |
![]() | |
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 |
指向内部实现结构的智能指针,用于隐藏实现细节。 | |
额外继承的成员函数 | |
![]() | |
std::string | _frame_id = "" |
std::string | _name = "" |
std::string | _parent = "" |
CarlaEgoVehicleControlSubscriber类,用于订阅并处理来自ROS2的自动驾驶车辆控制消息
用于订阅和控制CARLA中自车(ego vehicle)的类 此类可能包含与ROS 2节点相关的逻辑,用于接收来自CARLA的自车控制命令。
在文件 CarlaEgoVehicleControlSubscriber.h 第 20 行定义.
carla::ros2::CarlaEgoVehicleControlSubscriber::CarlaEgoVehicleControlSubscriber | ( | void * | vehicle, |
const char * | ros_name = "", | ||
const char * | parent = "" ) |
构造函数,初始化用户并关联到指定的车辆。
CarlaEgoVehicleControlSubscriber类的构造函数。
vehicle | 指向车辆实例的指针。 |
ros_name | ROS2节点的名称,默认为空字符串。 |
parent | 父节点的名称,默认为空字符串。 |
构造函数初始化内部实现对象,并设置相关属性,包括车辆对象指针、ROS节点名称和父节点名称。
vehicle | 车辆对象指针。 |
ros_name | ROS节点名称。 |
parent | 父节点名称。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 314 行定义.
引用了 _impl, carla::ros2::CarlaSubscriber::_name, carla::ros2::CarlaSubscriber::_parent , 以及 carla::ros2::CarlaSubscriber::parent().
carla::ros2::CarlaEgoVehicleControlSubscriber::~CarlaEgoVehicleControlSubscriber | ( | ) |
析构函数,清理资源并销毁用户。
CarlaEgoVehicleControlSubscriber类的析构函数。
析构函数负责清理订阅者所使用的资源。 它首先检查_impl指针是否为空,如果不为空,则依次删除数据读取器、订阅者、主题和参与者。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 327 行定义.
引用了 _impl.
carla::ros2::CarlaEgoVehicleControlSubscriber::CarlaEgoVehicleControlSubscriber | ( | const CarlaEgoVehicleControlSubscriber & | other | ) |
拷贝构造函数,创建当前对象的深拷贝。
CarlaEgoVehicleControlSubscriber类的拷贝构造函数。
拷贝构造函数通过复制另一个CarlaEgoVehicleControlSubscriber对象来初始化新对象。 它复制了所有成员变量,并设置了监听器的所有者。
other | 要复制的CarlaEgoVehicleControlSubscriber对象。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 351 行定义.
引用了 carla::ros2::CarlaSubscriber::_frame_id, _impl, carla::ros2::CarlaSubscriber::_name , 以及 carla::ros2::CarlaSubscriber::_parent.
carla::ros2::CarlaEgoVehicleControlSubscriber::CarlaEgoVehicleControlSubscriber | ( | CarlaEgoVehicleControlSubscriber && | other | ) |
移动构造函数,创建当前对象的移动拷贝。
CarlaEgoVehicleControlSubscriber类的移动构造函数。
移动构造函数通过移动另一个CarlaEgoVehicleControlSubscriber对象的资源来初始化新对象。 它移动了所有成员变量,并设置了监听器的所有者。
other | 要移动的CarlaEgoVehicleControlSubscriber对象。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 384 行定义.
引用了 carla::ros2::CarlaSubscriber::_frame_id, _impl, carla::ros2::CarlaSubscriber::_name , 以及 carla::ros2::CarlaSubscriber::_parent.
void carla::ros2::CarlaEgoVehicleControlSubscriber::DestroySubscriber | ( | ) |
销毁用户并释放相关资源。
销毁订阅者。
该函数将内部实现对象的存活标志设置为false,用于通知其他部分该订阅者已经不再活跃。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 260 行定义.
引用了 _impl.
被这些函数引用 carla::ros2::CarlaSubscriberListenerImpl::on_subscription_matched().
void carla::ros2::CarlaEgoVehicleControlSubscriber::ForwardMessage | ( | VehicleControl | control | ) |
(内部使用)将控制消息转发给内部处理函数。
将车辆控制信息转发给内部实现。
control | 包含控制指令的VehicleControl对象。 |
该函数将传入的车辆控制信息(VehicleControl)保存到内部实现对象的对应成员变量中, 并标记有新的消息到达。
control | 车辆控制信息。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 251 行定义.
引用了 _impl.
被这些函数引用 carla::ros2::CarlaSubscriberListenerImpl::on_data_available().
VehicleControl carla::ros2::CarlaEgoVehicleControlSubscriber::GetMessage | ( | ) |
获取最新的车辆控制消息。
获取最新的车辆控制信息。
该函数返回内部实现对象中保存的车辆控制信息,并将新的消息标志设置为false, 表示该消息已被读取。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 271 行定义.
引用了 _impl.
void * carla::ros2::CarlaEgoVehicleControlSubscriber::GetVehicle | ( | ) |
获取与用户关联的车辆实例的指针。
获取关联的车辆对象。
该函数返回内部实现对象中保存的车辆对象指针。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 302 行定义.
引用了 _impl.
bool carla::ros2::CarlaEgoVehicleControlSubscriber::HasNewMessage | ( | ) |
检查是否有新的控制消息到达。
检查是否有新的消息到达。
该函数返回内部实现对象的新消息标志,用于判断是否有新的车辆控制信息到达。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 292 行定义.
引用了 _impl.
bool carla::ros2::CarlaEgoVehicleControlSubscriber::Init | ( | ) |
初始化用户。
初始化CARLA EgoVehicleControl消息的订阅者。
检查类型支持是否有效。
设置域参与者的QoS(Quality of Service)并创建域参与者。
注册消息类型。
设置订阅者的QoS并创建订阅者。
设置主题的QoS并创建主题。
设置数据读取器的QoS并创建数据读取器。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 97 行定义.
引用了 _impl, carla::ros2::CarlaSubscriber::_name , 以及 carla::ros2::CarlaSubscriber::_parent.
bool carla::ros2::CarlaEgoVehicleControlSubscriber::IsAlive | ( | ) |
检查用户是否仍然活跃。
检查订阅者是否存活。
该函数返回内部实现对象的存活标志,用于判断订阅者是否仍然活跃。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 282 行定义.
引用了 _impl.
CarlaEgoVehicleControlSubscriber & carla::ros2::CarlaEgoVehicleControlSubscriber::operator= | ( | CarlaEgoVehicleControlSubscriber && | other | ) |
移动赋值运算符,用于移动赋值。
移动赋值运算符。
移动赋值运算符将当前对象替换为通过移动另一个CarlaEgoVehicleControlSubscriber对象的资源得到的对象。 它移动了所有成员变量,并设置了监听器的所有者。
other | 要移动的CarlaEgoVehicleControlSubscriber对象。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 400 行定义.
引用了 carla::ros2::CarlaSubscriber::_frame_id, _impl, carla::ros2::CarlaSubscriber::_name , 以及 carla::ros2::CarlaSubscriber::_parent.
CarlaEgoVehicleControlSubscriber & carla::ros2::CarlaEgoVehicleControlSubscriber::operator= | ( | const CarlaEgoVehicleControlSubscriber & | other | ) |
拷贝赋值运算符,用于深拷贝赋值。
拷贝赋值运算符。
拷贝赋值运算符将当前对象替换为另一个CarlaEgoVehicleControlSubscriber对象的副本。 它复制了所有成员变量,并设置了监听器的所有者。
other | 要复制的CarlaEgoVehicleControlSubscriber对象。 |
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 367 行定义.
引用了 carla::ros2::CarlaSubscriber::_frame_id, _impl, carla::ros2::CarlaSubscriber::_name , 以及 carla::ros2::CarlaSubscriber::_parent.
bool carla::ros2::CarlaEgoVehicleControlSubscriber::Read | ( | ) |
读取并处理新的控制消息。
读取并处理来自数据读取器的样本
该函数尝试从内部数据读取器中获取下一个样本,并根据返回的代码执行相应的操作。 如果成功获取样本,则返回true;否则,根据错误代码打印错误信息并返回false。
在文件 CarlaEgoVehicleControlSubscriber.cpp 第 165 行定义.
引用了 _impl.
|
private |
设置内部数据,包括时间戳、车辆ID和控制数据。
seconds | 时间戳的秒部分。 |
nanoseconds | 时间戳的纳秒部分。 |
actor_id | 车辆ID。 |
data | 控制指令的浮点数数组。 |
|
inlineoverridevirtual |
返回用户的类型名称。
实现了 carla::ros2::CarlaSubscriber.
在文件 CarlaEgoVehicleControlSubscriber.h 第 57 行定义.
|
private |
指向内部实现结构的智能指针,用于隐藏实现细节。
在文件 CarlaEgoVehicleControlSubscriber.h 第 75 行定义.
被这些函数引用 CarlaEgoVehicleControlSubscriber(), CarlaEgoVehicleControlSubscriber(), CarlaEgoVehicleControlSubscriber(), DestroySubscriber(), ForwardMessage(), GetMessage(), GetVehicle(), HasNewMessage(), Init(), IsAlive(), operator=(), operator=(), Read() , 以及 ~CarlaEgoVehicleControlSubscriber().