$ ros2 launch kinect2_bridge kinect2_bridge_launch.yaml [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-22-23-16-49-714642-minimonk-900X3N-4099 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge_node-1]: process started with pid [4102] [INFO] [point_cloud_xyzrgb_node-2]: process started with pid [4103] [kinect2_bridge_node-1] [INFO] [1747923410.103073698] [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/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.20.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_20 [kinect2_bridge_node-1] libva info: va_openDriver() returns 0 [kinect2_bridge_node-1] [INFO] [1747923410.268596885] [kinect2_bridge_node]: Kinect2 devices found: [kinect2_bridge_node-1] [INFO] [1747923410.268646704] [kinect2_bridge_node]: 0: 501441643042 (selected) [kinect2_bridge_node-1] [INFO] [1747923410.353586296] [kinect2_bridge_node]: starting kinect2 [kinect2_bridge_node-1] [INFO] [1747923410.702466968] [kinect2_bridge_node]: device serial: 501441643042 [kinect2_bridge_node-1] [INFO] [1747923410.702527385] [kinect2_bridge_node]: device firmware: 4.0.3911.0 [kinect2_bridge_node-1] [WARN] [1747923410.943823711] [kinect2_bridge_node]: using sensor defaults for color intrinsic parameters. [kinect2_bridge_node-1] [WARN] [1747923410.943872088] [kinect2_bridge_node]: using sensor defaults for ir intrinsic parameters. [kinect2_bridge_node-1] [WARN] [1747923410.943884124] [kinect2_bridge_node]: using defaults for rotation and translation. [kinect2_bridge_node-1] [WARN] [1747923410.943893248] [kinect2_bridge_node]: using defaults for depth shift. [kinect2_bridge_node-1] [INFO] [1747923410.957002369] [kinect2_bridge_node]: Using CPU registration method! [kinect2_bridge_node-1] [INFO] [1747923410.957063941] [kinect2_bridge_node]: Using CPU registration method! [kinect2_bridge_node-1] [INFO] [1747923410.989757825] [kinect2_bridge_node]: waiting for clients to connect [kinect2_bridge_node-1] [INFO] [1747923435.975438490] [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: 186 [kinect2_bridge_node-1] Current serial number in output stream: 186 [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:66, at ./src/rcl/publisher.c:284 [ERROR] [kinect2_bridge_node-1]: process has died [pid 4102, exit code -6, cmd '/home/minimonk/src/kinect2_ros2/install/kinect2_bridge/lib/kinect2_bridge/kinect2_bridge_node --ros-args -r __node:=kinect2_bridge_node --params-file /tmp/launch_params_iwksxu1_ --params-file /tmp/launch_params_1kuvaz_1 --params-file /tmp/launch_params_01a053mv --params-file /tmp/launch_params_zdcsdjyg --params-file /tmp/launch_params_yuzabhyr --params-file /tmp/launch_params_19tmdd6j --params-file /tmp/launch_params_hba7y_ha --params-file /tmp/launch_params_cz5d_5a0 --params-file /tmp/launch_params_zdnm6_6f --params-file /tmp/launch_params_0c2pkcpz --params-file /tmp/launch_params_z9p0frw3 --params-file /tmp/launch_params_93jygjmd --params-file /tmp/launch_params_gbcl6pwo --params-file /tmp/launch_params_h2ixukh_'].
X 에러가 나서 혹시나 해 로그아웃했다가 wayland에서 x.org로 변경해서 했는데 흐음..
안되는건 여전하네. 모르겠다! ㅠㅠ
[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: 152 (GLX) [kinect2_bridge_node-1] Minor opcode of failed request: 5 (X_GLXMakeCurrent) [kinect2_bridge_node-1] Serial number of failed request: 189 [kinect2_bridge_node-1] Current serial number in output stream: 189 [kinect2_bridge_node-1] terminate called after throwing an instance of 'std::system_error' [kinect2_bridge_node-1] what(): Invalid argument [ERROR] [kinect2_bridge_node-1]: process has died [pid 7073, exit code -6, cmd '/home/minimonk/src/kinect2_ros2/install/kinect2_bridge/lib/kinect2_bridge/kinect2_bridge_node --ros-args -r __node:=kinect2_bridge_node --params-file /tmp/launch_params_y5bvhzyw --params-file /tmp/launch_params_gxirdqdy --params-file /tmp/launch_params_hp4gbet8 --params-file /tmp/launch_params_08p1acor --params-file /tmp/launch_params_lmxr_tz6 --params-file /tmp/launch_params_t_ro1l1e --params-file /tmp/launch_params_lijjyb5p --params-file /tmp/launch_params_kyd4zb0u --params-file /tmp/launch_params_4apk49ym --params-file /tmp/launch_params_01ocg_zs --params-file /tmp/launch_params_bz6p08h0 --params-file /tmp/launch_params_htcp1tsf --params-file /tmp/launch_params_7qjvyjg0 --params-file /tmp/launch_params_nqmk926s']. ^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT) [point_cloud_xyzrgb_node-2] [INFO] [1747923700.776770005] [rclcpp]: signal_handler(signum=2) [INFO] [point_cloud_xyzrgb_node-2]: process has finished cleanly [pid 7074]
ament_target_dependencies(synchronize_wo cv_bridge) When using ament_target_dependencies you should not have to explicitly list the include and library files. Also not when you use target_link_libraries(synchronize_wo cv_bridge::cv_bridge)
$ ros2 launch kinect2_bridge kinect2_bridge.launch.py [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-20-23-46-49-643834-minimonk-900X3N-7825 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge-1]: process started with pid [7842] [INFO] [component_container-2]: process started with pid [7843] [kinect2_bridge-1] [INFO] [1747752410.192080072] [kinect2_bridge]: parameter: [kinect2_bridge-1] base_name: kinect2 [kinect2_bridge-1] sensor: 004436460547 [kinect2_bridge-1] fps_limit: -1 [kinect2_bridge-1] calib_path: /home/minimonk/src/kinect2_ros2/kinect2_bridge/data/ [kinect2_bridge-1] use_png: false [kinect2_bridge-1] jpeg_quality: 90 [kinect2_bridge-1] png_level: 1 [kinect2_bridge-1] depth_method: default [kinect2_bridge-1] depth_device: -1 [kinect2_bridge-1] reg_method: default [kinect2_bridge-1] reg_device: -1 [kinect2_bridge-1] max_depth: 12 [kinect2_bridge-1] min_depth: 0.1 [kinect2_bridge-1] queue_size: 5 [kinect2_bridge-1] bilateral_filter: true [kinect2_bridge-1] edge_aware_filter: true [kinect2_bridge-1] publish_tf: true [kinect2_bridge-1] base_name_tf: kinect2 [kinect2_bridge-1] worker_threads: 4 [component_container-2] [INFO] [1747752410.226624281] [container]: Load Library: /opt/ros/jazzy/lib/libdepth_image_proc.so [component_container-2] [INFO] [1747752410.334243907] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode> [component_container-2] [INFO] [1747752410.334300468] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::CropForemostNode> [component_container-2] [INFO] [1747752410.334307756] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::DisparityNode> [component_container-2] [INFO] [1747752410.334312374] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzNode> [component_container-2] [INFO] [1747752410.334318127] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzRadialNode> [component_container-2] [INFO] [1747752410.334323834] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziNode> [component_container-2] [INFO] [1747752410.334329282] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziRadialNode> [component_container-2] [INFO] [1747752410.334334605] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode> [component_container-2] [INFO] [1747752410.334340889] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode> [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/pointcloud' in container '/container' [kinect2_bridge-1] libva info: VA-API version 1.20.0 [kinect2_bridge-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so [kinect2_bridge-1] libva info: Found init function __vaDriverInit_1_20 [kinect2_bridge-1] libva info: va_openDriver() returns 0 [kinect2_bridge-1] [Info] [VaapiRgbPacketProcessorImpl] driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 6 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found 0 devices [kinect2_bridge-1] [ERROR] [1747752410.372478119] [kinect2_bridge]: no Kinect2 devices found! [INFO] [kinect2_bridge-1]: process has finished cleanly [pid 7842] ^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT) [component_container-2] [INFO] [1747752410.727331969] [rclcpp]: signal_handler(signum=2) [INFO] [component_container-2]: process has finished cleanly [pid 7843] ^[[Aminimonk@minimonk-900X3N:~/src/kinect2_ros2$ ros2 launch kinect2_bridge kinect2_bridge.launch file 'kinect2_bridge.launch' was not found in the share directory of package 'kinect2_bridge' which is at '/opt/ros/jazzy/share/kinect2_bridge'
$ ros2 launch kinect2_bridge kinect2_bridge.launch.py - malformed launch argument '-', expected format ':=' minimonk@minimonk-900X3N:~/src/kinect2_ros2$ ros2 launch kinect2_bridge kinect2_bridge.launch.py [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-20-23-47-06-104462-minimonk-900X3N-7896 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge-1]: process started with pid [7913] [INFO] [component_container-2]: process started with pid [7914] [kinect2_bridge-1] [INFO] [1747752426.554975848] [kinect2_bridge]: parameter: [kinect2_bridge-1] base_name: kinect2 [kinect2_bridge-1] sensor: 004436460547 [kinect2_bridge-1] fps_limit: -1 [kinect2_bridge-1] calib_path: /home/minimonk/src/kinect2_ros2/kinect2_bridge/data/ [kinect2_bridge-1] use_png: false [kinect2_bridge-1] jpeg_quality: 90 [kinect2_bridge-1] png_level: 1 [kinect2_bridge-1] depth_method: default [kinect2_bridge-1] depth_device: -1 [kinect2_bridge-1] reg_method: default [kinect2_bridge-1] reg_device: -1 [kinect2_bridge-1] max_depth: 12 [kinect2_bridge-1] min_depth: 0.1 [kinect2_bridge-1] queue_size: 5 [kinect2_bridge-1] bilateral_filter: true [kinect2_bridge-1] edge_aware_filter: true [kinect2_bridge-1] publish_tf: true [kinect2_bridge-1] base_name_tf: kinect2 [kinect2_bridge-1] worker_threads: 4 [component_container-2] [INFO] [1747752426.621145906] [container]: Load Library: /opt/ros/jazzy/lib/libdepth_image_proc.so [component_container-2] [INFO] [1747752426.706050975] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706103036] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706109780] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706114307] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706119654] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706124832] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706130184] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706135440] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752426.706140757] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate [kinect2_bridge-1] libva info: VA-API version 1.20.0 [kinect2_bridge-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so [kinect2_bridge-1] libva info: Found init function __vaDriverInit_1_20 [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/pointcloud' in container '/container' [kinect2_bridge-1] libva info: va_openDriver() returns 0 [kinect2_bridge-1] [Info] [VaapiRgbPacketProcessorImpl] driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 6 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found 0 devices [kinect2_bridge-1] [ERROR] [1747752426.730865489] [kinect2_bridge]: no Kinect2 devices found! [INFO] [kinect2_bridge-1]: process has finished cleanly [pid 7913] ^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT) [component_container-2] [INFO] [1747752437.540751727] [rclcpp]: signal_handler(signum=2) [INFO] [component_container-2]: process has finished cleanly [pid 7914] minimonk@minimonk-900X3N:~/src/kinect2_ros2$ ros2 launch kinect2_bridge kinect2_bridge.launch.py [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-20-23-47-37-594228-minimonk-900X3N-7960 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge-1]: process started with pid [7982] [INFO] [component_container-2]: process started with pid [7983] [component_container-2] [INFO] [1747752458.147532554] [container]: Load Library: /opt/ros/jazzy/lib/libdepth_image_proc.so [component_container-2] [INFO] [1747752458.226638107] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226688745] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226695944] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226700120] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226705339] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226710495] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226715741] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226720836] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752458.226726217] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/pointcloud' in container '/container' [kinect2_bridge-1] [INFO] [1747752461.903116963] [kinect2_bridge]: parameter: [kinect2_bridge-1] base_name: kinect2 [kinect2_bridge-1] sensor: 004436460547 [kinect2_bridge-1] fps_limit: -1 [kinect2_bridge-1] calib_path: /home/minimonk/src/kinect2_ros2/kinect2_bridge/data/ [kinect2_bridge-1] use_png: false [kinect2_bridge-1] jpeg_quality: 90 [kinect2_bridge-1] png_level: 1 [kinect2_bridge-1] depth_method: default [kinect2_bridge-1] depth_device: -1 [kinect2_bridge-1] reg_method: default [kinect2_bridge-1] reg_device: -1 [kinect2_bridge-1] max_depth: 12 [kinect2_bridge-1] min_depth: 0.1 [kinect2_bridge-1] queue_size: 5 [kinect2_bridge-1] bilateral_filter: true [kinect2_bridge-1] edge_aware_filter: true [kinect2_bridge-1] publish_tf: true [kinect2_bridge-1] base_name_tf: kinect2 [kinect2_bridge-1] worker_threads: 4 [kinect2_bridge-1] libva info: VA-API version 1.20.0 [kinect2_bridge-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so [kinect2_bridge-1] libva info: Found init function __vaDriverInit_1_20 [kinect2_bridge-1] libva info: va_openDriver() returns 0 [kinect2_bridge-1] [Info] [VaapiRgbPacketProcessorImpl] driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 9 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found valid Kinect v2 @1:7 with serial 501441643042 [kinect2_bridge-1] [Info] [Freenect2Impl] found 1 devices [kinect2_bridge-1] [INFO] [1747752462.073844064] [kinect2_bridge]: Kinect2 devices found: [kinect2_bridge-1] [INFO] [1747752462.073923803] [kinect2_bridge]: 0: 501441643042 [kinect2_bridge-1] [ERROR] [1747752462.073942832] [kinect2_bridge]: Device with serial '004436460547' not found! [INFO] [kinect2_bridge-1]: process has finished cleanly [pid 7982]
step 6. 파일을 수정한다. (둘다)
$ sudo vi ./src/kinect2_bridge/launch/kinect2_bridge.launch.py $ sudo vi ./share/kinect2_bridge/launch/kinect2_bridge.launch.py
import os
from ament_index_python import get_package_share_directory
from launch import LaunchDescription from launch_ros.actions import Node, LoadComposableNodes, ComposableNodeContainer from launch_ros.descriptions import ComposableNode
$ ros2 launch kinect2_bridge kinect2_bridge.launch.py [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-20-23-56-08-038469-minimonk-900X3N-8222 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge-1]: process started with pid [8239] [INFO] [component_container-2]: process started with pid [8240] [kinect2_bridge-1] [INFO] [1747752968.497895081] [kinect2_bridge]: parameter: [kinect2_bridge-1] base_name: kinect2 [kinect2_bridge-1] sensor: 004436460547 [kinect2_bridge-1] fps_limit: -1 [kinect2_bridge-1] calib_path: /home/minimonk/src/kinect2_ros2/kinect2_bridge/data/ [kinect2_bridge-1] use_png: false [kinect2_bridge-1] jpeg_quality: 90 [kinect2_bridge-1] png_level: 1 [kinect2_bridge-1] depth_method: default [kinect2_bridge-1] depth_device: -1 [kinect2_bridge-1] reg_method: default [kinect2_bridge-1] reg_device: -1 [kinect2_bridge-1] max_depth: 12 [kinect2_bridge-1] min_depth: 0.1 [kinect2_bridge-1] queue_size: 5 [kinect2_bridge-1] bilateral_filter: true [kinect2_bridge-1] edge_aware_filter: true [kinect2_bridge-1] publish_tf: true [kinect2_bridge-1] base_name_tf: kinect2 [kinect2_bridge-1] worker_threads: 4 [component_container-2] [INFO] [1747752968.582669845] [container]: Load Library: /opt/ros/jazzy/lib/libdepth_image_proc.so [kinect2_bridge-1] libva info: VA-API version 1.20.0 [kinect2_bridge-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so [kinect2_bridge-1] libva info: Found init function __vaDriverInit_1_20 [kinect2_bridge-1] libva info: va_openDriver() returns 0 [kinect2_bridge-1] [Info] [VaapiRgbPacketProcessorImpl] driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 9 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found valid Kinect v2 @1:7 with serial 501441643042 [kinect2_bridge-1] [Info] [Freenect2Impl] found 1 devices [kinect2_bridge-1] [INFO] [1747752968.679076989] [kinect2_bridge]: Kinect2 devices found: [kinect2_bridge-1] [INFO] [1747752968.679151068] [kinect2_bridge]: 0: 501441643042 [kinect2_bridge-1] [ERROR] [1747752968.679166289] [kinect2_bridge]: Device with serial '004436460547' not found! [component_container-2] [INFO] [1747752968.707510234] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::ConvertMetricNode> [component_container-2] [INFO] [1747752968.707583082] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::CropForemostNode> [component_container-2] [INFO] [1747752968.707598835] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::DisparityNode> [component_container-2] [INFO] [1747752968.707605559] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzNode> [component_container-2] [INFO] [1747752968.707613423] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzRadialNode> [component_container-2] [INFO] [1747752968.707620795] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziNode> [component_container-2] [INFO] [1747752968.707628710] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyziRadialNode> [component_container-2] [INFO] [1747752968.707636427] [container]: Found class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode> [component_container-2] [INFO] [1747752968.707644371] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depth_image_proc::PointCloudXyzrgbNode> [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/pointcloud' in container '/container' [INFO] [kinect2_bridge-1]: process has finished cleanly [pid 8239]
둘다 수정하였을 경우
$ ros2 launch kinect2_bridge kinect2_bridge.launch.py [INFO] [launch]: All log files can be found below /home/minimonk/.ros/log/2025-05-20-23-56-39-190964-minimonk-900X3N-8308 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [kinect2_bridge-1]: process started with pid [8325] [INFO] [component_container-2]: process started with pid [8326] [kinect2_bridge-1] [INFO] [1747752999.650865409] [kinect2_bridge]: parameter: [kinect2_bridge-1] base_name: kinect2 [kinect2_bridge-1] sensor: 501441643042 [kinect2_bridge-1] fps_limit: -1 [kinect2_bridge-1] calib_path: /home/minimonk/src/kinect2_ros2/kinect2_bridge/data/ [kinect2_bridge-1] use_png: false [kinect2_bridge-1] jpeg_quality: 90 [kinect2_bridge-1] png_level: 1 [kinect2_bridge-1] depth_method: default [kinect2_bridge-1] depth_device: -1 [kinect2_bridge-1] reg_method: default [kinect2_bridge-1] reg_device: -1 [kinect2_bridge-1] max_depth: 12 [kinect2_bridge-1] min_depth: 0.1 [kinect2_bridge-1] queue_size: 5 [kinect2_bridge-1] bilateral_filter: true [kinect2_bridge-1] edge_aware_filter: true [kinect2_bridge-1] publish_tf: true [kinect2_bridge-1] base_name_tf: kinect2 [kinect2_bridge-1] worker_threads: 4 [component_container-2] [INFO] [1747752999.717016720] [container]: Load Library: /opt/ros/jazzy/lib/libdepth_image_proc.so [kinect2_bridge-1] libva info: VA-API version 1.20.0 [kinect2_bridge-1] libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so [kinect2_bridge-1] libva info: Found init function __vaDriverInit_1_20 [kinect2_bridge-1] libva info: va_openDriver() returns 0 [kinect2_bridge-1] [Info] [VaapiRgbPacketProcessorImpl] driver: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 9 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found valid Kinect v2 @1:7 with serial 501441643042 [kinect2_bridge-1] [Info] [Freenect2Impl] found 1 devices [kinect2_bridge-1] [INFO] [1747752999.802972778] [kinect2_bridge]: Kinect2 devices found: [kinect2_bridge-1] [INFO] [1747752999.803048663] [kinect2_bridge]: 0: 501441643042 (selected) [component_container-2] [INFO] [1747752999.817716799] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817762782] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817772723] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817781495] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817789789] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817798000] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817806268] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817814680] [container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-2] [INFO] [1747752999.817823560] [container]: Instantiate class: rclcpp_components::NodeFactoryTemplate [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/pointcloud' in container '/container' [kinect2_bridge-1] [Info] [Freenect2Impl] re-enumerating devices after reset [kinect2_bridge-1] [Info] [Freenect2Impl] enumerating devices... [kinect2_bridge-1] [Info] [Freenect2Impl] 9 usb devices connected [kinect2_bridge-1] [Info] [Freenect2Impl] found valid Kinect v2 @2:10 with serial 501441643042 [kinect2_bridge-1] [Info] [Freenect2Impl] found 1 devices [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] opening... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 20*16384 ir: 60*8*33792 [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] opened [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] starting... [kinect2_bridge-1] [INFO] [1747753001.475900709] [kinect2_bridge]: starting kinect2 [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] submitting rgb transfers... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] submitting depth transfers... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] started [kinect2_bridge-1] [INFO] [1747753002.096109296] [kinect2_bridge]: device serial: 501441643042 [kinect2_bridge-1] [INFO] [1747753002.096174412] [kinect2_bridge]: device firmware: 4.0.3911.0 [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] stopping... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] canceling rgb transfers... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] canceling depth transfers... [kinect2_bridge-1] [Info] [Freenect2DeviceImpl] stopped [kinect2_bridge-1] [INFO] [1747753002.311498664] [kinect2_bridge]: default ir camera parameters: [kinect2_bridge-1] [INFO] [1747753002.311621920] [kinect2_bridge]: fx: 365.719, fy: 365.719, cx: 259.505, cy: 210.078 [kinect2_bridge-1] [INFO] [1747753002.311683407] [kinect2_bridge]: k1: 0.0949663, k2: -0.274613, p1: 0, p2: 0, k3: 0.093757 [kinect2_bridge-1] [INFO] [1747753002.311724585] [kinect2_bridge]: default color camera parameters: [kinect2_bridge-1] [INFO] [1747753002.311769717] [kinect2_bridge]: fx: 1081.37, fy: 1081.37, cx: 959.5, cy: 539.5 [kinect2_bridge-1] [WARN] [1747753002.314247853] [kinect2_bridge]: using sensor defaults for color intrinsic parameters. [kinect2_bridge-1] [WARN] [1747753002.314319452] [kinect2_bridge]: using sensor defaults for ir intrinsic parameters. [kinect2_bridge-1] [WARN] [1747753002.314351830] [kinect2_bridge]: using defaults for rotation and translation. [kinect2_bridge-1] [WARN] [1747753002.314370819] [kinect2_bridge]: using defaults for depth shift. [kinect2_bridge-1] Using CPU registration method! [kinect2_bridge-1] Using CPU registration method! [kinect2_bridge-1] [INFO] [1747753002.374909053] [kinect2_bridge]: waiting for clients to connect
step 8. 먼가 실행해본다. (실패)
$ ros2 launch kinect2_bridge rtabmap.launch.py file 'rtabmap.launch.py' was not found in the share directory of package 'kinect2_bridge' which is at '/opt/ros/jazzy/share/kinect2_bridge'
step 9. 깔아본다.
$ apt-cache search rtabmap ros-jazzy-rtabmap - RTAB-Map's standalone library. ros-jazzy-rtabmap-conversions - RTAB-Map's conversions package. ros-jazzy-rtabmap-conversions-dbgsym - debug symbols for ros-jazzy-rtabmap-conversions ros-jazzy-rtabmap-dbgsym - debug symbols for ros-jazzy-rtabmap ros-jazzy-rtabmap-demos - RTAB-Map's demo launch files. ros-jazzy-rtabmap-examples - RTAB-Map's example launch files. ros-jazzy-rtabmap-launch - RTAB-Map's main launch files. ros-jazzy-rtabmap-msgs - RTAB-Map's msgs package. ros-jazzy-rtabmap-msgs-dbgsym - debug symbols for ros-jazzy-rtabmap-msgs ros-jazzy-rtabmap-odom - RTAB-Map's odometry package. ros-jazzy-rtabmap-odom-dbgsym - debug symbols for ros-jazzy-rtabmap-odom ros-jazzy-rtabmap-python - RTAB-Map's python package. ros-jazzy-rtabmap-ros - RTAB-Map Stack ros-jazzy-rtabmap-rviz-plugins - RTAB-Map's rviz plugins. ros-jazzy-rtabmap-rviz-plugins-dbgsym - debug symbols for ros-jazzy-rtabmap-rviz-plugins ros-jazzy-rtabmap-slam - RTAB-Map's SLAM package. ros-jazzy-rtabmap-slam-dbgsym - debug symbols for ros-jazzy-rtabmap-slam ros-jazzy-rtabmap-sync - RTAB-Map's synchronization package. ros-jazzy-rtabmap-sync-dbgsym - debug symbols for ros-jazzy-rtabmap-sync ros-jazzy-rtabmap-util - RTAB-Map's various useful nodes and nodelets. ros-jazzy-rtabmap-util-dbgsym - debug symbols for ros-jazzy-rtabmap-util ros-jazzy-rtabmap-viz - RTAB-Map's visualization package. ros-jazzy-rtabmap-viz-dbgsym - debug symbols for ros-jazzy-rtabmap-viz
$ sudo apt-get install ros-jazzy-rtabmap Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libamd3 libbtf2 libcamd3 libccolamd3 libcholmod5 libcolamd3 libcxsparse4 libgraphblas-dev libgraphblas7 libklu2 libldl3 libparu0 librbio4 libspex2 libspqr4 libsuitesparse-dev libsuitesparse-mongoose3 libsuitesparseconfig7 libumfpack6 ros-jazzy-gtsam ros-jazzy-libg2o ros-jazzy-libnabo ros-jazzy-libpointmatcher The following NEW packages will be installed: libamd3 libbtf2 libcamd3 libccolamd3 libcholmod5 libcolamd3 libcxsparse4 libgraphblas-dev libgraphblas7 libklu2 libldl3 libparu0 librbio4 libspex2 libspqr4 libsuitesparse-dev libsuitesparse-mongoose3 libsuitesparseconfig7 libumfpack6 ros-jazzy-gtsam ros-jazzy-libg2o ros-jazzy-libnabo ros-jazzy-libpointmatcher ros-jazzy-rtabmap 0 upgraded, 24 newly installed, 0 to remove and 1 not upgraded. Need to get 40.6 MB of archives. After this operation, 258 MB of additional disk space will be used. Do you want to continue? [Y/n]
$ ros2 launch kinect2_bridge rtabmap.launch.py file 'rtabmap.launch.py' was not found in the share directory of package 'kinect2_bridge' which is at '/opt/ros/jazzy/share/kinect2_bridge'
$ colcon Command 'colcon' not found, but can be installed with: sudo apt install colcon
$ sudo apt install colcon [sudo] password for minimonk: Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata libjs-jquery-tablesorter libjs-jquery-throttle-debounce python3-colcon-argcomplete python3-colcon-bash python3-colcon-cd python3-colcon-cmake python3-colcon-core python3-colcon-defaults python3-colcon-devtools python3-colcon-library-path python3-colcon-metadata python3-colcon-notification python3-colcon-output python3-colcon-package-information python3-colcon-package-selection python3-colcon-parallel-executor python3-colcon-pkg-config python3-colcon-python-setup-py python3-colcon-recursive-crawl python3-colcon-ros python3-colcon-test-result python3-colcon-zsh python3-coverage python3-distlib python3-notify2 python3-pytest-cov Suggested packages: python3-pytest-repeat python3-pytest-rerunfailures python-coverage-doc The following NEW packages will be installed: colcon libjs-jquery-hotkeys libjs-jquery-isonscreen libjs-jquery-metadata libjs-jquery-tablesorter libjs-jquery-throttle-debounce python3-colcon-argcomplete python3-colcon-bash python3-colcon-cd python3-colcon-cmake python3-colcon-core python3-colcon-defaults python3-colcon-devtools python3-colcon-library-path python3-colcon-metadata python3-colcon-notification python3-colcon-output python3-colcon-package-information python3-colcon-package-selection python3-colcon-parallel-executor python3-colcon-pkg-config python3-colcon-python-setup-py python3-colcon-recursive-crawl python3-colcon-ros python3-colcon-test-result python3-colcon-zsh python3-coverage python3-distlib python3-notify2 python3-pytest-cov 0 upgraded, 30 newly installed, 0 to remove and 1 not upgraded. Need to get 932 kB of archives. After this operation, 4,939 kB of additional disk space will be used. Do you want to continue? [Y/n]
$ sudo apt-cache search ros | grep ^ros | grep desktop ros-jazzy-clearpath-desktop - Packages for working with Clearpath Platforms from a ROS 2 desktop. ros-jazzy-desktop - A package which extends 'ros_base' and includes high level packages like vizualization tools and demos. ros-jazzy-desktop-full - Provides a 'batteries included' experience to novice users. ros-jazzy-leo - Metapackage of software for Leo Rover common to the robot and ROS desktop ros-jazzy-leo-desktop - Metapackage of software for operating Leo Rover from ROS desktop ros-jazzy-turtlebot4-desktop - Turtlebot4 Desktop Metapackage ros-rolling-desktop - A package which extends 'ros_base' and includes high level packages like vizualization tools and demos. ros-rolling-desktop-full - Provides a 'batteries included' experience to novice users. ros-rolling-leo - Metapackage of software for Leo Rover common to the robot and ROS desktop ros-rolling-leo-desktop - Metapackage of software for operating Leo Rover from ROS desktop
const float *depth_data = (float*)depth->data; const unsigned int *rgb_data = (unsigned int*)rgb->data; float *undistorted_data = (float*)undistorted->data; unsigned int *registered_data = (unsigned int*)registered->data; const int *map_dist = distort_map; const float *map_x = depth_to_color_map_x; const int *map_yi = depth_to_color_map_yi;
const int size_depth = 512 * 424; const int size_color = 1920 * 1080; const float color_cx = color.cx + 0.5f; // 0.5f added for later rounding
// size of filter map with a border of filter_height_half on top and bottom so that no check for borders is needed. // since the color image is wide angle no border to the sides is needed. const int size_filter_map = size_color + 1920 * filter_height_half * 2; // offset to the important data const int offset_filter_map = 1920 * filter_height_half;
// map for storing the min z values used for each color pixel float *filter_map = NULL; // pointer to the beginning of the important data float *p_filter_map = NULL;
// map for storing the color offset for each depth pixel int *depth_to_c_off = color_depth_map ? color_depth_map : new int[size_depth]; int *map_c_off = depth_to_c_off;
// initializing the depth_map with values outside of the Kinect2 range if(enable_filter){ filter_map = bigdepth ? (float*)bigdepth->data : new float[size_filter_map]; p_filter_map = filter_map + offset_filter_map;
/* Fix depth distortion, and compute pixel to use from 'rgb' based on depth measurement, * stored as x/y offset in the rgb data. */
// iterating over all pixels from undistorted depth and registered color image // the four maps have the same structure as the images, so their pointers are increased each iteration as well for(int i = 0; i < size_depth; ++i, ++undistorted_data, ++map_dist, ++map_x, ++map_yi, ++map_c_off){ // getting index of distorted depth pixel const int index = *map_dist;
// check if distorted depth pixel is outside of the depth image if(index < 0){ *map_c_off = -1; *undistorted_data = 0; continue; }
// getting depth value for current pixel const float z = depth_data[index]; *undistorted_data = z;
// checking for invalid depth value if(z <= 0.0f){ *map_c_off = -1; continue; }
// calculating x offset for rgb image based on depth value const float rx = (*map_x + (color.shift_m / z)) * color.fx + color_cx; const int cx = rx; // same as round for positive numbers (0.5f was already added to color_cx) // getting y offset for depth image const int cy = *map_yi; // combining offsets const int c_off = cx + cy * 1920;
// check if c_off is outside of rgb image // checking rx/cx is not needed because the color image is much wider then the depth image if(c_off < 0 || c_off >= size_color){ *map_c_off = -1; continue; }
// saving the offset for later *map_c_off = c_off;
if(enable_filter){ // setting a window around the filter map pixel corresponding to the color pixel with the current z value int yi = (cy - filter_height_half) * 1920 + cx - filter_width_half; // index of first pixel to set for(int r = -filter_height_half; r <= filter_height_half; ++r, yi += 1920) // index increased by a full row each iteration { float *it = p_filter_map + yi; for(int c = -filter_width_half; c <= filter_width_half; ++c, ++it) { // only set if the current z is smaller if(z < *it) *it = z; } } } }
/* Construct 'registered' image. */
// reseting the pointers to the beginning map_c_off = depth_to_c_off; undistorted_data = (float*)undistorted->data;
/* Filter drops duplicate pixels due to aspect of two cameras. */ if(enable_filter){ // run through all registered color pixels and set them based on filter results for(int i = 0; i < size_depth; ++i, ++map_c_off, ++undistorted_data, ++registered_data){ const int c_off = *map_c_off;
// check if offset is out of image if(c_off < 0){ *registered_data = 0; continue; } f const float min_z = p_filter_map[c_off]; const float z = *undistorted_data;
// check for allowed depth noise *registered_data = (z - min_z) / z > filter_tolerance ? 0 : *(rgb_data + c_off); }
if (!bigdepth) delete[] filter_map; } else { // run through all registered color pixels and set them based on c_off for(int i = 0; i < size_depth; ++i, ++map_c_off, ++registered_data){ const int c_off = *map_c_off;
// check if offset is out of image *registered_data = c_off < 0 ? 0 : *(rgb_data + c_off); } } if (!color_depth_map) delete[] depth_to_c_off; }