Foxglove ROS2 Visualization Tool
1. Foxglove Studio
- Foxglove는 ROS2 시뮬레이션 시각화를 위한 도구
- 3D, Map, Plot, Image 등 다양한 시각화 기능을 제공
- 참고: “Foxglove Studio"는 2024년 2월 마지막 오픈소스 릴리즈(v1.87.0)를 끝으로 개발이 중단되었고, 이후 제품이 “Foxglove"로 리브랜딩되어 로봇 데이터 수집/관리까지 포괄하는 상용 플랫폼으로 확장됨. 아래 설치 방법은 과거 오픈소스 Studio 기준이며, 최신 버전은 foxglove.dev 에서 확인 필요
1. Installation
1.1. Desktop App
- Foxglove Download에서 OS에 맞는 설치파일을 다운로드
- 설치파일을 실행하여 설치
1.2. Web(Docker)
- 과거 오픈소스 Studio는 Docker image로 Self Hosting 가능했으나, 현재는 유지보수되지 않으므로 최신 버전이 필요하면 Desktop App 또는 studio.foxglove.dev 사용 권장
# docker run
docker run --rm -p "8080:8080" ghcr.io/foxglove/studio:latest
2. Usage
- Desktop Foxglove Studio를 실행하거나 Web
localhost:8080에 접속 Open connection을 클릭하여 foxglove bridge를 통해 연결- ws 주소를 입력한 뒤
Open버튼을 클릭하여 연결
2. ros foxglove bridge
- Foxglove Studio에서 ROS2 연결을 위한 ros foxglove bridge 제공
- ros foxglove bridge에서 제공하는 오픈소스 도구
- ROS2와 Foxglove Studio를 연결하기 위한 bridge 역할을 함
- 해당 소스를 빌드하여 사용하거나 docker image를 사용하여 실행 가능
2.1. Source Build
# Install ros foxglove bridge
cd <path/to/your/ros_ws>
git clone https://github.com/foxglove/ros-foxglove-bridge.git src/ros-foxglove-bridge
rosdep update
rosdep install --ignore-src --default-yes --from-path src
# Build ros foxglove bridge
colcon build --event-handlers console_direct+ --symlink-install
source install/local_setup.bash
ros2 launch foxglove_bridge foxglove_bridge_launch.xml
2.1.1. Run
# Run ros2 foxglove bridge
ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765
2.2. Docker
2.2.1. 직접 Docker Build
소스에 있는 Dockerfile을 사용하여 docker image를 빌드
# Build docker
docker build -t foxglove-bridge:latest -f Dockerfile.ros2 .
2.2.2. 기존 Docker Image 사용
# Pull docker image
docker pull ghcr.io/foxglove/humble-ros2-bridge:latest
2.2.3. Run Script
# Run docker container
export ROS_DOMAIN_ID=118
export DOCKER_BRIDGE=my-bridge
export BRIDGE_PORT=8765
export DOCKER_NAME=foxglove_bridge
export ROBOT_NAME=myrobot
docker run -itd \
--name $DOCKER_NAME \
--net $DOCKER_BRIDGE \
--env ROBOT_NAME=$ROBOT_NAME \
--env ROS_DOMAIN_ID=$ROS_DOMAIN_ID \
-p $BRIDGE_PORT:$BRIDGE_PORT \
ghcr.io/foxglove/humble-ros2-bridge:latest