Discussion:
[Emc-users] max joint number
theman whosoldtheworld
2017-06-15 07:08:12 UTC
Permalink
there are some possibility that the max joint/axis number become more than
0-8 in future?
(0-17 / 0-26 ....)
Actually if I well undertand is possible use makinekit fork with multiple
machinekit instance on same pc ... so same pc more than 0-8 joint ... but I
investigate other possbility.

bkt
andy pugh
2017-06-15 09:07:13 UTC
Permalink
Post by theman whosoldtheworld
there are some possibility that the max joint/axis number become more than
0-8 in future?
It might well increase in the release, but I am not sure how many machines
need coordinated movement in more than 9 joints.
(and uncoordinated movements are already possible using HAL components such
as stepgen and PID/Limit3)

You need to increase EMCMOT_MAX_JOINTS:
https://github.com/LinuxCNC/linuxcnc/blob/af15a4d90e1d51d5309db65fe1c9511e486df411/src/emc/motion/emcmotcfg.h#L23
then recompile.

trivkins appears to already support more than 9 joints:
https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/kinematics/trivkins.c

I can't think of many applications, possibly a serial/parallel "snakebot"
based on a stack of Stewart platforms?

What is more intractable is getting more _axes_ as there are no G-code
letters left spare.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
Stuart Stevenson
2017-06-15 12:46:28 UTC
Permalink
G Code is just a symbolic way to represent something in a human readable
manner.
Another method could be used and would seem difficult for the humans to
comprehend.
Post by andy pugh
Post by theman whosoldtheworld
there are some possibility that the max joint/axis number become more
than
Post by theman whosoldtheworld
0-8 in future?
It might well increase in the release, but I am not sure how many machines
need coordinated movement in more than 9 joints.
(and uncoordinated movements are already possible using HAL components such
as stepgen and PID/Limit3)
https://github.com/LinuxCNC/linuxcnc/blob/af15a4d90e1d51d5309db65fe1c951
1e486df411/src/emc/motion/emcmotcfg.h#L23
then recompile.
https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/
kinematics/trivkins.c
I can't think of many applications, possibly a serial/parallel "snakebot"
based on a stack of Stewart platforms?
What is more intractable is getting more _axes_ as there are no G-code
letters left spare.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
--
Addressee is the intended audience.
If you are not the addressee then my consent is not given for you to read
this email furthermore it is my wish you would close this without saving or
reading, and cease and desist from saving or opening my private
correspondence.
Thank you for honoring my wish.
Stuart Stevenson
2017-06-15 12:53:14 UTC
Permalink
one fifteen axis whatever(machine?)

G00 1X1.0000 2X1.0200 3X14.950 4X10.9530...

something in this fashion comes to mind first

there may not be a YZABCIJK representation - just 1X through 15X

For the human : big labels on each axis or 3D glasses to see the labels
projected. At some point the human will not care about each axis label. The
human should worry more about the process result than the method.
Post by Stuart Stevenson
G Code is just a symbolic way to represent something in a human readable
manner.
Another method could be used and would seem difficult for the humans to
comprehend.
Post by andy pugh
Post by theman whosoldtheworld
there are some possibility that the max joint/axis number become more
than
Post by theman whosoldtheworld
0-8 in future?
It might well increase in the release, but I am not sure how many machines
need coordinated movement in more than 9 joints.
(and uncoordinated movements are already possible using HAL components such
as stepgen and PID/Limit3)
https://github.com/LinuxCNC/linuxcnc/blob/af15a4d90e1d51d530
9db65fe1c9511e486df411/src/emc/motion/emcmotcfg.h#L23
then recompile.
https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/kin
ematics/trivkins.c
I can't think of many applications, possibly a serial/parallel "snakebot"
based on a stack of Stewart platforms?
What is more intractable is getting more _axes_ as there are no G-code
letters left spare.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
--
Addressee is the intended audience.
If you are not the addressee then my consent is not given for you to read
this email furthermore it is my wish you would close this without saving or
reading, and cease and desist from saving or opening my private
correspondence.
Thank you for honoring my wish.
--
Addressee is the intended audience.
If you are not the addressee then my consent is not given for you to read
this email furthermore it is my wish you would close this without saving or
reading, and cease and desist from saving or opening my private
correspondence.
Thank you for honoring my wish.
andy pugh
2017-06-15 13:02:35 UTC
Permalink
Post by Stuart Stevenson
G00 1X1.0000 2X1.0200 3X14.950 4X10.9530...
something in this fashion comes to mind first
there may not be a YZABCIJK representation - just 1X through 15X
That doesn't work with a conventional G-code interpreter because spaces are
ignored.

