Installieren Sie die Python-API des automatischen Fahrsimulators LGSVL und führen Sie das Beispielprogramm aus

Einführung

In diesem Artikel werde ich vorstellen, wie die Python-API von LGSVL, einem automatischen Fahrsimulator, installiert wird, wie ein Beispielprogramm ausgeführt wird und ein einfaches Implementierungsbeispiel. Die Installationsmethode und die grundlegende Verwendung von LGSVL werden in diesem Artikel auf leicht verständliche Weise vorgestellt. Bitte nehmen Sie Bezug darauf. https://qiita.com/zacc/items/13c4e04bc04fb29c9aec

2020/05/21 Ein einfaches Implementierungsbeispiel mit der Python-API wurde hinzugefügt. Die Drossel wird so gesteuert, dass auf die Zielgeschwindigkeit eine proportionale Steuerung folgt.

Umgebung

Python-API-Installation

Offizielle Python-API-Dokumentation: https://www.lgsvlsimulator.com/docs/python-api/ Python-API-Repository: https://github.com/lgsvl/PythonAPI

Klonen und installieren Sie das Python-API-Repository. Die Python-API von LGSVL unterstützt Python 3.5> =.

git clone https://github.com/lgsvl/PythonAPI.git
cd PythonAPI
pip install .

Beispielprogramm ausführen

Versuchen Sie, das Beispielprogramm im Python-API-Repository auszuführen. Das Beispielprogramm befindet sich in einem Ordner mit dem Namen "Schnellstart".

Klicken Sie zunächst im LGSVL-Browser auf die Registerkarte "Simulationen" -> "Nur API" -> "Wiedergabetaste". python_api_1.png

Dann zeigt der LG SVL Simulator "API ready!" An. image.png

Führen Sie in diesem Status das Beispielprogramm im Python-API-Repository aus.

python ./quickstart/05-ego-drive-in-circle.py

Folgendes wird angezeigt, drücken Sie die Eingabetaste.

Current time =  0
Current frame =  0
Press Enter to start driving

Dann dreht sich das Fahrzeug weiter. out.gif

Implementierungsbeispiel

Hier verwenden wir die Proportionalregelung, um das Fahrzeug so zu drosseln, dass es der Zielgeschwindigkeit folgt. Der Code ist unten.

import lgsvl
import os
import numpy as np


def p_control(target_speed, current_speed):
    """
Proportionalsteuerung
    :param target_speed:Zielgeschwindigkeit
    :param current_speed:Momentane Geschwindigkeit
    :return:Drosselklappenwert
    """
    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)

    #Karte laden
    #Gibt eine Karte ohne Hindernisse an
    map_name = "WideFlatMap"
    if sim.current_scene == map_name:
        sim.reset()
    else:
        sim.load(map_name)

    #Holen Sie sich eine Liste von Transformationen, in denen Sie ein Fahrzeug erzeugen können
    spawns = sim.get_spawn()

    #Bestimmen Sie den Ausgangszustand des Ego-Autos
    state = lgsvl.AgentState()
    state.transform = spawns[0]
    #Fügen Sie dem Simulator ein Ego-Auto hinzu
    ego = sim.add_agent("Lincoln2017MKZ (Apollo 5.0)", lgsvl.AgentType.EGO, state)

    #Zielgeschwindigkeit[km/h]
    target_speed = 50.0
    #Regelkreis[sec]
    time_step = 0.05

    while True:
        #Momentane Geschwindigkeit[km/h]Erhalten
        #Ignorieren Sie hier die Geschwindigkeit der y-Achse (senkrecht zum Boden)
        state = ego.state
        current_speed = np.linalg.norm([state.velocity.x, state.velocity.z]) * 3.6

        #Gaswert abrufen
        throttle = p_control(target_speed, current_speed)

        #Wenden Sie Kontrollwerte auf Ego-Autos an
        control = lgsvl.VehicleControl()
        control.throttle = throttle
        ego.apply_control(control, True)

        #Simulator Zeit Zeit_Nur Schritt
        sim.run(time_limit=time_step)

        #Aktuelle Geschwindigkeit an die Konsole ausgeben
        print("Current speed: {:.1f} [km/h]".format(current_speed))


