Настройка кинематики в EMC2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):компилирую
всё правильно ...
только компилировать нужно пробовать то ,что в #52
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

Как бы уже ездит но не так как нужно - вот мой робокоп :)

Изображение

сейчас он ездит так - если закрепить ручку на ось Y то пишет так : вид сверху

Изображение

а мне нужно сделать чтоб писал во так :

Изображение

даже чтоб можно было линию нарисовать -

Изображение

или так -

Изображение

но сейчас он нарисует так -

Изображение

что нужно дописать в кинематике чтоб работал правильно????? :thinking: :cry:
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):что нужно дописать в кинематике чтоб работал правильно?
какая сейчас работает кинематика?какой вариант?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение Nick »

Надо включить управление в координатах - Меню - Вид - И там последних два пункта.

ЗЫ все фото прикрепляй к форуму! Так удобнее смотреть и надежнее!
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

nkp писал(а):
sasha_89 писал(а):что нужно дописать в кинематике чтоб работал правильно?
какая сейчас работает кинематика?какой вариант?
вот этот

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

КОД: ВЫДЕЛИТЬ ВСЁ • РАЗВЕРНУТЬ
/********************************************************************
* Description: angularkins.c
*   Angular kinematics for 3 axis with angular axis along Z
*
*   Derived from a work by Fred Proctor & Will Shackleford
*
* Author:
* License: GPL Version 2
* System: Linux
*    
* Copyright (c) 2004 All rights reserved.
*
* Last change:
********************************************************************/

#include "posemath.h"
#include "hal.h"
#include "rtapi.h"
#include "rtapi_math.h"
#include "kinematics.h"      


int kinematicsForward(const double *joints,
            EmcPose * pos,
            const KINEMATICS_FORWARD_FLAGS * fflags,
            KINEMATICS_INVERSE_FLAGS * iflags)
{
    pos->tran.x = joints[0] * (sin(joints[3] * (PM_PI/180.0)));
    pos->tran.y = joints[0] * (cos(joints[3] * (PM_PI/180.0)));
    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;

      dx = pos->tran.x;
      dy = pos->tran.y;
      A = atan2(dx,dy);
      joints[3] = A * (180.0/PM_PI);
      joints[0] = sqrt(pos->tran.x * pos->tran.x + pos->tran.y * pos->tran.y);

    
    joints[1] = pos->tran.y;
    joints[2] = pos->tran.z;
    joints[3] = pos->a;
    joints[5] = pos->c;
    joints[6] = pos->u;
    joints[7] = pos->v;
    joints[8] = pos->w;

    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_IDENTITY;
}

#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("angularkins");
    if(comp_id > 0) {
   hal_ready(comp_id);
   return 0;
    }
    return comp_id;
}

void rtapi_app_exit(void) { hal_exit(comp_id); } 
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение PKM »

return KINEMATICS_IDENTITY
Неверно. Попробуй
return KINEMATICS_BOTH
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

из этого :

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

# finally connect physical pins to the signals
net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
net Ystep parport.0.pin-05-out
net Ydir parport.0.pin-04-out
net Zstep parport.0.pin-07-out
net Zdir parport.0.pin-06-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-out
что куда реально подключено???
если так пины у тебя прописаны в хал-файле...
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

nkp писал(а):из этого :

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

# finally connect physical pins to the signals
net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
net Ystep parport.0.pin-05-out
net Ydir parport.0.pin-04-out
net Zstep parport.0.pin-07-out
net Zdir parport.0.pin-06-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-out
что куда реально подключено???
если так пины у тебя прописаны в хал-файле...

у меня прописаны так -

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

# finally connect physical pins to the signals
net Xstep parport.0.pin-07-out
net Xdir parport.0.pin-06-out
net Ystep parport.0.pin-03-out
net Ydir parport.0.pin-02-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-out
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):у меня прописаны так -
ну прописанны это одно - а подсоеденение реальное какое???
тут четыре "мотора" упрощенно говоря: x,y,z,a.
а у тебя на железяке сколько?
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

