131 bool initialize(rclcpp::Node::SharedPtr node, moveit::core::RobotModelConstPtr robot_model,
132 size_t num_joints)
override;
142 bool doSmoothing(Eigen::VectorXd& positions, Eigen::VectorXd& velocities, Eigen::VectorXd& accelerations)
override;
151 bool reset(
const Eigen::VectorXd& positions,
const Eigen::VectorXd& velocities,
152 const Eigen::VectorXd& accelerations)
override;
159 if (osqp_solver_ !=
nullptr)
161 osqp_cleanup(osqp_solver_);
167 rclcpp::Node::SharedPtr node_;
169 online_signal_smoothing::Params params_;
173 Eigen::VectorXd last_velocities_;
174 Eigen::VectorXd last_positions_;
176 Eigen::VectorXd cur_acceleration_;
177 Eigen::VectorXd positions_offset_;
178 Eigen::VectorXd velocities_offset_;
180 Eigen::VectorXd max_acceleration_limits_;
181 Eigen::VectorXd min_acceleration_limits_;
183 moveit::core::RobotModelConstPtr robot_model_;
185 Eigen::SparseMatrix<double> constraints_sparse_;
187 OSQPDataWrapperPtr osqp_data_;
189 OSQPSolver* osqp_solver_ =
nullptr;
191 OSQPWorkspace* osqp_solver_ =
nullptr;
193 OSQPSettings osqp_settings_;