Страница 3 из 4
Re: delta robot emc2
Добавлено: 09 июн 2012, 15:42
Serg
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". Причём с точки зрения компилятора ошибки тут не будет.
Re: delta robot emc2
Добавлено: 09 июн 2012, 16:03
Nick
эвон оно как... хитро

!
Re: delta robot emc2
Добавлено: 09 июн 2012, 16:25
PKM
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, сам напоролся недавно. Где-то такое имя уже используется - сразу непонятная проблема. Лучше для своих переменных выбирать уникальные имена.
Re: delta robot emc2
Добавлено: 09 июн 2012, 17:34
Serg
PKM писал(а):В каждой функции некошерно объявлять
Можно попробовать в начале файла
Тут несколько про иное.

Re: delta robot emc2
Добавлено: 09 июн 2012, 17:38
PKM
UAVpilot писал(а):Тут несколько про иное.
объясни )
Re: delta robot emc2
Добавлено: 09 июн 2012, 22:15
Serg
PKM писал(а):UAVpilot писал(а):Тут несколько про иное.
объясни )
моё сообщение, которое ты цитируешь не про эти 4 глобальные переменные, а про объявление локальных в паре функций, на которые компилятор ругается.

Re: delta robot emc2
Добавлено: 14 июн 2012, 17:15
z-vr
Огромное спасибо всем!
Сейчас в отпуске. Буду в начале июля и всё опробую.
Re: delta robot emc2
Добавлено: 10 мар 2013, 19:40
PKM
и где же робот?
Re: delta robot emc2
Добавлено: 12 июн 2013, 15:03
Mutuh
Ошибка с загрузкой модуля:
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko': -1 Invalid module format
возникает если в конфиге HAL уже есть другая кинематика, необходимо заменить например "loadrt trivkins" на "loadrt deltakins" (обычно первая строка в конфиге).
Re: delta robot emc2
Добавлено: 12 июн 2013, 16:07
Nick
Mutuh писал(а):возникает если в конфиге HAL уже есть другая кинематика, необходимо заменить например "loadrt trivkins" на "loadrt deltakins" (обычно первая строка в конфиге).
В принципе так оно и должно быть... Зачем несколько кинематик одновременно загружать?
Re: delta robot emc2
Добавлено: 16 июн 2013, 11:37
Mutuh
Для компиляции модуля кинематики достаточно добавить:
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
Re: delta robot emc2
Добавлено: 16 июн 2013, 12:56
PKM
Mutuh, это понятно, хоть мне и не слишком нравится. Сделал умолчания этих параметров реальными вместо 1.0 в оригинале, так что можно их не задавать в hal. А вот очень жаль, что в hal нет пинов типа "матрица"

Re: delta robot emc2
Добавлено: 16 июн 2013, 15:49
Mutuh
PKM писал(а):Mutuh, это понятно, хоть мне и не слишком нравится. Сделал умолчания этих параметров реальными вместо 1.0 в оригинале, так что можно их не задавать в hal. А вот очень жаль, что в hal нет пинов типа "матрица"

