work area doesn't recognize alt corexy kinematics
- poofjunior
- Offline
- New Member
Less
More
- Posts: 11
- Thank you received: 0
09 Jun 2015 16:44 #59646
by poofjunior
work area doesn't recognize alt corexy kinematics was created by poofjunior
Hi everyone,
I just got started with LinuxCNC and wrote a kinematics module to control an old CoreXY frame I built a while back.
The new kinematics, corexykins.c, appears to be working in that the tool end effector moves +/- X and +/-Y in world space, rather than diagonally, when I hit the jog keys. The issue I'm having is that the red grid doesn't adequately represent the workarea of the machine.
My gantry workarea is a square at about 17" by 17". If I set 0,0 in the lower left corner, then joint[0]'s range is 0 to 34 and joint[1]'s range is -17 to 17. This is because the joints end up being propagated through the motion model to show their true limits, where the inverse kinematics are:
joint_0 = (delta_x + delta_y)/2
joint_1 = (delta_x - delta_y)/2
When I plug in the range for joint[0] as 0 to 34 and joint[1] as -17 to 17, though, I get a square that's four times larger than the actual workarea of the gantry. It's a red square with the lower left corner at (0,-17) and upper right corner at (34,17).
I'd like to see a red square to display the soft limits with the origin (0, 0) at the bottom left corner and (17, 17) at the upper right corner (in world coordinates). Is there any way to directly write in the work area?
Thanks!
If anyone's interested, here's the corexy equations of motion
I just got started with LinuxCNC and wrote a kinematics module to control an old CoreXY frame I built a while back.
The new kinematics, corexykins.c, appears to be working in that the tool end effector moves +/- X and +/-Y in world space, rather than diagonally, when I hit the jog keys. The issue I'm having is that the red grid doesn't adequately represent the workarea of the machine.
My gantry workarea is a square at about 17" by 17". If I set 0,0 in the lower left corner, then joint[0]'s range is 0 to 34 and joint[1]'s range is -17 to 17. This is because the joints end up being propagated through the motion model to show their true limits, where the inverse kinematics are:
joint_0 = (delta_x + delta_y)/2
joint_1 = (delta_x - delta_y)/2
When I plug in the range for joint[0] as 0 to 34 and joint[1] as -17 to 17, though, I get a square that's four times larger than the actual workarea of the gantry. It's a red square with the lower left corner at (0,-17) and upper right corner at (34,17).
I'd like to see a red square to display the soft limits with the origin (0, 0) at the bottom left corner and (17, 17) at the upper right corner (in world coordinates). Is there any way to directly write in the work area?
Thanks!
If anyone's interested, here's the corexy equations of motion
Please Log in or Create an account to join the conversation.
12 Jun 2015 03:36 #59726
by andypugh
Replied by andypugh on topic work area doesn't recognize alt corexy kinematics
You probably need to use the joints_axes6 branch of LinuxCNC which has separate limits for axes and joints.
The following user(s) said Thank You: poofjunior
Please Log in or Create an account to join the conversation.
- poofjunior
- Offline
- New Member
Less
More
- Posts: 11
- Thank you received: 0
12 Jun 2015 14:13 - 12 Jun 2015 14:17 #59740
by poofjunior
Replied by poofjunior on topic work area doesn't recognize alt corexy kinematics
Thanks andypugh; compiling and using that branch did the trick. I now have a the right size workarea with the right software limits after editting the files as described in the
JointAxesBranch Wiki page
.
I'm getting one remaining issue as a result of running linuxcnc from that branch.
I can run linuxcnc once just fine with the new kinematics. If I close and re-open linuxcnc, I get:
I've tried the fix on the wiki by adding a linuxcnc.conf file as noted. Again, linuxcnc launches once successfully, but closing it and relaunching it throws the same error.
Could linuxcnc not be releasing the parport correctly?
Thanks again for the hand!
I'm getting one remaining issue as a result of running linuxcnc from that branch.
I can run linuxcnc once just fine with the new kinematics. If I close and re-open linuxcnc, I get:
Error: could not insert module /home/jvasquez/Projects/linuxcnc-mirror/rtlib/hal_parport.ko: Device or resource busy
I've tried the fix on the wiki by adding a linuxcnc.conf file as noted. Again, linuxcnc launches once successfully, but closing it and relaunching it throws the same error.
Could linuxcnc not be releasing the parport correctly?
Thanks again for the hand!
Last edit: 12 Jun 2015 14:17 by poofjunior. Reason: I wasn't finished adding in my URLs
Please Log in or Create an account to join the conversation.
12 Jun 2015 15:40 #59741
by andypugh
Did you not dry using the automatic conversion script?
lsmod might tell you useful things if you run it after linuxCNC has exited.
I don't think that is normal behaviour, however I am not using the parallel port on my machine so wouldn't have noticed.
I wonder if it is a permissions problem? If you are running run-in-place did the output of the "sudo make setuid" step show complete success?
Replied by andypugh on topic work area doesn't recognize alt corexy kinematics
Thanks andypugh; compiling and using that branch did the trick. I now have a the right size workarea with the right software limits after editting the files as described in the JointAxesBranch Wiki page .
Did you not dry using the automatic conversion script?
f I close and re-open linuxcnc, I get:
Error: could not insert module /home/jvasquez/Projects/linuxcnc-mirror/rtlib/hal_parport.ko: Device or resource busy
lsmod might tell you useful things if you run it after linuxCNC has exited.
I don't think that is normal behaviour, however I am not using the parallel port on my machine so wouldn't have noticed.
I wonder if it is a permissions problem? If you are running run-in-place did the output of the "sudo make setuid" step show complete success?
Please Log in or Create an account to join the conversation.
- poofjunior
- Offline
- New Member
Less
More
- Posts: 11
- Thank you received: 0
12 Jun 2015 21:38 #59747
by poofjunior
Replied by poofjunior on topic work area doesn't recognize alt corexy kinematics
I did run the automatic conversion script, though I had to make a few manual changes afterwards that linuxcnc prompted me with when it attempted to start with my configuration.
The output of sudo make setuid is
Before running linuxcnc, the output of lsmod is
After running linuxcnc once successfully, after which it refuses to work, the output is identical. (I copied both outputs to text files and ran diff on them.)
(Could linuxcnc not be "releasing control" of the parallel port when it quits the first time?)
Thanks again for taking a look!
The output of sudo make setuid is
chown root ../bin/linuxcnc_module_helper
chmod 4750 ../bin/linuxcnc_module_helper
chown root ../bin/pci_write
chmod 4750 ../bin/pci_write
chown root ../bin/pci_read
chmod 4750 ../bin/pci_read
Before running linuxcnc, the output of lsmod is
Module Size Used by
ppdev 12591 0
lp 12767 0
rfcomm 36117 0
bnep 17186 2
bluetooth 166348 10 bnep,rfcomm
uinput 17057 1
nfsd 202675 2
nfs 277039 0
nfs_acl 12464 2 nfs,nfsd
auth_rpcgss 32226 2 nfs,nfsd
fscache 35490 1 nfs
lockd 56898 2 nfs,nfsd
sunrpc 151263 6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl
loop 21832 0
hp_wmi 13059 0
sparse_keymap 12681 1 hp_wmi
rfkill 18403 3 hp_wmi,bluetooth
snd_hda_codec_realtek 53766 1
wmi 17148 1 hp_wmi
evdev 17099 18
coretemp 12771 0
snd_hda_intel 25789 1
snd_hda_codec 79439 2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 12911 1 snd_hda_codec
snd_pcm 69181 2 snd_hda_codec,snd_hda_intel
snd_page_alloc 12842 2 snd_pcm,snd_hda_intel
snd_seq 43338 0
snd_seq_device 12981 1 snd_seq
snd_timer 22188 2 snd_pcm,snd_seq
crc32c_intel 12625 0
parport_serial 16674 0
parport_pc 21896 1 parport_serial
parport 35208 3 lp,ppdev,parport_pc
button 12818 0
snd 46731 10 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_hda_codec,snd_hda_intel,snd_seq_device
psmouse 67176 0
radeon 778067 2
ttm 54921 1 radeon
serio_raw 12734 0
drm_kms_helper 26601 1 radeon
drm 169993 4 ttm,drm_kms_helper,radeon
soundcore 12891 1 snd
power_supply 13320 1 radeon
iTCO_wdt 16918 0
i2c_algo_bit 12648 1 radeon
i2c_core 23097 4 drm,drm_kms_helper,i2c_algo_bit,radeon
i7core_edac 22004 0
iTCO_vendor_support 12586 1 iTCO_wdt
edac_core 34036 3 i7core_edac
ext4 270189 1
crc16 12328 2 ext4,bluetooth
jbd2 54294 1 ext4
mbcache 12899 1 ext4
hid_apple 12555 0
usbhid 39608 0
hid 72252 2 usbhid,hid_apple
sg 25482 0
sd_mod 43403 3
sr_mod 21529 0
crc_t10dif 12333 1 sd_mod
cdrom 38893 1 sr_mod
floppy 51935 0
firewire_ohci 34902 0
firewire_core 46798 1 firewire_ohci
crc_itu_t 12332 1 firewire_core
microcode 17386 0
ahci 24918 2
libahci 22312 1 ahci
uhci_hcd 26254 0
tg3 129085 0
libphy 22438 1 tg3
libata 152992 2 ahci,libahci
scsi_mod 125436 4 sg,libata,sd_mod,sr_mod
ehci_hcd 43561 0
usbcore 124257 4 uhci_hcd,ehci_hcd,usbhid
usb_common 12339 1 usbcore
After running linuxcnc once successfully, after which it refuses to work, the output is identical. (I copied both outputs to text files and ran diff on them.)
(Could linuxcnc not be "releasing control" of the parallel port when it quits the first time?)
Thanks again for taking a look!
Please Log in or Create an account to join the conversation.
12 Jun 2015 22:08 #59748
by andypugh
If the output is actually identical then that seems to indicate the LinuxCNC hasn't made any changes to the loaded modules and their owners.
It's sometimes a good idea to blacklist lp. I have not noticed parport_serial before. But I may not have been paying attention
Replied by andypugh on topic work area doesn't recognize alt corexy kinematics
After running linuxcnc once successfully, after which it refuses to work, the output is identical. (I copied both outputs to text files and ran diff on them.)
(Could linuxcnc not be "releasing control" of the parallel port when it quits the first time?)
If the output is actually identical then that seems to indicate the LinuxCNC hasn't made any changes to the loaded modules and their owners.
It's sometimes a good idea to blacklist lp. I have not noticed parport_serial before. But I may not have been paying attention
Please Log in or Create an account to join the conversation.
- poofjunior
- Offline
- New Member
Less
More
- Posts: 11
- Thank you received: 0
12 Jun 2015 22:45 #59751
by poofjunior
Replied by poofjunior on topic work area doesn't recognize alt corexy kinematics
I've blacklisted lp and ppdev, at which point lsmod returns
Same issue, though where it works once, but not after attempting to restart it (unless I reboot).
Right now, I have both the preinstalled image (since I setup my machine with a liveUSB key) and a clone of the git repo on the joints_axes6 branch.
I built it according to the wiki's instructions:
and whenever I run the linuxcnc binary in the scripts folder I first run the rip-environment script:
I think the rip-environment script prevents multiple linuxcnc binaries from conflicting with each other, but I could be wrong. Could there be an issue that these two may be conflicting?
Thanks again!
parport 35208 0
Same issue, though where it works once, but not after attempting to restart it (unless I reboot).
Right now, I have both the preinstalled image (since I setup my machine with a liveUSB key) and a clone of the git repo on the joints_axes6 branch.
I built it according to the wiki's instructions:
cd src
./autogen.sh
./configure
make
make install-menus
sudo make setuid
and whenever I run the linuxcnc binary in the scripts folder I first run the rip-environment script:
me@my_pc: . ./rip_environment
me@my_pc: ./linuxcnc
I think the rip-environment script prevents multiple linuxcnc binaries from conflicting with each other, but I could be wrong. Could there be an issue that these two may be conflicting?
Thanks again!
Please Log in or Create an account to join the conversation.
Time to create page: 0.072 seconds