Страница 5 из 7

Re: Станок канатной резки камня с ЧПУ

Добавлено: 17 июл 2013, 21:06
Nick
Только надо еще FERROR для этой оси сделать очень большой, чтобы не выскакивали постоянно ошибки. Или axis.2.motor-pos-cmd завести сразу обратно на axis.2.motor-pos-fb

Re: Станок канатной резки камня с ЧПУ

Добавлено: 17 июл 2013, 21:09
nkp
попробую с пид настроить...
если не выйдет - то просто компонентами ...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 18 июл 2013, 21:40
nkp
оказывается для такого случая есть готовая кинематика на linuxcnc.org
(сегодня пробовали - пока вылетает по ferror...
pid tuning не запускается на компе станка - еще завтра поразбираемся...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 18 июл 2013, 23:07
Nick
nkp писал(а):есть готовая кинематика на linuxcnc.org
Ты специально название не написал, чтобы интригу затянуть? :)
nkp писал(а):pid tuning не запускается на компе станка - еще завтра поразбираемся...
А что ты имеешь в виду под словос pid tuning?

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 05:50
nkp
Nick писал(а):Ты специально название не написал, чтобы интригу затянуть?
Вот тема...
Nick писал(а):А что ты имеешь в виду под словос pid tuning?
(для просмотра содержимого нажмите на ссылку)
Выделение(036).jpg (5397 просмотров) <a class='original' href='./download/file.php?id=16422&mode=view' target=_blank>Загрузить оригинал (221.83 КБ)</a>

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 10:49
Nick
tangentkins - а что, нормально. Все тоже самое, только в кинематике, и даже возможность управления осью через пин auto сделали.
А работать похоже будет 1 в 1 с нашим вариантом.
nkp писал(а): (для просмотра содержимого нажмите на ссылку)
А ты про это.
Так есть же Станок - Калибровка, я думал pid tuning после этого не актуален...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 12:03
Serg
Nick писал(а):Так есть же Станок - Калибровка, я думал pid tuning после этого не актуален...
А есть описание сего процесса? А то я запустил, увидел что можно менять параметры, нажал "Тест" - ничего не произошло... :thinking:

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 20:34
nkp
Nick писал(а):tangentkins - а что, нормально. Все тоже самое, только в кинематике, и даже возможность управления осью через пин auto сделали.
А работать похоже будет 1 в 1 с нашим вариантом.
работает -только поворачивает по длинному пути ...
надо обязательно доработать ее до нормальной...
==========
а по поводу atan2 - так сама концепция наверно не пройдет...
в кинематике мы задание (угол поворота) подаем в планировщик и далее на пид ...
если с atan подаем сразу на пид - так конечно работать не сможет...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 20:43
nkp
вот кстатии исходник самой кинематики tangentkins.c:

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

#include "kinematics.h"		/* these decls */
#include "hal.h"
#include "rtapi_math.h"

static PmCartesian old; // This structure stores the previous position
typedef struct { hal_bit_t *pin_auto ;} tangentkins_hal_t;
tangentkins_hal_t *data;

int kinematicsForward(const double *joints,
                      EmcPose * pos,
                      const KINEMATICS_FORWARD_FLAGS * fflags,
                      KINEMATICS_INVERSE_FLAGS * iflags)
{
    pos->tran.x = joints[0];
    pos->tran.y = joints[1];
    pos->tran.z = joints[2];
    pos->a = joints[3];
    pos->b = joints[4];
    pos->c = joints[5];
    pos->u = joints[6];
    pos->v = joints[7];
    pos->w = joints[8];
    
    return 0;
}

int kinematicsInverse(const EmcPose * pos,
                      double *joints,
                      const KINEMATICS_INVERSE_FLAGS * iflags,
                      KINEMATICS_FORWARD_FLAGS * fflags)
{
    
    static double dx = 0, dy = 0, A = 0;
    
    dy = pos->tran.y - old.y;
    dx = pos->tran.x - old.x;
    if (*data->pin_auto){
        if (dx != 0 || dy != 0) {
            A = atan2(dx, dy)*(180.0/3.141592);
        }
    }else{
        A=pos->a;
    }
    
    joints[0] = pos->tran.x;
    joints[1] = pos->tran.y;
    joints[2] = pos->tran.z;
    joints[3] = A;
    joints[4] = pos->b;
    joints[5] = pos->c;
    joints[6] = pos->u;
    joints[7] = pos->v;
    joints[8] = pos->w;
    
    
    old.x = pos->tran.x; // store previous value here to exclude kins-based movements
    old.y = pos->tran.y;
    
    return 0;
}

/* implemented for these kinematics as giving joints preference */
int kinematicsHome(EmcPose * world,
                   double *joint,
                   KINEMATICS_FORWARD_FLAGS * fflags,
                   KINEMATICS_INVERSE_FLAGS * iflags)
{
    *fflags = 0;
    *iflags = 0;
    
    return kinematicsForward(joint, world, fflags, iflags);
}

KINEMATICS_TYPE kinematicsType()
{
    return KINEMATICS_BOTH;
}

