Skip to content

Commit 036629c

Browse files
authored
Merge pull request #3 from ethz-adrl/feature/elementaryCleanup
Feature/elementary cleanup
2 parents b48930e + 8b86b18 commit 036629c

18 files changed

+89
-96
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,5 @@ solution.mat
2424
*.tmp
2525
*.mat
2626
.settings/
27+
*.aux
28+
*.doc*

ct/cmake/clang-cxx-dev-tools.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ find_program(CLANG_FORMAT_BIN "clang-format")
5353
if(NOT CLANG_FORMAT_BIN)
5454
find_program(CLANG_FORMAT_BIN "clang-format-3.9")
5555
endif()
56-
message(WARNING "CLANG FORMAT IS: " ${CLANG_FORMAT_BIN})
56+
message(STATUS "CLANG FORMAT IS: " ${CLANG_FORMAT_BIN})
5757
if(NOT CLANG_FORMAT_BIN)
58-
message (WARNING "CLANG-FORMAT not found. You can ignore this message if you are not a CT developer.")
58+
message (STATUS "CLANG-FORMAT not found. You can ignore this message if you are not a CT developer.")
5959
add_custom_target(clang-format
6060
COMMAND ${CMAKE_COMMAND} -E echo_append "clang-format executable not found"
6161
VERBATIM)
6262
else()
63-
message (WARNING "FOUND CLANG-FORMAT")
63+
message (STATUS "FOUND CLANG-FORMAT")
6464
add_custom_target(
6565
clang-format
6666
COMMAND ${CLANG_FORMAT_BIN}
@@ -94,13 +94,13 @@ function(ct_configure_clang_tidy TIDY_INC_DIRS)
9494
if(NOT CLANG_TIDY_BIN)
9595
find_program(CLANG_TIDY_BIN "clang_tidy")
9696
endif()
97-
message(${CLANG_TIDY_BIN})
97+
message(STATUS ${CLANG_TIDY_BIN})
9898
if(NOT CLANG_TIDY_BIN)
9999
add_custom_target(clang-tidy
100100
COMMAND ${CMAKE_COMMAND} -E echo_append "clang-tidy executable not found"
101101
VERBATIM)
102102
else()
103-
message (WARNING "FOUND CLANG-TIDY")
103+
message (STATUS "FOUND CLANG-TIDY")
104104
set(CLANG_TIDY_COMMAND COMMAND ${CLANG_TIDY_BIN} ${ALL_CXX_SOURCE_FILES} -config='' -header-filter=\".*\\/ct\\/.*\" -- -std=c++11 -fopenmp ${CURRENT_INC_DIRS})
105105

106106
add_custom_target(

ct/cmake/compilerSettings.cmake

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ option(BUILD_EXAMPLES "Compile all examples for ct" false)
44
option(BUILD_HYQ_FULL "Compile all examples for HyQ (takes long, should use clang)" false)
55
option(BUILD_HYQ_LINEARIZATION_TIMINGS "Build linearization timing tests for HyQ (takes long, should use clang)" false)
66
option(BUILD_HYA_LINEARIZATION_TIMINGS "Build linearization timing tests for HyA (takes long, should use clang)" false)
7-
option(USE_LAPACKE "Use lapacke bindings for Eigen" false)
8-
option(USE_BLAS "Use blas bindings for Eigen" false)
97
option(HPIPM "Build HPIPM Optimal Control solver" false)
108

119
## option to activate/deactivate explicit template prespecs
@@ -32,14 +30,4 @@ if(USE_INTEL)
3230
SET (CMAKE_C_COMPILER ${INTEL_C_COMPILER})
3331
SET (CMAKE_CXX_COMPILER ${INTEL_CXX_COMPILER})
3432
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")
35-
endif(USE_INTEL)
36-
37-
38-
if(USE_LAPACKE)
39-
add_definitions(-DEIGEN_USE_LAPACKE)
40-
set(CMAKE_CXX_LINKER_FLAGS "${CMAKE_CXX_LINKER_FLAGS} -llapacke -lblas ")
41-
endif()
42-
43-
if(USE_BLAS)
44-
add_definitions(-DEIGEN_USE_BLAS)
45-
endif()
33+
endif(USE_INTEL)

ct_core/CMakeLists.txt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,9 @@ endif()
4444
include_directories(
4545
${BOOST_INCLUDE_DIRS}
4646
${catkin_INCLUDE_DIRS}
47-
)
48-
49-
include_directories (
50-
include
51-
include/external
52-
${EIGEN3_INCLUDE_DIR}
47+
${EIGEN3_INCLUDE_DIR}
48+
include
49+
include/external
5350
)
5451

5552
## dummy prespec libs
@@ -72,14 +69,13 @@ catkin_package(
7269
examples
7370
${EIGEN3_INCLUDE_DIR}
7471
LIBRARIES
75-
dl
76-
ct_core
77-
${PRESPEC_LIB_NAMES}
72+
ct_core
73+
dl #required for gcc-compatibility
74+
${PRESPEC_LIB_NAMES}
7875
DEPENDS
79-
EIGEN3
76+
EIGEN3
8077
)
8178

82-
8379
set(CODEGEN_TEMPLATE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/templates")
8480
set(CODEGEN_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/generated")
8581
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/ct/core/templateDir.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/ct/core/templateDir.h)

ct_core/package.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
<name>ct_core</name>
33
<version>0.3.0</version>
44
<description>
5-
ADRL control toolbox - core module
5+
Control toolbox - core module.
66
</description>
77
<maintainer email="markusgft@gmail.com">Markus Giftthaler</maintainer>
88
<maintainer email="neunertm@gmail.com">Michael Neunert</maintainer>
99
<license>BSD-2</license>
1010
<buildtool_depend>catkin</buildtool_depend>
11-
1211
</package>

ct_doc/doc/ct_doc.doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = ct
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = v2.3
41+
PROJECT_NUMBER = v3.0
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

ct_doc/doc/developer_info.dox

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ to align the development with ongoing activities.
1010
\section Code Formatting
1111
We support clang-format and provide a style template to automatically format the source code.
1212
Please refer to the clang-format style sheet in the package root directory for our conventions.
13-
Or simply rely on clang-format to do the formatting for you.
14-
15-
Note for developers using the *Eclipse IDE*: you can conveniently integrate clang-format (and our .clang-format
16-
configuration file) in your project using the "CppStyle" plugin (see http://www.cppstyle.com/ for
17-
detailed information). To automatically format the code according to ct-style, just mark the source-code
18-
and press *Ctrl+Shift+f*.
19-
2013

2114
Example command for running clang-tidy:
2215
\code

ct_doc/doc/installation.dox

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,78 @@
11
/*!
22

33
\page install_guide Installation
4-
- \subpage requirements
5-
- \subpage install
6-
7-
8-
\page requirements Requirements
94
@tableofcontents
10-
This library is written in C++11. It is tested under Ubuntu 14.04 and 16.04 with
11-
library versions as provided in the package sources.
125

6+
\section req Requirements:
7+
8+
- Ubuntu 16.04 or 18.04
9+
- a compiler with C++14 support, e.g. gcc or clang
1310

14-
\section dep Dependencies
1511

16-
- C++ compiler with C++11 support (we recommend gcc-5.4.1 or greater or clang-3.5 or greater)
17-
- <a href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen 3</a>
18-
- <a href="http://wiki.ros.org/catkin">catkin</a> (build system, easy to switch to CMakeLists.txt where needed). We recommend using <a href="http://catkin-tools.readthedocs.io/en/latest/verbs/catkin_build.html">catkin_tools</a>
19-
- boost 1.54 or greater (soon optional)
20-
- <a href="https://github.com/ethz-asl/kindr">kindr</a>, a kinematics library for robotics,
21-
which is required for building ct_rbd. Ideally, clone the newest version into your
22-
catkin workspace:
12+
\section dep Dependencies and building the library
13+
- install ROS, please follow the steps in <a href="http://wiki.ros.org/Installation/Ubuntu"> this tutorial</a> for your Linux distribution.
14+
- install <a href="http://eigen.tuxfamily.org/index.php?title=Main_Page">Eigen 3</a> via
15+
\code{.sh}
16+
sudo apt-get update
17+
sudo apt-get install libeigen3-dev
18+
\endcode
19+
- install the <a href="http://catkin-tools.readthedocs.io/en/latest/verbs/catkin_build.html">catkin_tools</a> build system
20+
\code{.sh}
21+
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
22+
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
23+
sudo apt-get update
24+
sudo apt-get install python-catkin-tools
25+
\endcode
26+
- install boost
2327
\code{.sh}
24-
$ git clone https://github.com/ethz-asl/kindr.git
28+
sudo apt-get install libboost-all-dev
29+
\endcode
30+
- create a catkin workspace and initialize it
31+
\code{.sh}
32+
mkdir -p ~/catkin_ws/src
33+
cd ~/catkin_ws
34+
catkin init
2535
\endcode
2636

37+
- install the <a href="https://github.com/ethz-asl/kindr">kindr</a> library
38+
\code{.sh}
39+
cd ~/catkin_ws/src
40+
git clone https://github.com/ANYbotics/kindr.git
41+
\endcode
42+
43+
- finally, clone the control toolbox and build your workspace
44+
\code{.sh}
45+
cd ~/catkin_ws/src
46+
git clone https://github.com/ethz-adrl/control-toolbox.git
47+
catkin build -DCMAKE_BUILD_TYPE=Release
48+
\endcode
49+
50+
- if you would like to run an example, build the library with
51+
\code{.sh}
52+
cd ~/catkin_ws/src
53+
catkin build -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
54+
\endcode
55+
Now, try to run the examples, e.g. the optimal control and optimal filtering examples:
56+
\code{.sh}
57+
cd ~/catkin_ws/src
58+
catkin build -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
59+
rosrun ct_optcon ex_NLOC
60+
rosrun ct_optcon ex_KalmanFiltering
61+
\endcode
62+
2763

2864
\section opt_dep Optional Dependencies and Bindings
2965
The following dependencies and bindings are optional but can help to enhance the functionality or performance of the CT
3066

3167
- <a href="http://www.netlib.org/lapack/">lapack</a> (enables Schur method as an alternative to iterative method in ct::optcon::LQR)
68+
\code{.sh} $ sudo apt-get install liblapack-dev \endcode
3269

3370
- <a href="https://clang.llvm.org/">clang</a> compiler (faster compilation for large linear models), install from command-line via
3471
\code{.sh} $ sudo apt-get install clang \endcode
3572
and possibly replace `clang` with a more specific version, e.g. `clang-3.8`.
3673
Please make sure that the `clang` and `clang++` commands are in your path.
3774
You may need to create a symbolic link in `/usr/bin` or use a bash alias.
3875

39-
- <a href="http://wiki.ros.org/indigo">ROS Indigo</a> or <a href="http://wiki.ros.org/kinetic">Kinetic</a> (for ROS bindings, visualization and extended examples), see <a href="../../../../ct_ros/ct_ros_nodes/doc/html/index.html">ct_ros_nodes</a>, <a href="../../../../ct_ros/ct_ros_nodes/doc/html/index.html">ct_ros_msgs</a>
40-
4176
- <a href="https://projects.coin-or.org/Ipopt">IPOPT</a> or <a href="http://www.sbsi-sol-optimize.com/asp/sol_product_snopt.htm">SNOPT</a>
4277
(for ct::optcon::SnoptSolver and ct::optcon::IpoptSolver as used by ct::optcon::DMS)
4378

@@ -61,19 +96,8 @@ The following dependencies and bindings are optional but can help to enhance the
6196
\endcode
6297

6398

64-
\page install Compile
65-
@tableofcontents
66-
67-
\section build_lib Build the library
68-
69-
In order to build the library, execute the following commands in your terminal
70-
\code{.sh}
71-
cd catkin_ws/src
72-
git clone https://github.com/ethz-asl/kindr.git
73-
git clone https://bitbucket.org/adrlab/ct.git
74-
catkin build -DCMAKE_BUILD_TYPE=RELEASE
75-
\endcode
7699

100+
\section Additional build arguments
77101
The following additional build flags are available, which can be appended to the build command above
78102

79103
Build Flag | Default value | Description
@@ -95,7 +119,7 @@ To build the documentation do
95119
\code{.sh}
96120
catkin build ct_doc -v --make-args doc # build the doc
97121
\endcode
98-
This will build the documentation and open it in your browser.
122+
This will build the documentation. The index.html can be found in ct_doc.
99123

100124

101125
\section run_tests Run Unit Tests

ct_doc/doc/mainpage.dox

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
\section ct1 Control Toolbox
88

9-
This is the ADRL Control Toolbox ('CT'), an open-source C++ library for efficient modelling, control,
9+
The Control Toolbox ('CT'), an open-source C++ library for efficient modelling, control,
1010
estimation, trajectory optimization and model predictive control.
1111
The CT is applicable to a broad class of dynamic systems, but features additional modelling tools specially designed for robotics.
1212
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:
4747
- all algorithm flavors and solver backends are available through simple configuration files.
4848

4949

50-
The CT is hosted on bitbucket: <a href="https://bitbucket.org/adrlab/ct" target="_blank">https://bitbucket.org/adrlab/ct</a>
50+
The CT is hosted on github: <a href="https://github.com/ethz-adrl/control-toolbox" target="_blank">https://github.com/ethz-adrl/control-toolbox</a>
5151

5252

5353

@@ -212,11 +212,6 @@ The four different main modules are detailed in the following.
212212
- <a href="../../../ct_models/doc/html/index.html">quick link to ct_models</a>
213213

214214

215-
\section source_code Source Code
216-
217-
The source code is available at <a href="https://bitbucket.org/adrlab/ct" target="_blank">https://bitbucket.org/adrlab/ct</a>
218-
219-
Examples for interfacing with ROS and advanced application examples are available at <a href="https://bitbucket.org/adrlab/ct_ros/src/master/" target="_blank">ct_ros</a>.
220215

221216
\section gs How to use the Control Toolbox
222217

@@ -226,15 +221,15 @@ To get started with the control toolbox, please see \ref getting_started "Gettin
226221
\section contact Support
227222

228223
For any questions, issues or other troubleshooting please either
229-
- create an issue: https://bitbucket.org/adrlab/ct/issues
224+
- create an issue: https://github.com/ethz-adrl/control-toolbox/issues
230225
- contact the devs: control-toolbox-dev@googlegroups.com
231226

232227

233228
\section ct_doc_acknowledgement Acknowledgements
234229

235230
\subsection contribs Contributors
236-
- Michael Neunert
237231
- Markus Giftthaler
232+
- Michael Neunert
238233
- Markus Stäuble
239234
- Farbod Farshidian
240235
- Diego Pardo
@@ -243,12 +238,11 @@ For any questions, issues or other troubleshooting please either
243238
- Ruben Grandia
244239
- Hamza Merzic
245240

246-
\subsection lead_overview Project Lead and Maintenance
247-
- Michael Neunert, neunertm (at) gmail (dot) com
241+
\subsection lead_overview Maintenance
248242
- Markus Giftthaler, markusgft (at) gmail (dot) com
249243

250-
\subsection funding Funding
251-
This software has been developed at the <a href="http://www.adrl.ethz.ch" target="_blank">Agile & Dexterous Robotics Lab</a>
244+
\subsection funding Funding 2014-2018
245+
The core of this software has been developed at the <a href="http://www.adrl.ethz.ch" target="_blank">Agile & Dexterous Robotics Lab</a>
252246
at <a href="http://www.ethz.ch/en" target="_blank">ETH Zurich</a>, Switzerland between 2014 and 2018.
253247
During that time, development has been made possible through financial support from the <a href="http://www.snf.ch/en/" target="_blank">Swiss National Science Foundation (SNF)</a>
254248
through a SNF Professorship award to Jonas Buchli and the National Competence Centers in Research (NCCR)

ct_doc/doc/tags/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)