SVL Simulator FAQ #

For optimal performance, we recommend that you run the simulator on a system with at least a 4 GHz Quad core CPU, NVIDIA GTX 1080 graphics card (8GB memory), and 16GB memory or higher, running on Windows 10. While you can run on a lower-spec system, the performance of the simulator will be impacted and you will probably see much lower frame rates. The minimum specification to run is a 3GHz dual core CPU, NVIDIA graphics card, and 8 GB memory system.

Note that simulator runs better on Windows due to fact that Unity and NVIDIA drivers provide better performance on Windows than on Linux.

If Apollo or Autoware will be running on the same system, upgrading to a GPU with at least 10GB memory is recommended.

Does the simulator run on Windows/Mac/Linux? top#

Officially, you can run SVL Simulator on Windows 10 and Ubuntu 18.04 (or later). We do not support macOS at this time.

Why does the simulator not open on Linux? top#

The Simulator requires the vulkan libraries to be installed on Linux:

sudo apt install libvulkan1

Which Unity version is required and how do I get it? top#

SVL Simulator is currently on Unity version 2020.3.3f1, and can be downloaded from the Unity Download Archive.

You can download the Windows version here: https://unity3d.com/get-unity/download/archive

You can download the Linux version (2020.3.3f1) here: https://beta.unity3d.com/download/76626098c1c4/UnitySetup-2020.3.3f1

We are constantly working to ensure that SVL Simulator runs on the latest version of Unity which supports all of our required functionality.

Why does my Simulator say "Invalid: Out of date Assetbundle"? top#

Assetbundle versions change as we add new features. To get the latest assetbundles, add assets uploaded by SVL Admin on content asset store to your Library and restart your local simulator.

How do I setup development environment for Unity on Ubuntu? top#

  1. Install Unity Editor dependencies:
    sudo apt install \
        gconf-service lib32gcc1 lib32stdc++6 libasound2 libc6 libc6-i386 libcairo2 libcap2 libcups2 \
        libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 \
        libgl1 libglib2.0-0 libglu1 libgtk2.0-0 libgtk-3-0 libnspr4 libnss3 libpango1.0-0 libstdc++6 \
        libx11-6 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 \
        libxrender1 libxtst6 zlib1g debconf libgtk2.0-0 libsoup2.4-1 libarchive13 libpng16-16
  1. Download and install Unity 2020.3.3f1:
    curl -fLo UnitySetup https://beta.unity3d.com/download/76626098c1c4/UnitySetup-2020.3.3f1
    chmod +x UnitySetup
    ./UnitySetup --unattended --install-location=/opt/Unity --components=Unity,Windows-Mono,Mac-Mono
  1. Install .NET Core SDK, available from https://dotnet.microsoft.com/download

On Ubuntu 18.04 run following commands:

    wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    sudo apt-get install apt-transport-https
    sudo apt-get update
    sudo apt-get install dotnet-sdk-2.2
  1. Install Mono, available from https://www.mono-project.com/download/stable/#download-lin

On Ubuntu 18.04 run following commands:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    sudo apt install apt-transport-https ca-certificates
    echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
    sudo apt update
    sudo apt install mono-devel
  1. Install Visual Studio Code, available in Ubuntu Software or from https://code.visualstudio.com/docs/setup/linux

  2. Open VS Code and install C# extension

    1. Press Ctrl+Shift+X
    2. Search for C#
    3. Install extension C# for Visual Studio Code (powered by OmniSharp)
  3. Install Unity Debug Extension, available here: https://marketplace.visualstudio.com/items?itemName=Unity.unity-debug

  4. Set Unity preferences to use VS Code. See instructions here: https://code.visualstudio.com/docs/other/unity#_setup-vs-code-as-unity-script-editor

    • To find out where Code is installed use
    which code

Where are Unity log files located? top#

Version Location
Windows Binary %APPDATA%\..\LocalLow\LGElectronics\SVLSimulator\Player.log
Windows Editor %APPDATA%\..\Local\Unity\Editor\Editor.log
Linux Binary ~/.config/unity3d/LGElectronics/SVLSimulator/Player.log
Linux Editor ~/.config/unity3d/Editor.log

Why are assets/scenes missing/empty after cloning from git? top#

We use Git LFS for large file storage to improve performance of cloning. Before cloning, install and run git lfs install. Then repeat the git clone process. You can find the Git LFS installation instructions here: https://github.com/git-lfs/git-lfs/wiki/Installation

Typically if you do not have Git LFS installed or configured then you will see the following error when opening Unity project:

error CS026: The type or namespace name "WebSocketSharp" could not be found.
Are you missing a using directive or an assembly reference?

Why do I get an error saying some files (e.g. rosbridge_websocket.launch) are missing in Apollo? top#

If you see that some files are missing from ros_pkgs folder in Apollo repository, you need to make sure that you are cloning all submodules:

git clone --recurse-submodules https://github.com/lgsvl/apollo.git

ROS Bridge won't connect? top#

First make sure you are running rosbridge.

If using our Apollo docker image, run:

rosbridge.sh

For standalone ROS environments run:

roslaunch rosbridge_server rosbridge_websocket.launch

If you are running ROS bridge on different machine, verify that simulator can connect to it and you do not have firewall blocking ports.

How do I control the ego vehicle (my vehicle) spawn position? top#

Find the "spawn_transform" game objects in scene and adjust their transform position.

If you are creating new maps make sure you add "SpawnInfo" component to empty game object. The Simulator will use location of first game object that has SpawnInfo component.

How can I add a custom ego vehicle to SVL Simulator? top#

Please see our tutorial on how to add a new ego vehicle to SVL Simulator here.

How can I add extra sensors to vehicles in SVL Simulator? top#

Adding sensors to a vehicle is done by editing the configuration JSON in the WebUI. See Sensor JSON Options for details on all the available sensors.

How do I get parameters in camera matrix like the following? top#

[fx  0 cx
  0 fy cy
  0  0  1]

Our reference camera sensors use the pinhole camera model, where all of these parameters can be calculated from other parameters.

For focal lengths, i.e. fx and fy, the pinhole camera has same focal lengths in both horizontal and vertical directions as: fx = fy = Height / 2 / Mathf.Tan(FieldOfView / 2.0f * Mathf.Deg2Rad). Note that since FieldOfView is the vertical FOV, we use half of Height in the calculation.

For optical center, i.e. cx and cy, since Unity uses symmetric view frustum by default, the optical center is always at the center of the image. So we have cx = Width / 2.0f and cy = Height / 2.0f

How can I add a custom map to SVL Simulator? top#

See Maps for details.

How can I create or edit map annotations? top#

Please see our tutorial on how to add map annotations in SVL Simulator here.

Why are pedestrians not spawning when annotated correctly? top#

SVL Simulator uses Unity's NavMesh API to work correctly. In Unity Editor, select Window -> AI -> Navigation and bake the NavMesh.

Why can't I find catkin_make command when building Apollo? top#

Make sure you are not running Apollo dev_start/into.sh scripts as root. The will not work as root. You need to run them as non-root user, without sudo.

Why is Apollo perception module turning on and off all the time? top#

This means that Apollo perception process is exiting with error.

Check apollo/data/log/perception.ERROR file for error messages.

Typically you will see following error:

Check failed: error == cudaSuccess (8 vs. 0) invalid device function

This means one of two things:

1) GPU you are using is not supported by Apollo. Apollo requires CUDA 8 compatible hardware, it won't work if GPU is too old or too new. Apollo officially supports only GTX 1080. RTX 2080 will not work.

2) Other option is that CUDA driver is broken. To fix this you will need to restart your computer. Check that CUDA works on your host system by running one of CUDA examples before running Apollo

Why does the Apollo vehicle stop at stop line and not cross intersections? top#

Apollo vehicle continues over intersection only when traffic light is green. If perception module does not see traffic light, the vehicle won't move.

Check previous question to verify that perception module is running and Apollo is seeing traffic light (top left of dreamview should say GREEN or RED).

Dreamview in Apollo shows "Hardware GPS triggers safety mode. No GNSS status message." top#

This is expected behavior. SVL Simulator does simulation on software level. It sends only ROS messages to Apollo. Dreamview in Apollo has extra checks that tries to verify if hardware devices are working correctly and are not disconnected. This error message means that Apollo does not see GPS hardware working (as it is not present).

It it safe to ignore it.

Why does Rviz not load the Autoware vector map? top#

Loading SanFrancisco map in Rviz for Autoware is a very slow process, because SanFrancisco map has many annotations and Rviz cannot handle them efficiently. It will either crash or will take many minutes if not hours.

You can checkout older commit of autoware-data repository that has annotations only for smaller part of SanFrancisco.

git checkout e3cfe709e4af32ad2ea8ea4de85579b9916fe516

Why are there no maps when I make a local build? top#

See Build Instructions. It is not required to build the whole simulator using this tool.

Why is the TARGET_WAYPOINT missing when using the Map Annotation Tool? top#

Make sure the meshes that make up the road have the Default layer assigned to them and they have a Mesh Collider added.

Why does the simulator start and then say the simulation is "Invalid"? top#

If the vehicle(s) selected for the simulation have a bridge, then a Bridge Connection String is required. The format of the string is IP:port (e.g. localhost:9090). The simulator does not assume a port so it must be specified.

Why are there no assets when building the simulator from Unity Editor? top#

Assets (environments and vehicles) are not included in the main simulator repository to reduce it's size. Maps and vehicles can get large because of 3D assets and textures.

See Adding Assets for instructions on how to add assets to the project.

Why are there libraries missing when running a PythonAPI quickstart script? top#

PythonAPI quickstart scripts use Python libraries that are available publicly. To install all the required libraries, execute the command below inside the PythonAPI directory.

pip3 install --user -e .

How to fix the "RuntimeError: The current Numpy installation" error? top#

There is a known issue with Numpy on Windows with the newest updates. See this issue for more information: https://tinyurl.com/y3dm3h86. To fix this issue, execute the command below.

pip install numpy==1.19.3

Other questions? top#

See our Github issues page, or email us at contact@svlsimulator.com.