Aller au contenu


Photo
- - - - -

Communication multi robots

Multi robots communications

  • Veuillez vous connecter pour répondre
22 réponses à ce sujet

#1 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 10 avril 2017 - 05:18

Bonjour à tous,

J'aimerais faire communiquer plusieurs robots entre eux. Pour ce faire, je souhaiterai mettre en place un réseaux ad hoc afin d'établir une connections entre chaque semaine agents.

Ma question, c'est comment (quel moyen) est ce possible d'envoyer des messages à un (des) robot(s) ? Pour que ces messages soit compréhensible par chaque agents ayant reçu le message et comment l'algorithme de contrôle du robots peut aller lire ces messages?

J'ai vu que il y a des protocoles ACL (Agents Communication Langages) qui sont FIPA et KQML.

Est ce possible d'avoir un algorithme de contrôle du robots (en C par exemple) qui puissent être averti de l'arriver d'un message et ensuite le lire?

Comment intégrée un ACL dans un algorithmes de contrôle ?

Merci de votre aide 😃😃

J'espère avoir été clair sur ma problématique 😉

#2 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 607 messages
  • Gender:Male

Posté 10 avril 2017 - 05:35

Ce n'est pas du tout mon domaine d'expertise, donc d'autre pourront apporter des réponses plus pertinente, cependant si je devais faire une communication entre plusieurs robot de la façon la plus simple possible je choisirais des ondes radio, avec tout le monde sur le même canal, et un système de " Trame " avec adressage pour savoir qui parle à qui. La seule contrainte c'est qu'il n'y a qu'un seul robot qui peut parler en même temps ...  D'ailleurs mieux vaudrait mettre dans ce cas un robot en " master coordinateur " ... 

Mais bon ça c'est pour faire un truc " simple " , sans faire de recherche sur le choses qui existent déjà et qui marchent très bien etc... 

 


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 


#3 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 10 avril 2017 - 06:21

Ou bien en wifi avec un raspberry (ou équivallent).
Je ne connais pas non plus ces ACL.

#4 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 11 avril 2017 - 08:02

Merci à vous de vos réponse :-)!
En effet, je ne souhaite pas avoir de maître et d'esclave. Je voudrai que un ou plusieurs robots puisse se greffer au micro réseau pour que des robots réalise des tâches en collaboration. C'est pour cela que je voulais utilisé un réseau de type Ad Hoc.
Mon problème est comment transmettre des messages en mode multicast aux autres robots. Et ensuite comment demander à l'algorithme principale du robots de venir lire ces messages?
Ou stocker ces messages? Dans un socket? (Comment faire ceci :s)

Si vous avez déjà réalisé se genre de communication je suis preneur :-)! Ou si vous des techniques pouvant m'aider :-)

#5 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 11 avril 2017 - 08:04

Oui avec un raspberry c'est possible. Mais si je réalise une communication Ad hoc entre deux cartes RPB, ou stocker les messages? Et comment les lire par un programme code en C ou bien en python?

#6 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 11 avril 2017 - 08:37

RPB, je suppose que c'est raspberry pi model b. Il suffit que ton programme accède à la carte réseau. Apres l'établissement de la communication.

#7 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 11 avril 2017 - 01:16

Oui désolé Path, RPB c'est une carte Raspberry. Je pense plus à la raspberry pi 3 (ou a n'importe quel autre PC embarqué avec du WIFI). A mon avis, établir une connexion Ad Hoc entre plusieurs mini PC ne sera pas un problème. C'est plutôt l'échange de données, comment lorsque le destinateur a reçu la trame, le programme principale peut aller lire la trame? Ou stocker la trame reçu? (pour que le programme principale aille lire son contenu).



#8 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 11 avril 2017 - 01:52

J'ai peur de ne pas comprendre. J'ai besoin d'un dessin de ce que tu imagine. :)
Une fois que chaque RPB est connecté au réseau (ad hoc ou pas) il a son IP. Après, c'est à toi de voir. Soit tout le monde parle à tout le monde soit chacun connait son interlocuteur (ip) soit un centralise ... à ce niveau, c'est complètement ouvert. Tu fais comme tu veux.
D'où ma demnde de plus d'infos :)

#9 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 11 avril 2017 - 02:29

J'ai fait rapidement un pti shéma ci joint.

 

Ma principale interrogation, c'est comment stocker les trames reçu, comment aller les lires pour ensuite prendre en considération le message dans l’algorithme principal.

 

Il y aura un programme principal qui gère chaque entité (robot), il contrôle le robot dans son déplacement (donc reçoit les données de ses propres capteurs, les analyses et envoi les commande sur les moteurs pour faire déplacer le robot).

 

Le but étant de faire déplacer la flotte de robot en formation.

 

Pour la sécurité, si un robot remarque un obstacle il doit avertir ses camarades. Ou bien si un ou plusieurs autre robots veulent se greffer au groupe, le ou les robots supplémentaire doit avertir la flotte.

 

Donc il faudra faire un message multicast ou bien broadcast.

 

Comment faire pour que le robot s’aperçoive qu’il a reçu un message ? Comment aller le lire et où aller le lire ? Sachant que pendant ce temps-là il exécute son programme principal (déplacement) !

 

