Вопросы по модулям кинематики

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Вопросы по модулям кинематики

Сообщение tegauss »

Всем привет.

Пытаюсь оживить одну железку (пятиосевой координатный стол) с помощью linuxcnc, и вот возник вопрос.

Почитав это, выяснил, что существуют "part coordinates" (положение и ориентация инструмента в системе координат заготовки, 6 чисел) и "machine coordinates" (положения осей станка, в моём случае 5 чисел). Также, как оказалось, в linuxcnc существуют модули кинематики, которые решают задачи прямого и обратного преобразования между этими наборами координат.

Суть вопроса: а зачем тогда нужен постпроцессор cam'а? Он же занимается тем же самым. Выходит, можно обойтись без него? Как, в таком случае, будут выглядеть g коды? Верно ли я понимаю, что на вход linuxcnc можно подавать положение и ориентацию инструмента, и он сам будет все пересчитывать?

Помогите, пожалуйста, разобраться.
Аватара пользователя
Sabaka
Кандидат
Сообщения: 80
Зарегистрирован: 22 янв 2014, 23:10
Репутация: 6
Откуда: Мытищи
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение Sabaka »

Постпроцессор это индивидуальный сценарий записи генерации УП с учететом особенностей станка, поэтому он для каждой машины свой. Попросту говоря это автоматический способ записи просчитанной траекторий.
Можно и без него, просто руками вписать все передвижения. Но если там несколько тысяч строк то я вам не завидую. Выглядеть будут точно также, ибо никакой разницы. Нет, вы должны сами настроить свой станок а потом создавать под него программы обработки.
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

Sabaka писал(а):Постпроцессор это индивидуальный сценарий записи генерации УП с учететом особенностей станка, поэтому он для каждой машины свой. Попросту говоря это автоматический способ записи просчитанной траекторий.
Можно и без него, просто руками вписать все передвижения. Но если там несколько тысяч строк то я вам не завидую. Выглядеть будут точно также, ибо никакой разницы. Нет, вы должны сами настроить свой станок а потом создавать под него программы обработки.
Честно сказать, не увидел в вашем сообщении ответа на свой вопрос. Вопрос заключается не в том, зачем вообще нужен постпроцессор, а в том, зачем постпроцессор cam'а и модули кинематики linuxcnc решают одну и ту же задачу.

Попытаюсь сформулировать ещё раз. Вот создал я операцию обработки. После этого cam сгенерировал управляющую траекторию (файлик, где каждая строчка описывает положение и ориентацию инструмента в различные моменты времени). После этого я нажимаю кнопочку "постпроцессировать", и постпроцессор превращает управляющую траекторию в g коды для моего конкретного станка. При этом происходит переход от "part coordinates" к "machine coordinates".

Но linuxcnc и сам умеет делать то же самое с помощью модулей кинематики, которые умеют в том числе решать обратную задачу по положению. Зачем тогда постпроцессор cam'а?
Аватара пользователя
Sabaka
Кандидат
Сообщения: 80
Зарегистрирован: 22 янв 2014, 23:10
Репутация: 6
Откуда: Мытищи
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение Sabaka »

Вы про мастера что ли? Я что то не понял что такое "модуль кинематики".
Если все же про мастера то например это они могут сделать? И это еще простейшая задача.
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

Sabaka писал(а):Вы про мастера что ли? Я что то не понял что такое "модуль кинематики".
Если все же про мастера то например это они могут сделать? И это еще простейшая задача.
Я вот про это говорю. Не знаю, что такое "мастер".
Аватара пользователя
Sabaka
Кандидат
Сообщения: 80
Зарегистрирован: 22 янв 2014, 23:10
Репутация: 6
Откуда: Мытищи
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение Sabaka »

Теперь понятно, я тут пас)
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

Sabaka писал(а):Теперь понятно, я тут пас)
Обидно. Ну, спасибо, что хотя бы попытались помочь ;) Надеюсь, кто-нибудь все-таки что-нибудь подскажет по теме..
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение nkp »

tegauss писал(а): Вопрос заключается не в том, зачем вообще нужен постпроцессор, а в том, зачем постпроцессор cam'а и модули кинематики linuxcnc решают одну и ту же задачу.
Давай представим , что это действительно так,и "выкинем" постпроцессор(ПП) кама ...
возьмем для примера контур окружности 50мм :

Код: Выделить всё

f200
g1 z-2
g2 x50 y0 z-2 r25 
g2 x0 y0 z-2 r25 
m2
ведь примерно такой код должен выдать кам без ПП ?
задача "пройти" данный контур инструментом ,допустим,не перпендикулярно XY,а под углом 45гр ...
имея 5осевой станок с соответствующеей кинематикой - как мы будем "объяснять" ему задачу "про градусы"??
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение MIX »

