JETSON_SENSOR_ACCESS - zero1ne-26/doc GitHub Wiki

Jetson ์„ผ์„œ ์›๊ฒฉ ์ ‘์† โ€” ๋Œ€์—ญํญ ์ œ์•ฝ๊ณผ ๋ฐ์ดํ„ฐ ๋ฐ˜์ถœ

Jetson Orin์— ๋ถ™์€ LiDARยท์นด๋ฉ”๋ผ๋ฅผ ์›๊ฒฉ์—์„œ ๋ณด๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ. ์ ‘์† ๊ฒฝ๋กœ ์ž์ฒด๋Š” JETSON_SSH_ACCESS๋ฅผ ๋จผ์ € ๋ณธ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์ ‘์†์ด ๋œ๋‹ค๋Š” ์ „์ œ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.


0. ๋จผ์ € ์•Œ์•„์•ผ ํ•  ๊ฒƒ โ€” ๋งํฌ๊ฐ€ 0.30 MB/s๋‹ค

์ด ๋ฌธ์„œ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๋‚ด์šฉ์ด ์ด ์ˆซ์ž์—์„œ ๋‚˜์˜จ๋‹ค.

10 MB ์ „์†ก์— 33.2์ดˆ  โ†’  ์•ฝ 0.30 MB/s (2.4 Mbps)

Jetson์€ ZER01NE_WIFI(2.4 GHz)์— ๋ถ™์–ด ์žˆ๊ณ , ์™ธ๋ถ€์—์„œ๋Š” Tailscale๋กœ๋งŒ ๋‹ฟ๋Š”๋‹ค. ์‹ ํ˜ธ ์ž์ฒด๋Š” ๋ฉ€์ฉกํ•˜๋‹ค:

freq 2457 (2.4GHz)   signal โˆ’36 dBm   tx bitrate 52 Mbit/s

์‹ ํ˜ธ โˆ’36 dBm์€ ์•„์ฃผ ์ข‹์€ ๊ฐ’์ธ๋ฐ ์‹คํšจ ์ฒ˜๋ฆฌ๋Ÿ‰์€ PHY์˜ 5%๋‹ค. ์ „ํŒŒ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ 2.4 GHz ํ˜ผ์žก ๋˜๋Š” ์‚ฌ๋ฌด์‹ค ์—…๋งํฌ ๋ณ‘๋ชฉ์ด๋‹ค. 5 GHz ๋Œ€์—ญ์ด๋‚˜ ์œ ์„ ์œผ๋กœ ์˜ฎ๊ธฐ์ง€ ์•Š๋Š” ํ•œ ์ด ์ œ์•ฝ์€ ๊ทธ๋Œ€๋กœ๋‹ค.

์„ผ์„œ๊ฐ€ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์–‘๊ณผ ๋น„๊ตํ•˜๋ฉด:

ํ† ํ”ฝ ๋Œ€์—ญํญ ๋งํฌ ๋Œ€๋น„
/camera/color/image_raw 13.84 MB/s 46๋ฐฐ ์ดˆ๊ณผ
/livox/lidar 5.20 MB/s 17๋ฐฐ ์ดˆ๊ณผ
/camera/color/image_raw/compressed 1.49 MB/s 5๋ฐฐ ์ดˆ๊ณผ

์ฆ‰ ์–ด๋–ค ์„ผ์„œ ํ† ํ”ฝ๋„ ์›๊ฒฉ์—์„œ ์˜จ์ „ํ•œ ๋ ˆ์ดํŠธ๋กœ๋Š” ๋ชป ๋ฐ›๋Š”๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๋ ค๋ฉด ์ค„์—ฌ์•ผ ํ•˜๊ณ , ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋…นํ™” ํ›„ ์˜ฎ๊ฒจ์•ผ ํ•œ๋‹ค.


1. ํ˜„์žฌ ์‚ด์•„์žˆ๋Š” ํ† ํ”ฝ

Jetson์—์„œ ์ƒ์‹œ ๋„๋Š” ์„œ๋น„์Šค๊ฐ€ ๋ฐœํ–‰ํ•œ๋‹ค (livox-driver, realsense, foxglove-bridge, mosquitto).

ํ† ํ”ฝ ํƒ€์ž… ๋ ˆ์ดํŠธ ๋น„๊ณ 
/livox/lidar PointCloud2 10 Hz frame livox_frame, 19968 pts/msg
/livox/imu Imu โ€”
/camera/color/image_raw Image 14.9 Hz 848ร—480 rgb8, fx 614.31
/camera/color/image_raw/compressed CompressedImage 14.9 Hz 848ร—480 JPEG q95
/camera/color/camera_info CameraInfo 14.9 Hz plumb_bob
/camera/aligned_depth_to_color/image_raw Image 13.8 Hz 848ร—480 16UC1 โ€” ๊นŠ์ด๋Š” ์ด๊ฑธ ์จ๋ผ
/camera/aligned_depth_to_color/camera_info CameraInfo 13.8 Hz color ์™€ ๋™์ผ intrinsics
/camera/depth/image_rect_raw Image 14.1 Hz 640ร—480 16UC1, fx 383.14 โ€” ์ •๋ ฌ ์•ˆ ๋จ, ์“ฐ์ง€ ๋งˆ๋ผ
/tf_static mapยทlivox_frameยทcamera_* ์ „๋ถ€ ํ•œ ํŠธ๋ฆฌ (ยง1.1)

/livox/lidar์˜ point field๋Š” x, y, z, intensity, tag, line, timestamp.

1.1 ์„ผ์„œ ์™ธ๋ถ€ํŒŒ๋ผ๋ฏธํ„ฐ (2026-09-05 ์ „๋ฉด ๊ฐœ์ •)

์ด์ „ ํŒ ๊ฒฝ๊ณ . 2026-09-05 ์˜ค์ „์— ๋ฐฐํฌํ•œ dvlc ๋‹จ๋… ๊ฐ’์€ ๋ณ‘์ง„์ด 198 mm ํ‹€๋ ธ๋‹ค. ๊ฐ™์€ ๋‚  ์˜คํ›„ ๊ฒ€์ฆ์—์„œ ๋“œ๋Ÿฌ๋‚˜ ์ˆ˜์ •ํ–ˆ๋‹ค. ๊ทธ ์ด์ „ ๊ฐ’์œผ๋กœ LiDARโ€“์ด๋ฏธ์ง€ ์œตํ•ฉ์„ ๋Œ๋ฆฐ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ๋ด์•ผ ํ•œ๋‹ค (์˜ค์ฐจ: 1 m์—์„œ 90 px, 2 m์—์„œ 45 px).

