1

ROS

le choix de l'open source

Noël Martignoni

²RM : Réseau Métier des Roboticiens et Mécatroniciens
Journée Technique 1 : retours d’expérience autour de ROS
2

easymov robotics

3

ROS

le choix de l'open source

4

Licences

Les licences open source vu par les juristes

j
e
k
MIT, BSD
Apache2
LGPL
Mozilla Public Licence
GPL, AGPL
Creative Commons
5

Forges Git

Gitlab

Github

Bitbucket

6

Découper un projet en packages

  • README
    • Quickstart
    • La description des noeuds
  • LICENSE
  • CONTRIBUTING
  • CHANGELOG (keepachangelog.com)
  • package.xml

1 package ROS = 1 dépôt Git

7

Regrouper les packages

Créer un dépôt Git par projet au niveau du workspace ROS

Fichiers

  • README
  • .gitignore
  • .rosinstall

Utilisation de wstool pour automatiser le téléchargement des packages

- git:
    local-name: src/log_server
    uri: http://git.easymov.fr/ros-open-source/log_server.git
- git:
    local-name: src/oros_tools
    uri: http://git.easymov.fr/oros/oros_tools.git
8

Tests

Avoir des tests unitaires et des tests d'intégration :

  • permet de rejeter automatiquement les modifications invalides
  • facilite la maintenance
  • accroît la confiance accordée à votre projet
9

Déploiement et dépendances

Docker

Abusez des conteneurs pour déployer vos applications de manière répétable
(et indépendament de ce qui est déjà installé sur la machine hôte)

rosdep

1 clé rosdep = 1 package système sur la machine cible

  • faire des pull requests sur le depôt rosdistro pour ajouter de nouvelles clés
  • créer un fork privé ou public de rosdistro

Les clés rosdep sont à ajouter dans le fichier package.xml

10

Documentation

  • README
  • wiki.ros.org
  • site dédié (pages gitlab)

Si le projet est assez complexe à prendre en main, n'hésitez pas à écrire des tutoriaux

11

Release

ROS possède sa propre build farm qui automatise la création de paquets système

  1. catkin_generate_changelog
  2. catkin_prepare_release
  3. bloom-release
12

Et après...

Le maintainer

Il administre le dépot Git, gère les pull request et est responsable des releases

Nouvelles versions de ROS

Suivre les évolutions de ROS et lorsqu'une nouvelle version sort
Préparer votre code pour le rendre compatible
Les modifications sont souvent minimes voire inexistantes

Promouvoir ses travaux

13

Faites de l'open source !

Utiliser de l'open source c'est bien, en faire c'est mieux !

ETH Zurich
github.com/ethz-asl
Clearpath robotics
github.com/clearpathrobotics
Technische Universität Darmstadt
github.com/tu-darmstadt-ros-pkg

roscon.ros.org

14

Formation

Journée 1 Journée 2 Journée 3
Présentation de ROS Déployer une application (roslaunch) Interfaces matérielles (ros_control)
Workspace, packages et noeuds Visualiser des données Rejeu de données
TP - Création de noeuds (C++, Python) Simuler avec Gazebo Optimisations et multithreading
Espaces de nommage et renommages TP - Création d'un robot en simulation TP - Navigation d'un robot mobile
Topics, messages, services et paramètres

Slides controls

Slideshow started

Slideshow stopped