Wenn Sie diesen Code auf die gleiche Weise wie die Ausführungsprozedur des obigen Beispielprogramms ausführen, wird er mit der angegebenen Zielgeschwindigkeit direkt ausgeführt.

abschließend

Mit der Python-API können Sie das Fahrzeug steuern, Sensorinformationen abrufen und vieles mehr. LGSVL scheint in der Lage zu sein, mit Software für automatisches Fahren wie Autoware zu arbeiten, aber ich denke, es ist möglich, ein originales Fahrzeug für automatisches Fahren mithilfe der Python-API zu erstellen. Ich möchte einen Artikel über die Verwendung der Python-API von LGSVL schreiben. Das war eine kurze Erklärung, aber das war's. Es gibt viele andere Beispielprogramme. Probieren Sie es aus!

Recommended Posts

Installieren Sie die Python-API des automatischen Fahrsimulators LGSVL und führen Sie das Beispielprogramm aus
[AWS] Installieren Sie node.js auf der EC2-Instanz und führen Sie das Beispielprogramm aus
Die Geschichte von Python und die Geschichte von NaN
Installieren Sie OpenCV2.4 (+ Python) schnell unter OS X und probieren Sie das Beispiel aus
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Legen Sie den Prozessnamen des Python-Programms fest
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Berühren Sie die Beispiel-v20-Python-Beispiele der OANDA v20-REST-API-Wrapper-Bibliothek für Python
Bis Sie Caffe installieren und das Beispiel ausführen
Zusammenfassung der Unterschiede zwischen PHP und Python
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Angeben des Bereichs von Ruby- und Python-Arrays
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Berücksichtigung der Stärken und Schwächen von Python
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
[Python] Ein Programm, das die Anzahl der Täler zählt
[Python] Ruft den Gesetzestext aus der e-GOV-Gesetz-API ab
Der Prozess der Installation von Atom und der Ausführung von Python
Liste der Verteilungsseiten für Beispielprogramme für Python-Bücher
Python - Erläuterung und Zusammenfassung der Verwendung der 24 wichtigsten Pakete
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Referenz und Änderung der rekursiven Python-Obergrenze
Bis Sie Gauge installieren und das offizielle Beispiel ausführen
Ich habe mir die Versionen von Blender und Python angesehen
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
Verwenden wir die Python-Version des Confluence-API-Moduls.
PHP- und Python-Beispiele, die die ChatWork-API treffen
Installieren Sie die neueste stabile Version von Python mit pyenv (sowohl 2 als auch 3).
Python Gibt die Funktion an, die ausgeführt werden soll, wenn das Programm endet
[Python] Verwenden Sie die Face-API von Microsoft Cognitive Services
Installieren Sie django auf Python + Anaconda und starten Sie den Server
Beispiel für das Abrufen des Modulnamens und des Klassennamens in Python
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Rufen Sie die Hatena Blog API von Python aus auf und speichern Sie Ihre Blog-Artikel einzeln auf Ihrem PC
So starten Sie den PC jeden Morgen zu einer festgelegten Zeit und führen das Python-Programm aus
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
der Zen von Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Beispielprogramm und Ausführungsbeispiel für die gestapelte Generalisierung
[Python] Herons Formelfunktionalisierung und Berechnung der maximalen Fläche
Lassen Sie uns das Ausführungsergebnis des Programms mit C ++, Java, Python messen.
Beispielbild eines Python-API-Servers für EC2 (öffentliches AMI)
[Python] Kapitel 01-03 Über Python (Schreiben und Ausführen eines Programms mit PyCharm)
Eindrücke vom Abschluss von Term 1 des Udacity-Kurses für automatische Fahringenieure
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
Der Websocket von toio (nodejs) und python / websocket stellen keine Verbindung her.
Ich möchte die Natur von Python und Pip kennenlernen
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
(Eine der Lösungen) Wenn die Installation von pyenv unter macOS zu BUILD FAILED führt und die Python-Installation fehlschlägt.