Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ImuFilterRos Class Reference

#include <imu_filter_ros.h>

Public Member Functions

 ImuFilterRos (ros::NodeHandle nh, ros::NodeHandle nh_private)
 
void reset ()
 Reset the filter to the initial state. More...
 
virtual ~ImuFilterRos ()
 

Private Types

typedef imu_filter_madgwick::ImuFilterMadgwickConfig FilterConfig
 
typedef dynamic_reconfigure::Server< FilterConfigFilterConfigServer
 
typedef sensor_msgs::Imu ImuMsg
 
typedef message_filters::Subscriber< ImuMsgImuSubscriber
 
typedef sensor_msgs::MagneticField MagMsg
 
typedef message_filters::Subscriber< MagMsgMagSubscriber
 
typedef message_filters::Synchronizer< SyncPolicySynchronizer
 
typedef message_filters::sync_policies::ApproximateTime< ImuMsg, MagMsgSyncPolicy
 

Private Member Functions

void applyYawOffset (double &q0, double &q1, double &q2, double &q3)
 Applies yaw offset quaternion (yaw offset - declination) to the orientation quaternion. Alters the quaternion if there is a yaw offset. More...
 
void checkTimeJump ()
 Check whether ROS time has jumped back. If so, reset the filter. More...
 
void checkTopicsTimerCallback (const ros::TimerEvent &)
 
void imuCallback (const ImuMsg::ConstPtr &imu_msg_raw)
 
void imuMagCallback (const ImuMsg::ConstPtr &imu_msg_raw, const MagMsg::ConstPtr &mav_msg)
 
void publishFilteredMsg (const ImuMsg::ConstPtr &imu_msg_raw)
 
void publishRawMsg (const ros::Time &t, float roll, float pitch, float yaw)
 
void publishTransform (const ImuMsg::ConstPtr &imu_msg_raw)
 
void reconfigCallback (FilterConfig &config, uint32_t level)
 

Private Attributes

ros::Timer check_topics_timer_
 
boost::shared_ptr< FilterConfigServerconfig_server_
 
double constant_dt_
 
ImuFilter filter_
 
std::string fixed_frame_
 
std::string imu_frame_
 
ros::Publisher imu_publisher_
 
boost::shared_ptr< ImuSubscriberimu_subscriber_
 
bool initialized_
 
ros::Time last_ros_time_
 
ros::Time last_time_
 
geometry_msgs::Vector3 mag_bias_
 
boost::shared_ptr< MagSubscribermag_subscriber_
 
boost::mutex mutex_
 
ros::NodeHandle nh_
 
ros::NodeHandle nh_private_
 
double orientation_variance_
 
bool publish_debug_topics_
 
bool publish_tf_
 
bool remove_gravity_vector_
 
bool reverse_tf_
 
ros::Publisher rpy_filtered_debug_publisher_
 
ros::Publisher rpy_raw_debug_publisher_
 
bool stateless_
 
boost::shared_ptr< Synchronizersync_
 
tf2_ros::TransformBroadcaster tf_broadcaster_
 
ros::Duration time_jump_threshold_
 
bool use_mag_
 
WorldFrame::WorldFrame world_frame_
 
double yaw_offset_total_
 
tf2::Quaternion yaw_offsets_
 

Detailed Description

Definition at line 42 of file imu_filter_ros.h.

Member Typedef Documentation

◆ FilterConfig

typedef imu_filter_madgwick::ImuFilterMadgwickConfig ImuFilterRos::FilterConfig
private

Definition at line 53 of file imu_filter_ros.h.

◆ FilterConfigServer

typedef dynamic_reconfigure::Server<FilterConfig> ImuFilterRos::FilterConfigServer
private

Definition at line 54 of file imu_filter_ros.h.

◆ ImuMsg

typedef sensor_msgs::Imu ImuFilterRos::ImuMsg
private

Definition at line 44 of file imu_filter_ros.h.

◆ ImuSubscriber

Definition at line 50 of file imu_filter_ros.h.

