#include <message_wrapper.h>
Public Member Functions | |
const sensor_msgs::FluidPressure | createRosFluidPressureMessage (const sbg_driver::SbgAirData &ref_sbg_air_msg) const |
const sensor_msgs::Imu | createRosImuMessage (const sbg_driver::SbgImuData &ref_sbg_imu_msg, const sbg_driver::SbgEkfQuat &ref_sbg_quat_msg) const |
const sensor_msgs::MagneticField | createRosMagneticMessage (const sbg_driver::SbgMag &ref_sbg_mag_msg) const |
const sensor_msgs::NavSatFix | createRosNavSatFixMessage (const sbg_driver::SbgGpsPos &ref_sbg_gps_msg) const |
const geometry_msgs::PointStamped | createRosPointStampedMessage (const sbg_driver::SbgEkfNav &ref_sbg_ekf_msg) const |
const sensor_msgs::Temperature | createRosTemperatureMessage (const sbg_driver::SbgImuData &ref_sbg_imu_msg) const |
const geometry_msgs::TwistStamped | createRosTwistStampedMessage (const sbg_driver::SbgEkfEuler &ref_sbg_ekf_vel_msg, const sbg_driver::SbgEkfNav &ref_sbg_ekf_nav_msg, const sbg_driver::SbgImuData &ref_sbg_imu_msg) const |
const geometry_msgs::TwistStamped | createRosTwistStampedMessage (const sbg_driver::SbgEkfQuat &ref_sbg_ekf_vel_msg, const sbg_driver::SbgEkfNav &ref_sbg_ekf_nav_msg, const sbg_driver::SbgImuData &ref_sbg_imu_msg) const |
const sensor_msgs::TimeReference | createRosUtcTimeReferenceMessage (const sbg_driver::SbgUtcTime &ref_sbg_utc_msg) const |
const sbg_driver::SbgAirData | createSbgAirDataMessage (const SbgLogAirData &ref_air_data_log) const |
const sbg_driver::SbgEkfEuler | createSbgEkfEulerMessage (const SbgLogEkfEulerData &ref_log_ekf_euler) const |
const sbg_driver::SbgEkfNav | createSbgEkfNavMessage (const SbgLogEkfNavData &ref_log_ekf_nav) const |
const sbg_driver::SbgEkfQuat | createSbgEkfQuatMessage (const SbgLogEkfQuatData &ref_log_ekf_quat) const |
const sbg_driver::SbgEvent | createSbgEventMessage (const SbgLogEvent &ref_log_event) const |
const sbg_driver::SbgGpsHdt | createSbgGpsHdtMessage (const SbgLogGpsHdt &ref_log_gps_hdt) const |
const sbg_driver::SbgGpsPos | createSbgGpsPosMessage (const SbgLogGpsPos &ref_log_gps_pos) const |
const sbg_driver::SbgGpsRaw | createSbgGpsRawMessage (const SbgLogGpsRaw &ref_log_gps_raw) const |
const sbg_driver::SbgGpsVel | createSbgGpsVelMessage (const SbgLogGpsVel &ref_log_gps_vel) const |
const sbg_driver::SbgImuData | createSbgImuDataMessage (const SbgLogImuData &ref_log_imu_data) const |
const sbg_driver::SbgImuShort | createSbgImuShortMessage (const SbgLogImuShort &ref_short_imu_log) const |
const sbg_driver::SbgMagCalib | createSbgMagCalibMessage (const SbgLogMagCalib &ref_log_mag_calib) const |
const sbg_driver::SbgMag | createSbgMagMessage (const SbgLogMag &ref_log_mag) const |
const sbg_driver::SbgOdoVel | createSbgOdoVelMessage (const SbgLogOdometerData &ref_log_odo) const |
const sbg_driver::SbgShipMotion | createSbgShipMotionMessage (const SbgLogShipMotionData &ref_log_ship_motion) const |
const sbg_driver::SbgStatus | createSbgStatusMessage (const SbgLogStatusData &ref_log_status) const |
const sbg_driver::SbgUtcTime | createSbgUtcTimeMessage (const SbgLogUtcData &ref_log_utc) |
MessageWrapper (void) | |
void | setRosProcessingTime (const ros::Time &ref_ros_time) |
Private Member Functions | |
const ros::Time | computeCorrectedRosTime (uint32_t device_timestamp) const |
const ros::Time | convertUtcTimeToEpoch (const sbg_driver::SbgUtcTime &ref_sbg_utc_msg) const |
const sbg_driver::SbgAirDataStatus | createAirDataStatusMessage (const SbgLogAirData &ref_sbg_air_data) const |
const sbg_driver::SbgEkfStatus | createEkfStatusMessage (uint32_t ekf_status) const |
template<typename T > | |
const geometry_msgs::Vector3 | createGeometryVector3 (const T *p_array, size_t array_size) const |
const sbg_driver::SbgGpsPosStatus | createGpsPosStatusMessage (const SbgLogGpsPos &ref_log_gps_pos) const |
const sbg_driver::SbgGpsVelStatus | createGpsVelStatusMessage (const SbgLogGpsVel &ref_log_gps_vel) const |
const sbg_driver::SbgImuStatus | createImuStatusMessage (uint16_t sbg_imu_status) const |
const sbg_driver::SbgMagStatus | createMagStatusMessage (const SbgLogMag &ref_log_mag) const |
const std_msgs::Header | createRosHeader (uint32_t device_timestamp) const |
const geometry_msgs::TwistStamped | createRosTwistStampedMessage (const sbg::SbgVector3f &body_vel, const sbg_driver::SbgImuData &ref_sbg_imu_msg) const |
const sbg_driver::SbgShipMotionStatus | createShipMotionStatusMessage (const SbgLogShipMotionData &ref_log_ship_motion) const |
const sbg_driver::SbgStatusAiding | createStatusAidingMessage (const SbgLogStatusData &ref_log_status) const |
const sbg_driver::SbgStatusCom | createStatusComMessage (const SbgLogStatusData &ref_log_status) const |
const sbg_driver::SbgStatusGeneral | createStatusGeneralMessage (const SbgLogStatusData &ref_log_status) const |
const sbg_driver::SbgUtcTimeStatus | createUtcStatusMessage (const SbgLogUtcData &ref_log_utc) const |
uint32_t | getNumberOfDaysInMonth (uint16_t year, uint8_t month_index) const |
uint32_t | getNumberOfDaysInYear (uint16_t year) const |
bool | isLeapYear (uint16_t year) const |
Private Attributes | |
bool | m_first_valid_utc_ |
sbg_driver::SbgUtcTime | m_last_sbg_utc_ |
ros::Time | m_ros_processing_time_ |
Class to wrap the SBG logs into ROS messages.
Definition at line 79 of file message_wrapper.h.
MessageWrapper::MessageWrapper | ( | void | ) |
Default constructor.
Class to wrap the SBG logs into ROS messages.
Definition at line 16 of file message_wrapper.cpp.
|
private |
Compute corrected ROS time for the device timestamp.
[in] | device_timestamp | SBG device timestamp (in microseconds). |
Definition at line 76 of file message_wrapper.cpp.
|
private |
Convert the UTC time to an Epoch time.
[in] | ref_sbg_utc_msg | SBG-ROS UTC message. |
Definition at line 303 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS air data status message.
[in] | ref_sbg_air_data | SBG AirData log. |
Definition at line 338 of file message_wrapper.cpp.
|
private |
Create SBG-ROS Ekf status message.
[in] | ekf_status | SBG Ekf status. |
Definition at line 96 of file message_wrapper.cpp.
|
inlineprivate |
Create a geometry message Vector3 from a raw input vector.
T Numeric template type.
[in] | p_array | Raw input vector. |
[in] | array_size | Raw vector size, should be defined as 3. |
Definition at line 100 of file message_wrapper.h.
|
private |
Create SBG-ROS GPS Position status message.
[in] | ref_log_gps_pos | SBG GPS position log. |
Definition at line 121 of file message_wrapper.cpp.
|
private |
Create SBG-ROS GPS Velocity status message.
[in] | ref_log_gps_vel | SBG GPS Velocity log. |
Definition at line 136 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS IMU status message.
[in] | sbg_imu_status | SBG IMU status. |
Definition at line 146 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS Magnetometer status message.
[in] | ref_log_mag | SBG Magnetometer log. |
Definition at line 164 of file message_wrapper.cpp.
const sensor_msgs::FluidPressure MessageWrapper::createRosFluidPressureMessage | ( | const sbg_driver::SbgAirData & | ref_sbg_air_msg | ) | const |
Create a ROS standard FluidPressure message.
[in] | ref_sbg_air_msg | SBG-ROS AirData message. |
Definition at line 803 of file message_wrapper.cpp.
|
private |
Create a ROS message header.
[in] | device_timestamp | SBG device timestamp (in microseconds). |
Definition at line 26 of file message_wrapper.cpp.
const sensor_msgs::Imu MessageWrapper::createRosImuMessage | ( | const sbg_driver::SbgImuData & | ref_sbg_imu_msg, |
const sbg_driver::SbgEkfQuat & | ref_sbg_quat_msg | ||
) | const |
Create a ROS standard IMU message from SBG messages.
[in] | ref_sbg_imu_msg | SBG-ROS IMU message. |
[in] | ref_sbg_quat_msg | SBG_ROS Quaternion message. |
Definition at line 643 of file message_wrapper.cpp.
const sensor_msgs::MagneticField MessageWrapper::createRosMagneticMessage | ( | const sbg_driver::SbgMag & | ref_sbg_mag_msg | ) | const |
Create a ROS standard MagneticField message from SBG message.
[in] | ref_sbg_mag_msg | SBG-ROS Mag message. |
Definition at line 669 of file message_wrapper.cpp.
const sensor_msgs::NavSatFix MessageWrapper::createRosNavSatFixMessage | ( | const sbg_driver::SbgGpsPos & | ref_sbg_gps_msg | ) | const |
Create a ROS standard NavSatFix message from a Gps message.
[in] | ref_sbg_gps_msg | SBG-ROS GPS position message. |
Definition at line 762 of file message_wrapper.cpp.
const geometry_msgs::PointStamped MessageWrapper::createRosPointStampedMessage | ( | const sbg_driver::SbgEkfNav & | ref_sbg_ekf_msg | ) | const |
Create a ROS standard PointStamped message from SBG messages.
[in] | ref_sbg_ekf_msg | SBG-ROS EkfNav message. |
Definition at line 715 of file message_wrapper.cpp.
const sensor_msgs::Temperature MessageWrapper::createRosTemperatureMessage | ( | const sbg_driver::SbgImuData & | ref_sbg_imu_msg | ) | const |
Create a ROS standard Temperature message from SBG message.
[in] | ref_sbg_imu_msg | SBG-ROS IMU message. |
Definition at line 658 of file message_wrapper.cpp.
|
private |
Create a ROS standard TwistStamped message.
[in] | body_vel | SBG Body velocity vector. |
[in] | ref_sbg_air_data | SBG IMU message. |
Definition at line 701 of file message_wrapper.cpp.
const geometry_msgs::TwistStamped MessageWrapper::createRosTwistStampedMessage | ( | const sbg_driver::SbgEkfEuler & | ref_sbg_ekf_vel_msg, |
const sbg_driver::SbgEkfNav & | ref_sbg_ekf_nav_msg, | ||
const sbg_driver::SbgImuData & | ref_sbg_imu_msg | ||
) | const |
Create a ROS standard TwistStamped message from SBG messages.
[in] | ref_sbg_ekf_euler_msg | SBG-ROS Ekf Euler message. |
[in] | ref_sbg_ekf_nav_msg | SBG-ROS Ekf Nav message. |
[in] | ref_sbg_imu_msg | SBG-ROS IMU message. |
Definition at line 679 of file message_wrapper.cpp.
const geometry_msgs::TwistStamped MessageWrapper::createRosTwistStampedMessage | ( | const sbg_driver::SbgEkfQuat & | ref_sbg_ekf_vel_msg, |
const sbg_driver::SbgEkfNav & | ref_sbg_ekf_nav_msg, | ||
const sbg_driver::SbgImuData & | ref_sbg_imu_msg | ||
) | const |
Create a ROS standard TwistStamped message from SBG messages.
[in] | ref_sbg_ekf_quat_msg | SBG-ROS Ekf Quaternion message. |
[in] | ref_sbg_ekf_nav_msg | SBG-ROS Ekf Nav message. |
[in] | ref_sbg_imu_msg | SBG-ROS IMU message. |
Definition at line 690 of file message_wrapper.cpp.
const sensor_msgs::TimeReference MessageWrapper::createRosUtcTimeReferenceMessage | ( | const sbg_driver::SbgUtcTime & | ref_sbg_utc_msg | ) | const |
Create a ROS standard timeReference message for a UTC time.
[in] | ref_sbg_utc_msg | SBG-ROS UTC message. |
Definition at line 747 of file message_wrapper.cpp.
const sbg_driver::SbgAirData MessageWrapper::createSbgAirDataMessage | ( | const SbgLogAirData & | ref_air_data_log | ) | const |
Create a SBG-ROS Air data message from a SBG log.
[in] | ref_air_data_log | SBG AirData log. |
Definition at line 613 of file message_wrapper.cpp.
const sbg_driver::SbgEkfEuler MessageWrapper::createSbgEkfEulerMessage | ( | const SbgLogEkfEulerData & | ref_log_ekf_euler | ) | const |
Create a SBG-ROS Ekf Euler message.
[in] | ref_log_ekf_euler | SBG Ekf Euler log. |
Definition at line 365 of file message_wrapper.cpp.
const sbg_driver::SbgEkfNav MessageWrapper::createSbgEkfNavMessage | ( | const SbgLogEkfNavData & | ref_log_ekf_nav | ) | const |
Create a SBG-ROS Ekf Navigation message.
[in] | ref_log_ekf_nav | SBG Ekf Navigation log. |
Definition at line 378 of file message_wrapper.cpp.
const sbg_driver::SbgEkfQuat MessageWrapper::createSbgEkfQuatMessage | ( | const SbgLogEkfQuatData & | ref_log_ekf_quat | ) | const |
Create a SBG-ROS Ekf Quaternion message.
[in] | ref_log_ekf_quat | SBG Ekf Quaternion log. |
Definition at line 394 of file message_wrapper.cpp.
const sbg_driver::SbgEvent MessageWrapper::createSbgEventMessage | ( | const SbgLogEvent & | ref_log_event | ) | const |
Create a SBG-ROS event message.
[in] | ref_log_event | SBG event log. |
Definition at line 410 of file message_wrapper.cpp.
const sbg_driver::SbgGpsHdt MessageWrapper::createSbgGpsHdtMessage | ( | const SbgLogGpsHdt & | ref_log_gps_hdt | ) | const |
Create SBG-ROS GPS-HDT message.
[in] | ref_log_gps_hdt | SBG GPS HDT log. |
Definition at line 431 of file message_wrapper.cpp.
const sbg_driver::SbgGpsPos MessageWrapper::createSbgGpsPosMessage | ( | const SbgLogGpsPos & | ref_log_gps_pos | ) | const |
Create a SBG-ROS GPS-Position message.
[in] | ref_log_gps_pos | SBG GPS Position log. |
Definition at line 448 of file message_wrapper.cpp.
const sbg_driver::SbgGpsRaw MessageWrapper::createSbgGpsRawMessage | ( | const SbgLogGpsRaw & | ref_log_gps_raw | ) | const |
Create a SBG-ROS GPS raw message.
[in] | ref_log_gps_raw | SBG GPS raw log. |
Definition at line 471 of file message_wrapper.cpp.
const sbg_driver::SbgGpsVel MessageWrapper::createSbgGpsVelMessage | ( | const SbgLogGpsVel & | ref_log_gps_vel | ) | const |
Create a SBG-ROS GPS Velocity message.
[in] | ref_log_gps_vel | SBG GPS Velocity log. |
Definition at line 480 of file message_wrapper.cpp.
const sbg_driver::SbgImuData MessageWrapper::createSbgImuDataMessage | ( | const SbgLogImuData & | ref_log_imu_data | ) | const |
Create a SBG-ROS Imu data message.
[in] | ref_log_imu_data | SBG Imu data log. |
Definition at line 496 of file message_wrapper.cpp.
const sbg_driver::SbgImuShort MessageWrapper::createSbgImuShortMessage | ( | const SbgLogImuShort & | ref_short_imu_log | ) | const |
Create a SBG-ROS Short Imu message.
[in] | ref_short_imu_log | SBG Imu short log. |
Definition at line 629 of file message_wrapper.cpp.
const sbg_driver::SbgMagCalib MessageWrapper::createSbgMagCalibMessage | ( | const SbgLogMagCalib & | ref_log_mag_calib | ) | const |
Create a SBG-ROS Magnetometer calibration message.
[in] | ref_log_mag_calib | SBG Magnetometer calibration log. |
Definition at line 525 of file message_wrapper.cpp.
const sbg_driver::SbgMag MessageWrapper::createSbgMagMessage | ( | const SbgLogMag & | ref_log_mag | ) | const |
Create a SBG-ROS Magnetometer message.
[in] | ref_log_mag | SBG Magnetometer log. |
Definition at line 512 of file message_wrapper.cpp.
const sbg_driver::SbgOdoVel MessageWrapper::createSbgOdoVelMessage | ( | const SbgLogOdometerData & | ref_log_odo | ) | const |
Create a SBG-ROS Odometer velocity message.
[in] | ref_log_odo | SBG Odometer log. |
Definition at line 535 of file message_wrapper.cpp.
const sbg_driver::SbgShipMotion MessageWrapper::createSbgShipMotionMessage | ( | const SbgLogShipMotionData & | ref_log_ship_motion | ) | const |
Create a SBG-ROS Shipmotion message.
[in] | ref_log_ship_motion | SBG Ship motion log. |
Definition at line 548 of file message_wrapper.cpp.
const sbg_driver::SbgStatus MessageWrapper::createSbgStatusMessage | ( | const SbgLogStatusData & | ref_log_status | ) | const |
Create a SBG-ROS status message from a SBG status log.
[in] | ref_log_status | SBG status log. |
Definition at line 562 of file message_wrapper.cpp.
const sbg_driver::SbgUtcTime MessageWrapper::createSbgUtcTimeMessage | ( | const SbgLogUtcData & | ref_log_utc | ) |
Create a SBG-ROS UTC time message from a SBG UTC log.
[in] | ref_log_utc | SBG UTC log. |
Definition at line 576 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS Ship motion status message.
[in] | ref_log_ship_motion | SBG Ship motion log. |
Definition at line 181 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS aiding status message.
[in] | ref_log_status | SBG status log. |
Definition at line 193 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS com status message.
[in] | ref_log_status | SBG status log. |
Definition at line 209 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS general status message.
[in] | ref_log_status | SBG status log. |
Definition at line 237 of file message_wrapper.cpp.
|
private |
Create a SBG-ROS UTC time status message.
[in] | ref_log_utc | SBG UTC data log. |
Definition at line 250 of file message_wrapper.cpp.
|
private |
Get the number of days of the month index.
[in] | year | Year. |
[in] | month_index | Month index [1..12]. |
Definition at line 275 of file message_wrapper.cpp.
|
private |
Get the number of days in the year.
[in] | year | Year to get the number of days. |
Definition at line 263 of file message_wrapper.cpp.
|
private |
Check if the given year is a leap year.
[in] | year | Year to check. |
Definition at line 298 of file message_wrapper.cpp.
void MessageWrapper::setRosProcessingTime | ( | const ros::Time & | ref_ros_time | ) |
Set the wrapper processing ROS time. This method is call on the SbgDevice periodic handle, in order to have the same processing time for the messages.
[in] | ref_ros_time | ROS processing time to set. |
Definition at line 356 of file message_wrapper.cpp.
|
private |
Definition at line 85 of file message_wrapper.h.
|
private |
Definition at line 84 of file message_wrapper.h.
|
private |
Definition at line 83 of file message_wrapper.h.