This work was done in collaboration with Alex Spitzer.
Librealsense Linux installation instructions can be found here. Check the installation page for OS/kernel compatibilities.
What does a successful installation look like?
lsusb
: One of the entries should be:Bus 002 Device 00X: ID 8087:0b37 Intel Corp.
-
dmesg
: will contain a snippet that should look like:[15345.891625] usb 2-1: new SuperSpeed USB device number X using xhci_hcd [15345.912410] usb 2-1: New USB device found, idVendor=8087, idProduct=0b37 [15345.912413] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [15345.912415] usb 2-1: Product: Intel(R) RealSense(TM) Tracking Camera T265 [15345.912417] usb 2-1: Manufacturer: Intel(R) Corporation [15345.912419] usb 2-1: SerialNumber: 9092121111230000
-
run
rs-enumerate-devices
, this should output:Device info: Name : Intel RealSense T265 Serial Number : 909212111123 Firmware Version : 0.0.18.5715 Physical Port : vid_8087 pid_0B37 bus_2 port_1 Product Id : 0B37 Product Line : T200 Stream Profiles supported by Tracking Module Supported modes: stream resolution fps format Fisheye 1 848x800 @ 30Hz Y8 Fisheye 2 848x800 @ 30Hz Y8 Gyro N/A @ 200Hz MOTION_XYZ32F Accel N/A @ 62Hz MOTION_XYZ32F Pose N/A @ 200Hz 6DOF
- Launch
realsense-viewer
and your T265 should be detected.
What does an unsuccessful connection look like?
lsusb
: One of the output will be registered asBus 001 Device 00X: ID 03e7:2150
dmesg
: will output something similar to:
[15207.515371] usb 1-1: new high-speed USB device number 7 using xhci_hcd
[15207.664270] usb 1-1: New USB device found, idVendor=03e7, idProduct=2150
[15207.664276] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[15207.664280] usb 1-1: Product: Movidius MA2X5X
[15207.664283] usb 1-1: Manufacturer: Movidius Ltd.
[15207.664286] usb 1-1: SerialNumber: 03e72150
rs-enumerate-devices
outputs no device found
Resetting the T265 connection
If you encounter an unsuccessful connection by checking all three above, you should be able to reset the T265 by running realsense-viewer
or rs-pose
, then checking the above three commands again. If the output doesn’t change for all three, this indicates an installation failure.
If you have an unsuccessful installation, you’re not the only one! We tried installing librealsense on two common constrained compute systems (Odroid XU4, Nvidia TX2) and an OTS UAV (Intel Aero).
Intel Aero: Unsuccessful
Intel Aero platform works with Ubuntu 16.04 (and cannot be upgraded), and uses kernel version 4.4.76-aero1.2, a custom kernel. The aero’s customized kernel is required to communicate to the onboard flight controller. Unfortunately, the Intel Aero platform is discontinued as of Feb. 2019, so if you are hoping they’re going to update their kernel to work with librealsense, you’re out of luck. However, we tried to build librealsense with the following kernels on Ubuntu 16.04 with both prebuild packages and source to see if it would work:
- 4.4.76-aero1.2: No success.
- 4.10-generic: No success.
- 4.15-generic: USB port no longer detects a device. This version of the kernel probably doesn’t work with the Intel Aero.
For these unsuccessful installations, the following messages are encountered in the build step after running sudo apt-get install librealsense2-dkms librealsense2-utils
:
Odroid XU4: Successful
To install librealsense on Odroid (Ubuntu 18.04 LTS, kernel v4.14), install from source by following these instructions with fixes.
Note that, the supported versions of librealsense is 4.{4, 8, 10, 13, 15, 16} while the two supported kernel versions of odroid XU4 is 4.9 (discontinued LTS support) and 4.14 (current LTS support). However, the fix for Odroid indicates that installation of librealsense is possible on kernel version 4.14, so follow those instructions, with the following caveats:
- Make sure that your kernel version is 4.14 (
uname -r
should output Linux odroid 4.14). If not, upgrade your kernel as outlined in the installation guide by doing:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
- The patch file
patch-realsense-odroid.sh
isn’t there, but there are two other patch files in the scripts folder:./scripts/patch-realsense-ubuntu-odroid-xu4-4.14.sh
./scripts/patch-realsense-ubuntu-odroid.sh
As of today, patch-realsense-ubuntu-odroid-xu4-4.14.sh
was last updated 8 months ago vs. a year ago, so I used that one.
-
Follow the TM1 specific instructions in Step 5 in “Prepare Linux Backend and the Dev. Environment” since we’re interested in the tracking module.
-
After following instructions to prepare the Linux backend, all you have to do is build the packages, but make sure to add the flag
-DBUILD_WITH_TM2=true
to the end of your cmake command, as such:
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_WITH_TM2=true
This is important to get the T265 working.
- Confirm your installation with either
rs-pose
orrealsense-viewer
(requires a graphical display).
After, feel free to install realsense-ros as usual. If you’re using Ubuntu 18.04, The required package ddynamic_configure
needs to be cloned manually into your workspace/src folder. Clone the kinetic-devel
version from here.
Nvidia Jetson TX2: Successful
We’re working with a Nvidia Jetson TX2 with an Auvidea J120 carrier board, where it has Ubuntu 18.04 LTS with kernel version 4.9.140.
The TX2 uses an arm architecture, which means that you won’t be able to install from prebuild binaries. If you attempt, you will probably see this error:
W: Skipping acquire of configured file 'main/binary-arm64/Packages' as repository
'http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic InRelease'
doesn't support architecture 'arm64'
Build from source
To install librealsense on TX2 (Ubuntu 18.04 LTS, kernel v4.9.140), follow these instructions with the following caveats:
- You can attempt to upgrade to one of the supported kernel versions (4.{4, 8, 10, 13, 15, 16}) before continuing build with source. Attempting to upgrade to the newest (
sudo apt install linux-image-4.15.0-54-generic
) didn’t succeed and threw an “unsupported platform” message. - Skip Step 4 in “Prepare Linux Backend and the Dev. Environment”.
- Follow the TM1 specific instructions in Step 5 in “Prepare Linux Backend and the Dev. Environment” since we’re interested in the tracking module.
- After following instructions to prepare the Linux backend, all you have to do is build the packages, but make sure to add the flag
-DBUILD_WITH_TM2=true
to the end of your cmake command, as such:
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_WITH_TM2=true
This is important to get the T265 working.
- Confirm your installation with either
rs-pose
orrealsense-viewer
(requires a graphical display).
After, feel free to install realsense-ros as usual. If you’re using Ubuntu 18.04, The required package ddynamic_configure
needs to be cloned manually into your workspace/src folder. Clone the kinetic-devel
version from here.
Special thanks to Aditya Dhawale and Cherie Ho for enlightened conversations about this effort.