YARP, iCub on Slackware 14.2

Time for iCub! … shit. According to the icub manual:

CREATE_OPTIONAL_CARRIERS, set to ON 
 ENABLE_yarpcar_bayer_carrier, set to ON

ok, back to yarp/build/

make uninstall
cd .. && mkdir build2 && cd build2
cmake -DCREATE_GUIS=on -DCREATE_LIB_MATH=on -DCREATE_OPTIONAL_CARRIERS=on -DENABLE_yarpcar_bayer_carrier=on ../
make -j4
make install

Done, what now? Clone the repo, cmake:

 cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_icubmod_cartesiancontrollerclient=on -DENABLE_icubmod_cartesiancontrollerserver=on -DENABLE_icubmod_gazecontrollerclient=on ../

make -j4, make install and go through the tutorial to get it working! yarpserver in the background somewhere (until the end, it’s not gonna hang despite me great efforts) and …  Oh… shit…

 bash: iCub_SIM: command not found

I think I missed something during the compile… old website says simulator needs ODE+SDL, so:

 sbopkg -i ode

re-compile… much better! Aaaaand:

Segmentation fault

Damn. What did I miss? I’ve googled and suddenly I remembered about cmake complaints of missing libraries:

-- IPOPT: NOT found
-- IPP: NOT found

Maybe he really needs them?
Grab the source for ipopt: http://www.coin-or.org/download/source/Ipopt/

wget http://www.coin-or.org/download/source/Ipopt/Ipopt-3.12.6.tgz
tar -xzf Ipopt-3.12.6.tgz
cd Ipopt-3.12.6
./configure --prefix=/usr/local
make
make install

still no ipopt? something is off… ok, maybe ipopt.pc is missing… nope! he is in /usr/local/lib, so:

 cp /usr/local/lib/pkgconfig/ipopt.pc /usr/local/lib64/pkgconfig/

Don’t ask. Just don’t.
STILL? ok, a recompile with -DCMAKE_BUILD_TYPE=Debug and gdb:

gdb iCub_SIM
run
...
Thread 69 "iCub_SIM" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff4e2ae700 (LWP 20165)]
0x00007ffff7678cd7 in dCollideTrimeshPlane(dxGeom*, dxGeom*, int, dContactGeom*, int)
    () from /usr/lib64/libode.so.3

recompile ODE, be careful this time – and do it by hand:

wget https://bitbucket.org/odedevs/ode/downloads/ode-0.14.tar.gz
tar -zxf ode-0.14.tar.gz
cd ode-0.14
./bootstrap
./configure --prefix=/usr/local --enable-libccd --enable-double-precision --enable-shared

what now for Odin’s sake?!

/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/X11R6/lib/librt.so when searching for -lrt
/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../x86_64-slackware-linux/bin/ld: skipping incompatible /usr/X11R6/lib/librt.a when searching for -lrt
/usr/lib/libXext.so: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status

oh, I am now on a multilib 32bit/64bit system, he is a bit confused, let me clear it out using very big font:

CFLAGS="$SLKCFLAGS"
CXXFLAGS="$SLKCFLAGS"
LDFLAGS="-L/usr/lib64"
./configure --prefix=/usr/local --enable-libccd --enable-double-precision --enable-shared

if you will get an error saying there is no libode.so.6:

iCub_SIM: error while loading shared libraries: libode.so.6: cannot open shared object file: No such file or directory

grab

cd /usr/local/bin
ldd iCub_SIM
libode.so.6 => not found

really?

locate libode

add a link: (crude way)

ln -s /usr/local/lib/libode.so /usr/local/lib64/libode.so.6

ldconfig, new console, whatever – works!

[DEBUG]Loading texture   ' /usr/local/share/iCub/contexts/simConfig/models/blueTexture.bmp '  
[DEBUG]......... OK!  
[DEBUG]Texture Size  96   96 
[INFO]Finished Binding texture  
[INFO]Finished Setting parameters  
[INFO]Finished Setting glTexEnvf  
[INFO]Finished Setting glTexImage2D  
[INFO]Finished Setting gluBuild2DMipmaps  
[INFO]Finished creating 3D Model................
 
yarp: Port /icubSim/face/eyelids active at tcp://192.168.0.13:10062

20160928_icub_sim_1