//----------  global varis for Rock steady, A.Pickel------------
//----------------last update  13.02.03------------------ 

#include "eyebot.h"
#include "fastmath.h"
#include "IRnokia.h"

#define SCALE 1
#define LEG_LEFT  MOTOR_FR
#define MOTOR_LR  MOTOR_BL
#define LEG_RIGHT MOTOR_FL

#define QUAD_LE QUAD_FR
#define QUAD_LR QUAD_BL
#define QUAD_RI QUAD_FL

QuadHandle	qH[3];
MotorHandle	mH[3];

double 	outp_l = 0,
		outp_r = 0,
		outp_l_old = 0,
		outp_r_old = 0,
		p_hi_l = 0,		// position hip left                              
		p_hi_r = 0,		// position hip right
		p_hi_l_old = 0,		// old position hip left                          ,
		p_hi_r_old = 0;		// old position hip right

double			
	//----- Close loop control varis-----------
	o_r,	        // output right
	o_l,		// output left
	
	o_r_old,	// output right old
   	o_l_old,	// output left old

	s_l,		// speed left
	s_r,		// speed right

	e_s_l,		// speed error left
	e_s_r,		// speed error right

	e_s_l_old,	// speed error left old
	e_s_r_old,	// speed error right old

	p_l,		// position left
	p_r,		// position right

	p_l_old,	// position left old	
   	p_r_old,	// position right old

	w_s_l,		// desired speed left
	w_s_r,		// desired speed right

	w_p_l,		// desired position left
	w_p_r,		// desired position right

	Kp,		// controller p portion
	c_1,		// 1 + ( T / Tn )
	T,		// time period
	Ti,		// integral time

	e_pp,		// error position gain
	e_p_l, 		//error position
	e_p_r;		//error position right

void Reset()
{	// "reset" global vars
	p_l =0 ;
	p_r = 0;

	p_l_old = 0;
   	p_r_old = 0;
	
	o_l = 0;
	o_r = 0;

	o_l_old = 0;
   	o_r_old = 0;

	s_l = 0;
	s_r = 0;

	e_s_l = 0;
	e_s_r = 0;

	e_s_l_old = 0;
	e_s_r_old = 0;

	w_p_l = 0;
	w_p_r = 0;

	w_s_l = 0;
	w_s_r = 0;

	e_p_l=0;
	e_p_r=0;
}


void init()
{	//init varis
	w_s_l = 30;		// desired left speed
	w_s_r = 30;		// desired right speed
	e_pp = 6;		// position error gain
	Ti = 0.2; 		// integration time sec
   	Kp = 12;		// Kp ( PWM / clickspersec) amplification factor
	T = 1.0 / 10* SCALE;  // cycle duration (perioden dauer) T base of the calcualtions for PI control
	c_1 = ( T / (Ti));      // parameter for control algorithm	
}


