CS

ROS2 DDS ν™˜κ²½ μ„€μ • ν™•μΈν•˜κΈ°: `ps` λͺ…λ Ήμ–΄ ν™œμš© κ°€μ΄λ“œ

codevil 2025. 8. 19. 20:02

πŸ”Ž ROS2 DDS ν™˜κ²½ μ„€μ • ν™•μΈν•˜κΈ°: ps λͺ…λ Ήμ–΄ ν™œμš© κ°€μ΄λ“œ

ROS2λ₯Ό μ‹€ν–‰ν•˜λ‹€ 보면

  • DDS μ„€μ • 파일 (CYCLONEDDS_URI, FASTRTPS_DEFAULT_PROFILES_FILE)
  • ROS Domain ID (ROS_DOMAIN_ID)
  • RMW 선택 (RMW_IMPLEMENTATION)

이런 ν™˜κ²½ λ³€μˆ˜λ“€μ΄ μ‹€μ œ μ‹€ν–‰λœ ν”„λ‘œμ„ΈμŠ€μ— μ–΄λ–»κ²Œ μ μš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κ³  싢을 λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
이럴 λ•Œ μœ μš©ν•˜κ²Œ μ“Έ 수 μžˆλŠ” 도ꡬ가 λ°”λ‘œ ps μž…λ‹ˆλ‹€.


1. μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ μ°ΎκΈ°

λ¨Όμ € νŠΉμ • λ…Έλ“œ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.

ps -ef | grep <ν”„λ‘œμ„ΈμŠ€λͺ…>

μ˜ˆμ‹œ (talker λ…Έλ“œ μ‹€ν–‰ 쀑):

ps -ef | grep talker

2. ps --pid 둜 νŠΉμ • ν”„λ‘œμ„ΈμŠ€ 보기

--pid μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λ©΄ νŠΉμ • PID의 ν”„λ‘œμ„ΈμŠ€ μƒνƒœλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

ps --pid <PID> -ef
  • <PID>: ν”„λ‘œμ„ΈμŠ€ ID
  • -ef: ν’€ 포맷 좜λ ₯

3. μ‹€ν–‰ ν™˜κ²½ λ³€μˆ˜ ν™•μΈν•˜κΈ°

ν™˜κ²½ λ³€μˆ˜λŠ” /proc/<PID>/environ 에 κΈ°λ‘λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
이λ₯Ό ν™•μΈν•˜λ©΄ μ‹€μ œ λ…Έλ“œκ°€ μ–΄λ–€ DDS μ„€μ •κ³Ό Domain ID둜 μ‹€ν–‰λ˜κ³  μžˆλŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

cat /proc/<PID>/environ | tr '\0' '\n'

μ˜ˆμ‹œ 좜λ ₯:

CYCLONEDDS_URI=file:///root/ros_ws/cyclonedds.xml
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ROS_DOMAIN_ID=10

πŸ‘‰ 이 과정을 톡해 μ‹€μ œ λ…Έλ“œ μ‹€ν–‰ μ‹œ 적용된 DDS μ„€μ •, RMW μ’…λ₯˜, Domain ID λ₯Ό 검증할 수 μžˆμŠ΅λ‹ˆλ‹€.


4. ps --ppid 둜 μžμ‹ ν”„λ‘œμ„ΈμŠ€ μΆ”μ ν•˜κΈ°

ROS2μ—μ„œ launch λͺ…령을 μ“°λ©΄ μ—¬λŸ¬ λ…Έλ“œκ°€ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€(launch) μ•„λž˜μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.
μ΄λ•Œ --ppid μ˜΅μ…˜μ„ μ“°λ©΄ νŠΉμ • Launch ν”„λ‘œμ„ΈμŠ€μ˜ μžμ‹λ“€μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

ps --ppid <Launch_PID> -ef

μ˜ˆμ‹œ (Launch PID = 91):

ps --ppid 91 -ef

→ μ–΄λ–€ λ…Έλ“œλ“€μ΄ launch에 μ˜ν•΄ μ‹€ν–‰λ˜μ—ˆλŠ”μ§€ ν•œλˆˆμ— 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


5. μ‹€μ œ ν™œμš© μ‹œλ‚˜λ¦¬μ˜€

  1. DDS μ„€μ • 검증CYCLONEDDS_URI, RMW_IMPLEMENTATION 확인
  2. ps -ef | grep talker cat /proc/<PID>/environ | tr '\0' '\n'
  3. ROS Domain 확인→ λ…Έλ“œλ“€μ΄ 같은 Domain IDλ₯Ό μ“°λŠ”μ§€ 비ꡐ
  4. cat /proc/<PID>/environ | tr '\0' '\n' | grep ROS_DOMAIN_ID
  5. Launch 트리 확인→ launch에 μ˜ν•΄ μ‹€ν–‰λœ λ…Έλ“œ 전체 확인
  6. ps --ppid <Launch_PID> -ef

βœ… 정리

  • ps --pid: νŠΉμ • ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 확인
  • ps --ppid: λΆ€λͺ¨ PID κΈ°μ€€μœΌλ‘œ μžμ‹ ν”„λ‘œμ„ΈμŠ€ 좔적
  • /proc/<PID>/environ: ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ ν™˜κ²½ λ³€μˆ˜ 확인

이 방법을 ν™œμš©ν•˜λ©΄ ROS2 λ…Έλ“œκ°€ μ‹€μ œ μ–΄λ–€ DDS μ„€μ •κ³Ό Domain IDμ—μ„œ λ™μž‘ν•˜λŠ”μ§€ μ†μ‰½κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.