diff options
author | David Crocker <dcrocker@eschertech.com> | 2021-11-05 14:33:10 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2021-11-05 14:33:10 +0300 |
commit | 7bcb3af0392c5299bfe038fb540f23c6163976cf (patch) | |
tree | 64939677b5f5e25c9287dc26a101c575516b542c /src/Movement/Kinematics/FiveBarScaraKinematics.cpp | |
parent | bcc31b9df1d6a5748b78c2249e55d75c9a7e0fed (diff) |
Fixes to polar kinematics
A and F parameters didn't work because they were not converted from
seconds to step clocks
XY movement was not allowed unless Z was homed
Also added a default implementation of LimitSpeedAndAcceleration in the
Kinematics base class and removed the identical implementations from
RoundBedKinematics, ScaraKinematics and FiveBarScaraKinematics
Diffstat (limited to 'src/Movement/Kinematics/FiveBarScaraKinematics.cpp')
-rw-r--r-- | src/Movement/Kinematics/FiveBarScaraKinematics.cpp | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp index 3e1ff1e1..fe44440b 100644 --- a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp +++ b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp @@ -922,22 +922,6 @@ void FiveBarScaraKinematics::OnHomingSwitchTriggered(size_t axis, bool highEnd, } } -// Limit the speed and acceleration of a move to values that the mechanics can handle. The speeds in Cartesian space have already been limited. -void FiveBarScaraKinematics::LimitSpeedAndAcceleration(DDA& dda, const float *normalisedDirectionVector, size_t numVisibleAxes, bool continuousRotationShortcut) const noexcept -{ - //TODO should we make use of numVisibleAxes and/or continuousRotationShortcut? - // For now we limit the speed in the XY plane to the lower of the X and Y maximum speeds, and similarly for the acceleration. - // Limiting the angular rates of the arms would be better. - const float xyFactor = fastSqrtf(fsquare(normalisedDirectionVector[X_AXIS]) + fsquare(normalisedDirectionVector[Y_AXIS])); - if (xyFactor > 0.01) - { - const Platform& platform = reprap.GetPlatform(); - const float maxSpeed = min<float>(platform.MaxFeedrate(X_AXIS), platform.MaxFeedrate(Y_AXIS)); - const float maxAcceleration = min<float>(platform.Acceleration(X_AXIS), platform.Acceleration(Y_AXIS)); - dda.LimitSpeedAndAcceleration(maxSpeed/xyFactor, maxAcceleration/xyFactor); - } -} - // Return true if the specified axis is a continuous rotation axis bool FiveBarScaraKinematics::IsContinuousRotationAxis(size_t axis) const noexcept { |