delta robot emc2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

delta robot emc2

Сообщение z-vr »

Помогите пожалуйста разобраться, как приделать кинематику к EMC2. Файл взял тут http://kvarc.extra.hu/step/motor/emc/emckinematics.html . Как мне его привязать к EMC2?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: delta robot emc2

Сообщение Nick »

Попробуй сохранить. и выполнить в консоли:
sudo comp --install deltakins.c
также надо установить пакет linuxcnc-dev, если он еще не установлен.
sudo apt-get install linuxcnc-dev\

После этого надо будет его загружать через hal.
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

файл положил /usr/src/linux-headers-2.6.32-122-rtai/deltakins.c
сделал comp --install deltakins.c
получил такой результат

make -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 -o /Module.symvers modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpaIFBmj/deltakins.o
/tmp/tmpaIFBmj/deltakins.c: In function ‘delta_calcAngleYZ’:
/tmp/tmpaIFBmj/deltakins.c:142: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpaIFBmj/deltakins.c:147: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpaIFBmj/deltakins.c: In function ‘kinematicsInverse’:
/tmp/tmpaIFBmj/deltakins.c:170: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpaIFBmj/deltakins.c: In function ‘init_module’:
/tmp/tmpaIFBmj/deltakins.c:221: error: ‘HAL_SUCCESS’ undeclared (first use in this function)
/tmp/tmpaIFBmj/deltakins.c:221: error: (Each undeclared identifier is reported only once
/tmp/tmpaIFBmj/deltakins.c:221: error: for each function it appears in.)
make[2]: *** [/tmp/tmpaIFBmj/deltakins.o] Error 1
make[1]: *** [_module_/tmp/tmpaIFBmj] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Error 2

И мне не понятно куда геометрию робота вводить?
там в файле закоментированно:

/* robot geometry /Ref - mzavatsky: Delta robot kinematics/
e = side length of end effector triangle, middle arm - "re"
f = side length of base triangle, middle drive joints - "rf"
re = length of end effector arm
rf = length of drive arm
sample:
e = 115.0;
f = 457.3;
re = 232.0;
rf = 112.0; */

Нужно тут указывать?
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

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

Re: delta robot emc2

Сообщение PKM »

судя по следующему, эти значения должны быть прописаны в HAL
но в принципе их можно просто задать в самом файле кинематики

struct haldata {
hal_float_t *e, *f, *re, *rf;
} *haldata = 0;

#define delta_e (*(haldata->e))
#define delta_f (*(haldata->f))
#define delta_re (*(haldata->re))
#define delta_rf (*(haldata->rf))

#else
double delta_e, delta_f, delta_re, delta_rf;
#endif
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

Тогда я в файле убираю комментарии
e = 115.0;
f = 457.3;
re = 232.0;
rf = 112.0;
и потом его компилирую?
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

И так ругается:

root@cnc-desktop:/usr/src/linux-headers-2.6.32-122-rtai# comp --install deltakins.c
make -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 -o /Module.symvers modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpK0GBdM/deltakins.o
/tmp/tmpK0GBdM/deltakins.c:32: warning: data definition has no type or storage class
/tmp/tmpK0GBdM/deltakins.c:32: warning: type defaults to ‘int’ in declaration of ‘e’
/tmp/tmpK0GBdM/deltakins.c:33: warning: data definition has no type or storage class
/tmp/tmpK0GBdM/deltakins.c:33: warning: type defaults to ‘int’ in declaration of ‘f’
/tmp/tmpK0GBdM/deltakins.c:34: warning: data definition has no type or storage class
/tmp/tmpK0GBdM/deltakins.c:34: warning: type defaults to ‘int’ in declaration of ‘re’
/tmp/tmpK0GBdM/deltakins.c:35: warning: data definition has no type or storage class
/tmp/tmpK0GBdM/deltakins.c:35: warning: type defaults to ‘int’ in declaration of ‘rf’
/tmp/tmpK0GBdM/deltakins.c: In function ‘delta_calcAngleYZ’:
/tmp/tmpK0GBdM/deltakins.c:143: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpK0GBdM/deltakins.c:148: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpK0GBdM/deltakins.c: In function ‘kinematicsInverse’:
/tmp/tmpK0GBdM/deltakins.c:171: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpK0GBdM/deltakins.c: In function ‘init_module’:
/tmp/tmpK0GBdM/deltakins.c:222: error: ‘HAL_SUCCESS’ undeclared (first use in this function)
/tmp/tmpK0GBdM/deltakins.c:222: error: (Each undeclared identifier is reported only once
/tmp/tmpK0GBdM/deltakins.c:222: error: for each function it appears in.)
make[2]: *** [/tmp/tmpK0GBdM/deltakins.o] Error 1
make[1]: *** [_module_/tmp/tmpK0GBdM] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-122-rtai'
make: *** [modules] Error 2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: delta robot emc2

Сообщение Nick »

z-vr писал(а): error: ‘HAL_SUCCESS’ undeclared (first use in this function)
Вот главная ошибка...
сейчас гляну из-за чего она появляется...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: delta robot emc2

Сообщение Nick »

