CARLA
 
载入中...
搜索中...
未找到
CarlaTransformPublisher.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>// 引入智能指针std::shared_ptr
9#include <vector>// 引入STL容器std::vector
10
11#include "CarlaPublisher.h"// 引入CarlaPublisher类的定义
12/**
13 * @namespace carla
14 * @brief CARLA项目的命名空间。
15 */
16namespace carla {
17 /**
18 * @namespace ros2
19 * @brief ROS2相关的命名空间,用于区分CARLA与ROS2之间的交互部分。
20 */
21namespace ros2 {
22 /**
23 * @struct CarlaTransformPublisherImpl
24 * @brief CarlaTransformPublisher类的内部实现结构体,采用Pimpl(Pointer to IMPLementation)惯用法隐藏实现细节。
25 */
26 struct CarlaTransformPublisherImpl;
27 /**
28 * @class CarlaTransformPublisher
29 * @brief CarlaTransformPublisher类继承自CarlaPublisher,用于在CARLA中发布变换信息到ROS2。
30 */
32 public:
33 /**
34 * @brief 构造函数,初始化CarlaTransformPublisher对象。
35 * @param ros_name ROS2节点的名称,默认为空字符串。
36 * @param parent 父节点的名称,默认为空字符串。
37 */
38 CarlaTransformPublisher(const char* ros_name = "", const char* parent = "");
39 /**
40 * @brief 析构函数,释放CarlaTransformPublisher对象占用的资源。
41 */
43 /**
44 * @brief 拷贝构造函数,通过拷贝另一个CarlaTransformPublisher对象来初始化新对象。
45 * @param other 要拷贝的CarlaTransformPublisher对象。
46 */
48 /**
49 * @brief 拷贝赋值运算符,将另一个CarlaTransformPublisher对象的内容复制到当前对象。
50 * @param other 要复制的CarlaTransformPublisher对象。
51 * @return 返回当前对象的引用。
52 */
54 /**
55 * @brief 移动构造函数,通过移动另一个CarlaTransformPublisher对象来初始化新对象。
56 * @param other 要移动的CarlaTransformPublisher对象。
57 */
59 /**
60 * @brief 移动赋值运算符,将另一个CarlaTransformPublisher对象的内容移动到当前对象。
61 * @param other 要移动的CarlaTransformPublisher对象。
62 * @return 返回当前对象的引用。
63 */
65 /**
66 * @brief 初始化函数,用于初始化CarlaTransformPublisher对象。
67 * @return 如果初始化成功,则返回true;否则返回false。
68 */
69 bool Init();
70 /**
71 * @brief 发布函数,用于将变换信息发布到ROS2。
72 * @return 如果发布成功,则返回true;否则返回false。
73 */
74 bool Publish();
75 /**
76 * @brief 设置变换数据的函数。
77 * @param seconds 变换的时间戳,秒部分。
78 * @param nanoseconds 变换的时间戳,纳秒部分。
79 * @param translation 变换的平移部分,数组包含x, y, z三个分量。
80 * @param rotation 变换的旋转部分,数组包含roll, pitch, yaw三个分量。
81 */
82 void SetData(int32_t seconds, uint32_t nanoseconds, const float* translation, const float* rotation);
83 /**
84 * @brief 重写type函数,返回当前对象的类型字符串。
85 * @return 返回"transform"字符串,表示当前对象发布的消息类型为变换信息。
86 */
87 const char* type() const override { return "transform"; }
88
89 private:
90 /**
91 * @brief 指向CarlaTransformPublisherImpl的智能指针,用于隐藏实现细节。
92 */
93 std::shared_ptr<CarlaTransformPublisherImpl> _impl;
94 };
95}
96}
const std::string & parent() const
CarlaTransformPublisher类继承自CarlaPublisher,用于在CARLA中发布变换信息到ROS2。
bool Init()
初始化函数,用于初始化CarlaTransformPublisher对象。
const char * type() const override
重写type函数,返回当前对象的类型字符串。
std::shared_ptr< CarlaTransformPublisherImpl > _impl
指向CarlaTransformPublisherImpl的智能指针,用于隐藏实现细节。
void SetData(int32_t seconds, uint32_t nanoseconds, const float *translation, const float *rotation)
设置变换数据的函数。
CarlaTransformPublisher & operator=(const CarlaTransformPublisher &)
拷贝赋值运算符,将另一个CarlaTransformPublisher对象的内容复制到当前对象。
~CarlaTransformPublisher()
析构函数,释放CarlaTransformPublisher对象占用的资源。
CarlaTransformPublisher(const char *ros_name="", const char *parent="")
构造函数,初始化CarlaTransformPublisher对象。
bool Publish()
发布函数,用于将变换信息发布到ROS2。
CARLA模拟器的主命名空间。
Definition Carla.cpp:139