์ •๋ณธ ์ˆ˜์น˜์™€ ๊ทผ๊ฑฐ๋Š” Jetson์˜ ~/spot_extrinsic.yaml. ๋ฐฑ์—…์€ ~/spot_extrinsic.yaml.bak-20260905.

body ๊ธฐ์ค€ (์ •๋ณธ)

body = x ์ „๋ฐฉ, y ์ขŒ, z ์ƒ. ์›์ ์€ ์—‰๋ฉ์ด ์ค‘์‹ฌ์ด๊ณ  ๊ธฐ๋ฆฝ ์‹œ ์ง€๋ฉด ์œ„ 0.5087 m๋‹ค (body_T_gpe ์‹ค์ธก).

body -> livox_frame
  xyz   0.304668878  -0.000000116   0.230026415
  quat  0.0           0.104528463   0.0          0.994521895      # pitch down 12.0ยฐ

body -> camera_link                            # == camera_depth_optical_frame
  xyz   0.379725244   0.017510534   0.096776966
  quat  0.009310769   0.026752321   0.002583650  0.999595392

body -> camera_color_optical_frame
  xyz   0.379381950   0.032434884   0.097408095
  quat -0.508819740   0.516735369  -0.475408153  0.498070395
  # ๊ด‘ํ•™๊ทœ์•ฝ ์ œ๊ฑฐ ์‹œ: roll +1.776  pitch +2.971  yaw +0.891 deg

CAD๋Š” ์นด๋ฉ”๋ผ ํšŒ์ „์„ ์ „๋ถ€ 0์œผ๋กœ ๋†“์•˜๋Š”๋ฐ ํ‹€๋ ธ๋‹ค. rollยทpitch๊ฐ€ ์‹ค์ œ๋กœ +1.78 / +2.97ยฐ๋‹ค. ๋ณ‘์ง„์€ CAD๊ฐ€ ๋งž๋‹ค.

ํ•ญ๋ชฉ ์ƒํƒœ ๊ทผ๊ฑฐ
body_T_livox rollยทpitchยทtz โœ… CAD ๋งž์Œ (0.25~0.36ยฐ, 25 mm) ์ง€๋ฉดํ‰๋ฉด 3ํšŒ
body_T_livox ๋ณ‘์ง„ โœ… CAD ๋งž์Œ ์ค„์ž
body_T_livox yaw โœ… CAD 0ยฐ ๋งž์Œ LiDARโ†’์ด๋ฏธ์ง€ ํˆฌ์˜ ์œก์•ˆ๊ฒ€์‚ฌ
body_T_camera rollยทpitch โœ… CAD ์•„๋‹˜. +1.78 / +2.97ยฐ ์ง€๋ฉดํ‰๋ฉด + dvlc ๊ต์ฐจ๊ฒ€์ฆ
body_T_camera ๋ณ‘์ง„ โœ… CAD ๋งž์Œ ์ค„์ž + ํ”ผ๋“€์…œ ์ž”์ฐจ (x 18 mm, z 8 mm)
body_T_camera yaw โœ… +0.891 ยฑ 0.3ยฐ ํ”ผ๋“€์…œ 3๋ฐฐ์น˜

/tf_static ์— ๋ฐœํ–‰ ์ค‘์ธ ๊ฒƒ

spot-extrinsic.service๊ฐ€ ๋‘ ๊ฐœ๋ฅผ ๋ฐœํ–‰ํ•œ๋‹ค. enabled ์ƒํƒœ๋ผ ์žฌ๋ถ€ํŒ…ํ•ด๋„ ์œ ์ง€๋œ๋‹ค.

body -> livox_frame
xyz   0.304668878  -0.000000116   0.230026415
quat  0.0           0.104528463   0.0          0.994521895

livox_frame -> camera_link
xyz   0.101120323   0.017510650  -0.114732533
quat  0.008989699  -0.077880401   0.003542737  0.996915883
body -- livox_frame -- camera_link --+-- camera_color_frame -- camera_color_optical_frame
                                     +-- camera_depth_frame -- camera_depth_optical_frame

map -> livox_frame ์ž๋ฆฌํ‘œ์‹œ์ž๋Š” 2026-09-05 ์ œ๊ฑฐํ–ˆ๋‹ค (~/svc_livox.sh). ์ „๋ถ€ 0์ด๋ผ ์˜๋ฏธ๊ฐ€ ์—†์—ˆ๊ณ , body๋ฅผ ๋„ฃ์œผ๋ ค๋ฉด livox_frame์˜ ๋ถ€๋ชจ๊ฐ€ ๋‘˜์ด ๋˜๋ฉด ์•ˆ ๋๋‹ค. map์„ ์ฐธ์กฐํ•˜๋Š” ๋…ธ๋“œยท์ฝ”๋“œ๋Š” ์—†๋‹ค(์ „์ˆ˜ ํ™•์ธ).

body๋Š” ์ง€๊ธˆ ์ •์  ๋ฃจํŠธ์ผ ๋ฟ์ด๋‹ค. ๋กœ๋ด‡์ด ์›€์ง์ผ ๋•Œ์˜ body ์ž์„ธ(odom -> body)๋ฅผ ๋ฐœํ–‰ํ•˜๋Š” ๋ธŒ๋ฆฌ์ง€๊ฐ€ ์•„์ง ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๊ฑท๋Š” ๋กœ๋ด‡์˜ bag์—์„œ๋Š” body๊ฐ€ ๊ณ ์ •์œผ๋กœ ๋ณด์ธ๋‹ค. ๋ธŒ๋ฆฌ์ง€๊ฐ€ ์ƒ๊ธฐ๋ฉด odom -- body -- livox_frame -- ...๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ™•์žฅ๋œ๋‹ค.

ํ™•์ธ:

