Giter Site home page Giter Site logo

nmpc-codegen's People

Contributors

alphaville avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nmpc-codegen's Issues

Trailer example not compiling (linker error)

Hi, I was trying the trailer matlab example, and when trying to run it I get a linker error as follows:

/home/emifre/Git/EmbeddedMPC/matlab/trailer.c: In function ‘trailer’:
/home/emifre/Git/EmbeddedMPC/matlab/trailer.c:8:10: warning: implicit declaration of function ‘casadi_f0’ [-Wimplicit-function-declaration]
   return casadi_f0(arg, res, iw, w, mem);
          ^

Error using mex
/tmp/mex_4258838998425_12530/trailer.o: In function `trailer':
trailer.c:(.text+0xa): undefined reference to `casadi_f0'
collect2: error: ld returned 1 exit status


Error in StaticWorldNavigator/mexifyPanoc (line 7)
mex('-I../include', '-L../dist/Release/GNU-Linux', ...

Error in StaticWorldNavigator/codegen (line 16)
obj.mexifyPanoc();

Error in testPANOCFramework (line 49)
ellFun                = nav.codegen(codegenOps)   ;

My system is as follows:

  • Ubuntu 16.04
  • Matlab 9.3.0.713579 (R2017b)
  • Casadi casadi-linux-matlabR2014b-v3.4.4 (the 2014 and up version for linux)
  • Tested on the master branch of EmbeddedMPC.

Tell me if there is something more you need.
Thanks!

BR Emil

Alternative limit: make it possible to set a max time rather than max iterations

Hi,

During the work where we used PANOC on a quadrotor we sometimes went over the max time which was allowed when PANOC did a lot of internal linesearch steps.
With this in mind and after talking with @alphaville , it would be good to be able to choose a MAX_ITERATIONS or MAX_TIME, where after each PANOC iteration it would check if the time limit has been broken.
As we still want PANOC to continue iterating while inside its time budget.

BR Emil

Typos

There are some typos that need to be corrected throughout the code (here and in dependent projects). In particular

Typo Should become
LBGFS LBFGS
LA AL (Augmented Lagrangian)
Single/multiple shot single/multiple shooting
Envelop envelope
Amount of iterations number of iterations

Compiling with ffast-math

Compiling with the option ffast-math seems to effect quite some acceleration. Let's test whether we can sacrifice strict IEEE compliance for the sake of performance.

combine proxg and g in 1 function

g and proxg are evaluated separately, this should happen at the same time.

  • The python generators should be adjusted (or removed? we could use c_proximal_functions lib from ForBeS)
  • The C code of PANOC needs to be adjusted

On going development in branch feature/combine-proxg-and-g .

Cannot install in MacOSX

I'm trying to install nmpc-codegen on a MacOSX, High Sierra 10.13.4 using cmake, and this is what I get:

$ sudo cmake -H. -Bbuild
-- Configuring done
CMake Error at casadi/CMakeLists.txt:7 (add_library):
  Cannot find source file:

    cost_function_derivative_combined.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx


CMake Error at casadi/CMakeLists.txt:7 (add_library):
  No SOURCES given to target: CASADI_lib


-- Build files have been written to: /Users/myusername/Documents/GitHub/nmpc-codegen/build

It would be useful to have some installation instructions.

Matlab_test_utils error

In Windows 10, MATLAB R2015a

>> Matlab_test_utils
Error: File: Matlab_test_utils.m Line: 46 Column: 1
Function definitions are not permitted in this context.

@alphaville, it seems that by moving the function to a different m-file (test_if_command_available.m), the script can be executed.

What's the meaning of tau?

Hello, I'm studying panoc recently. In your paper, the value of tau is Max {1 / 2 ^ i}. Isn't the value of tau 1? What's the meaning of this definition?

MHE implementation

Hi!
I wonder if there is a Moving Horizon Estimator (MHE) implementation using PANOC. If there is not an MHE impelmentation done, what would be the necessary steps to make one?

Thanks in advance

Add delta u terms to the discrete time cost function

Hi,

We have been trying PANOC to position control a real quadrotor, which was working quite well, however we often saw the need to adding weights on the change of control signal due to some erratic behavior.
The main issue why we simply do not increase the control signal weights is that we still want to tell the solver that large control signal are OK, just that in cannot change instantly.

As the current setup only allows for state weights, I would like to request the additions of a matrix Rd, which is the weight on the rate of change of the control signal.
I did a quick try to implement this, but Pantelis (@alphaville) pointed out that I was changing the continuous time cost function.

I am not familiar with the code generation to add this, but I heard that there was already plans on adding something similar?

BR Emil

Cmake not available

On MATLAB 2017a, I run Matlab_test_utils and I get the following result:

This script will check if the nessesary tools are available
casadi version 3.2.3[OK]
GNU compiler [OK]
make [OK]
Error cmake is not available [NOT OK]

However, cmake is installed on my system (I have cmake version 2.8.12.2).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.