Apollo
10.0
自动驾驶开放平台
forsense_base_parser.h
浏览该文件的文档.
1
/******************************************************************************
2
* Copyright 2024 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
ForsenseMessage
{
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
double
gps_timestamp_sec
= 0;
68
// 数据标准差
69
double
lat_std
= 0.0;
70
double
lon_std
= 0.0;
71
double
alti_std
= 0.0;
72
double
vn_std
= 0.0;
73
double
ve_std
= 0.0;
74
double
vu_std
= 0.0;
75
double
v_std
= 0.0;
76
77
double
roll_std
= 0.0;
78
double
pitch_std
= 0.0;
79
double
yaw_std
= 0.0;
80
};
81
82
class
ForsenseBaseParser
:
public
Parser
{
83
public
:
84
ForsenseBaseParser
() {}
85
explicit
ForsenseBaseParser
(
const
config::Config
&config);
86
87
virtual
bool
PrepareMessage
() = 0;
88
89
virtual
void
GetMessages
(
MessageInfoVec
*messages);
90
91
protected
:
92
void
PrepareMessageStatus
(
const
uint8_t &system_state,
93
const
uint8_t &satellite_status);
94
ForsenseMessage
decode_message_
;
95
96
private
:
97
void
FillGnssBestpos();
98
void
FillIns();
99
void
FillInsStat();
100
void
FillImu();
101
void
FillHeading();
102
103
GnssBestPose
bestpos_;
104
Imu
imu_;
105
Heading
heading_;
106
Ins
ins_;
107
InsStat
ins_stat_;
108
};
109
110
}
// namespace gnss
111
}
// namespace drivers
112
}
// namespace apollo
apollo::drivers::gnss::ForsenseBaseParser
Definition
forsense_base_parser.h:82
apollo::drivers::gnss::ForsenseBaseParser::GetMessages
virtual void GetMessages(MessageInfoVec *messages)
Definition
forsense_base_parser.cc:35
apollo::drivers::gnss::ForsenseBaseParser::PrepareMessageStatus
void PrepareMessageStatus(const uint8_t &system_state, const uint8_t &satellite_status)
Definition
forsense_base_parser.cc:61
apollo::drivers::gnss::ForsenseBaseParser::PrepareMessage
virtual bool PrepareMessage()=0
apollo::drivers::gnss::ForsenseBaseParser::ForsenseBaseParser
ForsenseBaseParser()
Definition
forsense_base_parser.h:84
apollo::drivers::gnss::ForsenseBaseParser::decode_message_
ForsenseMessage decode_message_
Definition
forsense_base_parser.h:94
apollo::drivers::gnss::Parser
Definition
parser.h:78
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::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::ForsenseMessage
Definition
forsense_base_parser.h:39
apollo::drivers::gnss::ForsenseMessage::ve_std
double ve_std
Definition
forsense_base_parser.h:73
apollo::drivers::gnss::ForsenseMessage::AccZ
double AccZ
Definition
forsense_base_parser.h:51
apollo::drivers::gnss::ForsenseMessage::yaw_std
double yaw_std
Definition
forsense_base_parser.h:79
apollo::drivers::gnss::ForsenseMessage::Altitude
double Altitude
Definition
forsense_base_parser.h:54
apollo::drivers::gnss::ForsenseMessage::NSV2
int NSV2
Definition
forsense_base_parser.h:60
apollo::drivers::gnss::ForsenseMessage::Roll
double Roll
Definition
forsense_base_parser.h:45
apollo::drivers::gnss::ForsenseMessage::satellites_num
uint8_t satellites_num
Definition
forsense_base_parser.h:65
apollo::drivers::gnss::ForsenseMessage::Ve
double Ve
Definition
forsense_base_parser.h:55
apollo::drivers::gnss::ForsenseMessage::GPSTime
double GPSTime
Definition
forsense_base_parser.h:42
apollo::drivers::gnss::ForsenseMessage::Heading
double Heading
Definition
forsense_base_parser.h:43
apollo::drivers::gnss::ForsenseMessage::Vn
double Vn
Definition
forsense_base_parser.h:56
apollo::drivers::gnss::ForsenseMessage::GyroY
double GyroY
Definition
forsense_base_parser.h:47
apollo::drivers::gnss::ForsenseMessage::lat_std
double lat_std
Definition
forsense_base_parser.h:69
apollo::drivers::gnss::ForsenseMessage::NSV1
int NSV1
Definition
forsense_base_parser.h:59
apollo::drivers::gnss::ForsenseMessage::lon_std
double lon_std
Definition
forsense_base_parser.h:70
apollo::drivers::gnss::ForsenseMessage::messageID
std::string messageID
Definition
forsense_base_parser.h:40
apollo::drivers::gnss::ForsenseMessage::vu_std
double vu_std
Definition
forsense_base_parser.h:74
apollo::drivers::gnss::ForsenseMessage::Age
double Age
Definition
forsense_base_parser.h:63
apollo::drivers::gnss::ForsenseMessage::solution_type
SolutionType solution_type
Definition
forsense_base_parser.h:62
apollo::drivers::gnss::ForsenseMessage::gps_timestamp_sec
double gps_timestamp_sec
Definition
forsense_base_parser.h:67
apollo::drivers::gnss::ForsenseMessage::GPSWeek
int GPSWeek
Definition
forsense_base_parser.h:41
apollo::drivers::gnss::ForsenseMessage::wheel_speed_status
uint8_t wheel_speed_status
Definition
forsense_base_parser.h:66
apollo::drivers::gnss::ForsenseMessage::Pitch
double Pitch
Definition
forsense_base_parser.h:44
apollo::drivers::gnss::ForsenseMessage::Vu
double Vu
Definition
forsense_base_parser.h:57
apollo::drivers::gnss::ForsenseMessage::roll_std
double roll_std
Definition
forsense_base_parser.h:77
apollo::drivers::gnss::ForsenseMessage::AccX
double AccX
Definition
forsense_base_parser.h:49
apollo::drivers::gnss::ForsenseMessage::v_std
double v_std
Definition
forsense_base_parser.h:75
apollo::drivers::gnss::ForsenseMessage::solution_status
SolutionStatus solution_status
Definition
forsense_base_parser.h:61
apollo::drivers::gnss::ForsenseMessage::GyroZ
double GyroZ
Definition
forsense_base_parser.h:48
apollo::drivers::gnss::ForsenseMessage::GyroX
double GyroX
Definition
forsense_base_parser.h:46
apollo::drivers::gnss::ForsenseMessage::pitch_std
double pitch_std
Definition
forsense_base_parser.h:78
apollo::drivers::gnss::ForsenseMessage::vn_std
double vn_std
Definition
forsense_base_parser.h:72
apollo::drivers::gnss::ForsenseMessage::AccY
double AccY
Definition
forsense_base_parser.h:50
apollo::drivers::gnss::ForsenseMessage::WarningCs
std::string WarningCs
Definition
forsense_base_parser.h:64
apollo::drivers::gnss::ForsenseMessage::Latitude
double Latitude
Definition
forsense_base_parser.h:52
apollo::drivers::gnss::ForsenseMessage::V
double V
Definition
forsense_base_parser.h:58
apollo::drivers::gnss::ForsenseMessage::alti_std
double alti_std
Definition
forsense_base_parser.h:71
apollo::drivers::gnss::ForsenseMessage::Longitude
double Longitude
Definition
forsense_base_parser.h:53
apollo::drivers::gnss::GnssBestPose
Definition
gnss_best_pose.proto:69
apollo::drivers::gnss::Heading
Definition
heading.proto:7
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
forsense_parser
forsense_base_parser.h