ICub machines configuration: Difference between revisions
(→OpenCV: notes on manual installation) |
|||
Line 104: | Line 104: | ||
'''error: ‘ptrdiff_t’ does not name a type''' | '''error: ‘ptrdiff_t’ does not name a type''' | ||
Solution: edit OpenCV-2.2.0/modules/core/include/opencv2/core/core.hpp, add #include <stddef.h> | Solution: edit OpenCV-2.2.0/modules/core/include/opencv2/core/core.hpp, add #include <stddef.h> | ||
'''fatal error: linux/videodev.h: No such file or directory''' | '''fatal error: linux/videodev.h: No such file or directory''' | ||
Solution: install libv4l-dev | Solution: install libv4l-dev | ||
Revision as of 14:22, 12 June 2013
In this page we will list configurations that are commonplace to machines used at Vislab, particularly Linux machines that work with the iCub robot.
See VisLab machines configuration/Archive for obsolete information and environment variables.
Operating system installation
Nothing fancy here - follow Ubuntu defaults and partitioning. For servers, use LTS releases. Machines involved in demos must have a user named 'icub', called by the graphical Application Manager.
Operations after first boot
- update packages:
- either with Ubuntu graphical frontends
- or from a Terminal:
sudo apt-get update
;sudo apt-get upgrade
- add 'icub' user if not done already:
- either with Ubuntu graphical frontends
- or from a Terminal:
sudo adduser icub
followed bysudo usermod -aG admin icub
to give it sudo privileges
Other operations
Network configuration
See also: VisLab network, ISR computing resources.
Manually configure your internet connection as detailed in one of the following subsections, depending if the machine is a desktop or a server one.
Optionally, you may also customize the /etc/hosts
file like we did on Chico3; this would allow us to quickly access other machines, as in: ping cortex1
. Alternatively, we can do nothing and just use ping cortex1.visnet
(i.e., attach the .visnet
part after a machine name, see VisLab network for details).
Desktop machines
With the graphical Network Manager (https://help.ubuntu.com/10.04/internet/C/connecting-wired.html), configure the connection "Auto eth0" IPv4 as follows:
Address | Netmask | Gateway | DNS Servers | notes |
---|---|---|---|---|
10.10.1.x | 255.255.255.0 | 10.10.1.254 | 10.0.0.1, 10.0.0.2 | visnet (iCub machines) |
10.0.x.y | 255.255.0.0 | 10.0.0.254 | 10.0.0.1, 10.0.0.2 | isrnet (rest of ISR) |
Servers
Edit /etc/network/interfaces
like this:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.x.y.z # put your IP here, see above table netmask 255.255.x.y # see above table network 10.10.1.0 broadcast 10.10.1.255 gateway 10.10.1.254
Edit /etc/resolv.conf
like this:
nameserver 10.0.0.1 nameserver 10.0.0.2
Essential packages
sudo apt-get install gcc g++ make subversion ssh libace-dev libgsl0-dev libncurses5-dev gfortran cmake-curses-gui libgtkmm-2.4-dev
Environment variables
- Create a file called ~/.bash_env (used by both interactive and non-interactive sessions, such as commands launched via
yarprun
from another machine) like this one:
export code=/usr/local/src/robot # prerequisite - create this directory and do: sudo chown icub.icub /usr/local/src/robot -R export YARP_ROOT=$code/yarp2 # $code/yarp for the new github repository (April 2013) export YARP_DIR=$YARP_ROOT/build export ICUB_ROOT=$code/iCub export ICUB_DIR=$ICUB_ROOT/main/build export PATH=$PATH:$YARP_DIR/bin:$ICUB_DIR/bin export ICUB_ROBOTNAME=iCubLisboa01 # only for machines that connect to the real robot export IPOPT_DIR=/home/icub/Ipopt-3.10.2/build # only for servers (IK solver) - see http://eris.liralab.it/wiki/Installing_IPOPT export OpenCV_DIR=$code/OpenCV-2.4.0/build # manually installed, with TBB support source $YARP_ROOT/scripts/yarp_completion
- Then, before the following line of /etc/bash.bashrc
[ -z "$PS1" ] && return
add this:
# per-user environment variables (non-interactive and interactive mode) source $HOME/.bash_env
Subversion
For security, uncomment (thus enabling) the following parameter in /etc/subversion/config
:
store-passwords = no
This implies that SVN will ask you for your password every time you do a commit, as opposed to storing it in plain text on the system. (Don't worry about changing your personal ~/.subversion/config
file: the parameter is not actually set there, so the global /etc
setting is used.)
Additional software
OpenCV
Ubuntu packages
sudo apt-get install libcv-dev libhighgui-dev libcvaux-dev
Manual compilation
This is needed for some iCub vision modules (e.g. motionCUT, stereoDisparity). Instructions:
- download TBB Source, make
- download OpenCV 2.2.0, CMake, set USE_TBB=ON and insert the paths obtained with the TBB compilation, such as
error: ‘ptrdiff_t’ does not name a type
Solution: edit OpenCV-2.2.0/modules/core/include/opencv2/core/core.hpp, add #include <stddef.h>
fatal error: linux/videodev.h: No such file or directory
Solution: install libv4l-dev
YARP and iCub
Follow the instructions on the RobotCub software article. For compilation on servers, do not use sudo make install
but simply make
(we have configured the PATH variable to find the latest compiled binaries, and we do not want two copies of the same thing on the system).
- usual yarp2 CMake flags
CMAKE_BUILD_TYPE Release CREATE_LIB_MATH
- usual iCub CMake flags
CMAKE_BUILD_TYPE Release
Special machines such as pc104 or robot computation servers need additional flags. In addition, machines that work with the physical robot need the following setup:
yarp namespace /icub
- in order to find the yarpserver running on chico3, write
10.10.1.53 10000
into the file specified byyarp conf