dear Robert, thanks for your positive feedback !
I'll try to answer most of your questions : 1) licence Good point ! We have here a campus licence for the whole Matlab suite, as most universities have. I asked my Mathworks contact person whether the generated C code is compatible with GNU GPL, and he affirmed. But I'm not entirely sure, I'll keep you updated ... In the worst case we'll have to buy the commercial version. For sure the code is royalty free. I know that in automotive and space industry, they heavily use code generation (better maintainability, shorter development time). 2) Almost all calculations are in user space, only the resampling is in kernel space. This is important : we keep an analytical description *as long as possible*, and we discretize only at the very end. 3) yes, feedrate alterations are supported : Feed override (GUI) is already implemented ! Otherwise the max feedrate per block is inherited from G code. 4) The paper you mentioned is from KU Leuven in Belgium. I have a close cooperation with them, a PhD student from their side came to our lab 2 years ago, and I was in the jury of his thesis. I opted for a convex optimization approach since it's more reliable. The jerk constraint is only approximated, leading to a *very small* suboptimality in machining time. 5) I leave this reply to my colleague Daniel. best regards, Raoul -----Message d'origine----- De : Robert Ellenberg <[email protected]> Envoyé : vendredi 22 novembre 2019 16:32 À : EMC developers <[email protected]> Cc : Rossier Daniel <[email protected]> Objet : Re: [Emc-developers] announcement OpenCN, a new fork of LinuxCNC Hi Raoul, That's impressive work! Thanks for sharing it with all of us. It's been a long-standing goal for us to support limited-jerk planning and smoother blends. It's a major achievement to both create G2-continuous blends and optimize the overall feedrate, and I'm excited to see your future work on 5-axis machines. After looking through your documentation and videos, I have a few questions: 1. What license are you releasing your source code under? It looks like the generated C code in the FeedOpt library is an academic-use-only license, which would seem to prohibit personal or commercial use. Do you have any interest in porting the source code to a form that would be usable under a broader license like LGPL? 2. In your architecture, how much path optimization do you do in the kernel / realtime? From your block diagram, it looks like smoothing and G2 blending are done in the non-realtime side, and the resulting G2 continuous path is sent to the RT component. 3. Does your TP support any online alteration of feed rate? For example: 1. Feed hold 2. Adaptive feed 3. Feed override / maximum velocity limits 4. Spindle position tracking for threading and tapping 4. How does your path optimization approach compare with this paper <https://www.researchgate.net/publication/259981920_Time-Optimal_Path_Following_for_Robots_with_Trajectory_Jerk_Constraints_using_Sequential_Convex_Programming>? Specifically, they claim that finite jerk path optimization is in general a DCP (Difference of Convex optimization Problem). It looks like you found a way to do the optimization as an LP problem. What did you have to do to avoid solving the more complex problem? 5. How are you sending data back and forth between the realtime and user portions? Thanks! Rob On Fri, Nov 22, 2019 at 10:20 AM Herzog Raoul <[email protected]> wrote: > > > dear Les, > > the modifications we had to introduce to LinuxCNC are very > substantial, mainly due to > 1) the fact that we use a minimalistic, highy patched Xenomai, where > we can dedicate processor cores to specific tasks (asymmetric > multiprocessing (AMP)). > 2) the fact that the trajectory planning is completely rewritten > > For the time being, we also had to leave away certain functionalities > of LinuxCNC to keep it simple. > I believe a later merge of OpenCN and LinuxCNC would be extremely > difficult, if not impossible. > > One of our goals was to establish a stable high speed EtherCAT > communication to the drives at a rate of 10 kHz using the distributed > clock (DC). > It turned out that this is nearly impossible on x86, even with our > Xenomai AMP : the GPU is perturbing too much with DMA access to the main > memory ... > One solution would be to "externalize" the GUI (work in progress here). > > So, please consider our OpenCN as an experimental branch, where, > maybe, some ideas could be helpful for the future evolution of LinuxCNC. > > best regards, > > Raoul > > -----Message d'origine----- > De : Les Newell <[email protected]> Envoyé : vendredi, 22 > novembre 2019 13:37 À : [email protected] > Objet : Re: [Emc-developers] announcement OpenCN, a new fork of > LinuxCNC > > Hi Raul, > > Why create a fork? Maintaining a project like this is a huge amount of > work and forking often results in a lot of duplicated work. LCNC is > very modular so it is possible to add a lot of functionality without > breaking existing code. If you work with the LCNC project you have > access to a lot of users and developers to help you with testing and > debugging. If you create a fork of your own you need to then build up > your own user base, which could take a long time. > > Les > > On 22/11/2019 07:32, Herzog Raoul wrote: > > dear Linux developers, > > > > I'm pleased to announce a new fork of LinuxCNC, called "OpenCN* : > > > > OpenCN is an open source numerical control (CNC) for high end > > machining > applications (high dynamics, high precision). > > > > OpenCN is originally based on LinuxCNC, but with strong enhancements : > > > > -) completely reworked trajectory planning (TP) including jerk > > control based on embedded optimization > > -) Xenomai asymmetric multiprocessing (AMP) for hard real time, low > > latency > > -) up to date Linux kernel > > -) EtherCat with 10 kHz frame rate and distributed clock (DC), mode > > B > > -) new Qt based GUI superseding "axis" > > > > The HW platforms are x86 (available) and ARM (in preparation). > > > > Software : > > gitlab.com/mecatronyx/opencnc/opencn<https://gitlab.com/mecatronyx/o > > pe > > ncnc/opencn> Doc : > > mecatronyx.gitlab.io/opencnc/doc/<https://mecatronyx.gitlab.io/openc > > nc > > /doc/> Youtube : > > www.youtube.com/channel/UC8FQCu_fKYfK7QRDN0j_dBw<https://www.youtube > > .c om/channel/UC8FQCu_fKYfK7QRDN0j_dBw> > > > > > > best regards, > > > > Raoul > > > > > > > > [http://correspondance.heig-vd.ch/assets/heig.png] > > > > Raoul Herzog > > Dr. > > > > Professeur > > Institut d'Automatisation Industrielle (iAi) Groupe mecatronYx Prof. : > > > > +41 24 557 61 93 > > > > Site web : > > > > http://www.iai.heig-vd.ch > > > > > > [email protected]<mailto:[email protected]> > > > > > > > > > > _______________________________________________ > > Emc-developers mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > > > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > > > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
