delta robot emc2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: delta robot emc2

Сообщение UAVpilot » 09 июн 2012, 15:42

Nick писал(а):но имхо это пережиток...


Нет, это не пережиток, а способ избежать ошибок.
Например есть такой совершенно легитимный код:
....
int x = 5;
...
void myfunc(void) {
int a = 1;
...
int x = 2;
...
printf("a=%i, x=%i\n", a, x);
...

А теперь представь что случится, если в процессе доработки/оптимизации кода строчка c printf окажется выше строчки " int x = 2". Причём с точки зрения компилятора ошибки тут не будет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19902
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4796
Медальки:
Настоящее имя: Сергей

Re: delta robot emc2

Сообщение Nick » 09 июн 2012, 16:03

эвон оно как... хитро :)!
Аватара пользователя
Nick
Мастер
 
Сообщения: 22526
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1576
Заслуга: Developer
Медальки:

Re: delta robot emc2

Сообщение PKM » 09 июн 2012, 16:25

UAVpilot писал(а):Ну а чтоб при компиляции совсем не ругалось надо в в функциях delta_calcAngleYZ и kinematicsInverse сначала сделать все объявления переменных, а потом их использовать:

double y1, a, b, d, yj, zj;
y1 = ...
y0 -= ...
a = ...
b = ...
...

double x0 = pos->tran.x;
double y0 = pos->tran.y;
double z0 = pos->tran.z;
double theta1;
double theta2;
double theta3;
int status;

theta1 = theta2 = theta3 = 0;
status = delta_calcAngleYZ(x0, y0, z0, &theta1);
if (status == 0) joints[0] = theta1;
...


В каждой функции некошерно объявлять
Можно попробовать в начале файла

#DEFINE e 115.0
#DEFINE f 457.3
#DEFINE re 232.0
#DEFINE rf 112.0

И кстати, короткие имена переменных типа e и f категорически не советую употреблять в linuxcnc, сам напоролся недавно. Где-то такое имя уже используется - сразу непонятная проблема. Лучше для своих переменных выбирать уникальные имена.
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение UAVpilot » 09 июн 2012, 17:34

PKM писал(а):В каждой функции некошерно объявлять
Можно попробовать в начале файла

Тут несколько про иное. :roll:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19902
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4796
Медальки:
Настоящее имя: Сергей

Re: delta robot emc2

Сообщение PKM » 09 июн 2012, 17:38

UAVpilot писал(а):Тут несколько про иное.

объясни )
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение UAVpilot » 09 июн 2012, 22:15

PKM писал(а):
UAVpilot писал(а):Тут несколько про иное.

объясни )


моё сообщение, которое ты цитируешь не про эти 4 глобальные переменные, а про объявление локальных в паре функций, на которые компилятор ругается. ;)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19902
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4796
Медальки:
Настоящее имя: Сергей

Re: delta robot emc2

Сообщение z-vr » 14 июн 2012, 17:15

Огромное спасибо всем!
Сейчас в отпуске. Буду в начале июля и всё опробую.
z-vr
Новичок
 
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0

Re: delta robot emc2

Сообщение PKM » 10 мар 2013, 19:40

и где же робот?
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение Mutuh » 12 июн 2013, 15:03

Ошибка с загрузкой модуля:
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko': -1 Invalid module format
возникает если в конфиге HAL уже есть другая кинематика, необходимо заменить например "loadrt trivkins" на "loadrt deltakins" (обычно первая строка в конфиге).
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение Nick » 12 июн 2013, 16:07

Mutuh писал(а):возникает если в конфиге HAL уже есть другая кинематика, необходимо заменить например "loadrt trivkins" на "loadrt deltakins" (обычно первая строка в конфиге).

В принципе так оно и должно быть... Зачем несколько кинематик одновременно загружать?
Аватара пользователя
Nick
Мастер
 
Сообщения: 22526
Зарегистрирован: 23 ноя 2009, 16:45
Откуда: Gatchina, Saint-Petersburg distr., Russia
Репутация: 1576
Заслуга: Developer
Медальки:

Re: delta robot emc2

Сообщение Mutuh » 16 июн 2013, 11:37

Для компиляции модуля кинематики достаточно добавить:
UAVpilot писал(а):Несколько надёжней будет вот так:
#ifndef HAL_SUCCESS
#define HAL_SUCCESS 0
#endif
;)

