Category: robot
Cinématique inverse avec python, Tinyik
Tinyik, une bibliothèque en langage python pour résoudre les calculs de cinématique inverse, bien utile en robotique :
Installation de Tinyik
Installation de la bibliothèque avec pip:
$ pip install tinyik
Sources :
Borvo A1 – Tech’inn Vitré – quadruped robot
Une vidéo du robot prototype quadrupède BORVO au salon Tech’inn Vitré :
- Teensys 3.5
- 8 servomoteurs
New design, quadruped – BORVO
Mace Robotics presents the new design for the BORVO quadruped robot, with more bio-inspired legs:
I use 2D CAD software (QCAD) for drawing the legs:
The robot uses 8 JX PDI-6221MG servo motors with a torque of 20 kg. Every leg is equipped with two servomotors with in parallel operation.
I use FreeCAD software to check the reverse kinematics calculations of the legs.
The robot uses a Teensys 3.5 microcontroller to program with Arduino IDE. For the moment, no inertial sensor or foot contacting sensors are used.
Inside PDI-6221MG servomotor
Nouvelle structure
Une nouvelle structure mécanique pour le robot quadrupède BORVO:
- structure en pmma 3 mm
- pied souple en impression 3D
- pattes plus rigide
Plus d’informations sur le projet : https://fr.macerobotics.com/robot-borvo/
Quadruped robot – orientation control
New video of the Borvo robot:
Using Inertial sensors for orientation control. The robot use CMPS12 IMU, teensys 3.5, MG91 hobby servos and 2S LiPo battery.
Robot Borvo- nouveau chassis
Suivre l’avancement du projet de robot quadrupède : https://fr.macerobotics.com/robot-borvo/
Robot quadrupède version : 0.1
Robot MRPiZ + capteur de gestes
Une vidéo du robot MRPiZ avec le capteur de gestes 3D Flick:
Le programme en langage python:
#!/usr/bin/env python import sys from mrpiZ_lib import * import time import flicklib from copy import copy import subprocess def message(value): print value @flicklib.move() def move(x, y, z): global xyz xyz = [x,y,z] def main(): time_PasDetection = 0 global xyz xyz = [0,0,0] old_xyz = [0,0,0] deplacement_axeX = 0 print "Exemple" while True: if old_xyz != xyz: deplacement_axeX = xyz[0] deplacement_axeY = xyz[1] print "X", deplacement_axeX print "Y", deplacement_axeY if(deplacement_axeX < 0.35): print "avancer" forward(25) if(deplacement_axeX > 0.75): print "reculer" back(25) if((deplacement_axeY > 0.75)and(deplacement_axeX > 0.35)and(deplacement_axeX < 0.75)): print "tourner droite" turnRight(25) if((deplacement_axeY < 0.5)and(deplacement_axeX > 0.35)and(deplacement_axeX < 0.75)): print "tourner gauche" turnLeft(25) time.sleep(0.5) #stop() else: print "pas de detection" time_PasDetection = time_PasDetection + 1 if(time_PasDetection > 5): stop() time_PasDetection = 0 old_xyz = copy(xyz) time.sleep(0.2) if __name__ == "__main__": main()