От 3D-анимации к инженерному расчёту: что теперь умеет «Дубина»
В течение недели проект постепенно перестаёт быть просто красивой моделью движения роботизированной руки. Версия Dubina_1.3.2_work_area стала инструментом исследования рабочей области семиосевого механизма. Заданный объём разбивается на ячейки с выбранным шагом, после чего программа проверяет, может ли TCP (рабочая точка инструмента) попасть в центр каждой ячейки при разных направлениях инструмента. Результат отображается цветной картой на 3D-сцене.
Одновременно работает проверка FK→IK→FK. Прямая кинематика (FK) вычисляет положение и направление TCP по известным углам шарниров. Обратная кинематика (IK), наоборот, ищет углы, которые приведут инструмент в заданную точку с требуемой ориентацией. Повторный расчёт FK проверяет, совпало ли найденное решение с целью. Так выявляются недостижимые положения, скачки конфигурации, приближение к ограничениям и сингулярностям.
В Dubina_1.3.4_moments акцент перенесён на механику. Пользователь задаёт массы звеньев, шарниров, инструмента и груза. Для текущего положения руки программа определяет центры масс и рассчитывает статические моменты от силы тяжести. В основе — векторное произведение M = r × mg с проекцией результата на локальную ось шарнира. Самым нагруженным считается шарнир с максимальным |M|. На сцене отображаются направление момента и пять масс, дающих наибольший вклад.
Например, расчёт показал около 26 Н·м на β1. С коэффициентом динамичности 1,5 получаем ориентир около 40 Н·м — исходное требование для выбора двигателя и передачи.
Программа написана на Python. NumPy отвечает за матричные вычисления, SciPy - за численный поиск решения IK, интерфейс построен на PySide6, трёхмерная графика - на pyqtgraph/OpenGL.
Сейчас «Дубина» позволяет до изготовления деталей проверить кинематическую схему, сравнить геометрию, найти наиболее нагруженные узлы и перейти к подбору приводов, подшипников, передач и противовесов. Следующий шаг, расчёт динамики или проектирование шарнира β1?
Post #588
456