Параметры скомпилированному модулю из конфигурационного файла hal передаются так:
setp deltakins.e 130.0
setp deltakins.f 600.0
setp deltakins.re 745.0
setp deltakins.rf 280.0
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение PKM » 16 июн 2013, 12:56

Mutuh, это понятно, хоть мне и не слишком нравится. Сделал умолчания этих параметров реальными вместо 1.0 в оригинале, так что можно их не задавать в hal. А вот очень жаль, что в hal нет пинов типа "матрица" :)
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение Mutuh » 16 июн 2013, 15:49

PKM писал(а):Mutuh, это понятно, хоть мне и не слишком нравится. Сделал умолчания этих параметров реальными вместо 1.0 в оригинале, так что можно их не задавать в hal. А вот очень жаль, что в hal нет пинов типа "матрица" :)


Мне это не было понятно прочитав ветку, с нюансами столкнулся сам и надеюсь мои посты помогут другим.
Исходник по кинематике не содержит инструкции как и куда необходимо вставить параметры конструкции для корректной работы компонента.
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение PKM » 16 июн 2013, 15:59

А какой робот у тебя?
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение Mutuh » 16 июн 2013, 16:11

Прошу оказать помощь по вопросам:
1) Как корректно настроить параметры для серв в режиме управления STEP/DIR?
В своей конструкции использую 3 комплекта: http://www.ebay.com/itm/Leadshine-400W- ... 45f8e62a75
Тут http://wiki.linuxcnc.org/cgi-bin/wiki.p ... ive_Timing для драйвера указаны необходимые параметры Step Space = 850, Direction Hold = 850, Direction Setup = 6700, Steps on = 5000 оказывает ли влияние на данные параметры плата сопряжения http://www.ebay.com/itm/CNC-Breakout-Bo ... 1120507464 ?
2) Как настраиваются позиции Home для нетривиальной кинематики?
С моими параметрами Delta при отправки в позицию Home X и Y могут принимают значения 0, а Z около -700 (что конструктивно верно).
2.1. Есть ли у кого-нибудь пример из работающего конфига с заданными параметрами Home, которые не в 0 по осям
2.2. Как и где корректно установить датчики положения Home и как их описать для случая не тривиальной кинематики (по опыту работы с фрезером под управлением Mach3, позиция Home определяется для каждой оси отдельно, а для конкретно Delta всё усложняется)?
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение Mutuh » 16 июн 2013, 16:55

PKM писал(а):А какой робот у тебя?

Основных "роботов" (станков) у нас на текущий момент 2:
1) Установщик SMD компонентов

под управлением Arduino
2) Фрезер

с рабочей зоной 800х1200, под управлением Mach3
И ещё несколько простых для герметизации (Arduino), печь (реле времени) и т.п.

В рамках данной темы есть желание заменить установщик на новый на платформе Delta. Приманило в дельта-роботах "Основным замыслом было оперировать легкими объектами, но с большой скоростью". Так как сложно оценить получаемую в итоге точность, добавили сразу задел на подключение видео системы для корректировки положений (отдельная тема для обсуждения).

Для практической оценки возможности реализации (механики и управление LinuxCNC или если не получится то перейду на Arduino, но уже видео-система будет не актуальна), собрана тестовая конструкция - основные плечи вырезаны из оргстекла, вторые из удилища.
Вложения
delta robot emc2 IMAG1158.jpg
delta robot emc2 IMAG1157.jpg
delta robot emc2 IMAG1156.jpg
delta robot emc2 IMAG1155.jpg
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение PKM » 16 июн 2013, 18:30

Mutuh писал(а):Прошу оказать помощь по вопросам:


1. Плата непонятная, но особых проблем вносить не должна. Подключать нужно скорее всего по схеме рис. 3 из инструкции на драйвер.
2. Не так важно, где располагать датчики НОМЕ, для этого есть параметр HOME_OFFSET. Т.е. датчик можно поставить в +5 градусов, а НОМЕ будет 0 градусов. Тогда HOME_OFFSET = 5. Нужно изучить очень внимательно раздел Homing в Integrator Manual и понять логику.
Я в ближайшее время постараюсь снять видео своего робота, там будет видна последовательность Homing.

Вопрос: какая планируется рабочая зона? Великоват вроде, точности с энкодерами 2500ppr может не хватить.
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение Mutuh » 16 июн 2013, 21:01

PKM писал(а):2. Не так важно, где располагать датчики НОМЕ, для этого есть параметр HOME_OFFSET. Т.е. датчик можно поставить в +5 градусов, а НОМЕ будет 0 градусов.

