Re: [Emc-users] Charge Pump on Wiki

2011-01-10 Thread Slavko Kocjancic
S, Kirk Wallace pis(e:
 On Sun, 2011-01-09 at 16:13 -0800, Kirk Wallace wrote:
 In case anyone might be interested, I added a charge pump page to the
 wiki. If any one has charge pump information or machine configurations
 they would like to share on that page, please add it to the page.
 Corrections are welcome too.

 http://wiki.linuxcnc.org/emcinfo.pl?About_Charge_Pumps

 Oops, I forgot the subject:(
As e_stop_latch has near same output (one of them) it's good idea to 
mention it in that wiki. And just comment for 567 circuit. The 5V peak 
to peak is little high for them. Just use voltage divider (1/10 ratio) 
on input and should work.
--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Kearney and Trecker Milwaukeematic IIIb progress

2011-01-10 Thread Mark Wendt
These big machines running EMC2 are just very cool!  Been watching this 
big girl come to life since you started posting the vids.  Thanks for 
keeping us in the loop Sam!

Mark

On 01/09/2011 11:30 AM, sa...@empirescreen.com wrote:
 That is the spindle collet unclamp.  It moves forward about .05 inch.  seems 
 to not be a problem with the encoder setup.  (it really was the only sane 
 solution..) ;)

 sam

 On Sun, 09 Jan 2011 07:02:59 -0500
   Mark Wendt (Contractor)mark.we...@nrl.navy.mil  wrote:

 Pretty neat stuff Sam!  What is that last operation in that video -
 where it looks like that big nut moving laterally?  Is that part of
 the tool changing process?

 Mark

 At 07:40 PM 1/8/2011, you wrote:
  
 Ok - have the spindle encoder mounted.

 http://www.youtube.com/watch?v=5vvP4L_hr90

 rigid tapping works - I will make a video soon.

 (having some tool prep issues.  Master seems to pause everything
 while it is pre-fetching the tool)

 sam


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Charge Pump on Wiki

2011-01-10 Thread Kirk Wallace
On Mon, 2011-01-10 at 08:56 +0200, Slavko Kocjancic wrote:
... snip
 As e_stop_latch has near same output (one of them) it's good idea to 
 mention it in that wiki. 

I mentioned in the wiki that it may be appropriate to use the charge
pump detector as _part_ of an e-stop system. E-stop is a bigger subject
than charge pump. This may or may not be something I'll have time to get
to.

Oops, I now realize you're saying that e_stop_latch has a charge pump
like feature? I'll look into it, thanks.

 And just comment for 567 circuit. The 5V peak 
 to peak is little high for them. Just use voltage divider (1/10 ratio) 
 on input and should work.

Yes, I noticed the .2V RMS recommended maximum mentioned in the app.
note. I used a 5k potentiometer as a voltage divider and found that the
output changed fairly randomly at different settings for the same
frequency. Varying the frequency also had peaks and valleys, which was
fairly discouraging. Pulse behavior, as opposed to 50% duty, wasn't very
good. I need to get the scope out to see whats going on, but the
cap/diode and AVR circuits already work well, so I'm beginning to loose
interest in this one. If anyone has a working, or near working, circuit
(with square wave or pulse input), I can post it, but I'm not certain
I'll do much more with the 567.
-- 
Kirk Wallace
http://www.wallacecompany.com/machine_shop/
http://www.wallacecompany.com/E45/index.html
California, USA


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Charge Pump on Wiki

2011-01-10 Thread Kirk Wallace
On Mon, 2011-01-10 at 07:21 -0800, Kirk Wallace wrote:
 On Mon, 2011-01-10 at 08:56 +0200, Slavko Kocjancic wrote:
 ... snip
  As e_stop_latch has near same output (one of them) it's good idea to 
  mention it in that wiki. 
 
 I mentioned in the wiki that it may be appropriate to use the charge
 pump detector as _part_ of an e-stop system. E-stop is a bigger subject
 than charge pump. This may or may not be something I'll have time to get
 to.
 
 Oops, I now realize you're saying that e_stop_latch has a charge pump
 like feature? I'll look into it, thanks.
... snip

I think I get it, e-stop latch should be mentioned along with the other
pump enable inputs on the wiki page. A Mazak page
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?MazakEstopChain 

mentions the charge pump and latch so I'll need to study it. My feeling
right now is that the pump should be on any time EMC2 is sane, or sane
with the machine On, with the CP detector as just another switch in
the e-stop loop.
-- 
Kirk Wallace
http://www.wallacecompany.com/machine_shop/
http://www.wallacecompany.com/E45/index.html
California, USA


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Charge Pump on Wiki

2011-01-10 Thread Kirk Wallace
On Mon, 2011-01-10 at 07:47 -0800, Kirk Wallace wrote:
 On Mon, 2011-01-10 at 07:21 -0800, Kirk Wallace wrote:
  On Mon, 2011-01-10 at 08:56 +0200, Slavko Kocjancic wrote:
  ... snip
   As e_stop_latch has near same output (one of them) it's good idea to 
   mention it in that wiki. 

Uugh, there is a charge pump, or rather, watchdog in estop-latch,

...
  24 if( ok_out ) {
  25 /* toggle watchdog */
  26 watchdog = !watchdog;
  27 }
  28 } else {
...


-- 
Kirk Wallace
http://www.wallacecompany.com/machine_shop/
http://www.wallacecompany.com/E45/index.html
California, USA


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] HAL Documentation: canonical encoder, linksp, linkps, newsig

