-
Notifications
You must be signed in to change notification settings - Fork 961
Removal of dead code and better debug output #756
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: galactic-devel
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -473,6 +473,25 @@ class RosFilter : public rclcpp::Node | |
| std::vector<bool> & updateVector, Eigen::VectorXd & measurement, | ||
| Eigen::MatrixXd & measurementCovariance); | ||
|
|
||
| //! @brief Validates incoming measurement ordering and produces errors if | ||
| //! validation does not pass. | ||
| //! @param[in] topicName - The name of the topic over which this message was | ||
| //! received | ||
| //! @param[in] stamp - The timestamp associated with this message. | ||
| //! @return true if the measrement is newer than all known measurements. | ||
| //! | ||
| bool validateMeasurementOrdering(const std::string& topicName, | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure how some of these other methods retained |
||
| const builtin_interfaces::msg::Time& stamp); | ||
|
|
||
| //! @brief Validates incoming measurements are within a reasonable timeframe. | ||
| //! @param[in] topicName - The name of the topic over which this message was | ||
| //! received | ||
| //! @param[in] stamp - The timestamp associated with this message. | ||
| //! @return true if the measrement is newer than all known measurements. | ||
| //! | ||
| bool validateMeasurementTime(const std::string& topicName, | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As above. |
||
| const builtin_interfaces::msg::Time& stamp); | ||
|
|
||
| //! @brief Whether or not we print diagnostic messages to the /diagnostics | ||
| //! topic | ||
| //! | ||
|
|
@@ -545,14 +564,17 @@ class RosFilter : public rclcpp::Node | |
| //! | ||
| double gravitational_acceleration_; | ||
|
|
||
| //! @brief The depth of the history we track for smoothing/delayed measurement | ||
| //! processing | ||
| //! @brief The depth of the history we track for smoothing/delayed | ||
| //! measurement processing | ||
| //! | ||
| //! This is the guaranteed minimum buffer size for which previous states and | ||
| //! measurements are kept. | ||
| //! | ||
| rclcpp::Duration history_length_; | ||
|
|
||
| //! @brief This is the maximum measurement queque length. | ||
| uint64_t max_future_queue_size_; | ||
|
|
||
| //! @brief tf frame name for the robot's body frame | ||
| //! | ||
| std::string base_link_frame_id_; | ||
|
|
@@ -622,8 +644,8 @@ class RosFilter : public rclcpp::Node | |
| //! @brief This object accumulates static diagnostics, e.g., diagnostics | ||
| //! relating to the configuration parameters. | ||
| //! | ||
| //! The values are treated as static and always reported (i.e., this object is | ||
| //! never cleared) | ||
| //! The values are treated as static and always reported (i.e., this object | ||
| //! is never cleared) | ||
| //! | ||
| std::map<std::string, std::string> static_diagnostics_; | ||
|
|
||
|
|
@@ -646,8 +668,8 @@ class RosFilter : public rclcpp::Node | |
| //! stores the initial measurements. Note that this is different from using | ||
| //! differential mode, as in differential mode, pose data is converted to | ||
| //! twist data, resulting in boundless error growth for the variables being | ||
| //! fused. With relative measurements, the vehicle will start with a 0 heading | ||
| //! and position, but the measurements are still fused absolutely. | ||
| //! fused. With relative measurements, the vehicle will start with a 0 | ||
| //! heading and position, but the measurements are still fused absolutely. | ||
| std::map<std::string, tf2::Transform> initial_measurements_; | ||
|
|
||
| //! @brief If including acceleration for each IMU input, whether or not we | ||
|
|
@@ -688,9 +710,9 @@ class RosFilter : public rclcpp::Node | |
| //! | ||
| std::map<std::string, Eigen::MatrixXd> previous_measurement_covariances_; | ||
|
|
||
| //! @brief By default, the filter predicts and corrects up to the time of the | ||
| //! latest measurement. If this is set to true, the filter does the same, but | ||
| //! then also predicts up to the current time step. | ||
| //! @brief By default, the filter predicts and corrects up to the time of | ||
| //! the latest measurement. If this is set to true, the filter does the | ||
| //! same, but then also predicts up to the current time step. | ||
| //! | ||
| bool predict_to_current_time_; | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -83,6 +83,7 @@ NavSatTransform::NavSatTransform(const rclcpp::NodeOptions & options) | |
| yaw_offset_(0.0), | ||
| zero_altitude_(false) | ||
| { | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please remove. |
||
| tf_buffer_ = std::make_unique<tf2_ros::Buffer>(this->get_clock()); | ||
| tf_listener_ = std::make_unique<tf2_ros::TransformListener>(*tf_buffer_); | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe "arriving between execution cycles" instead of "arriving between filter runs"? Also, could we not control this by limiting the queue sizes on the actual sensor inputs, e.g., use the existing
<input name>_queue_sizeparameters? With this option, if you have one extremely high frequency sensor and one very low frequency sensor, it seems possible that the wrong setting here will result in one sensor getting completely ignored.