Question

Même avant la 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:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

Comment ce programme sera suivi par la CPU d'une manière qui ferait le robot faire l'action physique de regarder à gauche, déplaçant son bras, et tel? Est-il fait principalement en langage binaire / ASM?

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

Était-ce utile?

La solution

Dans la plupart des robots modernes que vous avez un modèle inverse Cinématique du mécanisme, dans ce cas, le bras, qui convertit les coordonnées spatiales dans des positions pour les articulations du bras. 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.

Alors que le bras se déplace votre système d'asservissement sera obtenir des commentaires sur sa position réelle. Les systèmes d'asservissement simples peuvent utiliser une boucle de rétroaction de PID de base pour régler les moteurs. Des systèmes plus complexes comprennent les paramètres d'alimentation vers l'avant qui compensent l'inertie, la gravité, la friction, et ainsi de suite. Ceux-ci peuvent devenir très sophistiqués.

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.

Autres conseils

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 se 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):

A défaut, des sites tels que Faire fournissent même des guides pour des projets de construction de robots pour démarrer à partir. Le défi est de trouver un projet que vous êtes excité, et aller à la ville!

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

Je dois juste ajouter quelque chose au sujet de 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 plug-in matériel et « boucliers » qui prolongent la carte de l'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 servomoteurs ) et des capteurs (tels que ultrasons pour se sentir les obstacles, les lasers pour obtenir la distance ou les 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 le robot vous.

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 de programmer un timbre de base , il est assez facile en suivant les tutoriels et il sera vous donner 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!

Si vous obtenez assez bon à la programmation, vous découvrirez peut-être que vous ne même pas réellement besoin d'un robot pour tester une grande partie de code le plus dur que vous aurez besoin d'écrire ... (IE, faire un robot voir et reconnaître un scène m'a toujours fasciné ... Mais à un moment donné, je me suis rendu que le robot physique nécessaire à ce problème est la partie facile ... le logiciel est le plus dur!) ...

est sans doute 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.

Vous pouvez trouver plus d'informations à ce , c'est un DSL pour décrire le comportement de l'agent en Java. Il est appelé interprète Jason et la langue est AgentSpeak (L).

Trouver un rel="nofollow locale équipe FIRST robotique et volontaire pour être un mentor. FIRST est une compétition de robotique pour moyenne et haute école des enfants. Le but est que les enfants font tout le travail pour construire, programme, tester et exécuter le robot, mais vous aurez toujours avoir beaucoup d'occasions de creuser et d'apprendre vraiment le logiciel. Ils utilisent LabView par National Instruments, et, en date du 8 février ont juste commencé la compétition régionale pour cette année. LabView est un environnement de programmation graphique qui interface avec le matériel NI pour vous permettre de programmer des moteurs, des actionneurs et des capteurs. La substance NI est assez lisse et il est assez facile à utiliser, plus il est fourni gratuitement à chaque équipe, de sorte que vous ne devez pas acheter le matériel vous-même et des logiciels (au moins pour commencer.) De plus, vous obtenez le bonus supplémentaire de aider une nouvelle génération d'ingénieurs commencent leur carrière.

Vous devez avoir un pilote qui interfacé avec le matériel (plus probablement un STAMP ou FPGA avec des moteurs etc ...). Vous pouvez ensuite appeler la fonction me.moveLeftArm (x, y); et le pilote devrait savoir que moveLeftArm () des moyens pour déplacer un actionneur pour X secondes / millisecondes / degrés.

Je suis sûr que vous pourriez trouver un kit qui fait la programmation du robot.

Si vous voulez une alternative Java, je peux recommander le Linux Robotics . Il a beaucoup de bonnes informations sur l'endroit où obtenir des kits, des pièces et des capteurs, ainsi que des listes complètes de code source en Java.

Je partage les mêmes démangeaisons .. Je suis sur le point d'acheter ma première I2C bus. 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.

En fait mes appels de 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 contrôler le servo, (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 est en train de faire » tout en se déplaçant vers l'avant et les obstacles à la négociation.

Son 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 en utilisant 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 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 les choses qui se déplacent la construction.

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.

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 les articulations motorisées [éventuellement]. Par conséquent, « bras déplacer vers la gauche » (ou tout autre point de coordonnées) est déjà une tâche très complexe pour calculer (chercher le tableau D & H, la cinématique en avant et inverse pour les manipulateurs).

Il y a aussi le concept qui se déplacent à gauche bras 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.

En résumé, la langue et l'interface matériel sont souvent trivial par rapport à la modélisation du système pour obtenir le comportement souhaité.

En ce qui concerne la dernière question « comment créer un robot », je trouve à partir de la recherche d'un projet connexe dans les communautés en ligne comme [Adafruit] [1], [Hackster.io] [2], ou même [pépin] [ 3], ou à la recherche pour les blogs de quelqu'un qui ont construit un robot à partir de zéro, par exemple, https://burningservos.com ou un produit qui offre des tutoriels pour et documentations à la fois par exemple, du matériel et des logiciels, http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/ .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top