Pinocchio playing drums (almost)

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.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
moz4r's picture

Congrats gepeto ! I need to

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 ?

calamity's picture

Hi anthony yes the stick is

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

GroG's picture

Rock On ! Great work calamity

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

calamity's picture

inMoov/myRobotlab are such

inMoov/myRobotlab are such cool projects that I could spend all my time on them.

hairygael's picture

Waouh!! very

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's picture

the DH parameters only define

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)