Apollo
10.0
自动驾驶开放平台
huace_base_parser.h
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2017 The Apollo Authors. All Rights Reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*****************************************************************************/
16
17
// An parser for decoding binary messages from a NovAtel receiver. The following
18
// messages must be
19
// logged in order for this parser to work properly.
20
//
21
#include <string>
22
23
#include "modules/common_msgs/sensor_msgs/gnss.pb.h"
24
#include "modules/common_msgs/sensor_msgs/gnss_best_pose.pb.h"
25
#include "modules/common_msgs/sensor_msgs/gnss_raw_observation.pb.h"
26
#include "modules/common_msgs/sensor_msgs/heading.pb.h"
27
#include "modules/common_msgs/sensor_msgs/imu.pb.h"
28
#include "modules/common_msgs/sensor_msgs/ins.pb.h"
29
30
#include "
cyber/cyber.h
"
31
#include "
modules/drivers/gnss/parser/parser.h
"
32
#include "
modules/drivers/gnss/parser/parser_common.h
"
33
#include "
modules/drivers/gnss/util/time_conversion.h
"
34
35
namespace
apollo
{
36
namespace
drivers {
37
namespace
gnss {
38
39
struct
HuaCeMessage
{
40
std::string
messageID
;
41
int
GPSWeek
;
42
double
GPSTime
;
43
double
Heading
;
44
double
Pitch
;
45
double
Roll
;
46
double
GyroX
;
47
double
GyroY
;
48
double
GyroZ
;
49
double
AccX
;
50
double
AccY
;
51
double
AccZ
;
52
double
Latitude
;
53
double
Longitude
;
54
double
Altitude
;
55
double
Ve
;
56
double
Vn
;
57
double
Vu
;
58
double
V
;
59
int
NSV1
;
60
int
NSV2
;
61
SolutionStatus
solution_status
;
62
SolutionType
solution_type
;
63
double
Age
;
64
std::string
WarningCs
;
65
uint8_t
satellites_num
= 0;
66
uint8_t
wheel_speed_status
= 0;
67
68
double
gps_timestamp_sec
= 0;
69
// 数据标准差
70
double
lat_std
= 0.0;
71
double
lon_std
= 0.0;
72
double
alti_std
= 0.0;
73
double
vn_std
= 0.0;
74
double
ve_std
= 0.0;
75
double
vu_std
= 0.0;
76
double
v_std
= 0.0;
77
78
double
roll_std
= 0.0;
79
double
pitch_std
= 0.0;
80
double
yaw_std
= 0.0;
81
};
82
83
class
HuaCeBaseParser
:
public
Parser
{
84
public
:
85
HuaCeBaseParser
() {}
86
explicit
HuaCeBaseParser
(
const
config::Config
&config);
87
88
virtual
bool
PrepareMessage
() = 0;
89
90
virtual
void
GetMessages
(
MessageInfoVec
*messages);
91
92
protected
:
93
void
PrepareMessageStatus
(
const
uint8_t &system_state,
94
const
uint8_t &satellite_status);
95
HuaCeMessage
decode_message_
;
96
97
private
:
98
void
FillGnssBestpos();
99
void
FillIns();
100
void
FillInsStat();
101
void
FillImu();
102
void
FillHeading();
103
104
GnssBestPose
bestpos_;
105
// bestpos 1hz rate control
106
RateControl
bestpos_ratecontrol_{
PERIOD_NS_1HZ
};
107
Imu
imu_;
108
Heading
heading_;
109
Ins
ins_;
110
InsStat
ins_stat_;
111
};
112
113
}
// namespace gnss
114
}
// namespace drivers
115
}
// namespace apollo
apollo::drivers::gnss::HuaCeBaseParser
Definition
huace_base_parser.h:83
apollo::drivers::gnss::HuaCeBaseParser::PrepareMessageStatus
void PrepareMessageStatus(const uint8_t &system_state, const uint8_t &satellite_status)
Definition
huace_base_parser.cc:63
apollo::drivers::gnss::HuaCeBaseParser::GetMessages
virtual void GetMessages(MessageInfoVec *messages)
Definition
huace_base_parser.cc:35
apollo::drivers::gnss::HuaCeBaseParser::decode_message_
HuaCeMessage decode_message_
Definition
huace_base_parser.h:95
apollo::drivers::gnss::HuaCeBaseParser::HuaCeBaseParser
HuaCeBaseParser()
Definition
huace_base_parser.h:85
apollo::drivers::gnss::HuaCeBaseParser::PrepareMessage
virtual bool PrepareMessage()=0
apollo::drivers::gnss::Parser
Definition
parser.h:78
apollo::drivers::gnss::RateControl
Definition
parser_common.h:52
cyber.h
time_conversion.h
apollo::drivers::gnss::SolutionStatus
SolutionStatus
Definition
gnss_best_pose.proto:7
apollo::drivers::gnss::SolutionType
SolutionType
Definition
gnss_best_pose.proto:28
apollo::drivers::gnss::PERIOD_NS_1HZ
constexpr uint64_t PERIOD_NS_1HZ
Definition
parser_common.h:51
apollo::drivers::gnss::MessageInfoVec
std::vector< MessageInfo > MessageInfoVec
Definition
parser.h:57
apollo
class register implement
Definition
arena_queue.h:37
parser.h
parser_common.h
apollo::drivers::gnss::GnssBestPose
Definition
gnss_best_pose.proto:69
apollo::drivers::gnss::Heading
Definition
heading.proto:7
apollo::drivers::gnss::HuaCeMessage
Definition
huace_base_parser.h:39
apollo::drivers::gnss::HuaCeMessage::solution_type
SolutionType solution_type
Definition
huace_base_parser.h:62
apollo::drivers::gnss::HuaCeMessage::AccY
double AccY
Definition
huace_base_parser.h:50
apollo::drivers::gnss::HuaCeMessage::GyroX
double GyroX
Definition
huace_base_parser.h:46
apollo::drivers::gnss::HuaCeMessage::Vu
double Vu
Definition
huace_base_parser.h:57
apollo::drivers::gnss::HuaCeMessage::GPSTime
double GPSTime
Definition
huace_base_parser.h:42
apollo::drivers::gnss::HuaCeMessage::Ve
double Ve
Definition
huace_base_parser.h:55
apollo::drivers::gnss::HuaCeMessage::alti_std
double alti_std
Definition
huace_base_parser.h:72
apollo::drivers::gnss::HuaCeMessage::Heading
double Heading
Definition
huace_base_parser.h:43
apollo::drivers::gnss::HuaCeMessage::AccZ
double AccZ
Definition
huace_base_parser.h:51
apollo::drivers::gnss::HuaCeMessage::satellites_num
uint8_t satellites_num
Definition
huace_base_parser.h:65
apollo::drivers::gnss::HuaCeMessage::wheel_speed_status
uint8_t wheel_speed_status
Definition
huace_base_parser.h:66
apollo::drivers::gnss::HuaCeMessage::Latitude
double Latitude
Definition
huace_base_parser.h:52
apollo::drivers::gnss::HuaCeMessage::Vn
double Vn
Definition
huace_base_parser.h:56
apollo::drivers::gnss::HuaCeMessage::NSV2
int NSV2
Definition
huace_base_parser.h:60
apollo::drivers::gnss::HuaCeMessage::AccX
double AccX
Definition
huace_base_parser.h:49
apollo::drivers::gnss::HuaCeMessage::v_std
double v_std
Definition
huace_base_parser.h:76
apollo::drivers::gnss::HuaCeMessage::vu_std
double vu_std
Definition
huace_base_parser.h:75
apollo::drivers::gnss::HuaCeMessage::Age
double Age
Definition
huace_base_parser.h:63
apollo::drivers::gnss::HuaCeMessage::solution_status
SolutionStatus solution_status
Definition
huace_base_parser.h:61
apollo::drivers::gnss::HuaCeMessage::GyroY
double GyroY
Definition
huace_base_parser.h:47
apollo::drivers::gnss::HuaCeMessage::lon_std
double lon_std
Definition
huace_base_parser.h:71
apollo::drivers::gnss::HuaCeMessage::WarningCs
std::string WarningCs
Definition
huace_base_parser.h:64
apollo::drivers::gnss::HuaCeMessage::vn_std
double vn_std
Definition
huace_base_parser.h:73
apollo::drivers::gnss::HuaCeMessage::lat_std
double lat_std
Definition
huace_base_parser.h:70
apollo::drivers::gnss::HuaCeMessage::yaw_std
double yaw_std
Definition
huace_base_parser.h:80
apollo::drivers::gnss::HuaCeMessage::roll_std
double roll_std
Definition
huace_base_parser.h:78
apollo::drivers::gnss::HuaCeMessage::Roll
double Roll
Definition
huace_base_parser.h:45
apollo::drivers::gnss::HuaCeMessage::gps_timestamp_sec
double gps_timestamp_sec
Definition
huace_base_parser.h:68
apollo::drivers::gnss::HuaCeMessage::Pitch
double Pitch
Definition
huace_base_parser.h:44
apollo::drivers::gnss::HuaCeMessage::GPSWeek
int GPSWeek
Definition
huace_base_parser.h:41
apollo::drivers::gnss::HuaCeMessage::NSV1
int NSV1
Definition
huace_base_parser.h:59
apollo::drivers::gnss::HuaCeMessage::Altitude
double Altitude
Definition
huace_base_parser.h:54
apollo::drivers::gnss::HuaCeMessage::pitch_std
double pitch_std
Definition
huace_base_parser.h:79
apollo::drivers::gnss::HuaCeMessage::GyroZ
double GyroZ
Definition
huace_base_parser.h:48
apollo::drivers::gnss::HuaCeMessage::Longitude
double Longitude
Definition
huace_base_parser.h:53
apollo::drivers::gnss::HuaCeMessage::V
double V
Definition
huace_base_parser.h:58
apollo::drivers::gnss::HuaCeMessage::ve_std
double ve_std
Definition
huace_base_parser.h:74
apollo::drivers::gnss::HuaCeMessage::messageID
std::string messageID
Definition
huace_base_parser.h:40
apollo::drivers::gnss::Imu
Definition
imu.proto:10
apollo::drivers::gnss::InsStat
Definition
ins.proto:8
apollo::drivers::gnss::Ins
Definition
ins.proto:16
apollo::drivers::gnss::config::Config
Definition
config.proto:104
modules
drivers
gnss
parser
huace_parser
huace_base_parser.h