diff --git a/.gitignore b/.gitignore
index 9a7918923..1f96f1619 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,5 @@ solution.mat
*.tmp
*.mat
.settings/
+*.aux
+*.doc*
diff --git a/ct/cmake/clang-cxx-dev-tools.cmake b/ct/cmake/clang-cxx-dev-tools.cmake
index 0a1ed1e93..dc6ca3ff3 100644
--- a/ct/cmake/clang-cxx-dev-tools.cmake
+++ b/ct/cmake/clang-cxx-dev-tools.cmake
@@ -53,14 +53,14 @@ find_program(CLANG_FORMAT_BIN "clang-format")
if(NOT CLANG_FORMAT_BIN)
find_program(CLANG_FORMAT_BIN "clang-format-3.9")
endif()
-message(WARNING "CLANG FORMAT IS: " ${CLANG_FORMAT_BIN})
+message(STATUS "CLANG FORMAT IS: " ${CLANG_FORMAT_BIN})
if(NOT CLANG_FORMAT_BIN)
- message (WARNING "CLANG-FORMAT not found. You can ignore this message if you are not a CT developer.")
+ message (STATUS "CLANG-FORMAT not found. You can ignore this message if you are not a CT developer.")
add_custom_target(clang-format
COMMAND ${CMAKE_COMMAND} -E echo_append "clang-format executable not found"
VERBATIM)
else()
- message (WARNING "FOUND CLANG-FORMAT")
+ message (STATUS "FOUND CLANG-FORMAT")
add_custom_target(
clang-format
COMMAND ${CLANG_FORMAT_BIN}
@@ -94,13 +94,13 @@ function(ct_configure_clang_tidy TIDY_INC_DIRS)
if(NOT CLANG_TIDY_BIN)
find_program(CLANG_TIDY_BIN "clang_tidy")
endif()
- message(${CLANG_TIDY_BIN})
+ message(STATUS ${CLANG_TIDY_BIN})
if(NOT CLANG_TIDY_BIN)
add_custom_target(clang-tidy
COMMAND ${CMAKE_COMMAND} -E echo_append "clang-tidy executable not found"
VERBATIM)
else()
- message (WARNING "FOUND CLANG-TIDY")
+ message (STATUS "FOUND CLANG-TIDY")
set(CLANG_TIDY_COMMAND COMMAND ${CLANG_TIDY_BIN} ${ALL_CXX_SOURCE_FILES} -config='' -header-filter=\".*\\/ct\\/.*\" -- -std=c++11 -fopenmp ${CURRENT_INC_DIRS})
add_custom_target(
diff --git a/ct/cmake/compilerSettings.cmake b/ct/cmake/compilerSettings.cmake
index f85c4ce5b..2ed7c862b 100644
--- a/ct/cmake/compilerSettings.cmake
+++ b/ct/cmake/compilerSettings.cmake
@@ -4,8 +4,6 @@ option(BUILD_EXAMPLES "Compile all examples for ct" false)
option(BUILD_HYQ_FULL "Compile all examples for HyQ (takes long, should use clang)" false)
option(BUILD_HYQ_LINEARIZATION_TIMINGS "Build linearization timing tests for HyQ (takes long, should use clang)" false)
option(BUILD_HYA_LINEARIZATION_TIMINGS "Build linearization timing tests for HyA (takes long, should use clang)" false)
-option(USE_LAPACKE "Use lapacke bindings for Eigen" false)
-option(USE_BLAS "Use blas bindings for Eigen" false)
option(HPIPM "Build HPIPM Optimal Control solver" false)
## option to activate/deactivate explicit template prespecs
@@ -32,14 +30,4 @@ if(USE_INTEL)
SET (CMAKE_C_COMPILER ${INTEL_C_COMPILER})
SET (CMAKE_CXX_COMPILER ${INTEL_CXX_COMPILER})
set(CMAKE_CXX_LINKER_FLAGS "${CMAKE_CXX_LINKER_FLAGS} -L${MKLROOT}/lib/intel64 -llibblas -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -llapacke -lblas -llapack -lliblapack -liblapacke")
-endif(USE_INTEL)
-
-
-if(USE_LAPACKE)
- add_definitions(-DEIGEN_USE_LAPACKE)
- set(CMAKE_CXX_LINKER_FLAGS "${CMAKE_CXX_LINKER_FLAGS} -llapacke -lblas ")
-endif()
-
-if(USE_BLAS)
- add_definitions(-DEIGEN_USE_BLAS)
-endif()
+endif(USE_INTEL)
\ No newline at end of file
diff --git a/ct_core/CMakeLists.txt b/ct_core/CMakeLists.txt
index 8587b73f8..7f9a5bab3 100755
--- a/ct_core/CMakeLists.txt
+++ b/ct_core/CMakeLists.txt
@@ -44,12 +44,9 @@ endif()
include_directories(
${BOOST_INCLUDE_DIRS}
${catkin_INCLUDE_DIRS}
-)
-
-include_directories (
- include
- include/external
- ${EIGEN3_INCLUDE_DIR}
+ ${EIGEN3_INCLUDE_DIR}
+ include
+ include/external
)
## dummy prespec libs
@@ -72,14 +69,13 @@ catkin_package(
examples
${EIGEN3_INCLUDE_DIR}
LIBRARIES
- dl
- ct_core
- ${PRESPEC_LIB_NAMES}
+ ct_core
+ dl #required for gcc-compatibility
+ ${PRESPEC_LIB_NAMES}
DEPENDS
- EIGEN3
+ EIGEN3
)
-
set(CODEGEN_TEMPLATE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/templates")
set(CODEGEN_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/generated")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/ct/core/templateDir.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/ct/core/templateDir.h)
diff --git a/ct_core/package.xml b/ct_core/package.xml
index ecd57fde9..706f3577a 100755
--- a/ct_core/package.xml
+++ b/ct_core/package.xml
@@ -2,11 +2,10 @@
ct_core
0.3.0
- ADRL control toolbox - core module
+ Control toolbox - core module.
Markus Giftthaler
Michael Neunert
BSD-2
catkin
-
diff --git a/ct_doc/doc/ct_doc.doxyfile b/ct_doc/doc/ct_doc.doxyfile
index 2cb33959d..6a0c5abbf 100644
--- a/ct_doc/doc/ct_doc.doxyfile
+++ b/ct_doc/doc/ct_doc.doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME = ct
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = v2.3
+PROJECT_NUMBER = v3.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/ct_doc/doc/developer_info.dox b/ct_doc/doc/developer_info.dox
index d5a4e6328..3bca9a50d 100644
--- a/ct_doc/doc/developer_info.dox
+++ b/ct_doc/doc/developer_info.dox
@@ -10,13 +10,6 @@ to align the development with ongoing activities.
\section Code Formatting
We support clang-format and provide a style template to automatically format the source code.
Please refer to the clang-format style sheet in the package root directory for our conventions.
-Or simply rely on clang-format to do the formatting for you.
-
-Note for developers using the *Eclipse IDE*: you can conveniently integrate clang-format (and our .clang-format
-configuration file) in your project using the "CppStyle" plugin (see http://www.cppstyle.com/ for
-detailed information). To automatically format the code according to ct-style, just mark the source-code
-and press *Ctrl+Shift+f*.
-
Example command for running clang-tidy:
\code
diff --git a/ct_doc/doc/installation.dox b/ct_doc/doc/installation.dox
index e18aef387..c8122c9c4 100644
--- a/ct_doc/doc/installation.dox
+++ b/ct_doc/doc/installation.dox
@@ -1,34 +1,71 @@
/*!
\page install_guide Installation
-- \subpage requirements
-- \subpage install
-
-
-\page requirements Requirements
@tableofcontents
-This library is written in C++11. It is tested under Ubuntu 14.04 and 16.04 with
-library versions as provided in the package sources.
+\section req Requirements:
+
+- Ubuntu 16.04 or 18.04
+- a compiler with C++14 support, e.g. gcc or clang
-\section dep Dependencies
- - C++ compiler with C++11 support (we recommend gcc-5.4.1 or greater or clang-3.5 or greater)
- - Eigen 3
- - catkin (build system, easy to switch to CMakeLists.txt where needed). We recommend using catkin_tools
- - boost 1.54 or greater (soon optional)
- - kindr, a kinematics library for robotics,
- which is required for building ct_rbd. Ideally, clone the newest version into your
- catkin workspace:
+\section dep Dependencies and building the library
+ - install ROS, please follow the steps in this tutorial for your Linux distribution.
+ - install Eigen 3 via
+ \code{.sh}
+ sudo apt-get update
+ sudo apt-get install libeigen3-dev
+ \endcode
+ - install the catkin_tools build system
+ \code{.sh}
+ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
+ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
+ sudo apt-get update
+ sudo apt-get install python-catkin-tools
+ \endcode
+ - install boost
\code{.sh}
- $ git clone https://github.com/ethz-asl/kindr.git
+ sudo apt-get install libboost-all-dev
+ \endcode
+ - create a catkin workspace and initialize it
+ \code{.sh}
+ mkdir -p ~/catkin_ws/src
+ cd ~/catkin_ws
+ catkin init
\endcode
+ - install the kindr library
+ \code{.sh}
+ cd ~/catkin_ws/src
+ git clone https://github.com/ANYbotics/kindr.git
+ \endcode
+
+ - finally, clone the control toolbox and build your workspace
+ \code{.sh}
+ cd ~/catkin_ws/src
+ git clone https://github.com/ethz-adrl/control-toolbox.git
+ catkin build -DCMAKE_BUILD_TYPE=Release
+ \endcode
+
+ - if you would like to run an example, build the library with
+ \code{.sh}
+ cd ~/catkin_ws/src
+ catkin build -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
+ \endcode
+ Now, try to run the examples, e.g. the optimal control and optimal filtering examples:
+ \code{.sh}
+ cd ~/catkin_ws/src
+ catkin build -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
+ rosrun ct_optcon ex_NLOC
+ rosrun ct_optcon ex_KalmanFiltering
+ \endcode
+
\section opt_dep Optional Dependencies and Bindings
The following dependencies and bindings are optional but can help to enhance the functionality or performance of the CT
- lapack (enables Schur method as an alternative to iterative method in ct::optcon::LQR)
+ \code{.sh} $ sudo apt-get install liblapack-dev \endcode
- clang compiler (faster compilation for large linear models), install from command-line via
\code{.sh} $ sudo apt-get install clang \endcode
@@ -36,8 +73,6 @@ The following dependencies and bindings are optional but can help to enhance the
Please make sure that the `clang` and `clang++` commands are in your path.
You may need to create a symbolic link in `/usr/bin` or use a bash alias.
- - ROS Indigo or Kinetic (for ROS bindings, visualization and extended examples), see ct_ros_nodes, ct_ros_msgs
-
- IPOPT or SNOPT
(for ct::optcon::SnoptSolver and ct::optcon::IpoptSolver as used by ct::optcon::DMS)
@@ -61,19 +96,8 @@ The following dependencies and bindings are optional but can help to enhance the
\endcode
-\page install Compile
-@tableofcontents
-
-\section build_lib Build the library
-
-In order to build the library, execute the following commands in your terminal
-\code{.sh}
-cd catkin_ws/src
-git clone https://github.com/ethz-asl/kindr.git
-git clone https://bitbucket.org/adrlab/ct.git
-catkin build -DCMAKE_BUILD_TYPE=RELEASE
-\endcode
+\section Additional build arguments
The following additional build flags are available, which can be appended to the build command above
Build Flag | Default value | Description
@@ -95,7 +119,7 @@ To build the documentation do
\code{.sh}
catkin build ct_doc -v --make-args doc # build the doc
\endcode
-This will build the documentation and open it in your browser.
+This will build the documentation. The index.html can be found in ct_doc.
\section run_tests Run Unit Tests
diff --git a/ct_doc/doc/mainpage.dox b/ct_doc/doc/mainpage.dox
index a197609fd..e37332411 100644
--- a/ct_doc/doc/mainpage.dox
+++ b/ct_doc/doc/mainpage.dox
@@ -6,7 +6,7 @@
\section ct1 Control Toolbox
-This is the ADRL Control Toolbox ('CT'), an open-source C++ library for efficient modelling, control,
+The Control Toolbox ('CT'), an open-source C++ library for efficient modelling, control,
estimation, trajectory optimization and model predictive control.
The CT is applicable to a broad class of dynamic systems, but features additional modelling tools specially designed for robotics.
This page outlines its general concept, its major building blocks and highlights selected application examples.
@@ -47,7 +47,7 @@ The CT was designed with the following features in mind:
- all algorithm flavors and solver backends are available through simple configuration files.
-The CT is hosted on bitbucket: https://bitbucket.org/adrlab/ct
+The CT is hosted on github: https://github.com/ethz-adrl/control-toolbox
@@ -212,11 +212,6 @@ The four different main modules are detailed in the following.
- quick link to ct_models
-\section source_code Source Code
-
-The source code is available at https://bitbucket.org/adrlab/ct
-
-Examples for interfacing with ROS and advanced application examples are available at ct_ros.
\section gs How to use the Control Toolbox
@@ -226,15 +221,15 @@ To get started with the control toolbox, please see \ref getting_started "Gettin
\section contact Support
For any questions, issues or other troubleshooting please either
-- create an issue: https://bitbucket.org/adrlab/ct/issues
+- create an issue: https://github.com/ethz-adrl/control-toolbox/issues
- contact the devs: control-toolbox-dev@googlegroups.com
\section ct_doc_acknowledgement Acknowledgements
\subsection contribs Contributors
- - Michael Neunert
- Markus Giftthaler
+ - Michael Neunert
- Markus Stäuble
- Farbod Farshidian
- Diego Pardo
@@ -243,12 +238,11 @@ For any questions, issues or other troubleshooting please either
- Ruben Grandia
- Hamza Merzic
-\subsection lead_overview Project Lead and Maintenance
- - Michael Neunert, neunertm (at) gmail (dot) com
+\subsection lead_overview Maintenance
- Markus Giftthaler, markusgft (at) gmail (dot) com
-\subsection funding Funding
-This software has been developed at the Agile & Dexterous Robotics Lab
+\subsection funding Funding 2014-2018
+The core of this software has been developed at the Agile & Dexterous Robotics Lab
at ETH Zurich, Switzerland between 2014 and 2018.
During that time, development has been made possible through financial support from the Swiss National Science Foundation (SNF)
through a SNF Professorship award to Jonas Buchli and the National Competence Centers in Research (NCCR)
diff --git a/ct_doc/doc/tags/.gitkeep b/ct_doc/doc/tags/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/ct_models/CMakeLists.txt b/ct_models/CMakeLists.txt
index f61f4c54a..bce66d33e 100755
--- a/ct_models/CMakeLists.txt
+++ b/ct_models/CMakeLists.txt
@@ -60,7 +60,7 @@ endif(USE_PRESPEC)
################ HyQ #################
add_executable(HyQLinearizationCodgen src/HyQ/codegen/HyQLinearizationCodgen.cpp)
-target_link_libraries(HyQLinearizationCodgen ${catkin_LIBRARIES} )
+target_link_libraries(HyQLinearizationCodgen ${catkin_LIBRARIES})
if (BUILD_HYQ_FULL)
if (NOT USE_CLANG)
diff --git a/ct_models/doc/ct_models.doxyfile b/ct_models/doc/ct_models.doxyfile
index 4cfd50dce..6501f8a0a 100644
--- a/ct_models/doc/ct_models.doxyfile
+++ b/ct_models/doc/ct_models.doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME = ct_models
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = v2.3
+PROJECT_NUMBER = v3.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/ct_models/package.xml b/ct_models/package.xml
index f43a010fe..7d20e73d5 100755
--- a/ct_models/package.xml
+++ b/ct_models/package.xml
@@ -10,9 +10,6 @@
catkin
- roscpp
- std_msgs
- ct_core
ct_rbd
diff --git a/ct_optcon/doc/ct_optcon.doxyfile b/ct_optcon/doc/ct_optcon.doxyfile
index feee573be..37feaf0f7 100644
--- a/ct_optcon/doc/ct_optcon.doxyfile
+++ b/ct_optcon/doc/ct_optcon.doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME = ct_optcon
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = v2.3
+PROJECT_NUMBER = v3.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/ct_optcon/package.xml b/ct_optcon/package.xml
index da458a186..ed1dc1368 100644
--- a/ct_optcon/package.xml
+++ b/ct_optcon/package.xml
@@ -1,17 +1,20 @@
ct_optcon
+
0.3.0
+
Optimal Control package of the ADRL Control Toolbox
+
+ BSD-2
+
Markus Giftthaler
Michael Neunert
- BSD-2
Markus Giftthaler
Michael Neunert
catkin
- roscpp
ct_core
cmake_modules
diff --git a/ct_rbd/CMakeLists.txt b/ct_rbd/CMakeLists.txt
index 1763f34f6..ffc5c63ac 100644
--- a/ct_rbd/CMakeLists.txt
+++ b/ct_rbd/CMakeLists.txt
@@ -10,7 +10,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../ct_optcon/cmake/externalSolvers.cmake)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wfatal-errors -std=c++14 -Wall -Wno-unknown-pragmas")
SET(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
-find_package(catkin REQUIRED ct_core ct_optcon)
+find_package(catkin REQUIRED ct_optcon)
find_package(kindr)
@@ -34,7 +34,6 @@ catkin_package(
LIBRARIES
${PRESPEC_LIB_NAMES}
CATKIN_DEPENDS
- ct_core
ct_optcon
kindr
)
diff --git a/ct_rbd/doc/ct_rbd.doxyfile b/ct_rbd/doc/ct_rbd.doxyfile
index a367563a9..8c8988079 100644
--- a/ct_rbd/doc/ct_rbd.doxyfile
+++ b/ct_rbd/doc/ct_rbd.doxyfile
@@ -38,7 +38,7 @@ PROJECT_NAME = ct_rbd
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = v2.3
+PROJECT_NUMBER = v3.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/ct_rbd/package.xml b/ct_rbd/package.xml
index 19b20f038..9a8570fae 100644
--- a/ct_rbd/package.xml
+++ b/ct_rbd/package.xml
@@ -10,8 +10,6 @@
catkin
- roscpp
- ct_core
ct_optcon
cmake_modules
kindr