How to move a component that has joints?

quality5B59E
Contributor

How to move a component that has joints?

quality5B59E
Contributor
Contributor

I have a robot arm with joints between the "bones".   When I move a bone by just changing

its transform, the bone moves fine but the other ones connected by joints don't move.

How do I make the joints be respected?

 

When I use the Fusion UI to move a bone with the "M" command, the joints cause other

bones to move along with it as expected.   

 

Anybody have any ideas?

 

Thanks!

0 Likes
Reply
Accepted solutions (1)
807 Views
5 Replies
Replies (5)

MichaelT_123
Advisor
Advisor

Hi IRobot Quality5B59E,

 

When you have properly constructed/joined assembly  of components they can be move by changing respective joints values.

 

Regards 

MichaelT

 

MichaelT
0 Likes

quality5B59E
Contributor
Contributor

Thanks Michael, but I’m trying to do the opposite.  Move the part and have the joints recompute automatically.  This works if you do it manually using the fusion UI.  I just don’t know how to do it through the API ...

0 Likes

quality5B59E
Contributor
Contributor
Accepted solution

Great!  I came up with a hack that works to coax inverse kinematics out of Fusion 360.

 

The trick is:

1) suppress joints of the end effector part

2) change transform of part's occurrence to move it

3) "ground" the part

4) unsuppress the joints

4) yield to fusion using adsk.doEvents() 

5) "unground" the part

 

After this sequence, the end effector part will be at the new location and any parts

that have joints to it will have been moved to accommodate the new location.

You can now get the new joint angles and you have done inverse kinematics!

 

Hope this helps someone!

 

 

 

1 Like

MichaelT_123
Advisor
Advisor

Good hack IRobot Quality5B59E, congrats!

 

It might work well in certain scenarios. In real circumstances (for example tracing an object to be picked-up) you might find that the response time of F360 internal kinematic machine might not be fast enough.

As IRobot Quality5B59E, you very likely know other members of your family, from primitive ones (cep/cippus) to aristocracy (6-axes robot).  All are very predictable and humans have made significant efforts to study them. THESE MASTERS can devise/predict/order their slightest movement (without the backlash of course) using respective Jacobians' (their souls).

 So dependent upon the scope of your project you might consider asking some your automatic scanner cousins at university to deliver some PhD dissertation on the subject… or better hack into Python Library Depositories and import required module into … your soul.

Speed improvement could be significant, so you will have time to study philosophy!

 

With Regards

Homo Sapiens

MichaelT

MichaelT
1 Like

quality5B59E
Contributor
Contributor

Ha ha!  Good points Michael ... (and extra points for writing style!)

 

I’m also looking into using “move it” (https://moveit.ros.org/) for inv kinematics instead.  Not sure exactly what I will be using.  

 

True that Fusion 360s IK is not all that fast.  However, since I’m using it “offline” to generate what is essentially a toolpath gcode type file, it *might* be fast enough for my purposes.  So far I’ve only tried some toy problems so it’s not too bad.  As I use it more, I may very well find that it is too slow and may have to switch to something else.  We’ll see.

 

Thanks!

0 Likes