Coder Social home page Coder Social logo

fucevin / rovernet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dusty-nv/rovernet

0.0 0.0 0.0 60 KB

Deep reinforcement learning-driven robotic controller and navigation library using Torch.

CMake 2.20% Shell 6.09% C++ 33.93% Cuda 24.73% C 1.65% Lua 31.40%

rovernet's Introduction

rovernet

rovernet is a package that uses deep reinforcement to learn from experience how to drive safely in unstructured environments. rovernet is an end-to-end deep learning system โ€” by recieving the robot's stereo field and directly controlling motor outputs, it's able to intuitively sense and avoid obstacles and obstructions in it's environment.

rovernet's learning-driven navigation framework provides a building block upon which higher-level autonomous functions can safely be layered. The CNN/RNN's that comprise the network and it's associated action/state reward functions are implemented in Lua using Torch7. A convenient C-library interface is provided for integrating rovernet with low-level sensors and robotic control components.

A self-contained sandbox holds the Torch/Lua components locally for improved code management & configuration control.

Underneath, rovernet and Torch are optimized for GPU acceleration with CUDA, and are ideal for deploying onboard mobile embedded platforms using NVIDIA's Jetson device.

Building from Source

First, to obtain the rovernet sources, clone the repository from github:

git clone http://github.org/dusty-nv/rovernet

Next, configure and build the project. Prerequisites will automatically be installed and built into the self-contained sandbox environment, including Lua, Torch, and it's dependencies. Lua, Torch, and OpenBLAS are placed in a local build directory specified during configuration. The sandbox improves packaging and allows managing multiple concurrent branches on a system without dependency conflicts.

To compile rovernet, run these commands from terminal:

cd rovernet
mkdir build
cd build
cmake ../
make

Build Options

Dependencies will automatically be built the first time cmake is run, and skipped upon further invocations of cmake. To manually force or re-trigger dependency installation, run cmake with the BUILD_DEPS flag enabled:

> cmake ../ -DBUILD_DEPS=y -DBUILD_OPENBLAS=y

The BUILD_OPENBLAS argument may be omitted if no change is required (it's a cached variable). To manually skip the installation of Lua, Torch, and/or OpenBLAS while configuring (if for example, you already have those installed), turn off the cmake BUILD_ flags:

> cmake ../ -DBUILD_DEPS=n -DBUILD_OPENBLAS=n

After initially disabling BUILD_DEPS, future invocations of cmake will continue to skip the dependencies, until it is re-enabled with -DBUILD_DEPS=y by the user.

Cleaning the Sandbox

To remove the rovernet branch and Lua/Torch from the system, remove the build directory specified above during configuration:

> rm -rf build

The rovernet binaries and all the Lua/Torch components will be deleted, leaving the system in a pristine state.

Project Directories

Underlying implementations in subdirectories:

  • c c/c++ library interface to lua/torch environment
  • lua torch scripts implementing DQ learner
  • ros ROS node to c/c++ library

rovernet's People

Contributors

dusty-nv avatar michaelghaben 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.