cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
robCollaborativeControlForce.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Gorkem Sevinc, Anton Deguet
7  Created on: 2009-08-20
8 
9  (C) Copyright 2008 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 */
20 
21 #ifndef _robCollaborativeControlForce_h
22 #define _robCollaborativeControlForce_h
23 
25 #include <cisstVector/vctTypes.h>
26 
27 //Always include last
28 #include <cisstRobot/robExport.h>
29 
30 #error "This class is deprecated, do not use"
31 
33 
34 public:
36 
37  public:
38  enum ForceModeType {RAW, RATCHETED, CAPPED};
39  CMN_DECLARE_MEMBER_AND_ACCESSORS(ForceModeType, ForceMode);
40  CMN_DECLARE_MEMBER_AND_ACCESSORS(double, ForceFeedbackRatio); //ForceMasterCoefficient
41  CMN_DECLARE_MEMBER_AND_ACCESSORS(double, LinearGainMaster); //ScaleFactor
42  CMN_DECLARE_MEMBER_AND_ACCESSORS(double, LinearGainSlave);
43  CMN_DECLARE_MEMBER_AND_ACCESSORS(double, PositionLimit); // FMax
44  CMN_DECLARE_MEMBER_AND_ACCESSORS(double, MasterToSlaveScale);
45  public:
47  void ToStream(std::ostream & outputStream) const;
48 
50  void ToStreamRaw(std::ostream & outputStream, const char delimiter = ' ',
51  bool headerOnly = false, const std::string & headerPrefix = "") const;
52 
54  void SerializeRaw(std::ostream & outputStream) const;
55 
57  void DeSerializeRaw(std::istream & inputStream);
58  };
59 
61  robCollaborativeControlForce(double linearGainMaster,
62  double linearGainSlave,
63  double forceLimit,
64  ParameterType::ForceModeType forceMode,
65  double masterToSlaveScale,
66  double forceFeedbackRatio);
74  void SetParameters(const ParameterType & commandedParameter);
75 
82  void Update(const vct3 & p1,
83  const vct3 & p2,
84  const bool ClutchMaster,
85  const bool ClutchSlave,
86  vctFixedSizeVector<double, 6> & ForceMaster,
87  vctFixedSizeVector<double, 6> & ForceSlave);
88 
89 protected:
116 
125 
126  CMN_DECLARE_MEMBER_AND_ACCESSORS(bool, ApplicationMasterClutch);
127  CMN_DECLARE_MEMBER_AND_ACCESSORS(bool, ApplicationSlaveClutch);
128  CMN_DECLARE_MEMBER_AND_ACCESSORS(bool, ApplicationMasterSlaveClutch);
130 
131 private:
132 
133 };
134 
135 #endif //robCollaborativeControlForce
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
vct3 p2Clutched
Definition: robCollaborativeControlForce.h:111
vct3 p1Last
Definition: robCollaborativeControlForce.h:114
vct3 RightClutchMSOffset
Definition: robCollaborativeControlForce.h:104
bool FirstIteration
Definition: robCollaborativeControlForce.h:117
vct3 p1Clutched
Definition: robCollaborativeControlForce.h:110
vct3 p2R
Definition: robCollaborativeControlForce.h:113
vct3 p1Goal
Definition: robCollaborativeControlForce.h:106
Definition: robCollaborativeControlForce.h:32
vct3 Error
Definition: robCollaborativeControlForce.h:105
bool ClutchDone
Definition: robCollaborativeControlForce.h:118
Definition: robCollaborativeControlForce.h:38
vct3 p2Last
Definition: robCollaborativeControlForce.h:115
ForceModeType
Definition: robCollaborativeControlForce.h:38
vct3 RightClutchOffset
Definition: robCollaborativeControlForce.h:102
Definition: robCollaborativeControlForce.h:35
vct3 p1RGoal
Definition: robCollaborativeControlForce.h:108
Accessor macros.
bool ClutchOffsetAdd
Definition: robCollaborativeControlForce.h:120
vct3 p2RGoal
Definition: robCollaborativeControlForce.h:109
~robCollaborativeControlForce(void)
Definition: robCollaborativeControlForce.h:67
vct3 WorkspaceOffset
Definition: robCollaborativeControlForce.h:99
vct3 p2Goal
Definition: robCollaborativeControlForce.h:107
int ClutchMode
Definition: robCollaborativeControlForce.h:121
vct3 p1R
Definition: robCollaborativeControlForce.h:112
vct3 ClutchOffset
Definition: robCollaborativeControlForce.h:100
vctFrm3 RelativeTransform
Definition: robCollaborativeControlForce.h:124
vct3 LeftClutchOffset
Definition: robCollaborativeControlForce.h:101
vct3 LeftClutchMSOffset
Definition: robCollaborativeControlForce.h:103
#define CMN_DECLARE_MEMBER_AND_ACCESSORS(memberType, memberName)
Definition: cmnAccessorMacros.h:70
Typedef for cisstVector.
double ForceFeedNormMaster
Definition: robCollaborativeControlForce.h:122
double ForceFeedNormSlave
Definition: robCollaborativeControlForce.h:123
bool BothClutched
Definition: robCollaborativeControlForce.h:119