◆ MagMsg

typedef sensor_msgs::MagneticField ImuFilterRos::MagMsg
private

Definition at line 45 of file imu_filter_ros.h.

◆ MagSubscriber

Definition at line 51 of file imu_filter_ros.h.

◆ Synchronizer

Definition at line 49 of file imu_filter_ros.h.

◆ SyncPolicy

Definition at line 48 of file imu_filter_ros.h.

Constructor & Destructor Documentation

◆ ImuFilterRos()

ImuFilterRos::ImuFilterRos ( ros::NodeHandle  nh,
ros::NodeHandle  nh_private 
)

Definition at line 31 of file imu_filter_ros.cpp.

◆ ~ImuFilterRos()

ImuFilterRos::~ImuFilterRos ( )
virtual

Definition at line 152 of file imu_filter_ros.cpp.

Member Function Documentation

◆ applyYawOffset()

void ImuFilterRos::applyYawOffset ( double &  q0,
double &  q1,
double &  q2,
double &  q3 
)
private

Applies yaw offset quaternion (yaw offset - declination) to the orientation quaternion. Alters the quaternion if there is a yaw offset.

Parameters
q0quaternion x component
q1quaternion y component
q2quaternion z component
q3quaternion w component

Definition at line 350 of file imu_filter_ros.cpp.

◆ checkTimeJump()

void ImuFilterRos::checkTimeJump ( )
private

Check whether ROS time has jumped back. If so, reset the filter.

Definition at line 466 of file imu_filter_ros.cpp.

◆ checkTopicsTimerCallback()

void ImuFilterRos::checkTopicsTimerCallback ( const ros::TimerEvent )
private

Definition at line 444 of file imu_filter_ros.cpp.

◆ imuCallback()

void ImuFilterRos::imuCallback ( const ImuMsg::ConstPtr &  imu_msg_raw)
private

Definition at line 160 of file imu_filter_ros.cpp.

◆ imuMagCallback()

void ImuFilterRos::imuMagCallback ( const ImuMsg::ConstPtr &  imu_msg_raw,
const MagMsg::ConstPtr &  mav_msg 
)
private

Definition at line 221 of file imu_filter_ros.cpp.

◆ publishFilteredMsg()

void ImuFilterRos::publishFilteredMsg ( const ImuMsg::ConstPtr &  imu_msg_raw)
private

Definition at line 365 of file imu_filter_ros.cpp.

◆ publishRawMsg()

void ImuFilterRos::publishRawMsg ( const ros::Time t,
float  roll,
float  pitch,
float  yaw 
)
private

Definition at line 413 of file imu_filter_ros.cpp.

◆ publishTransform()

void ImuFilterRos::publishTransform ( const ImuMsg::ConstPtr &  imu_msg_raw)
private

Definition at line 316 of file imu_filter_ros.cpp.

◆ reconfigCallback()

void ImuFilterRos::reconfigCallback ( FilterConfig config,
uint32_t  level 
)
private

Definition at line 425 of file imu_filter_ros.cpp.

◆ reset()

void ImuFilterRos::reset ( )

Reset the filter to the initial state.

Definition at line 457 of file imu_filter_ros.cpp.

Member Data Documentation

◆ check_topics_timer_

ros::Timer ImuFilterRos::check_topics_timer_
private

Definition at line 81 of file imu_filter_ros.h.

◆ config_server_

boost::shared_ptr<FilterConfigServer> ImuFilterRos::config_server_
private

Definition at line 80 of file imu_filter_ros.h.

◆ constant_dt_

double ImuFilterRos::constant_dt_
private

Definition at line 91 of file imu_filter_ros.h.

◆ filter_

ImuFilter ImuFilterRos::filter_
private

Definition at line 105 of file imu_filter_ros.h.

◆ fixed_frame_

std::string ImuFilterRos::fixed_frame_
private

Definition at line 89 of file imu_filter_ros.h.

◆ imu_frame_

std::string ImuFilterRos::imu_frame_
private

