📜 ⬆️ ⬇️

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.

As part of the development program of the University, 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. There are several types of contests at RoboCup, from robot football to socially-oriented robots, 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 has become 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 youBot industrial robots 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 implement localization and mapping; ASUS Xtion motion recognition device, similar to Microsoft Kinect. The creators of the robot are perfectly suited 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 through the 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 an obvious task for this kind of moving manipulators - to find and capture the target object. The program algorithm is as follows:
  1. 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.
  2. Object recognition: search for an object that rests on the site, and obtain its coordinates.
  3. Capture an object using the obtained coordinates and transfer it to the desired location.

The task of localization is solved with the help of the above laser range finder, and the task of recognition 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.

You decided to control youBot, data processing and “communication” between sensors and the robot 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 currently 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 device control, inter-process messaging, and packet management. ROS consists of two parts: the ros software kernel itself, and ros-pkg , a package set ( package ), 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 to the 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.

Source: https://habr.com/ru/post/392419/


All Articles