Skip to content

dusty-nv/rovernet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published