Au lieu de vérifier le courant, tu peux aussi simplement tourner à faible couple (par exemple PWM constant), puis détecter quand l'encodeur bougé sur le moteur ne bouge plus (ou du moins ne bouge plus significativement en moyenne, par exemple quand pour la première fois la moyenne sur 0.1s est <=0).
Le capteur de butée est aussi une bonne solution.
A noter que ces deux solutions ont en commun qu'il faut que tu lève la jambe au max (est-ce que cela fera tomber ton quadrupède?).
Avec les capteurs magnétiques ou optiques, tu peux les placer au milieu de la course, mais il faut encore trouver la bonne position.
Sinon, il y a éventuellement l'option de contraindre mécaniquement une position initiale : par exemple, de dire que si le robot n'est pas alimenté, les jambes vont automatiquement se replier entièrement à cause de la gravité, ou si tu ajoute un élastique, elles peuvent être entièrement dressées.
Si tu as bien des encodeurs absolus sur les deux moteurs, je penses que tu peux aussi déterminer presque immédiatement la position des deux jambes en utilisant un capteur de distance orienté vers le bas et qui mesure la distance entre le chassis et une des jambes. L'avantage est que tu t'épargne tout déplacement (peut-être un tout petit restera-t-il n"cessaire pour s'assurer quelle jambe on vois). Par contre, c'est compliqué à mettre en place, et un capteur de distance est plus cher qu'un fin de course
Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...
Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.