GithubHelp home page GithubHelp logo

kevinbdn / ulysse Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 3.0 535.75 MB

Projet Guerlédan

Python 25.78% CMake 10.23% Makefile 1.03% C++ 28.63% Shell 0.07% HTML 16.20% CSS 2.62% JavaScript 14.51% MATLAB 0.94%

ulysse's Introduction

Projet Guerlédan : Ulysse

Projet Guerlédan 2019/2020 dont l'objectif est de réaliser un MNT sous ROS via l'USV Ulysse. Le projet a été réalisé par:

  • 3 roboticiens:

    • Kévin BEDIN
    • Clément BICHAT
    • Aurélien GRENIER
  • 3 hydrographes:

    • Ombeline LE GALL
    • Pauline CELTON
    • Aurélie PANETIER

Architecture de dossiers

ULYSSE
	├── Bag_files
	├── Documentation
	├── WAYPOINT
	└── workspaceUlysse
  • Bag_files/:

    • Dossier contenant quelques fichiers bag enregistrés lors de la 2ème semaine de Guerlédan.
    • Contient également un script python permettant de modifier ces fichiers afin de les corriger.
    • Fichier exploitable : Ligne2_mbes_equi_distant/Ligne2_corrigee.bag
  • Documentation/:

    • Documentation utile sur le harware (Sbg, R2Sonic, etc...) ainsi que le rapport.
    • Quelques tutoriels (mavlink, sim_vehicle, ...)
    • Quelques codes (decode de packet binaire R2Sonic en C, ...)
  • WAYPOINT/:

    • Code de conversion d'un fichier waypoint Qinsy en fichier waypoint Mavlink.
    • Permet l'adaptation de la trajectoire des waypoints éditer sur QInsy en une trajectoire plus simple à suivre pour Ulysse. Voir waypoint generator
  • workspaceUlysse/:

    • Workspace ROS pour la gestion d'Ulysse et la réalisation de MNT sous ROS. Voir l'architecture utilisée dans le README.

Configuration d'Ulysse

La configuration d'Ulysse est expliquée dans le README.md du package ulysse_starter présent dans le dossier workspaceUlysse.

Lancement d'Ulysse

Préliminaires

  • Avoir le workspaceUlysse sur le NUC-17.

  • Avoir les U-blox, la sonde de conductivité branchés au NUC-17, le mbes et l'imu reliés au réseau.

  • Lancer str2str avec la configuration au serveur ntrip:

      $ str2str -in ntrip://ENSTABRE:XXX@IP:PORT/MAC30 -out serial://ttyACM1:115200:7:N:1:off
    
  • Lancer R2Sonic acquisition sur le NUC WINDOW.

  • Une fois en ssh sur le NUC-17 (Ulysse) on peut lancer mavproxy afin d'avoir plusieurs connexions sur la carte métier (voir le tuto dans le dossier Documentation:

      $ mavproxy.py --master=tcp:10.0.1.20:4003 --out=127.0.0.1:14551 --out=tcpin:0.0.0.0:5762 --out=tcpin:0.0.0.0:5763 --out=tcpin:0.0.0.0:5764 --out=tcpin:0.0.0.0:5765
    
  • Chargement de la mission - plannifiée via Qinsy et adpatée via le waypoint generator - dans mission planner ou autre depuis la station sol.

