-
Notifications
You must be signed in to change notification settings - Fork 315
Quickstart
- Ubuntu 16.04 or 18.04
- a compiler with C++14 support, e.g. gcc or clang
-
install Eigen 3 via
sudo apt-get update
sudo apt-get install libeigen3-dev
-
install boost
sudo apt-get install libboost-all-dev
-
clone the kindr library into your workspace
cd ~/your_workspace/src
git clone https://github.com/ANYbotics/kindr.git
-
finally, clone the control toolbox into your workspace
cd ~/your_workspace/src
git clone https://github.com/ethz-adrl/control-toolbox.git
It is assumed that you have a valid catkin-workspace set up, e.g. using catkin tools. Then, execute the following steps.
cd ~/your_workspace
catkin build -DCMAKE_BUILD_TYPE=Release
To build an run the examples, e.g. the optimal control and optimal filtering examples:
cd ~/your_workspace
catkin build -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
source devel/setup.bash
rosrun ct_optcon ex_NLOC
rosrun ct_optcon ex_KalmanFiltering
First, make sure you build and install the kindr-library, see here.
Then go to your local clone of the control toolbox and run the build script:
cd your_workspace/control-toolbox/ct
chmod 775 build_ct.sh
./build_ct.sh -DCMAKE_BUILD_TYPE=Release
Then go to your local clone of the control toolbox and run the build script with the following flags.
cd your_workspace/control-toolbox/ct
./build_ct.sh -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true
This creates a /build subdirectory in every single CT-project, where the examples will be located.
For running the nonlinear optimal control or filtering examples, for instance, go to your workspace an run
./src/control-toolbox/ct_optcon/build/examples/ex_NLOC
./src/control-toolbox/ct_optcon/build/examples/ex_KalmanFiltering
Try to run the examples, e.g. the optimal control and optimal filtering examples:
cd ~/catkin_ws
source devel/setup.bash
rosrun ct_optcon ex_NLOC
which will print some iteration output and finally display the following
These are trajectories for driving a simple mass-spring-damper system to a goal config, optimized using the iLQR algorithm.
If you are intersted in state estimation, run
rosrun ct_optcon ex_KalmanFiltering
As a result, you should see this:
The plot shows state estimates for a simple mass-spring damper system, where given trajectories are disturbed with white noise.
For more detailed examples, visit the getting started section of the documentation.