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

Affichage des résultats du sondage: Quels sont les meilleurs langages pour programmer des robots ?

Votants
108. Vous ne pouvez pas participer à ce sondage.
  • C/C++

    86 79,63%
  • Python

    28 25,93%
  • LISP

    7 6,48%
  • Prolog

    6 5,56%
  • Java

    39 36,11%
  • Pascal

    0 0%
  • MATLAB

    0 0%
  • C#

    24 22,22%
  • HDL

    4 3,70%
  • RAPID

    1 0,93%
  • Kuka Robot Language (KRL)

    12 11,11%
  • Comau PDL2

    0 0%
  • INFORM

    0 0%
  • Karel

    6 5,56%
  • VAL3

    6 5,56%
  • URScript

    0 0%
  • Autres (à préciser)

    4 3,70%
Sondage à choix multiple
Robotique Discussion :

Sondage : quels sont les meilleurs langages de programmation pour la filière robotique ?


Sujet :

Robotique

  1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    Février 2017
    Messages
    1 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Redacteur web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2017
    Messages : 1 841
    Points : 51 489
    Points
    51 489
    Par défaut Sondage : quels sont les meilleurs langages de programmation pour la filière robotique ?
    Sondage : quels sont les meilleurs langages de programmation pour la filière robotique ?
    Quels sont vos critères ?

    Le choix du langage de programmation est fonction du projet à mener, des contraintes auxquelles il faut faire face. Pour ne citer que celles-là, la filière robotique de par sa transversalité impose à ses acteurs de savoir coller à des spécifications de programmation temps réel et mettre sur pied des interfaces homme-machine graphiques dans bien des cas. Dès lors, la question du choix du langage de programmation se pose avec acuité. Dans le cas des projets de robotique, il serait même plus judicieux de parler de choix des langages de programmation. De C/C++ au langage de description de matériel (HDL) en passant par Java et autres MATLAB, on revient sur les raisons pour lesquelles les professionnels de la filière sont susceptibles de faire usage d’un langage donné.

    1. C/C++

    La plupart des programmeurs s'appuient sur C/C++ pour garantir d’excellentes performances temps réel aux robots. Motif : C/C++ a fait ses preuves dans la filière programmation système en général et temps réel en particulier. De plus, de nombreuses bibliothèques matérielles utilisées en robotique s'appuient sur l'un de ces langages. Lorsque la mémoire du robot est fortement limitée, le "C" standard est préféré pour pousser la précision à la gestion de chaque octet. Toutefois, avec ses nombreux outils, bibliothèques et fonctions, le C++ occupe une place importante dans le domaine. La robotique dépend beaucoup des performances en temps réel, ce qui fait de C et C++ des quasi standards pour les travailleurs de la filière.

    2. Python

    Python est l'un des plus populaires et considéré comme l'un des langages de programmation les plus faciles pour la robotique.

    Une des raisons de sa popularité en robotique est probablement que Python (et C++) sont les deux principaux langages de programmation disponibles sur ROS - un système d'exploitation dédié aux robots. Le principal objectif de ce langage est la facilité d'utilisation. Par rapport à d'autres langages de programmation orientés objet comme Java ou C/C++, Python nécessite moins de travail de codage, ce qui permet de gagner beaucoup de temps. Python permet de se passer de beaucoup de choses qui prennent du temps en programmation, comme la définition et la distribution des types de variables.

    Il existe également un grand nombre de bibliothèques gratuites pour Python, ce qui signifie qu'il est inutile de repartir de zéro lors de l'implémentation d'une fonctionnalité de base. Et comme il permet des liaisons simples avec du code C/C++, les parties du code les plus performantes peuvent être implémentées dans ces langages pour éviter la perte de performance.

    Toutefois, sa nature de langage interprété peut devenir un talon d'Achille sur de gros projets du fait de l'incapacité à détecter les erreurs.

    3. LISP

    LISP est le deuxième plus ancien langage de programmation au monde après FORTRAN. Certaines parties du ROS (Robot Operating System) sont écrites en LISP, bien qu'il ne soit pas nécessaire de le connaître pour utiliser le ROS. Le langage est utilisé pour développer des fonctions de commande de robot dans une catégorie de micro-ordinateurs qui aide à la manipulation de diverses fonctions de robot.

    4. Prolog

    Ce langage de programmation robotique est classé aux côtés de Lisp quand on parle de développement dans le domaine de l'intelligence artificielle. Prolog est un langage de programmation logique qui permet aux programmeurs de représenter la "connaissance" sous une forme qu'un algorithme d'IA peut comprendre. Les fonctionnalités qu'il offre comprennent une correspondance efficace des formes, une structuration des données en arborescence et un retour en arrière automatique. Toutes ces fonctionnalités offrent un cadre de programmation étonnamment puissant et flexible. IBM a fait usage de ce langage de dans le cadre de la mise sur pied de son intelligence artificielle dénommée Watson.

    5. Java

    La majorité d'institutions de l'enseignement supérieur offrant des cours de robotique et des certifications incluent Java comme un passage obligé au sein de leurs programmes d'études parce que ce langage fournit à ses utilisateurs de nombreuses fonctionnalités de haut niveau requises dans la programmation robotique.

    Sa nature de langage interprété permet d'utiliser le même code sur de nombreuses machines différentes qui fournissent des fonctionnalités spécialisées aux robots pour effectuer des tâches réalisées en principe par des humains. Le Java Media Framework fait partie des bases de code dont on use de cette façon.

    Java fait partie des langages qu'on cite comme entrant dans les ingrédients de la mise sur pied de Watson et AlphaGo par IBM.


    6. Pascal

    Bon nombre de fabricants ont développé leur propre langage de programmation de robots en s'appuyant sur Pascal. Un listing de certains rentrant dans cette catégorie est proposé au point numéro 10. La familiarisation avec ces langages pour robots industriels peut donc se faire en revisitant Pascal, ce, sans se lier à une marque particulière de robot.

    7. MATLAB

    MATLAB est très populaire auprès de certains ingénieurs en robotique pour l'analyse des informations et la construction d'un système de contrôle. Il s'agit d'un langage de haute performance pour l'informatique technique. Il intègre le calcul, la visualisation et la programmation dans un environnement facile à utiliser où les problèmes et les solutions sont généralement exprimés en notation mathématique familière.

    Les points forts de MATLAB pour la programmation des robots sont les suivants : un système très puissant pour l'analyse des données et de la cinématique du robot, un code utilisable rapide à écrire, une boîte à outils robotique largement utilisée, possibilité d’effectuer des simulations complexes.

    Les faiblesses de MATLAB pour la programmation de robots sont les suivantes : pas vraiment conçu pour s'interfacer avec le matériel des robots, coûteux en tant que langage propriétaire, partage de code possible uniquement entre possesseurs de MATLAB, pas autant de bibliothèques tierces que d'autres alternatives.

    8. C#

    Contrairement au C++, le C# est facile à apprendre. Le C# est facile car il gère automatiquement la gestion de la mémoire. Les points forts du C# pour la programmation de robots sont les suivants : facile à apprendre et à intégrer dans de grands projets, muni d’une grande variété de bibliothèques, dispose d'un excellent environnement de développement gratuit (Microsoft Visual C# Express), fonctionne sur le Framework .NET et est très interopérable.

    Les faiblesses de C# pour la programmation de robots sont les suivantes : le développement de logiciels est limité à Windows

    De nombreuses interfaces homme-machine (IHM) sont développées en C#. Une IHM fait souvent partie des systèmes dits de supervision, contrôle et acquisition des données (SCADA).

    9. Langages de description du matériel (HDL)

    Ces langages seront très familiers aux ingénieurs en électronique qui créent l'électronique de bas niveau des robots. Le langage de description du matériel est utilisé pour spécifier les portes et les puces et simuler le comportement des spécifications des puces résultantes grâce à un simulateur de matériel.

    Les HDL permettent d'orienter les objets et d'accumuler les déchets de manière simple par rapport à d'autres opérations et sémantique complexes par rapport aux langages traditionnels qui fonctionnent sur le flux de contrôle par opposition au flux de données.

    10. Langages de programmation des robots industriels

    Presque tous les fabricants de robots ont développé leur propre langage de programmation de robot, ce qui a mené à la résolution de l'un des plus vieux problèmes de la robotique industrielle.

    ABB a son langage de programmation RAPID. Kuka a le KRL (Kuka Robot Language). Comau utilise PDL2, Yaskawa utilise INFORM et Kawasaki utilise AS. Ensuite, les robots Fanuc utilisent Karel, les robots Stäubli utilisent VAL3 et les robots Universal utilisent URScript.

    Ces dernières années, des options de programmation plus générales comme ROS Industrial, la programmation hors ligne agnostique des fabricants et le guidage manuel ont commencé à offrir des options plus standardisées aux programmeurs.

    Ces dernières années, des options de programmation plus générales comme ROS Industrial, la programmation hors ligne agnostique des fabricants et le guidage manuel ont commencé à offrir des options plus standardisées aux programmeurs. En tant qu'acteur de la filière on reste néanmoins susceptible de faire usage du langage du fabricant.

    Et vous ?

    Quels langages ou combinaisons de langages utilisez-vous pour vos projets de programmation des robots ?
    Sur quels critères vous basez-vous pour effectuer votre choix ?

    Voir aussi :

    Quels sont les meilleurs langages de programmation en 2017 ? Et pourquoi ? Java, C# et C++ seraient-ils encore les préférés des développeurs ?
    Programmation : découvrez les sept raisons pour lesquelles vous devez apprendre le langage Python, selon myTectra
    Quels langages utilisez-vous pour le développement de systèmes embarqués ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre extrêmement actif Avatar de darklinux
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2005
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 570
    Points : 1 023
    Points
    1 023
    Par défaut
    Python , pour moi , une évidence

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Août 2018
    Messages : 8
    Points : 24
    Points
    24
    Par défaut
    Pour moi, après plusieurs années passées dans la robotique médicale, la règle est simple :
    • pour faire du temps réel et/ou se donner une chance d'obtenir un marquage CE ou FDA : C/C++
    • pour le reste (comme se contenter de jouer des trajectoires), le langage du fabricant suffit (VAL3 est peu agréable à utiliser, URScript et KRL sont pas mal, le langage de Denso est très bien)

  4. #4
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Tout dépend de la contrainte de traitement.
    Pour du temps réel je ne ferai rien d'autre que du C/C++.
    Mais si la gestion n'est pas lourde alors du Python peut être plus sympa.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    1 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1 789
    Points : 5 749
    Points
    5 749
    Par défaut
    Le choix du langage de programmation est fonction du projet à mener, des contraintes auxquelles il faut faire face.

    Non! A moins de faire dans la recherche en robotique, on ne choisit pas son langage de programmation en robotique!

    Cela dépend du fournisseur des composants utilisés: Quand tu achètes un robot industriel, tu utilises le langage de programmation fourni par le constructeur du robot et rien d'autre!

  6. #6
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    Cela dépend du fournisseur des composants utilisés: Quand tu achètes un robot industriel, tu utilises le langage de programmation fourni par le constructeur du robot et rien d'autre!
    Tout dépend du driver (au sens large suivant le produit) fourni...
    Quand l'interface avec le robot est clairement bloquée de partout on est d'accord qu'il vaut mieux utiliser (on a pas le choix en fait...) le langage propriétaire du fournisseur.
    Mais sinon je ne vois pas pourquoi tu n'aurais pas le droit d'utiliser le langage qui te plait pour programmer le robot tant que tu peux attaquer l'interface de commande.

    Après il faut aussi voir que la news ne porte pas que sur les robots industriels.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  7. #7
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    Pas de ADA ? (j'ai un vague souvenir qu'il y a plusieurs niveaux de compilation & exigences qui permettent d'assurer qu'il n'y aura pas d'états inattendus, ou quelque chose du genre)
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  8. #8
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Bonjour à tous,
    KRL/Karel et Val3 sont des langages spécifiques à chaque fabricant.
    KRL et C++ ne s'adressent pas aux mêmes programmeurs car ne répondent pas aux mêmes fonctions !
    Autant comparer Python avec Excel...
    Windows 10 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  9. #9
    Membre confirmé Avatar de Galet
    Homme Profil pro
    Consultant/Programmeur Robotique industrielle
    Inscrit en
    Mars 2010
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant/Programmeur Robotique industrielle

    Informations forums :
    Inscription : Mars 2010
    Messages : 323
    Points : 484
    Points
    484
    Par défaut
    Dans nombre de cas, on ne peut pas utiliser un autre langage que celui du fabricant, qui est adapté au Hardware (complète ou compense), aux applications habituelles (Soudure, manutention...), au marché visé (Automobile, médical...), et aux programmeurs concernés (Informaticiens, Chercheurs, roboticiens, Automaticiens...).

    Comme le langage "universel" n'existe pas, programmer un robot KUKA avec Rapid (ABB) serait impensable car réduirait aux avantages communs sans exploiter les capacités spécifiques de chaque matériel.

    Comparer C++ et Val3 revient à comparer Fortran et PHP : Tout dépend de ce que l'on souhaite ...
    Windows 10 / Delphi Tokyo
    "Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 83
    Points : 536
    Points
    536
    Par défaut Rust
    En 2020, on peut gentiment commencer à s'intéresser à Rust pour la robotique.
    les algorithmes qui oublient leur histoire sont condamnés à la répéter

Discussions similaires

  1. Quels sont les meilleurs langages de programmation pour développer une application mobile ?
    Par Stéphane le calme dans le forum Débats sur le développement - Le Best Of
    Réponses: 36
    Dernier message: 13/12/2022, 22h07
  2. Réponses: 10
    Dernier message: 13/03/2020, 17h16
  3. Quels sont les meilleurs langages de programmation en 2017 ? Et pourquoi ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 119
    Dernier message: 29/09/2018, 10h45
  4. Sondage : quels sont les meilleurs langages de programmation pour l'IA ?
    Par Blondelle Mélina dans le forum Intelligence artificielle
    Réponses: 28
    Dernier message: 22/07/2018, 06h52

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