Кремень КД Реклама
Кремень КМ Реклама

Scara-робот. Вторая итерация. Первые результаты

kavaynya
Идет загрузка
Загрузка
29.12.2019
8346
32
RepRap

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

25

Приветствую всех кто решил снова почитать о мои "приключениях".

В этот раз я не буду жаловаться на мир и всех кто мог оказаться виновным в моих неудачах. Меня ждал нынче успех. Вот и доказательства:

Scara-робот. Вторая итерация. Первые результаты Скачать видео

Scara-робот. Вторая итерация. Первые результаты

Уже стало немного интереснее? Появилась интрижка?

Начнем с начала. Нарисовал снова проект:

Scara-робот. Вторая итерация. Первые результаты

Приехал домой и собрал. Скачал Marlin. Настроил среду для редактирования и компилирования. Как раз вышел стабильный релиз, добавили кинематику MPSCARA. Решил проверить ее. Все паркуется, все ездит. Но она не подходит (там математика не скаравская, для ее использования требуется адаптировать конечный g-code через скрипт). Переключаюсь на MORGAN_SCARA, правлю немножечко код под REAL_SCARA из smothieware. Запускаю и все. Оси XY не паркуются, а Z гудит и дергается. (Видео не снял)

Ковыряюсь в коде пытаясь понять почему так ведет себя принтер. Ничего не выходит, там в этом коде все так запутано. Думаю, а добавлю-ка я туда свою кинематику, а не буду редактировать то что есть. А тут с этим еще хуже. Нельзя так просто взять и добавить туда свою кинематику, тебе надо еще научить прошивку с ней работать. И смотря на аналогию с имеющейся для MORGAN_SCARA, я плюнул на Marlin и забил как на страшный сон.

Осталась SmoothieWare. С ней у меня было меньше проблем. Здесь тебе и поддержка real_scara (то что нужно) и инструменты для настройки и калибровки ScarЫ (в Marlin тоже есть команды для калибровки, но не такие удобные), все движки работают правильно и парковка работает. Благодать. Приступил к настройке конфига. Я и так эти параметры меняю и эдак, но результат не соответствует ожиданиям. Как будто область печати совсем не там где я хочу.

Полез в google в поисках истины. Нахожу для примера такое видео:

Scara-робот. Вторая итерация. Первые результаты Скачать видео

Здесь парень показывает как его робот печатает. Использует модифицированный Marlin. Лезу в его исходник:

Scara-робот. Вторая итерация. Первые результаты

Right handed? Значит у меня леворукая скара? Не проблема. Сделаем ее праворукой. Печати-то на пару часов.

Scara-робот. Вторая итерация. Первые результаты

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

Scara-робот. Вторая итерация. Первые результаты

Играюсь с параметрами всяко разно, вроде подобрал. По таблице все получается, но в реальности принтер работает не правильно. Ну что же я делаю не так?

Выход один надо разобраться в вопросе подробнее. Вспоминаем тригонометрию

Scara-робот. Вторая итерация. Первые результаты

Угол увеличивается при движении против часовой стрелки. А у меня? А меня по часовой стрелке. Причем обе руки. Правим конфиг на смену направлений парковки и о чудо, принтер стал работать предсказуемо, но не так как предполагается. Необходимо разобраться откуда какой угол отсчитывается и все такое и попадаются мне такие видео:

Scara-робот. Вторая итерация. Первые результаты Скачать видео

Scara-робот. Вторая итерация. Первые результаты Скачать видео

Очень доходчиво все объяснено.

Пытаюсь ориентировать свой принтер на координатной плоскости:

Scara-робот. Вторая итерация. Первые результаты

Уже стало понятнее, перенесем это на схему:

Scara-робот. Вторая итерация. Первые результаты

И после этого ко мне пришло окончательно понимание работы этой кинематики. Видно, что после парковки угол Theta (он же мотор Х) должен иметь отрицательное положение и это его минимальное положение, а угол Psi (он же мотор Y) стремится к 180 градусам, но там стоит концевик и поэтому данный угол является максимальным.

Осталось поправить конфиг. Но возникло одно пара НО!. X паркуется в свое минимальное положение, но при этом имеет свое максимальное положение на координатной плоскости, пришлось сделать так:

alpha_homing_direction   home_to_min   alpha_min                           212alpha_max                          -10

beta_homing_direction    home_to_max beta_min                            180beta_max                           -38

Вот теперь то все и заработало. Руки движутся туда куда и должны и все работает предсказуемо. Осталось откалибровать и пробовать печатать.

Калибровка здесь не сложная (ориентировался по этой инструкции ссылка)

Посылаем команду:

M360

Принтер паркуется и принимает положение при котором X рука занимает нулевой положение и должно быть параллельно оси OX, если это не так, то перемещая по Y (Y+ / Y-) добиваемся параллельности. Когда все готово вводим команду

M360 P0

и принтер сам вычисляет и сохраняет полученное значение.

Таким образом мы настроили отступ от концевика для X, который будет применятся после каждой парковки. Для Y действия аналогичны, только используются команды

M364

M364 P0

Если вы не уверены в посчитанных шагах на градус, то это тоже можно настроить. Для X используются команды

M361 и M361 P0

рука займет положение в 90 градусов и требуется перемещением Y+/Y- настроить точность положения, вторая команда сама пересчитает шаги и сохранит в памяти. Для Y аналогично

M363.1 и M363 P0

После настройки шагов откалибруйте отступы для X Y заново.

И на этом все. Осталось сохранить изменения на карте командой

M500

По указанной выше ссылке еще написано применить команду

M366

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

Перейдем к первой печати (это самое первое видео в статье). Это был самая первая попытка что-либо напечатать. И каково было мое удивление, когда вместо прямых линий получились дуги.

Scara-робот. Вторая итерация. Первые результаты

С ребристостью стенок все и так стало понятно при печати. Жесткости не хватает. Подшипники люфтят, ремни натянуты слабо, рельса по которой перемещается тоже люфтит. Но вот дуг вместо линий я не ожидал.

Сперва подумал на не точно измеренные длины рук, но отбросил это. Проблема крылась в другом. Я забыл про параметр

mm_per_line_segment                0.2

который делит прямую линию на короткие отрезки, то что нужно для нелинейных кинематик.

Scara-робот. Вторая итерация. Первые результаты Скачать видео

Scara-робот. Вторая итерация. Первые результаты

Scara-робот. Вторая итерация. Первые результаты

Scara-робот. Вторая итерация. Первые результаты

Стало немного лучше. По размерам соответствует, но по геометрии проблемы. Надо перепроверить длинны рук, может еще что-нибудь.

С жесткостью бороться можно лишь полностью переделав принтер. Это один самых интересных этапов, но сперва следует найти качественные подшипники. Продумать конструкцию, а не как в этот раз.

Если порассуждать, то можно найти много достоинств ScarЫ перед другими видами принтеров.

Желаю себе удачи, а вас с Наступающим Новым Годом.

Scara-робот. Вторая итерация. Первые результатыScara-робот. Вторая итерация. Первые результатыScara-робот. Вторая итерация. Первые результатыScara-робот. Вторая итерация. Первые результатыScara-робот. Вторая итерация. Первые результатыScara-робот. Вторая итерация. Первые результаты

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

25
Комментарии к статье