kul-optec / nmpc-codegen Goto Github PK
View Code? Open in Web Editor NEWC Code generation for NMPC
Home Page: https://kul-forbes.github.io/nmpc-codegen/
License: MIT License
C Code generation for NMPC
Home Page: https://kul-forbes.github.io/nmpc-codegen/
License: MIT License
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:
EmbeddedMPC
.Tell me if there is something more you need.
Thanks!
BR Emil
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
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 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.
g and proxg are evaluated separately, this should happen at the same time.
On going development in branch feature/combine-proxg-and-g .
The internal python help is missing
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.
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.
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?
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
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
Split up nmpc_panos into two parts:
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).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.