Skip to content
forked from jrl-umi3218/copra

This a c++ implementation of a Time Invariant Linear Model Predictive Controller (LMPC) done in C++14 with python bindings

License

Notifications You must be signed in to change notification settings

ANYbotics/copra

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Copra

License Documentation

Copra (Control & preview algorithms) is a C++ library for convex model predictive control of linear time-invariant (LTI) and linear time-variant (LTV) systems.

Installation

Debian Package

Assuming you have configured the ANYbotics PPA, you can install this package by:

sudo apt install ros-${ROS_DISTRO}-copra

Building from Source

Dependencies

Optional

Building with Catkin

To build from source, clone the latest version from this repository into your catkin workspace and compile the package using:

cd ~/catkin_ws/src
git clone git@github.com:ANYbotics/copra.git
catkin build copra

Unit Tests

Run unit tests by:

catkin run_tests copra

Documentation

Doxygen documentation is available online

You can also check out unit tests and the bipedal locomotion example.

Changelog

This package was forked from jrl-umi3218. The following changes were made:

  • Extended to time-variant systems
  • Catkin packaging for ROS
  • Unit tests converted from doctest to Google Test
  • Introduce SimpleTrajectoryCost and SimpleControlCost
  • Introduce a method to reset all costs
  • Added support for the qpOASES QP solver

The library was originally developed by Vincent Samy. It is licensed under the BSD-2-Clause. Its default quadratic programming solver (eigen-quadprog) is licensed under the LGPLv2.

About

This a c++ implementation of a Time Invariant Linear Model Predictive Controller (LMPC) done in C++14 with python bindings

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.6%
  • CMake 3.4%
  • C 1.0%