cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsTeleOperation.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): Zihan Chen, Anton Deguet
6  Created on: 2013-03-06
7 
8  (C) Copyright 2013-2015 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 #ifndef _mtsTeleOperation_h
20 #define _mtsTeleOperation_h
21 
27 
39 {
41 
42 public:
43  mtsTeleOperation(const std::string & componentName, const double periodInSeconds);
46 
47  void Configure(const std::string & filename = "");
48  void Startup(void);
49  void Run(void);
50  void Cleanup(void);
51 
52  void ConfigureMaster(const std::string & filename);
53  void ConfigureSlave(const std::string & filename);
54 
55  void SetScale(const double & scale);
56  void SetRegistrationRotation(const vctMatRot3 & rotation);
57  void LockRotation(const bool & lock);
58  void LockTranslation(const bool & lock);
59 
60 private:
61 
62  void Init(void);
63 
64  // Event Handler
65  void MasterErrorEventHandler(const std::string & message);
66  void SlaveErrorEventHandler(const std::string & message);
67 
68  void SlaveClutchEventHandler(const prmEventButton & button);
69  void CameraClutchEventHandler(const prmEventButton & button);
70  void StartAlignMaster(void);
71 
72  void ClutchEventHandler(const prmEventButton & button);
73  void OperatorPresentEventHandler(const prmEventButton & button);
74 
75  // Functions for events
76  struct {
81  } MessageEvents;
82 
83  struct {
87  } ConfigurationEvents;
88 
89  void Enable(const bool & enable);
90 
97  void SetMasterControlState(void);
98 
99 protected:
100 
101  class RobotMaster {
102  public:
107 
109 
113  };
115 
116  class RobotSlave {
117  public:
121 
123 
129  };
131 
132 private:
133 
134  int Counter;
135  double Scale;
136  vctMatRot3 RegistrationRotation;
137  vctFrm3 Offset;
138  vct3 MasterLockTranslation;
139 
140  bool IsClutched;
141  bool IsOperatorPresent;
142  bool IsEnabled;
143  bool RotationLocked;
144  bool TranslationLocked;
145 
146  vctMatRot3 MasterClutchedOrientation;
147 
148  mtsStateTable * ConfigurationStateTable;
149 };
150 
152 
153 #endif // _mtsTeleOperation_h
void ConfigureMaster(const std::string &filename)
~mtsTeleOperation()
Definition: mtsTeleOperation.h:45
void LockTranslation(const bool &lock)
void Cleanup(void)
Definition: mtsFunctionRead.h:37
mtsFunctionWrite SetPositionCartesian
Definition: mtsTeleOperation.h:104
mtsFunctionWrite Status
Definition: mtsTeleOperation.h:77
mtsFunctionWrite SetRobotControlState
Definition: mtsTeleOperation.h:120
mtsFunctionRead GetPositionCartesian
Definition: mtsTeleOperation.h:118
teleoperation component
Definition: mtsTeleOperation.h:38
Definition: mtsTaskPeriodic.h:38
void LockRotation(const bool &lock)
mtsFunctionWrite RotationLocked
Definition: mtsTeleOperation.h:85
mtsFunctionWrite SetJawPosition
Definition: mtsTeleOperation.h:122
bool IsSUJClutched
Definition: mtsTeleOperation.h:128
const int CMN_DYNAMIC_CREATION_ONEARG
Definition: cmnClassRegisterMacros.h:333
RobotSlave Slave
Definition: mtsTeleOperation.h:130
void SetRegistrationRotation(const vctMatRot3 &rotation)
void Configure(const std::string &filename="")
bool IsManipClutched
Definition: mtsTeleOperation.h:127
Definition: prmEventButton.h:37
mtsFunctionWrite SetPositionGoalCartesian
Definition: mtsTeleOperation.h:105
prmPositionCartesianSet PositionCartesianDesired
Definition: mtsTeleOperation.h:125
mtsFunctionRead GetGripperPosition
Definition: mtsTeleOperation.h:108
vctFrm4x4 CartesianPrevious
Definition: mtsTeleOperation.h:112
vctFrm4x4 CartesianPrevious
Definition: mtsTeleOperation.h:126
Definition: mtsStateTable.h:67
mtsFunctionWrite Scale
Definition: mtsTeleOperation.h:84
mtsFunctionWrite Warning
Definition: mtsTeleOperation.h:78
prmPositionCartesianSet PositionCartesianDesired
Definition: mtsTeleOperation.h:111
mtsFunctionWrite Error
Definition: mtsTeleOperation.h:79
Cartesian position move parameters.
void Run(void)
mtsFunctionWrite SetPositionCartesian
Definition: mtsTeleOperation.h:119
Defines a periodic task.
CMN_DECLARE_SERVICES_INSTANTIATION(mtsTeleOperation)
mtsFunctionWrite Enabled
Definition: mtsTeleOperation.h:80
Definition: mtsTeleOperation.h:101
mtsFunctionRead GetPositionCartesian
Definition: mtsTeleOperation.h:103
void SetScale(const double &scale)
Button Event payload.
Definition: mtsFunctionWrite.h:37
mtsFunctionWrite SetRobotControlState
Definition: mtsTeleOperation.h:106
Definition: mtsTaskPeriodic.h:80
Definition: mtsTeleOperation.h:116
void Startup(void)
RobotMaster Master
Definition: mtsTeleOperation.h:114
Definition: prmPositionCartesianSet.h:40
prmPositionCartesianGet PositionCartesianCurrent
Definition: mtsTeleOperation.h:110
mtsFunctionWrite TranslationLocked
Definition: mtsTeleOperation.h:86
prmPositionCartesianGet PositionCartesianCurrent
Definition: mtsTeleOperation.h:124
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
void ConfigureSlave(const std::string &filename)
mtsTeleOperation(const std::string &componentName, const double periodInSeconds)
Definition: prmPositionCartesianGet.h:37