' + + '' + + _("Hide Search Matches") + + "
" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/build/html/_static/translations.js b/docs/build/html/_static/translations.js new file mode 100644 index 0000000..5171463 --- /dev/null +++ b/docs/build/html/_static/translations.js @@ -0,0 +1,60 @@ +Documentation.addTranslations({ + "locale": "fr", + "messages": { + "%(filename)s — %(docstitle)s": "%(filename)s — %(docstitle)s", + "© %(copyright_prefix)s %(copyright)s.": "© %(copyright_prefix)s %(copyright)s.", + ", in ": ", dans ", + "About these documents": "\u00c0 propos de ces documents", + "Automatically generated list of changes in version %(version)s": "Liste auto-g\u00e9n\u00e9r\u00e9e des modifications dans la version %(version)s", + "C API changes": "Modifications de l'API C", + "Changes in Version %(version)s — %(docstitle)s": "Changements dans la version %(version)s — %(docstitle)s", + "Collapse sidebar": "R\u00e9duire la barre lat\u00e9rale", + "Complete Table of Contents": "Table des mati\u00e8res compl\u00e8te", + "Contents": "Contenu", + "Copyright": "Copyright", + "Created using Sphinx %(sphinx_version)s.": "Cr\u00e9\u00e9 en utilisant Sphinx %(sphinx_version)s.", + "Expand sidebar": "Agrandir la barre lat\u00e9rale", + "Full index on one page": "Index complet sur une seule page", + "General Index": "Index g\u00e9n\u00e9ral", + "Global Module Index": "Index g\u00e9n\u00e9ral des modules", + "Go": "Go", + "Hide Search Matches": "Cacher les r\u00e9sultats de la recherche", + "Index": "Index", + "Index – %(key)s": "Index – %(key)s", + "Index pages by letter": "Indexer les pages par lettre", + "Indices and tables:": "Index et tables :", + "Last updated on %(last_updated)s.": "Mis \u00e0 jour le %(last_updated)s.", + "Library changes": "Modifications de la biblioth\u00e8que", + "Navigation": "Navigation", + "Next topic": "Sujet suivant", + "Other changes": "Autres modifications", + "Overview": "R\u00e9sum\u00e9", + "Please activate JavaScript to enable the search\n functionality.": "Veuillez activer le JavaScript pour que la recherche fonctionne.", + "Preparing search...": "Pr\u00e9paration de la recherche...", + "Previous topic": "Sujet pr\u00e9c\u00e9dent", + "Quick search": "Recherche rapide", + "Search": "Recherche", + "Search Page": "Page de recherche", + "Search Results": "R\u00e9sultats de la recherche", + "Search finished, found ${resultCount} page(s) matching the search query.": "Recherche termin\u00e9e, ${resultCount} page(s) correspondant \u00e0 la requ\u00eate de recherche ont \u00e9t\u00e9 trouv\u00e9es.", + "Search within %(docstitle)s": "Recherchez dans %(docstitle)s", + "Searching": "Recherche en cours", + "Searching for multiple words only shows matches that contain\n all words.": "Une recherche sur plusieurs mots ne retourne que les r\u00e9sultats contenant tous les mots.", + "Show Source": "Montrer le code source", + "Table of Contents": "Table des mati\u00e8res", + "This Page": "Cette page", + "Welcome! This is": "Bienvenue ! Ceci est", + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "Votre recherche ne correspond \u00e0 aucun document. Veuillez v\u00e9rifier que les mots sont correctement orthographi\u00e9s et que vous avez s\u00e9lectionn\u00e9 assez de cat\u00e9gories.", + "all functions, classes, terms": "toutes les fonctions, classes, termes", + "can be huge": "peut \u00eatre \u00e9norme", + "last updated": "derni\u00e8re modification", + "lists all sections and subsections": "lister l'ensemble des sections et sous-sections", + "next chapter": "Chapitre suivant", + "previous chapter": "Chapitre pr\u00e9c\u00e9dent", + "quick access to all modules": "acc\u00e8s rapide \u00e0 l'ensemble des modules", + "search": "rechercher", + "search this documentation": "rechercher dans cette documentation", + "the documentation for": "la documentation pour" + }, + "plural_expr": "(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2" +}); \ No newline at end of file diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html new file mode 100644 index 0000000..f08283b --- /dev/null +++ b/docs/build/html/genindex.html @@ -0,0 +1,105 @@ + + + + + +Dans le cadre des travaux de recherche menés au LDR sur les plateformes embarquées, les chercheurs souhaitent mettre en place des environnements de développements et de tests plus récents et robustes pour 2 applications en particulier, dans l’ordre d’importance :
+La programmation embarquée, en particulier avec OS Temps Réel. +Mettre en place un environnement de dev/tests avec sondes logicielles pour le temps réel. Pour réaliser des tests de systèmes contraints, possiblement utilisant des architectures matérielles diverses (ARM, RISC-V, etc.), les chercheurs ont besoin d’un environnement clair, générant des traces analysables (quantité de mémoire utilisée, temps passé sur le processeur et lors des accès aux périphériques, décisions d’ordonnancement, etc.).
Simulateur pour robotique/drone.
+Mettre en place un environnement de dev/tests avec, par exemple CoppeliaSim et Python/ROS, génération de scénario et récupération des données de vol et de l’environnement simulé.
+Différents travaux sont réalisés depuis plusieurs années avec l’ONERA sur des simulations utilisant de drones. Ces travaux utilisent d’anciens simulateurs difficiles à maintenir aujourd’hui, ce qui rend complexe la reproduction de certains résultats. Plusieurs exemples existent pour des applications spécifiques, comme avec le robot Poppy et ROS.
La documentation de la partie « Simulation » est disponible dans le dossier LDR_Simulation
+La simulation c’est la création d’un modèle virtuel d’une machine, tout en prenant en considération l’environnement de travail et tous les autres facteurs influents. Ça nous permet de savoir si la conception peut fonctionner après la fabrication. Ça nous permet de tester différentes machines/algorithmes dans un même environnement (plusieurs drones dans un parc urbain et voir comment chaque drone navigue entre les arbres et réagit aux obstacles), et de tester une machine dans différents environnements (simuler un seul modèle de drone au-dessus d’une forêt avec des vents variables, dans un désert avec des températures élevées ou à l’intérieur de la maison).
+Comparaison entre CoppeliaSim et GazeboSim qui sont tous deux des simulateurs de robotique mais avec des caractéristiques distinctes, L’objectif de cette comparaison est de déterminer le simulateur le plus adapté à nos besoins.
+Avantages |
+Inconvénients |
+
---|---|
L’installation est simple et rapide |
+L’exécution n’est pas possible via le |
+
La création des scènes est simple, |
+un facteur de temps réel n’est pas très |
+
Interface graphique conviviale et |
++ |
CoppeliaSim n’est pas déterministe |
++ |
Avantages |
+Inconvénients |
+
---|---|
L’installation et la prise en main de |
+L’installation sur Windows est complexe |
+
La création d’une scène est en XML |
+Windows n’est pas une plateforme officiellement |
+
GazeboSim offre une personnalisation |
+L’installation nécessite une version |
+
Un facteur de temps réel est beaucoup |
+L’interface graphique de GazeboSim |
+
+ | Une carte graphique Nvidia avec support |
+
Les besoins coté recherche et coté enseignement (rajouter le tableau et commentez le en bas)
+Un simulateur qui a l’interface graphique de coppeliasim mais qu’on pourra utiliser comme Gazebo, c’est-à-dire on pourra créer notre scène sur un fichier et avoir un seul dossier qui contient notre projet, on pourra lancer le projet dans un terminal sans ouvrir le simulateur avant.
Un simulateur facile à installer sur windows de preférence (car sur linux certaines exécutions bug)
Un simulateur avec un facteur temps réel qui soit proche du temps réel +Image du tableau +Après avoir tester les deux simulateurs j’ai choisi comme outil de simulation CoppeliaSim pour sa facilité et son efficacité.
TIPS COPPELIASIM
+Toujours enregistrer la scène avant de lancer la simulation sinon tous les objets que vous avez rajoutés ou toutes modifications apportées seront disparus
Toujours arrêter la simulation en cours avant de lancer une nouvelle simulation
Si vous avez ouvert plusieurs scènes à la fois, arrêtez la simulation de toutes les scènes avant de lancer une nouvelle simulation
Si vous voulez déplacer un objet avec la main ou en tapant les coordonnées que vous souhaitez, cliquez sur ça
Créer une scène « DronePainting » qui contient deux drones (ou plus, qui sait), et faire en sorte qu’ils volent vers un mur et dessinent des points selon mes indications (ils peuvent former un rectangle par exemple), la programmation est sous Python et la visualisation est sur CoppeliaSim. +Lancer la simulation en mode stepped pour avoir une simulation déterministe et reproductible
+Pour la simulation j’ai dans un premier temps crée une scène ou un drone se déplace vers un mur et marque deux points dans deux positions différentes : je vais expliquer comment j’ai rajouté le nozzle paint également. +Par la suite j’ai créé une autre scène ou deux drones se déplacent de la même manière tout en étant reproductible donc pour se faire, il a fallu créer une loop pour que les taches asynchrones en arrière-plan ce qui permet une exécution non bloquante.
+