32 #include <selforg/controller_misc.h>
43 double power,
double damp=0.2,
double integration=2,
45 double jointLimit = 1.3,
bool minmaxCheck =
true);
52 virtual void set(
double pos);
55 virtual double get()
const {
78 virtual int get(
sensor* sensors,
int length)
const {
97 virtual int set(
const motor* values,
int length)
override {
169 double power,
double damp=0.2,
double integration=2,
178 virtual void set(
double pos)
override ;
181 virtual double get()
const override {
215 if(joint) { assert(joint==this->joint); }
219 virtual void setPower(
double _power)
override;
251 virtual void set(
double pos)
override ;
254 virtual double get()
const override {
290 virtual void setPower(
double _power)
override;
322 virtual void set(
double pos)
override ;
325 virtual double get()
const override {
virtual double & offsetCanceling()
returns the integration term of the PID controller of the servo
Definition: oneaxisservo.h:132
virtual double & offsetCanceling() override
offetCanceling does not exist for this type of servo
Definition: oneaxisservo.h:232
Data structure for accessing the ODE.
Definition: odehandle.h:44
Servo for sliders to achieve position control.
Definition: oneaxisservo.h:270
OneAxisServo HingeServo
Definition: oneaxisservo.h:156
double KI
Definition: pid.h:45
double power(void *c, double x)
returns x the power c (as a double)
Definition: controller_misc.cpp:17
double damp
Definition: oneaxisservo.h:333
general servo motor to achieve position control with zero position centered
Definition: oneaxisservo.h:163
virtual double getPosition1() const =0
double dummy
Definition: oneaxisservo.h:260
double damp
Definition: oneaxisservo.h:262
double dummy
Definition: oneaxisservo.h:331
virtual int getSensorNumber() const override
returns the number of sensors values produced by this sensor
Definition: oneaxisservo.h:74
double sensor
Definition: types.h:29
OneAxisServo Hinge2Servo
Definition: oneaxisservo.h:157
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.
Definition: oneaxisservo.cpp:85
virtual double getPower() override
returns the power of the servo
Definition: oneaxisservo.h:293
virtual void setDamping(double _damp) override
sets the damping of the servo
Definition: oneaxisservo.h:299
SliderServoVel(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.
Definition: oneaxisservo.cpp:125
virtual void init(Primitive *own, Joint *joint=0) override
initialises motor with body of robot
Definition: oneaxisservo.h:66
virtual void setMaxVel(double maxVel) override
adjusts maximal speed of servo
Definition: oneaxisservo.h:309
AngularMotor1Axis motor
Definition: oneaxisservo.h:259
OneAxisJoint * joint
Definition: oneaxisservo.h:143
virtual double getMaxVel() override
adjusts maximal speed of servo
Definition: oneaxisservo.h:314
Abstract class for sensors that can be plugged into a robot.
Definition: sensor.h:43
virtual void init(Primitive *own, Joint *joint=0) override
initialises motor with body of robot
Definition: oneaxisservo.h:214
virtual void setMinMax(double _min, double _max)
Definition: oneaxisservo.h:105
T abs(T v)
absolute function for all types
Definition: stl_adds.h:35
virtual double getDamping()
returns the damping of the servo
Definition: oneaxisservo.h:123
virtual void set(double pos)
sets the set point of the servo.
Definition: oneaxisservo.cpp:45
virtual ~OneAxisServoVel()
Definition: oneaxisservo.cpp:97
virtual void setMaxVel(double maxVel)
adjusts maximal speed of servo
Definition: oneaxisservo.h:137
virtual void set(double pos) override
sets the set point of the servo.
Definition: oneaxisservo.cpp:70
Abstact base class for attachable motors.
Definition: motor.h:35
Interface class for primitives represented in the physical and graphical world.
Definition: primitive.h:80
virtual bool act(GlobalData &globaldata) override
performs the actions, This is usually called in doInternalStuff() from the robot
Definition: oneaxisservo.h:87
double max
Definition: oneaxisservo.h:149
Data structure holding all essential global information.
Definition: globaldata.h:57
virtual void set(double pos) override
sets the set point of the servo.
Definition: oneaxisservo.cpp:104
double clip(double r, double x)
clipping function for mapP
Definition: controller_misc.cpp:39
virtual bool sense(const GlobalData &globaldata) override
performs sense action
Definition: oneaxisservo.h:73
virtual ~OneAxisServo()
Definition: oneaxisservo.cpp:43
virtual int set(const motor *values, int length) override
sends the action commands to the motor.
Definition: oneaxisservo.h:97
virtual ~SliderServoVel()
Definition: oneaxisservo.cpp:136
virtual double getMaxVel() override
adjusts maximal speed of servo
Definition: oneaxisservo.h:243
general servo motor to achieve position control.
Definition: oneaxisservo.h:195
virtual double getMaxVel()
adjusts maximal speed of servo
Definition: oneaxisservo.h:141
double maxVel
Definition: oneaxisservo.h:151
double jointLimit
joint limit with respect to servo limit
Definition: oneaxisservo.h:152
virtual void setDamping(double _damp) override
sets the damping of the servo
Definition: oneaxisservo.h:228
virtual void set(double pos) override
sets the set point of the servo.
Definition: oneaxisservo.cpp:142
double min
Definition: oneaxisservo.h:148
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.
Definition: oneaxisservo.cpp:31
PID pid
Definition: oneaxisservo.h:150
double motor
Definition: types.h:30
double KD
Definition: pid.h:46
virtual ~OneAxisServoCentered()
Definition: oneaxisservo.h:172
OneAxisServoCentered(OneAxisJoint *joint, double _min, double _max, double power, double damp=0.2, double integration=2, double maxVel=10.0, double jointLimit=1.3)
min and max values are understood as travel bounds.
Definition: oneaxisservo.cpp:63
virtual double getDamping() override
returns the damping of the servo
Definition: oneaxisservo.h:225
virtual double getDamping() override
returns the damping of the servo
Definition: oneaxisservo.h:296
virtual void setParam(int parameter, double value)=0
sets the ODE joint parameter (see ODE manual)
virtual std::list< sensor > getList() const
returns a list of sensor values (usually in the range [-1,1] ) This function should be overloaded...
Definition: oneaxisservo.h:77
virtual void setMaxVel(double maxVel) override
adjusts maximal speed of servo
Definition: oneaxisservo.h:238
double power
Definition: oneaxisservo.h:332
virtual int getMotorNumber() const override
return the dimensionality of this motor
Definition: oneaxisservo.h:85
virtual double getPower() override
returns the power of the servo
Definition: oneaxisservo.h:222
double KP
Definition: pid.h:44
virtual void setPower(double _power) override
adjusts the power of the servo
Definition: oneaxisservo.cpp:138
double power
Definition: oneaxisservo.h:261
virtual void setPower(double power)
adjusts the power of the servo
Definition: oneaxisservo.h:113
virtual double & offsetCanceling() override
offetCanceling does not exist for this type of servo
Definition: oneaxisservo.h:303
virtual void setPower(double _power) override
adjusts the power of the servo
Definition: oneaxisservo.cpp:99
Angular motor for OneAxisJoints.
Definition: angularmotor.h:111
virtual double getPower()
returns the power of the servo
Definition: oneaxisservo.h:118
general servo motor to achieve position control
Definition: oneaxisservo.h:38
std::list< sensor > getListOfArray() const
helper function for performance implementation of list<> get() based on array-get ...
Definition: sensor.h:99
virtual void setDamping(double damp)
sets the damping of the servo
Definition: oneaxisservo.h:127
OneAxisServo SliderServo
Definition: oneaxisservo.h:155