Как лень погрузила меня в мир пидров

Захотел я себе в проект компас, и не просто чтобы указывал в правильном направлении, а чтобы еще болтался, почти как настоящий.
Пока ехал в машине, начал было придумывать простенькую мат. модель, но решил, что наверняка люди уже сталкивались с подобным и где-то есть готовое решение. Зачем придумывать велосипед, подсказывала мне лень, гугл решит все задачи. Да, мля, пипец как помогло, сучья лень, в этот раз облажалась по полной.
В общем, с этого момента я отключил голову и включил обезьяну.

Играет знаменитая композиция "El Bimbo" - Поль Мариа
Играет знаменитая композиция "El Bimbo" - Поль Мариа

Код в общем простейший, внедряется моментально, но не учитывает ни особенности обработки кватернионов, ни особенности работы с углами Эйлера, с этим пришлось повозиться отдельно (помним, что голова выключена), чтобы найти ту самую точку, в которой нужно применить определение кратчайшей дистанции между двумя углами.
Чтобы внутренняя обезьяна наигралась, чтобы поймать работаюущую в моем случае модель - пришлось вытащить наружу шесть рычагов и манипулировать ими в реальном времени:
Три базовых коэффициента PID, два множителя, влияющих на время - тайминг PID, тайминг Lerp и величину лимита входящего в PID здачения.
В итоге, получив стабильно работающую систему, захардкодил значения, лишние характеристики удалил, почистил и получил элементарную работающую функцию.
В моем случае (благодаря Lepr на выходных данных), достаточно было просто накапливать данные в интеграле, фиксирующем набранную силу процесса, которая естественным образом затухает во времени без внешнего воздействия.Но с щепоткой ограничений на входящие данные, иначе система, превышая условно разумный лимит скорости, начинала биться головой об невидимые стены.
В итоге, конечно, задача решилась, работает все оптимально, практически не формирует никаких вычислений, но мля, на сколько быстрее я бы все это решил сам, просто накапливая углы с коэффициентом времени, как планировал изначально.
Так вот, с того момента, как я отключил голову, до получения рабочего результата ушло почти три дня (ну понятно я не только этой задачей занимался). Если бы сразу сел писать сам - ушло бы ну макс час на все, с прогулкой и чтением ДТФ.
Отсюда мораль, лень, может быть и двигатель прогресса, но обезьянам это не положено!

4
2 комментария