Ubuntu16和ROS使用KInect V2

10 篇文章 1 订阅
2 篇文章 0 订阅

目录

1.libfreenect2安装

(1)安装依赖

(2)下载libfreenect2

(3)安装其它

(4)编译libfreenect2

(5)建立别名

(6)运行Kinect V2

注意:如果这时显示No device connected

 2.安装iai-kinect2

(1)下载安装

(2)编译iai

(3)运行iai


1.libfreenect2安装

(1)安装依赖

sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev

(2)下载libfreenect2

在工作空间的文件夹src内进行操作。

cd ~/catkin_ws/src
git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2
cd depends; ./download_debs_trusty.sh

(3)安装其它

sudo dpkg -i debs/libusb*deb
sudo apt-get install libturbojpeg libjpeg-turbo8-dev
 sudo apt-get install libglfw3-dev
sudo dpkg -i debs/libglfw3*deb; sudo apt-get install -f; sudo apt-get install libgl1-mesa-dri-lts-vivid
sudo apt-add-repository ppa:floe/beignet; sudo apt-get update; sudo apt-get install beignet-dev; sudo dpkg -i debs/ocl-icd*deb

(4)编译libfreenect2

cd libfreenect2
mkdir build && cd build
cmake .. 
make
make install

默认是安装在usr/local中。

(5)建立别名

cd libfreenect2
sudo cp platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

(6)运行Kinect V2

重新插拔KInect V2,运行:

cd libfreenect2/build
./bin/Protonect

注意:如果这时显示No device connected

cd /etc/udev/rules.d

查看是否存在一个名为90-kinect2.rules的文件.如果存在,则sudo udevadm control --reload把kinect电源和数据线拔掉,再依次插入供电和数据线,若还是不行,重启一下电脑,基本可解决问题.

另外注意,v2只能连接电脑的usb3.0,就是电脑上蓝色的usb插口。

最近我发现了一个问题,我的电脑上连接了鼠标和键盘,再用kinect V2就始终显示[Kinect2Bridge::initDevice] no Kinect2 devices found!。我把键盘和鼠标拔掉了,再多拔插几次kinect就可以用了,不知道这个是不是我单独遇到的,还是其他人也遇到过。希望有大手子可以解答一下。

操作无误可显示如下图像:

 

 2.安装iai-kinect2

 

(1)下载安装

把iai和lib放在同一个工作空间内,cd ~/catkin_ws/src

git clone https://github.com/code-iai/iai_kinect2.git

(2)编译iai

$cd iai_kinect2
$rosdep install -r --from-paths .
$cd ~/catkin_ws
$catkin_make

(3)运行iai

$roscore
$roslaunch kinect2_bridge kinect2_bridge.launch
$rosrun kinect2_viewer kinect2_viewer

可能会出现的问题:

[Error] [DepthPacketStreamParser] Packet buffer is NULL
[ERROR] [1598839556.338267422]: [DepthRegistrationOpenCL::init] could not find any suitable device
[Info] [Freenect2DeviceImpl] closing...
[Info] [Freenect2DeviceImpl] releasing usb interfaces...
[Info] [Freenect2DeviceImpl] deallocating usb transfer pools...
[Info] [Freenect2DeviceImpl] closing usb device...
[Info] [Freenect2DeviceImpl] closed
[ERROR] [1598839556.338687227]: [Kinect2Bridge::start] Initialization failed!
[Info] [Freenect2DeviceImpl] closing...
[Info] [Freenect2DeviceImpl] already closed, doing nothing
[Error] [OpenCLAllocator] queue.enqueueUnmapMemObject(b->buffer, b->data, NULL, &event): -36
[Error] [OpenCLAllocator] queue.enqueueUnmapMemObject(b->buffer, b->data, NULL, &event): -36
[Error] [OpenCLAllocator] queue.enqueueUnmapMemObject(b->buffer, b->data, NULL, &event): -36
[FATAL] [1598839556.443583332]: Failed to load nodelet '/kinect2_bridge` of type `kinect2_bridge/kinect2

这是由于电脑没有安装GPU,将命令修改为:

rosrun kinect2_bridge kinect2_bridge   _depth_method:=cpu    _reg_method:=cpu

操作无误可以出现:

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值