Controle de multiples moteurs

Le problème exposé dans ce sujet a été résolu.

Bonjour,
Bon j'avoue douter de trouver la réponse ici, mais ça fait quelques jours que je rage sur un problème à la **.
Voilà, j'utilise un logiciel de simulation de robot pour un projet que j'ai en tete. J'utilise une des scènes basiques dans ce logiciel qui correspond parfaitement à la forme de robot que je souhaite (Ant https://www.youtube.com/watch?v=HiFlb8EB4Z4). Pour le controler j'utilise un script basique (c'est du lua).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    botBodyParts = { 'Ant_joint1Leg1', 'Ant_joint2Leg1', 'Ant_joint3Leg1',
                     'Ant_joint1Leg2', 'Ant_joint2Leg2', 'Ant_joint3Leg2',
                     'Ant_joint1Leg3', 'Ant_joint2Leg3', 'Ant_joint3Leg3',
                     'Ant_joint1Leg4', 'Ant_joint2Leg4', 'Ant_joint3Leg4',
                     'Ant_joint1Leg5', 'Ant_joint2Leg5', 'Ant_joint3Leg5',
                     'Ant_joint1Leg6', 'Ant_joint2Leg6', 'Ant_joint3Leg6'}
    --OK--
    simSetJointPosition(simGetObjectHandle(botBodyParts[1]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[2]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[3]),30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[4]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[5]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[6]),30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[7]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[8]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[9]),30*math.pi/180)
    --ce qui suit n'est pas pris en compte
    simSetJointPosition(simGetObjectHandle(botBodyParts[10]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[11]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[12]),30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[13]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[14]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[15]),30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[16]),0*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[17]),-30*math.pi/180)
    simSetJointPosition(simGetObjectHandle(botBodyParts[18]),30*math.pi/180)

Bref en soit le script n'a pas d'intérêt. Mon but est juste de donner une position aux 18 moteurs (21 en vrai, mais prenons déjà les 18). Le probleme ici, c'est que le code marche, que j'arrive à controler chaque moteur, mais quand j'éxécute ce code, seul les 9 premiers sont pris en compte, le reste n'est juste pas pris en compte par la simulation. J'avoue avoir testé plein d'autres méthodes, mais j'ai jamais réussi à controler plus de 9 moteurs de la scene…
Si quelqu'un a une idée (ou si quelqu'un connait V-rep)…

Edit : Il suffisait d'aller dans tools->calculation module properties->inverse kinematics et de décocher la case.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte