See http://wiki.ros.org/melodic/Installation.
See https://github.com/jetsonhacks/installROS.
./installROS.sh -p ros-melodic-desktop-full -p ros-melodic-rgbd-launchsudo apt update
sudo apt install nvidia-jetpackcd ~
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout tags/4.5.2
cd ..
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout tags/4.5.2
mkdir build
cd build
##Change according to cuda/gcc version
cmake --clean-first \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_OPENCL=ON \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=7.2 \
-D WITH_CUDNN=ON \
-D CUDNN_VERSION='8.0' \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_NEON=ON \
-D BUILD_opencv_cudacodec=ON \
-D WITH_QT=OFF \
-D WITH_OPENMP=ON \
-D WITH_OPENGL=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D BUILD_TESTS=OFF \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=TRUE \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_NVCUVID=ON\
-D BUILD_EXAMPLES=ON ..
########### make will take ~ 2 hours, also make sure ram is not occupied
make -j6 && make -j6 installSee https://github.com/jetsonhacks?tab=repositories&q=OpenCV&type=&language=&sort= and find the corrsponding repo.
See Here the setup guide of K4A (PC only) For Jetson and other ARM architecture, go google yourself
See Here the setup guide of K2
If you are using D435/D455/L515, you need Intel RealSense SDK.
Intel RealSense update insanely quick so I would not recommend using a script to install it.
See https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
Install Jetpack
sudo apt update
###Dont install nvidia-jetpack in a docker container###
sudo apt install nvidia-jetpackGet dependencies if you don't have yet
apt install -y python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
rosdep init
rosdep update
pip3 install cython flake8 pylint atlas empy
###This will take a very long time (~ 2 hour), may seem to be stuck but it is not (pip is not multi-threaded)
pip3 -vvvvv install numpy pandas pycuda cupy
sudo apt-get install libgtkglext1 libgtkglext1-devbuild Install OpenCV (GPU version)
cd ~
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout tags/4.5.2
cd ..
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout tags/4.5.2
mkdir build
cd build
##Change according to cuda/gcc version
cmake --clean-first \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D EIGEN_INCLUDE_PATH=/usr/include/eigen3 \
-D WITH_OPENCL=ON \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=7.2 \
-D WITH_CUDNN=ON \
-D CUDNN_VERSION='8.0' \
-D WITH_CUBLAS=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_NEON=ON \
-D BUILD_opencv_cudacodec=ON \
-D WITH_QT=ON \
-D WITH_OPENMP=ON \
-D WITH_OPENGL=ON \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D BUILD_TESTS=OFF \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python2=ON \
-D BUILD_opencv_python3=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_NVCUVID=ON\
-D BUILD_EXAMPLES=ON ..
########### make will take ~ 2 hours, also make sure ram is not occupied
make -j6 && make -j6 installConfig paths
#############################################
apt install -y libssl-dev libusb-1.0-0-dev pkg-config build-essential cmake cmake-curses-gui libgtk-3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev qtcreator python3 python3-dev apt-utils
export PATH='/usr/local/cuda-10.2/bin:$PATH'
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64'
export PYTHONPATH="$PYTHONPATH:/usr/local/lib"
/opt/ros/melodic/lib/python2.7/dist-packages:/usr/local/lib:/usr/local/lib/python3.6/pyrealsense2/:/usr/local/lib
#end#
## The above needs to be changed according to cuda version and path##Download RealSense SDK and build
cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense/
git checkout v2.45.0
##kernel patch, see https://github.com/IntelRealSense/librealsense/blob/v2.45.0/doc/installation_jetson.md##
#########Only do this on the host nx, do not run the script in the docker instance#########
./scripts/patch-realsense-ubuntu-L4T.sh
####################################################################################
./scripts/setup_udev_rules.sh
mkdir build
cd build
/usr/bin/cmake ../ -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DBUILD_PYTHON_BINDINGS=bool:true -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true
sudo make -j6 && sudo make install
cp config/99-realsense-libusb.rules /etc/udev/rules.d/
##add the pyrealsense lib path, change accordingly to python version##
export 'PYTHONPATH="$PYTHONPATH:/usr/local/lib/python3.6/pyrealsense2/"' >> ~/.profile
source ~/.bashrcReboot the Jetson
Finally set up ROS environment
##after reboot the jetson nx#
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
cd src/
# See Install Intel RealSense ROS Wrapper part
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout 2.3.0
cd ../
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
cd ddynamic_reconfigure/
git checkout 0.4.1
cd ../
git clone https://github.com/MartinNievas/vision_opencv.git
cd vision_opencv/
git checkout compile_oCV4
cd ../
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.6m.so -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install
export PYTHONPATH=/usr/local/lib/python3.6/dist-packages/:/usr/lib/python3.6/dist-packages/:/opt/ros/melodic/lib/python2.7/dist-packages:/opt/ros/melodic/lib/python2.7/dist-packages:/usr/local/lib:/usr/local/lib/python3.6/pyrealsense2/
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrcYou need:
- ROS
- RealSense SDK
MAKE SURE THE ROS Wrapper Match the version of RealSense SDK. otherwise you might encounter this error: RealSense SDK 2.0 is not detected in realsense-ros/realsense2_camera even it is installed
- You can check the version here. https://github.com/IntelRealSense/realsense-ros/tags
Create a catkin workspace if you haven't
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/Specifically, make sure that the ros package ddynamic_reconfigure is installed. If you haven't install it through APT:
git clone https://github.com/pal-robotics/ddynamic_reconfigure.gitGet ros package Realsense ROS
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
#We use 2.21 for LibRealSense SDK v2.41.0
git checkout 2.2.21
#Instead of
#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 installIf you haven't put it into source
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrcMore info of RealSense ROS Wrapper
The pyrealsense2 package is a official wrapper which does support RealSense SDK 2.0.
Get pip3 if you don't have it yet
sudo apt install python3-pipFor PC environment
pip3 install pyrealsense2For Jetson and other ARM architecture, you need to get the whl file. Get it from here: https://pypi.org/project/pyrealsense2-aarch64/#files Then:
pip3 install ~/Downloads/pyrealsense2_aarch64-2.23.0-cp36-none-any.whl