CARLA
 
载入中...
搜索中...
未找到
WheelTelemetryData.h
浏览该文件的文档.
1// Copyright (c) 2022 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" // 包含 MsgPack 库的头文件
10
11namespace carla { // 定义 carla 命名空间
12namespace rpc { // 定义 rpc 子命名空间
13
14 class WheelTelemetryData { // 定义 WheelTelemetryData 类
15 public:
16
17 WheelTelemetryData() = default; // 默认构造函数
18
19 // 带参数的构造函数,用于初始化类成员
21 float tire_friction, // 轮胎摩擦力
22 float lat_slip, // 侧滑
23 float long_slip, // 纵向滑动
24 float omega, // 角速度
25 float tire_load, // 轮胎负载
26 float normalized_tire_load, // 归一化轮胎负载
27 float torque, // 扭矩
28 float long_force, // 纵向力
29 float lat_force, // 横向力
30 float normalized_long_force, // 归一化纵向力
31 float normalized_lat_force) // 归一化横向力
32 : tire_friction(tire_friction), // 初始化轮胎摩擦力
33 lat_slip(lat_slip), // 初始化侧滑
34 long_slip(long_slip), // 初始化纵向滑动
35 omega(omega), // 初始化角速度
36 tire_load(tire_load), // 初始化轮胎负载
37 normalized_tire_load(normalized_tire_load), // 初始化归一化轮胎负载
38 torque(torque), // 初始化扭矩
39 long_force(long_force), // 初始化纵向力
40 lat_force(lat_force), // 初始化横向力
41 normalized_long_force(normalized_long_force), // 初始化归一化纵向力
42 normalized_lat_force(normalized_lat_force) {} // 初始化归一化横向力
43
44 // 类成员变量定义及默认值
45 float tire_friction = 0.0f; // 轮胎摩擦力
46 float lat_slip = 0.0f; // 侧滑
47 float long_slip = 0.0f; // 纵向滑动
48 float omega = 0.0f; // 角速度
49 float tire_load = 0.0f; // 轮胎负载
50 float normalized_tire_load = 0.0f; // 归一化轮胎负载
51 float torque = 0.0f; // 扭矩
52 float long_force = 0.0f; // 纵向力
53 float lat_force = 0.0f; // 横向力
54 float normalized_long_force = 0.0f; // 归一化纵向力
55 float normalized_lat_force = 0.0f; // 归一化横向力
56
57 // 不同对象比较运算符重载
58 bool operator!=(const WheelTelemetryData &rhs) const {
59 return
60 tire_friction != rhs.tire_friction || // 比较轮胎摩擦力
61 lat_slip != rhs.lat_slip || // 比较侧滑
62 long_slip != rhs.long_slip || // 比较纵向滑动
63 omega != rhs.omega || // 比较角速度
64 tire_load != rhs.tire_load || // 比较轮胎负载
65 normalized_tire_load != rhs.normalized_tire_load || // 比较归一化轮胎负载
66 torque != rhs.torque || // 比较扭矩
67 long_force != rhs.long_force || // 比较纵向力
68 lat_force != rhs.lat_force || // 比较横向力
69 normalized_long_force != rhs.normalized_long_force || // 比较归一化纵向力
70 normalized_lat_force != rhs.normalized_lat_force; // 比较归一化横向力
71 }
72
73 // 相等运算符重载
74 bool operator==(const WheelTelemetryData &rhs) const {
75 return !(*this != rhs); // 如果不相等则返回 false
76 }
77
78#ifdef LIBCARLA_INCLUDED_FROM_UE4 // 如果定义了 LIBCARLA_INCLUDED_FROM_UE4
79
80 // 构造函数,将 FWheelTelemetryData 转换为 WheelTelemetryData
82 : tire_friction(TelemetryData.TireFriction), // 初始化轮胎摩擦力
83 lat_slip(TelemetryData.LatSlip), // 初始化侧滑
84 long_slip(TelemetryData.LongSlip), // 初始化纵向滑动
85 omega(TelemetryData.Omega), // 初始化角速度
86 tire_load(TelemetryData.TireLoad), // 初始化轮胎负载
87 normalized_tire_load(TelemetryData.NormalizedTireLoad), // 初始化归一化轮胎负载
88 torque(TelemetryData.Torque), // 初始化扭矩
89 long_force(TelemetryData.LongForce), // 初始化纵向力
90 lat_force(TelemetryData.LatForce), // 初始化横向力
91 normalized_long_force(TelemetryData.NormalizedLongForce), // 初始化归一化纵向力
92 normalized_lat_force(TelemetryData.NormalizedLatForce) {} // 初始化归一化横向力
93
94 // 类型转换操作符,将 WheelTelemetryData 转换为 FWheelTelemetryData
95 operator FWheelTelemetryData() const {
96 FWheelTelemetryData TelemetryData; // 创建 FWheelTelemetryData 对象
97 TelemetryData.TireFriction = tire_friction; // 设置轮胎摩擦力
98 TelemetryData.LatSlip = lat_slip; // 设置侧滑
99 TelemetryData.LongSlip = long_slip; // 设置纵向滑动
100 TelemetryData.Omega = omega; // 设置角速度
101 TelemetryData.TireLoad = tire_load; // 设置轮胎负载
102 TelemetryData.NormalizedTireLoad = normalized_tire_load; // 设置归一化轮胎负载
103 TelemetryData.Torque = torque; // 设置扭矩
104 TelemetryData.LongForce = long_force; // 设置纵向力
105 TelemetryData.LatForce = lat_force; // 设置横向力
106 TelemetryData.NormalizedLongForce = normalized_long_force; // 设置归一化纵向力
107 TelemetryData.NormalizedLatForce = normalized_lat_force; // 设置归一化横向力
108
109 return TelemetryData; // 返回 FWheelTelemetryData 对象
110 }
111#endif
112
113 // 使用 MsgPack 库定义序列化数据结构
114 MSGPACK_DEFINE_ARRAY(tire_friction,
115 lat_slip,
116 long_slip,
117 omega,
118 tire_load,
120 torque,
122 lat_force,
125 };
126
127} // namespace rpc
128} // namespace carla
WheelTelemetryData(const FWheelTelemetryData &TelemetryData)
bool operator==(const WheelTelemetryData &rhs) const
bool operator!=(const WheelTelemetryData &rhs) const
WheelTelemetryData(float tire_friction, float lat_slip, float long_slip, float omega, float tire_load, float normalized_tire_load, float torque, float long_force, float lat_force, float normalized_long_force, float normalized_lat_force)
CARLA模拟器的主命名空间。
Definition Carla.cpp:139