27#include "modules/common_msgs/sensor_msgs/gnss.pb.h"
28#include "modules/common_msgs/sensor_msgs/gnss_best_pose.pb.h"
29#include "modules/common_msgs/sensor_msgs/gnss_raw_observation.pb.h"
30#include "modules/common_msgs/sensor_msgs/heading.pb.h"
31#include "modules/common_msgs/sensor_msgs/imu.pb.h"
32#include "modules/common_msgs/sensor_msgs/ins.pb.h"
52 void PrepareMessage();
54 void FillGnssBestpos();
84 if (
data_ ==
nullptr) {
100 if (bestpos_ratecontrol_.
check()) {
114void AsensingParser::PrepareMessage() {
129void AsensingParser::FillGnssBestpos() {
130 bestpos_.set_measurement_time(gps_sec_);
131 bestpos_.set_sol_status(solution_status_);
132 bestpos_.set_sol_type(solution_type_);
138 bestpos_.set_latitude_std_dev(exp(decode_b.
insdata.
data1 / 100));
139 bestpos_.set_longitude_std_dev(exp(decode_b.
insdata.
data2 / 100));
140 bestpos_.set_height_std_dev(exp(decode_b.
insdata.
data3 / 100));
149void AsensingParser::FillIns() {
156 ins_.mutable_position()->set_height(decode_b.
insdata.
Alt_m);
161 decode_b.
insdata.
AccZ_g, ins_.mutable_linear_acceleration());
163 decode_b.
insdata.
GyroZ, ins_.mutable_angular_velocity());
164 ins_.set_measurement_time(gps_sec_);
167 switch (solution_type_) {
183void AsensingParser::FillInsStat() {
184 ins_stat_.set_ins_status(solution_status_);
185 ins_stat_.set_pos_type(solution_type_);
188void AsensingParser::FillImu() {
190 decode_b.
insdata.
AccZ_g, imu_.mutable_linear_acceleration());
192 decode_b.
insdata.
GyroZ, imu_.mutable_angular_velocity());
193 imu_.set_measurement_time(gps_sec_);
196void AsensingParser::FillHeading() {
197 heading_.set_solution_status(solution_status_);
198 heading_.set_position_type(solution_type_);
199 heading_.set_measurement_time(gps_sec_);
204 heading_.set_heading_std_dev(exp(decode_b.
insdata.
data3 / 100));
205 heading_.set_pitch_std_dev(exp(decode_b.
insdata.
data2 / 100));
std::string getProtocol()
void addData(const std::string &data)
static Time Now()
get the current time.
virtual void GetMessages(MessageInfoVec *messages)
const uint8_t * data_end_
static Parser * CreateAsensing(const config::Config &config)
::google::protobuf::Message * MessagePtr
void rfu_to_flu(double r, double f, double u, ::apollo::common::Point3D *flu)
constexpr uint64_t PERIOD_NS_1HZ
std::vector< MessageInfo > MessageInfoVec
T unix2gps(const T unix_seconds)