CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
ros2
publishers
CarlaRadarPublisher.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
// 定义全局宏,设置 C++11 ABI 为 0,可能影响 C++ 标准库的一些行为,如动态链接库的符号解析等
6
#define _GLIBCXX_USE_CXX11_ABI 0
// 引入内存管理头文件,用于处理智能指针等内存相关操作
7
#define _GLIBCXX_USE_CXX11_ABI 0
// 引入向量头文件,用于处理动态大小数组,可能用于存储雷达数据等
8
9
#include <memory>
// 引入向量头文件,用于处理动态大小数组,可能用于存储雷达数据等
10
#include <vector>
// 引入自定义的 CarlaPublisher.h 头文件,CarlaRadarPublisher 类可能继承自 CarlaPublisher 或依赖其定义
11
12
#include "
CarlaPublisher.h
"
13
14
namespace
carla
{
15
namespace
ros2
{
// 前置声明 CarlaRadarPublisherImpl 结构体,其完整定义可能在其他文件中,通过智能指针在本类中使用
16
17
struct
CarlaRadarPublisherImpl;
// CarlaRadarPublisher 类定义,继承自 CarlaPublisher
18
19
class
CarlaRadarPublisher
:
public
CarlaPublisher
{
20
public
:
// 构造函数,可传入 ROS 名称和父名称,用于初始化对象,默认参数为空字符串
21
CarlaRadarPublisher
(
const
char
* ros_name =
""
,
const
char
*
parent
=
""
);
// 析构函数,用于释放对象占用的资源
22
~CarlaRadarPublisher
();
// 拷贝构造函数,用于创建当前对象的副本,进行深拷贝或浅拷贝(取决于实现)
23
CarlaRadarPublisher
(
const
CarlaRadarPublisher
&);
// 拷贝赋值运算符重载,用于将一个对象的值赋给当前对象,处理资源和数据复制
24
CarlaRadarPublisher
&
operator=
(
const
CarlaRadarPublisher
&);
// 移动构造函数,通过移动语义高效转移资源所有权,避免不必要拷贝开销
25
CarlaRadarPublisher
(
CarlaRadarPublisher
&&);
// 移动赋值运算符重载,实现移动语义的赋值操作
26
CarlaRadarPublisher
&
operator=
(
CarlaRadarPublisher
&&);
// 初始化函数,可能用于初始化发布雷达数据相关的内部状态、资源或与外部系统连接,返回初始化成功与否
27
28
bool
Init
();
// 发布函数,将准备好的雷达数据发布出去,返回发布操作是否成功
29
bool
Publish
();
// 设置雷达数据函数,传入时间戳(秒和纳秒)、数据维度(高度、宽度、元素个数)及数据指针
30
void
SetData
(int32_t seconds, uint32_t nanoseconds,
size_t
height,
size_t
width,
size_t
elements,
const
uint8_t* data);
31
// 重写的虚函数,返回 "radar" 标识此发布者发布的数据类型为雷达数据
32
const
char
*
type
()
const override
{
return
"radar"
; }
33
34
private
:
// 重载的 SetData 函数,接收右值引用的向量数据,利用移动语义高效设置数据,避免拷贝
35
void
SetData
(int32_t seconds, uint32_t nanoseconds,
size_t
height,
size_t
width,
size_t
elements, std::vector<uint8_t>&& data);
36
37
private
:
// 智能指针指向 CarlaRadarPublisherImpl 结构体,用于解耦接口与内部实现,处理内部逻辑
38
std::shared_ptr<CarlaRadarPublisherImpl>
_impl
;
39
};
40
}
41
}
CarlaPublisher.h
carla::ros2::CarlaPublisher
Definition
CarlaPublisher.h:13
carla::ros2::CarlaPublisher::parent
const std::string & parent() const
Definition
CarlaPublisher.h:17
carla::ros2::CarlaRadarPublisher
Definition
CarlaRadarPublisher.h:19
carla::ros2::CarlaRadarPublisher::Publish
bool Publish()
发布雷达数据
Definition
CarlaRadarPublisher.cpp:203
carla::ros2::CarlaRadarPublisher::CarlaRadarPublisher
CarlaRadarPublisher(const char *ros_name="", const char *parent="")
CarlaRadarPublisher 类的构造函数
Definition
CarlaRadarPublisher.cpp:398
carla::ros2::CarlaRadarPublisher::_impl
std::shared_ptr< CarlaRadarPublisherImpl > _impl
Definition
CarlaRadarPublisher.h:38
carla::ros2::CarlaRadarPublisher::SetData
void SetData(int32_t seconds, uint32_t nanoseconds, size_t height, size_t width, size_t elements, const uint8_t *data)
设置雷达数据
Definition
CarlaRadarPublisher.cpp:294
carla::ros2::CarlaRadarPublisher::Init
bool Init()
初始化CarlaRadarPublisher对象。
Definition
CarlaRadarPublisher.cpp:104
carla::ros2::CarlaRadarPublisher::operator=
CarlaRadarPublisher & operator=(const CarlaRadarPublisher &)
拷贝赋值运算符
Definition
CarlaRadarPublisher.cpp:445
carla::ros2::CarlaRadarPublisher::type
const char * type() const override
Definition
CarlaRadarPublisher.h:32
carla::ros2::CarlaRadarPublisher::~CarlaRadarPublisher
~CarlaRadarPublisher()
CarlaRadarPublisher 类的析构函数
Definition
CarlaRadarPublisher.cpp:408
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
ros2
制作者
1.10.0