nkp писал(а):
sasha_89 писал(а):у меня прописаны так -
ну прописанны это одно - а подсоеденение реальное какое???
тут четыре "мотора" упрощенно говоря: x,y,z,a.
а у тебя на железяке сколько?
да у меня 4 мотора но 4-тый - ,,а ,, меня не интересует, только нужны x,z,y. Как на рисунке нарисовано соответствует каждая ось пинам!!!
Вложения
IMG_2014-6.jpg (1937 просмотров) <a class='original' href='./download/file.php?id=37179&mode=view' target=_blank>Загрузить оригинал (92.15 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

поправте - если ошибаюсь...
сигнал с поворотной оси joints[3] = A * (180.0/PM_PI) должен "приходить" на ось X (она же в железке поворотная)
то есть сейчас у тс так прописано:

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

net Xstep parport.0.pin-07-out
net Xdir parport.0.pin-06-out
net Ystep parport.0.pin-03-out
net Ydir parport.0.pin-02-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-09-out
net Adir parport.0.pin-08-out
а надо соответственно так:

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

net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out
net Ystep parport.0.pin-09-out
net Ydir parport.0.pin-08-out
net Zstep parport.0.pin-05-out
net Zdir parport.0.pin-04-out
net Astep parport.0.pin-07-out
net Adir parport.0.pin-06-out
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

Ось x у меня поворотная и она

net Xstep parport.0.pin-07-out
net Xdir parport.0.pin-06-out

здесь все нормально - например когда задаю задаю в MDI - ,,go x10 ,, то ездит ось x и на железе тоже ось поворотная x едет !
у меня физически пины заведены так !
и в ini файле я указал что AXIS_0 - ANGULAR это мой - x !!!

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

#+ First axis
[AXIS_0]

TYPE =                          ANGULAR
HOME =                          0.000
MAX_VELOCITY =                  3.0
MAX_ACCELERATION =              10.0
STEPGEN_MAXACCEL =              10.2
BACKLASH = 0.000
SCALE =                   40
OUTPUT_SCALE = 1.000
MIN_LIMIT =                     -1000.0
MAX_LIMIT =                     1000.0
FERROR = 5.050
MIN_FERROR = 5.0
HOME_OFFSET =                    -5.5
HOME_SEARCH_VEL =                -3.0
HOME_LATCH_VEL =                 -3.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES

#+ Second axis
[AXIS_1]

TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  10
MAX_ACCELERATION =              20.0
STEPGEN_MAXACCEL =              100.2
BACKLASH = 0.000
SCALE =                   9.632
# 9.632  -KOEF OSI Y NALAGODZENO
OUTPUT_SCALE = 1.000
MIN_LIMIT =                     -1000.0
MAX_LIMIT =                     1000.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET =                    191.0
HOME_SEARCH_VEL =                3.0
HOME_LATCH_VEL =                 3.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES

#+ Third axis
[AXIS_2]

TYPE =                          LINEAR
HOME =                          0.0
MAX_VELOCITY =                  1
MAX_ACCELERATION =              20.0
STEPGEN_MAXACCEL =              20.2
BACKLASH = 0.000
SCALE =                   460
OUTPUT_SCALE = 1.000
MIN_LIMIT =                     -1000.0
MAX_LIMIT =                     1000.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET =                    1.0
HOME_SEARCH_VEL =                1.0
HOME_LATCH_VEL =                 1.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES

#+ Third axis
[AXIS_3]

TYPE =                          ANGULAR
HOME =                          0.0
MAX_VELOCITY =                  4
MAX_ACCELERATION =              360.0
STEPGEN_MAXACCEL =              396.0
BACKLASH = 0.000
SCALE =                   400
OUTPUT_SCALE = 1.000
MIN_LIMIT =                     -36000.0
MAX_LIMIT =                     36000.0
FERROR = 5.0
MIN_FERROR = 1.0
HOME_OFFSET =                    0.0
HOME_SEARCH_VEL =                0.0
HOME_LATCH_VEL =                 0.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             NO
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

или оси - joints[3] ссылается на - net Astep ?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

тебе не просто помогать :) :)
все надо "силой" вытягивать :hehehe:
============
ты же выкладывал свой конфиг здесь http://www.cnc-club.ru/forum/viewtopic. ... 40#p152516
а оказывается это совсем не твой конфиг!!!!!!
тут же никто не видит сквозь пространство :hehehe:
вывод:
поменял что то - выкладывай сюда - чтоб мы говорили "на одном языке" ;)
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

:thinking: ок туплю! это еще в начале бил такой!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):ок туплю! это еще в начале бил такой!
выложи архив конфига ,актуальный на сейчас...
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

вот мой сейчас конфиг
Вложения
stepper-xyza.rar
(5.91 КБ) 279 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):Ось x у меня поворотная и она
вот задумайся и ответь на такой вопрос:
есть такая траектория
Выделение_104.png
Выделение_104.png (11.08 КБ) 1915 просмотров
так вот - в "классической" кинематике ты командуешь X3 Y4 и получаешь движение как на рисунке
а можно просто скомандовать поворотке :"повернись на угол ἀ .а линейная ось проедь 5(пять)
эта команда примерно будет выглядеть так: X37 Y5
X37 - в смысле градусов
==========
можно настроить твою железку для работы и так,и так...
===========
так вот вопрос:
ты как хочешь давать команды ?
для оси X в градусах?
sasha_89
Новичок
Сообщения: 32
Зарегистрирован: 11 ноя 2014, 21:51
Репутация: 0
Настоящее имя: Aleksandr
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение sasha_89 »

x - в градусах!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Настройка кинематики в EMC2

Сообщение nkp »

sasha_89 писал(а):x - в градусах!
тему можно закрывать))))))))
==========
приведи пример G-кода ,который будешь использовать...
Ответить

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