Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OneAxisServoVel Class Reference

general servo motor to achieve position control. More...

#include <oneaxisservo.h>

Inheritance diagram for OneAxisServoVel:
Collaboration diagram for OneAxisServoVel:

Public Member Functions

 OneAxisServoVel (const OdeHandle &odeHandle, OneAxisJoint *joint, double _min, double _max, double power, double damp=0.05, double maxVel=20, double jointLimit=1.3)
 min and max values are understood as travel bounds. More...
 
virtual ~OneAxisServoVel ()
 
virtual void init (Primitive *own, Joint *joint=0) override
 initialises motor with body of robot More...
 
virtual void setPower (double _power) override
 adjusts the power of the servo More...
 
virtual double getPower () override
 returns the power of the servo More...
 
virtual double getDamping () override
 returns the damping of the servo More...
 
virtual void setDamping (double _damp) override
 sets the damping of the servo More...
 
virtual double & offsetCanceling () override
 offetCanceling does not exist for this type of servo More...
 
virtual void setMaxVel (double maxVel) override
 adjusts maximal speed of servo More...
 
virtual double getMaxVel () override
 adjusts maximal speed of servo More...
 
virtual void set (double pos) override
 sets the set point of the servo. More...
 
virtual double get () const override
 returns the position of the servo in ranges [-1, 1] (scaled by min, max, centered) More...
 
- Public Member Functions inherited from OneAxisServo
 OneAxisServo (OneAxisJoint *joint, double _min, double _max, double power, double damp=0.2, double integration=2, double maxVel=10.0, double jointLimit=1.3, bool minmaxCheck=true)
 min and max values are understood as travel bounds. More...
 
virtual ~OneAxisServo ()
 
virtual bool sense (const GlobalData &globaldata) override
 performs sense action More...
 
virtual int getSensorNumber () const override
 returns the number of sensors values produced by this sensor More...
 
virtual std::list< sensorgetList () const
 returns a list of sensor values (usually in the range [-1,1] ) This function should be overloaded. More...
 
virtual int get (sensor *sensors, int length) const
 writes the sensor values (usually in the range [-1,1] ) into the given sensor array and returns the number of sensors written. More...
 
virtual int getMotorNumber () const override
 return the dimensionality of this motor More...
 
virtual bool act (GlobalData &globaldata) override
 performs the actions, This is usually called in doInternalStuff() from the robot More...
 
virtual int set (const motor *values, int length) override
 sends the action commands to the motor. More...
 
virtual void setMinMax (double _min, double _max)
 
- Public Member Functions inherited from Sensor
 Sensor ()
 
virtual ~Sensor ()
 