ros2 run tf2_ros tf2_echo body camera_color_optical_frame -p 6
#   xyz 0.379382 0.032435 0.097408
ros2 run tf2_ros tf2_echo livox_frame camera_color_optical_frame -p 6
#   xyz 0.100653 0.032435 -0.114187 / rpy -80.969 1.568 -88.849 deg

โš ๏ธ livox_frame -> camera_color_optical_frame์„ ์ง์ ‘ ๋ฐœํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. RealSense ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ด๋ฏธ camera_color_frame -> camera_color_optical_frame์„ ๋ฐœํ–‰ํ•˜๊ณ  ์žˆ์–ด์„œ, ์ €๊ฒƒ์„ ๋˜ ์˜๋ฉด optical frame์˜ ๋ถ€๋ชจ๊ฐ€ ๋‘˜์ด ๋˜๊ณ  TF ํŠธ๋ฆฌ๊ฐ€ ๊ฐˆ๋ผ์ง„๋‹ค.

๋ฌด์—‡์„ ์™œ ๊ณ ์ณค๋‚˜

๋ฐฐํฌ TF๋ฅผ ๋ณ‘์ง„ยทํšŒ์ „ ๋‘˜ ๋‹ค ๊ต์ฒดํ–ˆ๋‹ค. ์ด์ œ dvlc ๊ฐ’์„ ์ง์ ‘ ์“ฐ์ง€ ์•Š๊ณ , body ๊ธฐ์ค€ ์‹ค์ธก ๋‘ ๊ฐœ๋ฅผ ํ•ฉ์„ฑํ•ด ์œ ๋„ํ•œ๋‹ค.

๋ณ‘์ง„  old  0.205696150  -0.137685857  -0.032145274
      new  0.101120323   0.017510650  -0.114732533       (|ฮ”| = 198 mm)
ํšŒ์ „  old  qxyzw 0.005522886 -0.077601178  0.029733257 0.996525709
      new  qxyzw 0.008989699 -0.077880401  0.003542737 0.996915883   (3.028ยฐ, ์ „๋ถ€ yaw)

dvlc ํŒ์ • โ€” tilt๋งŒ ์“ธ ๋งŒํ•˜๋‹ค:

์„ฑ๋ถ„ ํŒ์ • ์–ด๋–ป๊ฒŒ ์•Œ์•˜๋‚˜
rollยทpitch (tilt) โœ… ์–‘ํ˜ธ, 0.68ยฐ ์ง€๋ฉดํ‰๋ฉด ๊ต์ฐจ๊ฒ€์ฆ
yaw โŒ 3.028ยฐ ์˜ค๋ฅ˜ LiDARโ†’์ด๋ฏธ์ง€ ํˆฌ์˜ ์œก์•ˆ๊ฒ€์‚ฌ
๋ณ‘์ง„ โŒ 198 mm ์˜ค๋ฅ˜ ์ค„์ž + CAD

๊นŠ์ด ๋‹ค์–‘์„ฑ์ด ๋ถ€์กฑํ•˜๋ฉด ๋ณ‘์ง„๊ณผ ํšŒ์ „์ด ์„œ๋กœ ์ƒ์‡„๋˜๋ฉฐ ์ˆ˜๋ ดํ•˜๋Š” ์ „ํ˜•์  ์‹คํŒจ๋‹ค. ์žฌํˆฌ์˜ ์ž”์ฐจ๋งŒ ๋ณด๋ฉด ์ด๊ฒŒ ์•ˆ ๋“œ๋Ÿฌ๋‚œ๋‹ค.

์ด์ „ ๋ฌธ์„œ์— ์ ํ˜€ ์žˆ๋˜ ยฑ10 cm / ยฑ2ยฐ๋Š” tilt์—๋งŒ ํ•ด๋‹นํ–ˆ๋‹ค. yaw์™€ ๋ณ‘์ง„์€ ๊ทธ ๋ฒ”์œ„๋ฅผ ๋„˜์—ˆ๋‹ค.

๊ณ ์น˜๊ธฐ ์ „ LiDARโ†’์ด๋ฏธ์ง€ ํˆฌ์˜ ์˜ค์ฐจ: ๋ณ‘์ง„๋ถ„์ด 1 m์—์„œ 90 px / 2 m 45 px / 5 m 18 px, ๊ฑฐ๊ธฐ์— yaw ์˜ค๋ฅ˜๊ฐ€ ๊ฑฐ๋ฆฌ ๋ฌด๊ด€ ์ƒ์ˆ˜ 32 px๋ฅผ ๋”ํ–ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์Ÿ€๋‚˜ (์žฌํ˜„์šฉ)

์ง€๋ฉดํ‰๋ฉด โ€” rollยทpitchยทtz 3 DOF

ํ‰ํ‰ํ•œ ๋ฐ”๋‹ฅ(๋ฐ˜๊ฒฝ 3 m ์ด์ƒ)์— ์„ธ์šฐ๊ณ  12์ดˆ ๋…นํ™”. Spot์ด ์ฃผ๋Š” body_T_gpe(๋ฐœ๋ฐ”๋‹ฅ ์ ‘์ด‰ ๊ธฐ๋ฐ˜ ์ง€๋ฉด์ถ”์ •)์˜ ๋ฒ•์„ ยท๋†’์ด์™€ ๊ฐ ์„ผ์„œ์—์„œ ํ”ผํŒ…ํ•œ ๋ฐ”๋‹ฅ ํ‰๋ฉด์„ ๋น„๊ตํ•œ๋‹ค.

  • yawยทtxยทty๋Š” ์›๋ฆฌ์ƒ ์•ˆ ๋‚˜์˜จ๋‹ค โ€” ํ‰๋ฉด์€ ์ž๊ธฐ ์œ„๋กœ ๋ฏธ๋„๋Ÿฌ์ง€๋Š” ๊ฒƒ๊ณผ ๋ฒ•์„ ์ถ• ํšŒ์ „์— ๋ถˆ๋ณ€์ด๋‹ค.
  • ์นด๋ฉ”๋ผ๋Š” ์ •๋ฉด 5 m ์ด์ƒ ์—ด๋ฆฐ ๋ฐ”๋‹ฅ์ด ํ•„์š”ํ•˜๋‹ค. ๋ฒฝ์„ ๋ณด๋ฉด ๋ฒฝ ๋ฐ‘๋™์ด ๋ฐ”๋‹ฅ์œผ๋กœ ์˜ค๋ถ„๋ฅ˜๋ผ 3~6ยฐ์”ฉ ํ‹€๋ฆฐ ๋‹ต์ด ๋‚˜์˜จ๋‹ค (2026-09-05์— ์‹ค์ œ๋กœ ๊ฒช์—ˆ๋‹ค).
  • ๊ธฐ๋ฆฝ ํ”๋“ค๋ฆผ์€ ๋ฌด์‹œ ๊ฐ€๋Šฅ: 12์ดˆ p-p roll 0.011ยฐ, pitch 0.013ยฐ, z 0.0 mm.

