시뮬레이터 LGGSVL을 자동으로 실행하는 Pythhon API를 설치하고 샘플 프로그램을 실행합니다
개시하다
본고는 자동 운행 시뮬레이터인 LGGSVL Pytohon API의 설치 방법, 샘플 프로그램의 실행 방법, 간단한 실시 예를 소개한다.
LGGSVL의 설치 방법과 기본적인 사용 방법은 이 글에서 간단명료하게 소개되었다.꼭 참고하세요.
https://qiita.com/zacc/items/13c4e04bc04fb29c9aec
2020/05/21
Pythhon API를 사용한 간단한 구현 예가 추가되었습니다.
비례 제어를 통해 밸브를 제어하여 목표 속도를 따라가다.
컨디션
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에 대한 기사를 쓰고 싶습니다.
이상은 간단한 설명입니다.또 다른 각양각색의 샘플 프로그램이 있으니 시도해 보세요!
Reference
이 문제에 관하여(시뮬레이터 LGGSVL을 자동으로 실행하는 Pythhon API를 설치하고 샘플 프로그램을 실행합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ddside/items/821194f289183a38a9d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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에 대한 기사를 쓰고 싶습니다.
이상은 간단한 설명입니다.또 다른 각양각색의 샘플 프로그램이 있으니 시도해 보세요!
Reference
이 문제에 관하여(시뮬레이터 LGGSVL을 자동으로 실행하는 Pythhon API를 설치하고 샘플 프로그램을 실행합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ddside/items/821194f289183a38a9d2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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에 대한 기사를 쓰고 싶습니다.
이상은 간단한 설명입니다.또 다른 각양각색의 샘플 프로그램이 있으니 시도해 보세요!
Reference
이 문제에 관하여(시뮬레이터 LGGSVL을 자동으로 실행하는 Pythhon API를 설치하고 샘플 프로그램을 실행합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ddside/items/821194f289183a38a9d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)