Community
3ds Max Forum
Welcome to Autodesk’s 3ds Max Forums. Share your knowledge, ask questions, and explore popular 3ds Max topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IK solver question

23 REPLIES 23
Reply
Message 1 of 24
Anonymous
891 Views, 23 Replies

IK solver question

I am trying rig a robot welder. Not sure what direction to go. At this point if have all of the axis limits set. Everything is working correctly https://gyazo.com/f92bdda1fbb5be7abed720ed80f8a96c

 

Now I would like to maybe assign an IK solver so I can move the entire assembly all from the welding tip. My thought so far is to set a point box helper at each pivot which would be linked to each respectively. Then create a bone structure from point to point. Finally attach an IK solver.

https://gyazo.com/f77c4ce25c6b40ed8bc131597afdf7f0

 

 

I tried this however the IK solver will not let me connect to the beginning of the bone structure. I suspect due to the fact I linked them previously. Any pointers? Is this even possable with the one perpendicular rotational axis.

Thanks in advance!

 

 

 

 

23 REPLIES 23
Message 2 of 24
leeminardi
in reply to: Anonymous

Hi Mark,

 

It is important to note that the HI Solver assumes a 2D plane. The plane does not have to be any special plane. Three points are usually used to define the plane.

 

You will want to create a bone structure for your robot with the HI Solver going from the root of the first bone to the tip of the end effector.  I worked on a similar post back in June from Marian212.  Examine the file  and it should answer some of your questions. 

 

IK-Robot-Rigging.max

 

Here are some comments from my June post regarding this model:

 

To move the end effector of the robot you should select and move DummyEndEff.

 

My first challenge after adding a HI Solver was to keep the bones from tilting when the end effector was moved out of the XZ plane.  I used a point (Point001) whose position is midway between a dummy object with a fixed position high above the base (DummyUpReference)  and DummyEndEff.  This point is referenced by the swivel angle of the IKChain001. 

 

The next challenge was to rotate Axis1 without titling it.  I solved this problem by creating a dummy object (DummyLookAtGoal) that uses a wiring parameter to set its height (Z position) to be the same height as DummyEndEff.  A LookAt constraint is used to point it toward DummyEndEff. I then use a Orientation constraint to control the rotation of Axis1 to match DummyLookAtGoal.

 

Try moving DummyEndEff in any direction.  I think you will see that the robot generally moves as desired.

 

Note, I linked Axis3 and Axis4 to the same bone as I made the assumption that these two would not rotate with respect to each other.  This can be changed if necessary but since IK solvers are restricted to working in a common 2D plane it would require more information about how you want to be able to specify the location and orientation of the end effector.  

 

The local axis of the end effector (Axis6) is not correctly positioned.  It it were you would be able to manually rotate it without any eccentricities.

 

I added a path constraint to DummyEndEff so that it follows the spline for a limted distance.

 

I hope this helps.

 

Lee

 

lee.minardi
Message 3 of 24
Anonymous
in reply to: leeminardi

 

Thanks Lee this is awesome! Thank you for spending the time to help me on this!! I have one axis that will need to rotate perpendicular to the others and the welding tip will need to rotate as well. https://gyazo.com/8a9af7ed046bc03b24146418ac96131d

Not sure how this will effect the other axis yet. This info should help immensely! I was getting pretty discouraged.

 

Thanks again this is great!

Message 4 of 24
Anonymous
in reply to: leeminardi

So far I have managed to set up the point Point002, DummyEndEff, DummyLookAtGoal,DummyUpReference. I believe that at this point the correct limits are applied. Now I cant seem to get the base rotation. I think my problem is that i do not know how to  "This point is referenced by the swivel angle of the IKChain001. "

 

https://gyazo.com/a4a5c22b54d20952be66dd8deb5e3ddb

 

Thanks

 

Message 5 of 24
istan
in reply to: Anonymous

I am asking myself, for what reason you need bones? I do such 6-15 axis robot IK without bones since Max4.0. Nevertheless consider that the generic IK approach of Max is VERY limitted with regard to joint limits, and and..

btw, I simply set up the chain with DH coordinate frames.

I attach a TCP point to axis #6 and move/rotate this TCP around.

Message 6 of 24
Anonymous
in reply to: istan

Hi Istin

I am not familiar to DH coordinate frames. Can you give me an example please?

Thanks

 

Message 7 of 24
istan
in reply to: Anonymous

DH = denavit hartenberg. this is not a must, but then the frames match to the robot controller frames.
Message 8 of 24
Anonymous
in reply to: istan

