(Updated 3/26/2021 for http://av-test-challenge.org/ and archived 2020.06 docs on svlsimulator.com)
0. Introduction
Refer to related video or slides for additional information
Video on YouTube: https://www.youtube.com/watch?v=Ucr0aM334_k
Slides: https://drive.google.com/file/d/19YPKLaYiQy5ronsedQiJRIaPimwSAzc6/view
Presented by Steve Lemke, Principal Engineer @ LG America R&D Lab
- Introduction and features of the Simulator (slides 2-13)
- Installation of the Simulator (slides 14-16)
- Getting Started, User Interface, Configuration (slides 17-24 and hands-on)
- Installing, Building, and Running Apollo (hands-on)
- Automation and Python API (hands-on)
- Advanced Topics (tutorial videos)
- Additional Information (slide 25)
- Unity 3D engine
- High Definition Render Pipeline
- Physics-based modeling of multiple lighting sources
- Out of the box integration with Apollo, Autoware.AI and Autoware.Auto (and other AD stacks)
- ROS, ROS2, CyberRT bridges (and other bridges via customized plugin)
- Physical Sensors: Cameras, LiDAR, Radar, GPS, IMU, etc.
- Virtual Sensors: 2D and 3D Ground Truth, Depth and Segmentation Cameras
- Road/map annotation editor
- Import of HD maps from: Lanelet2, OpenDRIVE, Apollo
- Export of HD maps to: Lanelet2, Autoware Vector, OpenDRIVE, Apollo
-
- 4GHz Quad core CPU
- Nvidia GTX-1080 (8GB memory)
- Windows 10 64-bit (or Ubuntu ~18.04)
-
- Install latest Nvidia drivers
- Install libvulkan (on Linux)
- Install nvidia-smi (on Linux)
-
- Download from 2020.06 release notes at https://github.com/lgsvl/simulator/releases/tag/2020.06
- Download for Linux: https://github.com/lgsvl/simulator/releases/download/2020.06/lgsvlsimulator-linux64-2020.06.zip
- Download for Windows: https://github.com/lgsvl/simulator/releases/download/2020.06/lgsvlsimulator-windows64-2020.06.zip
-
- Download and install Unity Hub
- Download and install Unity 2019.3.3f1
- Download and install Node.js
- Verify git-lfs installation
- Clone simulator source from GitHub
- More on this later in "Advanced Topics"
-
Basic simulator concepts: Refer to Getting Started doc or the lecture slides
-
- There are several pre-loaded reference maps including:
- BorregasAve
- AutonomouStuff
- GoMentum
- Other maps available at https://content.lgsvlsimulator.com/
- There are several pre-loaded reference maps including:
-
- There are several pre-loaded reference vehicles including:
- Jaguar2015XE
- Lexus2016RXHybrid
- We could just change bridge type but instead let's create a new vehicle:
- Navigate to content site: https://content.lgsvlsimulator.com/
- Scroll to "Vehicles" and click "View All"
- Click on Lexus RX 2016
- Right-click to copy
Asset Bundle
link location - Close Lexus browser window
- Return to LGSVL Vehicles web UI
- Click "Add New" vehicle
- Enter Vehicle Name:
Lincoln2017MKZ (Apollo master)
- Paste copied URL
- Click "Submit" to save new vehicle
- Enter Vehicle Name:
- Navigate to example Apollo json config
- Scroll to "Complete JSON Configuration" field
- Click "Copy" to copy JSON Configuration text
- Click wrench icon to edit vehicle configuration
- Select Bridge Type:
CyberRT
- Paste copied JSON Configuration text into "Sensors" field
- Click "Submit" to save vehicle configuration
- Select Bridge Type:
- There are several pre-loaded reference vehicles including:
-
- Local Machine: Default (single machine simulation)
- Local Cluster: See Cluster Simulation Introduction
-
- BorregasAve (with Apollo)
- We could just select our new vehicle but let's create a new simulation:
- Click "Add New" Simulation
- General tab:
- Enter Simulation Name:
AVS Apollo master
- Select Cluster:
Local Machine
- API Only: leave unchecked
- Headless Mode: leave unchecked
- Enter Simulation Name:
- Map & Vehicles tab:
- Interactive Mode: check this for interactive controls
- Select Map:
BorregasAve
- Select Vehicle:
Lincoln2017MKZ (Apollo master)
- Enter "Bridge Connection String":
localhost:9090
- We could click "+" to add additional ego vehicles/bridges
- Traffic tab:
- Use Predetermined Seed: leave unchecked
- Random Traffic: check to have NPC vehicles spawn at beginning of simulation
- Random Pedestrians: check to have pedestrians spawn at beginning of simulation
- Weather tab:
- Set time of day during simulation
- Set rain, wetness, fog, and cloudiness
- Click "Submit" to save new simulation
- General tab:
- BorregasAve (with Apollo)
-
-
- Click in
Lincoln2017MKZ (Apollo master)
to select simulation (indicated by check mark) - Click "Play" icon to begin simulation
- Click in
-
- Start/Pause Simulation (only necessary in Interactive Mode)
- Click "Play" button
- Show Menu Layer
- Click "Menu" button (if NON-Interactive Mode)
- Information
- Build information, and logged warnings and errors
- Controls
- Bridge Info
- Bridge address, status, and topic list
- Environment (only in Interactive Mode)
- Visualize
- Color, Depth, Semantic Cameras
- LiDAR, RADAR
- 2D and 3D Ground Truth
- Start/Pause Simulation (only necessary in Interactive Mode)
-
Setup Apollo
-
Should already have installed latest Nvidia drivers (above) before installing Simulator
-
Install Docker CE and Nvidia Docker as described in https://www.svlsimulator.com/docs/archive/2020.06/apollo-master-instructions/
- UPDATE: Nvidia Docker is now Nvidia Container Toolkit: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
-
Clone the Apollo Repository
git clone https://github.com/ApolloAuto/apollo
-
If you have problems with the latest changes in Apollo master, check our online instructions which include a link to the latest commit we've tested with on Apollo master: https://www.svlsimulator.com/docs/archive/2020.06/apollo-master-instructions/
-
You could also try checking out a named branch such as
r6.0.0
:git checkout r6.0.0
-
Alternatively you could try the LG fork of Apollo 5.0: https://www.svlsimulator.com/docs/archive/2020.06/apollo5-0-instructions/
-
-
Start and enter Apollo docker
-
Start the docker (DO NOT run it with
sudo
!)./docker/scripts/dev_start.sh
-
Enter the docker:
./docker/scripts/dev_into.sh
-
Make sure
nvidia-smi
is working inside the docker
-
-
Build Apollo (one time operation)
-
Once inside the docker, build Apollo (optimized, not debug, with GPU support):
./apollo.sh build_opt_gpu
-
-
Run Simulator alongside Apollo
-
Launch Cyber bridge
```bash ./scripts/bridge.sh ```
-
Start (resume) the LGSVL Simulator:
- Note this is LGSVL Simulator, downloaded from LGSVLSimulator.com, version 2020.05
- Launch the executable and click on the button to open the web UI
- Click "Simulations" to view the available/configured simulations
- Click in
AVS Apollo master
simulation to select it (indicated by check mark) - Click "Play" icon to begin simulation
-
Use
cyber_monitor
to view messages, and usecyber_visualizer
to visualize them
- Run Apollo modules
-
Start Dreamview
```bash ./scripts/bootstrap_lgsvl.sh ```
-
Open Dreamview in a browser by navigating to:
localhost:8888
-
Select correct "setup mode", "vehicle", and "map"
- For setup mode: select
Mkz Lgsvl
; - For vehicle: select
Lincoln2017MKZ LGSVL
; - For map: select
Borregas Ave
- For setup mode: select
-
Open the Module Controller tap (on the left bar).
-
Enable Localization, Transform, Perception, Traffic Light, Planning, Prediction, Routing, and Control modules.
-
Navigate to the Route Editing tab.
-
Select a destination by clicking on a lane line and clicking Submit Route.
-
-
Select pythonapi (virtual environment)
- Check out virtualenvwrapper
- Create virtualenv with:
mkvirtualenv -p python3 pythonapi
- Activate with:
workon pythonapi
-
Download and Install Python API
cd ~ git clone https://github.com/lgsvl/PythonAPI.git cd PythonAPI pip3 install --user -e .
(Leave out
--user
if working in a python virtual environment) -
Launch Simulator
-
Review "API Only" Simulation settings
-
Start "API Only" mode simulation
- "Open Browser..." changes to "API Ready!"
-
Let's try one of the quickstart scripts to confirm that everything is working:
./quickstart/05-ego-drive-in-circle.py
-
-
Core Concepts: Simulator and Agents
- Show doc page; intro to Python API concepts
-
Running Simulator with Autoware.Auto and ROS2
- Refer to Autoware.Auto with LGSVL Simulator
- Video Tutorial on YouTube (@ 33:40): Autoware.Auto Course Lecture 11: LGSVL Simulator
- Check out the entire lecture series: Self-Driving Cars with ROS and Autoware
-
Building Simulator from source in Unity
- Refer to Build Instructions: (https://www.svlsimulator.com/docs/archive/2020.06/build-instructions/
- New Video Tutorial on YouTube: How to build LGSVL Simulator from source
- See also Adding and Building Assets: https://www.svlsimulator.com/docs/archive/2020.06/assets
-
New environment creation
- Refer to Adding and Building Assets: https://www.svlsimulator.com/docs/archive/2020.06/assets
- Video Tutorial on YouTube: How to create environments for LGSVL Simulator
-
New vehicle creation
- Refer to Adding and Building Assets: https://www.svlsimulator.com/docs/archive/2020.06/assets
- Video Tutorial on YouTube: How to create a new vehicle asset for LGSVL Simulator
-
New sensor creation
- Stay tuned for this (and other) new video tutorials (watch the blog)
-
Map annotation
- Refer to Map Annotation: https://www.svlsimulator.com/docs/archive/2020.06/map-annotation/
- Stay tuned for this (and other) new video tutorials (watch the blog)
-
LGSVL Simulator website: LGSVLSimulator.com
-
LGSVL Simulator blog: https://www.lgsvlsimulator.com/blog/
-
LGSVL Simulator on GitHub: https://github.com/lgsvl/simulator
-
LGSVL Simulator on YouTube: https://www.youtube.com/c/LGSVLSimulator/videos
-
LGSVL Simulator with latest Apollo: https://www.svlsimulator.com/docs/archive/2020.06/apollo-master-instructions/
-
Apollo Autonomous Driving Software: https://github.com/ApolloAuto/apollo
-
LGSVL Simulator with Autoware.Auto: https://www.svlsimulator.com/docs/archive/2020.06/autoware-auto-instructions/
-
Self-Driving Cars with ROS and Autoware: https://www.apex.ai/autoware-course