Definition at line 90 of file imu_filter_ros.h.

◆ imu_publisher_

ros::Publisher ImuFilterRos::imu_publisher_
private

Definition at line 77 of file imu_filter_ros.h.

◆ imu_subscriber_

boost::shared_ptr<ImuSubscriber> ImuFilterRos::imu_subscriber_
private

Definition at line 70 of file imu_filter_ros.h.

◆ initialized_

bool ImuFilterRos::initialized_
private

Definition at line 100 of file imu_filter_ros.h.

◆ last_ros_time_

ros::Time ImuFilterRos::last_ros_time_
private

Definition at line 102 of file imu_filter_ros.h.

◆ last_time_

ros::Time ImuFilterRos::last_time_
private

Definition at line 101 of file imu_filter_ros.h.

◆ mag_bias_

geometry_msgs::Vector3 ImuFilterRos::mag_bias_
private

Definition at line 94 of file imu_filter_ros.h.

◆ mag_subscriber_

boost::shared_ptr<MagSubscriber> ImuFilterRos::mag_subscriber_
private

Definition at line 71 of file imu_filter_ros.h.

◆ mutex_

boost::mutex ImuFilterRos::mutex_
private

Definition at line 99 of file imu_filter_ros.h.

◆ nh_

ros::NodeHandle ImuFilterRos::nh_
private

Definition at line 66 of file imu_filter_ros.h.

◆ nh_private_

ros::NodeHandle ImuFilterRos::nh_private_
private

Definition at line 67 of file imu_filter_ros.h.

◆ orientation_variance_

double ImuFilterRos::orientation_variance_
private

Definition at line 95 of file imu_filter_ros.h.

◆ publish_debug_topics_

bool ImuFilterRos::publish_debug_topics_
private

Definition at line 92 of file imu_filter_ros.h.

◆ publish_tf_

bool ImuFilterRos::publish_tf_
private

Definition at line 87 of file imu_filter_ros.h.

◆ remove_gravity_vector_

bool ImuFilterRos::remove_gravity_vector_
private

Definition at line 93 of file imu_filter_ros.h.

◆ reverse_tf_

bool ImuFilterRos::reverse_tf_
private

Definition at line 88 of file imu_filter_ros.h.

◆ rpy_filtered_debug_publisher_

ros::Publisher ImuFilterRos::rpy_filtered_debug_publisher_
private

Definition at line 75 of file imu_filter_ros.h.

◆ rpy_raw_debug_publisher_

ros::Publisher ImuFilterRos::rpy_raw_debug_publisher_
private

Definition at line 76 of file imu_filter_ros.h.

◆ stateless_

bool ImuFilterRos::stateless_
private

Definition at line 86 of file imu_filter_ros.h.

◆ sync_

boost::shared_ptr<Synchronizer> ImuFilterRos::sync_
private

Definition at line 72 of file imu_filter_ros.h.

◆ tf_broadcaster_

tf2_ros::TransformBroadcaster ImuFilterRos::tf_broadcaster_
private

Definition at line 78 of file imu_filter_ros.h.

◆ time_jump_threshold_

ros::Duration ImuFilterRos::time_jump_threshold_
private

Definition at line 96 of file imu_filter_ros.h.

◆ use_mag_

bool ImuFilterRos::use_mag_
private

Definition at line 85 of file imu_filter_ros.h.

◆ world_frame_

WorldFrame::WorldFrame ImuFilterRos::world_frame_
private

Definition at line 84 of file imu_filter_ros.h.

◆ yaw_offset_total_

double ImuFilterRos::yaw_offset_total_
private

Definition at line 68 of file imu_filter_ros.h.

◆ yaw_offsets_

tf2::Quaternion ImuFilterRos::yaw_offsets_
private

Definition at line 73 of file imu_filter_ros.h.


The documentation for this class was generated from the following files:


imu_filter_madgwick
Author(s): Ivan Dryanovski
autogenerated on Sun Aug 21 2022 02:18:03