>> <...> >> Yes, EMC2 definitely can do this. There is a general robot kinematics >> file. You have to >> measure the length of the arms between joints and put that into the >> program, so the transform >> matrices are built correctly. You also have to establish the alignment >> to each joint's home position. >> In EMC's sample-configs directory, you will find a puma sub-directory. >> It calls in the kinematics file "pumakins". >> >> Jon >> >> > Oooh, I'm wetting my pants! My idea is closer to working than I thought. > :)
Right, it has been done before with some sort of results.[1] Actually there are a couple kinematics calculations included with emc2. For serial robots and for parallel kinematics. For serial robots based on the type there are: * scarakins - for SCARA type robots [2] * pumakins - kinematics file for a Unimate PUMA (antorpomorphic robot). I worked a while with these calculations, but I couldn't completely figure out the exact type of the robot (unimate had a couple puma's, with left and right arm configurations). There is a vismach simulation for pumakins, but it doesn't work 100% (straight XYZ lines aren't quite straight). * genserkins - general serial kinematics: kinematic calculation for any serial (max. 7 DOF) robot[3]. These functions are suitable for any type of industrial robot (which isn't a parallel kins). The kins support (although minor tweaks are needed) rotary and prismatic joints, so you only need to have a drawing of your robot, and you can use them. There is a small problem, that the kins sometimes don't converge.. but I haven't looked into that yet. I created a new puma configuration, based on genserkins, and the puma dimentions of Sam Sokolik's robot. I then did a 3D model of his puma, and created a vismach model from that. Once that was set up, I could run a regular g-code program and check if the result is ok. As you can see from the screenshots [4], the results are dead on. So the kins are working 100% accurate (when they are working ;). After the good news, there's time for the bad news ;) The kins (genserkins mostly) are working most of the time. There are some glitches when they don't (not sure yet why), but that made me realize emc2's motion controller currently doesn't really handle cases when kins aren't working. It's probably a non-recoverable error, but it should enter estop, stop what it's doing etc. Currently motion is hanging, so that means bigger problems. I would advise to test genserkins on simulated machines, until confident it works ok. The emc2 code (some part inherited from EMC1) suffers from mixup of axes and joints. There is ongoing work to clean this out, but it's still pretty far from beeing useable. This means that in some places things are mixed up. emc2 takes axes settings from the ini, but sets them as the joint limits (step generator) but not as the trajectory's joint-command outputs. In traj the limits are wrongly enforced as carthesian limits on the axes. This means it's quite some work to get a good config working (probably some hacking involved). Regards, Alex [1] - http://www.youtube.com/watch?v=TLxwAX8G3oI [1] - http://www.youtube.com/watch?v=AoOWi1r6-Eo [2] - http://en.wikipedia.org/wiki/SCARA [3] - http://en.wikipedia.org/wiki/Serial_manipulator [4] - http://juve.ro/blog/puma ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
