Go to the documentation of this file.
13 ConfigStore::ConfigStore():
14 serial_communication_(false),
15 upd_communication_(false),
16 configure_through_ros_(false),
17 ros_standard_output_(false),
18 rtcm_subscribe_(false),
30 rate_frequency_ = getParameter<uint32_t>(ref_node_handle,
"driver/frequency", 400);
46 if (ref_node_handle.
hasParam(
"uartConf"))
51 uart_baud_rate_ = getParameter<uint32_t>(ref_node_handle,
"uartConf/baudRate", 0);
54 else if (ref_node_handle.
hasParam(
"ipConf"))
56 std::string ip_address;
57 ref_node_handle.
param<std::string>(
"ipConf/ipAddress", ip_address,
"0.0.0.0");
61 out_port_address_ = getParameter<uint32_t>(ref_node_handle,
"ipConf/out_port", 0);
62 in_port_address_ = getParameter<uint32_t>(ref_node_handle,
"ipConf/in_port", 0);
66 throw ros::Exception(
"SBG DRIVER - Invalid communication interface parameters.");
92 float sensor_level_arm[3];
93 ref_node_handle.
param<
float>(
"imuAlignementLeverArm/leverArmX", sensor_level_arm[0], 0.0f);
94 ref_node_handle.
param<
float>(
"imuAlignementLeverArm/leverArmY", sensor_level_arm[1], 0.0f);
95 ref_node_handle.
param<
float>(
"imuAlignementLeverArm/leverArmZ", sensor_level_arm[2], 0.0f);
140 float array_odometer_level_arm[3];
141 ref_node_handle.
param<
float>(
"odom/leverArmX", array_odometer_level_arm[0], 0.0f);
142 ref_node_handle.
param<
float>(
"odom/leverArmY", array_odometer_level_arm[1], 0.0f);
143 ref_node_handle.
param<
float>(
"odom/leverArmZ", array_odometer_level_arm[2], 0.0f);
164 ref_node_handle.
param<
bool>(
"output/use_enu",
use_enu_,
false);
168 ref_node_handle.
param<std::string>(
"output/frame_id",
frame_id_,
"imu_link");
172 ref_node_handle.
param<std::string>(
"output/frame_id",
frame_id_,
"imu_link_ned");
178 std::string time_reference;
180 ref_node_handle.
param<std::string>(ref_key, time_reference,
"ros");
182 if (time_reference ==
"ros")
186 else if (time_reference ==
"ins_unix")
192 throw std::invalid_argument(
"unknown time reference: " + time_reference);
198 std::string topic_name;
199 std::string rtcm_namespace;
202 ref_node_handle.
param<std::string>(
"rtcm/topic_name", topic_name,
"rtcm");
203 ref_node_handle.
param<std::string>(
"rtcm/namespace", rtcm_namespace,
"ntrip_client");
210 std::string topic_name;
211 std::string nmea_namespace;
214 ref_node_handle.
param<std::string>(
"nmea/topic_name", topic_name,
"nmea");
215 ref_node_handle.
param<std::string>(
"nmea/namespace", nmea_namespace,
"ntrip_client");
@ SBG_ECOM_MAG_CALIB_HIGH_BW
@ SBG_ECOM_MOTION_PROFILE_GENERAL_PURPOSE
SbgEComRejectionMode velocity
const SbgEComGnssInstallation & getGnssInstallation() const
@ SBG_ECOM_OUTPUT_MODE_DISABLED
const std::string & getOdomFrameId() const
std::string nmea_full_topic_
SbgEComGnssInstallationMode leverArmSecondaryMode
sbgIpAddress getIpAddress() const
SbgEComInitConditionConf init_condition_conf_
SbgEComModelInfo gnss_model_info_
SbgVector3< float > sensor_lever_arm_
uint32_t out_port_address_
SbgEComAxisDirection axisDirectionX
void loadNmeaParameters(const ros::NodeHandle &ref_node_handle)
SbgEComAxisDirection axisDirectionY
TimeReference time_reference_
@ SBG_ECOM_MODULE_SYNC_DISABLED
const SbgEComGnssRejectionConf & getGnssRejection() const
bool configure_through_ros_
const SbgVector3< float > & getSensorLevelArms() const
SbgEComSensorAlignmentInfo sensor_alignement_info_
@ SBG_ECOM_AUTOMATIC_MODE
SbgEComOutputMode output_mode
void loadGnssParameters(const ros::NodeHandle &ref_node_handle)
void loadOutputFrameParameters(const ros::NodeHandle &ref_node_handle)
const std::string & getNmeaFullTopic() const
@ SBG_ECOM_GNSS_INSTALLATION_MODE_SINGLE
std::string odom_frame_id_
void loadAidingAssignementParameters(const ros::NodeHandle &ref_node_handle)
uint32_t getReadingRateFrequency() const
SbgEComOutputPort output_port_
SbgEComRejectionMode magneticField
const SbgEComModelInfo & getMotionProfile() const
const SbgEComModelInfo & getGnssModel() const
SbgEComOutputPort getOutputPort() const
const SbgEComMagRejectionConf & getMagnetometerRejection() const
sbgIpAddress sbg_ip_address_
uint32_t in_port_address_
@ SBG_ECOM_ALIGNMENT_FORWARD
@ SBG_ECOM_MAG_MODEL_NORMAL
bool getOdomPublishTf() const
void loadDriverParameters(const ros::NodeHandle &ref_node_handle)
void loadCommunicationParameters(const ros::NodeHandle &ref_node_handle)
@ SBG_ECOM_LOG_SHIP_MOTION
SbgEComModulePortAssignment rtcmPort
const SbgEComOdoConf & getOdometerConf() const
SbgEComModelInfo motion_profile_model_info_
SbgVector3< float > odometer_level_arm_
SbgEComRejectionMode velocity
void loadOdometerParameters(const ros::NodeHandle &ref_node_handle)
void loadOutputTimeReference(const ros::NodeHandle &ref_node_handle, const std::string &ref_key)
const std::string & getRtcmFullTopic() const
const std::string & getFrameId() const
SbgEComModelInfo mag_model_info_
SbgEComGnssRejectionConf gnss_rejection_conf_
SbgEComModulePortAssignment gps1Port
SbgEComOdoRejectionConf odometer_rejection_conf_
float leverArmSecondary[3]
@ SBG_ECOM_GNSS_MODEL_NMEA
SbgEComMagCalibMode mag_calib_mode_
bool checkConfigWithRos() const
enum _SbgEComClass SbgEComClass
uint32_t getOutputPortAddress() const
std::string rtcm_full_topic_
@ SBG_ECOM_CLASS_LOG_ECOM_0
const SbgEComOdoRejectionConf & getOdometerRejection() const
bool isInterfaceSerial() const
enum _SbgEComOutputPort SbgEComOutputPort
This file implements SbgECom commands related to outputs.
TimeReference getTimeReference() const
@ SBG_ECOM_MAG_CALIB_MODE_2D
bool hasParam(const std::string &key) const
void loadOdomParameters(const ros::NodeHandle &ref_node_handle)
const SbgEComAidingAssignConf & getAidingAssignement() const
SBG_COMMON_LIB_API sbgIpAddress sbgNetworkIpFromString(const char *pBuffer)
const SbgEComSensorAlignmentInfo & getSensorAlignement() const
SbgEComOdometerPinAssignment odometerPinsConf
std::string uart_port_name_
uint32_t getInputPortAddress() const
void loadRtcmParameters(const ros::NodeHandle &ref_node_handle)
bool leverArmPrimaryPrecise
bool checkRosStandardMessages() const
SbgEComOdoConf odometer_conf_
const std::vector< SbgLogOutput > & getOutputModes() const
enum _SbgEComMagCalibMode SbgEComMagCalibMode
This file implements SbgECom commands related to Magnetometer module.
bool isInterfaceUdp() const
const SbgEComInitConditionConf & getInitialConditions() const
void loadOutputConfiguration(const ros::NodeHandle &ref_node_handle, const std::string &ref_key, SbgEComClass sbg_msg_class, SbgEComMsgId sbg_msg_id)
bool ros_standard_output_
bool serial_communication_
void loadSensorParameters(const ros::NodeHandle &ref_node_handle)
std::string odom_base_frame_id_
bool shouldSubscribeToRtcm() const
const SbgEComMagCalibBandwidth & getMagnetometerCalibBandwidth() const
SbgEComModuleSyncAssignment gps1Sync
T param(const std::string ¶m_name, const T &default_val) const
void loadFromRosNodeHandle(const ros::NodeHandle &ref_node_handle)
@ SBG_ECOM_MODULE_ODO_DISABLED
SbgEComMagCalibBandwidth mag_calib_bandwidth_
void loadMagnetometersParameters(const ros::NodeHandle &ref_node_handle)
const std::string & getUartPortName() const
bool getOdomEnable() const
void loadImuAlignementParameters(const ros::NodeHandle &ref_node_handle)
std::vector< SbgLogOutput > output_modes_
SbgEComRejectionMode position
const SbgVector3< float > & getOdometerLevelArms() const
const SbgEComMagCalibMode & getMagnetometerCalibMode() const
const SbgEComModelInfo & getMagnetometerModel() const
SbgEComAidingAssignConf aiding_assignement_conf_
std::string odom_init_frame_id_
uint32_t getBaudRate() const
const std::string & getOdomInitFrameId() const
bool shouldPublishNmea() const
enum _SbgEComMagCalibBandwidth SbgEComMagCalibBandwidth
SbgEComMagRejectionConf mag_rejection_conf_
Class to handle the device configuration.
SbgEComGnssInstallation gnss_installation_
@ SBG_ECOM_MODULE_DISABLED
SbgEComClass message_class
const std::string & getOdomBaseFrameId() const
sbg_driver
Author(s): SBG Systems
autogenerated on Fri Oct 11 2024 02:13:40