View / Plot / Print / Show the 3D sparse map for my SLAM [ please ;) ]

Hello,

Here is my problem:

I am trying to do my Simultaneous Localization And Mapping (SLAM). I'm inspired by TwitchSlam for the moment to calculate my camera poses and my 3D Point Clouds as an array.

I would now like to visualize the map in 3D like you can do with the Pangolin framework. However, I can't find the Pangolin library after installing it. So I give up this track, unless you know a magic solution ... ;) C

So do you know another framework/library that I could integrate into my python code please?
Do you know another answer to my problem please? I'm also interested in rebuilding a dense map.

Thank you for your help

_______________________________________________________________________

Bonjour,

Voila je vous présente mon problème :

Je tente de faire mon Simultaneous Localization And Mapping (SLAM). Je me suis inspiré de TwitchSlam pour l'instant afin de calculer mes camera poses et mes 3D Point Clouds sous la forme d'array.

J'aimerais maintenant visualiser la map en 3D comme on peut le faire avec le framework Pangolin. Toutefois, je n'arrive pas à trouver la librairie Pangolin après son installation. J'abandonne donc cette piste, à moins que vous connaissiez une solution magique . . . ;) C

Alors connaissez-vous un autre framework/librairie que je pourrais intégrer à mon code python s'il vous plait ?
Connaissez-vous une autre réponse à mon problème s'il vous plait ? La reconstruction d'une map dense m'intéresse également.

Je vous remercie de votre aide