Постпроцессор в общем случае не занимается преобразованием part coordinates в mashine coordinates. Он занимается преобразованием траектории движения инструмента рассчитанных в CAM программе (обычно это набор кривых) в программу в виде G кода с учетом особенностей станка. А иногда дополнительно и симуляцией обработки для проверки ошибок.
Модуль кинематики в LinuxCNC занимается преобразованием G кода в последовательность позиций осей станка т.к. G код не учитывает кинематику оборудования, а задает все позиции в декартовых (реже цилиндрических) системах координат.
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

nkp писал(а):

Код: Выделить всё

f200
g1 z-2
g2 x50 y0 z-2 r25 
g2 x0 y0 z-2 r25 
m2
ведь примерно такой код должен выдать кам без ПП ?
Насколько понимаю, нет. Без ПП кам выдаст нам управляющую траекторию, которая будет выглядеть примерно так (каждая строчка -- {x, y, z, i, j, k}, т.е. позиция и ориентация инструмента):

Код: Выделить всё

GOTO/33.1882,-37.8934,-23.4485,0.8319471,0.4716399,0.2922668
GOTO/33.8394,-37.3805,-23.8983,0.8305451,0.4690511,0.3003096
GOTO/34.4748,-36.8607,-24.3263,0.8292259,0.4662779,0.3081711
GOTO/35.0885,-36.3372,-24.7357,0.8279928,0.4633176,0.3158556
...
MIX писал(а): а задает все позиции в декартовых (реже цилиндрических) системах координат.
А вот это уже похоже на то, в чем я не могу никак разобраться.

В качестве кама для пятиосевой обработки я пробовал только Siemens NX, так что дальнейшие рассуждения относятся только к нему.

Возьмем вот такой станок (кинематика xyzbc-trt):
Безымянный.png (3139 просмотров) <a class='original' href='./download/file.php?id=86513&mode=view' target=_blank>Загрузить оригинал (53.28 КБ)</a>
Этот станок -- один из примеров, встроенных в NX. Полагаю, нет причин опасаться, что в кинематике и ПП для него есть ошибки.

Так вот, для такого станка ПП NX'а генерирует следующий код:

Код: Выделить всё

N1 G40 G17 G90 G49 G21
N2 (VARIABLE_STREAMLINE)
N3 G91 G28 Z0.0
N4 G91 G28 X0.0 Y0.0
N5 G90 G53 G00 B0.0 C0.0
:6 T10 M06
N7 G97 G90 G54
N8 B90. C29.972
N9 G43.4 H10 S2228 M03 M08
N10 G94 G90 X-409.602 Y-50.115 Z-73.461
N11 Z-95.686
N12 G01 X-408.799 Y-50.099 Z-97.227 F1203.
N13 X-407.558 Y-50.075 Z-98.445
N14 X-406.002 Y-50.045 Z-99.219
N15 X-404.282 Y-50.011 Z-99.474
N16 X-402.568 Y-49.978 Z-99.186
N17 X-400.253 Y-49.962 Z-96.462 B89.442 C29.961
N18 X-397.892 Y-49.943 Z-93.791 B88.88 C29.948
N19 X-395.425 Y-49.926 Z-91.113 B88.299 C29.936
N20 X-392.85 Y-49.912 Z-88.438 B87.698 C29.927
Если, как вы говорите, все позиции в декартовых (или цилиндрических) системах координат, то что такое "B" и "С" в этой программе (например, в строчке номер 17)? Или это какой-то неправильный постпроцессор?

PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход только лишь управляющую траекторию, то есть строчки вида (каждая строчка -- {x, y, z, i, j, k}, т.е. позиция и ориентация инструмента):

Код: Выделить всё

70.0 -84.457079824 -9.41341750695 0.115910874739 -0.411625127573 0.903952113482
70.0 -83.520943478 -8.98713691409 0.115910874739 -0.411625127573 0.903952113482
70.0 -83.3405477996 -8.90437321341 0.116369116731 -0.407514079418 0.905754107773
70.0 -82.4024835569 -8.48232225828 0.116369116731 -0.407514079418 0.905754107773
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение nkp »

tegauss писал(а):PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход только лишь управляющую траекторию,
ну вот некоторым только теперь стал ясен вопрос :)
не_G-код можно скормить емс , только для этого нужно будет написать фильтр,
тут же учесть и кинематику - в итоге,имхо,равноценно ПП в кам...
или "интерпретатор" родной минуем?
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

