Home » robot

Category: robot

C’est quoi la compliance en robotique ?

Définition de la compliance

Source de cette définition : https://projetromeo.wordpress.com/interaction-physique/gestion-de-la-compliance/

“La compliance est la capacité du robot à adapter la rigidité de ses gestes pour prendre en compte des efforts qui lui sont appliqués. La compliance peut être passive (la mécanique du robot est flexible et se déforme quand on exerce un effort dessus) ou active (la mécanique du robot est rigide mais le logiciel détecte les efforts appliqués dessus et pilote les moteurs pour accompagner ses efforts).”

Pourquoi la compliance ?

La compliance apporte de la souplesse, élasticité aux bras robotique pour interagir plus facilement dans un environnement avec les humains ou pour des taches nécessitant de la souplesse pour amortir les efforts sur une pièce mécanique par exemple, ou encore pour manipuler des objets fragiles comme une pomme !

Un robot humanoïde dans une maison par exemple doit être compliant afin d’interagir en toute sécurité avec les humains. Au contraire des robots industriels (bras robotique) qui sont très rigides et donc très dangereux.

Exemple :

Il existe plusieurs solutions techniques afin d’apporter de la compliance à un robot :

  • De façon logicielle (compliance active) : contrôle du couple
    • Mesure du courant du moteur, capteur de force, …
  • Ou une solution matérielle (compliance passive) : matériaux flexible, ressort, …

FIN

Utilisation d’un encodeur magnétique AS5048 avec la Raspberry Pi Pico

Un exemple d’utilisation d’un encodeur magnétique de référence AS5048 avec la carte Raspberry Pi Pico.

 

L’encodeur est relié en SPI au Pico via les pins :

  • GPIO4 => MISO
  • GPIO3 => MOSI
  • GPIO6 => SCK
  • GPIO5 => CS

Exemple de lecture

#include <SimpleFOC.h>
#include <SPI.h>

#define SPI_MISO 4
#define SPI_MOSI 3
#define SPI_SCK 6
#define SPI_CS 5

MagneticSensorSPI sensor = MagneticSensorSPI(SPI_CS, 14, 0x3FFF);

void setup()
{

SPI.setCS(SPI_CS);
SPI.setSCK(SPI_SCK);
SPI.setRX(SPI_MISO);
SPI.setTX(SPI_MOSI);

SPI.begin();

// initialise magnetic sensor hardware
sensor.init();
}


void loop()
{

sensor.update();

// display the angle and the angular velocity to the terminal
Serial.print(sensor.getAngle());
Serial.print("\t");
Serial.println(sensor.getVelocity());

delay(1000);
}

FIN !