GithubHelp home page GithubHelp logo

genivi / genivi-vehicle-simulator Goto Github PK

View Code? Open in Web Editor NEW
100.0 30.0 52.0 159.45 MB

An open source vehicle simulator

License: Other

C# 89.81% Smalltalk 0.07% JavaScript 1.62% CSS 0.79% HTML 0.98% PowerShell 0.26% C++ 1.11% Python 0.08% ShaderLab 4.60% HLSL 0.68%
vehicle-simulator

genivi-vehicle-simulator's Introduction

Vehicle Simulator

Overview

The project and the initial software code have been developed by Elements Design Group of San Francisco and the Jaguar Land Rover Open Software Technology Center in Portland, Oregon. The motivation was to provide an open-source, extensible driving simulator project for the development community. While there are multiple potential uses for the application, the primary goal was to create an application to assist in the development and testing of IVI systems related to driver distraction.

The project was created with Unity 5.3.4 and runs on Windows 10 (64 bit). To download the Unity IDE, please click here. Unity provides the ability to generate builds for Windows, Linux, and Mac OS X.

A more detailed overview can be found in the wiki home page.

License Information

This application is licensed under the MPL License.

How-To

To learn how to operate the Vehicle Simulator at OSTC, visit this tutorial page.

General Information

Scenes

  1. Application Load
  2. Vehicle & Driving Scene Selection
  3. Scenic Driving Scene (Yosemite)
  4. Urban Driving Scene (San Francisco)
  5. Coastal Driving Scene (Pacific Coast Highway)

Vehicles

  1. Jaguar XJ
  2. Land Rover Range Rover L405
  3. Jaguar F-Type (coming soon)
  4. Jaguar F-Type Coupe (coming soon)
  5. Land Rover Range Rover Evoque (coming soon)
  6. Land Rover LR4 (coming soon)

OBSTACLES

Obstacles may be triggered (by the admin) while driving. If the driver hits an obstacle, the event is logged as an infraction which can be reviewed after the driving session. Current obstacle types are:

  • pedestrians
  • animals
  • rockfall
  • large boulder
  • stalled vehicles
  • falling tree
  • giant beach balls

INFRACTION LOGGING

The infraction log is reviewable in the administration panel after each driving session and is also saved as xml file for various uses. The following infractions are currently logged by the system:

  • Traffic violations (e.g. running a stop sign)
  • Lane infractions (e.g. driving over double yellow lines)
  • Environment collisions (e.g. colliding with a tree)
  • Obstacle collisions (e.g. colliding with a bear)

INFRACTION REVIEW

At the end of a driving session, the admin and driver can review infractions from the most recent session. Screenshots of the infraction along with vehicle data (speed, etc.) are displayed. Session data is timestamped and saved out as XML or CSV [to compare with In-Vehicle Infotainment (IVI) UI events.] IMG_0042

Administration Interface

  1. Infraction Review
  2. Obstacle Instantiation
  3. Vehicle Physics Calibration
  4. Vehicle Selection
  5. Driving Scene Selection
  6. Repositioning Vehicle on Road
  7. Waypoint Mapping and Positioning

System Requirements

Hardware

Simulator PC
  • CPU โ€“ 5th Generation Core i7 GPU
  • GPU - Single GTX 980 Ti, GTX Titan, or Quadro K6000
  • RAM โ€“ 12 GB
  • Motherboard - ASUS X99 E WS
  • Operating System - Windows 10
  • Networking - 10/100/1000 Ethernet adapter
Instrument Cluster PC
  • Operating System - Windows 10
  • Networking - 10/100/1000 Ethernet adapter

See this page for additional hardware information.

Displays

Simulator Application The Simulator application shall support the following display configurations and resolutions:

  • Single: 1920px X 1080px
  • Double: 3840px X 1080px
  • Triple: 5760px X 1080px
  • Triple: (projection, stitched image) 4992px X 1080px

Instrument Cluster Application The Instrument Cluster application supports a single display with a 1920px X 720px resolution.

JLR recognizes the bespoke nature of this resolution. Consequently, the IC application shall support displaying the IC at the same resolution on a single display (up to 1920 X 1080), letter-boxing the content when necessary.

Software

Operating System

Windows 10 is the operating system for both PC's.

Integrated Development Environment

This simulator was developed using Unity 5.3.4.

genivi-vehicle-simulator's People

Contributors

danielschambach avatar heeen avatar simonmcm1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

genivi-vehicle-simulator's Issues

The streaming data

Hello there,
I am currently using the simulator for my PhD research.
I downloaded two end user applications, one screen for main PC, another is the console. I set the ip address to my own machine in the "network_settings" file. When I opened the two application in the same PC. The console is adjusted according to the selection of vehicle. However, when I run the car, the speed meter doesn't change. It seems that there is no streaming data transferred. From another pc, I ping the ip address at the port 8088, it is not opened, neither.

On the other side, when I opened the admin page by browser at the address: localhost:8087
I can select the car, but can't know the position of the car on the map, neither the log of the infractions.
3

4

Need I set other stuff of the networking for the streaming?
Thanks in advance!

Simulator software using lots of bandwidth

Hi!