Ага вот в чем дело:

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

    if((res = hal_pin_float_new("deltakins.e", HAL_IO, &(haldata->e), comp_id)) != HAL_SUCCESS) goto error;
    if((res = hal_pin_float_new("deltakins.f", HAL_IO, &(haldata->f), comp_id)) != HAL_SUCCESS) goto error;
    if((res = hal_pin_float_new("deltakins.re", HAL_IO, &(haldata->re), comp_id)) != HAL_SUCCESS) goto error;
    if((res = hal_pin_float_new("deltakins.rf", HAL_IO, &(haldata->rf), comp_id)) != HAL_SUCCESS) goto error;
Оказывается в 2009 от HAL_SUCCESS избавились: http://git.linuxcnc.org/gitweb?p=linuxc ... 3bf1650aba

В общем надо HAL_SUCCESS заменить на 0.
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

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

Re: delta robot emc2

Сообщение z-vr »

Исправил на 0.
Получился модуль deltakins.ko .
Как его прописать в HAL или в .ini ?
И где и как геометрию указать?
Спасибо.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: delta robot emc2

Сообщение Serg »

Nick писал(а): В общем надо HAL_SUCCESS заменить на 0.
Несколько надёжней будет вот так:

#ifndef HAL_SUCCESS
#define HAL_SUCCESS 0
#endif

;)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

Спасибо.

Не понимаю как его прописать в HAL или в .ini ?
И где и как геометрию указать?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: delta robot emc2

Сообщение nkp »

попробуй в хал файл прописать:

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

loadrt deltakins
По идее он должен появиться здесь :
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

Ok.
А как переменные указать, которые прописаны были в файле кинематики?

struct haldata {
hal_float_t *e, *f, *re, *rf;
} *haldata = 0;

#define delta_e (*(haldata->e))
#define delta_f (*(haldata->f))
#define delta_re (*(haldata->re))
#define delta_rf (*(haldata->rf))

#else
double delta_e, delta_f, delta_re, delta_rf;
#endif
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

Я правильно понимаю?
loadrt deltakins e=115.0 f=457.3 re=232.0 rf=112.0
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: delta robot emc2

Сообщение nkp »

z-vr писал(а):Я правильно понимаю?loadrt deltakins e=115.0 f=457.3 re=232.0 rf=112.0
нет-прописывать кинематику сейчас незачем:
мы дабиваемся чтоб загрузился и определился наш(ваш) компонент
Пишем как выше и результат в студию
z-vr
Новичок
Сообщения: 18
Зарегистрирован: 05 июн 2012, 16:41
Репутация: 0
Контактная информация:

Re: delta robot emc2

Сообщение z-vr »

Print file information:
RUN_IN_PLACE=no
EMC2_DIR=
EMC2_BIN_DIR=/usr/bin
EMC2_TCL_DIR=/usr/share/emc/tcl
EMC2_SCRIPT_DIR=
EMC2_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/emc2
EMC2_CONFIG_DIR=
EMC2_LANG_DIR=/usr/share/emc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
EMC2_EMCSH=/usr/bin/wish8.5
EMC2 - 2.4.6
Machine configuration directory is '/home/cnc/emc2/configs/мой-станок'
Machine configuration file is 'мой-станок.ini'
INIFILE=/home/cnc/emc2/configs/мой-станок/мой-станок.ini
PARAMETER_FILE=emc.var
EMCMOT=motmod
EMCIO=io
TASK=milltask
HALUI=halui
DISPLAY=axis
NML_FILE=
Starting EMC2...
Starting EMC2 server program: emcsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting EMC2 IO program: io
Starting HAL User Interface program: halui
Shutting down and cleaning up EMC2...
Killing task emcsvr, PID=1727
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko': -1 Invalid module format
мой-станок.hal:10: exit value: 1
мой-станок.hal:10: insmod failed, returned -1
See the output of 'dmesg' for more information.
1727
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[ 416.824793] I-pipe: Domain RTAI registered.
[ 416.824807] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 416.824811] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[ 416.824822] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 416.824825] PIPELINE layers:
[ 416.824830] f93e5e20 9ac15d93 RTAI 200
[ 416.824834] c085cb20 0 Linux 100
[ 416.866381] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 416.866618] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 416.866627] RTAI[sched]: hard timer type/freq = APIC/8311960(Hz); default timing: periodic; linear timed lists.
[ 416.866633] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 2394093000 hz.
[ 416.866637] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[ 416.866784] RTAI[usi]: enabled.
[ 417.023143] RTAI[math]: loaded.
[ 417.150094] config string '0x378 out '
[ 417.183997] deltakins: exports duplicate symbol kinematicsInverse (owned by trivkins)
[ 417.930005] RTAI[math]: unloaded.
[ 418.047184] SCHED releases registered named ALIEN RTGLBH
[ 418.061378] RTAI[malloc]: unloaded.
[ 418.160030] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[ 418.167071] I-pipe: Domain RTAI unregistered.
[ 418.167086] RTAI[hal]: unmounted.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: delta robot emc2

Сообщение nkp »

insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko': -1 Invalid module format
может быть ошибка в самом модуле
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: delta robot emc2

Сообщение Nick »

Надо его сравнить с trikins... в смысле исходник, посмотреть чем они еще отличаются...
Ответить

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