История изменений
Исправление Yampp, (текущая версия) :
Hint: если использовать Cortex M4 (stm32f303), то там есть SIMD-инструкция SMUAD, очень удобная для интерполирования скорости по полиномам 3-го порядка, т.е. как раз для jerk-limited. Считать надо будет в fixed-point.
Hint: если построить 4-мерную кривую Безье в пространстве-времени, причем разместить вторую и третью контрольные точки по оси времени на 1/3 от концов, то физический смысл пространственных координат этих точек будет начальной и конечной скоростью движения, а сама кривая будет описывать правильное движение с ограничением на скорость, ускорение и рывок. Алгоритмом де Кастельжо на Cortex M4 это можно интерполировать вплоть до >100 кГц по 6 осям одновременно.
Движение по такому алгоритму плавнее и точнее, чем при разбиении на три участка разгон-круиз-торможение. На этапе планирования траектории может потребоваться разбиение на 7 участков (начало разгона, разгон, конец разгона, круиз и т.д.), поскольку мы ограничиваем не только ускорение, но и рывок.
Исправление Yampp, :
Hint: если использовать Cortex M4 (stm32f303), то там есть SIMD-инструкция SMUAD, очень удобная для интерполирования скорости по полиномам 3-го порядка, т.е. как раз для jerk-limited. Считать надо будет в fixed-point.
Hint: если построить 4-мерную кривую Безье в пространстве-времени, причем разместить вторую и третью контрольные точки по оси времени на 1/3 от концов, то физический смысл пространственных координат этих точек будет начальной и конечной скоростью движения, а сама кривая будет описывать правильное движение с ограничением на скорость, ускорение и рывок. Алгоритмом де Кастельжо на Cortex M4 это можно интерполировать вплоть до >100 кГц по 6 осям одновременно.
Исходная версия Yampp, :
Hint: если использовать Cortex M4 (stm32f303), то там есть SIMD-инструкция SMUAD, очень удобная для интерполирования скорости по полиномам 3-го порядка, т.е. как раз для jerk-limited. Считать надо будет в fixed-point.