Docker에 있는 ROS 노드를 Foxglove를 통해서 시각화하는 방법
1. 원하는 버전의 ROS 이미지를 받는다.
ros:jazzy-ros-core
althack/ros2:humble-full-2025-02-01
etc
받은 이미지에 추가적으로 설치할 것이 있기 때문에 받은 이미지에 추가적으로 설치할 라이브러리를 설정해주고 다시 Dock 이미지 만든다
FROM ros:jazzy-ros-core
RUN apt-get update && apt-get install -y \
ros-jazzy-demo-nodes-cpp \
ros-jazzy-foxglove-bridge \
ros-jazzy-tf2-ros
$ docker build -t <원하는 이름> .
2. Docker 실행
docker run -it <이미지 이름> <COMMAND>
setup.bash 파일과 ROS_DOMAIN_ID 설정해주고 는 추가사항 (local IP와 Port만 사용하기 때문에 )
ros_entrypoint.sh 파일에서 setup.bash 와 ROS ID 설정하면 docker 실행시킬 때 자동으로 실해

3. Foxglove WebSocket 서버 실행
이전까지는 단순히 ROS가 설치된 Docker 컨테이너를 실행했을 뿐이고, 이 컨테이너가 Local과 통신하려면 Port를 설정해줘야 한다.
- Foxglove의 Foxglove Websocket이 기본으로 듣는 Local Port 번호는 8765이다.
- 그렇다면 Docker 컨테이너 또한 Port 8765를 통해 Local과 통신해야 된다. (자기 컴퓨터에서 실행되는 컨테이너니까, 별다른 설정이 없으면 Local이겠거니…)
- 대충 Foxglove – Local PC – Docker 가 하나의 길로 연결~
중요한건!!!
docker run -it -p 8765:8765 <이미지 이름>
Docker 컨테이너의 Port를 설정해주는 거다.
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
이러면 끝~~

foxglove에서 Local로 Port번호 8765를 사용하는 ROS 통신을 다 받아올 것이다.

^^
대충 아마 msg pub…