Thats one thing I'm not totally positive about yet, but from how it looks in the source I can use home_offset on one the second joint to correct skew, leaving the first at zero.
For instance.. Distance between homes switches is 2in. INI Specifies Joint0, home_offset = 0 home = 0 Joint1, home_offset = -2in home = 0 Both linked joints will travel towards home switch. Joint0 trips first, puts Joint1 in follow mode. After joint0 completes it's home it loads its position with 0(home_offset) then it moves to home.. (which will just be a bit of overshoot) After Joint0 stops, Joint1 starts homing and Joint0 goes into follow mode.. They both travel towards joint1 home. After Joint1 completes its home it's loaded with -2(home_offset). Because Joint0 was following it should also be at -2 as well.. so they are now both loaded with -2 for position. On second thoughts It might be better to stop homing joint0 at the HOME_FINAL_MOVE_START state instead of HOME_FINISHED.. Then start homing joint1.. after they are both this far and loaded with their home_offset values they stop following each other and both drive to their HOME positions and at the end of the move any skew should be corrected? right? I guess I need to add another error check to make sure both joints HOME value is the same. Thats what I was thinking about, I'm still new to EMC so not sure if this will work the way I'm thinking. Alex Joni wrote: > HI Cliff, > > looks good so far. > What happens when both are homed, but the home position is different (slight > skew). > Does it get corrected? Does the offset get remembered? > (At least that's what I think happens if one joint _always_ follows the > other one during homing). > > Regards, > Alex > > > ----- Original Message ----- > From: "Cliff Blackburn" <cblackb...@powertechrepairs.com> > To: <emc-developers@lists.sourceforge.net> > Sent: Tuesday, April 20, 2010 10:11 AM > Subject: [Emc-developers] Coordinated Gantry Homing by Linked Joints > > > >> I started working on a modification to homing.c so you can home a gantry >> style machine properly I have started working on it but have more work >> before i find how many bugs I created in the process. It adds a option >> to link 2 joints together. The joints will home themselves one at a time >> while maintaining the same velocities. Quite a few commercial machines >> can do this out of the box and I think EMC should too. >> >> Ideally I don't want to touch what already works and think the best >> solution is to introduce custom homing modules (simple, gantry, >> crazymach) which can do coordinated motion if needed. Although this >> seems like the most configurable + ideal way it's also is the most work >> :( This way *seems* simple with minimal changes. >> >> This is the basic plan so far.....What do you think, good/bad idea? is >> it useful to anyone? or should I go a completely different method. >> >> Plan >> - Add a HOME_LINK_JOINT property to the joints. This property defines >> which joint is linked linked to it. >> - It will at all times will insure both joints move together. (Const vel >> at least) >> - The first joint to come into contact with it's switch will put the >> second into a HOME_LINK_WAIT waiting state. >> - While the second is in the waiting state the first will complete it's >> home and follow all of it's moves. >> - The move following is done in the home_start_move() funtion >> - Once the first joint has come to a complete stop after homing it will >> be sent to HOME_FINISHED state. >> Now it will set the second joints state to HOME_START >> - The second joint will now follow the first until it also hits the >> HOME_FINISHED state >> - The joints will check each other see they are both completed and sets >> the HOMING flag off and HOMED true...etc... >> >> Error Checking >> - Must check all velocities, accels, etc.. are equal between joints, if >> not it's a warning and use the smallest values from the two. >> - Joints which are linked must have the same home_sequence. If not it is >> a critical error and quit >> - Joints can only link to 1 other joint, and that joint can only link >> back to the orig. (e.g. cannot link 3 or have some kinda chain.. >> Simplicity) >> >> Requirements >> - Make minimal changes to the homing configuration. >> - Don't break working home procedures...! >> - Allow all current home methods even if the 2 linked joints use a >> different procedure. >> - Up to user to specify home offset values to adjust for table skew and. >> - Doesn't matter which joint homes first >> - Always stay in sync. >> - An error in one will trip the other >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Emc-developers mailing list >> Emc-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/emc-developers >> >> > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers