12 MessagePublisher::MessagePublisher(
void):
23 std::string sbg_node_name;
28 switch (sbg_message_id)
55 name =
"/ship_motion";
97 return sbg_node_name + name;
219 std::string imu_node_name;
229 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Imu and/or Quat output are not configured, the standard IMU can not be defined.");
238 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Imu data output are not configured, the standard Temperature publisher can not be defined.");
247 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Mag data output are not configured, the standard Magnetic publisher can not be defined.");
260 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Imu, Nav or Angles data outputs are not configured, the standard Velocity publisher can not be defined.");
269 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG AirData output are not configured, the standard FluidPressure publisher can not be defined.");
278 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Ekf data output are not configured, the standard ECEF position publisher can not be defined.");
287 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG Utc data output are not configured, the UTC time reference publisher can not be defined.");
296 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG GPS Pos data output are not configured, the NavSatFix publisher can not be defined.");
307 ROS_WARN(
"SBG_DRIVER - [Publisher] SBG IMU, NAV and Quaternion (or Euler) outputs are not configured, the odometry publisher can not be defined.");
388 sbg_driver::SbgMag sbg_mag_message;
403 sbg_driver::SbgAirData sbg_air_data_message;
433 sbg_driver::SbgUtcTime sbg_utc_message;
452 sbg_driver::SbgGpsPos sbg_gps_pos_message;
475 const std::vector<ConfigStore::SbgLogOutput> &ref_output_modes = ref_config_store.
getOutputModes();
ros::Publisher m_sbgGpsVel_pub_
const sensor_msgs::NavSatFix createRosNavSatFixMessage(const sbg_driver::SbgGpsPos &ref_sbg_gps_msg) const
SbgLogEkfNavData ekfNavData
SbgLogEkfEulerData ekfEulerData
const sbg_driver::SbgImuShort createSbgImuShortMessage(const SbgLogImuShort &ref_short_imu_log) const
SbgLogEkfQuatData ekfQuatData
const std::string & getFrameId(void) const
const nav_msgs::Odometry createRosOdoMessage(const sbg_driver::SbgImuData &ref_sbg_imu_msg, const sbg_driver::SbgEkfNav &ref_sbg_ekf_nav_msg, const sbg_driver::SbgEkfQuat &ref_sbg_ekf_quat_msg, const sbg_driver::SbgEkfEuler &ref_sbg_ekf_euler_msg)
ros::Publisher m_imu_pub_
void setOdomEnable(bool odom_enable)
TimeReference getTimeReference(void) const
ros::Publisher m_pos_ecef_pub_
const sbg_driver::SbgEkfNav createSbgEkfNavMessage(const SbgLogEkfNavData &ref_log_ekf_nav) const
const sbg_driver::SbgAirData createSbgAirDataMessage(const SbgLogAirData &ref_air_data_log) const
const std::string & getOdomBaseFrameId(void) const
const sensor_msgs::TimeReference createRosUtcTimeReferenceMessage(const sbg_driver::SbgUtcTime &ref_sbg_utc_msg) const
const std::string & getOdomFrameId(void) const
void processRosImuMessage(void)
void defineRosStandardPublishers(ros::NodeHandle &ref_ros_node_handle, bool odom_enable)
void processRosVelMessage(void)
ros::Publisher m_sbgImuShort_pub_
void setOdomPublishTf(bool publish_tf)
bool getOdomEnable(void) const
Manage publishment of messages from logs.
const geometry_msgs::TwistStamped createRosTwistStampedMessage(const sbg::SbgVector3f &body_vel, const sbg_driver::SbgImuData &ref_sbg_imu_msg) const
MessageWrapper m_message_wrapper_
std::string getOutputTopicName(SbgEComMsgId sbg_message_id) const
ros::Publisher m_sbgImuData_pub_
void publishIMUData(const SbgBinaryLogData &ref_sbg_log)
ros::Publisher m_sbgEkfQuat_pub_
bool getOdomPublishTf(void) const
ROSCPP_DECL std::string resolve(const std::string &name, bool remap=true)
const std::string & getOdomInitFrameId(void) const
bool checkRosStandardMessages(void) const
const sbg_driver::SbgEkfQuat createSbgEkfQuatMessage(const SbgLogEkfQuatData &ref_log_ekf_quat) const
void publish(SbgEComClass sbg_msg_class, SbgEComMsgId sbg_msg_id, const SbgBinaryLogData &ref_sbg_log)
void publishEkfNavigationData(const SbgBinaryLogData &ref_sbg_log)
SbgLogOdometerData odometerData
const sbg_driver::SbgGpsPos createSbgGpsPosMessage(const SbgLogGpsPos &ref_log_gps_pos) const
ros::Publisher m_odometry_pub_
ros::Publisher m_sbgUtcTime_pub_
void publishMagData(const SbgBinaryLogData &ref_sbg_log)
void setFrameId(const std::string &frame_id)
void setTimeReference(TimeReference time_reference)
ros::Publisher m_sbgEventD_pub_
const sbg_driver::SbgUtcTime createSbgUtcTimeMessage(const SbgLogUtcData &ref_log_utc)
const sensor_msgs::FluidPressure createRosFluidPressureMessage(const sbg_driver::SbgAirData &ref_sbg_air_msg) const
void initPublisher(ros::NodeHandle &ref_ros_node_handle, SbgEComMsgId sbg_msg_id, SbgEComOutputMode output_conf, const std::string &ref_output_topic)
void publish(const boost::shared_ptr< M > &message) const
ros::Publisher m_sbgGpsPos_pub_
const sbg_driver::SbgShipMotion createSbgShipMotionMessage(const SbgLogShipMotionData &ref_log_ship_motion) const
ros::Publisher m_sbgEkfNav_pub_
ros::Publisher m_sbgEventB_pub_
void publishUtcData(const SbgBinaryLogData &ref_sbg_log)
sbg_driver::SbgEkfQuat m_sbg_ekf_quat_message_
const sbg_driver::SbgMagCalib createSbgMagCalibMessage(const SbgLogMagCalib &ref_log_mag_calib) const
const sbg_driver::SbgEvent createSbgEventMessage(const SbgLogEvent &ref_log_event) const
ros::Publisher m_temp_pub_
ros::Publisher m_mag_pub_
ros::Publisher m_utc_reference_pub_
ros::Publisher m_sbgGpsRaw_pub_
const sensor_msgs::Imu createRosImuMessage(const sbg_driver::SbgImuData &ref_sbg_imu_msg, const sbg_driver::SbgEkfQuat &ref_sbg_quat_msg) const
const sbg_driver::SbgStatus createSbgStatusMessage(const SbgLogStatusData &ref_log_status) const
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
void publishGpsPosData(const SbgBinaryLogData &ref_sbg_log)
void setOdomBaseFrameId(const std::string &ref_frame_id)
ros::Publisher m_sbgEventC_pub_
ros::Publisher m_sbgMagCalib_pub_
const geometry_msgs::PointStamped createRosPointStampedMessage(const sbg_driver::SbgEkfNav &ref_sbg_ekf_msg) const
ros::Publisher m_sbgEventA_pub_
const std::vector< SbgLogOutput > & getOutputModes(void) const
SbgLogMagCalib magCalibData
bool getUseEnu(void) const
ros::Publisher m_sbgGpsHdt_pub_
const sbg_driver::SbgImuData createSbgImuDataMessage(const SbgLogImuData &ref_log_imu_data) const
ros::Publisher m_sbgEventE_pub_
void processRosOdoMessage(void)
ros::Publisher m_sbgAirData_pub_
const sbg_driver::SbgEkfEuler createSbgEkfEulerMessage(const SbgLogEkfEulerData &ref_log_ekf_euler) const
ros::Publisher m_sbgShipMotion_pub_
void setOdomFrameId(const std::string &ref_frame_id)
void publishFluidPressureData(const SbgBinaryLogData &ref_sbg_log)
void initPublishers(ros::NodeHandle &ref_ros_node_handle, const ConfigStore &ref_config_store)
const sbg_driver::SbgGpsVel createSbgGpsVelMessage(const SbgLogGpsVel &ref_log_gps_vel) const
const sensor_msgs::Temperature createRosTemperatureMessage(const sbg_driver::SbgImuData &ref_sbg_imu_msg) const
ros::Publisher m_sbgStatus_pub_
enum _SbgEComClass SbgEComClass
const sbg_driver::SbgMag createSbgMagMessage(const SbgLogMag &ref_log_mag) const
ros::Publisher m_fluid_pub_
const sensor_msgs::MagneticField createRosMagneticMessage(const sbg_driver::SbgMag &ref_sbg_mag_msg) const
ros::Publisher m_nav_sat_fix_pub_
sbg_driver::SbgEkfEuler m_sbg_ekf_euler_message_
SbgLogShipMotionData shipMotionData
void setOdomInitFrameId(const std::string &ref_frame_id)
enum _SbgEComOutputMode SbgEComOutputMode
sbg_driver::SbgImuData m_sbg_imu_message_
ros::Publisher m_sbgOdoVel_pub_
const sbg_driver::SbgOdoVel createSbgOdoVelMessage(const SbgLogOdometerData &ref_log_odo) const
SbgLogStatusData statusData
sbg_driver::SbgEkfNav m_sbg_ekf_nav_message_
const sbg_driver::SbgGpsHdt createSbgGpsHdtMessage(const SbgLogGpsHdt &ref_log_gps_hdt) const
const sbg_driver::SbgGpsRaw createSbgGpsRawMessage(const SbgLogGpsRaw &ref_log_gps_raw) const
ros::Publisher m_sbgEkfEuler_pub_
ros::Publisher m_velocity_pub_
ros::Publisher m_sbgMag_pub_