*First some background information:*
My name is Lukas and I am graduate student in Mechanical Engineering
in South Africa. We have designed and built a testmodel of a "planar
3dof hexapod". It consists of a moving platform connected to a fixed
base via 3 linear actuators (see the attached picture). The linear
actuators are ball screws driven by stepper motors. Our planar mechanism
has 3 dof: 2 translations and 1 rotation.
The idea is to (eventually) retrofit a "non-CNC machine" with our "planar
3dof hexapod", so that the workpiece to be machined can be attached
to the moving platform of the hexapod. The machining operation is
then done by controlling the hexapod. The testmodel was built to
test the feasibility of this idea. The workpiece, in this case a
perspex plate, will be mounted to the moving platform of the testmodel.
The tool, in this case a stationary pen, will mounted to the frame of the
testmodel. The pen must then draw the required toolpath on the perspex
plate by manipulating the hexapod.
*Now for the challenge:*
As mentioned above, our testmodel is driven by three stepper motors,
and we want to use EMC to control them. Being a Mechanical Engineer,
I am glad to say that I have two people (Hannes & Adriaan) helping
me with the electronics and controls. We are still trying to compile
EMC, and here is where we need your help. The "compile errors" we
get are listed below:
Script started on Tue
Nov 14 14:05:04 2000
[root-at-localhost src]#
make PLAT=rtlinux_2_0 ALL all
(cd emcnml; make PLAT=rtlinux_2_0
-k all;)
make[1]: Entering directory
`/root/emcwork/emc/src/emcnml'
make[1]: Nothing to
be done for `all'.
make[1]: Leaving directory
`/root/emcwork/emc/src/emcnml'
(cd emcsim; make PLAT=rtlinux_2_0
-k all;)
make[1]: Entering directory
`/root/emcwork/emc/src/emcsim'
make[1]: Nothing to
be done for `all'.
make[1]: Leaving directory
`/root/emcwork/emc/src/emcsim'
(cd emcmot; make PLAT=rtlinux_2_0
-k all;)
make[1]: Entering directory
`/root/emcwork/emc/src/emcmot'
( test; \
gcc emcstepmot.c -c
-DRTLINUX -Drtlinux -Drtlinux2 -DNO_STDIO_SUPPORT -Drtlinux_2_0
-I/usr/src/rtlinux-2.2/linux/include -I/usr/src/rtlinux-2.2/include -I/usr/src/rtlinux-2.2
-I/usr/src/rtlinux-2.2/include/posix -Wall -Wstrict-prototypes -O2 -D__RTL__
-D__KERNEL__ -DMODULE -pipe -fno-strength-reduce -m486 -malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=686 -fomit-frame-pointer
-DPLATNAME=\"rtlinux_2_0\" \
-I../../../emc/plat/rtlinux_2_0/include
-I../../../emc/plat/rtlinux_2_0/include -I../../../rcslib/plat/rtlinux_2_0/include
\
-DSTEPPER_MOTORS \
-o ../../../emc/plat/rtlinux_2_0/lib/emcstepmot.o
)
In file included from
emcstepmot.c:263:
/usr/src/rtlinux-2.2/include/rtl_sched.h:20:
`#include' expects "FILENAME" or <FILENAME>
In file included from
emcstepmot.c:263:
/usr/src/rtlinux-2.2/include/rtl_sched.h:53:
parse error before `RTL_FPU_CONTEXT'
/usr/src/rtlinux-2.2/include/rtl_sched.h:53:
warning: no semicolon at end of struct or union
/usr/src/rtlinux-2.2/include/rtl_sched.h:63:
parse error before `}'
/usr/src/rtlinux-2.2/include/rtl_sched.h:86:
field `rtl_linux_task' has incomplete type
/usr/src/rtlinux-2.2/include/rtl_sched.h:87:
field `idle_task' has incomplete type
/usr/src/rtlinux-2.2/include/rtl_sched.h:
In function `pthread_setschedparam':
/usr/src/rtlinux-2.2/include/rtl_sched.h:226:
dereferencing pointer to incomplete type
/usr/src/rtlinux-2.2/include/rtl_sched.h:
In function `pthread_getschedparam':
/usr/src/rtlinux-2.2/include/rtl_sched.h:232:
dereferencing pointer to incomplete type
make[1]: *** [../../../emc/plat/rtlinux_2_0/lib/emcstepmot.o]
Error 1
make[1]: *** No rule
to make target `../../../emc/plat/rtlinux_2_0/lib/emcstepmot.o', needed
by `../../../emc/plat/rtlinux_2_0/lib/steppermod.o'.
make[1]: Target `all'
not remade because of errors.
make[1]: Leaving directory
`/root/emcwork/emc/src/emcmot'
make: *** [all] Error
2
[root-at-localhost src]#
exit
exit
Script done on Tue Nov 14 14:05:59 2000
Any help and/or comments will be greatly appreciated.
Thank you
Lukas du Plessis