Over the last couple of years, the scale and scope of the world wide robotics community has grown substantially, particularly because it has shown impressive progress. ROS - Robot Operating System - provides solutions in the areas of commonly-used functionalities, low level device control or packages management.
Most of the needed documentation for a good start-up into the ROS world is available on the ROS official website. This documentation is available in two parts (depending on the level of expertise). First part of the training is focused on the basic concepts and their dependences, and it is recommended for all users to get to know the new features. In the second part of the training, access to more complex examples is provided, which allows the customisation of the development environment and the sharing of multiple resources in a common project.
Pioneer 3Dx Robot Control
In our research we have used the Pioneer 3Dx Robot. This robot is a two-wheel two-motor differential drive platform, that contains front sonar sensors, one battery and wheel encoders. With the original equipment, plus an additional Kinect sensor and a Robai Cyton Gamma 7DOF Arm, we are doing environmental map generation, navigation tasks and manipulations tasks.
The robot, with all equipments described above, is used directly inside our lab. Additionally, we are using it in simulated environments, using Rviz or Gazebo. The main packages and nodes used in our development are:
1. RosAria node: contains functionalities that allow the control of different robots. Using this node offers the possiblity to also control the Pioneer 3Dx robot directly;
2. Freenect package: it is used to connect to the Microsoft Kinect camera;
3. Laser-scan Kinect package: based on this package, the depth image received from the Kinect sensor is converted to 2D laser scanner format;
4. Navigation package: allows to send Pose commands to a robot, in order to navigate to it;
5. Object detection package: this neural network framework is used to extract predefined objects of interest from the received images, by using the Kinect sensor;
6. Robot arm package: contains all the necessary drivers to connect to the robotic arm, together with some simulation demo for it.
All the functionalities developed by the ROVIS team in ROS, can be found in our virtual machine, which can be downloaded using the next button
The virtual machine is designed to be opened using WMware player . The password used to log-in into the virtual machine is: "thor".
In order to have the best performance of the algorithms, you have to allocate as much resources as possible to the virtual machine. This allows you to have a smooth simulation of a robot. This image has a fully functional ROS system, installed on an Ubuntu 14.04 operating system. All the dependences required by the Pioneer 3Dx robot have already been configured by our team.
In this experiment we are mapping our laboratory area using the Kinect sensor and the Robot. The data from the sensor is transformed into a laser-scan, which is further used to build the 2D occupancy grid. The result can be seen in the image on the side. The full mapping video is available at the end of this page.
On the input images (acquired with the Kinect camera) we applied specific detection algorithms, from the Yolo library. These detected objects are predefined and ware trained a priori using specific models. The 3D object position is published on a ROS topic, which is further used by other modules.
In this experiment we are using the generated occupancy grid to navigate to a specific 2D point. The goal point is received from the detection node.
Based on the results achieved in our Generic Fitted Shapes (GFS) research from here, the grasping points computed from a detected object of interest are used to perform manipulation tasks.
Dr. Ing. Gigel Macesanu
Department of Automation, Transilvania University of Brasov,
Mihai Viteazu 5, Corp V, et. 3, 500174 Brasov, Romania.
Email: gigel.macesanu (AT) unitbv.ro