Looks like

G1 X1.00002 X1,02003 X14.9504 X10.935 (Error, multiple X words in one block)

XX YY ZZ as extra axes would be more backwards-compatible.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
Bertho Stultiens
2017-06-15 13:41:53 UTC
Permalink
Post by andy pugh
Post by Stuart Stevenson
G00 1X1.0000 2X1.0200 3X14.950 4X10.9530...
something in this fashion comes to mind first
there may not be a YZABCIJK representation - just 1X through 15X
That doesn't work with a conventional G-code interpreter because spaces are
ignored.
Looks like
G1 X1.00002 X1,02003 X14.9504 X10.935 (Error, multiple X words in one block)
XX YY ZZ as extra axes would be more backwards-compatible.
Why would you want to adhere to gcode format when you need more than 9
axes? The backwards compatibility is broken the moment you try to
address axis 10 or above. All generator tools will be lacking support
when trying to use more than 9 axes and need to be fixed anyway.

It would be more prudent to take a step back and to abstract gcode to a
higher (modern) level. There would be a 1:1 backwards mapping as long as
you use up to 9 axes, but no longer when you use more.
--
Greetings Bertho

(disclaimers are disclaimed)
Bertho Stultiens
2017-06-15 13:47:01 UTC
Permalink
Post by Bertho Stultiens
Post by andy pugh
Post by Stuart Stevenson
G00 1X1.0000 2X1.0200 3X14.950 4X10.9530...
something in this fashion comes to mind first
there may not be a YZABCIJK representation - just 1X through 15X
That doesn't work with a conventional G-code interpreter because spaces are
ignored.
Looks like
G1 X1.00002 X1,02003 X14.9504 X10.935 (Error, multiple X words in one block)
XX YY ZZ as extra axes would be more backwards-compatible.
Why would you want to adhere to gcode format when you need more than 9
axes? The backwards compatibility is broken the moment you try to
address axis 10 or above. All generator tools will be lacking support
when trying to use more than 9 axes and need to be fixed anyway.
It would be more prudent to take a step back and to abstract gcode to a
higher (modern) level. There would be a 1:1 backwards mapping as long as
you use up to 9 axes, but no longer when you use more.
However (to answer myself), if one would insist on gcode compatibility,
then you can make an alternative setup if you use at most 9 axes at one
time.

You can use custom M-codes to remap axes on the fly. Then you have 9
active axes mapped from any number you need. The limitation is that you
can only move 9 axes simultaneously.
--
Greetings Bertho

(disclaimers are disclaimed)
andy pugh
2017-06-15 12:56:19 UTC
Permalink
Post by Stuart Stevenson
G Code is just a symbolic way to represent something in a human readable
manner.
Indeed, and if we had a STEP_NC interpreter then perhaps we would need to
also consider adding to the number of axes.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
Chris Albertson
2017-06-15 16:36:26 UTC
Permalink
Post by andy pugh
Post by theman whosoldtheworld
there are some possibility that the max joint/axis number become more than
0-8 in future?
It might well increase in the release, but I am not sure how many machines
need coordinated movement in more than 9 joints.
If MK is ever to be useful with robots it could use the ability to
control a few dozen joints.

It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly. Might be easier to assume 12DOF if the
motions are to be synchronized
in the same coordinate system.

Also to be useful the g-code interpret would have to be 100% separated
from motion
planning so it could use some other command stream. Yes g-code is OK for
pre-programmed movement but robots can decide on their own what to do,

But for milling machines, hard to see why more than 6 would be needed

Yes there are reasonable affordable robots with 20 joints.
--
Chris Albertson
Redondo Beach, California
andy pugh
2017-06-15 16:52:55 UTC
Permalink
Post by Chris Albertson
It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly.
I can certainly imagine a 2-arm robot using XYZ and UVW to position two
arms. Though then you run out of orientation angles for the UVW tool.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
Chris Albertson
2017-06-15 18:34:07 UTC
Permalink
You are right. It takes 12 numbers to specify the location the orientation
of two arms. But in a typical robot there will be more than 12 axis. If
you look at the stat of the art, there could be 100+ axis, see below.


