/ModernRoboticsCpp

Modern Robotics: Mechanics, Planning, and Control C++ Library --- The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. The code is optimized neither for efficiency nor robustness. http://modernrobotics.org/

Primary LanguageC++

Modern Robotics: Mechanics, Planning, and Control

C++ Library

This repository contains the code library accompanying Modern Robotics: Mechanics, Planning, and Control (Kevin Lynch and Frank Park, Cambridge University Press 2017). The user manual is in the doc directory of main repository.

The functions are available in:

Each function has a commented section above it explaining the inputs required for its use as well as an example of how it can be used and what the output will be. This repository also contains a pdf document that provides an overview of the available functions using MATLAB syntax. Functions are organized according to the chapter in which they are introduced in the book. Basic functions, such as functions to calculate the magnitude of a vector, normalize a vector, test if the value is near zero, and perform matrix operations such as multiplication and inverses, are not documented here.

The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. The code is optimized neither for efficiency nor robustness.

Installation

1. Install Eigen library.

  • On Mac
foo@bar:~$ brew install eigen
  • On Linux
foo@bar:~$ sudo apt-get install libeigen3-dev

2. Prepare build

foo@bar:~$ mkdir build && cd build

By default cmake will install our build into the system directories. To define a custom install directory we simply pass it to cmake:

foo@bar:build $ cmake .. -DCMAKE_INSTALL_PREFIX=../_install

Or just configure with defaults

foo@bar:build $ cmake ..

Building and installing library

foo@bar:build $ make all && make install

Testing the library

foo@bar:build $ ./lib_test