GripperKinematics.h
Go to the documentation of this file.
00001 #ifndef GRIPPERKINEMATICS_H
00002 #define GRIPPERKINEMATICS_H
00003 
00004 #include <stdexcept>
00005 #include <iostream>
00006 #include "nasa_common_logging/Logger.h"
00007 #include <boost/math/constants/constants.hpp>
00008 #include <boost/math/special_functions/fpclassify.hpp>
00009 
00014 class GripperKinematics
00015 {
00016 public:
00017     GripperKinematics() {};
00018     GripperKinematics(const double l1, const double l2, const double l3, const double l4, const double minSliderPosition, const double ballScrewEfficiency,
00019                       const double ballScrewMotionRatio, const double jawAngleZeroAdj1, const double jawAngleZeroAdj2, const double gripperLength,
00020                       const double motorTorqueConstant, const double overCenterAngle, const double overCenterStatusBuffer, double coulombFrictionCurrentOffset,
00021                       const double closeToZero, const bool beSilent = false);
00022     virtual ~GripperKinematics() {};
00023 
00024     void setParameters(const double l1, const double l2, const double l3, const double l4, const double minSliderPosition, const double ballScrewEfficiency,
00025                        const double ballScrewMotionRatio, const double jawAngleZeroAdj1, const double jawAngleZeroAdj2, const double gripperLength,
00026                        const double motorTorqueConstant, const double overCenterAngle, const double overCenterStatusBuffer, double coulombFrictionCurrentOffset,
00027                        const double closeToZero, const bool beSilent = false);
00028 
00029     double getEncoderAngle(const double& jawAngle);
00030     double getAngleOffSingular(const double& encoderAngle, const double& jawAngle);
00031     bool isOverCenter(const double& encoderAngle, const double& jawAngle);
00032     bool isOverCenterStatus(const double& encoderAngle, const double& jawAngle);
00033     double getMotorCurrentLimit(const double& encoderAngle, const double& jawAngle, const double& forceLimit);
00034 
00035 private:
00036     double L1;
00037     double L2;
00038     double L3;
00039     double L4;
00040     double MIN_SLIDER_POSITION;
00041     double BALL_SCREW_EFFICIENCY;
00042     double BALL_SCREW_MOTION_RATIO;
00043     double BALL_SCREW_FORCE_RATIO;
00044     double JAW_ANGLE_ZERO_ADJ;
00045     double GRIPPER_LENGTH;
00046     double MOTOR_TORQUE_CONSTANT;
00047     double OVER_CENTER_ANGLE;
00048     double OVER_CENTER_STATUS_BUFFER;
00049     double COULOMB_FRICTION_CURRENT_OFFSET;
00050     double CLOSE_TO_ZERO;
00051     bool   BE_SILENT;
00052 };
00053 
00054 typedef boost::shared_ptr<GripperKinematics> GripperKinematicsPtr;
00055 
00056 #endif


robodyn_mechanisms
Author(s):
autogenerated on Thu Jun 6 2019 21:22:48