CARLA
 
载入中...
搜索中...
未找到
CarlaGNSSPublisher.h
浏览该文件的文档.
1// Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB).
2// This work is licensed under the terms of the MIT license.
3// For a copy, see <https://opensource.org/licenses/MIT>.
4
5#pragma once
6#define _GLIBCXX_USE_CXX11_ABI 0
7
8#include <memory>// 引入智能指针相关的头文件
9/// @file
10/// @brief 包含CarlaGNSSPublisher类的声明,该类用于在ROS 2中发布CARLA的GNSS数据。
11#include "CarlaPublisher.h"// 引入CarlaPublisher类的头文件
12/// @namespace carla
13/// @brief CARLA相关的命名空间。
14namespace carla {
15 /// @namespace ros2
16/// @brief ROS 2相关的命名空间,包含与ROS 2集成的类和方法。
17namespace ros2 {
18 /// @struct CarlaGNSSPublisherImpl
19 /// @brief CarlaGNSSPublisher的内部实现结构体,使用Pimpl(Pointer to IMPLementation)技巧隐藏实现细节。
20 struct CarlaGNSSPublisherImpl;
21 /// @class CarlaGNSSPublisher
22 /// @brief 用于在ROS 2中发布CARLA的GNSS(全球导航卫星系统)数据的类。
23 /// 继承自CarlaPublisher类,专门用于初始化、设置和发布GNSS数据。
25 public:
26 /// @brief 构造函数,用于创建CarlaGNSSPublisher对象。
27 /// @param ros_name ROS节点的名称(可选),默认为空字符串。
28 /// @param parent 父节点的名称(可选),默认为空字符串。
29 CarlaGNSSPublisher(const char* ros_name = "", const char* parent = "");
30 /// @brief 析构函数,用于销毁CarlaGNSSPublisher对象。
32 /// @brief 拷贝构造函数,用于创建当前对象的深拷贝。
34 /// @brief 拷贝赋值运算符,用于将当前对象的状态复制到另一个同类型的对象中。
36 /// @brief 移动构造函数,用于创建当前对象的移动拷贝,避免不必要的深拷贝。
38 /// @brief 移动赋值运算符,用于将当前对象的状态移动到另一个同类型的对象中。
40 /// @brief 初始化函数,用于设置ROS节点和发布者。
41 /// @return 如果初始化成功,则返回true;否则返回false。
42 bool Init();
43 /// @brief 发布GNSS数据。
44 /// @return 如果发布成功,则返回true;否则返回false。
45 bool Publish();
46 /// @brief 设置GNSS数据。
47 /// @param seconds 时间戳的秒部分。
48 /// @param nanoseconds 时间戳的纳秒部分。
49 /// @param data 指向GNSS数据的指针,数据以double类型数组的形式提供。
50 void SetData(int32_t seconds, uint32_t nanoseconds, const double* data);
51 /// @brief 返回发布者的类型名称。
52 /// @return 类型名称字符串,对于GNSS发布者,返回"gnss"。
53 const char* type() const override { return "gnss"; }
54
55 private:
56 /// @brief 指向CarlaGNSSPublisherImpl的智能指针,用于隐藏实现细节。
57 std::shared_ptr<CarlaGNSSPublisherImpl> _impl;
58 };
59}
60}
用于在ROS 2中发布CARLA的GNSS(全球导航卫星系统)数据的类。 继承自CarlaPublisher类,专门用于初始化、设置和发布GNSS数据。
bool Init()
初始化函数,用于设置ROS节点和发布者。
~CarlaGNSSPublisher()
析构函数,用于销毁CarlaGNSSPublisher对象。
const char * type() const override
返回发布者的类型名称。
void SetData(int32_t seconds, uint32_t nanoseconds, const double *data)
设置GNSS数据。
std::shared_ptr< CarlaGNSSPublisherImpl > _impl
指向CarlaGNSSPublisherImpl的智能指针,用于隐藏实现细节。
CarlaGNSSPublisher(const char *ros_name="", const char *parent="")
构造函数,用于创建CarlaGNSSPublisher对象。
CarlaGNSSPublisher & operator=(const CarlaGNSSPublisher &)
拷贝赋值运算符,用于将当前对象的状态复制到另一个同类型的对象中。
bool Publish()
发布GNSS数据。
const std::string & parent() const
CARLA模拟器的主命名空间。
Definition Carla.cpp:139