2011-01-10 Thread John Kasunich


On Sun, 09 Jan 2011 15:04 -0800, Kirk Wallace
kwall...@wallacecompany.com wrote:
 On Sun, 2011-01-09 at 12:41 -0600, Jon Elson wrote:

  The hal component encoder is a specific implementation of an encoder, 
  equivalent in function
  to a general encoder counter module which might be partly implemented in 
  hardware or software.
 
 I think the term encoder has been used rather loosely, but Wikipedia
 states:
 
 An encoder is a device, circuit, transducer, software program, algorithm
 or person that converts information from one format or code to
 another,...
 
 
 To me, that means a rotary disk and sensor encodes position information
 into a set of quadrature signals. Then, I consider that the quadrature
 signals are decoded by the misnamed encoder component into counts
 which are then stored and managed by a count/position register --
 encoder = decoder = counter.

Technically you are probably correct, but if we used that nomenclature
we would confuse the hell out of everybody.  In the CNC world, the
encoder is the thing connected to a shaft that generates the pulses.
To be precise we should say absolute encoder or incremental
quadrature
encoder or one of several other possibilities, but the default meaning
is incremental quadrature encoder, and when we refer to encoder
signals
we mean quadrature, possibly with an index pulse.

The HAL component is technically a decoder and counter of those signals,
but if we called it a decoder people would be really confused.  Calling
it an encoder counter or encoder interface would be better than just
encoder, but people usually know what we mean.  Likewise, hardware
boards that support quadrature signals with or without index pulses
usually call them encoder inputs or encoder counters.
 
 It's really just mice nuts, but I'm doing jury duty right now, so I may
 me in a lawyer's frame of mind.

Lawyers, ewww.

-- 
  John Kasunich
  jmkasun...@fastmail.fm


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] Serial kinematics

2011-01-10 Thread Viesturs Lācis
2011/1/5 Alex Joni alex.j...@robcon.ro:
Please correct me, if I am wrong, but if I will change this line:
  81         genser-links[t].quantity = GO_QUANTITY_ANGLE;
to this one:
  81         genser-links[t].quantity = GO_QUANTITY_LENGTH;
then it will change all the joints from angular to linear. Is that correct?

 Yes, that is correct

 snip

 the adding HAL pins looks ok, but one would need to test/debug it to say
 that it's 100% ok.

Ok, thanks!

 So now the remaining part is to create code that would select either
 GO_QUANTITY_ANGLE or GO_QUANTITY_LENGTH, based on type value - if it
 is 0, then GO_QUANTITY_LENGTH, if it is 1, then GO_QUANTITY_ANGLE.

 That should be fairly simple:
 change line 81 to:
     genser-links[t].quantity = TYPE(t);


Since my impression is that the TYPE(t) value cannot be set to
GO_QUANTITY_LENGTH or GO_QUANTITY_ANGLE, but rather it will be either
1 or 0, determining, if joint is angular or linear, I would like to
ask, if anyone could comment, which of the following examples of code
is correct to set value of genser-links[t].quantity to be
GO_QUANTITY_LENGTH or GO_QUANTITY_ANGLE, depending on TYPE(t) value (I
am not sure, if the syntax is correct. Please, someone with knowledge
in programming, step in and point me into direction of correct code,
if I have made some mistakes.):

1)
for (t = 0; t  GENSER_MAX_JOINTS; t++) {
if (*(haldata-type[t]) = 0){
genser-links[t].u.dh.d = 0;
genser-links[t].type = GO_LINK_DH;
genser-links[t].quantity = GO_QUANTITY_LENGTH;
} else {
genser-links[t].u.dh.a = A(t);
genser-links[t].u.dh.alpha = ALPHA(t);
genser-links[t].u.dh.d = D(t);
genser-links[t].u.dh.theta = 0;
genser-links[t].type = GO_LINK_DH;
genser-links[t].quantity = GO_QUANTITY_ANGLE;
}
}

