wsl2/docker 환경에서 단일 로봇 시뮬레이터를 설치/실행!

개요



TOPPERS/하코마테 WG에서는, 단일 로봇 시뮬레이터 를 일반 공개하고 있습니다만, 인스톨의 수고가 상당히 걸립니다. 그래서, wsl2/docker를 사용해, 일괄 인스톨러 만들었으므로, 소개합니다. 빠른 기계라면 약 10 분 정도로 설치 끝납니다.

전제



다음 환경은 이미 설치되어 있다고 가정합니다.
  • Windows10 Home or Pro(둘 다 괜찮습니다)
  • WSL2
  • docker

  • 또한 설치하기 전에 docker를 시작해야합니다.
    $ sudo service docker start
    

    설치 절차



    절차는 다음과 같습니다.
  • 상자 정원 WG 저장소 (hakoniwa-Unity-HackEV)를 복제
  • 설치 프로그램을 두드리는

  • 상자 정원 WG 리포지토리 (hakoniwa-Unity-HackEV) 복제



    WSL2에서 Windows의 모든 폴더로 이동하여 작업 디렉토리를 만들고 이동합니다.
    $ mkdir toppers_work
    $ cd toppers_work
    

    복제합니다.
    $ git clone https://github.com/toppers/hakoniwa-Unity-HackEV.git
    

    설치 프로그램을 두드리는



    다음 디렉토리로 이동합니다.
    $ cd hakoniwa-Unity-HackEV/docker/v850
    

    인스톨러를 두드립니다(약 10분 정도라고 생각합니다).
    $ utils/install.bash
    

    설치가 성공하면 다음과 같은 docker image가 들어 있어야합니다.
    $ sudo docker images
    REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
    kanetugu2015/athrill-v850   v1.1.1              05fbd93397be        4 hours ago         370MB
    kanetugu2015/ev3rt-v850     v1.0.0              f0c6b1412652        6 days ago          1.78GB
    

    빌드 방법



    EV3RT의 응용 프로그램은 base_practice_1이라는 폴더로 작성됩니다.
    빌드 방법은 다음과 같습니다.

    빌드용 docker 컨테이너 시작



    WSL2에서 다음 명령을 사용하여 빌드 컨테이너를 시작합니다.
    $ bash run-builder.bash
    root@MyComputer:~#
    

    빌드 실행



    시작된 docker 컨테이너에서 다음 명령을 두드리기 만하면됩니다.
    # ./clean_build.bash base_practice_1
    

    시뮬레이션 실행 방법



    시뮬레이션을 실행하려면 Unity 앱과 athrill을 각각 시작해야합니다.

    Unity 앱 실행



    Unity 앱은 wsl2에서 다음 명령으로 실행됩니다.
    $ ./utils/start-unity.bash single-robot
    

    성공하면 다음 UI가 시작됩니다.



    athrill 실행



    athrill은 docker 컨테이너에서 실행됩니다.

    WSL2에서 다음 명령을 사용하여 athrill 실행 컨테이너를 시작합니다.
    $ bash run-athrill.bash base_practice_1
    

    일단 시작되면 athrill 실행 명령을 두드리기 만하면됩니다.
    # ./start-athrill.bash
    

    데모



    시뮬레이션 실행의 데모는 이런 느낌입니다.


    보충



    주의점으로서, 현재의 WSL2는 MMAP의 결함이 있는 것 같습니다.
    그러므로 Unity와 athrill의 통신 방식은 UDP 통신으로 하고 있습니다.
    WSL2의 MMAP 결함이 해소되면 MMAP 방식의 검토도 진행하고 싶습니다.

    좋은 웹페이지 즐겨찾기