- Saved searches
- Use saved searches to filter your results more quickly
- OpenKinect/libfreenect
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Использование камеры Microsoft Kinect 360 в ROS Indigo
- Камера Microsoft Kinect
- Установка драйвера для сенсора Microsoft Kinect
- Установка openni_* пакетов
- Проверка установки драйверов
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Drivers and libraries for the Xbox Kinect device on Windows, Linux, and OS X
OpenKinect/libfreenect
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Co-authored-by: Benn Snyder Signed-off-by: Benn Snyder Reviewed-by: Benn Snyder
Git stats
Files
Failed to load latest commit information.
README.md
libfreenect is a userspace driver for the Microsoft Kinect. It runs on Linux, OSX, and Windows and supports
Notice: If you have the newer Kinect v2 (XBox One), use OpenKinect/libfreenect2 instead.
To build libfreenect, you’ll need
- libusb >= 1.0.18 (Windows needs >= 1.0.22)
- CMake >= 3.12.4
- python >= 2.7 or >= 3.3 (only if BUILD_PYTHON=ON or BUILD_PYTHON2=ON or BUILD_PYTHON3=ON or BUILD_REDIST_PACKAGE=OFF)
For the examples, you’ll need
git clone https://github.com/OpenKinect/libfreenect cd libfreenect mkdir build cd build cmake -L .. # -L lists all the project options make # if you don't have `make` or don't want color output # cmake --build .
Use CMake options to control what gets built. For example, to build the Python wrapper (defaults to system Python):
cmake .. -DBUILD_PYTHON=ON make
cmake .. -DBUILD_PYTHON3=ON make
You can specify a build with debug symbols:
cmake .. -DCMAKE_BUILD_TYPE=debug # or with optimizations # cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
You can build .deb, .rpm, and/or .tgz packages with cpack :
cmake .. -DBUILD_CPACK_DEB=ON -DBUILD_CPACK_RPM=ON -DBUILD_CPACK_TGZ=ON cpack
For audio support, you must upload firmware to the device. Newer Kinect models may require audio firmware for motor and LED support. The best method is to insert firmware at runtime just after calling freenect_init() .
Alternately, firmware for Kinect model 1414 can be downloaded automatically by specifying:
cmake .. -DBUILD_REDIST_PACKAGE=OFF
Note that firmware may not be legal to redistribute in your jurisdiction!
If you don’t have a package manager, install Homebrew. For a manual build, see the wiki.
brew install libfreenect # or get the very latest: # brew install --HEAD libfreenect
sudo port install git-core cmake libusb libtool
Remember to install the udev rules. For a manual build, see the wiki.
The version packaged in Ubuntu may be very old. To install newer packaged builds, see the wiki. Continue with this section for a manual build.
sudo apt-get install git cmake build-essential libusb-1.0-0-dev # only if you are building the examples: sudo apt-get install freeglut3-dev libxmu-dev libxi-dev
There is also a debian branch for packaging purposes.
There is a libfreenect PKGBUILD in the AUR. Alternately, the libfreenect-git PKGBUILD builds the very latest.
As of libusb 1.0.22, libusbK isochronous transfers are now supported natively. There is no longer a need to compile a custom version of libusb.
Use Zadig to install the libusbK driver for each device you wish to use. Follow Fetch & Build or use Github and CMake GUI tools. Remember to supply paths to CMake so it can find dependencies. For example:
cmake .. -DLIBUSB_1_INCLUDE_DIR="C:\path\to\libusb\include" -DLIBUSB_1_LIBRARY="C:\path\to\libusb\libusb.lib"
Interfaces to various languages are provided in wrappers/. Wrappers are not guaranteed to be API stable or up to date.
- C (using a synchronous API)
- C++
- C#
- python
- ruby
- actionscript
- Java (JNA)
Using fakenect, you can record a session to a directory and play it back later.
mkdir session fakenect-record ./session
To use a fakenect recorded stream, just provide the fakenect lib as a pre loaded library with LD_PRELOAD and indicates the recorded files directory with FAKENECT_PATH .
LD_PRELOAD="/usr/local/lib/fakenect/libfakenect.so" FAKENECT_PATH="./session" python ./wrappers/python/demo_cv_sync.py
LD_PRELOAD="/usr/local/lib/fakenect/libfakenect.so" FAKENECT_PATH="./session" freenect-glview
- Make sure to sign commits: git commit -s
- Use a feature branch in your own fork and target master with pull requests
- Tab indentation, no trailing whitespace
Ongoing Development and Maintenance by the OpenKinect Community
- Original Code and Engineering: Hector Martin (marcan)
- Community Lead: Josh Blake (JoshB)
- Integration: Kyle Machulis (qDot)
The libfreenect project is covered under a dual Apache v2/GPL v2 license. The licensing criteria are listed below, as well as at the top of each source file in the repo.
This file is part of the OpenKinect Project. http://www.openkinect.org Copyright (c) 2010 individual OpenKinect contributors. See the CONTRIB file for details. This code is licensed to you under the terms of the Apache License, version 2.0, or, at your option, the terms of the GNU General Public License, version 2.0. See the APACHE20 and GPL2 files for the text of the licenses, or the following URLs: http://www.apache.org/licenses/LICENSE-2.0 http://www.gnu.org/licenses/gpl-2.0.txt If you redistribute this file in source form, modified or unmodified, you may: - Leave this header intact and distribute it under the same terms, accompanying it with the APACHE20 and GPL2 files, or - Delete the Apache 2.0 clause and accompany it with the GPL2 file, or - Delete the GPL v2 clause and accompany it with the APACHE20 file In all cases you must keep the copyright notice intact and include a copy of the CONTRIB file. Binary distributions must follow the binary distribution requirements of either License.
Information about the OpenKinect project can be found at http://www.openkinect.org
For questions, support, and discussion, check out the google groups mailing list at http://groups.google.com/group/openkinect
Or the IRC channel at #openkinect on Freenode
Использование камеры Microsoft Kinect 360 в ROS Indigo
Последние наблюдения и собственный опыт показали, что с подключением камеры Microsoft Kinect Xbox 360 для ее использования в ROS Indigo из под Ubuntu 14.04 часто возникают проблемы. В частности, при запуске ROS пакета openni_launch не удается определить устройство и выдается ошибка «No device connected». В этой статье я опишу свой пошаговый метод настройки окружения для использования Microsoft Kinect из ROS Indigo. Кто заинтересован, прошу под кат!
Камера Microsoft Kinect
Об этом сенсоре уже подробно писали в статье. В двух словах, Microsoft Kinect это 3D (RGB-D, то есть, red, green, blue и depth) камера, основанная на технологии Structured light, которая позволяет получить карту глубины поверхностей объектов, попавших в поле зрения камеры. Карту глубины можно трансформировать в трехмерное «облако» точек, в котором каждая точка имеет точные координаты X, Y и Z в пространстве и в некоторых случаях цвет в формате RGB. «Облака» точек используются в задачах реконструкции объектов, построении карт местности в сервисной робототехнике, распознавании объектов и многих других задачах в области компьютерного зрения в 3D.
ROS предоставляет поддержку для сенсора Kinect. «Облако» точек, получаемое сенсором, можно визуально показать в программе rviz.
Для использования сенсора Kinect в ROS имеется специальные пакеты openni_launch и openni_camera.
Установка драйвера для сенсора Microsoft Kinect
Для начала необходимо установить библиотеку OpenNI, предназаначенную для ряда RGB-D сенсоров (Kinect, ASUS Xtion, PrimeSense).
Установим некоторые дополнительные пакеты, которые OpenNI требует для установки:
sudo apt-get install git build-essential python libusb-1.0-0-dev freeglut3-dev openjdk-7-jdk sudo apt-get install doxygen graphviz mono-complete
Теперь непосредственно установим OpenNI 1.5.4 из исходников:
git clone https://github.com/OpenNI/OpenNI.git cd OpenNI git checkout Unstable-1.5.4.0 cd Platform/Linux/CreateRedist chmod +x RedistMaker ./RedistMaker
Теперь скачаем библиотеку avin-KinectSensor для сенсора Kinect отсюда.
unzip avin2-SensorKinect-v0.93-5.1.2.1-0-g15f1975.zip cd avin2-SensorKinect-15f1975/Bin
В зависимости от типа системы (32 или 64 бита) выберем соответствующий установочник. Для 32 битной системы выполним следующие шаги:
tar -xjf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2 cd Sensor-Bin-Linux-x86-v5.1.2.1
Для 64 битной системы выполним:
tar -xjf SensorKinect093-Bin-Linux-x64-v5.1.2.1.tar.bz2 cd Sensor-Bin-Linux-x64-v5.1.2.1
И наконец выполним установку:
Установка openni_* пакетов
Последнее что нам нужно сделать — это установить пакеты openni_launch и openni_camera, которые позволяют получать и работать с данными OpenNI-совместимых камер глубины в ROS. Установить эти пакеты очень просто:
sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch
Проверка установки драйверов
Теперь все готово! Проверяем успешность установки. Запускаем в разных терминалах:
roscore roslaunch openni_launch openni.launch depth_registration:=true rosrun rviz rviz
Установка аргумента depth_registration:=true указывает, что мы хотим включить OpenNI регистрацию и получать XYZRGB данные с камеры (глубину и цвет).
Для начала в rviz развернем секцию Global options в левой колонке Displays и поставим значение /camera_link для поля Fixed frame как на снимке:
Таким образом мы задали необходимую систему координат для корректного отображения данных с камеры Kinect.
В rviz создаем новый дисплей. Для этого нажимаем кнопку Add и выбираем тип дисплея PointCloud2 как на снимке:
Выбираем топик /camera/depth_registered/points для нового дисплея
После этого выбираем для поля Color Transformer значение «RGB8».
Теперь мы увидим подобную картину:
Значение «RGB8» позволяет отобразить цветное «облако точек», где каждая точка имеет координаты X, Y, Z и цвет RGB.
Хочу обратить ваше внимание, что Microsoft Kinect Xbox 360 работает только с USB 2.0. Подключение камеры через USB 3.0 может приводить к ошибке обнаружения устройства, о которой я говорил в самом начале статьи.
На официальном портале ROS есть туториалы по работе с данными RGB-D камер с помощью библиотеки Point Cloud Library. Эти туториалы дают всю необходимую информацию, достаточную для начала работы с «облаками точек».
Желаю вам удачи в использовании RGBD камер в ROS для решения своих задач компьютерного зрения!