
Мені давно хочеться зайнятися створенням роботів, але завжди не вистачає вільних грошей, часу або місця. З цього я зібрався писати їх віртуальні моделі!
Потужні інструменти, що дозволяють це робити, або складно стикуються зі сторонніми програмами (
Modelica), або проприетарны (Wolfram Mathematica, різні САПР), і я вирішив робити велосипед на
Julia. Потім всі напрацювання можна буде зістикувати з сервісами
ROS.
Будемо вважати, що наші роботи рухаються досить повільно і їх механіка знаходиться в стан з найменшою енергією, при обмеженнях, заданих конструкцією і сервоприводами. Таким чином нам досить вирішити задачу оптимізації в обмеженнях, для чого знадобляться пакети "
JuMP" (для нелінійної оптимізації йому знадобиться пакет "
Ipopt", який не вказаний в залежностях (замість нього можна використовувати власні бібліотеки, але я хочу обмежиться вільними) і повинен бути встановлений окремо). Вирішувати диференціальні рівняння, як в Modelica, ми не будемо, хоча для цього є достатньо розвинені пакети, наприклад "
DASSL".
Управляти системою ми будемо використовуючи реактивне програмування (бібліотеки "
Reactive"). Малювати у блокноті (Jupyter), для чого потрібні "
IJulia", "
Interact" і "
Compose". Для зручності ще знадобиться "
MacroTools".
Читати далі →