Collection of stacks which make up the TeleKyb framework to control quadrotor UAVs.

This site and the TeleKyb code itself are under active development. We will always try out best to release only tested code, however, any version might still contain some undesired behavior.


TeleKyb is released under the new BSD license. Please note that this software is provided 'as is' whithout any warranties. Furthermore, neither one of the authors nor their institutions can be hold responcible of any harm or damage of any kind caused by the use of this software or by follwing this instructions. The use of TeleKyb is completely at our own risk!


  • Currently, TeleKyb only supports Ubuntu 12.04 LTS in combination with ROS Furte.

  • With the use of our custom low-level software, Quadrotors from MikroKopter are currently the best supported quadrotor and these instructions require a MikroKopter UAV.

  • To run the demo, you will need an quadrotor from MikroKopter, a pair of Zigbee style communication modules (we use those from AscTec as they already come together with a serial-USB converter), an external tracking system from NauralPoint or Vicon, and a gamepad with native linux support (Logitech F310/F520/F710 gamepads or those from a Playstation will do). A radio remote control is not needed.

Flashing of the Low-Level Software onto the MikroKopter

  • TeleKyb identifies each MK through an ID which has to be set at compile time of the low-level control code.

  • Currently, compilation is only possible on Windows using a tool for the development of micro controller code.
  • Therefore, we provide ready-to-go binaries with robot IDs 0 to 5.
  • Similarly, we provide binaries for both the old red mega644 and the new black mega1284 flight control boards.
  • Please flash the according .hex file onto your quadrotor using the MikroKopter-Tool provided by MikroKopter.

  • The binaries can be found here.

  • For the following instructions, consider to flash the binary for quadrotor 4 using either this hex file in case your MikroKopter has a red platina or this file if you already have the new black platina.

Installation of TeleKyb

# Checkout the TeleKyb repository
svn co telekyb

# Update ROS_PACKAGE_PATH (if necessary)
echo "export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/telekyb/stacks" >> ~/.bashrc

# Install ROS standalone tools, if not done already
sudo apt-get install python-rosinstall python-rosdep

# Install system dependencies for the mikrokopter demo package:
rosdep install tk_mk_demo

# build all packages required for the mikrokopter demo
rosmake tk_mk_demo

Run the Demo


  • Before running the demo, make sure that you are in the dialout usergroup of your Ubuntu system to be able to use the ZigBee modules.

  • Setup your quadrotor in your tracking system and name the object 'Quadrotor_4'
  • Ensure your tracking system streams the object pose using the VRPN protocol. With Vicon, no action is required while this has to be specifically enabled with OptiTrack systems.

The Demo

  • Run the demo by one of the following commands depending on your tracking system - adjust the IP to your tracking system accordingly:

#If you have a Vicon motion tracking system, run this command.
roslaunch tk_mk_demo gamepad_mk_vicon.launch IPTrackingSystem:= --screen

#This comand is for an Optitrack system from NaturalPoint.
roslaunch tk_mk_demo gamepad_mk_optitrack.launch IPTrackingSystem:= --screen


/dev/derial/by-iddoes not exist

You are either not in the dialout user group, the ZigBee module is not connected, or otherwise not detected.

Could not find UAV with matching tUavID and tUavFirmware

The specified quadrotor ID could not be found using any of the currently connected serial devices.

Did not receive initial TKState within Timeout!

In most cases, TeleKyb could not get the current pose from the tracking system. You should also see periodical messages of the type "(n) from object_name: No resonse from the server for >= m seconds". Make sure that you set the right IP (e.g., try to ping that IP), that you named the object correctly (it should be the object_name from the error message), and that your tracking system is actually streaming the object pose.

Report a Bug


Wiki: telekyb (last edited 2013-05-01 17:50:33 by VolkerGrabe)