git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 3.4.9
cd ../opencv
git checkout 3.4.9
mkdir build && cd build
cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..
make -j8
sudo make install
sudo ldconfig
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D WITH_CUDA=ON \
-D BUILD_opencv_cudacodec=OFF \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D CUDA_ARCH_BIN=7.5 \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_PC_FILE_NAME=opencv.pc \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=OFF ..
-D PYTHON3_INCLUDE_DIR=/usr/include/python3.8 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ \
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages \
-D PYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so ../
/
sudo apt install libeigen3-dev
Pangolin/CMakeModules/FindFFMPEG.cmake
Pangolin/src/video/drivers/ffmpeg.cpp
Pangolin/include/pangolin/video/drivers/ffmpeg.h
Pangolin/src/display/device/display_x11.cpp
git clone --recursive https://github.com/stevenlovegrove/Pangolin.git
./scripts/install_prerequisites.sh recommended
git checkout tags/v0.5 -b
cd Pangolin
cmake -B build -GNinja
cmake --build build
cd build
sudo make install
https://github.com/raulmur/ORB_SLAM2
ORB_SLAM2/include/System.h #23
위 #include <unistd.h>
추가#ifndef SYSTEM_H
#define SYSTEM_H
#include <unistd.h> // 추가
#include <string>
ORB_SLAM2/include/LoopClosing.h
#50 수정// const KeyFrame* -> KeyFrame *const
typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
# 코드 수정 후 빌드
./build.sh
./Examples/Monocular/mono_kitti \
Vocabulary/ORBvoc.txt \ # BoW
Examples/Monocular/KITTI00-02.yaml \ # Camera Param (Calibration 값)
Examples/Monocular/KITTI/odometry_gray/sequences/00 # Dataset
http://wiki.ros.org/noetic/Installation/Ubuntu
# sources.list 설정
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# cURL 설치
sudo apt install curl # if you haven't already installed curl
# 설치 키 설정
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
# ROS 설치
sudo apt install ros-noetic-desktop-full
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
roscore
# version
printenv | grep -i ROS
# output:
# ROS_DISTRO=noetic
https://github.com/IntelRealSense/realsense-ros.git
sudo apt-get install ros-$ROS_DISTRO-realsense2-camera
sudo apt-get install ros-$ROS_DISTRO-realsense2-description
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update
sudo apt-get install librealsense2-dkms librealsense2-utils librealsense2-dev librealsense2-dbg -y
realsense-viewer
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at
# Run Intel Realsense permissions script from librealsense root directory:
./scripts/setup_udev_rules.sh
# Build and apply patched kernel modules
# Ubuntu 20/22 (focal/jammy) with LTS kernel 5.13, 5.15
./scripts/patch-realsense-ubuntu-lts-hwe.sh
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_TM2=false -DBUILD_WITH_CUDA=false -DFORCE_RSUSB_BACKEND=true
sudo make uninstall && make clean && make && sudo make install
realsense-viewer
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
https://github.com/leggedrobotics/realsense-ros-rsl
# Create a catkin workspace Ubuntu
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
# Intel RealSense ROS
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..
catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo "source ~/catkin_ws/devel/setup.zsh" >> ~/.zshrc
source ~/.zshrc
roslaunch realsense2_camera rs_camera.launch
rosrun rqt_image_view rqt_image_view
rosnode list
Examples/ROS/ORB_SLAM2/src/ros_mono.cc
수정rostopic list
로 확인/camera/image_raw
-> /camera/color/image_raw
ros::Subscriber sub = nodeHandler.subscribe("/camera/color/image_raw", 1, &ImageGrabber::GrabImage,&igb);
build_ros.sh
수정no module name rospkg
오류 문제 해결cmake .. -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3.8
~/.zshrc
설정# 추가
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:path/to/ORB_SLAM2/Examples/ROS
export ROS_IP=localhost
export ROS_MASTER_URI=http://localhost:11311
source ~/.zshrc
cd path/to/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
~/.zshrc
설정# 추가
source path/to/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/devel/setup.zsh
source ~/.zshrc
roscore
roslaunch realsense2_camera rs_camera.launch
rosrun ORB_SLAM2 Mono \
Vocabulary/ORBvoc.txt \
Examples/Monocular/D455-640x480.yam
undefined reference to symbol '_ZNK2cv8FileNodecviEv’
https://github.com/raulmur/ORB_SLAM2/issues/990#issuecomment-1384694730
libopencv_{}.so를 ORB_SLAM2/lib에 복사
whereis libopencv_imgproc
ls -l /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so*
ls -l /usr/lib/x86_64-linux-gnu/libopencv_core.so*
sudo cp /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so path/to/ORB_SLAM2/lib
sudo cp /usr/lib/x86_64-linux-gnu/libopencv_core.so path/to/ORB_SLAM2/lib
ORB_SLAM2/Examples/ROS/ORB_SLAM2/CMakeLists.txt
에 path 추가
# 맞는 버전으로 수정
# find_package(OpenCV 3.0 QUIET)
# find_package(OpenCV 4.0 QUIET)
find_package(OpenCV QUIET)
set(LIBS
# ${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
${PROJECT_SOURCE_DIR}/../../../lib/libopencv_core.so
${PROJECT_SOURCE_DIR}/../../../lib/libopencv_imgproc.so
)
다시 빌드
cd path/to/ORB_SLAM2
./build_ros.sh