69 Eigen::MatrixXd smoothing_matrix;
70 stomp::generateSmoothingMatrix(num_timesteps, 1.0 , smoothing_matrix);
71 return [=](
const Eigen::MatrixXd& , Eigen::MatrixXd& filtered_values) {
72 for (
auto row : filtered_values.rowwise())
74 row.transpose() = smoothing_matrix * row.transpose();
88 return [=](
const Eigen::MatrixXd& values, Eigen::MatrixXd& filtered_values) {
89 filtered_values = values;
91 for (
size_t i = 0; i < joints.size(); ++i)
93 for (
int j = 0; j < filtered_values.cols(); ++j)
95 joints.at(i)->enforcePositionBounds(&filtered_values.coeffRef(i, j));
110 return [=](
const Eigen::MatrixXd& values, Eigen::MatrixXd& filtered_values) {
111 Eigen::MatrixXd values_in = values;
112 for (
const auto& filter_fn : filter_functions)
114 filter_fn(values_in, filtered_values);
115 values_in = filtered_values;