-
-
Save ducha-aiki/2c29cdfd47fa4fe65f1ca083d8f09ef2 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
DIR1=$(pwd) | |
MAINDIR=$(pwd)/3rdparty | |
mkdir ${MAINDIR} | |
cd ${MAINDIR} | |
conda create -y -n "NavAgents" python=3.6 | |
source activate NavAgents | |
conda install opencv -y | |
conda install pytorch torchvision -c pytorch -y | |
conda install -c conda-forge imageio -y | |
conda install ffmpeg -c conda-forge -y | |
cd ${MAINDIR} | |
mkdir eigen3 | |
cd eigen3 | |
wget http://bitbucket.org/eigen/eigen/get/3.3.5.tar.gz | |
tar -xzf 3.3.5.tar.gz | |
cd eigen-eigen-b3f3d4950030 | |
mkdir build | |
cd build | |
cmake .. -DCMAKE_INSTALL_PREFIX=${MAINDIR}/eigen3_installed/ | |
make install | |
cd ${MAINDIR} | |
wget https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip | |
unzip glew-2.1.0.zip | |
cd glew-2.1.0/ | |
cd build | |
cmake ./cmake -DCMAKE_INSTALL_PREFIX=${MAINDIR}/glew_installed | |
make -j4 | |
make install | |
cd ${MAINDIR} | |
pip install numpy --upgrade | |
rm Pangolin -rf | |
git clone https://github.com/stevenlovegrove/Pangolin.git | |
cd Pangolin | |
mkdir build | |
cd build | |
cmake .. -DCMAKE_PREFIX_PATH=${MAINDIR}/glew_installed/ -DCMAKE_LIBRARY_PATH=${MAINDIR}/glew_installed/lib/ -DCMAKE_INSTALL_PREFIX=${MAINDIR}/pangolin_installed | |
cmake --build . | |
cd ${MAINDIR} | |
rm ORB_SLAM2 -rf | |
rm ORB_SLAM2-PythonBindings -rf | |
git clone https://github.com/ducha-aiki/ORB_SLAM2 | |
git clone https://github.com/ducha-aiki/ORB_SLAM2-PythonBindings | |
cd ${MAINDIR}/ORB_SLAM2 | |
sed -i "s,cmake .. -DCMAKE_BUILD_TYPE=Release,cmake .. -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=${MAINDIR}/eigen3_installed/include/eigen3/ -DCMAKE_INSTALL_PREFIX=${MAINDIR}/ORBSLAM2_installed ,g" build.sh | |
ln -s ${MAINDIR}/eigen3_installed/include/eigen3/Eigen ${MAINDIR}/ORB_SLAM2/Thirdparty/g2o/g2o/core/Eigen | |
./build.sh | |
cd build | |
make install | |
cd ${MAINDIR} | |
cd ORB_SLAM2-PythonBindings/src | |
ln -s ${MAINDIR}/eigen3_installed/include/eigen3/Eigen Eigen | |
cd ${MAINDIR}/ORB_SLAM2-PythonBindings | |
mkdir build | |
cd build | |
CONDA_DIR=$(dirname $(dirname $(which conda))) | |
sed -i "s,lib/python3.5/dist-packages,${CONDA_DIR}/envs/NavAgents/lib/python3.6/site-packages/,g" ../CMakeLists.txt | |
cmake .. -DPYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")/libpython3.6m.so -DPYTHON_EXECUTABLE:FILEPATH=`which python` -DCMAKE_LIBRARY_PATH=${MAINDIR}/ORBSLAM2_installed/lib -DCMAKE_INCLUDE_PATH=${MAINDIR}/ORBSLAM2_installed/include;${MAINDIR}/eigen3_installed/include/eigen3 -DCMAKE_INSTALL_PREFIX=${MAINDIR}/pyorbslam2_installed | |
make | |
make install | |
cp ${MAINDIR}/ORB_SLAM2/Vocabulary/ORBvoc.txt ${DIR1}/data/ |
Hi,
Looks like that you have another OpenCV version installed and it links to one version, but at runtime uses another.
Hi when I am running the script, I get the following error
''
....
CMake Warning at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1626 (message):
No header defined for python-py35; skipping header check
Call Stack (most recent call first):
CMakeLists.txt:33 (find_package)
CMake Error at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1947 (message):
Unable to find the requested Boost libraries.
Boost version: 1.65.1
Boost include path: /usr/include
Could not find the following Boost libraries:
boost_python-py35
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the
directory containing Boost libraries or BOOST_ROOT to the location of
Boost.
Call Stack (most recent call first):
CMakeLists.txt:33 (find_package)
-- Found OpenCV: /home/xxxx/anaconda3/envs/NavAgents (found version "3.4.2")
-- Found ORB_SLAM2: /media/xxxx/xxxx/xxxx/Orb_slam/3rdparty/ORBSLAM2_installed/lib/libORB_SLAM2.so
-- Configuring incomplete, errors occurred!
See also "/media/xxxx/xxxx/xxxx/Orb_slam/3rdparty/ORB_SLAM2-PythonBindings/build/CMakeFiles/CMakeOutput.log".
./install_orbslam_stuff.sh: line 59: /media/xxxx/xxxx/xxxx/Orb_slam/3rdparty/eigen3_installed/include/eigen3: Is a directory
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install'. Stop.
cp: cannot create regular file '/media/xxxx/xxxx/xxxx/Orb_slam/data/': Not a directory
....
''
could you please help me to solve this? thanks
Hi @ducha-aiki
Firstly, thanks for your work!
I have compiled it successfully but when I import orbslam2 the python I get errors.
ImportError: /home/SENSETIME/zhangbing/orb_python/3rdparty/ORBSLAM2_installed/lib/libORB_SLAM2.so: undefined symbol: _ZN2cv3Mat20updateContinuityFlagEv
That would be great if you suggest me a solution for that.
Thanks