aaleksander писал(а):А где можно почитать про S-кривые и LookAHead?
А то как программист, помочь хочу, но в предметной области еще не очень разбираюсь.
Если вкратце и по простому, то:
Станок имеет массу и мгновенно ускоряться не может, он инертен, и моторы не всесильные, а это значит, что двигаться он может с ограниченным ускорением.
Для каждой оси - свое ограничение в зависимости от массы, подвижных частей и привода.
При все при этом, нельзя допустить ситуации, где одна ось успевает делать свою работу - а вторая отстает из за ограничения ускорения.
Т.е. расчет движения по траектории со ускорениями должен быть произведен заранее, с учетом ограничения всех осей.
Так вот, если все это дело сравнить с движением на автомобиле по криволинейной дороге, то Look Ahead - это дальность взгляда водителя.
Если водитель не представляет, что будет через 10 метров (густой туман), то он не может смело двигаться со скоростью 150 км/ч, т.к. в случае возникновения опасности или изменения траектории просто не успеет сбросить скорость.
Если же водитель наизусть помнит всю трассу (ну, или ближайшие несколько километров), то он сможет двигаться с максимальной допустимой скоростью на данной траектории так, что в кювет он не уедет и на ближайшем перекрестке сможет остановиться и повернуть.
Т.е. если буфер LookAhead маленький, то придется двигаться по траектории очень осторожно, а это потеря времени, и постоянные ускорения и замедления в начале и конце каждого маленького участка трассы.
На тему S кривых,
обычно станки двигаются с ограничением ускорений по осям так, что ускорение в каждый момент времени либо нулевое, либо максимальное, либо максимальное отрицательное.
Если сравнивать с автомобилями, то получается движение, как у троллейбуса - либо газ в пол, либо движение, либо торможение.
А вот движение с ускорением по S кривой - это плавное нажатие педали газа (не изменение скорости, а именно плавное изменение ускорения), и плавное нажатие и отпускание педали тормоза.
Хотя, можно двигаться, и как троллейбус, но все же нагрузка на механику будет меньше, если ускорение будет изменяться плавно.
Все бы хорошо, но если просто ограничить изменение ускорения получится рассогласование движения по осям.
Т.е. в итоге задача планировщика траектории состоит в том, чтобы так ограничить скорость движения на каждом участке траектории, чтобы скорость менялась плавно, а в случае с S-кривыми - еще и ускорение менялось плавно.