空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

kinect v2をROS(KINETIC)で動かしてみる

環境設定

手順:Ubuntu16.04: Kinect V2の設定 | demura.net

  1. GitHub - OpenKinect/libfreenect2: Open source drivers for the Kinect for Windows v2 device

  2. GitHub - code-iai/iai_kinect2: Tools for using the Kinect One (Kinect v2) in ROS

修正点

  1. –from-paths ros -> - -from-paths

  2. Unable to compile anymore · Issue #377 · code-iai/iai_kinect2 · GitHub

iai_kinect2 -> kinect_registrationパッケージのCMakeLists.txtに

add_definitions( -fexceptions )

を追加

実行結果

f:id:robonchu:20170920234628p:plain

depth

f:id:robonchu:20170920234934p:plain

PCL

PCL(Point Cloud Library)+ROSで3次元画像処理入門 - karaage. [からあげ]

mzrandom : kinect から 距離画像を取ってくるROSパッケージ

www.slideshare.net

Python x PointCloud

kinect - how to effeciently convert ROS PointCloud2 to pcl point cloud and visualize it in python - Stack Overflow

http://olinivlab.weebly.com/uploads/2/2/1/5/22158624/ros_by_example_hydro_volume_1.pdf

Zの取得

#!/usr/bin/env python

import roslib
import rospy
from sensor_msgs.msg import PointCloud2
import numpy
import pylab
import time
import sensor_msgs.point_cloud2 as pc2

def callback(data):
    resolution = (data.height, data.width)

    # 3D position for each pixel
    img = numpy.fromstring(data.data, numpy.float32)

    cloud_points = []
    for p in pc2.read_points(data, field_names = ("x", "y", "z"), skip_nans=False):
        cloud_points.append(p[2])

    z_points = numpy.array(cloud_points, dtype=numpy.float32)
    z = z_points.reshape(resolution)
  print z[data.height/2 , data.width/2]

def listener():
    rospy.init_node('listener', anonymous=True)
    rospy.Subscriber('/kinect2/sd/points',
                     PointCloud2, callback)
    rospy.spin()

if __name__ == "__main__":
    listener()

rvizでの表示、TFの出し方

  1. roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true

  2. FixedFrame -> kinect2_link へ変更

roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true fps_limit:=10

Does the kinect2_bridge publish the actual RGBXYZ point cloud? · Issue #153 · code-iai/iai_kinect2 · GitHub

TFについて

ROStfのお勉強 - 空飛ぶロボットのつくりかた

SD, HD, QHD

画質の違い【SD/HD/フルHD/4K】 - 動画配信サービスナビ

QHDとは - IT用語辞典

参考

How to install libopenni2-dev on Ubuntu 16.04 (Xenial Xerus)

Errors occured when doing cmake in ubuntu - Ask Ubuntu

KINECT WITH ROS

ubuntu16.04でkinect_v2を使うための環境構築 - potblog