Aller au contenu


Photo
- - - - -

Eigen

C++ Eigen

  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 septembre 2018 - 11:08

Bonjour les Maker's, bon ben suis un peu embêté je n'arrive pas à installer une lib sur ma pi :( (j'ai honte).

 

Donc j'essaye d'installer la librairie Eigen qui permet de faire des calculs matricielles en C++ et bien d'autres, la lib à l'air simple d'utilisation un peu comme Numpy, mais le truc c'est pour l'installer, j'ai bien téléchargé le .tar, dézippé et placé ce dont j'avais besoin dans mon projet comme indiquer dans la doc, mais ça ne fonctionne pas, j'ai une erreur à la compilation, ensuite le plus intéressant était de coller le dossier Eigen dans /usr/local/include pour éviter de devoir copier Eigen dans tous les projets (j'anticipe) et là aussi si je passe par l'environnement pi (pour allez plus vite), et bien je ne peux rien coller vu que je n'ai pas les droits admin.

 

Donc comment puis je faire ?

 

Erreur à la compilation en plaçant le dossier Eigen dans mon projet : 

cinematique.cpp:6:23: fatal error: Eigen/Dense: Aucun fichier ou dossier de ce type
 #include <Eigen/Dense>

Merci ^^

 

 


signature_01.png -->

 

Mon Tipeee
 


#2 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 septembre 2018 - 11:21

Bon je crois que j'ai réussi en faisant ça :

sudo apt install libeigen3-dev

le truc c'est que mon include maintenant ce compose comme ça : #include <eigen3/Eigen/Dense>

Je ne sais pas ou cela c'est vraiment installé, et si c'est bien la dernière version (3.3.5).


signature_01.png -->

 

Mon Tipeee
 


#3 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 21 septembre 2018 - 12:53

Sous linux, mieux vaut commencer par installer les packages avec le gestionnaire de packages (apt/apt-get sous ubuntu en général), donc comme tu l'as fait avec :
sudo apt install <package>
Pour vérifier la version qui est installée :
dpkg --list libeigen3-dev
Pour éviter les conflits, vire le dossier que tu as déplacé dans /usr/local/include (surtout qu'il est possible qu'il n'y ait pas que des headers mais aussi des binaires et mettre ça à la main, ça n'est pas très propre).
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#4 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 septembre 2018 - 03:23

Ok, 

 

j'ai vérifié j'ai la version 3.2 et non la 3.3.5 mais à mon niveau je ne vais pas voir grande différence à mon avis :)

 

Du coup ça n'a pas pu copier le dossier dans /usr/local/include.

Sinon quelqu'un connait cette lib ??
C'est juste pour avoir des avis, perso ça a l'air pas mal et facile d’accès à l'utilisation dirait on :)

 

Par contre j'ai toujours se problème, lorsque j'entre 90° il m'indique en cos() (90° que je convertis en rads) donc il m'affiche -4.37114e-08 et normalement je devrais avoir 0.

En fait c'est des que j'entres ces valeurs 90, 180, 270, 360, ça merdouille sévère :)

Sinon sur d'autres valeurs ça a l'air de tomber juste.


signature_01.png -->

 

Mon Tipeee
 


#5 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 21 septembre 2018 - 04:44

Ok, 
 
j'ai vérifié j'ai la version 3.2 et non la 3.3.5 mais à mon niveau je ne vais pas voir grande différence à mon avis :)
 
Du coup ça n'a pas pu copier le dossier dans /usr/local/include.

Sinon quelqu'un connait cette lib ??
C'est juste pour avoir des avis, perso ça a l'air pas mal et facile d’accès à l'utilisation dirait on :)
 
Par contre j'ai toujours se problème, lorsque j'entre 90° il m'indique en cos() (90° que je convertis en rads) donc il m'affiche -4.37114e-08 et normalement je devrais avoir 0.
En fait c'est des que j'entres ces valeurs 90, 180, 270, 360, ça merdouille sévère :)
Sinon sur d'autres valeurs ça a l'air de tomber juste.


Eigen est inclue dans ROS, je ne l'utilise pas directement perso. Ce que tu as ressemble à des imprécisions dans les valeurs des flottants. En même temps, une valeur en 10e-8, ça vaut zéro.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#6 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 21 septembre 2018 - 05:24

Ok, mais comment arriver à zéro en flottant, ou alors est ce que la machine va comprendre dans les calculs matricielles que c'est zéro en affichant -4.37114e-08.

 

je cherche, je cherche ^^


signature_01.png -->

 

Mon Tipeee
 


#7 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 22 septembre 2018 - 01:50

Je ne sais pas ce que tu veux faire avec ces valeurs, mais en général, il n'y a pas moyen de garantir qu'un float vaut zéro exactement. On teste toujours la variable < un seuil très faible (ça dépend de l'application, mais du genre 10^-6) plutôt que == à zéro.
Ça doit être géré dans la librairie normalement.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#8 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male
  • Interests:Glenn

Posté 23 septembre 2018 - 12:42

Pour l'instant j'essaye juste de bien mettre en place, matrice avec le bon résultat pour les cos et sin, je fais des tests avec certaines valeurs, et donc obtenir le même résultat que sur le papier (et sur le web lol) :)
Mais Eigen fonctionne pas trop mal, c'est cool :)


signature_01.png -->

 

Mon Tipeee
 






Aussi étiqueté avec au moins un de ces mots-clés : C++, Eigen

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users