Implementation of robotic tasks on the KUKA youBot platform, part 1
Dear readers of Geektimes, the Student Design Bureau (Robotics engineering department or RED) of the ITMO department of ITMO welcomes you. About us have already written in the blog of our university.
Within the framework of the university’s development program, RED has several goals, and one of them is participation in student competitive robotics at the international level. The popular international competitions RoboCup were chosen as the starting platform . At RoboCup there are several types of competitions, from robot football to socially-oriented robot competitions, which have been held in different countries since 1997. Russian teams also participated in competitions and won prizes.
Based on the technical equipment of RED and the analysis of the competitive environment, one of the possible categories of competitions was RoboCup @ Work , where many industrial manipulators compete in performing typical tasks for them. In many ways, this choice is due to the fact that the department has a pair of industrial robots youBot, created by KUKA. youBot is an omnidirectional mobile platform on which a five-degree manipulator with two-finger grip is installed. The kit includes: Laser Rangefinder URG-04LX-UG01 from Hokuyo Automatic Co. with a measurement range of 5600 mm at 240 °, with which you can realize localization and mapping; ASUS Xtion motion recognition device, similar to Microsoft Kinect. The creators of the robot are perfectly suitable for education.

You can install the OS on board the youBot controller (in our case, Ubuntu 12.04), which allows you to run the control directly on the computer embedded in the robot. Communication with the robot via a Wi-Fi module.
Working on youBot is a really great opportunity to get acquainted with industrial manipulators. But first we need to test ourselves and youBot in action.
It was decided to implement on youBot the obvious task for this kind of moving manipulators - to find and capture the target object. The program algorithm is as follows:
The localization problem is solved using the above laser range finder, and the recognition task is solved with the help of ASUS Xtion. All we need is to write programs that process the data from these sensors (the good is that there are ready-made open libraries for these purposes), and also somehow implement the seizure of the object. In addition, you need to combine all three parts of the task into a single system.
Youbot control, data processing and “communication” between the sensors and the robot, we decided to implement using the Robot Operating System. On Habré there were already articles about ROS and about the robots working with its help. For example, here it is told about the remarkable implementation of a hexapod robot, starting from parsing iron and designing a model to combining all the nodes under the control of ROS.
Just in case, we recall that ROS is a framework for working with robots, which facilitates the development and integration of various software components. ROS is used both in amateur and educational projects, and for the development of programs for industrial robots. It is worth noting that a second version of ROS is being developed , which promises to include even more possibilities for the development of robots.
ROS provides many of the services of a standard OS: hardware abstraction, low-level control of devices, the transfer of messages between processes and packet management. ROS consists of two parts: the ros software kernel itself , and ros-pkg , the package set ( package), inside which contains any data, libraries, executable and configuration, logically combined into a useful module.
The main concepts of communication of components in ROS are nodes ( node ), messages ( message ) and topics ( topic). A node is a running process that can communicate with other processes. A topic is a named pipe connecting various nodes. ROS is based on graph architecture, where data processing takes place in nodes that can receive and transmit messages among themselves. These messages are published in topics that divide messages into interest groups. When a node needs to receive messages with certain data, this node subscribes to a specific topic. Due to this, a “ publisher-subscriber ” relationship arises between the nodes .
In our case, the ROS core is launched on the youBot controller itself, and there is organized a data processing graph between three software nodes (localization, object recognition and its capture). These nodes publish data about their work in relevant topics, whether it be information about the achievement of a target platform by a robot or object coordinates. For three topics, the main managing node is signed, which monitors the work of the other three, and publishes commands in a special topic, to which managed nodes are subscribed. Therefore, the control graph looks like this:

To speed up the work, we were divided into three teams, each of which had to implement one of the three nodes.
In the next article we will describe how we managed to implement localization, and what we used for this.
Stay with us.
Within the framework of the university’s development program, RED has several goals, and one of them is participation in student competitive robotics at the international level. The popular international competitions RoboCup were chosen as the starting platform . At RoboCup there are several types of competitions, from robot football to socially-oriented robot competitions, which have been held in different countries since 1997. Russian teams also participated in competitions and won prizes.
Based on the technical equipment of RED and the analysis of the competitive environment, one of the possible categories of competitions was RoboCup @ Work , where many industrial manipulators compete in performing typical tasks for them. In many ways, this choice is due to the fact that the department has a pair of industrial robots youBot, created by KUKA. youBot is an omnidirectional mobile platform on which a five-degree manipulator with two-finger grip is installed. The kit includes: Laser Rangefinder URG-04LX-UG01 from Hokuyo Automatic Co. with a measurement range of 5600 mm at 240 °, with which you can realize localization and mapping; ASUS Xtion motion recognition device, similar to Microsoft Kinect. The creators of the robot are perfectly suitable for education.

You can install the OS on board the youBot controller (in our case, Ubuntu 12.04), which allows you to run the control directly on the computer embedded in the robot. Communication with the robot via a Wi-Fi module.
Working on youBot is a really great opportunity to get acquainted with industrial manipulators. But first we need to test ourselves and youBot in action.
It was decided to implement on youBot the obvious task for this kind of moving manipulators - to find and capture the target object. The program algorithm is as follows:
- Localization and maping: determining the location of the target site on which the object stands, among the obstacles (low boards - “walls” act as obstacles) with the subsequent approach to the site.
- Object recognition: search for an object that rests on the site, and obtain its coordinates.
- Capture an object using the obtained coordinates and transfer it to the desired location.
The localization problem is solved using the above laser range finder, and the recognition task is solved with the help of ASUS Xtion. All we need is to write programs that process the data from these sensors (the good is that there are ready-made open libraries for these purposes), and also somehow implement the seizure of the object. In addition, you need to combine all three parts of the task into a single system.
Youbot control, data processing and “communication” between the sensors and the robot, we decided to implement using the Robot Operating System. On Habré there were already articles about ROS and about the robots working with its help. For example, here it is told about the remarkable implementation of a hexapod robot, starting from parsing iron and designing a model to combining all the nodes under the control of ROS.
Just in case, we recall that ROS is a framework for working with robots, which facilitates the development and integration of various software components. ROS is used both in amateur and educational projects, and for the development of programs for industrial robots. It is worth noting that a second version of ROS is being developed , which promises to include even more possibilities for the development of robots.
ROS provides many of the services of a standard OS: hardware abstraction, low-level control of devices, the transfer of messages between processes and packet management. ROS consists of two parts: the ros software kernel itself , and ros-pkg , the package set ( package), inside which contains any data, libraries, executable and configuration, logically combined into a useful module.
The main concepts of communication of components in ROS are nodes ( node ), messages ( message ) and topics ( topic). A node is a running process that can communicate with other processes. A topic is a named pipe connecting various nodes. ROS is based on graph architecture, where data processing takes place in nodes that can receive and transmit messages among themselves. These messages are published in topics that divide messages into interest groups. When a node needs to receive messages with certain data, this node subscribes to a specific topic. Due to this, a “ publisher-subscriber ” relationship arises between the nodes .
In our case, the ROS core is launched on the youBot controller itself, and there is organized a data processing graph between three software nodes (localization, object recognition and its capture). These nodes publish data about their work in relevant topics, whether it be information about the achievement of a target platform by a robot or object coordinates. For three topics, the main managing node is signed, which monitors the work of the other three, and publishes commands in a special topic, to which managed nodes are subscribed. Therefore, the control graph looks like this:

To speed up the work, we were divided into three teams, each of which had to implement one of the three nodes.
In the next article we will describe how we managed to implement localization, and what we used for this.
Stay with us.