Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
guide:junction_speed:start [01/06/2018 13:49] Simone Persiani |
guide:junction_speed:start [03/06/2018 22:09] (versione attuale) Simone Persiani |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
====== Junction Speed ====== | ====== Junction Speed ====== | ||
- | --- //[[iosonopersia@gmail.com|Simone Persiani]] 26/05/2018 13:00// | + | //Autore: [[iosonopersia@gmail.com|Simone Persiani]]// |
==== Introduzione ==== | ==== Introduzione ==== | ||
- | I progetti ''Marlin'' ed ''MK4duo'', a partire rispettivamente dalle versioni ''1.1.9'' e ''4.3.6'', hanno introdotto un nuovo algoritmo nel tentativo di superare l'ormai datato **Jerk Limiting**. Tale gestione non ha mai convinto del tutto gli sviluppatori di Marlin e ha causato loro molti grattacapi nel corso degli anni. Nel tentativo di superare tale algoritmo si sono ispirati ai codici sorgente di [[http://reprap.org/wiki/Grbl#Grbl|Grbl]], un ben noto firmware per la gestione di macchine CNC, ottenendo e migliorando il **Junction Deviation** (il tutto nel pieno rispetto delle licenze associate a tale prodotto). Ricordiamo che Marlin stesso è nato nell'agosto del 2011 proprio come fork di [[http://reprap.org/wiki/Grbl#Grbl|Grbl]] e di [[http://reprap.org/wiki/List_of_Firmware#Sprinter|Sprinter]]. | + | I progetti [[https://marlinfw.org|Marlin]] ed ''MK4duo'', a partire rispettivamente dalle versioni ''1.1.9'' e ''4.3.6'', hanno introdotto un nuovo algoritmo nel tentativo di superare l'ormai datato [[guide:junction_speed:jerk_limiting|Jerk Limiting]]. Tale gestione non ha mai convinto del tutto gli sviluppatori di [[https://marlinfw.org|Marlin]] e ha causato loro molti grattacapi nel corso degli anni. Nel tentativo di superare tale algoritmo si sono ispirati ai codici sorgente di [[http://reprap.org/wiki/Grbl#Grbl|Grbl]], un ben noto firmware per la gestione di macchine CNC, ottenendo e migliorando il [[guide:junction_speed:junction_deviation|Junction Deviation]] (il tutto nel pieno rispetto delle licenze associate a tale prodotto). Ricordiamo che [[https://marlinfw.org|Marlin]] stesso è nato nell'agosto del 2011 proprio come fork di [[http://reprap.org/wiki/Grbl#Grbl|Grbl]] e di [[http://reprap.org/wiki/List_of_Firmware#Sprinter|Sprinter]]. |
<WRAP center round info 100%> | <WRAP center round info 100%> | ||
- | Tali algoritmi (l'uno alternativo all'altro) si rendono necessari nel momento in cui il ''planner'' (il modulo software che si occupa dell'ottimizzazione dei movimenti della macchina) si trova a dover scegliere con quale velocità far terminare un blocco e cominciare il successivo, ovvero la **Junction Speed** (velocità di giunzione tra spostamenti successivi). | + | Tali algoritmi (l'uno alternativo all'altro) si rendono necessari nel momento in cui il ''planner'' (il modulo software che si occupa dell'ottimizzazione dei movimenti della macchina) si trova a dover scegliere con quale velocità far terminare un blocco e cominciare il successivo, ovvero la ''Junction Speed'' (velocità di giunzione tra spostamenti successivi). |
</WRAP> | </WRAP> | ||
Linea 18: | Linea 18: | ||
È quindi possibile definire nel firmware le accelerazioni massime per ciascun asse (compresi gli estrusori!) in base alla loro **inerzia** (nel linguaggio comune diremmo //lentezza// e/o //pesantezza//). Tali accelerazioni definiscono la rapidità con cui l'attuale velocità di un asse possa essere variata per raggiungere una velocità target. **In questo modo gli spostamenti pianificati dalla macchina possono essere modellati tenendo correttamente in considerazione anche le masse in movimento.** | È quindi possibile definire nel firmware le accelerazioni massime per ciascun asse (compresi gli estrusori!) in base alla loro **inerzia** (nel linguaggio comune diremmo //lentezza// e/o //pesantezza//). Tali accelerazioni definiscono la rapidità con cui l'attuale velocità di un asse possa essere variata per raggiungere una velocità target. **In questo modo gli spostamenti pianificati dalla macchina possono essere modellati tenendo correttamente in considerazione anche le masse in movimento.** | ||
- | Il ''planner'' si occupa inoltre di concatenare gli spostamenti in modo che la velocità con cui termina un blocco sia la stessa di quella con cui comincia il blocco successivo (<m>\vec{v^{i}}_{finale}=\vec{v^{i+1}}_{iniziale}</m>), con lo scopo di rendere più "fluido" il passaggio da uno spostamento all'altro. La scelta della **Junction Speed** non è così scontata come potrebbe apparire ad una prima analisi ed è un fattore critico in grado di produrre effetti apprezzabili sui tempi di stampa. | + | Il ''planner'' si occupa inoltre di concatenare gli spostamenti in modo che la velocità con cui termina un blocco sia la stessa di quella con cui comincia il blocco successivo (<m>\vec{v^{i}}_{finale}=\vec{v^{i+1}}_{iniziale}</m>), con lo scopo di rendere più "fluido" il passaggio da uno spostamento all'altro. La scelta della ''Junction Speed'' non è così scontata come potrebbe apparire ad una prima analisi ed è un fattore critico in grado di produrre effetti apprezzabili sui tempi di stampa. |
==== Il jerk ==== | ==== Il jerk ==== | ||
Linea 35: | Linea 35: | ||
* <wrap em>[[guide:junction_speed:junction_deviation|Junction Deviation]] (nuovo)</wrap> | * <wrap em>[[guide:junction_speed:junction_deviation|Junction Deviation]] (nuovo)</wrap> | ||
- | --- //[[iosonopersia@gmail.com|Simone Persiani]] 26/05/2018 13:00// | + | //Autore: [[iosonopersia@gmail.com|Simone Persiani]]// |
- Ultima modifica: 01/06/2018 13:49
- da Simone Persiani