cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsIntuitiveResearchKitOptimizer.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  Author(s): Preetham Chalasani
6  Created on: 2014-08-13
7 
8  (C) Copyright 2014 Johns Hopkins University (JHU), All Rights Reserved.
9 
10 --- begin cisst license - do not edit ---
11 
12 This software is provided "as is" under an open source license, with
13 no warranty. The complete license can be found in license.txt and
14 http://www.cisst.org/cisst/license.txt.
15 
16 --- end cisst license ---
17 */
18 
19 
20 #ifndef _mtsIntuitiveResearchKitOptimizer_h
21 #define _mtsIntuitiveResearchKitOptimizer_h
22 
23 
24 // system include
25 #include <iostream>
26 #include <time.h>
27 
28 // cisst
32 
33 // sawConstraintController
34 #include <sawConstraintController/prmKinematicsState.h>
36 #include <sawConstraintController/mtsVFDataPlane.h>
37 #include <sawIntuitiveResearchKit/mtsVFDataFollow.h>
40 
42 {
43  CMN_DECLARE_SERVICES(CMN_DYNAMIC_CREATION, CMN_LOG_LOD_RUN_ERROR);
44 
45 public:
46 
48  mtsIntuitiveResearchKitOptimizer(const size_t numOfJoints);
50  void UpdateJacobian(const robManipulator & manip);
51  void UpdateKinematics(vctDoubleVec & qCurr,
52  vctFrm4x4 cartesianCurrent,
53  vctFrm4x4 cartesianDesired);
54 
55  void UpdateParams(vctDoubleVec & qCurr,
56  const robManipulator & manip,
57  const double tickTime,
58  vctFrm4x4 cartesianCurrent,
59  vctFrm4x4 cartesianDesired);
60 
61  void InitializeFollowVF(const size_t objectiveRows,
62  const std::string & vfName,
63  const std::string & currentKinName,
64  const std::string & desiredKinName = "");
65 
66  void InitializePlaneVF(const size_t rows,
67  mtsVFDataPlane & planeData,
68  const std::string & currentKinName,
69  const std::string & desiredKinName);
70 
71  bool Solve(vctDoubleVec & dq);
72 
73 protected:
74  // VF variables
75  prmKinematicsState CurrentSlaveKinematics;
76  prmKinematicsState DesiredSlaveKinematics;
77  mtsVFDataFollow FollowData;
79  prmJointState CurrentJointState;
80 
81  size_t NumOfJoints;
82 
83  struct {
86  } Cached;
87 
88 private:
89 
91  void AddVFFollow(const mtsVFDataBase & vf);
92 
94  void AddVFFollowJacobian(const mtsVFDataBase & vf);
95 
96 };
97 
99 
100 #endif // _mtsIntuitiveResearchKitOptimizer_h
void UpdateJacobian(const robManipulator &manip)
mtsVFController: A class that is responsible for managing the virtual fixtures, relevant state data...
Definition: mtsVFController.h:43
prmKinematicsState DesiredSlaveKinematics
Definition: mtsIntuitiveResearchKitOptimizer.h:76
Definition: robManipulator.h:34
Declaration of mtsInterfaceRequired.
void InitializeFollowVF(const size_t objectiveRows, const std::string &vfName, const std::string &currentKinName, const std::string &desiredKinName="")
mtsVFDataFollow FollowData
Definition: mtsIntuitiveResearchKitOptimizer.h:77
CMN_DECLARE_SERVICES_INSTANTIATION(mtsIntuitiveResearchKitOptimizer)
#define CMN_LOG_LOD_RUN_ERROR
Definition: cmnLogLoD.h:93
~mtsIntuitiveResearchKitOptimizer()
Definition: mtsIntuitiveResearchKitOptimizer.h:49
prmJointState CurrentJointState
Definition: mtsIntuitiveResearchKitOptimizer.h:79
void InitializePlaneVF(const size_t rows, mtsVFDataPlane &planeData, const std::string &currentKinName, const std::string &desiredKinName)
size_t NumOfJoints
Definition: mtsIntuitiveResearchKitOptimizer.h:81
void UpdateKinematics(vctDoubleVec &qCurr, vctFrm4x4 cartesianCurrent, vctFrm4x4 cartesianDesired)
vctDoubleMat BodyJacobian
Definition: mtsIntuitiveResearchKitOptimizer.h:84
prmKinematicsState CurrentSlaveKinematics
Definition: mtsIntuitiveResearchKitOptimizer.h:75
vctDoubleVec ControllerOutput
Definition: mtsIntuitiveResearchKitOptimizer.h:78
vctDoubleMat Adjoint
Definition: mtsIntuitiveResearchKitOptimizer.h:85
Definition: mtsIntuitiveResearchKitOptimizer.h:41
void UpdateParams(vctDoubleVec &qCurr, const robManipulator &manip, const double tickTime, vctFrm4x4 cartesianCurrent, vctFrm4x4 cartesianDesired)
mtsIntuitiveResearchKitOptimizer(void)
Definition: mtsIntuitiveResearchKitOptimizer.h:47
Declaration of mtsInterfaceProvided.
struct mtsIntuitiveResearchKitOptimizer::@190 Cached
const int CMN_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:331
bool Solve(vctDoubleVec &dq)