petev ok, so it's like moving a 3D coord with the dof and limits? petev with/within fenn scrap the "joint can be class as".. a joint _has_ a dof petev I don't follow, one dof? petev and use multiple? fenn a spherical joint has three degrees of freedom fenn a linear slide has one degree of freedom petev right, but do you model a sperical as 3 1dof joints? fenn maybe fenn i think that should work petev ok, so how do you describe the way a link is connected to the joint petev it has to have an orientation? petev no position needed, correct? fenn are you talking about a spherical joint? petev any joint fenn any joint will have a position and rotation offset petev that's a joint to a link petev how about a link to a joint fenn no i was thinking the other way around petev let me re-phrase fenn heh petev how do you know which way the link coord system is pointing relative to the joint dofs? fenn the joint dof's are relative to the joint's origin fenn the joint's origin is the link offset petev right, but now you have a link attached too fenn the link offset is the joint's position petev ok, lets use a linear link for simplicity fenn ok petev say I have a joint mounted on the base petev now I have a linear link connected to the joint petev I have to describe the relation base->joint->link petev correct? fenn ues petev if not I can't travers in a meaningful way petev ok, so I can say base->joint, link->joint fenn right petev so we already said that link->joint is xyzabc, correct? petev ok, now what is joint->link? petev is it abc? fenn 1 dof petev I don't care, 1dof, or 3dof, or 2dof petev I don't think it matters fenn i think we should model a 3dof joint as 3 1 dof joints with zero offset petev man, I wish I could draw a pic fenn draw a pic then :) petev and connect the 1dof with 0 length links? fenn yes petev same problem and less efficient I think petev so how to I describe joint->link? petev take 1 dof case or whatever petev I can have a 1dof joint and a linear link fenn i think you will need a coord system to describe how the joints are connected to the link petev and the link can be pointing any direction fenn what's a linear link? petev no, because we have to go join->link, not link->joint petev linear link is a stick or one dimensional link fenn ok a link has a bunch of joints stuck to it petev so you got one of them lamps on your desk with the 3 links? fenn for each joint stuck to it, there's a coordinate system describing where it's stuck to it petev right petev but that's 1/2 of it fenn it is? petev if that's all I have, how do I do link->joint->link? petev the first link->joint is easy fenn the second link has offsets for the joints attached to it petev how do I know which is the second linke and which joint I'm dealing with? petev I want an easy way to travers fenn um, a joint points to an offset, and the offset points to a link? petev what's an offset? fenn the position of the joint wrt the link petev so offset is the xyzabc thing? fenn yes petev and you want joint to point to 2 offsets? fenn yes petev and link to point to many joints? fenn no a link points to many offsets fenn man this is taking forever fenn does that tree work now? petev so the offset<->joint is two pointers? fenn link -> offset -> joint -> offset -> link fenn lemme take a break petev ok petev yeah, I don't see that working, offset is pointing to both joint and link fenn can a tree have more than one end? fenn more than one leaf fenn i guess each leaf has a control object petev yes, one root and many leaf fenn and that one root is the world coords petev yes, that would be the idea petev but things are not connected in tree fashion here petev take the hexapod petev both the base and the head (or thing with spindle) are connected to each other with multiple joints and links petev it's like a graph, not a tree petev and other joints restrict the movement of others fenn ok.. i dont know the difference between a graph and a tree petev so it's like a system of equations that need solving fenn i'm drawing a diagram i keep seeing petev a tree is like a real tree petev turn it upside down petev the branches fork, and so on, and so on petev there are no circular connections petev a graph is like a mesh, it can have circular connections petev but right now I'm struggling with the simple hexapod case petev you can take several paths to the end deflector petev the dof limits on all of them have to be respected petev so it's like solving for multiple equations petev how do u put that into a kin matrix? petev I can make a data struct to represent the connections, but it's not a tree petev and you will have to know which link it the end deflector petev seems very complicated for the generality we get petev what real machines do we have petev hexapod, and trivial? what else? fenn here's the most complicated it will get i think.. look at docs/kinematics-2-end-effectors.dia petev hang on fenn i'm trying to get rid of the trivial idea petev I know ;-) petev ok. explain the pic fenn ok ther's a fixed joint between world and machine petev yes fenn there's an offset that describes where on the world the machine is located fenn there's an offset that describes where the machine is connected to the world petev yes fenn kinda redunant i know petev the black dots are joints? fenn shoot i think i drew it wrong fenn lemme try to fix it petev ok fenn heh we should use dia as our kinematics algorithm fenn ok now look at it fenn it should represent a data structure now petev hang on petev oh man petev explain fenn well, its still too simple fenn see how each circle has a central link point? fenn that's the link petev are the dashed lines links? fenn the link points to offsets, which are points on the object fenn i think the dashed lines are pointers petev what are the black dots, joints? fenn there need to be a lot more joints in between the base and the platform fenn the black dots are bits of data petev ok, describe your machine in english first fenn heh fenn this is a crappy diagram of a base with two hexapods on it petev yeah, what is it, 2 hexapod on a common base or what? petev ok petev so why so many links between the platform an tool? fenn because the tool can change fenn but the tool will always be connected to the platform at a certain place fenn using a fixed joint to get an offset petev oh, so those joints are fixed? petev ok, so now the good stuff fenn all of the joints in the picture are fixed petev let's take the kins for one platform fenn i didnt draw any movable joints petev huh? if they are all fixed, how does it move? fenn i forgot to draw any movable joints petev argh fenn sorry petev can we pretend they move? petev just pretend it's alex's tripod petev so you have 3 links between platform and base, correct? fenn yeah petev ok, and lets assume 3dof joints fenn it doesnt represent the data structure though.. you need two links for each joint fenn crap not links fenn pointers petev ok, but you can see how the data struct has circular paths, yes? fenn yes petev and you can see how the 3 joints limit each other, yes? fenn limit each other? fenn maybe i should have used arrows instead of dots petev if you take each link individually, without regards to the other, you can move it places where it cant go petev correct? petev moving the platform moves all 3 links fenn in the picture there's 6 links, the world, the base, the platforms, and the tools fenn sorry 7, forgot machine petev let's just talk anout one platform to the base petev that's only 3 right? fenn if it's alex's tripod, there's the base, the platform, and 3 joints petev why? petev isn;t there the base, 6 joints and 3 links? petev and a platform petev washer is platform fenn yeah sorry petev joints are end of each string petev right? petev but alex fenn there's a joint that represents the length of the string too petev yeah, that's what I was going to say petev his machine is weird fenn he has 2dof joints at the end of the string petev I'll tell you what, this is too complex for me to get my head around now fenn ok petev how about u run with it, I'll help you with data struct stuff and object boundaries petev and let's see what you can get going fenn i think it will be easy once we figure out how many connections each element has petev let's try this petev J point to 2 O petev L points to list of O petev each O points to L that is belongs to petev I think that works, but it's an ugly mess fenn what points to L? fenn chain? petev each O points to L it belongs to fenn sorry what points to J? petev each O points to 1 J petev that does what you want, but it's tricky putting stuff into the struct and traversing it petev it's a graph petev so you need to know the root and end deflector fenn yes petev ok petev give it a shot petev just create the O class and put the pointers in the J and list/container in L for now petev it will be too much to build all the structure external just for testing fenn you mean for config? petev no, I mean just to see if we can get this kinematics concept to work fenn is there a way to display a data structure? petev for debug? fenn like graphviz or something petev gdb is aware petev oh, I don't know petev I document the old fashioned way fenn ok fenn it would help to make sure it's doing the right thing if i could see the whole thing petev you can just draw boxes and arrows for pointers petev the poitners can come from a named area of the box so you know which pointer it is petev try and draw that in dia, should be easy petev I drew it on paper over here as you were describing things fenn hmm should i draw it with 5dof joints or 1dof joints? petev what's 5dof? fenn a string connected at two points fenn maybe that's wrong petev I don't follow petev my general though is it;s complex enough petev but a 3dof joint seems to make sense to limit the data struct complexity fenn this tripod is weird because it's not fully constrained fenn there's a hidden joint, gravity petev yeah fenn maybe i should just draw a hexapod fenn i dnot know where to put gravity petev why not just a SCARPA or whatever they are called petev start simple fenn ok petev let's prove the concept before the hard cases fenn think scara might be just as hard to draw fenn i'll try it petev ok petev should be easier to test in code though for sure petev no multiple constraint stuff fenn this is harder than i thought petev yes petev I was willing to just hard code the kins petev we can always get fancy after we get things working fenn whew fenn ok something really simple to start with :) fenn a rotary table petev sure, that should be easy fenn i ate too much sugar petev even trivkins and see if it derives correctly would be a good test fenn trivkins can mean a really complicated system fenn 3 rotary tables, 3 linear slides petev just a 2 axis trivkins fenn ok just an xy table petev 2 linear slides petev yes fenn ok i drew an xy table fenn i will draw another xy table for the sake of completeness petev ok petev dang, just lost my network connection to server petev gonna have to reboot * petev has quit ("using sirc version 2.211+KSIRC/1.3.11") fenn weird