Apollo 11.0
自动驾驶开放平台
apollo::drivers::gnss::AsensingBinaryParser类 参考
类 apollo::drivers::gnss::AsensingBinaryParser 继承关系图:
apollo::drivers::gnss::AsensingBinaryParser 的协作图:

Public 成员函数

 AsensingBinaryParser (const config::Config &config)
 
bool PrepareMessage () override
 
void FillGnssBestpos () override
 
void FillIns () override
 
void FillInsStat () override
 
void FillImu () override
 
void FillHeading () override
 
- Public 成员函数 继承自 apollo::drivers::gnss::AsensingBaseParser
 AsensingBaseParser ()
 
 AsensingBaseParser (const config::Config &config)
 
virtual void GetMessages (MessageInfoVec *messages)
 
- Public 成员函数 继承自 apollo::drivers::gnss::Parser
virtual ~Parser ()
 
void Update (const uint8_t *data, size_t length)
 
void Update (const std::string &data)
 
virtual MessageType GetMessage (MessagePtr *message_ptr)
 
void GetMessagesByChannel (const uint8_t &channel, MessageInfoVec *messages)
 
virtual void GetMessages (const uint8_t &channel, MessageInfoVec *messages)
 
virtual bool GetInsStat (MessagePtr *message_ptr)
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 apollo::drivers::gnss::Parser
static Parser * CreateNovatel (const config::Config &config)
 
static Parser * CreateHuaCeText (const config::Config &config)
 
static Parser * CreateAsensingBinary (const config::Config &config)
 
static Parser * CreateAsensingCan (const config::Config &config)
 
static Parser * CreateBroadGnssText (const config::Config &config)
 
static Parser * CreateParser (const config::Config &config)
 
static Parser * CreateRtcmV3 (bool is_base_station=false)
 
- Protected 成员函数 继承自 apollo::drivers::gnss::Parser
 Parser ()
 
- Protected 属性 继承自 apollo::drivers::gnss::AsensingBaseParser
SolutionStatus solution_status_ = SolutionStatus::INSUFFICIENT_OBS
 
SolutionType solution_type_ = SolutionType::NONE
 
double gps_sec_
 
GnssBestPose bestpos_
 
RateControl bestpos_ratecontrol_ {PERIOD_NS_1HZ}
 
Imu imu_
 
Heading heading_
 
Ins ins_
 
InsStat ins_stat_
 
bool auto_fill_gps_msg_
 
- Protected 属性 继承自 apollo::drivers::gnss::Parser
const uint8_t * data_ = nullptr
 
const uint8_t * data_end_ = nullptr
 

详细描述

在文件 asensing_binary_parser.cc 第 23 行定义.

构造及析构函数说明

◆ AsensingBinaryParser()

apollo::drivers::gnss::AsensingBinaryParser::AsensingBinaryParser ( const config::Config &  config)
inlineexplicit

成员函数说明

◆ FillGnssBestpos()

void apollo::drivers::gnss::AsensingBinaryParser::FillGnssBestpos ( )
overridevirtual

实现了 apollo::drivers::gnss::AsensingBaseParser.

在文件 asensing_binary_parser.cc 第 67 行定义.

67 {
68 bestpos_.set_measurement_time(gps_sec_);
69 bestpos_.set_sol_status(solution_status_);
70 bestpos_.set_sol_type(solution_type_);
71 bestpos_.set_latitude(decode_b.insdata.Lat_gnss_deg);
72 bestpos_.set_longitude(decode_b.insdata.Lon_gnss_deg);
73 bestpos_.set_height_msl(decode_b.insdata.Alt_gnss_m);
74
75 if (decode_b.insdata.LoopType == 0) {
76 bestpos_.set_latitude_std_dev(exp(decode_b.insdata.data1 / 100));
77 bestpos_.set_longitude_std_dev(exp(decode_b.insdata.data2 / 100));
78 bestpos_.set_height_std_dev(exp(decode_b.insdata.data3 / 100));
79 }
80 bestpos_.set_differential_age(decode_b.insdata.differential_age);
81 // bestpos_.set_num_sats_tracked(0);
82 // bestpos_.set_num_sats_in_solution(0);
83 // bestpos_.set_num_sats_l1(0);
84 // bestpos_.set_num_sats_multi(0);
85}
double Lon_gnss_deg
double Lat_gnss_deg
float differential_age
uint8_t LoopType

◆ FillHeading()

void apollo::drivers::gnss::AsensingBinaryParser::FillHeading ( )
overridevirtual

实现了 apollo::drivers::gnss::AsensingBaseParser.

在文件 asensing_binary_parser.cc 第 135 行定义.

