We have 2 methods for installing on Linux. In one instance, we lean heavily on pre-built binaries being packaged with SSP (recommended). In the second method we manually install all necessary dependencies.
These steps have been tested on Ubuntu 20.04
Pre-built binaries (recommended)
This will use the binaries we have already built for each platform and architecture
If you want to see how the binaries were built you can check out 3rdparty/build_linux_dep.sh
Installing Manually
This will provide download instructions for each library
Problems?! (shocker)
Reach out on our discord and we will get you going!
These are the steps I followed to install k4a-tools, libk4a and libk4abt on Ubuntu 20.04. The general steps are as outlined in https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download, with a couple of hacks to make things work on 20.04. - use of 18.04 repo, even though OS is 20.04 - installed lower versions of tools and libraries (as latest versions of sensor and body tracker don't seem to be compatible on 20.04)
Verify sensor library by launching camera viewer (require sudo for hardware access)
To get our Sensor Stream Pipe up and running, you will require the following:
The following steps were tested on Ubuntu 18.04. Installing on other recent Linux distributions should be pretty similar, but please check the installation instructions for OpenCV and Kinect DK on your respective platform first. Installation instructions for Windows should be ready soon. If you encounter any problems or have any suggestions, please let us know by emailing [email protected] or post on our forum.
Dependencies
To get our Sensor Stream Pipe up and running, you will require the following:
OpenCV 3.2.0 (tested on version available on Ubuntu 18.04 repo) is used for image processing.
libav 3.4.6 (tested on version available on Ubuntu 18.04 repo) encodes, decodes and processes image frames.
Cereal 1.2.2 (headers only) serializes data for network transmission.
ZeroMQ and cppzmq (libzmq3 4.3.1, cppzmq 4.3.0) perform network and low-level I/O operations.
NvPipe (optional, but recommended if you have an NVidia GPU ) encodes and decodes frames. This is optional, but recommended for users with Nvidia GPUs.
Azure Kinect SDK 1.3 (to support the Azure Kinect Body Tracking SDK), 1.4 otherwise (optional) accesses Kinect DK data.
First, create a folder where local libs are to be installed:
Cereal 1.2.2
ZeroMQ
If you want to take advantage of ZMQ pulling support to check for new frames, compile ZMQ and CPPZMQ with the draft API suppport. Also, you must set SSP_WITH_ZMQ_POLLING at SSP build time. Discussion available here
libzmq3 4.3.1
cppzmq 4.3.0
yaml-cpp 0.6.0
Zdepth
spdlog
NVPipe (optional, recommended for users with Nvidia GPU)
Azure Kinect SDK 1.3/4 (optional)
Note: to avoid getting a password prompt, run any command as sudo before starting this section of the tutorial
1) Add the Linux Software Repository for Microsoft Products.
2) Install Azure Kinect SDK 1.3 (change 1.3 to 1.4 if you do not need body tracking)
3) To be able to use the Kinect as non-root, please run the following:
4 a) If using 1.4, in the current package, the link to the canonical version of the depth lib is missing. You can create it by running the following command:
4 a) If using 1.3, the depth engine is missing from the package. Microsoft is aware of the problem, but it only corrected it in 1.4.
cd ~/libs/srcOriginal
wget https://codeload.github.com/USCiLab/cereal/tar.gz/v1.2.2
tar xf v1.2.2
cp -r cereal-1.2.2/include ~/libs
cd ~/libs/srcOriginal
wget https://github.com/zeromq/libzmq/releases/download/v4.3.1/zeromq-4.3.1.tar.gz
tar xf zeromq-4.3.1.tar.gz
cd zeromq-4.3.1
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
make install -j4
cd ~/libs/srcOriginal
wget https://github.com/zeromq/cppzmq/archive/v4.3.0.tar.gz
tar xf v4.3.0.tar.gz
cd cppzmq-4.3.0
cp *.hpp ~/libs/include
cd ~/libs/srcOriginal
wget https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.6.0.tar.gz
tar xf yaml-cpp-0.6.0.tar.gz
cd yaml-cpp-yaml-cpp-0.6.0
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
make install
cd ~/libs/srcOriginal
git clone https://github.com/catid/Zdepth.git
cd Zdepth
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
make install
cp libzdepth.a ~/libs/lib/
cp zstd/libzstd.a ~/libs/lib/
cd ~/libs/srcOriginal
wget https://github.com/gabime/spdlog/archive/v1.4.1.tar.gz
tar xf v1.4.1.tar.gz
cd spdlog-1.4.1 && mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
make -j
make install
cd ~/libs/srcOriginal
git clone https://github.com/NVIDIA/NvPipe.git
cd NvPipe/
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/libs
make
make install