ํ”ผ๋“€์…œ โ€” yaw

146 mm AprilTag 36h11์„ ์„ธ์›Œ์„œ ์ „๋ฐฉ 1.5~2.5 m, ์ง€์ƒ 0.9 m ๋ถ€๊ทผ. Spot์ด body_T_tag๋ฅผ, RealSense๊ฐ€ ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ๋ณธ๋‹ค.

  • ๊นŠ์ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ํƒœ๊ทธ ์ค‘์•™์ด ๊ฒ€์€์ƒ‰์ด๋ผ D435 IR ๊นŠ์ด๊ฐ€ ํŽธํ–ฅ๋œ๋‹ค. ์นด๋ฉ”๋ผ ๊ด‘์„  ๋ฐฉํ–ฅ๊ณผ Spot์ด ์ค€ ํƒœ๊ทธ ๋ฐฉํ–ฅ๋งŒ ๋งž์ถฐ yaw 1 DOF๋ฅผ ํ‘ผ๋‹ค.
  • ํƒœ๊ทธ ์ค‘์‹ฌ์€ ์ฝ”๋„ˆ ํ‰๊ท ์ด ์•„๋‹ˆ๋ผ ๋Œ€๊ฐ์„  ๊ต์ ์„ ์“ด๋‹ค (์‚ฌ์˜ ๋ถˆ๋ณ€).
  • ๋…ธ์ด์ฆˆ: ์นด๋ฉ”๋ผ ๋ฐฉ์œ„ std 0.016ยฐ / Spot ๋ฐฉ์œ„ std 0.244ยฐ. Spot์ด ์ง€๋ฐฐ์ ์ด๋‹ˆ ๋ฐฐ์น˜๋งˆ๋‹ค 20~25ํšŒ ํด๋งํ•ด ํ‰๊ท ๋‚ธ๋‹ค.
  • ๋ฐฐ์น˜์˜ ๋ฐฉ์œ„๋ฅผ ๋„“๊ฒŒ ํฉ์–ด์•ผ yaw์™€ ty๊ฐ€ ๋ถ„๋ฆฌ๋œ๋‹ค.
  • ๋ฐ”๋‹ฅ์— ๋ˆ„์šด ํƒœ๊ทธ๋Š” ๋ชป ์“ด๋‹ค. ๊ฐ€๊นŒ์ด ๊ฐ€๋ฉด ์•™๊ฐ์ด FOV๋ฅผ ๋ฒ—์–ด๋‚˜๊ณ , ๋ฉ€์–ด์ง€๋ฉด ๋‚ฉ์ž‘ํ•ด์ ธ ๋””์ฝ”๋”ฉ์ด ์•ˆ ๋œ๋‹ค. ์„ฑ๋ฆฝ ๊ตฌ๊ฐ„์ด ์—†๋‹ค.

ํˆฌ์˜ ์œก์•ˆ๊ฒ€์‚ฌ โ€” LiDAR yaw

๋‘ ๊ฐ€์„ค(dvlc ํšŒ์ „ / ํ”ผ๋“€์…œ ์œ ๋ž˜ ํšŒ์ „)๋กœ LiDAR ์ ๊ตฌ๋ฆ„์„ ์ปฌ๋Ÿฌ ์ด๋ฏธ์ง€์— ๊ฐ๊ฐ ํˆฌ์˜ํ•ด ๋น„๊ตํ•œ๋‹ค. ํšŒ์ „ ์˜ค์ฐจ๋Š” ๊ฑฐ๋ฆฌ์— ๋ฌด๊ด€ํ•œ ์ƒ์ˆ˜ ํ™”๊ฐ ์˜ค์ฐจ๋ผ 3ยฐ = 32 px๋กœ ํ•ญ์ƒ ๋ณด์ธ๋‹ค. ๋ฐ•์Šคยท์ผ€์ด์Šค์˜ ์ˆ˜์ง ์—์ง€์—์„œ ์–ด๋А ์ชฝ์ด ๋ฌผ์ฒด ๊ฒฝ๊ณ„์™€ ๋งž๋Š”์ง€ ๋ณด๋ฉด ๋œ๋‹ค.

  • ๋ณ‘์ง„์„ ๋จผ์ € ๊ณ ์ณ์•ผ ์œ ํšจํ•˜๋‹ค. ์•„๋‹ˆ๋ฉด ๋ณ‘์ง„ ์˜ค์ฐจ์— ๋ฌปํ˜€ ํŒ๋ณ„์ด ์•ˆ ๋œ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ scratchpad/proj_test.py, ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ~/Desktop/spot-calib/proj_check/

2. Foxglove๋กœ ๋ณด๊ธฐ

Jetson์— foxglove-bridge๊ฐ€ 0.0.0.0:8765๋กœ ์ƒ์‹œ ๋–  ์žˆ๋‹ค. ๋‹ค๋งŒ ๋ธŒ๋ฆฟ์ง€๋Š” ํ‰๋ฌธ ws://๋ผ https://app.foxglove.dev์—์„œ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ mixed content๋กœ ์ฐจ๋‹จํ•œ๋‹ค.

SSH ํ„ฐ๋„๋กœ ์šฐํšŒํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” localhost๋ฅผ secure๋กœ ์ทจ๊ธ‰ํ•˜๋ฏ€๋กœ ์ฐจ๋‹จ๋˜์ง€ ์•Š๋Š”๋‹ค.

