On Thu, Mar 13, 2014 at 01:40:42PM -0500, Charles Steinkuehler wrote: > > Currently, I can bring up LinuxCNC in joint mode and jog around, but > when I have the joints at their home positions and try to switch to > world mode, I immediately get joint following errors on the "x" and "y" > joints. > > I do have a kinematicsHome() function defined and exported, but it > doesn't seem like it's ever getting called, and my Y position (which is > non-zero at the joint home position) never shows anything other than 0. > I dug around in the source tree, but I don't see where/how the > kinematicsHome() function gets called. Is this still supported?
No, kinematicsHome is not used. The way it's supposed to work for inverse only: you home the joints; the joints are now in the position matching the world coordinates you specified in [TRAJ]HOME and you may switch into world mode; inverse kins start running on those world coordinates and you should get the joint positions you homed to, so you don't get a position jump. That's the bootstrap process. So be aware that if you ever switch out of world mode [and move any joint??] switching into world mode is disallowed until you home again. There is only one joint position where you can switch into world mode -- the joints-are-just-homed position -- because you've manually done something like forward kins for that position and specified the result in [TRAJ]HOME manually. Now that's all the way it's *SUPPOSED* to work. I don't know if inverse-only really works right, lately. If you haven't tried JA4 it might be better (it's better in very important ways for nontrivkins, but I have only used it with kinematics type BOTH). Writing forward kins for this doesn't look too hard... That might be easier than fixing inverse-only, considering your hard deadline. > The kinematics code is on github, and can be built with "comp" if you > just grab the wallykins.c file: > > https://github.com/cdsteinkuehler/linuxcnc/blob/cramps-config/src/emc/kinematics/wallykins.c I can't understand your kins without study and picture-drawing, but there's some worrying stuff in there: x = joints[0]; ... left_virtual = atan(-y/x); obvious problem is this is unsafe for joint position 0 (wild guess: is that your joint home position?), less obvious problem is you should probably be using atan2 so your quadrants aren't wonky. Find me on IRC if you think I can help more. Chris ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