5 réponses

  1. Modérateur
    Bonjour,

    Restons sur pangolin pour le moment :
    • Comment as-tu procédé pour installer pangolin ? (pip, git ...)
    • Quel système (windows, linux -- quelle distribution) utilises-tu ?
    • Quelle version de python utilises-tu ?
    • Arrives-tu à faire marcher l'exemple proposé sur la page officielle ? Sinon, quelles sont les erreurs ?


    Bonne chance
    0
    1. Bonjour,

      Je possède un Windows 10 sur lequel j'ai une Machine Virtuelle Ubuntu. J'ai donc essayé l'installation sur mes deux environnements (Windows et Ubuntu).

      - Sur Windows rien ne semble fonctionner.
      - Sur Ubuntu j'ai réussi à afficher le HelloPangolin en C++.

      Pour procéder à l'installation j'ai utilisé le dépôt git : https://github.com/stevenlovegrove/Pangolin

      J'utilise la version python3. Et lorsque je lance mon script python il me lance : ModuleNotFoundError: No module named 'pangolin'

      Merci de ton aide
      0
      1. Modérateur
        Bonjour,

        Si tu arrives à faire marcher le C++ c'est déjà un bon début. Il ne reste plus qu'à installer correctement le wrapper python. De nos jours, tout le monde fait du python3 donc je vais partir du principe que toi aussi.

        Pour installer un module python sous Ubuntu, tu as trois manières de procéder, par ordre de préférence décroissante :
        • via
          apt
          :
          sudo apt install python3-nom-du-module
          (e.g. pour NumPy :
          sudo apt install python3-numpy
          ), encore faut-il que le paquet soit disponible dans
          apt
          (ce qu'on vérifie avec
          apt search pangolin
          , et là, on voit que non). L'avantage est que le paquet se met à jour avec le reste du système (dont ta distribution python3). Les paquets
          python-nom-du-module
          sont pour
          python2
          et donc ne te concernent pas.
        • via
          pip3
          : après avoir installé
          pip3
          (
          sudo apt install python3-pip
          ). On n'utilise pas
          pip
          qui est pour
          python2
          sous linux. Ici encore, il faut que le paquet soit disponible via
          pip3
          , ce qui n'est pas le cas non plus comme le montre cette recherche.
        • via
          git
          : comme on n'a pas le choix c'est ce qu'on va faire, en suivant adaptant légèrement les indications données sur le github de pangolin.


        On commence par installer git :

        sudo apt update
        sudo apt install git
        mkdir ~/git
        cd ~/git
        git clone git@github.com:uoip/pangolin.git
        cd pangolin
        mkdir build
        cd build
        cmake ..
        make -j8
        cd ..
        python3 setup.py install


        Si un message d'erreur apparaît au cours du procédé, merci de me le reporter. Si tout semble s'être bien passé, récupère un exemple et lance le.

        wget https://github.com/uoip/pangolin/blob/master/python/examples/HelloPangolin.py
        python3 HelloPangolin.py


        Bonne chance
        0
        1. Salut mamiemando,

          La commande
          git clone ***@***:uoip/pangolin.git
          ne fonctionne pas elle me rejette :

          Clonage dans 'pangolin'...
          The authenticity of host 'github.com (140.82.121.4)' can't be established.
          RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
          Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
          Warning: Permanently added 'github.com,140.82.121.4' (RSA) to the list of known hosts.
              • @***: Permission denied (publickey).fatal: Impossible de lire le dépôt distant.Veuillez vérifier que vous avez les droits d'accèset que le dépôt existe.

          ____________________________________________________________________

          Donc je tape à la place :
          git clone https://github.com/uoip/pangolin
          qui fonctionnent bien.

          Puis lorsque je tape build .. j'obtiens ce curieux Warning parmis d'autres : (je ne suis pas sûr que ça soit grave . . .)

          CMake Warning at python/CMakeLists.txt:3 (find_package):
          By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
          asked CMake to find a package configuration file provided by "pybind11",
          but CMake did not find one.

          Could not find a package configuration file provided by "pybind11" with any
          of the following names:

          pybind11Config.cmake
          pybind11-config.cmake

          Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
          "pybind11_DIR" to a directory containing one of the above files. If
          "pybind11" provides a separate development package or SDK, be sure it has
          been installed.


          ____________________________________________________________________

          Mais je reçois réellement des erreurs m'empêchant de finir l'installation lorsque je tape
          make -j8
          :

          home/banner/git/pangolin/src/video/drivers/ffmpeg.cpp:47:41: error: ‘AV_PIX_FMT_VDPAU_H264’ was not declared in this scope; did you mean ‘AV_PIX_FMT_VDPAU’?
          47 | # define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;
          | ^~~~~~~~~~~
          /home/banner/git/pangolin/src/video/drivers/ffmpeg.cpp:47:41: note: in definition of macro ‘TEST_PIX_FMT_RETURN’
          47 | # define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;

          /home/banner/git/pangolin/include/pangolin/var/varwrapper.h:80:10: warning: catching polymorphic type ‘struct pangolin::BadInputException’ by value [-Wcatch-value=]
          make[2]: *** [src/CMakeFiles/_pangolin.dir/build.make:999 : src/CMakeFiles/_pangolin.dir/video/drivers/ffmpeg.cpp.o] Erreur 1
          make[2]: *** Attente des tâches non terminées....
          make[1]: *** [CMakeFiles/Makefile2:544 : src/CMakeFiles/_pangolin.dir/all] Erreur 2
          make: *** [Makefile:152 : all] Erreur 2


          Voila Voila :) Telle est la raison de mon désespoir. Si vous connaissez une méthode pour régler ce problème ça serait vraiment cool, mais sinon si vous connaissez une librairie pouvant remplacer pangolin ça serait génial aussi.

          Merci
          0
          1. Modérateur
            Bonjour,

            La commande
            git clone ***@***:uoip/pangolin.git
            ne fonctionne pas elle me rejette :

            La partie
            ***@***
            est toujours
            git@github.com
            , mais pour fonctionner, il faut avoir au préalable créé une clé ssh et avoir déposé sa clé publique (
            ~/.ssh/id_rsa.pub
            ) dans ton profil github. Sinon tu peux cloner le dépôt en https plutôt qu'en ssh, le résultat sera le même.

            Donc je tape à la place : git clone https://github.com/uoip/pangolin qui fonctionnent bien..

            Parfait (dépôt cloné en https).

            Puis lorsque je tape build .. j'obtiens ce curieux Warning parmis d'autres : (je ne suis pas sûr que ça soit grave ...)

            Je suppose que tu parles de cette partie :

            cd pangolin
            mkdir build
            cd build
            cmake ..
            make -j8
            cd ..
            python3 setup.py install


            Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
            "pybind11_DIR" to a directory containing one of the above files. If
            "pybind11" provides a separate development package or SDK, be sure it has
            been installed.


            Je pense que sera gênant tôt ou tard. Je présume que pour régler cette erreur il suffirait de lancer :

            sudo apt update
            sudo apt install python3-pybind11


            Mais je reçois réellement des erreurs m'empêchant de finir l'installation lorsque je tape make -j8 :

            home/banner/git/pangolin/src/video/drivers/ffmpeg.cpp:47:41: error: ‘AV_PIX_FMT_VDPAU_H264’ was not declared in this scope; did you mean ‘AV_PIX_FMT_VDPAU’?


            Le problème est spécifique au code de pangolin et a déjà été reporté ici. Si on déroule la discussion, on te propose d'appliquer ce patch. Tu peux soit appliquer les modifications à la main avec ton éditeur favori (c'est le plus simple), soit appliquer localement chez toi la pull request. Ensuite, réessaie de compiler.

            (Je ne connais pas de librairie qui remplace pangolin, car dans le détail je ne sais pas ce que ça fait ni quelles sont tes contraintes / besoins).

            Bonne chance
            0