프로그램 사용/ros

ubuntu 22.04 / libfreenect2 / ros / 2760p(i5-2520m) 실패

구차니 2026. 7. 10. 12:06

노트북에 expresscard to USB3.0도 안가져왔고. 일단 빌드는 했으니 다음에 가져와서 해봐야지

* 한거

// libfreenect2 for kinect v2
$ sudo apt-get install libusb-1.0-0-dev libturbojpeg0-dev libglfw3-dev libva-dev libjpeg-dev libopenni2-dev
$ git clone https://github.com/OpenKinect/libfreenect2.git
$ cd libfreenect2/
$ mkdir build
$ cd build/
$ cmake .. -DENABLE_CUDA=OFF
$ sudo make install
$ sudo ldconfig

// install kinect2 bridge for ros2
$ sudo apt-get install python3-colcon-core python3-colcon-common-extensions python3-colcon-ros
$ sudo apt install libeigen3-dev
$ mkdir -p ~/ros2_ws/src
$ cd ~/ros2_ws/src
$ git clone  https://github.com/krepa098/kinect2_ros2.git
$ cd ..
$ source /opt/ros/humble/setup.bash
$ sudo rosdep init
$ rosdep update
$ rosdep install --from-paths src --ignore-src -r -y
$ colcon list
kinect2_bridge src/kinect2_ros2/kinect2_bridge (ros.ament_cmake)
kinect2_calibration src/kinect2_ros2/kinect2_calibration (ros.ament_cmake)
kinect2_registration src/kinect2_ros2/kinect2_registration (ros.ament_cmake)
$ colcon build --symlink-install
Starting >>> kinect2_registration
$ source install/setup.bash
$ ros2 pkg list | grep kinect
kinect2_bridge
kinect2_calibration
kinect2_registration
$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml

// install rtabmap
$ sudo apt install ros-humble-rtabmap-ros

 

 

