limited_proxy.h
Go to the documentation of this file.
00001 /*********************************************************************
00002  * Software License Agreement (BSD License)
00003  *
00004  *  Copyright (c) 2008, Willow Garage, Inc.
00005  *  All rights reserved.
00006  *
00007  *  Redistribution and use in source and binary forms, with or without
00008  *  modification, are permitted provided that the following conditions
00009  *  are met:
00010  *
00011  *   * Redistributions of source code must retain the above copyright
00012  *     notice, this list of conditions and the following disclaimer.
00013  *   * Redistributions in binary form must reproduce the above
00014  *     copyright notice, this list of conditions and the following
00015  *     disclaimer in the documentation and/or other materials provided
00016  *     with the distribution.
00017  *   * Neither the name of the Willow Garage nor the names of its
00018  *     contributors may be used to endorse or promote products derived
00019  *     from this software without specific prior written permission.
00020  *
00021  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00022  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00023  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00024  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00025  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00026  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00027  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00028  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00030  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00031  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00032  *  POSSIBILITY OF SUCH DAMAGE.
00033  *********************************************************************/
00034 #ifndef CONTROL_TOOLBOX_LIMITED_PROXY_H
00035 #define CONTROL_TOOLBOX_LIMITED_PROXY_H
00036 
00037 namespace control_toolbox {
00038 
00039 class LimitedProxy
00040 {
00041  public:
00042   // Controller parameter values
00043   double mass_;                 // Estimate of the joint mass
00044   double Kd_;                   // Damping gain
00045   double Kp_;                   // Position gain
00046   double Ki_;                   // Integral gain
00047   double Ficl_;                 // Integral force clamp
00048   double effort_limit_;         // Limit on output force
00049   double vel_limit_;            // Limit on velocity
00050   double pos_upper_limit_;      // Upper position bound
00051   double pos_lower_limit_;      // Lower position bound
00052   double lambda_proxy_;         // Bandwidth of proxy reconvergence
00053   double acc_converge_;         // Acceleration of proxy reconvergence
00054 
00055   
00056  LimitedProxy()
00057    : mass_(0.0), Kd_(0.0), Kp_(0.0), Ki_(0.0), Ficl_(0.0),
00058      effort_limit_(0.0), vel_limit_(0.0),
00059      pos_upper_limit_(0.0), pos_lower_limit_(0.0),
00060      lambda_proxy_(0.0), acc_converge_(0.0)
00061   {
00062   }
00063 
00064   void reset(double pos_act, double vel_act);
00065 
00066   double update(double pos_des, double vel_des, double acc_des,
00067                 double pos_act, double vel_act, double dt);
00068 
00069  private:
00070   // Controller state values
00071   double last_proxy_pos_;       // Proxy position
00072   double last_proxy_vel_;       // Proxy velocity
00073   double last_proxy_acc_;       // Proxy acceleration
00074 
00075   double last_vel_error_;       // Velocity error
00076   double last_pos_error_;       // Position error
00077   double last_int_error_;       // Integral error
00078 };
00079   
00080 } // namespace
00081 
00082 #endif


control_toolbox
Author(s): Melonee Wise, Sachin Chitta, John Hsu
autogenerated on Thu Apr 24 2014 15:44:31