the OpenCN trajectory optimisation algorithms are complex, and a high level language as Matlab permits to code and test complex algorithms in a much easier way.
For this reason we used code generation from Matlab Coder and Embedded Coder.
Unfortunately, to our knowledge, Python does not (yet ?) feature advanced C code generation.
What implications does the utilization of Matlab Coder has regarding open source licence ?
We used an academic site licence for generating the C code.
The generated code is completely royalty free.
Since we used an academic Matlab licence, the generated C code is today only for academic use (commercial use excluded).
If somebody would like to use OpenCN for commercial applications he needs to buy a commercial licence of Matlab, Matlab Coder and Embedded Coder.
We might also buy in the future a commercial licence of these tools.
In this case, the utilization of C generated code would not have have any more restriction.
We keep you updated regarding these issues.
Worked as an engineer for a little bit more than ten years and do not understand what kind of complex coding algorithms is available in Simulink/Matlab. I prefer to write directly in C code and for control algorithms compile it and call it from Octave so that test result could be visualised. Targetlink do this to.
If I get equations for common electric motor correct jerk could be changed momentarily by changing voltage while current/torque, velocity and position is integrated with some limitations from dynamics and possible cross coupling for three phase motors. Wrote some kind of simple trajectory planner at my workplace, where jerk could be changed instantly while the others had limitation and it should stop at exact point following these limitations, this profile is described in CANopen.
Matlab is an interpreted high level language.
Coding in Matlab is easier and takes much less lines of code than in C.
Debugging in Matlab is also much easier since you don’t have to recompile.
I know that C code generation from Matlab and/or Simulink is largely used in the automotive industry and also in space applications.