# ํ„ฐ๋ฏธ๋„ 1 โ€” ํ„ฐ๋„ (์ž‘์—… ๋๋‚˜๋ฉด Ctrl-C)
ssh -N -L 8765:127.0.0.1:8765 jetson-orin-spot

๋ธŒ๋ผ์šฐ์ €์—์„œ:

https://app.foxglove.dev/?ds=foxglove-websocket&ds.url=ws://localhost:8765

์–ด๋–ค ํ† ํ”ฝ์„ ๋ณผ ๊ฒƒ์ธ๊ฐ€

ํ† ํ”ฝ ๊ฒฐ๊ณผ
/camera/color/image_raw โŒ ์‚ฌ์‹ค์ƒ ์ •์ง€. ํ”„๋ ˆ์ž„์ด 0.92 MB๋ผ 3์ดˆ์— ํ•œ ์žฅ, ๋ธŒ๋ฆฟ์ง€ ์†ก์‹  ํ์— ์ˆ˜ MB ์ ์ฒด โ†’ ์ง€์—ฐ ํญ์ฆ
/camera/color/image_raw/compressed โœ… ๋ณด์ธ๋‹ค. 15 Hz๋Š” ๋ชป ์ฑ„์šฐ๊ณ  ~3 fps๋กœ ๋–จ์–ด์ง€์ง€๋งŒ ํ™”๋ฉด์€ ๋‚˜์˜จ๋‹ค. ๋‹จ ๋งํฌ๋ฅผ ํฌํ™”์‹œํ‚จ๋‹ค
/livox/lidar โœ… ๋ณด์ธ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Œ€๋Ÿ‰ ๋“œ๋ž ์ค‘์ด์ง€๋งŒ ํฌ์ธํŠธํด๋ผ์šฐ๋“œ๋Š” ์ผ๋ถ€๋งŒ ์™€๋„ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ ธ ํ‹ฐ๊ฐ€ ๋œ ๋‚œ๋‹ค

3D ํŒจ๋„ fixed frame์€ map์œผ๋กœ ๋‘”๋‹ค (static TF๊ฐ€ ๊ทธ๊ฒƒ๋ฟ).

โš ๏ธ ๋‹ค๋ฅธ ์ž‘์—…๊ณผ ๊ฒน์น  ๋•Œ

Foxglove๊ฐ€ ์ผœ์ ธ ์žˆ์œผ๋ฉด ์—…๋งํฌ๋ฅผ ํ†ต์งธ๋กœ ๋จน๋Š”๋‹ค. ์‹ค์ธก ์‚ฌ๋ก€ โ€” bag ์ „์†ก ์ค‘์— Foxglove๊ฐ€ raw ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ์—ˆ๋”๋‹ˆ:

Foxglove ์—ฐ๊ฒฐ ์ค‘:  rsync 0.073 MB/s
Foxglove ๋Š์€ ํ›„:  rsync 0.30 MB/s   (4๋ฐฐ)

๋ฐ์ดํ„ฐ ๋ฐ˜์ถœยทrsyncยทbag ์ „์†ก ์ค‘์—๋Š” Foxglove๋ฅผ ๋„๋Š” ๊ฒŒ ๋งž๋‹ค. 850 MB ๋ฐ›์„ ๋•Œ 10๋ถ„ vs 40๋ถ„ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค.

๋Œ€์—ญํญ์ด ์ •๋ง ์•„์‰ฌ์šฐ๋ฉด โ€” ํ”„๋ฆฌ๋ทฐ ๋…ธ๋“œ ํŒจํ„ด

ํ† ํ”ฝ์„ ์ถ•์†Œํ•ด์„œ ์ƒˆ๋กœ ๋ฐœํ–‰ํ•˜๋Š” ์ž‘์€ ๋…ธ๋“œ๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. Jetson ์•ˆ์—์„œ resize + JPEG ํ•˜๋ฏ€๋กœ ๋งํฌ์—๋Š” ์ž‘์€ ๊ฒƒ๋งŒ ๋‚˜๊ฐ„๋‹ค.

/camera/color/image_raw  (๋กœ์ปฌ์ด๋ผ ๊ณต์งœ)
   โ†’ cv2 resize 424ร—240, imencode q50, 5 Hz๋กœ ๊ฐ„์ถ•
   โ†’ 12 KB/frame = 0.06 MB/s   (compressed ๋Œ€๋น„ 25๋ฐฐ ์ž‘์Œ)

๊ธฐ์กด ์„œ๋น„์Šค๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ํ† ํ”ฝ๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ ์•ˆ์ „ํ•˜๋‹ค. ์ƒ์‹œ ํ•„์š”ํ•˜์ง€๋Š” ์•Š์•„์„œ ์ง€๊ธˆ์€ ์•ˆ ๋„์›Œ๋†จ๋‹ค. ํ•„์š”ํ•˜๋ฉด ๋งŒ๋“ค์–ด ์“ฐ๋ฉด ๋œ๋‹ค.


3. ๋ฐ์ดํ„ฐ ๋ฐ˜์ถœ โ€” ๋…นํ™” ํ›„ ์ „์†ก

์‹ค์‹œ๊ฐ„์ด ์•ˆ ๋˜๋ฉด ๋…นํ™”ํ•ด์„œ ์˜ฎ๊ธด๋‹ค. ์ด๊ฑด ์‹œ๊ฐ„๋งŒ ์“ฐ๋ฉด ๋˜๋ฏ€๋กœ ํ™•์‹คํ•˜๋‹ค.

์ „์†ก์€ rsync -az๋ฅผ ์“ด๋‹ค. rgb8 raw ์ด๋ฏธ์ง€๋Š” ์••์ถ•์ด ์ž˜ ๋จน์–ด์„œ ์ฒด๊ฐ ์ฐจ์ด๊ฐ€ ํฌ๋‹ค โ€” 188 MB bag์ด ์•ฝ 2๋ถ„์— ๋“ค์–ด์™”๋‹ค (๋น„์••์ถ• ์ถ”์ • 12๋ถ„).

rsync -az --info=progress2 \
  jetson-orin-spot:/home/zer01ne-spot/calib_bags/<์ด๋ฆ„> ~/์›ํ•˜๋Š”๊ฒฝ๋กœ/

4. LiDARโ€“์นด๋ฉ”๋ผ ์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜์šฉ bag ๋…นํ™”