Мне это не было понятно прочитав ветку, с нюансами столкнулся сам и надеюсь мои посты помогут другим.
Исходник по кинематике не содержит инструкции как и куда необходимо вставить параметры конструкции для корректной работы компонента.
Re: delta robot emc2
Добавлено: 16 июн 2013, 15:59
PKM
А какой робот у тебя?
Re: delta robot emc2
Добавлено: 16 июн 2013, 16:11
Mutuh
Прошу оказать помощь по вопросам:
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 всё усложняется)?
Re: delta robot emc2
Добавлено: 16 июн 2013, 16:55
Mutuh
PKM писал(а):А какой робот у тебя?
Основных "роботов" (станков) у нас на текущий момент 2:
1) Установщик SMD компонентов
https://www.youtube.com/watch?v=yowXlLagqhk
под управлением Arduino
2) Фрезер
https://www.youtube.com/watch?v=5b4kxxg14OI
с рабочей зоной 800х1200, под управлением Mach3
И ещё несколько простых для герметизации (Arduino), печь (реле времени) и т.п.
В рамках данной темы есть желание заменить установщик на новый на платформе Delta. Приманило в дельта-роботах "Основным замыслом было оперировать легкими объектами, но с большой скоростью". Так как сложно оценить получаемую в итоге точность, добавили сразу задел на подключение видео системы для корректировки положений (отдельная тема для обсуждения).
Для практической оценки возможности реализации (механики и управление LinuxCNC или если не получится то перейду на Arduino, но уже видео-система будет не актуальна), собрана тестовая конструкция - основные плечи вырезаны из оргстекла, вторые из удилища.
Re: delta robot emc2
Добавлено: 16 июн 2013, 18:30
PKM
Mutuh писал(а):Прошу оказать помощь по вопросам:
1. Плата непонятная, но особых проблем вносить не должна. Подключать нужно скорее всего по схеме рис. 3 из инструкции на драйвер.
2. Не так важно, где располагать датчики НОМЕ, для этого есть параметр HOME_OFFSET. Т.е. датчик можно поставить в +5 градусов, а НОМЕ будет 0 градусов. Тогда HOME_OFFSET = 5. Нужно изучить очень внимательно раздел Homing в Integrator Manual и понять логику.
Я в ближайшее время постараюсь снять видео своего робота, там будет видна последовательность Homing.
Вопрос: какая планируется рабочая зона? Великоват вроде, точности с энкодерами 2500ppr может не хватить.
Re: delta robot emc2
Добавлено: 16 июн 2013, 21:01
Mutuh
PKM писал(а):
2. Не так важно, где располагать датчики НОМЕ, для этого есть параметр HOME_OFFSET. Т.е. датчик можно поставить в +5 градусов, а НОМЕ будет 0 градусов.
В настройках LinuxCNC я указал тип Линейный, т.е. у меня не в градусах управление сервой, или надо переконфигурировать в градусы?
PKM писал(а):
Вопрос: какая планируется рабочая зона? Великоват вроде, точности с энкодерами 2500ppr может не хватить.
Рабочая зона минимум 600х600, сейчас параметры конструкции чуть больше дают рабочую зону. Нехватка точности это интуитивно понятная проблема, но так как управляется 3-мя двигателями 1 точка, я не знаю как правильно оценить итоговую точность от 3-х двигателей с энкодером 2500ppr. Если ошибка будет повторяемая, то точность можно подогнать эмпирически корректировкой координат, как вариант

Или видеосистемой или просто этими сервами сделать апгрейд Фрезера и закрыть тему с дельтой роботами до момента когда возможно будет найти в продаже (или сделать) нормальные редукторы.
Re: delta robot emc2
Добавлено: 16 июн 2013, 22:05
PKM
Mutuh писал(а):В настройках LinuxCNC я указал тип Линейный, т.е. у меня не в градусах управление сервой, или надо переконфигурировать в градусы?
Разницы нет, лишь бы правильные соотношения. Но вообще в исходном deltakins приводы в градусах.
Mutuh писал(а):Рабочая зона минимум 600х600, сейчас параметры конструкции чуть больше дают рабочую зону. Нехватка точности это интуитивно понятная проблема, но так как управляется 3-мя двигателями 1 точка, я не знаю как правильно оценить итоговую точность от 3-х двигателей с энкодером 2500ppr. Если ошибка будет повторяемая, то точность можно подогнать эмпирически корректировкой координат, как вариант

Или видеосистемой или просто этими сервами сделать апгрейд Фрезера и закрыть тему с дельтой роботами до момента когда возможно будет найти в продаже (или сделать) нормальные редукторы.
При длине рычага 350мм импульс энкодера соответствует более 0.2мм кругового перемещения привода, это многовато.
Но дело не столько в ошибке положения, как в точности выхода на координату с большим ускорением/торможением.
Увы, редукторы не особо помогают (у меня волновые). Лучше прямой привод и энкодер высокого разрешения 800000-100000 имп/об - совсем не дешевые штуки...
Re: delta robot emc2
Добавлено: 17 июн 2013, 14:18
Mutuh
В Мас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
Для перенастройки в управление градусами предполагаю, что необходимо сделать так:
Расчёт максимальной скорости: 4000rpm = 66,66 оборотов в секунду, 66,66*360 градусов=24000 градусов в секунду
Ускорение, как понимаю, сложно рассчитать и ставят обычно по технологии "пальцем в небо" и далее эмпирически:
Нужны ли параметры:
Или их можно удалить?
Нужен ли будет параметр
? (понимаю, что нужно где-то указать что Энкодер 2500, в этом параметре?)