Currently, we use an Ubuntu 12.04 with Low Latency kernel and Ros Hydro. The server PC should have the IP
192.168.1.10
and the KUKA arm controllers should be reachable from the server.
There are scripts in <kukie_home>/iis_scripts/krl. Copy the files <left/right>IISKukie.dat and <left/right>IISKukie.src to the KUKA controller. To run the software on the KRL side, execute the script. It will block at the line
wait for ($FRI_FRM_INT[1] == 101); Wait for a command
To use iis_kukie, you have to execute this script before you start the ROS side of iis_kukie.
Authenticate at the IIS server and download the framework from the git repository (see git documentation). E.g:
For members using the iis infrastructure in our lab:
git clone --recursive git@git.uibk.ac.at:iis-software/robot_sw.git
For external users:
git clone --recursive https://git.uibk.ac.at/iis-software/robot_sw.git
You can use the synaptic manager for this by
sudo apt-get install synaptic sudo synaptic
Install the following packages (examples are provided below for ROS Groovy and ROS Hydro) (this list may not be complete, if you find some package that needs to be installed, please add it to the list):
ROS Groovy
sudo apt-get install ros-groovy-cob-common ros-groovy-pr2 ros-groovy-ros-full ros-groovy-orocos-toolchain ros-groovy-rtt-ros-comm ros-groovy-ros-comm ros-groovy-geometry ros-groovy-common-msgs ros-groovy-common ros-groovy-rtt-geometry ros-groovy-moveit-full ros-groovy-moveit-full-pr2 libgsl0ldbl libgsl0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev ros-groovy-qt-build libqwt6 libqwt-dev libsdl1.2-dev ros-groovy-moveit-full ros-groovy-cmake-modules ros-groovy-map-msgs ros-groovy-controller-manager python-catkin-tools
ROS Hydro
sudo apt-get install ros-hydro-cob-common ros-hydro-ros-full ros-hydro-orocos-toolchain ros-hydro-rtt-ros-comm ros-hydro-ros-comm ros-hydro-geometry ros-hydro-common-msgs ros-hydro-rtt-geometry ros-hydro-moveit-full ros-hydro-moveit-full-pr2 ros-hydro-geometry-experimental libgsl0ldbl libgsl0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev ros-hydro-qt-build libqwt6 libqwt-dev libsdl1.2-dev ros-hydro-moveit-full ros-hydro-cmake-modules ros-hydro-map-msgs ros-hydro-controller-manager python-catkin-tools
ROS Indigo
sudo apt-get install ros-indigo-desktop-full ros-indigo-cob-common ros-indigo-ros-comm ros-indigo-geometry ros-indigo-common-msgs ros-indigo-control-msgs ros-indigo-geometry-experimental libgsl0ldbl libgsl0-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev ros-indigo-moveit-core ros-indigo-moveit-ros-planning ros-indigo-moveit-ros-planning-interface libghc-zlib-dev zlibc zlib1g-dbg zlib-bin ros-indigo-qt-build libqwt6 libqwt-dev libsdl1.2-dev ros-indigo-moveit-full ros-indigo-cmake-modules ros-indigo-map-msgs ros-indigo-controller-manager python-catkin-tools
ROS Kinetic
sudo apt-get install ros-kinetic-desktop-full ros-kinetic-ros-comm ros-kinetic-geometry ros-kinetic-common-msgs ros-kinetic-control-msgs libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev ros-kinetic-moveit-core ros-kinetic-moveit-ros-planning ros-kinetic-moveit-ros-planning-interface libghc-zlib-dev zlibc zlib1g-dbg ros-kinetic-qt-build libqwt-dev libsdl1.2-dev ros-kinetic-cmake-modules ros-kinetic-map-msgs ros-kinetic-controller-manager cmake libgsl-dev libgsl2 libopencv-dev python-catkin-tools ros-kinetic-openni2-launch ros-kinetic-openni-launch
if you want to install the workspace under ros kinetic, you have to install moveit from source (http://moveit.ros.org/install/source/)
Update your ros database by
sudo rosdep init rosdep update
Add an adapted version of the following example to your .bashrc file (<distribution> = groovy, hydro or indigo):
source /opt/ros/<distribution>/setup.bash export ROS_HOSTNAME= <your hostname> export ROS_IP= <your ip> export ROS_MASTER_URI='<your ros server ip>:11311' export IIS_INCLUDE_PATH='<your path>/iis_robot_sw' export VREP_ROOT=$IIS_INCLUDE_PATH/external_libs/vrep export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$IIS_INCLUDE_PATH/external_rosmake_ws:$IIS_INCLUDE_PATH/iis_rosmake_ws export PYTHONPATH=$PYTHONPATH:$IIS_INCLUDE_PATH/external_libs/LeapSDK/lib:$IIS_INCLUDE_PATH/external_libs/LeapSDK/libx64 export VREP_PACKAGE_PATH=$IIS_INCLUDE_PATH/external_libs/vrep
ROSVERSION=melodic WS_DIR=$HOME DEFAULT_WS=iis_ws #ROSVERSION=kinetic #DEFAULT_WS=robot_sw/iis_catkin_ws function getmyip() { MYIP=$(ip addr show wlan0 | grep "inet " | awk '{print $2}' | sed 's%/.*$%%g') if [ -z $MYIP ] ; then MYIP=$(ip addr show eth0 | grep "inet " | awk '{print $2}' | sed 's%/.*$%%g') fi if [ -z $MYIP ] ; then MYIP=127.0.0.1 fi echo "using IP: $MYIP" } function ros_local() { getmyip source /opt/ros/$ROSVERSION/setup.bash export ROS_MASTER_URI=http://$MYIP:11311 echo "set ROS_MASTER_URI=$ROS_MASTER_URI" export ROS_HOSTNAME=$MYIP export ROS_IP=$MYIP if [ "$1" != "" ] then WORKSPACE=$1 else WORKSPACE=$DEFAULT_WS fi echo "using workspace: $WORKSPACE" export IIS_INCLUDE_PATH=$WS_DIR/$WORKSPACE if [ -f $IIS_INCLUDE_PATH/devel/setup.bash ] ; then echo "sourcing $IIS_INCLUDE_PATH/devel/setup.bash" source $IIS_INCLUDE_PATH/devel/setup.bash else echo "No setup.bash file found on $IIS_INCLUDE_PATH/devel/setup.bash" fi } function ros_lab() { ros_local export ROS_MASTER_URI=http://192.168.64.104:11311 echo "changed ROS_MASTER_URI=$ROS_MASTER_URI" } function ros_robotino() { ros_local export ROS_MASTER_URI=http://192.168.1.111:11311 echo "changed ROS_MASTER_URI=$ROS_MASTER_URI" }
Adapt ROS_VERSION
, WS_DIR
, DEFAULT_WS
to you system. WS_DIR
can be used when all workspaces are stored in the same directory, e.g. $HOME/Repos
. The DEFAULT_WS
variable specifies the default workspace to be used when no argument is specified. An argument can be specified for initializing a different workspace, e.g. ROS_LOCAL robot_sw/catkin_iis_ws
.
Call the make file in the root folder of the workspace by typing
make
In some cases, this my fail several times, so just call it 2 to 3 times.
Description of the arm control topics can be found here.
Description of the KIT Head can be found here
deprecated Simulator documentation can be found at the simulator description page . The simulator provides topics according to the topics for the robotics hardware control used in the IIS labs. For information on these topics see the documentation of the hardware components (e.g. Arm documentation).
If you get the error:
... Unable to handle 'index' format version '2', please update rosdistro ...
Do:
sudo apt-get install --only-upgrade python-rosdistro python-rosdep python-rosinstall python-rosinstall-generator python-bloom rosdep update