$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml
[INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2026-07-11-20-41-52-174164-minimonk-HP-EliteBook-2760p-5964
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [kinect2_bridge_node-1]: process started with pid [5965]
[INFO] [point_cloud_xyzrgb_node-2]: process started with pid [5967]
[kinect2_bridge_node-1] [INFO] [1783770112.669497149] [kinect2_bridge_node]: parameter:
[kinect2_bridge_node-1]         base_name: kinect2
[kinect2_bridge_node-1]            sensor: default
[kinect2_bridge_node-1]         fps_limit: 30
[kinect2_bridge_node-1]        calib_path: /home/minimonk/ros2_ws/src/kinect2_ros2/kinect2_bridge/data/
[kinect2_bridge_node-1]           use_png: false
[kinect2_bridge_node-1]      jpeg_quality: 90
[kinect2_bridge_node-1]         png_level: 1
[kinect2_bridge_node-1]      depth_method: default
[kinect2_bridge_node-1]      depth_device: -1
[kinect2_bridge_node-1]        reg_method: default
[kinect2_bridge_node-1]        reg_device: -1
[kinect2_bridge_node-1]         max_depth: 12
[kinect2_bridge_node-1]         min_depth: 0.1
[kinect2_bridge_node-1]        queue_size: 5
[kinect2_bridge_node-1]  bilateral_filter: true
[kinect2_bridge_node-1] edge_aware_filter: true
[kinect2_bridge_node-1]        publish_tf: true
[kinect2_bridge_node-1]      base_name_tf: kinect2
[kinect2_bridge_node-1]    worker_threads: 4
[kinect2_bridge_node-1] libva info: VA-API version 1.14.0
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_14
[kinect2_bridge_node-1] libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
[kinect2_bridge_node-1] libva info: va_openDriver() returns 1
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_10
[kinect2_bridge_node-1] libva info: va_openDriver() returns 0
[kinect2_bridge_node-1] [Error] [VaapiRgbPacketProcessorImpl] vaQueryConfigEntrypoints(display, VAProfileJPEGBaseline, entrypoints, &num_entrypoints): the requested VAProfile is not supported
[kinect2_bridge_node-1] [INFO] [1783770112.809519223] [kinect2_bridge_node]: Kinect2 devices found: 
[kinect2_bridge_node-1] [INFO] [1783770112.809575855] [kinect2_bridge_node]:   0: 501441643042 (selected)
[kinect2_bridge_node-1] [INFO] [1783770112.916667344] [kinect2_bridge_node]: starting kinect2
[kinect2_bridge_node-1] [INFO] [1783770113.292294443] [kinect2_bridge_node]: device serial: 501441643042
[kinect2_bridge_node-1] [INFO] [1783770113.292485519] [kinect2_bridge_node]: device firmware: 4.0.3911.0
[kinect2_bridge_node-1] [WARN] [1783770113.594443755] [kinect2_bridge_node]: using sensor defaults for color intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1783770113.594539640] [kinect2_bridge_node]: using sensor defaults for ir intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1783770113.594581612] [kinect2_bridge_node]: using defaults for rotation and translation.
[kinect2_bridge_node-1] [WARN] [1783770113.594619248] [kinect2_bridge_node]: using defaults for depth shift.
[kinect2_bridge_node-1] [INFO] [1783770113.623323777] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1783770113.623425516] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1783770113.667011548] [kinect2_bridge_node]: waiting for clients to connect
[kinect2_bridge_node-1] [INFO] [1783770114.653201749] [kinect2_bridge_node]: client connected. starting device...
[kinect2_bridge_node-1] X Error of failed request:  BadAccess (attempt to access private resource denied)
[kinect2_bridge_node-1]   Major opcode of failed request:  149 (GLX)
[kinect2_bridge_node-1]   Minor opcode of failed request:  5 (X_GLXMakeCurrent)
[kinect2_bridge_node-1]   Serial number of failed request:  179
[kinect2_bridge_node-1]   Current serial number in output stream:  179
[kinect2_bridge_node-1] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[kinect2_bridge_node-1]   what():  failed to publish message: cannot publish data, at ./src/rmw_publish.cpp:62, at ./src/rcl/publisher.c:250
[ERROR] [kinect2_bridge_node-1]: process has died [pid 5965, exit code -6, cmd '/home/minimonk/ros2_ws/install/kinect2_bridge/lib/kinect2_bridge/kinect2_bridge_node --ros-args -r __node:=kinect2_bridge_node --params-file /tmp/launch_params_1tuxpdc2 --params-file /tmp/launch_params_o70wj41n --params-file /tmp/launch_params_mx2wb0bm --params-file /tmp/launch_params_inj7yjrz --params-file /tmp/launch_params_s8nw_wo7 --params-file /tmp/launch_params_d5_82p0q --params-file /tmp/launch_params_x6_8qj8q --params-file /tmp/launch_params_ganv8ba7 --params-file /tmp/launch_params_agwupcu2 --params-file /tmp/launch_params_d1hxewmf --params-file /tmp/launch_params_7jj5knby --params-file /tmp/launch_params_rx6ige18 --params-file /tmp/launch_params_xyw011zg --params-file /tmp/launch_params_1uetu4cb'].


^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[point_cloud_xyzrgb_node-2] [INFO] [1783770702.367083434] [rclcpp]: signal_handler(SIGINT/SIGTERM)
[INFO] [point_cloud_xyzrgb_node-2]: process has finished cleanly [pid 5967]

// default 를 cpu로 변경. i5-2520m / intel HD3000 이라 default cuda를 못해서 그런것 같음
$ vi ~/ros2_ws/src/kinect2_ros2/kinect2_bridge/launch/kinect2_bridge_launch.yaml
 30         - name: "depth_method"
 31           value: "cpu

$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml


[INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2026-07-11-20-52-56-290912-minimonk-HP-EliteBook-2760p-6475
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [kinect2_bridge_node-1]: process started with pid [6476]
[INFO] [point_cloud_xyzrgb_node-2]: process started with pid [6478]
[kinect2_bridge_node-1] [INFO] [1783770776.613633301] [kinect2_bridge_node]: parameter:
[kinect2_bridge_node-1]         base_name: kinect2
[kinect2_bridge_node-1]            sensor: default
[kinect2_bridge_node-1]         fps_limit: 30
[kinect2_bridge_node-1]        calib_path: /home/minimonk/ros2_ws/src/kinect2_ros2/kinect2_bridge/data/
[kinect2_bridge_node-1]           use_png: false
[kinect2_bridge_node-1]      jpeg_quality: 90
[kinect2_bridge_node-1]         png_level: 1
[kinect2_bridge_node-1]      depth_method: cpu
[kinect2_bridge_node-1]      depth_device: -1
[kinect2_bridge_node-1]        reg_method: default
[kinect2_bridge_node-1]        reg_device: -1
[kinect2_bridge_node-1]         max_depth: 12
[kinect2_bridge_node-1]         min_depth: 0.1
[kinect2_bridge_node-1]        queue_size: 5
[kinect2_bridge_node-1]  bilateral_filter: true
[kinect2_bridge_node-1] edge_aware_filter: true
[kinect2_bridge_node-1]        publish_tf: true
[kinect2_bridge_node-1]      base_name_tf: kinect2
[kinect2_bridge_node-1]    worker_threads: 4
[kinect2_bridge_node-1] libva info: VA-API version 1.14.0
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_14
[kinect2_bridge_node-1] libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
[kinect2_bridge_node-1] libva info: va_openDriver() returns 1
[kinect2_bridge_node-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
[kinect2_bridge_node-1] libva info: Found init function __vaDriverInit_1_10
[kinect2_bridge_node-1] libva info: va_openDriver() returns 0
[kinect2_bridge_node-1] [Error] [VaapiRgbPacketProcessorImpl] vaQueryConfigEntrypoints(display, VAProfileJPEGBaseline, entrypoints, &num_entrypoints): the requested VAProfile is not supported
[kinect2_bridge_node-1] [INFO] [1783770776.630651736] [kinect2_bridge_node]: Kinect2 devices found: 
[kinect2_bridge_node-1] [INFO] [1783770776.630722791] [kinect2_bridge_node]:   0: 501441643042 (selected)
[kinect2_bridge_node-1] [INFO] [1783770776.733462241] [kinect2_bridge_node]: starting kinect2
[kinect2_bridge_node-1] [INFO] [1783770777.156867396] [kinect2_bridge_node]: device serial: 501441643042
[kinect2_bridge_node-1] [INFO] [1783770777.156988330] [kinect2_bridge_node]: device firmware: 4.0.3911.0
[kinect2_bridge_node-1] [WARN] [1783770777.428281283] [kinect2_bridge_node]: using sensor defaults for color intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1783770777.428342033] [kinect2_bridge_node]: using sensor defaults for ir intrinsic parameters.
[kinect2_bridge_node-1] [WARN] [1783770777.428357102] [kinect2_bridge_node]: using defaults for rotation and translation.
[kinect2_bridge_node-1] [WARN] [1783770777.428370269] [kinect2_bridge_node]: using defaults for depth shift.
[kinect2_bridge_node-1] [INFO] [1783770777.457480023] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1783770777.457549605] [kinect2_bridge_node]: Using CPU registration method!
[kinect2_bridge_node-1] [INFO] [1783770777.508456495] [kinect2_bridge_node]: waiting for clients to connect
[kinect2_bridge_node-1] [INFO] [1783770778.496139475] [kinect2_bridge_node]: client connected. starting device...
[kinect2_bridge_node-1] [INFO] [1783770781.952362253] [kinect2_bridge_node]: depth processing: ~454.726ms (~2.19912Hz) publishing rate: ~2.99997Hz
[kinect2_bridge_node-1] [INFO] [1783770781.952462142] [kinect2_bridge_node]: color processing: ~13.8091ms (~72.4159Hz) publishing rate: ~11.9999Hz
[kinect2_bridge_node-1] [INFO] [1783770784.961367722] [kinect2_bridge_node]: depth processing: ~1429.33ms (~0.69963Hz) publishing rate: ~2.65869Hz
[kinect2_bridge_node-1] [INFO] [1783770784.961457981] [kinect2_bridge_node]: color processing: ~18.3239ms (~54.5735Hz) publishing rate: ~2.65869Hz
[kinect2_bridge_node-1] [INFO] [1783770787.965423923] [kinect2_bridge_node]: depth processing: ~1607.29ms (~0.622166Hz) publishing rate: ~2.33019Hz
[kinect2_bridge_node-1] [INFO] [1783770787.965502488] [kinect2_bridge_node]: color processing: ~14.5605ms (~68.6788Hz) publishing rate: ~2.33019Hz
[kinect2_bridge_node-1] [INFO] [1783770790.970785392] [kinect2_bridge_node]: depth processing: ~1747ms (~0.572411Hz) publishing rate: ~1.99643Hz
[kinect2_bridge_node-1] [INFO] [1783770790.971731954] [kinect2_bridge_node]: color processing: ~17.1032ms (~58.4687Hz) publishing rate: ~1.99643Hz
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[point_cloud_xyzrgb_node-2] [INFO] [1783770792.809586338] [rclcpp]: signal_handler(SIGINT/SIGTERM)
[kinect2_bridge_node-1] [INFO] [1783770792.811250097] [rclcpp]: signal_handler(SIGINT/SIGTERM)
[INFO] [point_cloud_xyzrgb_node-2]: process has finished cleanly [pid 6478]
[INFO] [kinect2_bridge_node-1]: process has finished cleanly [pid 6476]


