● 아! 이해했습니다. 모든 파일이 다 ROS2를 사용하고 있네요. 원래도 ROS2였는데 잘 작동했다는 말씀이시죠?
그렇다면 코드가 변한 게 아니라 환경이 변했을 가능성이 높습니다.
환경변수를 확인해봅시다:
● Bash(env | grep -i cyclone)
⎿ PKG_CONFIG_PATH=/home/user/unitree_ros2/cyclonedds_ws/install/cyclonedds/lib/x86_64-linux-gnu/pkgconfig:/home/user/unitree
_ros2/cyclonedds_ws/install/cyclonedds/lib/pkgconfig
AMENT_PREFIX_PATH=/home/user/unitree_ros2/cyclonedds_ws/install/unitree_hg:/home/user/unitree_ros2/cyclonedds_ws/install/u
… +19 lines (ctrl+o to expand)
● 찾았습니다!
CYCLONEDDS_URI가 설정되어 있는데 <Interfaces> 부분이 비어있습니다:
CYCLONEDDS_URI=<CycloneDDS><Domain><General><Interfaces>
</Interfaces></General></Domain></CycloneDDS>
원래는 여기에 인터페이스가 지정되어 있었을 겁니다! 예를 들면:
- <NetworkInterface name="lo"/> 또는
- <NetworkInterface name="eno1"/> (그때는 케이블이 연결되어 있었거나)
해결 방법:
● Bash(export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces><NetworkInterface
name="lo"/></Interfaces></General></Domain></CycloneDDS>' && echo "Set to loop…)
⎿ Running…
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Bash command
export CYCLONEDDS_URI='<CycloneDDS><Domain><General><Interfaces><NetworkInterface
name="lo"/></Interfaces></General></Domain></CycloneDDS>' && echo "Set to loopback"
Set CYCLONEDDS_URI to use loopback
Do you want to proceed?
❯ 1. Yes
2. Yes, and don't ask again for export CYCLONEDDS_URI commands in /home/user/unitree_mujoco/simulate_python
3. Type here to tell Claude what to do differently
user@X299X:~/unitree_mujoco/example/python$ env | grep -E "(CYCLONEDDS|RMW|ROS)" | sort
CYCLONEDDS_URI=<CycloneDDS><Domain><General><Interfaces>
RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ROS_DISTRO=foxy
ROS_LOCALHOST_ONLY=0
ROS_PYTHON_VERSION=3
ROS_VERSION=2