Installing IPOPT from binaries for Linux

This optimization tool has to be installed in order to be able to use the Inverse Kinematic library for the iCub.

Make sure that the following package is installed:

sudo apt-get install gfortran

You can visit the IPOPT web page:https://projects.coin-or.org/Ipopt, download the source code archive (iCub support releases from 3.5.4 onward) or get the latest version from the repository:

mkdir -p ~/local/src
cd ~/local/src
# Latest stable version during creation of this manual was 3.10, update if necessary
svn co https://projects.coin-or.org/svn/Ipopt/stable/3.10 CoinIpopt

Now enter the IPOPT directory and get the third party sources:

cd CoinIpopt/ThirdParty/Blas
./get.Blas
cd ../Lapack
./get.Lapack

Now you need to download the HSL routines. Go to http://hsl.rl.ac.uk/archive/hslarchive.html.

Find MA27. Fill in the register form and wait for the email with the download link. Save the archive, extract it and then copy file ma27d.f as ma27ad.f into ~/local/src/CoinIpopt/ThirdParty/HSL/.

mkdir -p ~/local/src/downloads
tar -C ~/local/src/downloads/ -xvf ~/Downloads/ma27-1.0.0.tar.gz 
cp ~/local/src/downloads/ma27-1.0.0/src/ma27d.f ~/local/src/CoinIpopt/ThirdParty/HSL/ma27ad.f

Find MC19. Fill in the register form and wait for the email with the download link. Save the archive, extract it and then copy file mc19d.f as mc19ad.f into ~/local/src/CoinIpopt/ThirdParty/HSL/.

tar -C ~/local/src/downloads/ -xvf ~/Downloads/mc19-1.0.0.tar.gz
cp ~/local/src/downloads/mc19-1.0.0/src/mc19d.f ~/local/src/CoinIpopt/ThirdParty/HSL/mc19ad.f

Now go to the root of the IPOPT folder

cd ~/local/src/CoinIpopt

and run:

mkdir build && cd build
../configure --with-blas=BUILD --with-lapack=BUILD --with-hsl=BUILD --prefix=/usr/local
make
make test
sudo make install

Set the environment variable IPOPT_DIR pointing to the local directory where you have installed the libraries (you need to change the directory if you performed a local installation).

cd
gedit .bashrc
export IPOPT_DIR=/usr/local

Hint: to check whether IPOPT is working along with iKin framework, compile and execute the examples located under the iKin tutorials directory found in the iCub repository: if the IPOPT banner is displayed when the examples are launched then IPOPT is correctly configured.