virtual std::list
< SensorMotorInfo
getSensorInfos () const
 returns a list of sensor infos ( More...
 
virtual void update ()
 to update any visual appearance More...
 
std::list< sensorgetListOfArray () const
 helper function for performance implementation of list<> get() based on array-get More...
 
- Public Member Functions inherited from SensorMotorInfoAble
 SensorMotorInfoAble ()
 
void setBaseName (const std::string &basename)
 
void setBaseInfo (const SensorMotorInfo &baseinfo)
 
SensorMotorInfo getBaseInfo ()
 
void setNamingFunc (const NamingFunction &func)
 
NamingFunction getNamingFunc () const
 
void setNames (const std::vector< std::string > &names)
 set names explicitly (basename is anyway suffixed) More...
 
std::string getName (int index) const
 returns the name of a single item. Typically called from within Sensor and Motor class. More...
 
std::list< SensorMotorInfogetInfos (int number) const
 get all infos. More...
 
- Public Member Functions inherited from Motor
 Motor ()
 
virtual ~Motor ()
 
virtual std::list
< SensorMotorInfo
getMotorInfos () const
 returns a list of motor names ( More...
 

Protected Attributes

AngularMotor1Axis motor
 
double dummy
 
double power
 
double damp
 
- Protected Attributes inherited from OneAxisServo
OneAxisJointjoint
 
double min
 
double max
 
PID pid
 
double maxVel
 
double jointLimit
 joint limit with respect to servo limit More...
 
- Protected Attributes inherited from SensorMotorInfoAble
NamingFunction func
 
SensorMotorInfo baseinfo
 

Additional Inherited Members

- Public Types inherited from Sensor
enum  Dimensions {
  X = 1, Y = 2, Z = 4, XY = X | Y,
  XZ = X | Z, YZ = Y | Z, XYZ = X | Y | Z
}
 defines which dimensions should be sensed. The meaning is sensor specific. More...
 
- Public Types inherited from SensorMotorInfoAble
typedef std::function
< std::string(int)> 
NamingFunction
 function that returns the name given the index More...
 
- Static Public Member Functions inherited from Sensor
static std::list< sensorselectrows (const matrix::Matrix &m, short dimensions)
 selects the rows specified by dimensions (X->0, Y->1, Z->2) More...
 
static int selectrows (sensor *sensors, int length, const matrix::Matrix &m, short dimensions)
 selects the rows specified by dimensions (X->0, Y->1, Z->2) More...
 
static Dimensions parseSensorDimension (char *str)
 
static std::string dimensions2String (short dimensions)
 
- Static Public Member Functions inherited from SensorMotorInfoAble
static std::string defaultNameing (int index)
 the default implementation is for index==0: basename, otherwise basename + (index+1) More...
 

Detailed Description

general servo motor to achieve position control.

It internally controls the velocity of the motor (much more stable) with centered zero position. The amount of body feeling can be adjusted by the damping parameter which is understood as a stiffness parameter

Constructor & Destructor Documentation

OneAxisServoVel ( const OdeHandle odeHandle,
OneAxisJoint joint,
double  _min,
double  _max,
double  power,
double  damp = 0.05,
double  maxVel = 20,
double  jointLimit = 1.3 
)

min and max values are understood as travel bounds.

The zero position is (max-min)/2

Parameters
poweris the maximal torque the servo can generate
maxVelis understood as a speed parameter of the servo.
dampadjusts the power of the servo in dependence of the distance to the set point (current control error). This regulates the stiffness and the body feeling 0: the servo has no power at the set point (maximal body feeling); 1: is servo has full power at the set point: maximal stiffness, perfectly damped.
~OneAxisServoVel ( )
virtual

Member Function Documentation

virtual double get ( ) const
inlineoverridevirtual

returns the position of the servo in ranges [-1, 1] (scaled by min, max, centered)

Reimplemented from OneAxisServo.

virtual double getDamping ( )
inlineoverridevirtual

returns the damping of the servo

Reimplemented from OneAxisServo.

virtual double getMaxVel ( )
inlineoverridevirtual

adjusts maximal speed of servo

Reimplemented from OneAxisServo.

virtual double getPower ( )
inlineoverridevirtual

returns the power of the servo

Reimplemented from OneAxisServo.

virtual void init ( Primitive own,
Joint joint = 0 
)
inlineoverridevirtual

initialises motor with body of robot

Reimplemented from OneAxisServo.

virtual double& offsetCanceling ( )
inlineoverridevirtual

offetCanceling does not exist for this type of servo

Reimplemented from OneAxisServo.

void set ( double  pos)
overridevirtual

sets the set point of the servo.

Position must be between -1 and 1. It is scaled to fit into min, max, however 0 is just in the center of min and max

Reimplemented from OneAxisServo.

virtual void setDamping ( double  damp)
inlineoverridevirtual

sets the damping of the servo

Reimplemented from OneAxisServo.

virtual void setMaxVel ( double  maxVel)
inlineoverridevirtual

adjusts maximal speed of servo

Reimplemented from OneAxisServo.

void setPower ( double  _power)
overridevirtual

adjusts the power of the servo

Reimplemented from OneAxisServo.

Member Data Documentation

double damp
protected
double dummy
protected
double power
protected

The documentation for this class was generated from the following files: