시뮬레이터 LGGSVL을 자동으로 실행하는 Pythhon API를 설치하고 샘플 프로그램을 실행합니다

9101 단어 SimulatorPython

개시하다


본고는 자동 운행 시뮬레이터인 LGGSVL Pytohon API의 설치 방법, 샘플 프로그램의 실행 방법, 간단한 실시 예를 소개한다.
LGGSVL의 설치 방법과 기본적인 사용 방법은 이 글에서 간단명료하게 소개되었다.꼭 참고하세요.
https://qiita.com/zacc/items/13c4e04bc04fb29c9aec
2020/05/21
Pythhon API를 사용한 간단한 구현 예가 추가되었습니다.
비례 제어를 통해 밸브를 제어하여 목표 속도를 따라가다.

컨디션

  • Windows10 64bit
  • Core i7-8700K
  • GeForce GTX 1080Ti
  • Git 2.19.1.windows.1
  • Python3.7
  • LGSVL 2020.03
  • Python API 설치


    Pythhon API의 공식 문서: https://www.lgsvlsimulator.com/docs/python-api/
    Pythhon API의 웨어하우스: https://github.com/lgsvl/PythonAPI
    Python API의 창고를 복제하고 설치합니다.LGGSVL의 파이썬 API는 파이썬 3이다.대응 5>=.
    git clone https://github.com/lgsvl/PythonAPI.git
    cd PythonAPI
    pip install .
    

    샘플 프로그램 실행


    Pythhon API 창고의 샘플 프로그램을 실행해 보십시오.샘플 프로그램은 "quickstart"라는 폴더에 있습니다.
    먼저 LGGSVL의 브라우저에서 "Simultians 태그"→"API Only"→"재생 버튼"순서로 클릭합니다.

    그래서 저는 LGSVL Simulator에게 "API ready"라고 말했습니다.대화 상자.

    이 상태에서 Pythhon API 창고의 샘플 프로그램을 실행합니다.
    python ./quickstart/05-ego-drive-in-circle.py
    
    아래와 같이 Enter 키를 누릅니다.
    Current time =  0
    Current frame =  0
    Press Enter to start driving
    
    그러자 찻간이 빙빙 돌았다.

    설치 예


    이곳에서 비례 제어를 사용하여 절기문을 제어하여 차량이 목표 속도를 따라가도록 해 보자.코드는 다음과 같습니다.
    import lgsvl
    import os
    import numpy as np
    
    
    def p_control(target_speed, current_speed):
        """
        比例制御
        :param target_speed: 目標速度
        :param current_speed: 現在速度
        :return: スロットル値
        """
        k_p = 0.05
        error = target_speed - current_speed
        throttle = np.clip(error * k_p, 0.0, 1.0)
    
        return throttle
    
    
    if __name__ == '__main__':
        sim = lgsvl.Simulator(os.environ.get("SIMULATOR_HOST", "127.0.0.1"), 8181)
    
        # マップの読み込み
        # 障害物が何もないマップを指定します
        map_name = "WideFlatMap"
        if sim.current_scene == map_name:
            sim.reset()
        else:
            sim.load(map_name)
    
        # 車両をスポーンできる位置(transform)のリストを取得
        spawns = sim.get_spawn()
    
        # エゴ車の初期状態を決める
        state = lgsvl.AgentState()
        state.transform = spawns[0]
        # シミュレータにエゴ車を追加する
        ego = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state)
    
        # 目標速度[km/h]
        target_speed = 50.0
        # 制御周期[sec]
        time_step = 0.05
    
        while True:
            # 現在の速度[km/h]を取得
            # ここではy軸(地面に対して垂直)の速度は無視します
            state = ego.state
            current_speed = np.linalg.norm([state.velocity.x, state.velocity.z]) * 3.6
    
            # スロットル値を取得
            throttle = p_control(target_speed, current_speed)
    
            # エゴ車に制御値を適用
            control = lgsvl.VehicleControl()
            control.throttle = throttle
            ego.apply_control(control, True)
    
            # シミュレータの時間をtime_stepだけ進める
            sim.run(time_limit=time_step)
    
            # 現在の速度をコンソールに出力
            print("Current speed: {:.1f} [km/h]".format(current_speed))
    
    
    
    상기 샘플 프로그램의 실행 절차와 같은 절차에 따라 이쪽 코드를 실행하면 지정한 목표 속도로 직행합니다.

    끝말


    파이thhon API를 사용하면 차량을 제어하고 센서 정보 등을 얻을 수 있다.
    LGGSVL은 오토웨어 등 자율주행 소프트웨어와 협업할 수 있지만, 파이thhon API를 이용해 오리지널 자율주행차를 제작할 수도 있다고 생각한다.
    이제부터 LGGSVL을 사용한 파이thhon API에 대한 기사를 쓰고 싶습니다.
    이상은 간단한 설명입니다.또 다른 각양각색의 샘플 프로그램이 있으니 시도해 보세요!

    좋은 웹페이지 즐겨찾기