Commit Graph

24 Commits

Author SHA1 Message Date
4d03c4febc Further planner improvements and misc minor bug fixes. Memory savings and increased buffer size.
- Update grbl version and settings version to automatically reset
eeprom. FYI, this will reset your grbl settings. - Saved
3*BLOCK_BUFFER_SIZE doubles in static memory by removing obsolete
variables: speed_x, speed_y, and speed_z. - Increased buffer size
conservatively to 18 from 16. (Probably can do 20). - Removed expensive!
modulo operator from block indexing function. Reduces significant
computational overhead. - Re-organized some sqrt() calls to be more
efficient during time critical planning cases, rather than non-time
critical. - Minor bug fix in planner max junction velocity logic. -
Simplified arc logic and removed need to multiply for CW or CCW
direction.
2011-09-13 21:57:16 -06:00
ffcc3470a3 Optimized planner re-write. Significantly faster. Full arc support enabled by rotation matrix approach.
- Significant improvements in the planner. Removed or reordered
repetitive and expensive calculations by order of importance:
recalculating unchanged blocks, trig functions [sin(), cos(), tan()],
sqrt(), divides, and multiplications. Blocks long enough for nominal
speed to be guaranteed to be reached ignored by planner. Done by
introducing two uint8_t flags per block. Reduced computational overhead
by an order of magnitude.   - Arc motion generation completely
re-written and optimized. Now runs with acceleration planner. Removed
all but one trig function (atan2) from initialization. Streamlined
computations. Segment target locations generated by vector
transformation and small angle approximation. Arc path correction
implemented for accumulated error of approximation and single precision
calculation of Arduino. Bug fix in message passing.
2011-09-06 19:39:14 -06:00
ef20be9f4c result of G92 also affects planner 2011-02-21 22:32:42 +01:00
2c913a00bd acceleration-Grbl now works with atmega 168 by disabling arc motion 2011-02-20 22:13:31 +01:00
464dcd12e8 formatting 2011-02-19 00:32:36 +01:00
ff73645a14 cleanup, protected some more module variables as static 2011-02-12 00:03:58 +01:00
33f014aa74 eliminated an abstraction violation where motion_control needed position information from the planner (untested) 2011-02-11 23:01:16 +01:00
80afa2f403 formatting 2011-02-11 00:57:29 +01:00
480f898c2b eliminated the mc_line-method and replaced it with a macro forwarding calls directly to the planner (untested) 2011-02-11 00:53:00 +01:00
c42741032f Refactored line buffering to eliminate state from motion control and centralize tracking of position. UNTESTED: NEEDS TESTING 2011-02-06 23:23:34 +01:00
cdcc7bf86e cleaned up methods for enabling/disabling acceleration manger 2011-02-06 22:25:01 +01:00
dad9db1b02 formatting 2011-01-31 23:19:51 +01:00
4dbe7c4833 added high-level api-call for enabling or disabling the acceleration manager 2011-01-25 22:44:46 +01:00
49a16cb777 refactored block buffer into separate module motion_plan pending the addition of the actual look ahead planner 2011-01-14 16:45:18 +01:00
b628a4aabf added basic accelleration management with trapezoid accelleration profiles but no look ahead optimization (coming next patch) 2011-01-14 12:10:18 +01:00
898b4ca99d further refactoring debris extraction 2010-03-03 17:52:56 +01:00
e257fc195c support for helical motion 2009-02-11 00:37:33 +01:00
2992683c8d optimized for size and did some housekeeping 2009-02-08 22:08:27 +01:00
05bacc436e optimized for size, shaved 2k 2009-02-08 21:22:54 +01:00
50a9f78088 lots and lots of bugfixes after running on reals hardware for the first time 2009-02-03 09:56:45 +01:00
0c8004357a optimized arc code for size and speed 2009-01-30 11:05:10 +01:00
8c18e2659d motion control level support for arcs. No gcode yet 2009-01-29 23:12:06 +01:00
ac2e26fda9 added buffered stepping support and the rudiments of the arc-interpolator 2009-01-28 23:48:21 +01:00
9df29ad3b3 version 0.1 2009-01-25 00:48:56 +01:00