Firstly, thanks for all your work on this project. :-) It is getting a fair amount of downloads from GitHub according to GitHub's own metrics on the bandwidth that we purchased. In fact, we ran out of bandwidth last week and are purchasing more from GitHub. This leads us to ask if there is not a better location, something more affordable perhaps, that we might move downloads of the built software to? From what I can tell there haven't been many commits in January and that makes me believe that much of the traffic is just downloading the files by users. Perhaps there is a better place for that type of distribution than GitHub?

Empty in the folder I download

Dear Guys,

I am a PhD candidate in Eindhoven University of Technology, the Netherlands. I am really interested in your open source Simulator as my research is about HCI of driving.

However, after I download the simulator source code and open any scenes it in Unity, there is no object inside. After extracted, the size of the folder is 621,3 MB. And each scene file is only several K. But the files in the Github online are much bigger.

see pics:
https://chaoswang.files.wordpress.com/2017/04/screen-shot-2017-04-26-at-11-04-42.png
https://chaoswang.files.wordpress.com/2017/04/screen-shot-2017-04-26-at-11-05-46.png
https://chaoswang.files.wordpress.com/2017/04/screen-shot-2017-04-26-at-11-16-45.png

I have no idea what is wrong with the file, I have tried several times in different PC and Mac, using GitHub desktop application or not. But they all did not work.

Could you please provide a complete version of this software?
Thanks a lot

CSV Instrumentation and Event data over TCP/IP

It is mentioned several times through the documentation that CSV data for the simulator should be available over TCP/IP.

We want to use this data to get very simple CANbus style data for instrumentation and controller data (steering wheel, pedals), as well as representational location (fake GPS). In other words to use it for very simple synthetic connected car style data streams.

Has anyone got CSV network streaming to work?

I'm also looking to connect an application to the event CSV stream over TCP/IP.

I notice from Assets/Scripts/Vehicle/DataStreamServer.cs:

public class DataStreamServer : PersistentUnitySingleton<DataStreamServer> {

    public const int PORT = 9001;
    public const int ALTPORT = 9000;
    public const int EVENTPORT = 9002;

And it appears EVENTPORT only appears once more in the source (again in DataStreamServer.cs):

protected override void Awake()
    {
        base.Awake();
        connections = new List<ConnectionData>();
        var dbEndpoint = new IPEndPoint(IPAddress.Parse(NetworkController.settings.clientIp), PORT);
        var altEndpoint = new IPEndPoint(IPAddress.Parse(NetworkController.settings.altClientIP), ALTPORT);
        var eventEndpoint = new IPEndPoint(IPAddress.Parse(NetworkController.settings.eventClientIP), EVENTPORT);

        var dbClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        var altClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        var eventClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        dbClient.BeginConnect(dbEndpoint, new AsyncCallback(ConnectCallback), new ConnectionData() { client = dbClient, IC = true, events = false });
        altClient.BeginConnect(altEndpoint, new AsyncCallback(ConnectCallback), new ConnectionData() { client = altClient, IC = false, events = false });
        eventClient.BeginConnect(eventEndpoint, new AsyncCallback(ConnectCallback), new ConnectionData() { client = eventClient, IC = false, events = true });


    }

But when I run one-screen, nothing appears to be connected to port 9002, and a telnet attempt to that port does not connect.

On the flipside, once the host IP address is configured, the instrumentation panel works while running on the same machine (and connecting to its port), so the console binary appears to work.

And yes, I've tried turning Windows Firewall completely off, with no improvement.

Has anyone successfully got this function to work, or know what else is required? Is it locked into DirectInput somehow? (I have an issue getting a steering set to function correctly).

I should add that I am running the latest precompiled versions (do I now need a Unity seat license just to tinker with this?)

Any help very much appreciated!

one-screen and console crashes when Logitec G29 is present at load time

On an up-to-date Windows 10 machine installed with Unity 5.6.0f3 running the precompiled binaries, the applications one-screen and console crash when a Microsoft Sidewinder, no-name controller or Logitec G29 steering set are present when the initial screen appears.

screenshot 2

Generated crash & log files included below:

error.log
output_log.txt
crash.zip

This can be avoided by plugging the USB steering set after pressing the play button on the initial screen before plugging in the USB device.

However, at that point it seems that the USB device does not function in the program.

We purchased a G29 because the G27 do not seem to be available as new, and the G29 is described as its successor.

https://github.com/GENIVI/genivi-vehicle-simulator/wiki/Input mentions that

"Input is managed via DirectInput and as such other wheels should work with some minor modifications to InputController scripts."

If the problem of non-functional controller is related to Logitec model differences, which script should be modified?

Thanks in Advance for any help you can give.

FBX files not tracked by lfs properly

*.FBX files are not tracked properly as they have a capital suffix of FBX and .gitattributes only lists lowercase *.fbx

I think we should add *.FBX to .gitattributes and re-add the files after that

PFRTester and project_freeride directory question

Are these directories used in the main project somehow or other that I'm not seeing?

According to the Unity manual, only Assets and ProjectSettings directories should be under version control . . . and I'm trying to do some moving around of things, but then Unity starts complaining about the PFRTester and project_freeride directories having Library folders that they shouldn't have.

Would those directories (as well as the input plugin, and Tools) be better suited as separate repositories from the main?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.