direct_visual_lidar_calibration (koide3, MIT) ์„ ์“ฐ๊ธฐ ์œ„ํ•œ ์ˆ˜์ง‘ ์ ˆ์ฐจ๋‹ค.

ํ•œ ๋ฒˆ ๋Œ๋ ค์„œ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฏธ ๋ฐฐํฌํ–ˆ๋‹ค (ยง1.1). ์—ฌ๊ธฐ๋ถ€ํ„ฐ๋Š” ๊ฐ’์„ ๋‹ค์‹œ ๋ฝ‘์•„์•ผ ํ•  ๋•Œ๋งŒ ํ•„์š”ํ•˜๋‹ค โ€” ์„ผ์„œ๋ฅผ ๋‹ค์‹œ ๋งˆ์šดํŠธํ–ˆ๊ฑฐ๋‚˜, ๋” ์ •ํ™•ํ•œ ๊ฐ’์ด ํ•„์š”ํ•  ๋•Œ. ๊ทธ๋ƒฅ ์“ฐ๋ ค๋Š” ๊ฒƒ๋ฟ์ด๋ฉด /tf_static์— ์ด๋ฏธ ๋‚˜์˜ค๊ณ  ์žˆ์œผ๋‹ˆ ์ด ์ ˆ์€ ๊ฑด๋„ˆ๋›ด๋‹ค.

โš ๏ธ ์ด ์ ˆ์ฐจ์˜ ๋ณ‘์ง„ ์ถœ๋ ฅ์€ ๋ฏฟ์ง€ ๋งˆ๋ผ. 2026-09-05 ๊ฒ€์ฆ์—์„œ dvlc ๋ณ‘์ง„์ด 198 mm ํ‹€๋ฆฐ ๊ฒƒ์œผ๋กœ ๋“œ๋Ÿฌ๋‚ฌ๋‹ค(ยง1.1). ํšŒ์ „์€ 0.68ยฐ ์•ˆ์—์„œ ์ •ํ™•ํ–ˆ๋‹ค. ๊นŠ์ด ๋‹ค์–‘์„ฑ์ด ๋ถ€์กฑํ•˜๋ฉด ๋ณ‘์ง„๊ณผ ํšŒ์ „์ด ์„œ๋กœ ์ƒ์‡„๋˜๋ฉฐ ์ˆ˜๋ ดํ•˜๋Š”๋ฐ, ์žฌํˆฌ์˜ ์˜ค์ฐจ๋งŒ ๋ณด๋ฉด ์ด๊ฒŒ ์•ˆ ๋ณด์ธ๋‹ค.

๋‹ค์‹œ ๋Œ๋ฆฐ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ:

  1. ๋ณ‘์ง„์€ CADยท์ค„์ž๋กœ ๋…๋ฆฝ ๊ต์ฐจ๊ฒ€์ฆํ•œ๋‹ค (๋‘ ์„ผ์„œ ํ•˜์šฐ์ง• ์ค‘์‹ฌ ์‚ฌ์ด ๊ฑฐ๋ฆฌ๋ฅผ ์ง์ ‘ ์žฐ๋‹ค)
  2. ์ˆ˜์ง‘ ์ž์„ธ์˜ ๊นŠ์ด ๋‹ค์–‘์„ฑ์„ ๋Š˜๋ฆฐ๋‹ค โ€” ๊ทผยท์ค‘ยท์›๊ฑฐ๋ฆฌ๋ฅผ ๊ณ ๋ฃจ ์„ž๋Š”๋‹ค
  3. ํšŒ์ „์€ ์ง€๋ฉดํ‰๋ฉด ๊ต์ฐจ๊ฒ€์ฆ์œผ๋กœ ํ™•์ธํ•œ๋‹ค (ยง1.1 "์–ด๋–ป๊ฒŒ ์Ÿ€๋‚˜")

์™œ ์Šค๋กœํ‹€์ด ํ•„์š”ํ•œ๊ฐ€

๋ ˆํผ๋Ÿฐ์Šค ๋ฐ์ดํ„ฐ์…‹์€ ์ด๋ฏธ์ง€๋ฅผ 2 Hz๋กœ ๊ธฐ๋กํ•œ๋‹ค (15.65์ดˆ bag์— points 157๊ฐœ, image 30๊ฐœ). 15 Hz๋กœ ๋œจ๋ฉด ์šฉ๋Ÿ‰๋งŒ 7๋ฐฐ๊ฐ€ ๋˜๊ณ  ์ด๋“์ด ์—†๋‹ค. topic_tools๊ฐ€ Jetson์— ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์•„ ์Šค๋กœํ‹€ ๋…ธ๋“œ๋ฅผ ๋”ฐ๋กœ ๋„์šด๋‹ค.

์ค€๋น„๋œ ์Šคํฌ๋ฆฝํŠธ

Jetson์— ์ด๋ฏธ ์˜ฌ๋ ค๋‘” ๊ฒƒ:

~/calib_throttle.py    /camera/color/image_raw 15Hz โ†’ /calib/image 2Hz
                       + /calib/camera_info ๋ฅผ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์Šคํƒฌํ”„๋กœ ๋™๊ธฐ ๋ฐœํ–‰
~/record_calib.sh      ์Šค๋กœํ‹€ ์ผœ๊ณ  โ†’ ๋…นํ™” โ†’ ๋„๊ณ  โ†’ ๊ฒฐ๊ณผ ์ถœ๋ ฅ

์‚ฌ์šฉ๋ฒ•

ssh jetson-orin-spot '~/record_calib.sh <์ง€์ ๋ช…> 30'
rsync -az jetson-orin-spot:/home/zer01ne-spot/calib_bags/<์ง€์ ๋ช…> ~/์›ํ•˜๋Š”๊ฒฝ๋กœ/

ํ•œ ์ง€์  30์ดˆ ๊ธฐ์ค€ ์•ฝ 190 MB, ์ „์†ก ์•ฝ 2๋ถ„์ด๋‹ค.

๊ธฐ๋ก๋˜๋Š” ํ† ํ”ฝ์€ ์…‹๋ฟ์ด๋‹ค. preprocess -a(์ž๋™ ํ† ํ”ฝ ์„ ํƒ)๊ฐ€ bag๋งˆ๋‹ค image/camera_info/points ๊ฐ 1๊ฐœ๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