With a typical robot the number of axis may not equal the number of degrees
used to specify the pose. For example it is common to specify an X,Y,Z
and orientation using six numbers but it very well might be there as 7
degrees (or more) of freedom in the arm. It other words there would be an
infinite number of inverse kinematic solutions. And a controller would
choose a plan to (say) minimize angular velocity, accelerations or toque
and to avoid collisions of (say) the elbow hitting nothing while moving the
hand. Typically you need extra axis to avoid collisions and "gimbal
locks" and such.

Machine tools are mostly very simple. We design the tool so all axis are
square so to move 1 inch in X we simply move the X motor one inch. But a
robot's axis are likely NOT square and the axis do not meet at the origen
and the angles between the axis can change.

Here is a great video of a toy-like 18 axis machine. But the control
software is very primitive and depends on human in the loop remote control
for path planning


MUCH more sophisticated control is used here. The machine is given only a
high level goal. "lift and cary the box" and is otherwise self directed
(notice the q-codes on the box and doors and laser scanner in the head.)


http://youtu.be/rVlhMGQgDkY
H http://youtu.be/rVlhMGQgDkY many axis are running here?
Between jack and Sophia, maybe 100+ Jack is the car, sophia is in the
passenger seat. This is the current state of the art. (Do NOT over
estimate sophia, she uses plenty of "dumb tricks" like responding with
"yes, I agree" when she has no clue what you just said) In the end this is
motion control. Many dozens of motors are running and being synchronized

Post by andy pugh
Post by Chris Albertson
It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly.
I can certainly imagine a 2-arm robot using XYZ and UVW to position two
arms. Though then you run out of orientation angles for the UVW tool.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
--
Chris Albertson
Redondo Beach, California
theman whosoldtheworld
2017-06-15 21:34:36 UTC
Permalink
good ... about axis number is for 2 arm robot ... not planning to
partecipate to darpa race (for these year ;)) ... the pose number is more
hight then world axis ... and actual axis number in g code, for 2 arm robot
(18 axis) I think is quite good, because most part of work is on pose flag
not in g-code world axis position .... a connection from Mxx to
customkins.c I think is quite good kinematics flag selector way .... any
how good trik xx yy zz as axis label.

For coordinated motion of 100 axis darpa robot humanoid, using the g-code
would not be very reasonable as the robot should have a completely adaptive
motion and very little repetitive behavior .... but if a creazy person
would play around i think 5-10 little cpu with lcnc instance runnng and
rt-ethernet bus connected may be the way. But these things seem a Marx
brothers sketch.

bkt
Post by Chris Albertson
You are right. It takes 12 numbers to specify the location the orientation
of two arms. But in a typical robot there will be more than 12 axis. If
you look at the stat of the art, there could be 100+ axis, see below.
With a typical robot the number of axis may not equal the number of degrees
used to specify the pose. For example it is common to specify an X,Y,Z
and orientation using six numbers but it very well might be there as 7
degrees (or more) of freedom in the arm. It other words there would be an
infinite number of inverse kinematic solutions. And a controller would
choose a plan to (say) minimize angular velocity, accelerations or toque
and to avoid collisions of (say) the elbow hitting nothing while moving the
hand. Typically you need extra axis to avoid collisions and "gimbal
locks" and such.
Machine tools are mostly very simple. We design the tool so all axis are
square so to move 1 inch in X we simply move the X motor one inch. But a
robot's axis are likely NOT square and the axis do not meet at the origen
and the angles between the axis can change.
Here is a great video of a toy-like 18 axis machine. But the control
software is very primitive and depends on human in the loop remote control
for path planning
http://youtu.be/aH07qF_bhgA
MUCH more sophisticated control is used here. The machine is given only a
high level goal. "lift and cary the box" and is otherwise self directed
(notice the q-codes on the box and doors and laser scanner in the head.)
http://youtu.be/rVlhMGQgDkY
http://youtu.be/rVlhMGQgDkY
H http://youtu.be/rVlhMGQgDkY many axis are running here?
Between jack and Sophia, maybe 100+ Jack is the car, sophia is in the
passenger seat. This is the current state of the art. (Do NOT over
estimate sophia, she uses plenty of "dumb tricks" like responding with
"yes, I agree" when she has no clue what you just said) In the end this is
motion control. Many dozens of motors are running and being synchronized
http://youtu.be/vtX-qVUfCKI
Post by andy pugh
Post by Chris Albertson
It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly.
I can certainly imagine a 2-arm robot using XYZ and UVW to position two
arms. Though then you run out of orientation angles for the UVW tool.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
--
Chris Albertson
Redondo Beach, California
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
theman whosoldtheworld
2017-06-15 21:42:06 UTC
Permalink


