An open API service indexing awesome lists of open source software.

https://github.com/dusty-nv/rovernet

Deep reinforcement learning-driven robotic controller and navigation library using Torch.
https://github.com/dusty-nv/rovernet

Last synced: 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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