Carlo Collodi / kangaroo

Dependencies:   QEI mbed

src/kangaroo.cpp

Committer:
calamaridudeman
Date:
2013-11-26
Revision:
41:65de628f701f
Parent:
38:922f2584bdfd

File content as of revision 41:65de628f701f:

#include "mbed.h"
#include "include/kangaroo.hpp"



Kangaroo::Kangaroo(Motor &M1, Motor &M2, QEI &e1, QEI &e2):enc1(e1),enc2(e2),m1(M1),m2(M2),led1(LED1),led2(LED2),led3(LED3),led4(LED4){

}

void Kangaroo::zero(){
    m1.start();
    m2.start();
    //m1.setVel(-.2);//wait for the legs to go to stopping points
    //m2.setVel(-.2);
    
    m1.setPos(3.1415/6);
    m2.setPos(3.1415/6);//bring legs to hard stop
    
    led4=1;
    wait(3.0);
    
    m1.zero();
    m2.zero();
    
    m1.setPos(-3.1415/2);
    m2.setPos(-3.1415/2); //bring legs to neutral position
    
    m1.zero();  //rezero at neutral
    m2.zero();
    
    enc1.reset();
    enc2.reset();
    led2=1;
    while(((enc1.getRevolutions()==0)||(enc2.getRevolutions()==0))){
        wait(0.1);
    }
    
    led1=1;
    
    setPoint(Point(1.0,-1.0,0));
    
    led3=1;
    m1.stop();
    m2.stop();
}

void Kangaroo::testEncoders(Serial &pc){
    //pc.printf("hello world\n");
    
    //pc.printf("motor1:  %i\n",m1.getPos());
    pc.printf("clix1:  %i, rots1: %i\n",enc1.getPulses(), enc1.getRevolutions());
    
    //pc.printf("motor2:  %i\n",);
    pc.printf("clix2:  %i, rots2: %i\n",enc2.getPulses(), enc2.getRevolutions());
}

float Kangaroo::getAngle(){
    return (enc2.getAngle())+1.770973;
}

void Kangaroo::setPoint(Point p){

    Joints motors = invKinBody(p);
    m1.setPos(motors.t1);
    m2.setPos(motors.t2);

}

void Kangaroo::flightPath(){

}

void Kangaroo::start(){
    m1.setPos(0.0);
    m2.setPos(0.0);
    m1.start();
    m2.start();
}