$ ros2 topic list
/kinect2/qhd/camera_info
/kinect2/qhd/image_color_rect
/kinect2/qhd/image_depth_rect
/kinect2/qhd/points
/parameter_events
/rosout

$ ros2 topic list
/kinect2/hd/camera_info
/kinect2/hd/image_color
/kinect2/hd/image_color/compressed
/kinect2/hd/image_color_rect
/kinect2/hd/image_color_rect/compressed
/kinect2/hd/image_depth_rect
/kinect2/hd/image_depth_rect/compressed
/kinect2/hd/image_mono
/kinect2/hd/image_mono/compressed
/kinect2/hd/image_mono_rect
/kinect2/hd/image_mono_rect/compressed
/kinect2/qhd/camera_info
/kinect2/qhd/image_color
/kinect2/qhd/image_color/compressed
/kinect2/qhd/image_color_rect
/kinect2/qhd/image_color_rect/compressed
/kinect2/qhd/image_depth_rect
/kinect2/qhd/image_depth_rect/compressed
/kinect2/qhd/image_mono
/kinect2/qhd/image_mono/compressed
/kinect2/qhd/image_mono_rect
/kinect2/qhd/image_mono_rect/compressed
/kinect2/qhd/points
/kinect2/sd/camera_info
/kinect2/sd/image_color_rect
/kinect2/sd/image_color_rect/compressed
/kinect2/sd/image_depth
/kinect2/sd/image_depth/compressed
/kinect2/sd/image_depth_rect
/kinect2/sd/image_depth_rect/compressed
/kinect2/sd/image_ir
/kinect2/sd/image_ir/compressed
/kinect2/sd/image_ir_rect
/kinect2/sd/image_ir_rect/compressed
/parameter_events
/rosout
/tf_static


$ ros2 run tf2_ros tf2_echo kinect2_link kinect2_rgb_optical_frame
[INFO] [1783772121.176615605] [tf2_echo]: Waiting for transform kinect2_link ->  kinect2_rgb_optical_frame: Invalid frame ID "kinect2_link" passed to canTransform argument target_frame - frame does not exist
At time 0.0
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion (xyzw) [0.000, 0.000, 0.000, 1.000]
- Rotation: in RPY (radian) [0.000, -0.000, 0.000]
- Rotation: in RPY (degree) [0.000, -0.000, 0.000]
- Matrix:
  1.000  0.000  0.000  0.000
  0.000  1.000  0.000  0.000
  0.000  0.000  1.000  0.000
  0.000  0.000  0.000  1.000

 

 

$ ros2 topic hz /kinect2/sd/image_depth
WARNING: topic [/kinect2/sd/image_depth] does not appear to be published yet
average rate: 1.358
min: 0.555s max: 1.017s std dev: 0.20108s window: 3
average rate: 1.535
min: 0.472s max: 1.017s std dev: 0.19011s window: 5
average rate: 1.630
min: 0.472s max: 1.017s std dev: 0.17155s window: 7
average rate: 1.681
min: 0.472s max: 1.017s std dev: 0.15538s window: 9

$ ros2 topic echo /kinect2/sd/image_depth
header:
  stamp:
    sec: 1783772639
    nanosec: 100324833
  frame_id: kinect2_ir_optical_frame
height: 424
width: 512
encoding: 16UC1
is_bigendian: 0
step: 1024
data:
- 0
- 0
- 0
- 0
- 59
- 11
- 166
- 35
- 160
- 8
- 0
- 0
- 221
- 8
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 63
- 36
- 13
- 9
- 230
- 36
- 85
- 37
- 223
- 36
- 43
- 10
- 176
- 36
- 164
- 36
- 231
- 11
- 65
- 37
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 151
- 9
- 253
- 37
- 233
- 37
- 119
- 9
- 54
- 11
- 0
- 0
- 0
- 0
- 37
- 11
- 118
- 38
- 0
- 0
- 139
- 38
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 149
- 11
- 0
- 0
- 0
- 0
- 126
- 10
- 0
- 0
- 0
- 0
- 0
- 0
- 157
- 11
- 118
- 38
- 0
- 0
- 0
- 0
- 0
- 0
- 52
- 11
- 36
- 40
- 133
- 40
- 81
- 11
- 0
- 0
- 184
- 11
- 0
- 0
- 0
- 0
- 171
- 11
- '...'
---

 

$ ros2 topic echo /tf_static --once
transforms:
- header:
    stamp:
      sec: 1783772796
      nanosec: 755398531
    frame_id: kinect2_link
  child_frame_id: kinect2_rgb_optical_frame
  transform:
    translation:
      x: 0.0
      y: 0.0
      z: 0.0
    rotation:
      x: 0.0
      y: 0.0
      z: 0.0
      w: 1.0
- header:
    stamp:
      sec: 1783772796
      nanosec: 744797076
    frame_id: kinect2_rgb_optical_frame
  child_frame_id: kinect2_ir_optical_frame
  transform:
    translation:
      x: 0.0
      y: 0.0
      z: 0.0
    rotation:
      x: 0.0
      y: 0.0
      z: 0.0
      w: 1.0
---

 

$ ros2 topic hz /kinect2/qhd/points
average rate: 0.092
min: 10.424s max: 11.263s std dev: 0.41953s window: 2
average rate: 0.127
min: 1.987s max: 11.263s std dev: 4.18908s window: 3
average rate: 0.149
min: 1.987s max: 11.263s std dev: 4.16241s window: 4
average rate: 0.148
min: 1.987s max: 11.263s std dev: 3.72348s window: 5

 

display - Add

 

rviz+default_plugins 에서 추가

그리고 topic 연결해주면 되는데

 

솔찍히 두번째 탭인 by topic이 더 편하게 고를수 있다.

 

 

 

* 할거

아래부턴 먼가 잘 안되서 일단 나중에..

rviz2
ros2 run tf2_tools view_frames
ros2 run tf2_ros tf2_echo kinect2_link kinect2_rgb_optical_frame


ros2 launch rtabmap_launch rtabmap.launch.py \
    rgb_topic:=/kinect2/color/image \
    depth_topic:=/kinect2/depth/image \
    camera_info_topic:=/kinect2/color/camera_info