1

Asservissement.net (part. 2)

Nous avons déjà vu la base de notre asservissement en .net

Voici maintenant la suite : comment intégrer ce PID dans le cadre de notre Robot, avec un asservissement en distance et en rotation.

Notre code de PID utilise des delegates pour passer les différentes valeurs et renvoyer celles de sortie. Il y a donc 6 fonctions à définir (3 par PID).

Les deux premières concernent la récupération des valeurs réelle obtenue en lisant les codeurs. Dans notre cas, nous utilisons des composants nommés LS7366 qui, de manière autonome, récupère les pas renvoyés par les codeurs. Il suffit ensuite de les interroger par SPI pour connaitre l’état des codeurs. Ce composant s’occupe de filtrer les pas dus à la vibration du robot et prend en compte correctement le sens de rotation des moteurs. Nous ferons sans doute un article à son sujet (car il le mérite).
Pour en revenir à nos deux fonctions, elles renvoient pour l’avance la moyenne du codeur droit et gauche pour l’avance et la différence entre les deux pour la rotation.

… Lire la suite

2

Asservissement.net

Comme l’a dit précédemment PAC, cette année, pour le robot métallique, tout passe par du .net. Ou plus précisément en microframework.

Tout passer en .net, ça passe également par une migration de l’asservissement en .net. A première vue, cela peut paraître dangereux, le microFramework n’étant pas un OS temps réel, cependant notre expérience positive de l’an dernier sur la partie IA, capteurs et actionneurs nous a pousser à tenter l’asservissement.

Voici déjà en introduction une petite vidéo de ce que nous avons déjà réussi à obtenir (il reste à régler les PID mais c’est un bon début).

Je passe tous les concepts classique sur les PID de robot que l’on trouve très bien présentés sur d’autres site comme le club elekRCVA ou ce très complet ppt également de RCVA. Mon objectif est de faire un asservissement en polaire donc avec un PID pour l’angle et un pour l’avance.

Pour point de départ, nous sommes partit de ce code trouvé sur codeprojet.net : http://www.codeproject.com/Articles/49548/Industrial-NET-PID-Controllers

C’était un bon point de départ avec tout de même quelques défauts (boucle infinie, tests bizares autour du terme I…)

Dans les bons points, on note l’utilisation de delegate (pointeurs sur fonction) pour passer les valeurs d’entrée et de sortie, ainsi on peut utiliser une même classe pour plusieurs PID (dans notre cas, un polaire et un en distance).

… Lire la suite

0

Bienvenue .Bot

L'ile au trésor

Les mois passent et le(s) robot(s) de 2012 commencent à se concrétiser pas à pas.

Cette année l’équipe s’est recomposée avec l’entrée d’un spécialiste des robots Lego.  Le règlement 2012 de la coupe de France de robotique ouvrant cette année la possibilité d’engager deux robots sur la piste, nous avons naturellement opté pour une combinaison mixte d’un robot en Lego et d’un autre à base Acier.

L’expérience de programmation micro Framework .net (NETMF pour les intimes) de l’année dernière étant pour nous une réussite, nous repartons cette année sur cette technologie de programmation. Du moins pour le robot qui n’est pas en Lego.

Nous avons néanmoins décidé d’apporter quelques changements par rapport  à l’année dernière et notamment en ce qui concerne notre carte d’asservissement. Pour mémoire, nous utilisions l’année dernière une carte industrielle ESX-IOX programmable en C. Les raisons de son abandon sont multiples :

-   De part sa nature industrielle, la carte était emmagasinée dans un boîtier la protégeant de la poussière et de l’humidité mais qui rendait sa disposition dans le robot assez complexe de part sa taille démesurée.

-   Impossibilité d’effectuer du pas à pas sur les programmes et pire que cela le debug passe nécessairement par l’envoi de données sur un bus CAN qui saturait quand le nombre de données envoyées était trop important (lors du débogage du PID par exemple).

La version 2012 du robot (enfin du gros, celui pas en Lego) prend donc un tournant Full NETMF. La carte d’asservissement sera cette année une carte FEZ Panda II de chez Ghi Electronics comme l’était la carte d’IA de l’année dernière (une FEZ Domino pour mémoire).

Le composant faisant l’interface avec les codeurs a aussi évolué pour un LS7366 mais je laisse les explications pour un prochain article.

Je termine l’article avec un peu de teasing sur la méca du gros robot :

Pages ... 1 2 3 4