CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
rpc
LibCarla/source/carla/rpc/AckermannControllerSettings.h
浏览该文件的文档.
1
// Copyright (c) 2021 Computer Vision Center (CVC) at the Universitat Autonoma
2
// de Barcelona (UAB).
3
//
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
#include "
carla/MsgPack.h
"
10
11
// 以下条件编译部分,用于判断是否从UE4中包含此头文件,如果是,则包含对应的UE4相关设置头文件
12
#ifdef LIBCARLA_INCLUDED_FROM_UE4
13
# include "
Carla/Vehicle/AckermannControllerSettings.h
"
14
#endif
// LIBCARLA_INCLUDED_FROM_UE4
15
16
namespace
carla
{
17
namespace
rpc {
18
// AckermannControllerSettings类,负责Ackermann控制器的相关设置
19
class
AckermannControllerSettings
{
20
public
:
21
22
// 默认构造函数,使用默认初始化方式,不进行任何参数传递时可调用此构造函数
23
AckermannControllerSettings
() =
default
;
24
25
// 构造函数,允许通过参数初始化控制器的比例、积分、微分系数(PID系数)
26
// 参数说明:
27
// - speed_kp:速度控制的比例系数
28
// - speed_ki:速度控制的积分系数
29
// - speed_kd:速度控制的微分系数
30
// - accel_kp:加速度控制的比例系数
31
// - accel_ki:加速度控制的积分系数
32
// - accel_kd:加速度控制的微分系数
33
AckermannControllerSettings
(
34
float
speed_kp
,
35
float
speed_ki
,
36
float
speed_kd
,
37
float
accel_kp
,
38
float
accel_ki
,
39
float
accel_kd
)
40
:
speed_kp
(
speed_kp
),
41
speed_ki
(
speed_ki
),
42
speed_kd
(
speed_kd
),
43
accel_kp
(
accel_kp
),
44
accel_ki
(
accel_ki
),
45
accel_kd
(
accel_kd
) {}
46
47
// Ackermann控制器设置中的参数,以下是速度控制的PID系数相关成员变量
48
float
speed_kp
= 0.0f;
// 速度控制的比例系数,初始化为0.0f
49
float
speed_ki
= 0.0f;
// 速度控制的积分系数,初始化为0.0f
50
float
speed_kd
= 0.0f;
// 速度控制的微分系数,初始化为0.0f
51
52
// Ackermann控制器设置中的参数,以下是加速度控制的PID系数相关成员变量
53
float
accel_kp
= 0.0f;
// 加速度控制的比例系数,初始化为0.0f
54
float
accel_ki
= 0.0f;
// 加速度控制的积分系数,初始化为0.0f
55
float
accel_kd
= 0.0f;
// 加速度控制的微分系数,初始化为0.0f
56
57
#ifdef LIBCARLA_INCLUDED_FROM_UE4
58
// 使用UE4中FAckermannControllerSettings结构体进行初始化的构造函数
59
// 它会将UE4结构体中的对应系数值赋给当前类的成员变量,实现从UE4相关设置到本类设置的转换
60
AckermannControllerSettings
(
const
FAckermannControllerSettings
&Settings)
61
:
speed_kp
(Settings.SpeedKp),
62
speed_ki
(Settings.SpeedKi),
63
speed_kd
(Settings.SpeedKd),
64
accel_kp
(Settings.AccelKp),
65
accel_ki
(Settings.AccelKi),
66
accel_kd
(Settings.AccelKd) {}
67
68
// 操作符重载,将AckermannControllerSettings转换为UE4中的FAckermannControllerSettings结构体
69
// 方便在需要使用UE4结构体的地方,能够直接将本类对象转换为对应的UE4结构体形式进行使用
70
operator
FAckermannControllerSettings
()
const
{
71
FAckermannControllerSettings
Settings;
72
Settings.
SpeedKp
=
speed_kp
;
73
Settings.
SpeedKi
=
speed_ki
;
74
Settings.
SpeedKd
=
speed_kd
;
75
Settings.
AccelKp
=
accel_kp
;
76
Settings.
AccelKi
=
accel_ki
;
77
Settings.
AccelKd
=
accel_kd
;
78
return
Settings;
79
}
80
81
#endif
// LIBCARLA_INCLUDED_FROM_UE4
82
83
// 操作符重载,比较两个AckermannControllerSettings对象是否不相等
84
// 通过逐个比较成员变量(速度和加速度控制的PID系数)的值来判断两个对象是否不同
85
bool
operator!=
(
const
AckermannControllerSettings
&rhs)
const
{
86
return
87
speed_kp
!= rhs.
speed_kp
||
88
speed_ki
!= rhs.
speed_ki
||
89
speed_kd
!= rhs.
speed_kd
||
90
accel_kp
!= rhs.
accel_kp
||
91
accel_ki
!= rhs.
accel_ki
||
92
accel_kd
!= rhs.
accel_kd
;
93
}
94
95
// 操作符重载,判断两个AckermannControllerSettings对象是否相等,通过调用!=操作符的取反来实现
96
bool
operator==
(
const
AckermannControllerSettings
&rhs)
const
{
97
return
!(*
this
!= rhs);
98
}
99
100
// 使用MsgPack库来定义如何将此类的对象序列化为数组形式,便于网络传输或存储等操作
101
// 按照顺序将成员变量(速度和加速度控制的PID系数)组成一个数组进行定义
102
MSGPACK_DEFINE_ARRAY
(
103
speed_kp
,
104
speed_ki
,
105
speed_kd
,
106
accel_kp
,
107
accel_ki
,
108
accel_kd
109
);
110
};
111
112
}
// namespace rpc
113
}
// namespace carla
MsgPack.h
AckermannControllerSettings.h
carla::rpc::AckermannControllerSettings
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:19
carla::rpc::AckermannControllerSettings::AckermannControllerSettings
AckermannControllerSettings(const FAckermannControllerSettings &Settings)
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:60
carla::rpc::AckermannControllerSettings::operator==
bool operator==(const AckermannControllerSettings &rhs) const
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:96
carla::rpc::AckermannControllerSettings::MSGPACK_DEFINE_ARRAY
MSGPACK_DEFINE_ARRAY(speed_kp, speed_ki, speed_kd, accel_kp, accel_ki, accel_kd)
carla::rpc::AckermannControllerSettings::speed_ki
float speed_ki
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:49
carla::rpc::AckermannControllerSettings::AckermannControllerSettings
AckermannControllerSettings(float speed_kp, float speed_ki, float speed_kd, float accel_kp, float accel_ki, float accel_kd)
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:33
carla::rpc::AckermannControllerSettings::speed_kd
float speed_kd
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:50
carla::rpc::AckermannControllerSettings::accel_ki
float accel_ki
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:54
carla::rpc::AckermannControllerSettings::AckermannControllerSettings
AckermannControllerSettings()=default
carla::rpc::AckermannControllerSettings::accel_kp
float accel_kp
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:53
carla::rpc::AckermannControllerSettings::operator!=
bool operator!=(const AckermannControllerSettings &rhs) const
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:85
carla::rpc::AckermannControllerSettings::accel_kd
float accel_kd
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:55
carla::rpc::AckermannControllerSettings::speed_kp
float speed_kp
Definition
LibCarla/source/carla/rpc/AckermannControllerSettings.h:48
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
FAckermannControllerSettings
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:15
FAckermannControllerSettings::AccelKd
float AccelKd
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:47
FAckermannControllerSettings::AccelKi
float AccelKi
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:42
FAckermannControllerSettings::SpeedKi
float SpeedKi
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:27
FAckermannControllerSettings::AccelKp
float AccelKp
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:37
FAckermannControllerSettings::SpeedKd
float SpeedKd
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:32
FAckermannControllerSettings::SpeedKp
float SpeedKp
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/AckermannControllerSettings.h:22
制作者
1.10.0