/calib/image        sensor_msgs/Image        ~2 Hz
/calib/camera_info  sensor_msgs/CameraInfo   ~2 Hz
/livox/lidar        PointCloud2              10 Hz

์ˆ˜์ง‘ ์กฐ๊ฑด

  • Spot ์ •์ง€ ์ƒํƒœ๋กœ 5~8์ง€์ . MID-360์€ non-repetitive scan์ด๋ผ ์ •์ง€ ๋ˆ„์ ์ด ์ •๋‹ต์ด๋‹ค (preprocess -d ๋ถˆํ•„์š”)
  • ์ง€์ ๋งˆ๋‹ค yaw 30~40ยฐ์”ฉ ๋ณ€ํ™”๋ฅผ ์ค€๋‹ค. ํšŒ์ „ ๊ด€์ธก์„ฑ์ด ์—†์œผ๋ฉด ํ•ด๊ฐ€ ๊ตญ์†Œ ์ตœ์ ์— ๋น ์ง„๋‹ค
  • ์œ ๋ฆฌยท๋ชจ๋‹ˆํ„ฐยท๊ด‘ํƒ ๋ฐ”๋‹ฅ์„ ํ”ผํ•œ๋‹ค. ํ…์Šค์ฒ˜ ์žˆ๋Š” ๋ฒฝ๊ณผ ์ง๊ต ์—ฃ์ง€(๋ฌธํ‹€, ๊ธฐ๋‘ฅ, ๋ฐ•์Šค)๊ฐ€ ์žˆ๋Š” ๊ณณ
  • ์ตœ์†Œ 1์ง€์ ๋งŒ์œผ๋กœ๋„ ๊ณ„์‚ฐ์€ ๋˜์ง€๋งŒ(single-shot ์ง€์›), ์ •ํ™•๋„๋ฅผ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ง€์ ์„ ๊ถŒ์žฅํ•œ๋‹ค

IMU๋Š” ๋„ฃ์ง€ ์•Š๋Š”๋‹ค

direct_visual_lidar_calibration์˜ preprocess๋Š” IMU๋ฅผ ์ฝ์ง€ ์•Š๋Š”๋‹ค. /camera/imu๋Š” ๋กค๋ง์…”ํ„ฐ ๋ถ„์„์šฉ์œผ๋กœ ๋ชฉ์ ์ด ๋‹ค๋ฅด๋‹ˆ ๋ณ„๋„ bag์— ๋‹ด๋Š”๋‹ค.

์ดˆ๊ธฐ๊ฐ’์€ ์ˆ˜๋™์œผ๋กœ

์ž๋™ ์ดˆ๊ธฐ๊ฐ’ ์ถ”์ •์€ SuperGlue๋ฅผ ์“ฐ๋Š”๋ฐ ์ƒ์šฉ ์ด์šฉ์ด ๊ธˆ์ง€๋˜์–ด ์žˆ๋‹ค. initial_guess_manual์„ ์จ์•ผ ํ•˜๊ณ , ์ด๊ฑด GUI(Iridescence)๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ headless์ธ Jetson์ด ์•„๋‹ˆ๋ผ ์ž‘์—…์ž PC์—์„œ ๋Œ๋ฆฐ๋‹ค. ๋Œ€์‘์ ์„ 3์  ์ด์ƒ ํด๋ฆญํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๋กœ์ปฌ ์„ค์น˜๋Š” GTSAMยทCeresยทIridescence ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•ด์„œ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ๊ณต์‹ ๋„์ปค ์ด๋ฏธ์ง€(koide3/direct_visual_lidar_calibration)๋ฅผ ์“ฐ๋Š” ํŽธ์ด ๋น ๋ฅด๋‹ค.


5. ์•Œ๋ ค์ง„ ๋ฌธ์ œ

compressed_image_transport OpenCV ์ถฉ๋Œ (2026-08-29 ํ•ด๊ฒฐ)

์ฆ์ƒ โ€” /camera/color/image_raw/compressed๊ฐ€ ๋นˆ ๋ฉ”์‹œ์ง€(data: [])๋งŒ ๋ฐœํ–‰ํ•˜๊ณ , ๊ตฌ๋…์ž๊ฐ€ ๋ถ™์„ ๋•Œ๋งˆ๋‹ค realsense ๋กœ๊ทธ์— ์—๋Ÿฌ๊ฐ€ ์Ÿ์•„์กŒ๋‹ค.

[CompressedPublisher]: OpenCV(4.8.0) alloc.cpp:73:
(-4:Insufficient memory) Failed to allocate 323193268964880 bytes

์›์ธ โ€” ํ•œ ํ”„๋กœ์„ธ์Šค์— OpenCV ๋‘ ๋ฒ„์ „์ด ๋™์‹œ์— ๋กœ๋“œ๋˜๊ณ  ์žˆ์—ˆ๋‹ค.

librealsense2_camera.so (ros2_ws ๋กœ์ปฌ ๋นŒ๋“œ)  โ†’ libopencv_core.so.408   (JetPack 4.8.0)
cv_bridge, compressed_image_transport (apt)  โ†’ libopencv_core.so.4.5d  (Ubuntu 4.5.4)

realsense๊ฐ€ ๋จผ์ € ๋กœ๋“œ๋˜๋ฏ€๋กœ cv::imencode ์‹ฌ๋ณผ์ด 4.8.0์œผ๋กœ ํ•ด์„๋˜๋Š”๋ฐ, ํ”Œ๋Ÿฌ๊ทธ์ธ์€ 4.5.4 ํ—ค๋” ๊ธฐ์ค€์œผ๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์žˆ๋‹ค. cv::Mat ๋ ˆ์ด์•„์›ƒ์ด ๋‹ฌ๋ผ ์“ฐ๋ ˆ๊ธฐ ํฌ๊ธฐ๋ฅผ ์ฝ๊ณ  ํ• ๋‹น์— ์‹คํŒจํ•œ๋‹ค.

