IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

scripting temps réel


Sujet :

C++

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut scripting temps réel
    Salut à tous.
    Je recherche un langage de scripting qui puisse facilement être embarqué dans une applic C++ ou C (comme le Lua), si possible open-source et gratuit, et qui puisse être utilisé dans un contexte temps réel.
    Pourquoi? Mon école participe au concours Eurobot, le prof voudrait qu'une des parties du programme dictant les actions du robot puisse être plus flexible, qu'il ne soit pas nécessaire de recompiler systématiquement. Je ne saurais pas encore dire si le temps réel est à 100% nécessaire, mais je me dis que logiquement, c'est le cas typique ou on en utilisera.
    Pour résumer il faudrait un langage de scripting sans garbage collector (c'est à ma connaissance la seule caractéristique qui rendre un langage incompatible avec le temps réel).
    Merci à ceux qui me répondront.

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Tu as Boost.Python et lualib qui te permettent d'intéragir respectivement avec Python et Lua dans du code C++. Je te conseille de regarder leur documentation respective pour te faire un avis.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Sans rire, comme si je ne connaissais pas , je le marque même dans mon post.
    Merci quand même pour la réponse, mais en lisant jusqu'au bout c'est bien aussi.

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Si j'ai bien compris le problème, le besoin de flexibilité vient pour la partie "intelligence" du robot, pas pour la partie "contrôle". J'ai l'impression que quel que soit le langage utilisé, on arrivera assez vite sur les algorithmes mis en oeuvre à des incompatibilités avec un temps réel pur.

    Donc, plutôt qu'un langage de script temps réel, je m'orienterai plus vers une architecture qui puisse bien séparer les différents niveaux de contrôle, et n'imposerait pas de contraintes temps réel strictes au niveau le plus haut.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par zais_ethael Voir le message
    Sans rire, comme si je ne connaissais pas , je le marque même dans mon post.
    Merci quand même pour la réponse, mais en lisant jusqu'au bout c'est bien aussi.
    Tu ne parles que de Lua dans ton post. Bref.

    Quelles sont les possibilités que tu as déjà envisagées ?
    Lesquelles as-tu définitivement écarté et pourquoi ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Bon, en réalité le projet est assez abstrait pour le moment, en gros il y a du code auquel je n'ai pas accès parceque l'équipe de conception n'est pas encore décidée et tout ce que je sais c'est que cette partie pose un problème de flexibilité. Pour le moment, je fais le tour des possibilités avec le peu que je sais, histoire d'avoir un peu de répondant devant le prof.
    Alors, qu'ai je pu envisager?
    - Une archi qui séparerait cette partie du reste du code, voir un système à plugin. Mouais, pas vraiment révolutionnaire sur le gain de temps à la compilation, c'est quand même plus simple un bête fichier de script à changer tant que les perfs pures ne sont pas un gros problème (je ne pense pas que ce soit le cas).
    - Un langage de scripting lambda (le Lua, plus parceque son utilisation semble fort simple qu'autre chose, de toutes façons un langage impératif ou un autre...), c'est la solution facile et il est fort peu sur que son garbage collector et la légère imprécision qu'il est susceptible d'engendrer pose un réel problème.
    Néanmoins, je sens qu'en avançant cette idée on pourrait me le reprocher pour le bon motif bien connu dans le profession "les langages à garbage collector sont inutilisables sur un os temps réel" et "les robots faut que ce soit en temps réel". Voila pourquoi je cherche un langage de scripting un peu spécialisé - ou tout du moins qui pourrait servir dans ce but -.
    En cherchant sur le net, on ne peut pas dire que je trouve grand chose, à part peut-être le Erlang (langage fonctionnel), réputé pouvant servir dans les applics real time. L'ennui c'est que, bien qu'il soit interprété, il semble être plus une plateforme de développement complète qu'un petit langage généraliste embarquable dans une applic, ce n'est donc pas vraiment ce que je recherche.
    Comme je le dis, le langage en question importe peu tant qu'on garde la facilité d'utilisation d'un script, mais il serait appréciable pour éviter tout problème (plus hiérarchique que technique) d'avoir un beau logo "realtime certified" tatoué sur le bidule.

  7. #7
    screetch
    Invité(e)

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Je connais le squirrel, il est nottament utilisé dans code::blocks, mais en quoi est-il différent d'un autre langage du même style?

  9. #9
    screetch
    Invité(e)
    Par défaut
    Squirrel is a high level imperative/OO programming language, designed to be a powerful scripting tool that fits in the size, memory bandwidth, and real-time requirements of applications like games. Although Squirrel offers a wide range of features like:
    (blabla)
    -automatic memory management (CPU bursts free; mixed approach ref counting/GC)
    (bla)
    ca me parraissait etre ce que tu demandes

    c'est tres tres leger (a peu pres aussi leger que lua), efficace, et le mode de liberation de la memoire est sans pic de CPU.

  10. #10
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    pour info, j'ai un ami qui a bosser pendant un an au Japon sur des aibot, et il les programmait eu Lua. Donc c'est tout a fait possible de le faire avec Lua. Après, pour le problème du garbage collector, ca va surtout poser problème si le hardware du robot est plutot limité.

    Et un truc important : si tu veut garder un max de perf, evite de passer par des outils comme Luabind qui te permettent effectivement de gagner du temps de developpement et du type safety, mais qui vont aussi t'ajouter un overhead à l'execution qui n'est pas forcement le bienvenu en temps réel...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Ca me parrait interressant, comme de toutes façons je ne trouve rien de concret comme langage spécialisé je crois que je vais plutot m'engager dans cette voie.

  12. #12
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    L'allocation dynamique elle-même n'est pas proscrite sur un vrai système temps-réel ?
    Boost ftw

  13. #13
    screetch
    Invité(e)
    Par défaut
    je ne pense pas qu'il s'agisse de la fusee ariane...

  14. #14
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Pour du temps réel, a priori il faut que tout le code ait une limite dans sa durée d'exécution. Et quand tu fais de l'allocation dynamique, tu sais pas combien de temps ça va prendre, non ?
    Boost ftw

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    moi j'aime bien le scripting javascript dans Qt

  16. #16
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Pour du temps réel, a priori il faut que tout le code ait une limite dans sa durée d'exécution. Et quand tu fais de l'allocation dynamique, tu sais pas combien de temps ça va prendre, non ?
    Je le sais à peu près autant que quand je fais un tri, un traitement/analyse d'images, un algorithme d'optimisation,...
    C'est pourquoi une telle restriction posée en axiome me semble restrictive, à la limite du dogmatisme, et que je préfère partir sur l'idée d'un système à deux vitesses, en limitant le temps réel dur aux aspects gestion de la sécurité et à ce qui est très proche du hard, là où ça a du sens et où c'est faisable. Mais je n'ai pas trop l'expérience du temps réel dur.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  17. #17
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Tu peux aussi regarder URBI qui est un langage de script créé pour les robots il gere entre autre le parallelisme en natif et il peut s'interfacer avec à peu près n'importe quel langage!

  18. #18
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Je le sais à peu près autant que quand je fais un tri, un traitement/analyse d'images, un algorithme d'optimisation,...
    C'est pourquoi une telle restriction posée en axiome me semble restrictive, à la limite du dogmatisme, et que je préfère partir sur l'idée d'un système à deux vitesses, en limitant le temps réel dur aux aspects gestion de la sécurité et à ce qui est très proche du hard, là où ça a du sens et où c'est faisable. Mais je n'ai pas trop l'expérience du temps réel dur.
    L'allocation dynamique n'est pas déterministe c'est pour cela que l'on ne l'utilise pas en temps réel ou tout du moins on évite au maximum. Le seul endroit ou le non determinisme de l'allocation dynamique est acceptable est pendant la phase d'initialisation d'un systeme.



    Pour info je suis en spécialisation GISTR (Génie Informatique des Systemes Temps Réel) à l'EPITA.

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Le Urbi a l'air très interessant, malheureusement il semblerait que le moteur d'exécution soit propriétaire et que les développeurs ne mettent à disposition que des moteurs pret à l'emploi pour certain robots grand public au lieu d'une biblio.

  20. #20
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par zais_ethael Voir le message
    Le Urbi a l'air très interessant, malheureusement il semblerait que le moteur d'exécution soit propriétaire et que les développeurs ne mettent à disposition que des moteurs pret à l'emploi pour certain robots grand public au lieu d'une biblio.

    Sur ce lien: http://www.gostai.com/download.php en bas de la page tu verras que les clubs et les ecoles peuvent avoir un support gratuit pour developper leur propre moteur urbi pour leur robot. Cela ne te couterai rien ne serait ce que d'envoyer un mail pour avoir un peu plus d'info!

Discussions similaires

  1. [AJAX] Script ajax, affichage en temps réel, IE8
    Par Saduina dans le forum AJAX
    Réponses: 1
    Dernier message: 26/12/2013, 15h22
  2. Script temps réel
    Par djaminebiz dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/05/2013, 11h20
  3. voir un script en temps réel
    Par cesar333 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/08/2011, 10h44
  4. developpement script d'ecoute TCP sur asterisk temp réel
    Par mahdibourbita dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 02/05/2011, 07h54
  5. Réponses: 10
    Dernier message: 14/07/2009, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo