Je lance ce sujet sur le logiciel de simulation de robot anykode marilou.
1) Quelle version du logiciel utilisez vous ? La "Home" de Marilou ?
Si vous avez des tutos ou des informations, merci d'en faire part ici ! =)
Posté 08 janvier 2014 - 02:08
Je lance ce sujet sur le logiciel de simulation de robot anykode marilou.
1) Quelle version du logiciel utilisez vous ? La "Home" de Marilou ?
Si vous avez des tutos ou des informations, merci d'en faire part ici ! =)
N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"
Posté 08 janvier 2014 - 09:01
BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)
Posté 08 janvier 2014 - 09:17
Oui, bien sur, j'utilise la version "home edition" gratuite de Anykode Marilou. Pourquoi cette question? Tu veux te lancer dans l'aventure? Tu remarqueras que mon robot est très simple (7 solides, 8 actionneurs, 2 capteurs), et donc je suis très en dessous des limites de cette version d'évaluation.
Leon.
N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"
Posté 09 janvier 2014 - 08:02
Je suppose que quand tu parles de code simulé, tu parles de code qui sert dans le robot qui est simulé.
En fait, le programme du robot simulé tourne sur le PC. C’est un exécutable .exe qui est compilé avec un compilateur pour Windows, adapté à tes besoins. C’est à toi de développer (coder et compiler) ce .exe, avec le compilateur de ton choix. Ce compilateur n’est pas fourni avec le logiciel Marilou. J’ai par exemple essayé avec Visual C++ et C# express, de Microsoft.
Donc le microcontrôleur n’est pas du tout simulé.
L’interface entre ce programme et les capteurs/actionneurs simulés se fait via une librairie « MODA » fournie avec le logiciel Marilou.
Cette librairie est disponible pour plusieurs langages : C++, C#, etc…
Un autre exécutable (Marilou Exec) joue la simulation : affichage 3D, simulation physique (collisions, etc…), simulation des capteurs et actionneurs.
Les 2 exécutables (programme et simulateur) dialoguent entre eux via de l’IP, mais c’est transparent pour l’utilisateur : c’est la librairie MODA qui fait cette interface côté exécutable. Ca permet quand même d’être compatible de n’importe quoi, y compris de langages pour lesquels aucune librairie Moda n’existe. Je crois que tu peux aussi interfacer le simulateur avec Matlab ou RTMaps.
Pour la partie « portage » du code robot réel au robot simulé : et bien c’est à celui qui code de coder intelligemment pour pouvoir reprendre facilement son code, c’est tout. J’utilise Visual C++ sur le PC, et Mbed pour le micro, qui sont tous les 2 en C++. Rien dans Marilou n’est prévu pour aider le portage, vu que Marilou ne s’occupe pas du tout du langage de programmation. Par exemple, pour interfacer les gyroscopes, j’ai une fonction C++ « read_gyro », développée en 2 versions, qui utilisent strictement les mêmes arguments. Les 2 versions sont :
* version du robot physique, compatible Mbed, utilise l’I2C pour récupérer les données du capteur physique
* version du robot simulé, compatible Visual C++, utilise la librairie Moda pour récupérer les données du capteur simulé
Du coup, toutes les fonctions C++ de plus haut niveau, toute la stratégie, l’asservissement, sont strictement identiques entre les 2 robots (simulé ou réel).
Je t’invite à lire la documentation de Marilou pour te faire une idée plus précise.
Après, il existe d’autres simulateurs 3D qui pourraient vous intéresser tous les 2, mais que je ne connais pas du tout : Webbots, Microsoft Robotics Studio, Player project, etc…
Voir sous Wikipedia :
http://en.wikipedia.org/wiki/Robotics_simulator
Leon.
BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)
Posté 09 janvier 2014 - 08:44
Posté 04 juillet 2017 - 09:25
Bonsoir tout le monde,
je viens d'installer anyKode et j'ai vu sur la doc qu'on pouvait l'utiliser en C mais je ne trouve pas d'exemple ou de doc pour le c (j'en es trouvé pour le cpp)
Merci beaucoup à tous.
Bonne soirée
Il faut toujours viser la lune, car même en cas d’échec, on atterrit dans les étoiles
Posté 04 juillet 2017 - 09:43
Pourquoi ne pourrais-tu pas utiliser du C++?
Tu peux utiliser du C++ même si tu ne sais pas programmer en C++.
Globalement, tout ce que tu codes en C est compatible C++.
Il te suffira simplement d'utiliser les appels aux fonctions MODA de Marilou avec la syntaxe C++.
Il suffit de partir des exemples donnés, et de les enrichir avec du code en C.
De plus, as-tu bien remarqué que tu peux générer en automatique ton code de départ dans le langage de ton choix, à partir du modèle et donc des capteurs/actionneurs simulés? C'est juste hyper pratique.
Leon.
BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)
Posté 04 juillet 2017 - 09:46
Merci beaucoup pour ta réponse. Non je n'ai pas remarqué ça. Ben je suis quand même plus à l'aise avec le c que le c++. OK C'est pas bête. Enfin je viens juste de l'installer donc il va falloir un petit moment avant que je sois à l'aise dessus. Le but étant de pouvoir valider l'algo d'un robot humanoïde et surtout la marche du robot il parait que c'est le plus difficile
Il faut toujours viser la lune, car même en cas d’échec, on atterrit dans les étoiles
Posté 05 juillet 2017 - 09:01
Je confirme que l'algo pour effectuer la marche d'un bipède c'est du lourd.......Heureusement Anykode Marilou permet de voir rapidement le résultat....
Pour exemple sur un servomoteur tu peux modifier en cours de programme la vélocité et/ou le couple...Tu peux définir le poids des différents éléments de ton robot, etc.
Je suis heureux de voir que je ne suis plus le seul sur ce logiciel.....Si besoins tu pourras me poser des questions mais mon niveau n'est pas très élevé.....
++
Posté 09 juillet 2017 - 02:07
Coucou ça y es je me suis lancé dans les tutos seul problème quand j'arrive pour compiler le code il me dit
||=== Build: Debug in moda (compiler: GNU GCC Compiler) ===|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication10StartupWSAEv':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|29|undefined reference to `WSAStartup@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|33|undefined reference to `WSACleanup@0'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|42|undefined reference to `WSAStartup@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|49|undefined reference to `WSACleanup@0'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|59|undefined reference to `WSAStartup@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|62|undefined reference to `WSACleanup@0'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|63|undefined reference to `WSAStartup@8'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication8FillAddrEP11sockaddr_inm':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|87|undefined reference to `htons@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication12ListenThreadEPNS0_9TCPServerE':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|105|undefined reference to `socket@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|109|undefined reference to `socket@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|120|undefined reference to `bind@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|135|undefined reference to `getsockname@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|136|undefined reference to `htons@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|139|undefined reference to `setsockopt@20'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|140|undefined reference to `listen@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|143|undefined reference to `closesocket@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|153|undefined reference to `accept@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|156|undefined reference to `closesocket@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|163|undefined reference to `closesocket@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|169|undefined reference to `setsockopt@20'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer10SetTimeoutEjmm':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|185|undefined reference to `setsockopt@20'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|189|undefined reference to `setsockopt@20'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer10KillClientEPNS0_9TCPCLIENTE':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|297|undefined reference to `closesocket@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer14InternalKillMEEPNS0_9TCPCLIENTE':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|315|undefined reference to `closesocket@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer8ShutDownEPNS0_9TCPCLIENTE':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|328|undefined reference to `shutdown@8'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer11KillClientsEv':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|345|undefined reference to `closesocket@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer10SendBufferEPNS0_9TCPCLIENTEPvmi':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|392|undefined reference to `send@16'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|405|undefined reference to `send@16'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer9GetBufferEPNS0_9TCPCLIENTEPvmm':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|422|undefined reference to `recv@16'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|430|undefined reference to `recv@16'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer16ResolveHostInfosEv':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|528|undefined reference to `gethostbyname@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServerD2Ev':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|560|undefined reference to `shutdown@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|561|undefined reference to `closesocket@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPServer17GetClientHostNameEPNS0_9TCPCLIENTEPcm':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|596|undefined reference to `gethostbyaddr@12'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient10SetTimeoutEmm':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|731|undefined reference to `setsockopt@20'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|735|undefined reference to `setsockopt@20'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient10SetNoDelayEi':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|790|undefined reference to `setsockopt@20'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient13ConnectClientEPcmPFvPS1_Ei':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|806|undefined reference to `gethostname@8'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|807|undefined reference to `socket@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|815|undefined reference to `closesocket@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|819|undefined reference to `setsockopt@20'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|820|undefined reference to `connect@12'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|822|undefined reference to `closesocket@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient8FillAddrEP11sockaddr_in':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|905|undefined reference to `inet_addr@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|910|undefined reference to `gethostbyname@4'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|933|undefined reference to `htons@4'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient13ReceiveBufferEPvi':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|941|undefined reference to `recv@16'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient9GetBufferEPvi':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|951|undefined reference to `recv@16'|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|956|undefined reference to `recv@16'|
C:\Program Files (x86)\Marilou2010\SDKs\Moda\libs\libmoda-x86-win-codeblocksd.a(xkTCPEngine.o)||In function `ZN5xkode13communication9TCPClient10SendBufferEPvi':|
c:\Marilou\v4.7.0\Sdks\Moda\ModaCPP\sources\xklib\xkTCPEngine.cpp|973|undefined reference to `send@16'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
Alors si je ne me trompe pas c'est un problème de version avec code::bloks et il faut recompiler la lib mais probleme quand j'ouvre les sources sous code::bloks il manque un ficher.
Est-ce que c'est déjà arrivé à quelqu'un ??
Il faut toujours viser la lune, car même en cas d’échec, on atterrit dans les étoiles
Posté 09 juillet 2017 - 06:29
Ma chaine YouTube : https://www.youtube..../oracid1/videos
Posté 10 juillet 2017 - 07:26
Finalement j'ai trouvé le pb.
IL me manquait deux lib mais j'ai un autre pb mes robots passe à travers mon sol et le programme que j'ai compilé me dit
Using /creupsrobot0 on server localhost
Moda: trying to connect to moda server primary channel (localhost:13000)
Moda: received service:
:ID =2
:Type =/marilou/modaserver
:Desc =Marilou Open Devices Access (MODA)
:Prima. =Marilou.native
:Params =
Moda: choosing service ID=2
Moda: connection OK
Moda: using protocol v5
Connection ok to moda server
robot /creupsrobot0 found
Moda: disconnected
Moda: disconnected
Modifié par R2D21995, 10 juillet 2017 - 07:54 .
Il faut toujours viser la lune, car même en cas d’échec, on atterrit dans les étoiles
Posté 10 juillet 2017 - 09:21
Ha et bien c'est déjà plus clair....
Donc apparemment tu te déconnectes de Moda (Moda: disconnected)....
Pour ta connexion moda tu as ::
int main(int argc, CHAR* argv[]) { /////////////////////////////////////////////////////////////////////////////////// //process the command line CommandLine::ProcessCommandLine(argc,argv); //Connect to MODA server Connection *pConnection=new ModaCPP::Connection(true); if(pConnection->Connect( CommandLine::GetArgumentValue("/modaserver","127.0.0.1"),CommandLine::GetArgumentValueINT("/modaport",0),false)) { _cprintf("Connection ok\r\n"); ModaCPP::RobotPHX *robot=pConnection->QueryRobotPHX("/"); if(robot) { _cprintf("robot found in this world\r\n");//Le robot à été trouvé while(!_kbhit()) { //ICI TON COE //ICI TON CODE }//fin de while } else { _cprintf("robot not found in this world\r\n"); } } else { _cprintf("Unable to connect to moda server : be sure Exec is running and MODA TCP/UDP ports are open\r\n"); } pConnection->Disconnect(); delete pConnection; return 0; }
C'est cette ligne qui déconnecte moda :
pConnection->Disconnect();
A voir si elle ne traine pas dans une de tes boucles....ou autres.....En même tps je te rappel que je suis moi aussi débutant.....
Posté 10 juillet 2017 - 09:42
Pour exemple :
Moda: trying to connect to moda server primary channel (127.0.0.1:13000) Moda: received service: :ID =2 :Type =/marilou/modaserver :Desc =Marilou Open Devices Access (MODA) :Prima. =Marilou.native :Params = Moda: choosing service ID=2 Moda: connection OK Moda: using protocol v5 Connection ok robot found in this world JambeGauche found ... jambeDroite found ... Jambe Gauche et Droite found
J'effectue plusieurs tests pour savoir si le robot est trouvé
Si la jambe gauche est trouvé
Si la jambe droite est trouvé
si un élément n'est pas trouvé alors j'effectue une déconnexion avec :
pConnection->Disconnect();
Donc chez toi, soit c'est une partie qui n'est pas trouvé ou tu as Disconnect(); qui traine dans un coin.....
0 members, 1 guests, 0 anonymous users