์กฐ์น˜ โ€” cv_bridge์™€ compressed_image_transport๋ฅผ ์„ค์น˜๋œ apt ๋ฒ„์ „๊ณผ ๋™์ผํ•œ ํƒœ๊ทธ๋กœ ์†Œ์Šค๋ฅผ ๋ฐ›์•„ OpenCV 4.8.0์œผ๋กœ ์žฌ๋นŒ๋“œํ•˜๊ณ  ์˜ค๋ฒ„๋ ˆ์ด์— ์˜ฌ๋ ธ๋‹ค. /opt/ros ์›๋ณธ์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์•˜๋‹ค.

cd ~/ros2_ws/src
git clone --branch humble https://github.com/ros-perception/vision_opencv.git
git clone --branch humble https://github.com/ros-perception/image_transport_plugins.git
cd vision_opencv && git checkout 3.2.1              # apt cv_bridge 3.2.1 ๊ณผ ์ผ์น˜
cd ../image_transport_plugins && git checkout 2.5.5  # apt 2.5.5 ์™€ ์ผ์น˜

cd ~/ros2_ws
colcon build --packages-select cv_bridge compressed_image_transport \
  --cmake-args -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=/usr/lib/cmake/opencv4
sudo systemctl restart realsense

svc_realsense.sh๊ฐ€ ์ด๋ฏธ ~/ros2_ws/install/setup.bash๋ฅผ sourceํ•˜๋ฏ€๋กœ ์žฌ์‹œ์ž‘๋งŒ์œผ๋กœ ์ ์šฉ๋œ๋‹ค.

์›๋ณต์ด ํ•„์š”ํ•˜๋ฉด ~/ros2_ws/install/{cv_bridge,compressed_image_transport}๋ฅผ ์ง€์šฐ๊ณ  realsense๋ฅผ ์žฌ์‹œ์ž‘ํ•œ๋‹ค.

ros2_ws์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์ƒˆ๋กœ ๋นŒ๋“œํ•  ๋•Œ ๊ฐ™์€ ํ•จ์ •์— ๋น ์งˆ ์ˆ˜ ์žˆ๋‹ค. apt๋กœ ๊น”๋ฆฐ ROS ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” Ubuntu OpenCV 4.5.4 ๊ธฐ์ค€์ด๊ณ , ์ด ์žฅ๋น„์˜ dev ํ—ค๋”๋Š” JetPack 4.8.0์ด๋‹ค. OpenCV๋ฅผ ์“ฐ๋Š” ๋…ธ๋“œ๋ฅผ ๋กœ์ปฌ ๋นŒ๋“œํ•˜๋ฉด ๋‘˜์ด ์„ž์ธ๋‹ค.

jpeg_quality ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š์Œ (๋ฏธํ•ด๊ฒฐ)

camera.color.image_raw.jpeg_quality๋ฅผ ๋ฐ”๊ฟ”๋„ ์ถœ๋ ฅ ํฌ๊ธฐ๊ฐ€ ๊ทธ๋Œ€๋กœ๋‹ค.

param 95 โ†’ 99465 B
param 40 โ†’ 97989 B
param 30 โ†’ 100386 B    (๊ตฌ๋…์„ ๋Š์—ˆ๋‹ค ๋‹ค์‹œ ๋ถ™์—ฌ๋„ ๋™์ผ)

๊ฐ™์€ ํ”„๋ ˆ์ž„์„ Jetson์—์„œ cv2๋กœ ์ง์ ‘ ์ธ์ฝ”๋”ฉํ•˜๋ฉด q95 95.6 KB / q50 22.6 KB / q10 9.6 KB๊ฐ€ ๋‚˜์˜จ๋‹ค. ์ฆ‰ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•ญ์ƒ q95๋กœ ์ธ์ฝ”๋”ฉํ•˜๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์„ ์–ธ๋งŒ ๋˜์–ด ์žˆ๋‹ค. compressed_image_transport 2.5.5 ์ž์ฒด ๋ฌธ์ œ๋กœ ๋ณด์ธ๋‹ค.

์›๊ฒฉ ๋Œ€์—ญํญ์„ ์ค„์ด๋ ค๋ฉด ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์— ๊ธฐ๋Œ€์ง€ ๋ง๊ณ  ยง2์˜ ํ”„๋ฆฌ๋ทฐ ๋…ธ๋“œ ๋ฐฉ์‹์„ ์“ด๋‹ค.


6. ์ฐธ๊ณ  โ€” SPOT ๋ณธ์ฒด์™€ ์„ผ์„œ๋Š” ๋ณ„๊ฐœ๋‹ค

LiDAR์™€ ์นด๋ฉ”๋ผ๋Š” Jetson์— ์ง๊ฒฐ๋˜์–ด ์žˆ์–ด์„œ SPOT ๋กœ๋ด‡ ๋ณธ์ฒด๊ฐ€ ๊บผ์ ธ ์žˆ์–ด๋„ ์ •์ƒ ๋™์ž‘ํ•œ๋‹ค. ์‹ค์ œ๋กœ ๋กœ๋ด‡์ด 18์‹œ๊ฐ„ ๋„˜๊ฒŒ ์‘๋‹ต ์—†๋Š” ์ƒํƒœ์—์„œ๋„ ๋‘ ์„ผ์„œ๋Š” ์ •์ƒ ๋ฐœํ–‰ ์ค‘์ด์—ˆ๋‹ค.

๋กœ๋ด‡ ๋ณธ์ฒด ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋ฉด ์ด๋ ‡๊ฒŒ ๋ณด์ธ๋‹ค:

spot-state-ro ๋กœ๊ทธ:  ProxyConnectionError: The proxy on the robot could not be reached.
ip neigh dev eno1:   192.168.77.72  INCOMPLETE      โ† ARP ์‘๋‹ต ์—†์Œ

INCOMPLETE๋Š” ๋กœ๋ด‡์ด L2์—์„œ ์•„์˜ˆ ์•ˆ ๋ณด์ธ๋‹ค๋Š” ๋œป์ด๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ ์ „์› ๋˜๋Š” ์ด๋”๋„ท ์—ฐ๊ฒฐ์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋ธŒ๋„ท์€ 192.168.77.x์ด๊ณ  Jetson์ด eno1์—์„œ DHCP ์„œ๋ฒ„(spot-dhcp) ์—ญํ• ์„ ํ•œ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