135 {
136 heading_.set_solution_status(solution_status_);
137 heading_.set_position_type(solution_type_);
138 heading_.set_measurement_time(gps_sec_);
139 heading_.set_heading(decode_b.insdata.Yaw_deg);
140 heading_.set_pitch(decode_b.insdata.Pitch_deg);
141
142 if (decode_b.insdata.LoopType == 2) {
143 heading_.set_heading_std_dev(exp(decode_b.insdata.data3 / 100));
144 heading_.set_pitch_std_dev(exp(decode_b.insdata.data2 / 100));
145 }
146
147 // heading_.set_station_id("0");
148 // heading_.set_satellite_number_multi(0);
149 // heading_.set_satellite_soulution_number(0);
150}

◆ FillImu()

void apollo::drivers::gnss::AsensingBinaryParser::FillImu ( )
overridevirtual

实现了 apollo::drivers::gnss::AsensingBaseParser.

在文件 asensing_binary_parser.cc 第 127 行定义.

127 {
128 rfu_to_flu(decode_b.insdata.AccX_g, decode_b.insdata.AccY_g,
129 decode_b.insdata.AccZ_g, imu_.mutable_linear_acceleration());
130 rfu_to_flu(decode_b.insdata.GyroX, decode_b.insdata.GyroY,
131 decode_b.insdata.GyroZ, imu_.mutable_angular_velocity());
132 imu_.set_measurement_time(gps_sec_);
133}
void rfu_to_flu(double r, double f, double u, ::apollo::common::Point3D *flu)

◆ FillIns()

void apollo::drivers::gnss::AsensingBinaryParser::FillIns ( )
overridevirtual

实现了 apollo::drivers::gnss::AsensingBaseParser.

在文件 asensing_binary_parser.cc 第 87 行定义.

87 {
88 ins_.mutable_euler_angles()->set_x(decode_b.insdata.Roll_deg * DEG_TO_RAD);
89 ins_.mutable_euler_angles()->set_y(-decode_b.insdata.Pitch_deg * DEG_TO_RAD);
90 ins_.mutable_euler_angles()->set_z(
92
93 ins_.mutable_position()->set_lon(decode_b.insdata.Lon_deg);
94 ins_.mutable_position()->set_lat(decode_b.insdata.Lat_deg);
95 ins_.mutable_position()->set_height(decode_b.insdata.Alt_m);
96 ins_.mutable_linear_velocity()->set_x(decode_b.insdata.VelE_mps);
97 ins_.mutable_linear_velocity()->set_y(decode_b.insdata.VelN_mps);
98 ins_.mutable_linear_velocity()->set_z(-decode_b.insdata.VelD_mps);
99 rfu_to_flu(decode_b.insdata.AccX_g, decode_b.insdata.AccY_g,
100 decode_b.insdata.AccZ_g, ins_.mutable_linear_acceleration());
101 rfu_to_flu(decode_b.insdata.GyroX, decode_b.insdata.GyroY,
102 decode_b.insdata.GyroZ, ins_.mutable_angular_velocity());
103 ins_.set_measurement_time(gps_sec_);
104 ins_.mutable_header()->set_timestamp_sec(cyber::Time::Now().ToSecond());
105
106 switch (solution_type_) {
111 ins_.set_type(Ins::GOOD);
112 break;
114 ins_.set_type(Ins::CONVERGING);
115 break;
116 default:
117 ins_.set_type(Ins::INVALID);
118 break;
119 }
120}
static Time Now()
get the current time.
Definition time.cc:57
constexpr double DEG_TO_RAD
constexpr double azimuth_deg_to_yaw_rad(double azimuth)

◆ FillInsStat()

void apollo::drivers::gnss::AsensingBinaryParser::FillInsStat ( )
overridevirtual

◆ PrepareMessage()

bool apollo::drivers::gnss::AsensingBinaryParser::PrepareMessage ( )
overridevirtual

实现了 apollo::drivers::gnss::AsensingBaseParser.

在文件 asensing_binary_parser.cc 第 45 行定义.

45 {
46 asensing.addData(
47 std::string(reinterpret_cast<const char *>(data_), data_end_ - data_));
48 AINFO << "get protocol: " << asensing.getProtocol();
49 if (asensing.getProtocol() != decode_b.m_typeImu) {
50 return false;
51 }
52 if ((decode_b.insdata.InsStatus & 0x0F) == 0x0F) {
54 } else {
56 }
57 if (SolutionType_IsValid(decode_b.insdata.flag_pos)) {
59 } else {
61 }
62 gps_sec_ =
64 return true;
65}
std::string m_typeImu
std::string getProtocol()
void addData(const std::string &data)
const uint8_t * data_
Definition parser.h:145
const uint8_t * data_end_
Definition parser.h:146
#define AINFO
Definition log.h:42
T unix2gps(const T unix_seconds)
uint8_t InsStatus
uint8_t flag_pos
int64_t SysTime_ms

该类的文档由以下文件生成: