이마트 트레이더스 가서 사온 선풍기

근데.. 지상용 BLDC 선풍기가 있다면..

해상용 / 지하용 / 심해용 / 우주용 / 공중용 있는거냐 -ㅁ-??

영어로는 깔끔(?) 하게 BLDC 전기 선풍기라면서 왜 뜬금없이 -ㅁ-????

 

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

타이어 손상  (3) 2026.06.29
베란다 문 잠금장치 수리  (2) 2026.06.23
바쁜주말  (2) 2026.05.31
밀크티 타블렛(s6 lite) 초기화 하기  (0) 2026.05.23
고향  (0) 2026.05.03
Posted by 구차니
프로그램 사용/Blender2026. 7. 12. 21:57

ubuntu 22.04 에서 해서 그런가 에러가 난다

$ pip3 install bpy
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement bpy (from versions: none)
ERROR: No matching distribution found for bpy

 

$ pip install bpy==3.6.0 --extra-index-url https://download.blender.org/pypi/
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://download.blender.org/pypi/
Collecting bpy==3.6.0
  Downloading bpy-3.6.0-cp310-cp310-manylinux_2_28_x86_64.whl (371.4 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 371.4/371.4 MB 10.2 MB/s  0:00:36
Collecting cython (from bpy==3.6.0)
  Downloading cython-3.2.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (4.2 kB)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (from bpy==3.6.0) (1.21.5)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from bpy==3.6.0) (2.25.1)
Collecting zstandard (from bpy==3.6.0)
  Downloading zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (3.3 kB)
Downloading cython-3.2.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 9.6 MB/s  0:00:00
Downloading zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 10.0 MB/s  0:00:00
Installing collected packages: zstandard, cython, bpy
   ━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━ 1/3 [cython]  WARNING: The scripts cygdb, cython and cythonize are installed in '/home/minimonk/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed bpy-3.6.0 cython-3.2.8 zstandard-0.25.0

[링크 : https://pypi.org/project/bpy/]

 

구글 ai 개요에 의한 추천

$ python3
Python 3.10.12 (main, Jun 22 2026, 18:55:27) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bpy
>>> 
>>> # 1. 기존 큐브 삭제 및 새로운 큐브 생성
>>> bpy.ops.object.select_all(action='DESELECT')
{'FINISHED'}
>>> if "Cube" in bpy.data.objects:
...     bpy.data.objects["Cube"].select_set(True)
...     bpy.ops.object.delete()
... 
{'FINISHED'}
>>> bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 0))
{'FINISHED'}
>>> cube = bpy.context.active_object
>>> 
>>> # 2. 카메라 설정
>>> bpy.ops.object.camera_add(location=(7, -7, 5))
{'FINISHED'}
>>> camera = bpy.context.active_object
>>> camera.rotation_euler = (0.785, 0, 0.785) # 약 45도 회전
>>> bpy.context.scene.camera = camera
>>> 
>>> # 3. 조명(Light) 설정
>>> bpy.ops.object.light_add(type='SUN', location=(5, -5, 10))
{'FINISHED'}
>>> light = bpy.context.active_object
>>> light.data.energy = 1000
>>> 
>>> # 4. 렌더링 설정 및 실행
>>> scene = bpy.context.scene
>>> scene.render.image_settings.file_format = 'PNG'
>>> scene.render.filepath = "/tmp/render_output.png"
>>> 
>>> # 렌더링 시작
>>> bpy.ops.render.render(write_still=True)
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
Fra:1 Mem:42.56M (Peak 43.65M) | Time:00:00.98 | Syncing Light
Fra:1 Mem:42.56M (Peak 43.65M) | Time:00:00.98 | Syncing Camera
Fra:1 Mem:42.56M (Peak 43.65M) | Time:00:00.98 | Syncing Cube
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:02.32 | Syncing Camera.001
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:02.32 | Syncing Sun
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:02.35 | Rendering 1 / 64 samples
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:03.47 | Rendering 26 / 64 samples
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:03.89 | Rendering 51 / 64 samples
Fra:1 Mem:42.60M (Peak 43.65M) | Time:00:04.10 | Rendering 64 / 64 samples
Saved: '/tmp/render_output.png'
 Time: 00:04.73 (Saving: 00:00.53)

{'FINISHED'}
>>> 
>>> print("렌더링 완료! 저장 경로:", scene.render.filepath)
렌더링 완료! 저장 경로: /tmp/render_output.png
>>> bpy.ops.wm.save_as_mainfile(filepath="test.blend")
Info: Total files 0 | Changed 0 | Failed 0
Info: Saved "test.blend"
{'FINISHED'}

 

카메라가 위치 잘못 조정되었는지 이상하게 나오긴 했는데

아무튼 이렇게 렌더도 가능하다.

특이한건.. gui 로는 보이지도 않고 수행된다는 점.

 

 

test.blend 열어보니 기본 카메라가 있는데 또 추가해서 이상하게 보이는 느낌 

 

blend 파일을 읽어서

저장할 경로를 지정하고 

import bpy
import mathutils

# .blend 파일 로드
bpy.ops.wm.open_mainfile(filepath="test.blend")

camera = bpy.data.objects.get("Camera")
if camera is None:
    raise RuntimeError("Camera not found")

scene = bpy.context.scene

scene.render.image_settings.file_format = 'PNG'

camera_locations = [
    (5.0, -5.0, 3.0),
    (0.0, -7.0, 3.0),
    (-5.0, -5.0, 3.0),
]

for i, loc in enumerate(camera_locations):
    camera.location = mathutils.Vector(loc)
    # Blender 2.80+
    bpy.context.view_layer.update()
    scene.render.filepath = f"frame_{i:03d}.png"
    bpy.ops.render.render(write_still=True)
    print(f"Render {i} complete")

 

EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
EGL Error (0x3009): EGL_BAD_MATCH: Arguments are inconsistent (for example, a valid context requires buffers not supplied by a valid surface).
Fra:1 Mem:42.72M (Peak 43.80M) | Time:00:00.17 | Syncing Cube
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:00.25 | Syncing Light
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:00.25 | Syncing Camera
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:00.27 | Rendering 1 / 64 samples
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:01.50 | Rendering 26 / 64 samples
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:02.48 | Rendering 51 / 64 samples
Fra:1 Mem:42.75M (Peak 43.80M) | Time:00:03.02 | Rendering 64 / 64 samples
Saved: 'frame_000.png'
 Time: 00:03.44 (Saving: 00:00.31)

{'FINISHED'}
Render 0 complete
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.03 | Syncing Cube
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.03 | Syncing Light
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.03 | Syncing Camera
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.06 | Rendering 1 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.66 | Rendering 26 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:01.02 | Rendering 51 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:01.21 | Rendering 64 / 64 samples
Saved: 'frame_001.png'
 Time: 00:01.53 (Saving: 00:00.23)

{'FINISHED'}
Render 1 complete
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.00 | Syncing Cube
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.00 | Syncing Light
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.00 | Syncing Camera
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.00 | Rendering 1 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.56 | Rendering 26 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:00.93 | Rendering 51 / 64 samples
Fra:1 Mem:42.75M (Peak 42.75M) | Time:00:01.12 | Rendering 64 / 64 samples
Saved: 'frame_002.png'
 Time: 00:01.43 (Saving: 00:00.24)

{'FINISHED'}
Render 2 complete

 

좌표 문제겠지만 아무튼 렌더가 된다!

'프로그램 사용 > Blender' 카테고리의 다른 글

blender armature ik (각도 제한 등)  (0) 2026.07.10
bpy - Blender as a Python module  (0) 2026.07.10
blender 텍스쳐 입히고 그리기  (0) 2026.07.09
blender rigging  (0) 2026.07.06
blender 폴리곤 줄이기  (0) 2026.07.06
Posted by 구차니
프로그램 사용/Blender2026. 7. 10. 15:50

사람을 예를 들어 무릎은 앞쪽으로 구부러지지 않는데

그러한 제약조건을 걸어주려고 찾는 중.

 

스샷은 요즘껀데. 동영상은 옛날꺼. 그럼 변한게 별로 없으려나?

[링크 : https://docs.blender.org/manual/en/latest/animation/constraints/tracking/ik_solver.html]

[링크 : https://m.blog.naver.com/empty_wagon/20162423657]

[링크 : https://kauree.tistory.com/7] 피스톤 리깅

[링크 : https://m.blog.naver.com/nocsurim/222183115415]

 

+

2026.07.11

pose mode 에서 shift-i 혹은 pose - inverse kinematics - add ik to bone을 해준다.

 

일단 pose mode로 오면 프로퍼티에 bone이 생기긴 한다.

여기서 하는거랑 차이가 있는진 모르겠다.

[링크 : https://docs.blender.org/manual/en/latest/animation/armatures/posing/editing/inverse_kinematics.html#bpy-ops-pose-ik-add]

'프로그램 사용 > Blender' 카테고리의 다른 글

bpy 설치 + 간단 테스트  (0) 2026.07.12
bpy - Blender as a Python module  (0) 2026.07.10
blender 텍스쳐 입히고 그리기  (0) 2026.07.09
blender rigging  (0) 2026.07.06
blender 폴리곤 줄이기  (0) 2026.07.06
Posted by 구차니
프로그램 사용/Blender2026. 7. 10. 15:42

'프로그램 사용 > Blender' 카테고리의 다른 글

bpy 설치 + 간단 테스트  (0) 2026.07.12
blender armature ik (각도 제한 등)  (0) 2026.07.10
blender 텍스쳐 입히고 그리기  (0) 2026.07.09
blender rigging  (0) 2026.07.06
blender 폴리곤 줄이기  (0) 2026.07.06
Posted by 구차니
프로그램 사용/ros2026. 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

 

'프로그램 사용 > ros' 카테고리의 다른 글

ros kinect slam  (0) 2026.07.08
ros2 with kinect v2 시도... 3회차  (0) 2025.05.22
ros2 with kinect v2 시도... 2회차  (0) 2025.05.22
ros2 with kinect v2 일단 실패  (0) 2025.05.21
ros2 uses concol  (0) 2025.05.20
Posted by 구차니



Posted by 구차니

STP - Spanning Tree Protocol

[링크 : https://aws-hyoh.tistory.com/136]

 

Rapid STP

RSTP alternative / backup 포트

STP에 비해 빠르게 (기존 30~50, rstp 1초이내) loop 감지하기 위해 block 에서 forward로 전환

[링크 : https://going-to-end.tistory.com/entry/RSTP-Rapid-Spanning-Tree-Protocol]

[링크 : https://aws-hyoh.tistory.com/174]

'이론 관련 > 네트워크 관련' 카테고리의 다른 글

uart 9bit multidrop  (0) 2026.03.17
DHCP option  (0) 2026.03.13
DHCP option 82 relay  (0) 2025.01.23
multicast  (0) 2023.08.26
cobs  (0) 2023.05.25
Posted by 구차니
이론 관련/IoT2026. 7. 9. 14:46

구독, 발행이 있는데 mqtt랑은 또 다른건가?

[링크 : https://github.com/eProsima/Micro-XRCE-DDS]

[링크 : https://www.omg.org/spec/DDS-XRCE/About-DDS-XRCE/]

 

갑자기 pixhawk에 telemetry로 보이냐?

[링크 : https://roytravel.tistory.com/389]

 

DDS Data Distribution Service

어..? ros2 mqtt가 아냐?

[링크 : https://huroint.tistory.com/entry/DDS-DDS-RTPS]

'이론 관련 > IoT' 카테고리의 다른 글

OneM2M / mobius  (0) 2018.12.13
node-red  (0) 2018.12.13
WIPS 스터디  (0) 2018.12.12
CoAP 관련 스터디  (0) 2018.12.12
MQTT 사례 / 구현  (0) 2018.12.12
Posted by 구차니

딱히 포맷을 가리진 않는다고 한다.

그래서 json을 보내던, plain text를 보내던 바이너리를 보내던

바이너리를 base64encode 하던 상관없나 보다.

[링크 : https://www.emqx.com/en/blog/how-to-process-json-hex-and-binary-data-in-mqtt]

 

귀찮으면(!) 파일을 그냥 던져도 되나보다.

$ mosquitto_pub --help
mosquitto_pub is a simple mqtt client that will publish a message on a single topic and exit.
mosquitto_pub version 2.0.11 running on libmosquitto 2.0.11.

Usage: mosquitto_pub {[-h host] [--unix path] [-p port] [-u username] [-P password] -t topic | -L URL}
                     {-f file | -l | -n | -m message}
                     [-c] [-k keepalive] [-q qos] [-r] [--repeat N] [--repeat-delay time] [-x session-expiry]
                     [-A bind_address] [--nodelay]
                     [-i id] [-I id_prefix]
                     [-d] [--quiet]
                     [-M max_inflight]
                     [-u username [-P password]]
                     [--will-topic [--will-payload payload] [--will-qos qos] [--will-retain]]
                     [{--cafile file | --capath dir} [--cert file] [--key file]
                       [--ciphers ciphers] [--insecure]
                       [--tls-alpn protocol]
                       [--tls-engine engine] [--keyform keyform] [--tls-engine-kpass-sha1]]
                       [--tls-use-os-certs]
                     [--psk hex-key --psk-identity identity [--ciphers ciphers]]
                     [--proxy socks-url]
                     [--property command identifier value]
                     [-D command identifier value]
       mosquitto_pub --help

 -A : bind the outgoing socket to this host/ip address. Use to control which interface
      the client communicates over.
 -d : enable debug messages.
 -c : disable clean session/enable persistent client mode
      When this argument is used, the broker will be instructed not to clean existing sessions
      for the same client id when the client connects, and sessions will never expire when the
      client disconnects. MQTT v5 clients can change their session expiry interval with the -x
      argument.
 -D : Define MQTT v5 properties. See the documentation for more details.
 -f : send the contents of a file as the message.
 -h : mqtt host to connect to. Defaults to localhost.
 -i : id to use for this client. Defaults to mosquitto_pub_ appended with the process id.
 -I : define the client id as id_prefix appended with the process id. Useful for when the
      broker is using the clientid_prefixes option.
 -k : keep alive in seconds for this client. Defaults to 60.
 -L : specify user, password, hostname, port and topic as a URL in the form:
      mqtt(s)://[username[:password]@]host[:port]/topic
 -l : read messages from stdin, sending a separate message for each line.
 -m : message payload to send.
 -M : the maximum inflight messages for QoS 1/2..
 -n : send a null (zero length) message.
 -p : network port to connect to. Defaults to 1883 for plain MQTT and 8883 for MQTT over TLS.
 -P : provide a password
 -q : quality of service level to use for all messages. Defaults to 0.
 -r : message should be retained.
 -s : read message from stdin, sending the entire input as a message.
 -t : mqtt topic to publish to.
 -u : provide a username
 -V : specify the version of the MQTT protocol to use when connecting.
      Can be mqttv5, mqttv311 or mqttv31. Defaults to mqttv311.
 -x : Set the session-expiry-interval property on the CONNECT packet. Applies to MQTT v5
      clients only. Set to 0-4294967294 to specify the session will expire in that many
      seconds after the client disconnects, or use -1, 4294967295, or ∞ for a session
      that does not expire. Defaults to -1 if -c is also given, or 0 if -c not given.
 --help : display this message.
 --nodelay : disable Nagle's algorithm, to reduce socket sending latency at the possible
             expense of more packets being sent.
 --quiet : don't print error messages.
 --repeat : if publish mode is -f, -m, or -s, then repeat the publish N times.
 --repeat-delay : if using --repeat, wait time seconds between publishes. Defaults to 0.
 --unix : connect to a broker through a unix domain socket instead of a TCP socket,
          e.g. /tmp/mosquitto.sock
 --will-payload : payload for the client Will, which is sent by the broker in case of
                  unexpected disconnection. If not given and will-topic is set, a zero
                  length message will be sent.
 --will-qos : QoS level for the client Will.
 --will-retain : if given, make the client Will retained.
 --will-topic : the topic on which to publish the client Will.
 --cafile : path to a file containing trusted CA certificates to enable encrypted
            communication.
 --capath : path to a directory containing trusted CA certificates to enable encrypted
            communication.
 --cert : client certificate for authentication, if required by server.
 --key : client private key for authentication, if required by server.
 --keyform : keyfile type, can be either "pem" or "engine".
 --ciphers : openssl compatible list of TLS ciphers to support.
 --tls-version : TLS protocol version, can be one of tlsv1.3 tlsv1.2 or tlsv1.1.
                 Defaults to tlsv1.2 if available.
 --insecure : do not check that the server certificate hostname matches the remote
              hostname. Using this option means that you cannot be sure that the
              remote host is the server you wish to connect to and so is insecure.
              Do not use this option in a production environment.
 --tls-engine : If set, enables the use of a TLS engine device.
 --tls-engine-kpass-sha1 : SHA1 of the key password to be used with the selected SSL engine.
 --tls-use-os-certs : Load and trust OS provided CA certificates.
 --psk : pre-shared-key in hexadecimal (no leading 0x) to enable TLS-PSK mode.
 --psk-identity : client identity string for TLS-PSK mode.
 --proxy : SOCKS5 proxy URL of the form:
           socks5h://[username[:password]@]hostname[:port]
           Only "none" and "username" authentication is supported.

See https://mosquitto.org/ for more information.

'프로그램 사용 > mosquitto' 카테고리의 다른 글

zigbee CC2531 on ubuntu 실패  (0) 2025.12.27
zigbee 2 MQTT(Z2M) / zigbee home automation(ZHA)  (0) 2025.12.27
mosquitto qos  (0) 2025.04.18
mosquitto for windows 계정추가  (0) 2025.02.18
mosquitto service for windows  (0) 2025.02.18
Posted by 구차니
Linux/Ubuntu2026. 7. 9. 14:08

22.04

2760p 에서 부팅 잘됨.(uefi가 제한적으로 제공되는 녀석)

 

24.04

flag를 인식못하는지 bios_grub 쪽으로 켜졌다가 점프해야 할 것 같은데 부팅이 안된다.

 

도대체 몇번을 깔고 쑈하는지 쩝.

웃긴건 22.04 깔고 24.05로 distupgrade 하면 잘 된다는 것. 멀까..?

 

ESP - EFI (Extensible Firmware Interface) system partition

에는 부팅시 로드할 파일들이 있는데. UEFI에 다 올려져 있다면 파티션이 필요 없겠지만

지원이 미비한 보드의 경우 로드할 파일이 없으니 못켜지는걸려나?

[링크 : https://en.wikipedia.org/wiki/EFI_system_partition]

'Linux > Ubuntu' 카테고리의 다른 글

hp 2760p 우분투 26.02 설치 실패  (0) 2026.06.23
ubuntu 26.04 + 595.71.05 + CUDA 13.2  (0) 2026.06.17
festival - a text-to-speech system(tts)  (0) 2026.05.06
luit  (0) 2026.03.23
ubuntu 22.04 bgr 패널 대응  (0) 2025.12.29
Posted by 구차니