Имеется в виду файл другой какой-то кинематики и сравнить его с моим файлом?Nick писал(а):Надо его сравнить с trikins... в смысле исходник, посмотреть чем они еще отличаются...
delta robot emc2
Re: delta robot emc2
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: delta robot emc2
Код: Выделить всё
/********************************************************************
* Description: trivkins.c
* Trivial kinematics for 3 axis Cartesian machine
*
* 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 "kinematics.h" /* these decls */
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)
{
joints[0] = pos->tran.x;
joints[1] = pos->tran.y;
joints[2] = pos->tran.z;
joints[3] = pos->a;
joints[4] = pos->b;
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("trivkins");
if(comp_id > 0) {
hal_ready(comp_id);
return 0;
}
return comp_id;
}
void rtapi_app_exit(void) { hal_exit(comp_id); }Re: delta robot emc2
Если я просто ноль прописал это не могло повлиять или надо как тут?s3301 писал(а):Несколько надёжней будет вот так:Nick писал(а): В общем надо HAL_SUCCESS заменить на 0.
#ifndef HAL_SUCCESS
#define HAL_SUCCESS 0
#endif
Re: delta robot emc2
Этот tripodkins.c больше похож на мой, но наверное мне это не поможет.
Что мой, что тот, что этот темный лес для меня.
Что мой, что тот, что этот темный лес для меня.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: delta robot emc2
если это работало у других- значит заработает и у нас!
все дело только во времени.
для меня си - это тоже иероглифы.Но есть коллективный разум-он поможет.
все дело только во времени.
для меня си - это тоже иероглифы.Но есть коллективный разум-он поможет.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: delta robot emc2
Не, похоже модуль неправильно скомпилился.nkp писал(а):insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko': -1 Invalid module format
может быть ошибка в самом модуле
Что говорят
file /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
и
modinfo /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
?
Последний раз редактировалось Serg 08 июн 2012, 20:32, всего редактировалось 1 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- PKM
- Почётный участник

- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: delta robot emc2
я бы не надеялся на comp
в таких случаях скачиваю исходники и редактирую одну из готовых кинематик, потом полностью компилирую linuxcnc для run-in-place
правда, компилировать приходится очень много раз, пока не заработает...
в таких случаях скачиваю исходники и редактирую одну из готовых кинематик, потом полностью компилирую linuxcnc для run-in-place
правда, компилировать приходится очень много раз, пока не заработает...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: delta robot emc2
В данном случае эта запись и замена на 0 развнозначны, но при заменах можно что-нибудь пропустить, а эта запись, особенно если расположить её в правильном месте сама "поменяет" везде.z-vr писал(а): Если я просто ноль прописал это не могло повлиять или надо как тут?
Можно было ещё поменять добавив в опции компилятору "-DHAL_SUCCESS=0", например в Makefile в переменную CFLAGS.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: delta robot emc2
попробовал я проделать все эти действия:
Файл: файл положил /usr/src/linux-headers-2.6.32-122-rtai/deltakins.c
сделал comp --install deltakins.c
(все под рутом)
и:
после записи в хал:
результат:
Файл: файл положил /usr/src/linux-headers-2.6.32-122-rtai/deltakins.c
сделал comp --install deltakins.c
(все под рутом)
не знаю что это значит,но:s3301 писал(а):Что говорят file /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko и modinfo /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
Код: Выделить всё
root@nkp-desktop:/usr/src/linux-headers-2.6.32-122-rtai# file /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
/usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not strippedКод: Выделить всё
root@nkp-desktop:/usr/src/linux-headers-2.6.32-122-rtai# modinfo /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
filename: /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
license: GPL
srcversion: 87EF434EF176B8BE61DAA0F
depends: hal_lib
vermagic: 2.6.32-122-rtai SMP mod_unload 586TSCКод: Выделить всё
loadrt deltakins- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: delta robot emc2
Я тоже в сях не силен...
Меня вот это смущает , что за "error:" ?!? (4-я строчка снизу)
А что они должны говорить?
--------------------------
Т.е. заработало???
А что ты сделал не так?
Меня вот это смущает , что за "error:" ?!? (4-я строчка снизу)
Код: Выделить всё
int rtapi_app_main(void) {
int res = 0;
comp_id = hal_init("deltakins");
if(comp_id < 0) return comp_id;
haldata = hal_malloc(sizeof(struct haldata));
if(!haldata) goto error;
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;
delta_e = delta_f = delta_re = delta_rf = 1.0;
hal_ready(comp_id);
return 0;
error:
hal_exit(comp_id);
return res;
}
вроде ошибок при компилировании не было...s3301 писал(а):Не, похоже модуль неправильно скомпилился.Что говорят
А что они должны говорить?
--------------------------
Т.е. заработало???
А что ты сделал не так?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: delta robot emc2
В исходниках раскомментировалNick писал(а):Т.е. заработало??? А что ты сделал не так?
e = 115.0;
f = 457.3;
re = 232.0;
rf = 112.0;
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: delta robot emc2
file - по содержимому определят тип файла, не расширение после имени, а текст это, картинка или ещё что.nkp писал(а):не знаю что это значит,но:
modinfo - как можно догдаться показывает специфическую информацию о модуле.
Вобщем с этим всё в порядке.
я пока не силён в этом API, но мне показалось, что параметры должны передаваться как-то с помощью пинов, в имени которых есть буквы типа "deltakins.e"nkp писал(а):В исходниках раскомментировал
Кстати, если пробуете раскоментировать, то лучше так:
double e = 115.0;
...
Это метка, на которую происходит переход при выполнении "goto error".Nick писал(а):Меня вот это смущает , что за "error:" ?!? (4-я строчка снизу)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
xentaur
- Опытный
- Сообщения: 178
- Зарегистрирован: 09 ноя 2010, 02:29
- Репутация: 1
- Откуда: Украина Харьков
- Контактная информация:
Re: delta robot emc2
Это не для всех. Некоторые кинематики только во время компиляции параметры принимают.s3301 писал(а):я пока не силён в этом API, но мне показалось, что параметры должны передаваться как-то с помощью пинов, в имени которых есть буквы типа "deltakins.e"
Re: delta robot emc2
Повторил все, у меня при компиляции такие предупреждения:nkp писал(а):#29 nkp » Вчера, 23:29
попробовал я проделать все эти действия:
Файл:
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/tmp790I3i/deltakins.o
/tmp/tmp790I3i/deltakins.c:7: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:7: warning: type defaults to ‘int’ in declaration of ‘e’
/tmp/tmp790I3i/deltakins.c:8: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:8: warning: type defaults to ‘int’ in declaration of ‘f’
/tmp/tmp790I3i/deltakins.c:9: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:9: warning: type defaults to ‘int’ in declaration of ‘re’
/tmp/tmp790I3i/deltakins.c:10: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:10: warning: type defaults to ‘int’ in declaration of ‘rf’
/tmp/tmp790I3i/deltakins.c: In function ‘delta_calcAngleYZ’:
/tmp/tmp790I3i/deltakins.c:119: warning: ISO C90 forbids mixed declarations and code
/tmp/tmp790I3i/deltakins.c:124: warning: ISO C90 forbids mixed declarations and code
/tmp/tmp790I3i/deltakins.c: In function ‘kinematicsInverse’:
/tmp/tmp790I3i/deltakins.c:147: warning: ISO C90 forbids mixed declarations and code
Building modules, stage 2.
MODPOST 1 modules
WARNING: "hal_init" [/tmp/tmp790I3i/deltakins.ko] undefined!
WARNING: "hal_exit" [/tmp/tmp790I3i/deltakins.ko] undefined!
WARNING: "hal_malloc" [/tmp/tmp790I3i/deltakins.ko] undefined!
WARNING: "hal_pin_float_new" [/tmp/tmp790I3i/deltakins.ko] undefined!
WARNING: "hal_ready" [/tmp/tmp790I3i/deltakins.ko] undefined!
CC /tmp/tmp790I3i/deltakins.mod.o
LD [M] /tmp/tmp790I3i/deltakins.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-122-rtai'
Сделал modinfo:
root@cnc-desktop:/usr/src/linux-headers-2.6.32-122-rtai# modinfo /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
filename: /usr/realtime-2.6.32-122-rtai/modules/emc2/deltakins.ko
license: GPL
srcversion: 87EF434EF176B8BE61DAA0F
depends:
vermagic: 2.6.32-122-rtai SMP mod_unload 586TSC
У меня нет depends?
в примере depends: hal_lib
и EMC2 выдает:
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=2014
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 Unknown
symbol in module
мой-станок.hal:10: exit value: 1
мой-станок.hal:10: insmod failed, returned -1
See the output of 'dmesg' for more information.
2014
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Kernel message information:
[ 879.230015] I-pipe: Domain RTAI registered.
[ 879.230031] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[ 879.230035] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu
4.4.3-4ubuntu5) .
[ 879.230046] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL
IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[ 879.230050] PIPELINE layers:
[ 879.230055] f85b4e20 9ac15d93 RTAI 200
[ 879.230059] c085cb20 0 Linux 100
[ 879.273496] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[ 879.273739] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI
OWN KTASKs>, kstacks pool size = 524288 bytes.
[ 879.273750] RTAI[sched]: hard timer type/freq = APIC/8311990(Hz);
default timing: periodic; linear timed lists.
[ 879.273755] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq =
2394121000 hz.
[ 879.273759] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[ 879.273908] RTAI[usi]: enabled.
[ 879.428590] RTAI[math]: loaded.
[ 879.598716] config string '0x378 out '
[ 879.605126] deltakins: Unknown parameter `e'
[ 880.385404] RTAI[math]: unloaded.
[ 880.506549] SCHED releases registered named ALIEN RTGLBH
[ 880.521379] RTAI[malloc]: unloaded.
[ 880.620033] RTAI[sched]: unloaded (forced hard/soft/hard transitions:
traps 0, syscalls 0).
[ 880.627128] I-pipe: Domain RTAI unregistered.
[ 880.627144] RTAI[hal]: unmounted.
Может я EMC2 установил c LiveCD, а надо было из SRC?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: delta robot emc2
у меня убунта 10.04 емс 2.5 установлена с CD
а может ругается на наниаши переменные
попробовать как советовали:
а может ругается на наниаши переменные
Код: Выделить всё
/tmp/tmp790I3i/deltakins.c:7: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:7: warning: type defaults to ‘int’ in declaration of ‘e’
/tmp/tmp790I3i/deltakins.c:8: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:8: warning: type defaults to ‘int’ in declaration of ‘f’
/tmp/tmp790I3i/deltakins.c:9: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:9: warning: type defaults to ‘int’ in declaration of ‘re’
/tmp/tmp790I3i/deltakins.c:10: warning: data definition has no type or storage class
/tmp/tmp790I3i/deltakins.c:10: warning: type defaults to ‘int’ in declaration of ‘rf’Код: Выделить всё
double e = 115.0;Re: delta robot emc2
У меня 10.04 и 2.4.6
сеючас обновлю EMC
сеючас обновлю EMC
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: delta robot emc2
Нужно в объявлении переменных написать вот так:z-vr писал(а):type defaults to ‘int’ in declaration of ‘e’
Ошибка говорит, что не задан тип переменной по этому по дефолту он ставится в int, т.е. в целое число. А он должен быть действительным числом, т.к. потом с этими параметрами производятся различные хитрые вычисления.UAVpilot писал(а):double e = 115.0;
Re: delta robot emc2
Пока добился этого:Nick писал(а):Нужно в объявлении переменных написать вот так:z-vr писал(а):type defaults to ‘int’ in declaration of ‘e’Ошибка говорит, что не задан тип переменной по этому по дефолту он ставится в int, т.е. в целое число. А он должен быть действительным числом, т.к. потом с этими параметрами производятся различные хитрые вычисления.UAVpilot писал(а):double e = 115.0;
root@cnc-desktop:/usr/src/linux-headers-2.6.32-122-rtai# comp --install deltakins.c
make KBUILD_EXTRA_SYMBOLS=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/Module.symvers -C /usr/src/linux-headers-2.6.32-122-rtai SUBDIRS=`pwd` CC=gcc V=0 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-122-rtai'
CC [M] /tmp/tmpoiqJBq/deltakins.o
/tmp/tmpoiqJBq/deltakins.c: In function ‘delta_calcAngleYZ’:
/tmp/tmpoiqJBq/deltakins.c:119: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpoiqJBq/deltakins.c:124: warning: ISO C90 forbids mixed declarations and code
/tmp/tmpoiqJBq/deltakins.c: In function ‘kinematicsInverse’:
/tmp/tmpoiqJBq/deltakins.c:147: warning: ISO C90 forbids mixed declarations and code
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/tmpoiqJBq/deltakins.mod.o
LD [M] /tmp/tmpoiqJBq/deltakins.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-122-rtai'
cp deltakins.ko /usr/realtime-2.6.32-122-rtai/modules/linuxcnc/
root@cnc-desktop:/usr/src/linux-headers-2.6.32-122-rtai# modinfo /usr/realtime-2.6.32-122-rtai/modules/linuxcnc/deltakins.ko
filename: /usr/realtime-2.6.32-122-rtai/modules/linuxcnc/deltakins.ko
license: GPL
srcversion: CD4663657E9DC151030172C
depends: hal_lib
vermagic: 2.6.32-122-rtai SMP mod_unload 586TSC
root@cnc-desktop:/usr/src/linux-headers-2.6.32-122-rtai# modinfo /usr/realtime-2.6.32-122-rtai/modules/linuxcnc/deltakins.ko
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: delta robot emc2
И LinuxCNC все еще не запускается? Покажи ошибку...
Вообще, на сколько я понимаю:
Вообще, на сколько я понимаю:
Это старый стандарт, который говорит, что все объявления переменных должны быть только в начале блоков {...}, но имхо это пережиток...z-vr писал(а):/tmp/tmpoiqJBq/deltakins.c:124: warning: ISO C90 forbids mixed declarations and code
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: delta robot emc2
По поводу "depends: hal_lib", теперь уже просто как ликбез:
Это говорит о том, что для работы модуля нужен модуль hal_lib.
z-vr, у вас по какой-то причине при сборке модуля компилятор/линкер не увидел hal_lib и не постоил соотв. связь, решив, что это будет сделано на этапе выполнения самим модулем. А т.к. модуль этого не делает, то получили "Unknown symbol in module", т.е. модуль использует некую функцию, но никто не знает где её взять.
Ну а чтоб при компиляции совсем не ругалось надо в в функциях 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;
...
Это говорит о том, что для работы модуля нужен модуль hal_lib.
z-vr, у вас по какой-то причине при сборке модуля компилятор/линкер не увидел hal_lib и не постоил соотв. связь, решив, что это будет сделано на этапе выполнения самим модулем. А т.к. модуль этого не делает, то получили "Unknown symbol in module", т.е. модуль использует некую функцию, но никто не знает где её взять.
Ну а чтоб при компиляции совсем не ругалось надо в в функциях 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;
...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
