Перейти к публикации

Рекомендованные сообщения

Добрый вечер, товарищи!

 

Столкнулся с проблемой, необходимо создать на валу (наплавить) спираль шнека.

Имею: робот который перемещается в декартовой системе координат и внешнюю ось (вращатель, он же позиционер), знаю геометрию изделия.

 

Возможно, кто-то даст совет как синхронизировать перемещение позиционера и робота (робот выполняет прямолинейное движение, горелка расположена под 90 град к поверхности изделия и угол

положения горелки в процессе наплавки не меняется, вращатель соответственно в этот момент вращается)))

 

Буду благодарен, за дельный совет!

cladding1.png

helix1.png

helix.png

Cladding.png

Ссылка на сообщение
Поделиться на других сайтах


Попробую дать несколько "дельных" советов.

 

1. Внешняя поворотная ось позиционера должна быть однозначно увязана с осями собственно робота. Настройка этой увязки может быть разной, в зависимости от того, как определить базовую систему координат на заготовке. Иными словами - как робот будет отслеживать поворот внешней оси? С поворотом горелки (сохранение ориентации по отношению к поворотной оси)? Или же будет сохраняться только точка ("гвоздиком" прибитая к определенной точке пространства), а поворота не будет? 

2. Как минимум, внешняя поворотная ось должна быть синхронизирована по времени отработки с осями робота - то есть перемещение робота в заданную точку и поворот внешней оси должны произойти за одно и то же время (типа G1 линейного перемещения)

3. А дальше - только постпроцессор, в зависимости от  пункта один будет выводить те или иные значения для осей робота.

 

Я делал почти то, что описано в вопросе темы, с той лишь разницей, что это был 2-осевой поворотный стол. В моем случае система координат была на столе, и робот сохранял неизменным положение инструмента при поворотах стола ПО ОТНОШЕНИЮ К ДЕТАЛИ. Поэтому, для того, чтоб сопло было всегда вертикальным - пришлось вводить в постпроцессор компенсацию.. 

 

Robot.gif

Наплавка.jpg

Ссылка на сообщение
Поделиться на других сайтах

Спасибо Вам за ответ!

 

Внешняя ось полностью синхронизирована с осями робота (движение SMOV робота со скоростью перемещение робота "То есть перемещение робота в заданную точку и поворот внешней оси должны произойти за одно и то же время").

 

У меня вопрос несколько в другом (прилагаю схемку), как можно математически просчитать на сколько надо повернуть внешнюю ось чтобы робот перешел из точки 2, например в т.3 ? Их движение синхронизировано (перемещение робота в заданную точку и поворот внешней оси должны произойти за одно и то же время) скорость перемещения робота составляет , например, 50 см/мин, инструмент находится под 90 град к поверхности изделия (угол его положения не изменяется).

 

Мне хотелось бы (приложил рисунок) узнать координаты (я понимаю так, что перемещение робота будет происходить вдоль одной оси, например, ось Х  и поворота внешней оси в град; для точки 1 x = 0; y = 0; z = 0; α = 0 °; точки 2 x= +100; y= 0; z = 0; α = 0 °; точки 3 x = ?; y = 0; z = 0; α = ? ° ) некоторого количества точек, чтобы можно было задать траекторию этой кривой, затем с помощью некоторых команд я мог бы задать первый слой...

 

Никакой САМ системы нету и не предвидится, поэтому прошу Вашей помощи. 

post.png

Ссылка на сообщение
Поделиться на других сайтах

Тогда очень просто. Есть вектор (0,1,0) который соответствует нулевому положению поворотной оси. Далее - нужно высчитать вектор в точку 2 от ее же проекции на поворотную ось, он будет что-то вроде (-0.056784, 0.9834534,0). Скалярное произведение этих двух векторов (приведенных к единичным), аркосинус от него - и вот ты уже знаешь угол. А дальше точку 2 надо повернуть на этот угол  и туда отправить робота. Элементарно. Если у тебя 2-3 точки - справишься. Если 200-300 - подумай, все-таки, о постпроцессоре...

Ссылка на сообщение
Поделиться на других сайтах
49 минут назад, Ug_user сказал:

