Bon, comme le robot est pour le moment aux cartons dû notamment à des problèmes de temps pour choisir les composants (attention, pas aux oubliettes pour autant !), je vais quand même faire progresser un peu ce topic en parlant de ce qui, au fond, est mon cœur de métier : l'intelligence artificielle !
Intelligence perçue vs Intelligence réelle
Attention à ne pas confondre ! Des robots qui nous paraissent intelligents ne le sont pas forcément.
Un exemple : les robots danseurs de Honda.
[BBvideo 425,350]
http://www.youtube.com/v=u6hw6UCtmls[/BBvideo]
Ces robots font une activité très humaine : ils dansent. C'est donc qu'ils sont intelligents ! Désolée de vous décevoir mais non : dans ce type de démonstration, les robots sont programmés « ad hoc », c'est à dire que quelqu'un leur a dit « Tu bouges ton pied gauches de 20cm vers l'avant, puis ton bras droit de 40cm vers le haut, puis tu tournes ta tête de 5 degré » et ainsi de suite.
De même ce superbe robot qui semble faire une démonstration à des visiteurs d'un salon ne semble pas particulièrement intelligent puisque qu'il ne fait de déclamer un discours « appris par cœur » et reproduire des gestes appris également.
[BBvideo 425,350]
http://www.youtube.com/watch?v=L5F6KKskBXg[/BBvideo]
En revanche, un robot comme Mamoru dont j'ai déjà parlé présente une intelligence réelle :
[BBvideo 425,350]
http://www.youtube.com/watch?v=NtD2vwV6 ... detailpage[/BBvideo]
Alors, qu'est ce qui fait qu'un robot est réellement intelligent ou seulement perçu comme intelligent ? Il existe beaucoup de définitions et de théories différentes, et si vous mettez un tas de chercheurs dans une même pièce et leur avouez qu'ils ne sortiront que quand ils se seront mis d'accord sur ce qui fait qu'un robot est intelligent, il y a de très fortes chances qu'il n'en reste plus un seul de vivant quand vous rouvrirez la porte. La définition que je vous propose là est donc totalement personnelle et cela serait extrêmement intéressant de la confronter à vos avis et vos arguments.
Personnellement donc, je dirais que ce qui fait qu'un robot est intelligent est sa capacité d'adaptation. En effet un robot perçu comme intelligent mais dont le comportement est entièrement programmé à l'avance sera incapable de réaliser correctement sa tâche (danser ou accueillir des visiteurs) si on le change d'environnement, voire si on change un seul élément de son environnent. En revanche, un robot (et en règle générale un programme) réellement intelligent sera capable d'analyser son environnement et donc de faire preuve d'une certaine capacité d'adaptation. Attention, le robot universel n'existe néanmoins pas. Un robot est toujours contrôlé par un programme pour une tâche donnée. Même s'il sait faire preuve d'adaptation, il ne sera pas capable de faire face à un environnement trop différent ni de réaliser une tâche pour laquelle il n'a pas été prévu (exception faite des robots capables d'apprentissage dans une certaine mesure, mais j'y reviendrai sans doute dans un autre message). Quoi qu'il en soit, une constante qui revient malgré tout dans cette définition d'intelligence est la capacité à planifier, c'est à dire décider d'une suite d'action à accomplir pour atteindre un but donné, et ce en tenant compte des contraintes imposées par l'environnement.
De quoi un robot a-t-il besoin dans sa petite caboche ?
Du coup, pour faire un robot pas trop bête, de quoi j'ai besoin ?
Je me concentrerai ici sur les robots physiques : entendez par là les robots qui se déplacent dans le monde réel. On oublie les robots purement logiciels, aussi appelés bots, déjà parce que c'est pas le sujet, et en plus parce que c'est le facteur cool est vachement moindre qu'avec les robots physiques.
Hors-sujet
Car oui, pourquoi pensez-vous qu'il y a des chercheurs en IA et robotique ? Ce n'est pas parce qu'est innovant, domaine de pointe, instructif et utile (enfin, un peu quand même), mais surtout parce que c'est MEGA-COOL !
Du coup, quels sont les éléments essentiels pour qu'un petit robot puisse réussir sa tâche de manière intelligente ?
C'est quoi le monde ?
La première chose dont un robot a besoin c'est d'un modèle de représentation des connaissances. Comprenez : il doit comprendre ce qui l'entoure. Notez que ce qui va suivre est valable pour les robots mais aussi pour nous autres humains.
On peut séparer notre réalité en différentes couches : le monde physique, ou monde réel, le monde perçu et le monde abstrait.

