https://youtu.be/76EfxJIRVXk

A little video for demonstration of the IntegratedMovement service.

The position of the cymbal and the tom are scripted, but how the inMoov choose to move the stick to the tom or cymbal is fully determined by the service. 

The position of the cymbal is a bit off on the right side. But the inMoov can move between the objects without hitting them.

 

moz4r

7 years 10 months ago

Congrats gepeto ! I need to learn a lot of things to fully understand IK ...

You have declared the stick in dh parameters like a "big" finger ?

Hi anthony

yes the stick is defined in a dh parameters link. So the service can know where is located the tip of the stick depending on the position of the servos that can change it's position. It also allow to change the servos position to move the tip of the stick to a position. The service will also make sure that the stick (or any other robot part) are not overlapping another object defined

 

here's the dh parameters used for that demo

https://github.com/MyRobotLab/pyrobotlab/blob/develop/home/Calamity/ini…

GroG

7 years 10 months ago

Rock On !

Great work calamity ..  very cool Service !

I'm also impressed with how much you've done on your InMoov ..  must be the snow which has trapped in your garage, I'm glad you chose to be so productive :D

Waouh!! very impressive!

Could the Virtual InMoov help to determine the overlapping body parts? Because I'm wondering how the DH parameters determine the thickness of parts. Let say if the drum stick was 20cm wider in diameter?

The video you posted about DH parameters in the shoutbox,  was pretty clear about angles but I didn't see how the thickness of body parts was taken in account...

 

Definitely need to understand more about this, it's sooooo cool !!

calamity

7 years 10 months ago

In reply to by hairygael

the DH parameters only define the angle and lenght of the parts. It allow the ik engine to calculate angle for each part. It can also calculate where each part start (origin) and end.

If you look at my script, you will see that i'm also defining "object". Objects are the physical things in the environement of the robot.

each object that don't move (static object) are define as a start point, end point and a radius (making a cylinder 3d object). Moving object are define by linking to the DH parameters (so it can get the start and end point) and the radius of the object.

 

so to answer your question, if the drum stick was a baseball bat and have 20cm in diameter, I will define it's object as 

ik.addObject("name", 100)

(I use 100 cause measure is in mm and it take the radius, not the diameter, 20cm = 200mm. radius is half the diameter)