$search
00001 /* 00002 Copyright (C) 2002-2004 Etienne Lachance 00003 00004 This library is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU Lesser General Public License as 00006 published by the Free Software Foundation; either version 2.1 of the 00007 License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 GNU Lesser General Public License for more details. 00013 00014 You should have received a copy of the GNU Lesser General Public 00015 License along with this library; if not, write to the Free Software 00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 00019 Report problems and direct all questions to: 00020 00021 email: etienne.lachance@polymtl.ca or richard.gourdeau@polymtl.ca 00022 00023 ------------------------------------------------------------------------------- 00024 Revision_history: 00025 00026 2004/07/13: Ethan Tira-Thompson 00027 -Added support for newmat's use_namespace #define, using ROBOOP namespace 00028 00029 2005/11/06: Etienne Lachance 00030 - No need to provide a copy constructor and the assignment operator 00031 (operator=) for Control_Select class. Instead we use the one provide by the 00032 compiler. 00033 ------------------------------------------------------------------------------- 00034 */ 00035 00036 00037 #ifndef CONTROL_SELECT_H 00038 #define CONTROL_SELECT_H 00039 00045 00046 static const char header_Control_Select_rcsid[] = "$Id: control_select.h,v 1.4 2006/05/16 16:11:15 gourdeau Exp $"; 00047 00048 00049 #include <string> 00050 #include "controller.h" 00051 00052 #ifdef use_namespace 00053 namespace ROBOOP { 00054 using namespace NEWMAT; 00055 #endif 00056 00057 #define NONE 0 00058 #define PD 1 00059 #define CTM 2 00060 #define RRA 3 00061 #define IMP 4 00062 00063 #define CONTROLLER "CONTROLLER" 00064 00065 #define PROPORTIONAL_DERIVATIVE "PROPORTIONAL_DERIVATIVE" 00066 #define COMPUTED_TORQUE_METHOD "COMPUTED_TORQUE_METHOD" 00067 #define RESOLVED_RATE_ACCELERATION "RESOLVED_RATE_ACCELERATION" 00068 #define IMPEDANCE "IMPEDANCE" 00069 00100 class Control_Select 00101 { 00102 public: 00103 Control_Select(); 00104 Control_Select(const std::string & filename); 00105 int get_dof(); 00106 void set_control(const std::string & filename); 00107 Proportional_Derivative pd; 00108 Computed_torque_method ctm; 00109 Resolved_acc rra; 00110 Impedance impedance; 00111 00112 short type, 00113 space_type; 00114 std::string ControllerName; 00115 private: 00116 int dof; 00117 }; 00118 00119 #ifdef use_namespace 00120 } 00121 #endif 00122 00123 #endif 00124 00125 00126 00127 00128 00129 00130 00131 00132 00133 00134 00135 00136 00137 00138