Режим "обучения" в Linuxcnc
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Режим "обучения" в Linuxcnc
Как сделать режим "обучения" формирования управляющей программы в Linuxcnc ? . Я хочу подключить пропорциональный джойстик , назначить рукоятке перемещение +Х -Х ,+У - У , кнопкам - включение шпинделя , охлаждение , эмульсию , вручную перемещать джойстиком по нужному контуру , а Linuxcnc будет формировать управляющую программу в G -кодах с значениями координат , ПОДАЧ , включения исполнительных механизмов . В НЦ-31 режим обучения был ...
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
G код из траектории в ЕМС вряд ли удастся получить.
Можно попробовать записать траекторию и управление с дискретностью сервоцикла а потом в каком нибудь постпроцессоре получить G код.
Можно попробовать записать траекторию и управление с дискретностью сервоцикла а потом в каком нибудь постпроцессоре получить G код.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Да, только так, если будешь с джойстика управлять, то векторизовать траекторию будет шибко тяжело.
А координаты в сервоцикле писать в файл - это просто. Потом их в одну строчку можно будет в Gкод переписать. Правда будет около 1000 строк в секунду
Хотя, можно еще чуть чуть помозговав упростить эти 1000 строк в сек.
А можно запись делать и по реже.
Какой размер "программы" будет?
А координаты в сервоцикле писать в файл - это просто. Потом их в одну строчку можно будет в Gкод переписать. Правда будет около 1000 строк в секунду
![Freak :freak:](./images/smilies/icon_freak.gif)
Хотя, можно еще чуть чуть помозговав упростить эти 1000 строк в сек.
А можно запись делать и по реже.
Какой размер "программы" будет?
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Потом из этих координат нарисавать что то типа чертежа, и потом уже этот чертеж в Г код преобразовать. Так должно получиться.Nick писал(а):А координаты в сервоцикле писать в файл - это просто. Потом их в одну строчку можно будет в Gкод переписать. Правда будет около 1000 строк в секунду
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Мне можно писать в файл с частотой 10 строк , но нужно и писать подачу ...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
А в чем разница, что мы пишем координаты, что подачу?
А тебе скорости в определенных местах разные нужны, ну это тоже можно сделать, потом в скрипте просто дописать расчет подачи исходя из текущего перемещения. Если с частотой 10Гц писать - точность будет маленькая, или там пофигу?
на 10 Гц можно и user-space компонентик на питоне написать...
А тебе скорости в определенных местах разные нужны, ну это тоже можно сделать, потом в скрипте просто дописать расчет подачи исходя из текущего перемещения. Если с частотой 10Гц писать - точность будет маленькая, или там пофигу?
на 10 Гц можно и user-space компонентик на питоне написать...
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Эсли не ошибаюсь то в станка ЧПУ обучение идет по контрольным точкам
Тоесть подводиш джойстиком в нужную точку нажимаеш на "кнопочкеу" даная координата XYZ заносится в програму дальше амалогично следуючая точка , так и составляется прога из линейных участков.
Я еще так програмировал робота "Универсал 5" только там програме записывалась штырьками на програматор а контрольные точки выставлялись реоставами на серводвигателяш.
Тоесть подводиш джойстиком в нужную точку нажимаеш на "кнопочкеу" даная координата XYZ заносится в програму дальше амалогично следуючая точка , так и составляется прога из линейных участков.
Я еще так програмировал робота "Универсал 5" только там програме записывалась штырьками на програматор а контрольные точки выставлялись реоставами на серводвигателяш.
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
А может попробовать через Keygrabber for Mach3 ?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Это вообще не сложно сделать.solo писал(а):Эсли не ошибаюсь то в станка ЧПУ обучение идет по контрольным точкам
Тоесть подводиш джойстиком в нужную точку нажимаеш на "кнопочкеу" даная координата XYZ заносится в програму дальше амалогично следуючая точка , так и составляется прога из линейных участков.
Я еще так програмировал робота "Универсал 5" только там програме записывалась штырьками на програматор а контрольные точки выставлялись реоставами на серводвигателяш.
А что он делает?vmarkiv писал(а):А может попробовать через Keygrabber for Mach3 ?
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Keygrabber "слушает" джойстик и передает данные в Mach3
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Проще через linuxcnc будет...
Надо просто написать компонентик. с тремя пинами x,y, и enable.
потом в главном цикле смотрим на координаты и пишем инфу в файл.
В общем, проще написать, чем объяснять:
это все сохраняешь в reader.py, и в hal добавляешь
loadrt python reader.py -Wn reader
и потом коннектишь его пины enable, x и y. И вроде все...
Надо просто написать компонентик. с тремя пинами x,y, и enable.
потом в главном цикле смотрим на координаты и пишем инфу в файл.
В общем, проще написать, чем объяснять:
Код: Выделить всё
#!/usr/bin/python
import hal, time, math
h = hal.component("recorder")
h.newpin("x", hal.HAL_FLOAT, hal.HAL_IN)
h.newpin("y", hal.HAL_FLOAT, hal.HAL_IN)
h.newpin("enable", hal.HAL_BIT, hal.HAL_IN)
h.ready()
f = open("reader.ngc","w")
try:
while 1:
if h['enable'] :
if lx!=None and ly!=None :
vel = math.sqrt((h['x']-lx)**2 + (h['y']-ly)**2)/time*60
f.write("G1 X%f Y%f F%f\n"%(h['x'],h['y'],vel))
else :
f.write("G0 X%f Y%f F%f\n"%(h['x'],h['y'],vel))
lx = h['x']
ly = h['y']
time.sleep(0.1)
except KeyboardInterrupt:
f.close()
raise SystemExit
loadrt python reader.py -Wn reader
и потом коннектишь его пины enable, x и y. И вроде все...
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: Режим "обучения" в Linuxcnc
Спасибо , опробую ...