13 #include <geometry_msgs/Twist.h> 14 #include <geometry_msgs/Vector3Stamped.h> 15 #include <nav_msgs/Odometry.h> 19 #include <sensor_msgs/Imu.h> 20 #include <std_msgs/Bool.h> 39 void onInit()
override;
41 void onImuMsg(
const sensor_msgs::ImuConstPtr&
msg);
42 void onOdomMsg(
const nav_msgs::OdometryConstPtr& msg);
43 void estimateBias(
const sensor_msgs::Imu& msg);
46 void reportBiasChange();
54 std::unique_ptr<cras::DiagnosedPublisher<sensor_msgs::Imu>>
imuPub;
73 size_t minCalibrationSamples {1000};
74 double gyroBiasEstimationRate {0.01};
75 bool skipCalibration {
false};
76 bool shouldProduceDiagnostics {
true};
78 double gyroThreshold {0};
79 double cmdVelThreshold {0};
85 size_t numCalibrationSamples {0};
87 bool hasOdomMsg {
false};
ros::Duration notMovingDuration
ros::Duration initialCalibrationDuration
geometry_msgs::Twist stopCommand
ros::Publisher stopLockPub
std_msgs::Bool stopUnlockMsg
std::unique_ptr< cras::DiagnosedPublisher< sensor_msgs::Imu > > imuPub
ros::Publisher speakInfoPub
ros::Publisher speakWarnPub
ros::Publisher speakErrPub
ros::Duration notMovingDurationThreshold
geometry_msgs::Vector3Stamped gyroBias
ros::Publisher stopCommandPub
ros::Time lastReceiveTime
std_msgs::Bool stopLockMsg
ros::Time lastNotMovingTime
ros::Time calibrationStartedTime
ros::Subscriber isMovingSub