ROS

  • Dans un autre shell du NUC-17 on lance les nodes ROS mais en paramètrant le roscore en amont, pour se faire il faut utiliser le script master_init.sh:

      $ source master_init.sh
      $ roslaunch ulysse_starter ulysse.launch
    
  • On peut alors depuis une autre machine du réseau accéder aux roscore ainsi qu'à la carte métier d'Ulysse. Il faut ếtre sûr d'avoir charger un workspace dans lequel les message sbg sont décrits (source devel/setup.sh) :

      $ source client_init.sh #Paramètres pour l'export du roscore
      $ rostopic list
      $ rosrun rqt_robot_monitor rqt_robot_monitor #Diagnostics
    

    OU bien pour Ardupilot:

      $ apmplanner2
      	-----------------------
      	Communication -> Add Link -> UDP
      		UDP Port : 14552
      		Add IP -> 
      			Host (hostname:port):
      				10.0.1.88:14555
    
  • On peut monitorer le bon fonctionnement des nodes ROS:

      $ rosrun rqt_robot_monitor rqt_robot_monitor
    
  • Ou bien la visualisation de l'acquisition en cours:

      $ roslaunch ulysser_starter rviz.launch
    
  • Pour lancer d'autre fonctionnalités que l'ensemble des nodes, voir les différents launchs disponible dans le package ulysse_starter.

Rejeu d'un MNT

Pour rejouer un MNT réalisé sur un ordinateur contenant ce répertoire GIT:

  • 1. Préparer ROS

Exécuter dans un premeir terminal:

$ cd workspaceUlysse
$ catkin_make
$ source devel/setup.bash
$ roscore	
  • 2. Lancer le fichier bag

Exécuter dans un second terminal:

$ cd wokspaceUlysse
$ source devel/setup.bash
$ rosparam set use_sim_time true
$ cd ../Bag_files/Ligne2_mbes_equi_distant
$ rosbag play Ligne2_corrigee.bag

On pourra utiliser l'option --clock dans le rosbag play pour intéragir avec les topics publiés.

  • 3. Visualiser la mission

Exécuter dans un troisème terminal:

$ cd workspaceUlysse
$ source devel/setup.bash
$ roslaunch ulysse_starter rviz.launch

Todo

  • Utiliser wine pour le logiciel d'acquisition de R2Sonic.

  • Dans le MNT rejoué ci-dessus il y a un soucis de recouvrement des fauchées. Pour identifier la source et le réparer il faut:

    • Soit rejouer que certains topics du rosbag et lancer les vrais nodes complémentaires avec d'autre configuration que lors de la capture du rosbag. Voir Bag_files/README.md.

    • Soit ouvrir le rosbag avec un Script python et modifier les topics avec une boucle comme fait dans les scripts présents dans Bag_files/Scripts. Le script header_timestamp_order.py permet de réagencer les topics dans l'ordre chronologique de publication.

    • Record un nouveau rosbag avec la correction apportée.

    Voici quelques pistes pouvenant amener à l'erreur:

    • Bras de levier IMU/MBES (node static_transform_publisher). Voir si la TF est bien celle utilisée lors de l'acquisition et qu'elle est bien prise en compte.

    • NED <-> ENU pour l'IMU (script sbg_to_odom.py). Voir si la transformation est la bonne.

ulysse's People

Contributors

kevinbdn avatar clebiche avatar grenieau avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

ulysse's Issues

Prise de contact StratoLab

Bonjour Kevin,

Je m'appelle Nicolas Baconnier. Je fais partie d'un groupe de 5 personnes en dernière année d'étude d'ingénieur à L'EFREI. Dans le cadre de notre Engineering Project (PFE), nous cherchons à développer une plateforme stratosphérique réutilisable pour des expériences de laboratoire à moindre coût.

En parcourant des projets similaires, nous avons découvert ton travail impressionnant sur un parachute autonome réalisé en 2020. Ton expertise dans ce domaine nous a particulièrement intrigués, et nous aimerions échanger avec toi pour en apprendre davantage sur ton expérience et discuter des défis et des leçons que tu as tirés de ton projet.

Nous avons lu attentivement ton rapport de projet de fin d'étude et sommes convaincus que ton insight serait précieux pour notre propre projet. Serait-il possible de trouver un créneau pour une discussion, soit par e-mail, soit par un appel, afin que nous puissions bénéficier de tes connaissances et de ton retour d'expérience ?

Merci beaucoup pour ton temps, et nous sommes impatients de discuter avec toi.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.