Giter Site home page Giter Site logo

lidarsimulation's Introduction

Build Status

LiDARSimulation

LiDARSimulation is a simulator of a LiDAR (Light Detection and Ranging) sensor for a static environment. The environment (vehicle path, sensor configuration, and stuctures/occlusions) are defined in a configuration file (examples in Config folder). Output Plot The output of the program for the Config/SimConfigComplex.json configuration file is shown in the 3D figure above. The vehicle path is shown with a red line in the middle of the environment, with the vehicle moving from south-west to north-east. The environment contains three structures: a box shape in the south-eastern part of the scene, a box shape in the north-western part of the scene, and a pyramid in the north-eastern part of the scene.

The LiDAR sensor detects points on the ground, as well as the visible sides of the three structures. For example, the eastern side of the south-eastern box is not detected by the sensor due to line-of-sight occlusion. Similarly, the northern and western sides of the north-western box are not detected. The pyramid left side facing the vehicle path also gets more LiDAR hits than the right side; the north side of the pyramid is not detected due to line-of-sight occlusions. All these three structures have "shadows" on the ground due to line-of-sight occlucions.

Build/Run Instructions

The codebase has an external dependency to https://github.com/nlohmann/json and boost, although the boost code is commented out for now. The visualizer is implemented in python (tested with python 2.7). To build the project:

  1. Clone, build and install JSON package from https://github.com/nlohmann/json
  2. If JSON package is installed in a local folder and not the system folders, update g++ command in build.sh to include the headers folder (with -I flag) and the library folders (with -L/l flags)
  3. Run build.sh to build the codebase (CMake build system coming soon)
  4. Run ./main.exe Config/SimConfigComplex.json to execute the program. This will generate an output.json file
  5. Run python plot.py Config/SimConfigComplex.json output.json to visualize the output

ToDo List

  1. CMake build system
  2. Unit tests
  3. Improve scalability
    • Be selective of which polygons are considered for intersection in each scan
    • Multi-thread Beam.scan calls
  4. Create real-time visualizer

lidarsimulation's People

Contributors

pirolera avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.