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.
- Host: GitHub
- URL: https://github.com/dusty-nv/rovernet
- Owner: dusty-nv
- Created: 2016-02-01T14:12:02.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-02T23:42:18.000Z (over 8 years ago)
- Last Synced: 2025-03-25T17:48:22.536Z (3 months ago)
- Language: C++
- Homepage:
- Size: 58.6 KB
- Stars: 35
- Watchers: 5
- Forks: 21
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
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