these is the best (definitely better than HONDA Asimo) .... It's a shame
that google has sold boston dynamics .... hope for better robot project
(maybe a robot D-wave driven over QUIC or better wifi bus ???...... )

bkt
Post by theman whosoldtheworld
good ... about axis number is for 2 arm robot ... not planning to
partecipate to darpa race (for these year ;)) ... the pose number is more
hight then world axis ... and actual axis number in g code, for 2 arm robot
(18 axis) I think is quite good, because most part of work is on pose flag
not in g-code world axis position .... a connection from Mxx to
customkins.c I think is quite good kinematics flag selector way .... any
how good trik xx yy zz as axis label.
For coordinated motion of 100 axis darpa robot humanoid, using the g-code
would not be very reasonable as the robot should have a completely adaptive
motion and very little repetitive behavior .... but if a creazy person
would play around i think 5-10 little cpu with lcnc instance runnng and
rt-ethernet bus connected may be the way. But these things seem a Marx
brothers sketch.
bkt
Post by Chris Albertson
You are right. It takes 12 numbers to specify the location the orientation
of two arms. But in a typical robot there will be more than 12 axis. If
you look at the stat of the art, there could be 100+ axis, see below.
With a typical robot the number of axis may not equal the number of degrees
used to specify the pose. For example it is common to specify an X,Y,Z
and orientation using six numbers but it very well might be there as 7
degrees (or more) of freedom in the arm. It other words there would be an
infinite number of inverse kinematic solutions. And a controller would
choose a plan to (say) minimize angular velocity, accelerations or toque
and to avoid collisions of (say) the elbow hitting nothing while moving the
hand. Typically you need extra axis to avoid collisions and "gimbal
locks" and such.
Machine tools are mostly very simple. We design the tool so all axis are
square so to move 1 inch in X we simply move the X motor one inch. But a
robot's axis are likely NOT square and the axis do not meet at the origen
and the angles between the axis can change.
Here is a great video of a toy-like 18 axis machine. But the control
software is very primitive and depends on human in the loop remote control
for path planning
http://youtu.be/aH07qF_bhgA
MUCH more sophisticated control is used here. The machine is given only a
high level goal. "lift and cary the box" and is otherwise self directed
(notice the q-codes on the box and doors and laser scanner in the head.)
http://youtu.be/rVlhMGQgDkY
http://youtu.be/rVlhMGQgDkY
H http://youtu.be/rVlhMGQgDkY many axis are running here?
Between jack and Sophia, maybe 100+ Jack is the car, sophia is in the
passenger seat. This is the current state of the art. (Do NOT over
estimate sophia, she uses plenty of "dumb tricks" like responding with
"yes, I agree" when she has no clue what you just said) In the end this is
motion control. Many dozens of motors are running and being synchronized
http://youtu.be/vtX-qVUfCKI
Post by andy pugh
Post by Chris Albertson
It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly.
I can certainly imagine a 2-arm robot using XYZ and UVW to position two
arms. Though then you run out of orientation angles for the UVW tool.
--
atp
"A motorcycle is a bicycle with a pandemonium attachment and is designed
for the especial use of mechanical geniuses, daredevils and lunatics."
— George Fitch, Atlanta Constitution Newspaper, 1916
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
--
Chris Albertson
Redondo Beach, California
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
https://lists.sourceforge.net/lists/listinfo/emc-users
Valerio Bellizzomi
2017-06-15 17:50:41 UTC
Permalink
Post by Chris Albertson
Post by andy pugh
Post by theman whosoldtheworld
there are some possibility that the max joint/axis number become more than
0-8 in future?
It might well increase in the release, but I am not sure how many machines
need coordinated movement in more than 9 joints.
If MK is ever to be useful with robots it could use the ability to
control a few dozen joints.
It depends on one's approach to a multi arm/leg robot. You can
treat it as two 6 DOF arms or
as one 12 DOF assembly. Might be easier to assume 12DOF if the
motions are to be synchronized
in the same coordinate system.
Also to be useful the g-code interpret would have to be 100% separated
from motion
planning so it could use some other command stream. Yes g-code is OK for
pre-programmed movement but robots can decide on their own what to do,
But for milling machines, hard to see why more than 6 would be needed
Yes there are reasonable affordable robots with 20 joints.
This robot has arms with 7DOF and legs with 6DOF

http://en.robotis.com/index/product.php?cate_code=111410
Loading...