minlmoptimize invalid use
Page 1 of 1

Author:  Oliver [ Fri Dec 14, 2018 9:35 am ]
Post subject:  minlmoptimize invalid use

Dear all,

I'm trying to use the Levenberg Marquardt algorithm. If I compile, I get the error "invalid use of non-static member" in the line "minlmoptimize(state, problemMeasurementEquipmentPositon);". First thought, no problem, I make the method problemMeasurementEquipmentPositon(...) static. This would work, if the called methods within this method would be static too, but they aren't. I have never had such a problem and I don't know how to solve it. I would be very grateful if somebody could help. Thanks.

void RobotProblemSolver::solveMeasurementEquipment(){

        int equations=para.getNumberOfMeasurements()*3;

        real_1d_array x = "[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]";
        real_1d_array bndl = "[-1,-1,-1,-10,-1,-1,-1,-10,-1,-1,-1,-10,-0.1,-0.1,-0.1]";
        real_1d_array bndu = "[+1,+1,+1,+10,+1,+1,+1,+10,+1,+1,+1,+10,+0.1,+0.1,+0.1]";
        double epsx = 0.0000000001;
        ae_int_t maxits = 0;
        minlmstate state;
        minlmreport rep;

        minlmcreatev(equations, x, 0.0001, state);
        minlmsetbc(state, bndl, bndu);
        minlmsetcond(state, epsx, maxits);
        minlmoptimize(state, problemMeasurementEquipmentPositon);
        minlmresults(state, x, rep);

        Transformation t(x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],0,0,0,1);

        std::cout << t.toString() << std::endl;
        std::cout << "Tool: "<<x[12]<<" "<<x[13]<<" "<<x[14]<<std::endl;


void RobotProblemSolver::problemMeasurementEquipmentPositon(const real_1d_array &x, real_1d_array &fi, void *ptr){

    double phi[6];
    double coordinates[3];
    Transformation pose;
    Transformation toolTrans(1,0,0,x[12],
    Tool tool(toolTrans);

    for(int i=0; i<para.getNumberOfMeasurements(); i++){




Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group