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