37 #include <control_msgs/msg/joint_jog.hpp>
38 #include <geometry_msgs/msg/twist_stamped.hpp>
41 #include <rclcpp/rclcpp.hpp>
42 #include <tf2_eigen/tf2_eigen.hpp>
49 bool isNonZero(
const geometry_msgs::msg::TwistStamped& msg);
52 bool isNonZero(
const control_msgs::msg::JointJog& msg);
56 const std::string& parent_frame,
57 const std::string& child_frame);
73 const Eigen::VectorXd& commanded_twist,
74 const Eigen::JacobiSVD<Eigen::MatrixXd>& svd,
75 const Eigen::MatrixXd& pseudo_inverse,
76 const double hard_stop_singularity_threshold,
77 const double lower_singularity_threshold,
78 const double leaving_singularity_threshold_multiplier, rclcpp::Clock& clock,
79 moveit::core::RobotStatePtr& current_state,
StatusCode& status);
double velocityScalingFactorForSingularity(const moveit::core::JointModelGroup *joint_model_group, const Eigen::VectorXd &commanded_twist, const Eigen::JacobiSVD< Eigen::MatrixXd > &svd, const Eigen::MatrixXd &pseudo_inverse, const double hard_stop_singularity_threshold, const double lower_singularity_threshold, const double leaving_singularity_threshold_multiplier, rclcpp::Clock &clock, moveit::core::RobotStatePtr ¤t_state, StatusCode &status)
Possibly calculate a velocity scaling factor, due to proximity of singularity and direction of motion...
geometry_msgs::msg::TransformStamped convertIsometryToTransform(const Eigen::Isometry3d &eigen_tf, const std::string &parent_frame, const std::string &child_frame)
Helper function for converting Eigen::Isometry3d to geometry_msgs/TransformStamped.
bool isNonZero(const geometry_msgs::msg::TwistStamped &msg)
Helper function for detecting zeroed message.