Тогда очень просто. Есть вектор (0,1,0) который соответствует нулевому положению поворотной оси. Далее - нужно высчитать вектор в точку 2 от ее же проекции на поворотную ось, он будет что-то вроде (-0.056784, 0.9834534,0). Скалярное произведение этих двух векторов (приведенных к единичным), аркосинус от него - и вот ты уже знаешь угол. А дальше точку 2 надо повернуть на этот угол  и туда отправить робота. Элементарно. Если у тебя 2-3 точки - справишься. Если 200-300 - подумай, все-таки, о постпроцессоре...

Я извиняюсь))) можно поподробнее если это не затруднит "Есть вектор (0,1,0) который соответствует нулевому положению поворотной оси. Далее - нужно высчитать вектор в точку 2 от ее же проекции на поворотную ось, он будет что-то вроде (-0.056784, 0.9834534,0). Скалярное произведение этих двух векторов (приведенных к единичным)"

 

Если брать в декартовых координатах в SolidWorks

Положение точки 1 X = 26,0; Y = 3,0; Z = -8,0; Положение точки 2 X = 24,5; Y = 8,5; Z = 3,5 

post1.png

Изменено пользователем strogonovd94
дополнить
Ссылка на сообщение
Поделиться на других сайтах

Тогда уж и положение оси вращения в пространстве нужно знать.

 

Первый вектор (26.0, 3.0) Длина вектора 26.1725, нормированный вектор (0.993409, 0.114624) это для точки 1

Вектор нуля поворотной оси - (1.0, 0.0)

Скалярное произведение одного на другой = 0.993409, угол поворотной оси в эту точку 6.582 градуса

 

Вторая точка (24.5, 8.5), нормированный 25.9326 (0.944757, 0.327772), Угол 19.133

Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое! я разобрался как посчитать)

Координаты которые я даю роботу это: т. 1  x = 26,0; y = 3,0; z = 0; α = 6,582; т. 2  x = 24,5; y = 8,5; z = 0; α = 19,133, я правильно понял (со знаками думаю разберусь)?

Не совсем понял зачем в точке 1 нужен поворот внешней оси на 6,582 град если это начальная точка и угол поворота внешней оси в этой точке должен был равняться нулю?

 

При правильном подсчете должно получиться нечто похожее?
 

 

post 2.png

Ссылка на сообщение
Поделиться на других сайтах

Потому что 0 поворотной оси будет проходить через точку Y=0.0

Я бы так сделал. Иначе для 3 точки будешь угол от 1-й считать.

И координаты роботу ты дашь другие - после поворота оси на рассчитанный угол. Х станет как корень из суммы квадратов X Y, Y=0. Z не изменится

Ссылка на сообщение
Поделиться на других сайтах

@Ug_user Извините, что так много дурацких вопросов - просто хочу разобраться, не хватает знаний, чтобы самостоятельно решить проблему)

"Тогда уж и положение оси вращения в пространстве нужно знать.

Первый вектор (26.0, 3.0) Длина вектора 26.1725, нормированный вектор (0.993409, 0.114624) это для точки 1

Вектор нуля поворотной оси - (1.0, 0.0)

Скалярное произведение одного на другой = 0.993409, угол поворотной оси в эту точку 6.582 градуса

Вторая точка (24.5, 8.5), нормированный 25.9326 (0.944757, 0.327772), Угол 19.133"

 

Почему Вы при нахождении длины вектора |1|=√x^2+y^2+z^2; и  нормированного вектора 1'= x/√x^2+y^2+z^2; y/√x^2+y^2+z^2; z/√x^2+y^2+z^2 не брали в учет координату z, ведь она же тоже изменяется (по крайней мере, у меня, когда я нахожу координаты точек на  кривой в SolidWorks)?

 

"И координаты роботу ты дашь другие - после поворота оси на рассчитанный угол. Х станет как корень из суммы квадратов X Y, Y=0. Z не изменится"

 

Я же беру только координату Х ? (которую я задаю для перемещения робота), так как робот будет перемещаться только вдоль одной оси, но почему √x^2+y^2, а не √x^2+y^2+z^2 ?

 
При нахождении угла поворота в данную точку (относительно оси Х?), я использую координату х нормированного вектора (0.993409; 0.114624; 0) и от нее нахожу arccos, другие координаты y,z нормированного вектора я никак не использую?

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...