From df2bf5aa00ca3634f1b51e128db5b934554eede5 Mon Sep 17 00:00:00 2001 From: Joan Sola <jsola@iri.upc.edu> Date: Wed, 21 Mar 2018 12:30:15 +0100 Subject: [PATCH] Remove Intrinsics constructors. Add virtual destructors. --- src/sensor_GPS.h | 1 + src/sensor_GPS_fix.h | 1 + src/sensor_IMU.h | 23 ++++++++--------------- src/sensor_base.h | 7 +++---- src/sensor_camera.h | 2 ++ src/sensor_laser_2D.h | 2 ++ src/sensor_odom_2D.h | 4 +++- src/sensor_odom_3D.h | 9 ++------- src/sensors/sensor_diff_drive.h | 26 ++------------------------ 9 files changed, 24 insertions(+), 51 deletions(-) diff --git a/src/sensor_GPS.h b/src/sensor_GPS.h index b36d09ae0..c43cd13cb 100644 --- a/src/sensor_GPS.h +++ b/src/sensor_GPS.h @@ -20,6 +20,7 @@ namespace wolf { struct IntrinsicsGPS : public IntrinsicsBase { // add GPS parameters here + virtual ~IntrinsicsGPS() = default; }; WOLF_PTR_TYPEDEFS(SensorGPS); diff --git a/src/sensor_GPS_fix.h b/src/sensor_GPS_fix.h index 9cb5583a0..b2423e71a 100644 --- a/src/sensor_GPS_fix.h +++ b/src/sensor_GPS_fix.h @@ -15,6 +15,7 @@ namespace wolf { struct IntrinsicsGPSFix : public IntrinsicsBase { // Empty -- it acts only as a typedef for IntrinsicsBase, but allows future extension with parameters + virtual ~IntrinsicsGPSFix() = default; }; WOLF_PTR_TYPEDEFS(SensorGPSFix); diff --git a/src/sensor_IMU.h b/src/sensor_IMU.h index 823c18507..a9509188f 100644 --- a/src/sensor_IMU.h +++ b/src/sensor_IMU.h @@ -15,25 +15,18 @@ WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsIMU); struct IntrinsicsIMU : public IntrinsicsBase { //noise std dev - wolf::Scalar w_noise; //standard deviation of Gyroscope noise (same for all the axis) in rad/sec/ sqrt(s) - wolf::Scalar a_noise; //standard deviation of Acceleration noise (same for all the axis) in m/s2/sqrt(s) + wolf::Scalar w_noise = 0.001; //standard deviation of Gyroscope noise (same for all the axis) in rad/sec/ sqrt(s) + wolf::Scalar a_noise = 0.04; //standard deviation of Acceleration noise (same for all the axis) in m/s2/sqrt(s) //Initial biases std dev - wolf::Scalar ab_initial_stdev; //accelerometer micro_g/sec - wolf::Scalar wb_initial_stdev; //gyroscope rad/sec + wolf::Scalar ab_initial_stdev = 0.01; //accelerometer micro_g/sec + wolf::Scalar wb_initial_stdev = 0.01; //gyroscope rad/sec // bias rate of change std dev - Scalar ab_rate_stdev; - Scalar wb_rate_stdev; - - IntrinsicsIMU() : - w_noise(0.001), - a_noise(0.04), - ab_initial_stdev(0.00001), - wb_initial_stdev(0.00001), - ab_rate_stdev(0.00001), - wb_rate_stdev(0.00001) - {} + Scalar ab_rate_stdev = 0.00001; + Scalar wb_rate_stdev = 0.00001; + + virtual ~IntrinsicsIMU() = default; }; WOLF_PTR_TYPEDEFS(SensorIMU); diff --git a/src/sensor_base.h b/src/sensor_base.h index 3a2de9957..a1befcf79 100644 --- a/src/sensor_base.h +++ b/src/sensor_base.h @@ -24,11 +24,10 @@ namespace wolf { */ struct IntrinsicsBase { - IntrinsicsBase() = default; - virtual ~IntrinsicsBase() = default; + virtual ~IntrinsicsBase() = default; - std::string type; - std::string name; + std::string type; + std::string name; }; class SensorBase : public NodeBase, public std::enable_shared_from_this<SensorBase> diff --git a/src/sensor_camera.h b/src/sensor_camera.h index 7c61c98e2..4b3d565da 100644 --- a/src/sensor_camera.h +++ b/src/sensor_camera.h @@ -15,6 +15,8 @@ struct IntrinsicsCamera : public IntrinsicsBase unsigned int height; ///< Image height in pixels Eigen::Vector4s pinhole_model; ///< k = [u_0, v_0, alpha_u, alpha_v] vector of pinhole intrinsic parameters Eigen::VectorXs distortion; ///< d = [d_1, d_2, d_3, ...] radial distortion coefficients + + virtual ~IntrinsicsCamera() = default; }; WOLF_PTR_TYPEDEFS(SensorCamera); diff --git a/src/sensor_laser_2D.h b/src/sensor_laser_2D.h index b1e3e9b2a..8c2aa8576 100644 --- a/src/sensor_laser_2D.h +++ b/src/sensor_laser_2D.h @@ -17,6 +17,8 @@ WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsLaser2D); struct IntrinsicsLaser2D : public IntrinsicsBase { + virtual ~IntrinsicsLaser2D() = default; + laserscanutils::LaserScanParams scan_params; }; diff --git a/src/sensor_odom_2D.h b/src/sensor_odom_2D.h index ad3b02ae5..b906bce9b 100644 --- a/src/sensor_odom_2D.h +++ b/src/sensor_odom_2D.h @@ -7,10 +7,12 @@ namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsOdom2D) +WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsOdom2D); struct IntrinsicsOdom2D : public IntrinsicsBase { + virtual ~IntrinsicsOdom2D() = default; + Scalar k_disp_to_disp; ///< ratio of displacement variance to displacement, for odometry noise calculation Scalar k_rot_to_rot; ///< ratio of rotation variance to rotation, for odometry noise calculation }; diff --git a/src/sensor_odom_3D.h b/src/sensor_odom_3D.h index c676edc95..9ffef8d23 100644 --- a/src/sensor_odom_3D.h +++ b/src/sensor_odom_3D.h @@ -23,13 +23,8 @@ struct IntrinsicsOdom3D : public IntrinsicsBase Scalar min_disp_var; Scalar min_rot_var; - IntrinsicsOdom3D() : - k_disp_to_disp(0), - k_disp_to_rot(0), - k_rot_to_rot(0), - min_disp_var(0), - min_rot_var(0) - {} + virtual ~IntrinsicsOdom3D() = default; + }; WOLF_PTR_TYPEDEFS(SensorOdom3D); diff --git a/src/sensors/sensor_diff_drive.h b/src/sensors/sensor_diff_drive.h index 334fea389..f4556a84a 100644 --- a/src/sensors/sensor_diff_drive.h +++ b/src/sensors/sensor_diff_drive.h @@ -16,30 +16,6 @@ namespace wolf { struct IntrinsicsDiffDrive : public IntrinsicsBase { - IntrinsicsDiffDrive() = default; - - IntrinsicsDiffDrive(const Scalar _left_radius, - const Scalar _right_radius, - const Scalar _separation, - const DiffDriveModel _model, - const Eigen::VectorXs& _factors, - const Scalar _left_resolution, - const Scalar _right_resolution, - const Scalar _left_gain, - const Scalar _right_gain) : - left_radius_(_left_radius), - right_radius_(_right_radius), - separation_(_separation), - model_(_model), - factors_(_factors), - left_resolution_(_left_resolution), - right_resolution_(_right_resolution), - left_gain_(_left_gain), - right_gain_(_right_gain) - { - // - } - Scalar left_radius_; Scalar right_radius_; Scalar separation_; @@ -53,6 +29,8 @@ struct IntrinsicsDiffDrive : public IntrinsicsBase Scalar left_gain_ = 0.01; Scalar right_gain_ = 0.01; + + virtual ~IntrinsicsDiffDrive() = default; }; typedef std::shared_ptr<IntrinsicsDiffDrive> IntrinsicsDiffDrivePtr; -- GitLab