J’espère que je suis un peu plus clair dans ma demande :s

Image(s) jointe(s)

  • Capture.PNG


#10 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 11 avril 2017 - 04:53

Un tel robot doit être multi-tâches. Arduino ou raspberry savent vérifier si un message est arrivé et piloter le déplacement dans leur boucle principale.

Pour démystifier tout cela, il faudrait que tu fasses quelques montages unitaires. Recevoir/ lire un message, faire tourner un moteur. Cela te paraîtra moins obscure.

Tu sais quel langage tu vas utiliser ?

#11 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 11 avril 2017 - 05:07

Oui sûrement du C ou du python. A mon avis après plus de réflexion aujourd'hui, je vais faire un programme qui sera exécuté en parallèle. Comme un deamon par exemple. Pour écouter les message pouvant arriver sur le support de communication. Et faire des interruptions. Parce que la communication me permettra, dans un premier temps, d'assurer la sécurité (si un robot s'arrête ou à un problème, les autres doivent s'arrêter en même temps - temps reel)

#12 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 11 avril 2017 - 07:13

C'est un bon début.
Dis, comment les robots vont détecter leur position les uns par rapport aux autres ?

#13 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 24 avril 2017 - 04:09

Bonjour Path,

 

désolé de te répondre aussi tardivement, j’ai zapper de répondre après :s

 

Les robots communiquerons leurs données entre eux via un réseau maillé .. Tu penses que c'est une solution ?



#14 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 24 avril 2017 - 05:27

Un réseau maillé. Tu peux en dire plus ?

#15 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 25 avril 2017 - 09:26

https://fr.wikipedia.org/wiki/Ad_hoc

 

https://fr.wikipedia.../Topologie_mesh



#16 Path

Path

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 449 messages
  • Gender:Male
  • Location:Paris

Posté 25 avril 2017 - 12:34

Et ? Pardon, je comprends pas :)

#17 guibguib

guibguib

    Nouveau membre

  • Membres
  • 10 messages

Posté 25 avril 2017 - 12:59

Ceci permettra de créer un réseau local entre les entités afin de travailler en collaboration. D’où la nécessité d'établir un réseau propre au groupe de robot. Pour la partie technique d'un réseau maillé je te laisse te renseigné sur la toile ;)



#18 Mike118

Mike118

    Pilier du forum

  • Administrateur
  • PipPipPipPipPip
  • 5 607 messages
  • Gender:Male

Posté 27 avril 2017 - 11:58

Personnellement j'aime bien les solutions simple et efficace... 
Je préfère largement utiliser un système radio qui se branche sur l'uart que de passer par le réseau wifi ... En plus en terme de porté ... c'est pas la même chose mais bon chacun son choix ;)

 

Si tu ne l'as pas déjà lu ce document est intéressant : Fichier joint  robotex-communication-2015.pdf   1,42 Mo   32 téléchargement(s)

 

à bientôt en tout cas n'hésite pas à nous présenter ce que tu fais ;) 


Robot-Maker ne se résume pas que au forum !
Jetez un oeil au blog, aux tutoriels, aux ouvrages, au robotscope  et à la  boutique : le shop des makers   !
N'hésitez pas à contribuer à la communauté et à partager vos trucs et astuces : Ensemble nous irons plus loin ! =)
 

Robot-Maker a pour vocation de :

  • Permettre à des hobbyistes passionnés de s'entraider pour qu'ils puissent mener à bien leurs créations.
  • Permettre à des projets innovants de voir le jour dans le domaine de la robotique et des nouvelles technologies.

à très bientôt ! 


#19 maximusk

maximusk

    Habitué

  • Membres
  • PipPip
  • 258 messages
  • Gender:Male
  • Location:Le Mans

Posté 19 mai 2017 - 07:06

Le réseau maillé, c'est bien quand tu as vraiment beaucoup de noeuds (donc de robots), et que tu veux économiser de l'énergie. Ca permet aussi de ne pas dépendre d'un élément, donc si il y en à un qui tombe en panne / perd la connexion, le groupe continue de fonctionner. Mais c'est compliqué à mettre en oeuvre.

A mon avis, le plus simple c'est de tous les connecter à un même réseau wifi, et en utilisant des protocoles réseau, tu peux envoyer des trames en broadcast, donc à tout le monde.



#20 gerardosamara

gerardosamara

    Habitué

  • Membres
  • PipPip
  • 188 messages
  • Gender:Male
  • Location:Costa Rica & Bretagne
  • Interests:La vie sous les tropiques

Posté 19 mai 2017 - 08:47

Peut etre ceci ... https://www.mysensor...g/about/network

 

Un réseau maillé autour d'un Controlleur , d'1 GW Arduino et de x nodes Arduinos connectés à la GW par radio (NRF24) sur lesquels sont connectés les robots dans le cas présent ( intégrés dans le robot )

Les nodes peuvent etre aussi de type ESP286 + wifi

 

J'avais regardé ce projet pour un besoin domotique  ( capteurs ) mais c'est peut etre adaptable à la robotique


Pura vida





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users