Coder Social home page Coder Social logo

robotics_toolbox's Introduction

Robotics Toolbox for C++

License: GPL v3

Getting Started

Prerequisites

The Robotics Toolbox for C++ depends on the following external C++ tools:

Additionally, the following Python packages are required:

In the following, it is assumed that the C++ tools and Python packages mentioned above have been installed already.

A Dockerfile based on Ubuntu 22.04 with all the prerequisites available is part of the repository (see Docker section). In case the development shall happen inside a Docker container, Docker also needs to be installed on the system (see https://www.docker.com/).

Clone Repository

To get your own version of the Git repository, you can clone the repository to your own system. This can be done by running

git clone --recursive https://github.com/berndkitt/robotics_toolbox.git

in the terminal. Afterwards a subdirectory called robotics_toolbox will be available inside the directory the command was called.

CMake

The Robotics Toolbox for C++ uses CMake as build environment. In a first step, the build environment needs to be generated. This can be done by running

cmake -B ./build/ -S ./

in the terminal, while being in the main directory of the toolbox. This will create a directory called build which contains all the temporary build files.

Afterwards, the individual parts of the toolbox can be build. It is recommended to build all targets of the toolbox by running

cmake --build ./build/ -t all -j4

in the terminal. This will create a directory called libs which contains all the libraries of the toolbox as well as a directory called bin containing all the executables (i.e. unit tests, examples,...).

Docker

In order to make use of the Docker container, the first step is to build the Docker image by running

docker build -t robotics_toolbox .

in the terminal.

After the Docker image has been built, a Docker container can by started by running

docker run -dit -v <absolute_path_on_host>:<absolute_path_in_container> --name robotics_toolbox -h ubuntu robotics_toolbox

in the terminal.

Using the command above, the local version of the repository is made available inside the Docker container. absolute_path_on_host needs to be replaced by the directory the repository was cloned into on the host machine (see Clone Repository section), absolute_path_in_container needs to be replaced by the path the repository shall be available inside the container.

Example: docker run -dit -v /development/robotics_toolbox/:/mnt/ --name robotics_toolbox -h ubuntu robotics_toolbox

Changes made in the repository while working inside the container will also be available on the host machine.

Versioning

The release numbers follow the Semantic Versioning scheme (see https://semver.org/). Hence, a version number has the following format:

MAJOR.MINOR.PATCH

The individual numbers are incremented as follows:

  • MAJOR: Incremented when major changes were made (not backwards compatible). Whenever this number is incremented, MINOR and PATCH will be set to 0.
  • MINOR: Incremented when new features were implemented (backwards compatible). Whenever this number is incremented, PATCH will be set to 0.
  • PATCH: Incremented when small bug fixes were implemented (backwards compatible).

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

robotics_toolbox's People

Contributors

berndkitt avatar

Watchers

 avatar

robotics_toolbox's Issues

Prepare repository

  • Add .gitignore file
  • Add Visual Studio Code settings
  • Add Visual Studio Code extensions
  • Add .clang-tidy file
  • Add project title to README.md file
  • Add license to README.md file
  • Add versioning scheme to README.md file
  • Add CODEOWNERS file

Clean correspondences list in FeatureMatcher class

The method "FindCorrespondences" of the FeatureMatcher class does not properly clean the correspondences list. In case that the list is reused, the number of correspondences will accumulate over time.

Solution
Clean the "FeatureCorrespondences" input argument at the beginning of the method "FindCorrespondences".

Cleanup version class

  • One getter for the compiler information only
  • Remove option in getter for the library version number

Update README.md

  • Add project description
  • Add build instructions (binaries, documentation)
  • Add list of CMake options
  • Add list of modules
  • Add dependencies
  • Add Cppcheck prerequisites
  • Add README.md files for modules
  • Add README.md files for libraries

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.