MatthewPeterKelly / OptimTraj

A trajectory optimization library for Matlab
MIT License
598 stars 207 forks source link

Unrecognized field name #55

Open coltbk opened 1 year ago

coltbk commented 1 year ago

I've just cloned the repository and tried running a few of the demos, but I keep getting the following error:

WARNING: options.nlpOpt.GradConstr is not a valid option
WARNING: options.nlpOpt.GradObj is not a valid option
WARNING: options.nlpOpt.DerivativeCheck is not a valid option
WARNING: options.nlpOpt.GradConstr is not a valid option
WARNING: options.nlpOpt.GradObj is not a valid option
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Running OptimTraj, iteration 1
  -> Transcription via trapezoid method, nGrid = 10
Unrecognized field name "GradObj".

Error in directCollocation (line 26)
flagGradObj = strcmp(Opt.nlpOpt.GradObj,'on');

Error in trapezoid (line 74)
    soln = directCollocation(problem);

Error in optimTraj (line 180)
            soln(iter) = trapezoid(P);

Error in MAIN (line 167)
soln = optimTraj(problem);

That's specifically the printout from the gradientsTutorial. I've checked that problem.options(1).nlpOpt.GradObj is set to on before being passed from Main.m > optimTraj.m > trapezoid.m > directCollocation.m. I also haven't modified the files in any way. I just opened Main.m in the demo folder and hit run. Is anyone else experiencing this or am I missing something?

beijiguang94 commented 1 year ago

The error and the above Warning should not appear because GradConstr etc. is added to options.nlpOpt by the optimset function in either Line 62, 68, or 74 in 'getDefaultOptions.m'. Thus, Line 87 should not be executed which will give the Warning information. Instead, Line 89 should be executed in terms of options GradConstr, etc.