CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
sensor
data
IMUMeasurement.h
浏览该文件的文档.
1
// Copyright (c) 2019 Computer Vision Center (CVC) at the Universitat Autonoma
2
// de Barcelona (UAB).
3
// 表明该代码遵循MIT许可协议,可通过对应链接查看协议具体内容
4
// This work is licensed under the terms of the MIT license.
5
// For a copy, see <https://opensource.org/licenses/MIT>.
6
7
#pragma once
8
9
// 引入Carla项目中几何相关的Vector3D头文件,用于表示三维向量,在这个类中可能用于存储诸如加速度、角速度等具有方向和大小的物理量信息
10
#include "
carla/geom/Vector3D.h
"
11
// 引入Carla项目中传感器序列化相关的IMUSerializer头文件,其功能是对惯性测量单元(IMU)的数据进行序列化和反序列化操作,方便数据的存储、传输以及后续的恢复使用
12
#include "
carla/sensor/s11n/IMUSerializer.h
"
13
// 引入Carla项目中传感器数据相关的SensorData头文件,IMUMeasurement类继承自SensorData类,意味着它能复用SensorData类已有的通用属性和行为,在此基础上拓展针对IMU测量数据的特定功能
14
#include "
carla/sensor/SensorData.h
"
15
16
namespace
carla
{
17
namespace
sensor {
18
namespace
data {
19
20
// 定义IMUMeasurement类,用于表示惯性测量单元(IMU)测量得到的数据信息,继承自SensorData类,以遵循整个传感器数据相关的统一框架,并添加自身特有的IMU测量相关功能
21
class
IMUMeasurement
:
public
SensorData
{
22
protected
:
23
// 使用类型别名Super来指代SensorData类型,这样在后续代码中可以更简洁地引用父类类型,方便代码书写和阅读,同时也更清晰地表明继承关系
24
using
Super
=
SensorData
;
25
26
// 使用类型别名Serializer来指代s11n::IMUSerializer类型,便于后续直接调用该序列化器的相关函数,在代码中体现出对IMU数据序列化和反序列化操作的关联性
27
using
Serializer
=
s11n::IMUSerializer
;
28
29
// 将Serializer声明为友元类,这使得IMUSerializer类能够访问IMUMeasurement类的私有成员,便于在进行数据的序列化和反序列化过程中,直接操作类内部的相关数据成员,保证数据处理的完整性和准确性
30
friend
Serializer
;
31
32
// 显式定义的构造函数,接收一个RawData类型的常量引用参数(表示原始数据),用于从传入的原始数据中初始化IMUMeasurement对象的各项属性,创建一个有效的IMU测量数据对象
33
explicit
IMUMeasurement
(
const
RawData
&data)
34
// 首先调用父类(SensorData)的构造函数,传递原始数据data,完成父类部分的初始化,确保继承体系下的初始化顺序正确,继承父类的相关属性和行为
35
:
Super
(data),
36
// 通过调用Serializer类的DeserializeRawData方法,从原始数据中反序列化出加速度计相关的数据,并使用其初始化_accelerometer成员变量,该变量用于存储IMU测量得到的加速度信息,以三维向量形式表示其在空间中的方向和大小
37
_accelerometer
(
Serializer
::DeserializeRawData(data).accelerometer),
38
// 同样借助Serializer类的DeserializeRawData方法,从原始数据中反序列化出陀螺仪相关的数据,以此初始化_gyroscope成员变量,该变量用于存储IMU测量得到的角速度信息,同样以三维向量形式呈现其在不同方向上的旋转速度情况
39
_gyroscope
(
Serializer
::DeserializeRawData(data).gyroscope),
40
// 还是调用Serializer类的DeserializeRawData方法,从原始数据中反序列化出罗盘(指南针)相关的数据,用来初始化_compass成员变量,该变量存储的是罗盘测量得到的方向信息,以浮点数形式表示(可能是角度等相关表示形式,具体取决于项目内的定义)
41
_compass
(
Serializer
::DeserializeRawData(data).compass) {}
42
43
public
:
44
// 获取加速度计测量得到的加速度信息,返回一个geom::Vector3D类型的三维向量,外部代码可以通过调用此方法获取IMU中加速度计所测得的加速度大小和方向,用于后续如物体运动分析、姿态估计等相关操作
45
geom::Vector3D
GetAccelerometer
()
const
{
46
return
_accelerometer
;
47
}
48
49
// 获取陀螺仪测量得到的角速度信息,返回一个geom::Vector3D类型的三维向量,以便外部代码能够获取IMU中陀螺仪所检测到的物体绕各个轴的旋转速度情况,常用于姿态解算、稳定控制等应用场景
50
geom::Vector3D
GetGyroscope
()
const
{
51
return
_gyroscope
;
52
}
53
54
// 获取罗盘测量得到的方向信息,返回一个浮点数,该值代表了根据罗盘测量所得的某个方向相关的数据(例如可能是相对于地磁北极的角度等,具体取决于项目中的定义),可用于确定物体的朝向等操作
55
float
GetCompass
()
const
{
56
return
_compass
;
57
}
58
59
private
:
60
// 用于存储加速度计测量得到的加速度信息,是一个geom::Vector3D类型的三维向量,其值通过构造函数从原始数据中反序列化获取,在后续的使用中保持不变,供外部通过相应的访问函数来获取该数据
61
geom::Vector3D
_accelerometer
;
62
// 用于存储陀螺仪测量得到的角速度信息,同样是一个geom::Vector3D类型的三维向量,其数据来源于构造函数对原始数据的反序列化操作,用于反映物体的旋转状态相关信息,外部可通过对应的访问函数获取
63
geom::Vector3D
_gyroscope
;
64
// 用于存储罗盘测量得到的方向信息,以浮点数类型表示,其具体数值由构造函数从原始数据中解析而来,用于提供物体朝向等相关的方向参考,可通过访问函数对外提供该数据
65
float
_compass
;
66
67
};
68
69
}
// namespace data
70
}
// namespace sensor
71
}
// namespace carla
IMUSerializer.h
SensorData.h
carla::geom::Vector3D
Definition:
geom/Vector3D.h:17
carla::sensor::RawData
包装一个传感器生成的原始数据以及一些有用的元信息。
Definition:
RawData.h:20
carla::sensor::SensorData
所有传感器生成数据的对象的基类
Definition:
SensorData.h:22
carla::sensor::data::IMUMeasurement
Definition:
IMUMeasurement.h:21
carla::sensor::data::IMUMeasurement::_compass
float _compass
Definition:
IMUMeasurement.h:65
carla::sensor::data::IMUMeasurement::GetCompass
float GetCompass() const
Definition:
IMUMeasurement.h:55
carla::sensor::data::IMUMeasurement::IMUMeasurement
IMUMeasurement(const RawData &data)
Definition:
IMUMeasurement.h:33
carla::sensor::data::IMUMeasurement::_accelerometer
geom::Vector3D _accelerometer
Definition:
IMUMeasurement.h:61
carla::sensor::data::IMUMeasurement::GetGyroscope
geom::Vector3D GetGyroscope() const
Definition:
IMUMeasurement.h:50
carla::sensor::data::IMUMeasurement::_gyroscope
geom::Vector3D _gyroscope
Definition:
IMUMeasurement.h:63
carla::sensor::data::IMUMeasurement::GetAccelerometer
geom::Vector3D GetAccelerometer() const
Definition:
IMUMeasurement.h:45
carla::sensor::data::IMUMeasurement::Serializer
friend Serializer
Definition:
IMUMeasurement.h:30
carla::sensor::s11n::IMUSerializer
Definition:
IMUSerializer.h:21
Vector3D.h
carla
CARLA模拟器的主命名空间。
Definition:
Carla.cpp:139
制作者
1.9.5