Le monde physique est la réalité : ce qui existe indépendamment de la façon dont on la perçoit. Or, par définition, cette réalité n'est pas observable directement. On ne peut que la percevoir à travers un certain nombres de capteurs. Pour un humain, les capteurs connus sont les 5 sens : la vue, l'odorat, le toucher, l'ouïe et le goût. Pour un robot, il existe d'autres types de capteurs tels que les sonars, les lasers, les caméras, les capteurs de chaleur...
Ces différents capteurs renvoient un signal. L'ensemble de ces signaux est ce que l'on appelle la perception que l'on a du monde et nous permet de construire un monde perçu à partir du monde réel. Nous n'avons bien évidemment aucune certitude que ce monde perçu reflète parfaitement la réalité (ça serait même plutôt le contraire). En effet, il est dépendant de nos capteurs et de leur fonctionnement. On le voit bien en examinant les différents types de maladies et de handicaps qui peuvent toucher nos sens : la perception qu'à une personne daltonienne par exemple est très différente d'une personne qui ne l'est pas. De même, une personne avec une très bonne vue ne percevra pas le monde de la même manière qu'un myope. Et de même pour les robots : la qualité de la perception d'un robot dépend de tout un tas de paramètres comme la précision de ses capteurs, leur état général...
Ce monde perçu nous donne donc un accès à la réalité. Seulement, il ne suffit pas à raisonner. Pour pouvoir effectuer un raisonnement, il faut être capable d'abstraction. C'est ici qu'intervient la représentation des connaissances. Le mot Arbre, par exemple, est une abstraction de la réalité. On a appelé Arbre une chose à laquelle on a eu accès dans notre monde perçu et sur laquelle on voulait raisonner. Cette dénomination est une représentation de ce qu'on connaît. Elle fait donc partie d'un modèle de représentation des connaissances : la langue française. À noter que le modèle de représentation des connaissances est quelque chose de personnel : pour pouvoir communiquer et raisonner de concert avec quelqu'un d'autre que soit, il faut que cette autre personne ait la même représentation des connaissances que soi. Il vous faudra donc non seulement parler la même langue mais aussi avoir les même définitions pour les mêmes mots, ce qui n'est pas toujours évident.
Pour un robot, c'est la même : pour qu'un robot puisse raisonner sur ce qu'il perçoit il faut qu'il puisse l'abstraire, le représenter d'une certaine façon. Cette représentation est souvent symbolique, c'est à dire que les entités perçues sont représentées par des symboles, exactement comme les mots d'une langue. Ces symboles sont souvent liés entre eux par des relations (par exemple une feuille et une racine sont des parties d'un arbre).
Ce modèle est généralement construit en fonction des mécanismes de raisonnement que l'on souhaite mettre en place.
Un expert remplira ensuite la base de connaissance du robot selon ce modèle, lui donnant ainsi des connaissances dites a priori.
Raisonner sur un monde qu'on ne connaît pas
La connaissance pour la connaissance, c'est bien, la connaissance pour raisonner dessus, c'est mieux. Le raisonnement pour un robot, c'est quoi ? Un peu comme pour nous, le raisonnement va permettre deux choses (en gros) : créer de nouvelles connaissances ou décider de la meilleure action à effectuer (action décidée dans le monde abstrait mais affectant le monde réel !).
Pour cela, le robot doit donc disposer d'un modèle de raisonnement (comme il dispose d'un modèle de connaissances). Ce modèle va être complètement dépendant du but que l'on donne à notre robot et de l'environnement dans lequel il va évoluer. Cependant, un point capital à prendre en compte dans tout modèle de raisonnement (et auquel je dédis ce paragraphe) est l'imprécision et l'incertitude des connaissances. En effet, comme dit précédemment, un robot perçoit son environnement à travers ses capteurs. Cependant, ces capteurs sont soumis à imprécisions : contraintes extérieurs compliquées (luminosité faibles, vent, brouillard...), capteur endommagé, ou même simplement la limite de précision inhérente à tout capteur.
Un robot est donc dépendant de cette précision et reçoit donc des données imprécises. À partir de ces données, l'agent va extraire des informations qui sont elles-même imprécises, et parfois même incertaines. En effet, une forme rectangulaire avec des pieds dans une image peut être une table ou un banc... Or, l'action qui sera prise ne sera sans doute pas la même qu'il s'agisse d'une table ou d'un banc. Le robot doit donc tenir compte de cette incertitude lors de son processus de raisonnement.
Les techniques que l'on peut utiliser pour permettre à un robot de raisonner sont légions (logiques propositionnelles, logiques temporelles, processus de Markov, théorie des jeux, réseaux de neurones...).
Si ça intéresse du monde, je ferais un petit topo plus détaillés sur ces différentes techniques dans un prochain message, mais il me semble que ce topic explique déjà bien des choses :
http://adulte-surdoue.fr/post109175.html
Hors-sujet
Les cordonniers sont les plus mal chaussés et la geekette ne comprend pas pourquoi ses deux premiers liens ne passent pas entre balises vidéo... Si un modo passe par là et peut jeter un coup d'œil, je lui en serais extrêmement reconnaissante. 
Edit : c'est corrigé ! Merci !
Never tell a young person that anything cannot be done. God may have been waiting centuries for someone ignorant enough of the impossible to do that very thing.
- John Andrew Holmes -