Au choix, python3 ou C++ (les deux principaux langages supportés par ROS2, je ne te conseilles pas d'utiliser les autres langages supportés qu'à moitier par ROS sans une bonne raison).
Pour choisir entre python3 ou C++, c'est purement une question de gout :
- si tu maitrise l'un mieux que l'autre, alors choisit celui que tu maitrises le mieux
- C++, c'est en gros ce que tu as déjà sur Arduino (avec quelques fonctionnalités du C++ qui manquent sur Arduino, et quelques fonctions propres à l'arduino (delay, digitalWrite, ...) qui ne sont pas dispo en C++ coté Ubuntu)
- python est un peu plus facile à apprendre si on part de 0
- python est faiblement typé (ie tu ne dois pas déclarer les types explicitements) : ça permet d'écrire le code plus vite, mais augmente le risque d'erreurs
- python nécessite souvent moins de lignes de code pour arriver au même résultat
- C++ est plus performant (mais je penses pas que ton noeud ROS soit l'élément limitant)
- C++ permet un peu plus la manipulation au niveau des octets/bits, ce qui peut être pratique pour la communication série, mais si tu débutes, alors tu risque de ne pas exploiter ces fonctionnalités
- le fait d'utiliser du C++ à la fois coté arduino et coté Ubuntu facilite le fait de faire les mêmes manipulations des deux cotés de la liaison série
- les bibliothèques de liaison série sont probablement un peu plus simple en python
Donc pas d'avis tranché sur la question. Prends le language que tu maitrises le mieux et/ou qui t'intéresse le plus.
Je me suis pencher sur du c++ mais le problème c'est quand je regarde des tuto pour faire de la transmission de donne de linux vers Arduino en c++ il n'y a pas de tuto simple.