{"id":19855133,"url":"https://github.com/leggedrobotics/noesis","last_synced_at":"2025-05-02T01:30:44.089Z","repository":{"id":228612524,"uuid":"607242607","full_name":"leggedrobotics/noesis","owner":"leggedrobotics","description":"A Reinforcement Learning Software Toolbox for Robotics","archived":false,"fork":false,"pushed_at":"2023-03-13T18:12:34.000Z","size":11096,"stargazers_count":53,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-06T20:46:33.083Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leggedrobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null}},"created_at":"2023-02-27T15:52:54.000Z","updated_at":"2024-04-21T02:40:21.000Z","dependencies_parsed_at":"2024-03-19T17:33:56.380Z","dependency_job_id":null,"html_url":"https://github.com/leggedrobotics/noesis","commit_stats":null,"previous_names":["leggedrobotics/noesis"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fnoesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fnoesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fnoesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leggedrobotics%2Fnoesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leggedrobotics","download_url":"https://codeload.github.com/leggedrobotics/noesis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969260,"owners_count":21673183,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T14:11:48.515Z","updated_at":"2025-05-02T01:30:39.081Z","avatar_url":"https://github.com/leggedrobotics.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo](utils/readthedocs/images/noesis-logo.png)\n\n-----------------\n## Overview\n\nNoesis is a software toolbox for applying deep reinforcement learning to robotics problems. \n\nThis **pre-release** version currently is tested under Ubuntu 20.04 LTS, and supports `C++14` and Python `3.7`.\n\nThe toolbox consists of the following main components:\n1. **`noesis`:** A CMake package providing the following C++ libraries:   \n    * `framework`: Computational and operational core libraries for graphs, tensors, logging, system access etc.    \n    * `mdp`: A generalized interface for defining Markov Decision Processes (MDP) (i.e. environments).    \n    * `gym`: Interfaces to physics engines, and implementations of various environments    \n    * `rl`: Interfaces to DRL algorithms and relevant components.    \n2. **`noesis_py`:** A `pip` package providing the Python back-end for building computation-graphs using TensorFlow.    \n3. **`examples`:** Example programs for exploring the functionality and components of the library.\n\nLastly, all C++ components are built using CMake, but also support [`catkin`](https://catkin-tools.readthedocs.io/en/latest/). \nThe latter is typically the tool of choice in the robotics community due to the ubiquity of [ROS](http://www.ros.org/). For \npython, we use `virtualenv` and `virtualenvwrapper` for package management.\n\n**Maintainer:** Vassilios Tsounis  \n**Affiliation:** Robotic Systems Lab, ETH Zurich  \n**Contact:** vastsoun@gmail.com\n\n## Install\n\nPlease see [these](./utils/install/README.md) instructions on how to install Noesis and all relevant dependencies.\n\n## Build\n\n### CMake\n\nBuilding `noesis` can be performed anywhere in the user's home directory using CMake. We provide an example in \nthe form of a CMake project template in the `utils/workspace` directory. We recommend using this \nfor getting started on own projects. See [directory](./utils/workspace) for details.\n\n### Catkin\n\nFor building with Catkin, please refer to [this](https://catkin-tools.readthedocs.io/en/latest/) \nresource on how to install, configure and use catkin.\n```commandline\nmkdir -p catkin_ws/src\ncd catkin_ws\ncatkin init\ncatkin config --cmake-args -DCMAKE_BUILD_TYPE=Release \ncatkin build noesis_examples\n```\n\nNow we can test the build by executing any of the examples. Let's try the `framework_hello` example:\n```commandline\nuser@ubuntu:~$ ./build/noesis/noesis_examples/framework_hello\n```\n\n## Dependencies\n\nNoesis has `apt`, `pip` and source dependencies. \n\n### APT\nAll `apt` dependencies are installed by the `install.sh` script (see installation instructions below):  \n\n* **[Python 3.7](https://www.python.org/downloads/release/python-3716/):** Current default version of Python 3.7 provided by the [dead-snakes](https://launchpad.net/~deadsnakes) repos.\n* **[GCC 9.4](https://launchpad.net/~ubuntu-toolchain):** GNU C/C++ Compiler (GCC) v9 provided by the advanced Ubuntu toolchain repository.  \n* **[CMake](https://cmake.org):** CMake is an open-source, cross-platform family of tools designed to build, test and package software.\n* **[OpenMP 4.5](https://www.openmp.org/uncategorized/openmp-45-specs-released/):** OpenMP 4.5 provided by GCC 9.  \n* **[Boost](https://www.boost.org/):** Free peer-reviewed portable C++ source libraries.  \n* **[TinyXML](https://sourceforge.net/projects/tinyxml/):** TinyXML is a simple, small, minimal, C++ XML parser that can be easily integrating into other programs.\n* **[SDL2](https://www.libsdl.org/download-2.0.php):** SDL is a cross-platform development library providing abstractions based on OpenGL.  \n* **[SFML](https://www.sfml-dev.org/):** Simple and Fast Multimedia Library used for drawing 2D graphics.  \n* **[STB](https://github.com/nothings/stb):** STB is a set of single-file public domain libraries for C/C++. Only the parts for image processing are used.  \n  \n**Note**: STB is already provided in-source in `noesis/include/stb` and no action needs to be taken for it's installation.\n  \n### PIP\nAll `pip` dependencies are automatically installed when by the `noesis_py` package via the `install.sh` script:  \n\n* **[TensorFlow 1.15](https://github.com/tensorflow/tensorflow):** Computation using data flow graphs for scalable machine learning.  \n  \n### Source\nNoesis has a single source dependency on TensorFlow-Cpp, a CMake-based re-packaging of the C/C++ interface to TensorFlow, and can be retrieved from the respective \n`tensorflow-cpp` GitHub repository. The aforementioned carries with it the following packages:  \n\n* **[Eigen3](https://bitbucket.org/eigen/eigen):** Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.  \n* **[TensorFlow-Cpp](https://github.com/tensorflow/tensorflow):** CMake package providing the headers and libraries for the C/C++ API of TensorFlow.  \n\n## Bugs \u0026 Feature Requests\n\nPlease report bugs and request features using the [Issue Tracker](https://github.com/leggedrobotics/noesis/issues).\n\n## License\n\n[Apache License 2.0](LICENSE.md)\n\n## Citing\n\nIf you use Noesis, please cite as:\n```\n@phdthesis{tsounis2023thesis,\nyear = {2023},\ntype = {Doctoral Thesis},\ninstitution = {ETH Zurich},\npublisher = {ETH Zurich},\nschool = {ETH Zurich},\nauthor = {Vassilios Tsounis},\ntitle = {Applications of Reinforcement Learning to Motion Planning \u0026 Control of Quadrupedal Robots},\ncopyright = {In Copyright - Non-Commercial Use Permitted}\n}\n```\n\n## Acknowledgements\n\nSee [AUTHORS.md](AUTHORS.md) for the complete list of authors and contributors and [ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md) for affiliations and funding accreditation.\n\n----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fnoesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleggedrobotics%2Fnoesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleggedrobotics%2Fnoesis/lists"}