소개
AutoDrive는 자율주행과 관련된 플랫폼입니다. 저는 f1tenth 시뮬레이터 대회를 통해 알게되었습니다.
시뮬레이터와 API 모두 도커 환경, 리눅스 윈도우, 맥 로컬 환경을 제공하고 있습니다. 그러나 리눅스 환경에서는 쉽게 접근할 수 있는 반면 윈도우 환경에서는 접근하기 어렵고 윈도우 로컬과 도커 환경을 연결에 관한 설명을 찾을 수 없어 이 게시글을 작성하게 되었습니다.
목표
윈도우 11 환경에서 f1tenth autodrive 시뮬레이터를 설치하고 개발 할 수 있는 환경을 구축하는 것이 목표입니다. 아래 내용을 순서대로 따라하시면 순조롭게 환경 구축이 가능합니다.
1. Docker 설치
https://www.docker.com/products/docker-desktop/
docker desktop window 버전으로 설치하면 됩니다. 자세한 도커 설치 과정은 생략하겠습니다.
2. AutoDrive 시뮬레이터 설치
Competition 버전에 따라서 사용할 수 있는 맵이 다르게 구성되어있습니다.
현재까지 F1TENTH @ IROS 2024, F1TENTH @ CDC 2024 까지 총 2번의 대회가 진행되었으며 글을 작성하고 있는 현재 시점에 3번째 ROBORACER @ ICRA 2025 대회가 진행 중에 있습니다.
여기서는 ROBORACER @ ICRA 2025의 compete 버전으로 설치하고자 합니다.
또한, 도커 환경이 아닌 윈도우 환경의 로컬 환경으로 시뮬레이터를 설치하고자 합니다. 시뮬레이터 환경은 API 환경에 비해서 자주 사용하는 환경이 아니라 켜놓고 데이터를 받아오는 용도로 주로 사용되긴 합니다.
그러면 오히려 도커 환경을 시뮬레이터로 해야하는게 아닌가라는 생각이 들지만, 윈도우 환경에서 시뮬레이터를 도커로 실행하면 아래 사진 처럼 제대로 동작하지 않습니다.
혹시나 해결 방법을 찾으신 분은 댓글로 알려주시면 감사하겠습니다.
윈도우 11 로컬 설치 방법
이제 시뮬레이터 설치 방법을 설명하겠습니다.
https://autodrive-ecosystem.github.io/competitions/roboracer-sim-racing-icra-2025/#resources
위 사이트 접속 후 Local Resources
의 compete -> Windows
링크를 클릭하여 다운받습니다.
그러면 바로 시뮬레이터 압축 파일이 다운로드됩니다. 파일 압축 해제하고 들어가면 AutoDRIVE Simulator.exe
파일이 존재합니다.
더블 클릭하여 실행하여봅시다.
로컬 환경이여서 잔렉 없이 돌아가는 것을 확인할 수 있었습니다.
3. WSL2 설치
윈도우에서 도커 데스크톱을 사용하려면 WSL2를 먼저 설치해야하는 것으로 알고 있습니다. 먼저 WSL2를 설치하시길 바랍니다. 여기서는 자세한 설치과정은 생략하겠습니다.
4. VcXsrv 설치
https://sourceforge.net/projects/vcxsrv/
api 도커를 설치하기 전에 윈도우에서는 반드시 VcXsrcv X Launch를 설치해줘야합니다.
사이트에 접속하여 Download 버튼을 눌러 설치를 진행해주세요. 설치 과정에는 그냥 next 버튼만 누르면 진행됩니다.
실행 방법은 바탕화면에 생긴 XLaunch
아이콘 또는 시작 메뉴에서 실행하시면 됩니다.
그리고 위 사진대로 진행하시면 되는데 반드시 Native opengl
그리고 Disable access control
체크 박스를 체크하시길 바랍니다.
그리고 마침 버튼을 눌러서 최종적으로 실행이 완료되면 작업표시줄에 XLaunch 아이콘이 표시됩니다.
5. API 도커 설치
api 이미지 가져오기
도커 데스크톱이 정상적으로 설치가 완료되었으면 터미널에서 docker -v
명령어를 입력했을 때 현재 설치된 버전이 출력됩니다.
이 상태에서 AutoDrive 페이지에서 Docker Containers
의 AutoDRIVE Devkit -> compete
를 클릭하여 도커 페이지로 이동합니다.
해당 페이지에서 autodriveecosystem/autodrive_roboracer_api:2025-icra-compete
도커 이미지를 가져오면 되는데 아래 명령어로 이미지를 저장할 수 있습니다.
docker pull autodriveecosystem/autodrive_roboracer_api:2025-icra-compete
이미지를 가져오는 작업이 완료되면 아래 명령어로 출력된 image와 사진의 image가 똑같이 표시되는지 확인합니다.
docker images
api 도커 컨테이너 실행하기
로컬에 설치된 시뮬레이터와 도커 환경의 api 환경(wsl2)이 통신하기 위해서는 포트를 동일하게 설정해줘야합니다. 그래서 제공되는 실행 명령어 대신 아래 명령어로 해당 이미지를 컨테이너로 실행합니다.
docker run -it --name autodrive_roboracer_api -p 4567:4567 --ipc=host --entrypoint /bin/bash -v /tmp/.X11-unix:/tmp/.X11-unix:rw --env DISPLAY=host.docker.internal:0.0 --privileged --gpus all autodriveecosystem/autodrive_roboracer_api:2025-icra-compete
여기서 -p의 4567은 시뮬레이터의 기본 포트입니다. 변경해도 되지만, /home/autodrive_devkit/src/autodrive_devkit/autodrive_roboracer/autodrive_bridge.py
해당 파일 밑에 포트를 참고하여 변경하시길 바랍니다.
그리고 원래 제공되는 명령어에는 --rm 인자가 붙지만 개발환경에 --rm이 붙으면 저장되지 않기 때문에 제거하여 사용합니다.
위 명령어를 실행하게 되면 아래 사진처럼 /home/autodrive_devkit
경로로 이동합니다.
기본적으로는 tmux와 같은 프로그램이 설치되어있지 않기 때문에 apt update && apt install tmux -y
와 같은 명령어로 설치하여 사용하는 것이 편리합니다.
아래 명령어를 입력하여 rviz와 기본적인 프로세스를 실행합니다.
ros2 launch autodrive_roboracer bringup_graphics.launch.py
명령어를 실행하면 위 사진처럼 rviz가 실행됩니다. 만약 빨간색으로 오류가 발생한다면 xlaunch가 실행되어있지 않거나 xlaunch가 실행되어있다고 하더라도 native opengl이 정상동작하고있지 않기 때문에 xlaunch 프로그램을 재설치 또는 재실행 하시길 바랍니다.
일단 현재 rviz에서는 아무것도 나타나지 않습니다. 시뮬레이터를 연결해야만 topic이 활성화되면서 정보가 나타납니다.
시뮬레이터 연결하기
시뮬레이터 좌측 상단에 IP Address와 Port Number를 입력할 수 있는 칸이 있습니다. 여기에 wsl2 ip를 입력해야합니다. 윈도우 터미널(도커x) 에서 wsl hostname -I
명령어를 입력하고 출력되는 ip를 시뮬레이터에 입력해줍니다.
포트 번호는 도커 컨테이너를 실행할 때 사용한 포트 번호를 입력하면 되며 저는 기본 4567로 컨테이너를 생성하였으므로 따로 입력하지 않았습니다.
그리고 왼쪽에 Disconnected로 되어있는 버튼을 누르면 Connected로 글자가 바뀌고 연결됩니다. 여기서 rviz를 다시 확인해보면 기존에는 보이지 않던 토픽들이 정상적으로 나타나는 것을 확인 할 수 있습니다.
도커에서 여러 터미널로 접속하기
위에서 tmux를 이용하는 것이 편리하다고 설명하였습니다. 만약 tmux를 사용하지 않더라도 실행중인 도커 컨테이너의 터미널에 접속하는 방법은 있습니다. vs code로 접속하여도 되고 docker exec -it autodrive_roboracer_api bash
명령어로 접속하여도 됩니다.
위 사진은 새로운 터미널에서 기존의 터미널에 접속하고 현재 나타나는 토픽을 확인한 결과입니다.
라이다 토픽도 출력해보면 정상적으로 퍼블리시되고 있는 것을 확인할 수 있었습니다.
결론
위 과정을 통해서 윈도우 로컬 환경에서 시뮬레이터를 설치하고 wsl2 도커 환경에서 api 개발 환경을 구축할 수 있었습니다.
저는 주로 우분투 컴퓨터로 시뮬레이터와 api 모두 도커 환경으로 작업을 진행하였으나
혹시 로컬로 설치하면 더 빨라지지 않을까 기대는 했는데 이번에 윈도우 환경에서 시뮬레이터를 설치해보니 뭔가 더 매끄럽게 진행되는 것 같으면서도 잘 모르겠습니다.
여담으로 api, 시뮬레이터를 동시에 실행하고 있을 때 cpu 100% 점유하고 gpu는 22% 정도 점유하고있네요.
다음에는 AutoDrive에서 Localization, SLAM 관련해서 작성 해보려고 합니다.
잘못된 정보 및 질문은 댓글로 적어주시길 바랍니다. 감사합니다.
'f1tenth' 카테고리의 다른 글
[AutoDrive] Localization 1. Odom 토픽 만들기 (rf2o laser odometry) 및 SLAM Tool Box로 맵 만들기 (0) | 2025.05.12 |
---|