SVL Simulator FAQ #
- What are the recommended system specs? What are the minimum REQUIRED system specs?
- Does the simulator run on Windows/Mac/Linux?
- Why does the simulator not open on Linux?
- Which Unity version is required and how do I get it?
- Why does my Simulator say "Invalid: Out of date Assetbundle"?
- How do I setup development environment for Unity on Ubuntu?
- Where are Unity log files located
- Why are assets/scenes missing/empty after cloning from git?
- Why do I get an error saying some files (e.g. rosbridge_websocket.launch) are missing in Apollo?
- ROS Bridge won
- How do I control the ego vehicle (my vehicle) spawn position?
- How can I add a custom ego vehicle to SVL Simulator?
- How can I add extra sensors to vehicles in SVL Simulator?
- How do I get parameters in camera matrix?
- How can I add a custom map to SVL Simulator?
- How can I create or edit map annotations?
- Why are pedestrians not spawning when annotated correctly?
- Why can't I find catkin_make command when building Apollo?
- Why is Apollo perception module turning on and off all the time?
- Why does the Apollo vehicle stop at stop line and not cross intersections?
- Dreamview in Apollo shows "Hardware GPS triggers safety mode. No GNSS status message."
- Why does Rviz not load the Autoware vector map?
- Why are there no maps when I make a local build?
- Why is the TARGET_WAYPOINT missing when using the Map Annotation Tool
- Why does the simulator start and then say the simulation is "Invalid"?
- Why are there no assets when building the simulator from Unity Editor?
- Why are there libraries missing when running a PythonAPI script?
- How to fix the "RuntimeError: The current Numpy installation" error?
- Other questions?
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.
Officially, you can run SVL Simulator on Windows 10 and Ubuntu 18.04 (or later). We do not support macOS at this time.
The Simulator requires the vulkan libraries to be installed on Linux:
sudo apt install libvulkan1
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.
- 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
- 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
- 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
- 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
Install Visual Studio Code, available in Ubuntu Software or from https://code.visualstudio.com/docs/setup/linux
Open VS Code and install C# extension
- Press Ctrl+Shift+X
- Search for C#
- Install extension
C# for Visual Studio Code (powered by OmniSharp)
Install Unity Debug Extension, available here: https://marketplace.visualstudio.com/items?itemName=Unity.unity-debug
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
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
First make sure you are running rosbridge.
If using our Apollo docker image, run:
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.
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.
Please see our tutorial on how to add a new ego vehicle to SVL Simulator here.
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.
[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.
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.
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
See Maps for details.
Please see our tutorial on how to add map annotations in SVL Simulator here.
SVL Simulator uses Unity's NavMesh API to work correctly. In Unity Editor, select Window -> AI -> Navigation and bake the NavMesh.
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.
This means that Apollo perception process is exiting with error.
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
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).
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.
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
See Build Instructions. It is not required to build the whole simulator using this tool.
Make sure the meshes that make up the road have the
Default layer assigned to them and they have a
Mesh Collider added.
If the vehicle(s) selected for the simulation have a bridge, then a
Bridge Connection String is required. The format of the string is
localhost:9090). The simulator does not assume a port so it must be specified.
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.
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 .
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