test

Dependencies:   mbed BufferedSerial LS7366LIB2 FastPWM

noustf.txt

Committer:
lsh2205
Date:
2020-04-23
Revision:
0:e12eb40b9fef

File content as of revision 0:e12eb40b9fef:

/*
void initial_position()
{
    cmd_roll     =  32768;
    cmd_pitch    =  32768;
    cmd_heave    =  32768;
    cmd_sway     =  32768;
    cmd_surge    =  32768;
    cmd_yaw      =  32768;

    double base_position[6]= {0,0,0,0,0,0};
    double motor_duty=200;

    base_position[0]=-(origin_degree1/(1.5*90))*1024*100;
    base_position[1]=-(origin_degree2/(1.5*90))*1024*100;
    base_position[2]=-(origin_degree3/(1.5*90))*1024*100;
    base_position[3]=(origin_degree4/(1.5*90))*1024*100;
    base_position[4]=-(origin_degree5/(1.5*90))*1024*100;
    base_position[5]=-(origin_degree6/(1.5*90))*1024*100;


    bool base_position_check[6]= {false,false,false,false,false,false};

    int b_cnt=0;
    for(int i=0; i<4001; i++) {
        encoder_read();

        b_cnt++;
        if(b_cnt>499) {
            b_cnt=0;
            pc.printf("Base_positioning : %d \r\n",i+1);

            for(int k=0; k<6; k++) {
                pc.printf("%8.0f", base_position[k]);
            }
            pc.printf("\r\n");
            for(int k=0; k<6; k++) {
                pc.printf("%8d", encoder_data[k]);
            }
            pc.printf("\r\n");
        }



        for(int u=0; u<3; u++) {
            if(encoder_data[u]<base_position[u]) {
                motor_power(u, 0);
                base_position_check[u]=true;
            } else if(encoder_data[u]<base_position[u]*0.9)
                motor_power(u, motor_duty*0.5);
            else if(encoder_data[u]<base_position[u]*0.8)
                motor_power(u, motor_duty*0.7);
            else if(encoder_data[u]<base_position[u]*0.7)
                motor_power(u, motor_duty*0.9);
            else
                motor_power(u, motor_duty);
        }

        for(int u=4; u<6; u++) {
            if(encoder_data[u]<base_position[u]) {
                motor_power(u, 0);
                base_position_check[u]=true;
            } else if(encoder_data[u]<base_position[u]*0.9)
                motor_power(u, -motor_duty*0.5);
            else if(encoder_data[u]<base_position[u]*0.8)
                motor_power(u, -motor_duty*0.7);
            else if(encoder_data[u]<base_position[u]*0.7)
                motor_power(u, -motor_duty*0.9);
            else
                motor_power(u, -motor_duty);
        }
        
        for(int u=3; u<4; u++) {
            if(encoder_data[u]>base_position[u]) {
                motor_power(u, 0);
                base_position_check[u]=true;
            } else if(encoder_data[u]>base_position[u]*0.9)
                motor_power(u, motor_duty*0.5);
            else if(encoder_data[u]>base_position[u]*0.8)
                motor_power(u, motor_duty*0.7);
            else if(encoder_data[u]>base_position[u]*0.7)
                motor_power(u, motor_duty*0.9);
            else
                motor_power(u, motor_duty);
        }

    }

    motor_power(0, 0);
    motor_power(1, 0);
    motor_power(2, 0);
    motor_power(3, 0);
    motor_power(4, 0);
    motor_power(5, 0);
}
*/

/*
        m_cnt++;
        if(m_cnt>3000)
        {
            m_cnt=0;
            pc.printf("     Speed_Pgain     Speed_Igain     position_Pgain     Position_input_filter     Speed_I_input_filter     offset\r\n");
            for(int i = 0; i < 6; i++)
            {
                pc.printf("%2d.    %6.3f          %6.3f            %6.3f                %6.3f                    %6.3f             %4d\r\n", i + 1, Speed_Pgain[i], Speed_Igain[i], position_Pgain[i], Position_input_filter[i], Speed_I_input_filter[i], (int)offset[i]);
            }
            pc.printf("\n\n\n");
        }
        */