Comment créer des robots de la vie réelle Stack Overflow

Avant même que je programmation appris que je suis fasciné par la façon dont les robots pourraient travailler. Maintenant, je sais comment les instructions de programmation sous-jacents seraient écrits, mais ce que je ne comprends pas comment ces intructions sont suivies par le robot.

Par exemple, si je l'ai écrit ce code:

Enfin, où irais-je si je voulais apprendre à créer un robot?

le bras, qui convertit les coordonnées spatiales dans des positions pour les articulations du bras dans la plupart des robots modernes que vous avez un modèle inverse Cinématique du mécanisme, dans ce cas. Ces joints sont généralement déplacés par des servomoteurs. Pour se déplacer en douceur le bras, vous avez besoin d'une série de positions communes intermédiaires définissant le chemin que vous voulez que le bras à suivre. Vous avez également à vous soucier des vitesses des articulations, qui contrôlent ensemble la vitesse de la « main » à la fin du bras.

Le vrai plaisir commence lorsque vous devez tenir compte des obstacles dans l'espace autour du robot. Vous devez sentir l'obstacle et de déterminer comment éviter et encore atteindre la destination.

En fin de compte, quelque chose doit briser les commandes de haut niveau dans des commandes très bas niveau. Quelque chose doit traduire « Ramassez la coupe » à la façon de déplacer le bras (ce que les angles des articulations doit être à) aux commandes de matériel qui tournent réellement les moteurs.

Il y a des cadres qui tentent de fournir une certaine quantité de cette traduction, y compris (mais sans s'y limiter):

Cependant, étant donné que la recherche en robotique s'intéresse à toutes les couches du système, il n'y a pas beaucoup de systèmes qui fournissent l'ensemble de la pile de traduction. Si vous cherchez à entrer dans la robotique, il existe plusieurs systèmes qui tentent de rendre cela plus facile (encore une fois, un échantillon aléatoire):

Vous devriez vérifier Microsoft Robotics Studio (MRS). Ils ont beaucoup de vidéos / screencasts. et tutoriels écrits. En outre, Channel9 a beaucoup de vidéos. interviews, etc., sur le sujet. robitics Y compris des démonstrations et des entrevues avec les développeurs de MRS.

Je dois juste ajouter quelque chose au sujet des projets Arduino à cela parce que je ne vois pas ce mentionné ci-dessus.

Il y a un bar très bas pour l'entrée dans les projets de robotique à base Arduino. Les programmes « esquisse » que vous écrivez pour le matériel sont très faciles à prendre et similaire à la syntaxe C. Si vous ne connaissez pas vos transistors de résistances de ces conseils vous permettent encore de faire beaucoup avec du matériel de plug-in et des « boucliers » supplémentaires qui étendent la carte d'ordinateur de base.

Il est très amusant, très flexible et quelque chose pour obtenir votre code d'interagir avec le monde réel. De plus, sa « Open Hardware » très long des lignes de logiciels open source.

Les robots vont travailler en interaction avec le matériel. Le pont de votre code est souvent fait par différents types de ports E / S. Il pourrait simplement être un câble RS232 par exemple (vous savez ces vieux ports COM1). pièces de matériel sera composé par des moteurs (tels que les servo-moteurs) et des capteurs (tels que les ultrasons se sentir obstacles, des lasers pour obtenir la distance ou commutateurs).

Vous n'avez pas besoin d'utiliser l'assembleur pour le faire, il y a beaucoup de langues (sinon plus) qui peuvent le faire, mais il nécessite des connaissances sur la façon d'interagir avec le matériel. Comme l'écriture d'un pilote. Il nécessite au moins l'électronique de base aussi si vous voulez construire vous-même le robot.

Si vous êtes intéressé, je vous suggère de jeter un oeil à ce livre qui est une bonne introduction.

En outre, vous pouvez essayer la programmation d'un timbre-poste de base. il est assez facile en suivant les tutoriels et il vous donnera un bon départ sur la façon de construire des robots. Il est pas trop cher et vous serez en interaction avec le matériel en peu de temps.

Bonne chance et amusez-vous bien!

Je partage les mêmes démangeaisons. Je suis sur le point d'acheter mon premier conseil Beagle et des capteurs / servos qui peuvent utiliser le bus I2C. Je vais utiliser un événement et d'une conception axée sur la mise en œuvre brute de fibres (fibrilles, si vous voulez) qui sont des fils userspace.

Fondamentalement appelle ma conception pour un processus, qui lance un thread par groupe de servos. Chaque thread gestionnaire de groupe lancera x Nombre de fibrilles, 2 par servo (probable). Un fibrillaire est utilisé pour commander l'asservissement, (est tout simplement trop lourd pour ramasser un objet a été abandonné à savoir un objet, etc.), l'autre gère les événements de ce fibrillaire servo.

Le processus principal a pour tâche d'écouter des événements de tout le reste et en vous assurant de la « main droite sait ce que la main gauche » tout en se déplaçant vers l'avant et négocier les obstacles.

Sa va me prendre la plus grande partie de deux ans pour obtenir quelque chose de travail au point que je suis fier. mais je prévois de nombreuses soirées agréables obtenir à ce moment-là.

Je très probablement utiliser un micronoyau, pas Linux.

Je le fais autant pour me affiner avec l'événement méthodes conduit ainsi que mon désir de faire mon propre R2 :)

Commencez par Phidets si vous êtes familier avec .Net. Vous pouvez TrossenRobotics.com la caisse pour les pièces.

Le kit d'interface Phidgets est un bon endroit pour commencer. De là, vous pouvez obtenir un servo-contrôleur et commencer à construire des choses qui bougent.

Les forums Trossen sont également un bon endroit pour examiner les projets des autres. Ils ont un nouveau centre de données avec des exemples de code / projet aussi. Je ne travaille pas pour eux. juste un client heureux.

répondit le 8 juin '09 à 20h54

Est probablement plus facile d'obtenir un langage plus haut niveau pour décrire les comportements du robot et de l'intelligence et de laisser le langage de bas niveau pour les actions (bras de déplacement, marche, arrêt). Il y a beaucoup de recherches dans ce qu'on appelle l'architecture BDI pour les agents intelligents, google pour elle.

beaucoup de bonnes réponses ici. votre morceau de code de fantaisie est pas loin de la façon dont vous le feriez dans un langage de haut niveau tel que C # sur MS Robotics Studio. Il suffit de garder à l'esprit que les choses même simples (comme « bras déplacer vers la gauche ») sont très chargés de « biais de l'information ».

jusqu'au métal, un bras robotique est un ensemble de liens et des joints motorisés [éventuellement]. Par conséquent, « bras de déplacer vers la gauche » (ou tout point de coordonnées) est déjà une tâche très complexe pour calculer (comparer le tableau D-H, la cinématique vers l'avant et inverses pour les manipulateurs).

Il y a aussi le concept qui se déplacent le bras gauche suppose qu'il n'y a rien dans cet espace et une collision ne se produira pas. Si l'environnement est sans contrainte, alors vous devez mettre en place un système de détection de collision, souvent basée sur une sorte de capteur (caméra) et des algorithmes de vision industrielle.

Ta Réponse

Articles Liés