2)
for (t = 0; t  GENSER_MAX_JOINTS; t++) {
if (TYPE(t) = 0){
genser-links[t].u.dh.d = 0;
genser-links[t].type = GO_LINK_DH;
genser-links[t].quantity = GO_QUANTITY_LENGTH;
} else {
genser-links[t].u.dh.a = A(t);
genser-links[t].u.dh.alpha = ALPHA(t);
genser-links[t].u.dh.d = D(t);
genser-links[t].u.dh.theta = 0;
genser-links[t].type = GO_LINK_DH;
genser-links[t].quantity = GO_QUANTITY_ANGLE;
}
}

 I suspect that linear joint does not need a, d, alpha and theta values
 as well. Is that correct?

 hmm.. good question
 I'm afraid I don't have a useful answer. you would have to check the code
 (around genserkins.c and gomath) to see how those are treated for linear
 joints.

Found that!
In gomath.c:

if (GO_LINK_DH == link-type) {
linkout-u.dh.a = link-u.dh.a;
linkout-u.dh.alpha = link-u.dh.alpha;
if (GO_QUANTITY_LENGTH == link-quantity) {
  linkout-u.dh.d = joint;
  linkout-u.dh.theta = link-u.dh.theta;
} else {
  linkout-u.dh.d = link-u.dh.d;
  linkout-u.dh.theta = joint;
}
return GO_RESULT_OK;
  }

This is the reason, why in the previous examples of the code I removed
the lines, related to a, alpha and theta values.
Or should I leave them and assign some value to theta, or even create
HAL pins to add also theta value for linear joints and add default
theta value in genserkins.h file?

I have attached (my apologies, I know that e-mail attachements are not
encouraged on this list) genserkins.c file with all my changes. I
would appreciate receiving any suggestions or comments, if this is
right.

Thanks in advance!

Viesturs
/
* Description: genserkins.c
*   Kinematics for a generalised serial kinematics machine
*
*   Derived from a work by Fred Proctor,
*   changed to work with emc2 and HAL
*
* Adapting Author: Alex Joni
* License: GPL Version 2
* System: Linux
*
***

  These are the forward and inverse kinematic functions for a general
  serial-link manipulator. Thanks to Herman Bruyninckx and John
  Hallam at http://www.roble.info/ for this.

  The functions are general enough to be configured for any serial
  configuration.  
  The kinematics use Denavit-Hartenberg definition for the joint and
  links. The DH definitions are the ones used by John J Craig in
  Introduction to Robotics: Mechanics and Control
  The parameters for the manipulator are defined by hal pins.
  Currently the type of the joints is hardcoded to ANGULAR, although 
  the kins support both ANGULAR and LINEAR axes.
  
  TODO:
* make number of joints a loadtime parameter
* add HAL pins for all settable parameters, including joint type: ANGULAR / LINEAR
* add HAL pins for debug data (num_iterations)
* add HAL pins for ULAPI compiled version
*/

#include rtapi_math.h
#include gotypes.h		/* go_result, go_integer */
#include gomath.h		/* go_pose */
#include genserkins.h		/* these 

Re: [Emc-users] Serial kinematics

2011-01-10 Thread Alex Joni
snip

 Since my impression is that the TYPE(t) value cannot be set to
 GO_QUANTITY_LENGTH or GO_QUANTITY_ANGLE, but rather it will be either
 1 or 0, determining, if joint is angular or linear, I would like to
 ask, if anyone could comment, which of the following examples of code
 is correct to set value of genser-links[t].quantity to be
 GO_QUANTITY_LENGTH or GO_QUANTITY_ANGLE, depending on TYPE(t) value (I
 am not sure, if the syntax is correct. Please, someone with knowledge
 in programming, step in and point me into direction of correct code,
 if I have made some mistakes.):

I would write it like this:

for (t = 0; t  GENSER_MAX_JOINTS; t++) {
genser-links[t].u.dh.a = A(t);
genser-links[t].u.dh.alpha = ALPHA(t);
genser-links[t].type = GO_LINK_DH;
if (TYPE(t) == 0) {
genser-links[t].u.dh.d = 0;
genser-links[t].u.dh.theta = THETA(t);
genser-links[t].quantity = GO_QUANTITY_LENGTH;
} else {
genser-links[t].u.dh.d = D(t);
genser-links[t].u.dh.theta = 0;
genser-links[t].quantity = GO_QUANTITY_ANGLE;
}
}

 This is the reason, why in the previous examples of the code I removed
 the lines, related to a, alpha and theta values.

a and alpha are still used (for any case). They define the rotation and 
translation between the previous and current joint.
Imagine you want to construct a genserkins for a regular XYZ machine.

 Or should I leave them and assign some value to theta, or even create
 HAL pins to add also theta value for linear joints and add default
 theta value in genserkins.h file?

Yes, that is the right way.

Btw, all this talk should be moved to the emc-developers list...

Regards,
Alex


--
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users