Coupe de France de Robotique

INTech a fini 9ème du classement général avec un peu plus de 4 000 points.

Quelques photos,

Robot vue face

Démarrage

Deux oranges

Le robot est codé en Ruby (~5000 lignes), les cartes électroniques sont à base d’Arduino. Le pathfinding utilise l’algorithme de Dijkstra. Il n’a jamais réussi en match à effectuer la séquence initialement prévue.. On y travaille encore ! Coté mécanique, il est doté de 2 bras pour attraper les oranges et d’un rouleau pour aspirer les tomates. Il peut contenir jusqu’à 6 éléments de jeu (4 oranges + 2 tomates = 1500 points).

Prochain rendez-vous, la Coupe d’Ile de France :)

PS : ARM ? Milkymist ? Et si on changeait l’année prochaine ?

Publié dans Général | Mots-clefs : , , | Commentaires fermés

Design pattern : singleton

J’avais besoin, pour le robot, d’une classe permettant de générer des logs. Le problème est qu’elle doit être disponible dans toutes les autres classes dans n’importe quel contexte (sans avoir recours à une variable globale). Là intervient le design pattern Singleton :

require 'logger'
require 'singleton'

class Logger
    include Singleton
    @@old_initialize = Logger.instance_method :initialize

    def initialize
        @@old_initialize.bind(self).call(STDERR)
    end
end

Logger est une classe founie par défaut avec Ruby, il suffit juste d’inclure Singleton. Ainsi partout dans le code, on pourra faire, après avoir inclus cette classe :

log = Logger.instance
log.level = Logger::WARN

log.debug("Created logger")
log.info("Program started")
log.warn("Nothing to do!")

Note : « @@old_initialize.bind(self).call(STDERR) » permet d’utiliser le constructeur original.

Publié dans Général | Mots-clefs : , | Commentaires fermés

Economie du logiciel libre

Je viens de finir « Economie du Logiciel Libre » , un livre écrit par le président de l’Adduact. Il expose de façon très clair le tournant qu’est en train de prendre le monde du logiciel.

La comparaison la plus frappante avec le logiciel libre est celle du pont au Moyen-Age.

L’âge féodal a été un âge de ponts propriétaires, avec des péages partout. Viendra plus tard un moment où on passera librement les ponts, où il sera finalement plus rentable de laisser passer librement sur les ponts que de freiner la circulation par les péages. Il faudra donc financer les ponts autrement.

En bref, un très bon livre disponible chez Eyrolles !

Publié dans Général | Mots-clefs : , , | Commentaires fermés

Framabook : la biographie de Stallman

Je viens de finir de lire la biographie de Richard Stallman, et je tiens à dire que ce livre est très instructif. De 1960 aux environs de 2001, l’auteur nous fait vivre l’ascension du libre. Il montre une histoire de l’informatique vue par les « hackers », complètement différente de celle enseignée habituellement.

Signalons que ce livre est une traduction à l’initiative de Framasoft, qu’il est édité par Eyrolles sous licence libre GPL. Une version électronique est également distribuée.

Note : une partie de l’argent généré par ce livre sera reversé à la Free Software Foundation.

Publié dans Général | Mots-clefs : , , | Commentaires fermés

Ruby et Shoes

Shoes est une librairie graphique très simple et rapide à utiliser en Ruby. Moins aboutie que GTK/SDL/etc.., elle permet cependant un développement efficace ! La version présente dans les dépôts Ubuntu est très ancienne (Shoes évolue très vite). Il est préférable de prendre la version sur le site officiel.

L’utilisation de Shoes se fait avec la commande « shoes script.rb » et non pas avec la commande « ruby ». Pour installer des gems, il faut passer par l’installateur Shoes. Il suffit alors de créer une liste de dépendances au début du script.

# Liste des dépendances, installation si manquante
Shoes.setup do
	gem"serialport"
end

# Début du script
require "serialport"
...

Note : Sous Ubuntu 64bits, il faut recompiler à partir du dépôt git (voir le README pour la procédure), sinon la compilation du gem plante (Il ne trouve pas la libruby).

Publié dans Général | Mots-clefs : , , | Commentaires fermés