nkp писал(а):
tegauss писал(а):PS Вообще, конечная моя задача заключается в том, что я хочу понять, можно ли управлять linuxcnc подавая ему на вход только лишь управляющую траекторию,
ну вот некоторым только теперь стал ясен вопрос :)
Да, простите, надо было сразу задачу описать полностью :D
nkp писал(а):не_G-код можно скормить емс , только для этого нужно будет написать фильтр,
тут же учесть и кинематику - в итоге,имхо,равноценно ПП в кам...
или "интерпретатор" родной минуем?
На самом деле, никакого кам'а и нет. Есть ручками написанный генератор управляющей траектории. Сейчас просто пытаюсь понять, как все по уму должно работать.

Вроде бы, все постепенно начинает проясняться. Скажите пожалуйста, правильно ли я понимаю, что "A", "B" и "C" в g кодах -- это не углы поворота поворотных осей станка, а углы поворота системы координат инструмента относительно глобальной?
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение MIX »

Боюсь, что в G кодах А,В,С это всетаки больше углы поворота осей относительно систем координат, заданных в G54, G55,... Кроме редких частных случаев.
Именно поэтому, в первую очередь, и нужна предварительная обработка траектории постпроцессором.
Основная задача постпроцессора как раз и состоит в том, чтобы имея на входе траекторию инструмента/детали и кинематику станка, преобразовать траекторию в позиции осей.
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

Сделал в итоге так: "ПП" генерирует код вида:

Код: Выделить всё

X23.1721884152 Y190.234242986 Z3.46313752118 A-24.7688082793 B7.25088852044
X23.1734167631 Y190.583283043 Z2.03538056347 A-23.7382717197 B7.25965787487
X23.1734167631 Y190.730462848 Z2.03538056345 A-23.7382717197 B7.25965787487
X23.173432607 Y193.413973852 Z2.03473530193 A-23.7378240745 B7.25977100485
В этом коде все числа -- "machine coordinates". В качестве модуля кинематики использовал trivkins. Вроде работает, хотя, очень вероятно, способ кривой.

https://www.youtube.com/watch?v=t517yuKGmoM
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение MIX »

А где G0, G1, G2, G3, F..., M3, M5 ?
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

MIX писал(а):А где G0, G1, G2, G3, F..., M3, M5 ?
Если полностью, то вот так:

Код: Выделить всё

G01 F600
X33.9364917526 Y174.974538718 Z107.425934663 A-27.690967294 B6.9947299066
...
X23.1361408358 Y174.974538719 Z8.01088338782 A-27.690967294 B6.9947299066
M30
Задача пока что состоит только в том, чтобы пройти по траектории. А шпинделя просто нет :D
umerov
Кандидат
Сообщения: 83
Зарегистрирован: 18 янв 2012, 21:22
Репутация: 21
Откуда: Украина
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение umerov »

Правильнее по другому, постпроцесор генерирует код траекториии конца фрезы (RTCP). Координаты A B C - (это НЕ машинные координаты - это углы наклона фрезы относительно конца инструмента) - кинематика linuxcnc преобразует угла наклона фрезы в движение осей также учитывает и смену инструмента, в g-коде только одна сторка T1M6 - все остальное должен делать linuxcnc. Без RTCP - пришлось бы каждый раз менять постпроцессор если изменилась длина фрезы.
С RTCP - gcode для 5-и осевого станка будет не зависим от конкретного станка - всегда будет выполнятся одинакого (правда без учета ограничений осей )

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

Вот разница в траектории с активной и не активной RTCP
RTCP.PNG (3070 просмотров) <a class='original' href='./download/file.php?id=86610&mode=view' target=_blank>Загрузить оригинал (542.34 КБ)</a>
umerov
Кандидат
Сообщения: 83
Зарегистрирован: 18 янв 2012, 21:22
Репутация: 21
Откуда: Украина
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение umerov »

вот немного про RTCP http://unpp.narod.ru/rtcp.html
tegauss
Кандидат
Сообщения: 47
Зарегистрирован: 30 янв 2014, 02:17
Репутация: 11
Настоящее имя: Антон
Откуда: Москва
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение tegauss »

umerov писал(а):Координаты A B C - (это НЕ машинные координаты - это углы наклона фрезы относительно конца инструмента)
А можете вот эту фразу пояснить, пожалуйста? "Инструмент" -- это опять же фреза?
umerov
Кандидат
Сообщения: 83
Зарегистрирован: 18 янв 2012, 21:22
Репутация: 21
Откуда: Украина
Контактная информация:

Re: Вопросы по модулям кинематики

Сообщение umerov »

"машинные координаты" - в моем понимании это реальные кодинаты осей (в linuxcnc - joints)
Ответить

Вернуться в «LinuxCNC»