#include "rtapi.h"		/* RTAPI realtime OS API */
#include "rtapi_app.h"		/* RTAPI realtime module decls */
#include "hal.h"

EXPORT_SYMBOL(kinematicsType);
EXPORT_SYMBOL(kinematicsForward);
EXPORT_SYMBOL(kinematicsInverse);
MODULE_LICENSE("GPL");

int comp_id;
int rtapi_app_main(void) {
    comp_id = hal_init("tangentkins");
    if(comp_id > 0) {
	data = hal_malloc(sizeof(tangentkins_hal_t));
 	if(hal_pin_bit_new("tangentkins.auto", HAL_IN, &(data->pin_auto), comp_id) < 0 ){
            rtapi_print("Failed to create pin in tangentkins");
 	    return -EINVAL;
        }
 	hal_ready(comp_id);
 	return 0;
    }
    return comp_id;
}

void rtapi_app_exit(void) { hal_exit(comp_id); }

Re: Станок канатной резки камня с ЧПУ

Добавлено: 19 июл 2013, 23:10
Nick
nkp писал(а):работает -только поворачивает по длинному пути ...
надо обязательно доработать ее до нормальной...
nkp писал(а):в кинематике мы задание (угол поворота) подаем в планировщик и далее на пид ...
если с atan подаем сразу на пид - так конечно работать не сможет...
Как я и говорил, надо сделать вывод по mod
http://ru.wikipedia.org/wiki/Mod_(%D0%B ... %B8%D1%8F)
Блин, вот поэтому я и не люблю углы, сколько я с ними намучился с gcodetools....

В общем надо сравнивать A mod 360 и (A-360) mod 360, и смотреть, что будет по модулю меньше...
или как-то так...
больше смогу сказать завтра или позже - сейчас я :beer: :halfbeer: :nobeer: :beer_blow: :mrgreen: :mrgreen: :mrgreen:

Re: Станок канатной резки камня с ЧПУ

Добавлено: 20 июл 2013, 20:03
nkp
кроме "лишних разворотов" кинематики еще такой момент - оень большая ошибка при диаметральной смене направления движения оси:
(для просмотра содержимого нажмите на ссылку)
Снимок-4.png (5288 просмотров) <a class='original' href='./download/file.php?id=16448&mode=view' target=_blank>Загрузить оригинал (111.37 КБ)</a>
"зарегулировать" ее до разумных величин не удается (пока?)
если бы немного растянуть команду планировщику (планировщика)- тогда можно пробовать ПИДить...))))

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 12:50
nkp
вот сейчас самым актуальным стал вопрос движения ножа при ручных перемещениях(от стрелочек)...
где то,что то нужно прописать в кинематике,
а что и где????
хееелп!

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 18:15
Nick
Так вроде в любом режиме должно работать, главное пин tangentkins.auto в 1 поставить, т.е. наверное что-то вроде
setp tangentkins.auto 1 должно сработать...

Диаметральной смене направления? Т.е. привод долго доворачивается? Кстати, сколько по времени? И насколько это критично, ведь у тебя машина по камню, она небось должна очень не быстро резать...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 20:48
nkp
Nick писал(а):Так вроде в любом режиме должно работать
а вот не работает ...
работает в MDI и auto ...
пин tangentkins.auto конечно активируется - но тщетно...
вопрос остается открытым ;)
Nick писал(а):Т.е. привод долго доворачивается? Кстати, сколько по времени?
в том то и дело - что происходит моментально (точней не могу сказать))))
но сегодня выяснилось - это больше фича чем баг :)

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:22
Nick
nkp писал(а):работает в MDI и auto ...
пин tangentkins.auto конечно активируется - но тщетно...
О попробуй переключиться в режим world если такой есть.... может он джоггит только joints а не оси, и поэтому кинематика не работает...

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:34
nkp
Nick писал(а):переключиться в режим world
- это где? в кинематике?

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:38
Nick
Незнаю :), где-нибудь в linuxcnc, там вроде в gantry-kins было такое переключение...

может ну ее эту кинематику? :) Тем более ты уже пробовал, что там происходит при перескоке через 0?

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:44
nkp
Nick писал(а):может ну ее эту кинематику?
неееее!
надо в этой разобраться)))
все пилькает нормально - только вот это поправить надо ;)

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:47
Nick
Я боюсь, что в режиме manual может идпи управление непосредственно joint-ами... О кcтати посмотри в halui что на этих пинах:
halui.mode.is-joint bit out
pin showing joint by joint jog mode is on
halui.mode.is-teleop bit out
pin showing coordinated jog mode is on

halui.mode.joint bit in
pin for requesting joint by joint jog mode
halui.mode.teleop bit in
pin for requesting coordinated jog mode

Re: Станок канатной резки камня с ЧПУ

Добавлено: 22 июл 2013, 21:58
nkp
Выделение(037).jpg (5190 просмотров) <a class='original' href='./download/file.php?id=16501&mode=view' target=_blank>Загрузить оригинал (89.26 КБ)</a>