31 #include <boost/make_shared.hpp>
46 novatel_gps_msgs::InspvaPtr
49 if (bin_msg.data_.size() != BINARY_LENGTH)
51 std::stringstream error;
52 error <<
"Unexpected inspva message size: " << bin_msg.data_.size();
55 novatel_gps_msgs::InspvaPtr ros_msg = boost::make_shared<novatel_gps_msgs::Inspva>();
57 ros_msg->novatel_msg_header = h_parser.
ParseBinary(bin_msg);
58 ros_msg->novatel_msg_header.message_name = GetMessageName();
62 ros_msg->latitude =
ParseDouble(&bin_msg.data_[12]);
63 ros_msg->longitude =
ParseDouble(&bin_msg.data_[20]);
65 ros_msg->north_velocity =
ParseDouble(&bin_msg.data_[36]);
66 ros_msg->east_velocity =
ParseDouble(&bin_msg.data_[44]);
67 ros_msg->up_velocity =
ParseDouble(&bin_msg.data_[52]);
76 ros_msg->status =
"INS_INACTIVE";
79 ros_msg->status =
"INS_ALIGNING";
82 ros_msg->status =
"INS_HIGH_VARIANCE";
85 ros_msg->status =
"INS_SOLUTION_GOOD";
88 ros_msg->status =
"INS_SOLUTION_FREE";
91 ros_msg->status =
"INS_ALIGNMENT_COMPLETE";
94 ros_msg->status =
"DETERMINING_ORIENTATION";
97 ros_msg->status =
"WAITING_INITIALPOS";
100 ros_msg->status =
"WAITING_AZIMUTH";
103 ros_msg->status =
"INITIALIZING_BASES";
106 ros_msg->status =
"MOTION_DETECT";
110 std::stringstream error;
111 error <<
"Unexpected inertial solution status: " << status;
119 novatel_gps_msgs::InspvaPtr
122 if (sentence.body.size() != ASCII_FIELDS)
124 std::stringstream error;
125 error <<
"Unexpected number of fields in INSPVA log: " << sentence.body.size();
128 novatel_gps_msgs::InspvaPtr
msg = boost::make_shared<novatel_gps_msgs::Inspva>();
145 msg->status = sentence.body[11];