Ok I just realized that I can assign each robot bit to its own reference coordinate system in which I assigned j1 - j5.

Then I set the parts up in the correct hierarchy in the schematic view. Am i on the right path?

thanks

 

Message 9 of 24
leeminardi
in reply to: istan

istan,

Wow!  Denavit Hartenberg.  I haven't heard those name since I was an undergrad engineering student almost 50 years ago (I guess I am dating myself).  In fact, I have before me a copy of "Kinematics Synthesis of Linkages" by Richard Hartenberg and Jacques Denavit c 1964. Cool.

 

Regarding your comment about bones, you are correct, you do not need to use them.  I just find it gives me a simpler model to work with.

 

marcr,

In response to your question regarding my statement "This point is referenced by the swivel angle of the IKChain001. ", since IK solvers are limted to a 2D plane you must define the plane.  In the model I posted, the plane for IK Chain001 is defined by the point at he beginning of the root bone, the point of the last point of the chain, and by Point001. You can set this in the Motion tab (under IK Solver Properties, IK Solver Plane) when you select IK Chain001.  As noted, A wiring parameter is used to position Point001 midway beteen DummyEndEff and DummyUpRef so that no matter where the end effector is moved, Point001 will define a vertical plane for the IK chain.

 

In response to your comment "I have one axis that will need to rotate perpendicular to the others and the welding tip will need to rotate as well.", you will have to determine how you would like to interactively manipulate your model.  If you choose to be able to drag the welding tip then you must choose to either not be able to control the rotation the welding arm about its axis or determine a function that sets the rotation as a result of the position and rotation of some other component.  I think I would settle on controlling the tip and having all the other links follow and then manualy keyframe the perpendicular axis.

 

If you like, I could take a stab at it if you post the model.  I am using Max 2014.  

 

~Lee

 

 

 

 

lee.minardi
Message 10 of 24
Anonymous
in reply to: istan

When you say frame do you mean an animation key frame? Or are you referring to something total different?

Thanks

 

 

Message 11 of 24
Anonymous
in reply to: leeminardi

That would be awesome! Here is the file. I have all of the pivots in the correct locations and limits set.

This file is too large zipped.  so here is a dropbox link. 

https://www.dropbox.com/s/z58xcv2irc972hl/robot03.max?dl=0

 

thanks again!

 

 

 

 

here ya go looks like the pivots are good

 

Message 12 of 24
istan
in reply to: leeminardi

concerning DH: things did not change so much in industrial robotics 😉 and I'm dating also myself now 😉
Message 13 of 24
istan
in reply to: Anonymous

The model is not imported right or was destroyed later. some axes do not align properly!
Message 14 of 24
leeminardi
in reply to: Anonymous

I am a bit busy for the next couple of days. I took a quick look at the model and it seems ok.  The pivots are not where I would put them but I think it can work.  I added a dummy at the tip of the welding point.  I tried unlinking the objects and found that they re-orient themselves.  I will take another look on Wednesday.  Do you have a copy of the model with the objects properly positioned but without any linking?  I would rather do the linking.

lee.minardi
Message 15 of 24
Anonymous
in reply to: leeminardi

unlinked file is in dropbox. The parts still have the rotational limits assigned however all links are unlinked.
thanks!!

https://www.dropbox.com/s/pntrpj4s56rxr3y/robot_unlinked.max?dl=0

 

Message 16 of 24
istan
in reply to: Anonymous

Here are some results..

Message 17 of 24
Anonymous
in reply to: istan

WOW! That is cool!! I have got to get a grip on this! So that was done with bones? Did you need to do any tweeks to follow the path or did everyting follow suit?

do the bones all reside on one plane?

 

 

Message 18 of 24
istan
in reply to: Anonymous

no bones at all. simple parent/child & IK setup. simple applied IK. I will post also the max file soon.

nevertheless the source file is still wrong somehow, as the 6th axis (which is btw missing) is usually in the same plane with the 1st axis.

Message 19 of 24
Anonymous
in reply to: istan

Thanks for all of your help on this. I can't wait until I get a better understanding on Ik setups. I come for Inventor and constraints seem to be much more streight forward then in Max. On the other hand I love the freedom that Max has. lol

Here are some of the things I have done here at work.

https://www.youtube.com/watch?v=kieM3szHFuY

https://www.youtube.com/watch?v=gwKzUtUFvKw

https://www.youtube.com/watch?v=wuzXslS6iCs

 

 

 

 

 

Message 20 of 24
istan
in reply to: istan

Here is the promised scene

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Technology Administrators


Autodesk Design & Make Report