В настройках LinuxCNC я указал тип Линейный, т.е. у меня не в градусах управление сервой, или надо переконфигурировать в градусы?

PKM писал(а):Вопрос: какая планируется рабочая зона? Великоват вроде, точности с энкодерами 2500ppr может не хватить.

Рабочая зона минимум 600х600, сейчас параметры конструкции чуть больше дают рабочую зону. Нехватка точности это интуитивно понятная проблема, но так как управляется 3-мя двигателями 1 точка, я не знаю как правильно оценить итоговую точность от 3-х двигателей с энкодером 2500ppr. Если ошибка будет повторяемая, то точность можно подогнать эмпирически корректировкой координат, как вариант :) Или видеосистемой или просто этими сервами сделать апгрейд Фрезера и закрыть тему с дельтой роботами до момента когда возможно будет найти в продаже (или сделать) нормальные редукторы.
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Re: delta robot emc2

Сообщение PKM » 16 июн 2013, 22:05

Mutuh писал(а):В настройках LinuxCNC я указал тип Линейный, т.е. у меня не в градусах управление сервой, или надо переконфигурировать в градусы?

Разницы нет, лишь бы правильные соотношения. Но вообще в исходном deltakins приводы в градусах.

Mutuh писал(а):Рабочая зона минимум 600х600, сейчас параметры конструкции чуть больше дают рабочую зону. Нехватка точности это интуитивно понятная проблема, но так как управляется 3-мя двигателями 1 точка, я не знаю как правильно оценить итоговую точность от 3-х двигателей с энкодером 2500ppr. Если ошибка будет повторяемая, то точность можно подогнать эмпирически корректировкой координат, как вариант :) Или видеосистемой или просто этими сервами сделать апгрейд Фрезера и закрыть тему с дельтой роботами до момента когда возможно будет найти в продаже (или сделать) нормальные редукторы.

При длине рычага 350мм импульс энкодера соответствует более 0.2мм кругового перемещения привода, это многовато.
Но дело не столько в ошибке положения, как в точности выхода на координату с большим ускорением/торможением.
Увы, редукторы не особо помогают (у меня волновые). Лучше прямой привод и энкодер высокого разрешения 800000-100000 имп/об - совсем не дешевые штуки...
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4261
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 703
Медальки:
Настоящее имя: Андрей

Re: delta robot emc2

Сообщение Mutuh » 17 июн 2013, 14:18

В Масh3 есть специальный инструмент для калибровки настроек двигателей (запустил на определенное значение, провёл измерение - сколько в действительности двинулось, указал и параметры рассчитались сами), есть ли такой в LinuxCNC?
В LinuxCNC использовал StepConf – мастер для создания конфигурации (пример часть полученного конфига оси «Z»)
Код: Выделить всёРазвернуть
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 900.0
STEPGEN_MAXACCEL = 1125.0
SCALE = 250.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -1000.0
MAX_LIMIT = 0.001
HOME_OFFSET = -700.000000
HOME_SEARCH_VEL = 0.050000
HOME_LATCH_VEL = 0.050000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

Для перенастройки в управление градусами предполагаю, что необходимо сделать так:
Код: Выделить всёРазвернуть
TYPE = ANGULAR
WRAPPED_ROTARY = 1

Расчёт максимальной скорости: 4000rpm = 66,66 оборотов в секунду, 66,66*360 градусов=24000 градусов в секунду
Код: Выделить всёРазвернуть
MAX_VELOCITY = 24000

Ускорение, как понимаю, сложно рассчитать и ставят обычно по технологии "пальцем в небо" и далее эмпирически:
Код: Выделить всёРазвернуть
MAX_ACCELERATION = 10000.0

Нужны ли параметры:
Код: Выделить всёРазвернуть
STEPGEN_MAXACCEL = 1125.0
SCALE = 250.0

Или их можно удалить?
Нужен ли будет параметр
Код: Выделить всёРазвернуть
ENCODER_SCALE
? (понимаю, что нужно где-то указать что Энкодер 2500, в этом параметре?)
Mutuh
Новичок
 
Сообщения: 12
Зарегистрирован: 06 мар 2013, 14:19
Репутация: 0

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], ССыч, dadlick, dpss-2, eastwind, Google [Bot], jb_arch, MadRat, Maxekb77, MGG, NikolayUa24, pavelvivat, гражданинъ, Samodelkin 88, SNS, tommygun, tsurika, Yandex [bot]

Reputation System ©'