Blog

Latest entries

MongoDB Logging presented at ROSCon 2013

Last weekend some of us went to ROSCon 2013 to listen to all the great stuff happening in the ROS eco system and present some of our own work.

The item which probably gained most attention was the presentation and announcement of the MoveIt release. It's definitely something to look into and a platform to consider in the future for doing mobile manipulation. Another interesting presentation was on the Robot Web Tools. While the presentation's balance leaned a bit from technical to fancy (probably a web people thing) it showed some very nice integration possibilities. Depending on how platform agnostic it is it could be re-used for Fawkes. Another thing to look into is tf2. It seems to finally get rolled out in ROS, making it worthwhile to consider it for integration again.

A particular thing that was talked much about was ROS 2.0, the magic next version which solves everything and makes all dreams come true -- sort of. It shows a lot of promise and the open process by which its design decisions should be made is appealing. Some of the things that were discussed indicate that ROS 2.0 might be much easier to integrate with other non-ROS software.

On our end Ingo Lütkebohle (Bielefeld University) and Tim Niemueller(RWTH Aachen University) presented data recording and evaluation techniques. The MongoDB-based logging received quite some attention. It seems to be time to backport the advancements we made on the Fawkes logger version back to ROS. Additionally the RobotMetaLogger was presented that might benefit by supporting the MongoDB-logger as an input source.

On-line Use of Recorded Data from Database

On particular example we presented is the use of data recording to remember point clouds and other data. Certain times of observation points are recorded during a run. Then later the data and associated transforms is restored and the point clouds are merged to fill shadows and occlusions in the data for a complete perception run. Below are some screenshots of the visualization documenting the process. You can find a video of the process in our recent video on deliberative active perception employing hybrid reasoning.

Posted by Tim Niemueller on May 16, 2013 13:36

Video about Hybrid Reasoning on the PR2

We have posted a video introducing the DFG Research Unit on Hybrid Reasoning in general, and the C1 Robotics sub-project in particular. We present a demo on the PR2 robot that will serve as a baseline system and testbed for further research. The C1 project is a joint effort of the Research Lab Autonomous Intelligent Systems, University of Freiburg, the Knowledge-Based Systems Group, RWTH Aachen University, and the Research Group Foundations of Artificial Intelligence, University of Freiburg.

The Hybrid Reasoning C1 Robotics project investigates effective and efficient ways to combine quantitative and qualitative aspects of knowledge representation and reasoning. In the video in particular, we implemented a baseline system to work on active perception. We want the robot to reason on its current beliefs and if necessary decide what to do to improve them.

The base system was based on ROS for the PR2 and the TidyUpRobot demo from Freiburg. The PDDL-defined planning domain was adapted for action planning in our active perception scenario. The perception system was based on Fawkes' tabletop-objects plugin and the generic robot database recording with MongoDB. The planner decided on a sequence of positions to move to and waited a short time at each position and noted the timestamp at such a position. The database recording was running all the time, storing in particular transforms, images, and point clouds of the Kinect. After each position, the pcl-db-merge plugin was triggered by the planner as another action to merge and align the point clouds. The data for the recorded time stamps was retrieved from the database. The initial point cloud offset estimate was based on the robot's AMCL ( Fawkes port) pose information (at the respective recording time of the point cloud). Then, the point clouds were further aligned using pair-wise ICP alignment (implemented using PCL). The perception pipeline itself was improved to determine cylinder-shaped objects like certain cups. The pipeline was run on the merged point clouds, eventually leading to better results because occlusion shadows and incomplete object shapes had been resolved by taking data from multiple perspectives into account.

In the future, we want to integrate the system with Readylog to model the belief states and reason on their current quality.

The Fawkes related code is available in the timn/pcl-db-merge and abdon/tabletop-recognition branches. The planning code is in the hybris_c1-experimental branch of the alufr-ros-pkg repository.

Posted by Tim Niemueller on March 18, 2013 14:59

Workshop at European Robotics Forum 2013

There will be a working session on Infrastructure for Robot Analysis and Benchmarking at the European Robotics Forum 2013 next week in Lyon, France. With this workshop we try to create a community bringing together interested people from academia and industry to discuss methods, tools, and ideas about systematically evaluating robot systems. As part of this workshop a member of the Fawkes development team will present state of the art data acquisition technologies of contemporary frameworks such as ROS or Fawkes. One of the shown possibilities will be our work for MongoDB-based data logging.

If you are interested please join us on March 21st (third and last day of the forum) at 8:30. If you want to meet and chat please do not hesitate to contact Tim Niemueller.

There will also be a presentation at ROSCon 2013 on similar topics and we are currently preparing an IROS workshop.

Posted by Tim Niemueller on March 15, 2013 17:28

Robotino Hackathon 2013

The IMA/ZLW & IFU Institute Cluster, RWTH Aachen University, the Knowledge-based Systems Group, RWTH Aachen University, and the Department for Electrical Engineering and Information Technology, Robotics Group, FH Aachen participate in the RoboCup Logistics League Sponsored by Festo (LLSF) as a joint team.

This year selected students participated in focused development activities regarding computer vision and task coordination. The vision's group task was to create a vision application using the omni-directional camera of the Carologistics Robotino to detect active signal lights on the field. The task of the coordination group was to develop a CLIPS-based agent that would plan for appropriate actions to roam the field to search for these activated signals. Once found, it was to move close to the signal. This forms the base system to perform the "Whack-A-Mole" technical challenge specified in this year's LLSF rules.

As last year it allowed the students to excel at their capabilities and it was a lot of fun. Many of the students decided to stay with the team and are now helping in the preparations for the RoboCup German Open 2013.

Posted by Tim Niemueller on March 1, 2013 12:00

5th BRICS Research Camp

Last week, the BRICS project invited young researchers and robotics experts from around the globe for the 5th BRICS Research Camp in Granada, Spain. The overall goal was to integrate and to analyze a mobile manipulation task on the Care-O-bot and YouBot platforms, as well as integrating and evaluating components and ideas developed in the BRICS project.

Group 6 was tasked with porting the YouBot architecture onto the Care-O-bot -- and back. It was decided that rather than porting the software components bit by bit, rather it would be interesting to port capabilities and behavior to accomplish the same robot task. For this a semantic task abstraction level which allows to provide skills as a unified communication from the high level task coordination with the lower level subsystems. This mid-level level system is much in the tradition as Fawkes' Lua-based Behavior Engine. But here, it was implemented as an intermediate Python layer called ActionCmdr. In particular, it supports splitting of the behavior code into multiple packages allowing for general skills were possible, and specialized where necessary. This allowed to run the exact same high-level program on both robots. Two groups cooperated in bringing back the code onto the YouBot, after it has been ported to the Care-O-bot, showing the generality and portability of the new architecture. The picture to the right shows Group 6 and Group 1 with the Care-O-bot and two YouBots (from left to right, back row: Lucian Goron, Peter Schüller, Florian Weißhardt, Andreas Schierl, Tim Niemueller, Oliver Zendel, Felix Meßmer, front row: Leif Jentoft, Chandan Datta, and Daniel Ortiz Morales).

There is more on the Care-O-bot news page and in the program on the Research Camp wiki

Care-O-bot Demo

YouBot Demo

Thanks to Group 1 we were able to port the code back to the YouBot and run the demo.

Posted by Tim Niemueller on November 6, 2012 18:03

robOCD: Robotic Order Cups Demo - An Interactive Domestic Service Robotics Demo

We have uploaded a new video highlighting a demo integrating natural user interaction by speech and gesture, decision theoretic planning, and autonomous task execution on the domestic service robot Caesar at the KBSG, RWTH Aachen University. It was conceived and implemented during the RoboCup German Open.

In a home-like environment Caesar's task is to help setting the table. Besides basic capabilities of an autonomous mobile robot it uses methods for human-robot interaction and it also has a sophisticated high-level control that allows for decision-theoretic planning. We use this demo to illustrate the interplay of several modules of our robot control software in carrying out complex tasks. The overall system allows to perform robust reliable service robotics in domestic settings like in the RoboCup@Home league.

Also, we show how our high-level programming language provides a powerful framework for agent behavior specification that can be beneficially deployed for service robotic applications.

Posted by Tim Niemueller on October 5, 2012 13:24

BendIT - An Interactive Game with Two Robots

Below you can watch a video of the achievements of the Lab Course "Controlling Interactive Games and Robots" at the Knowledge-based Systems Group of the RWTH Aachen University in winter term 2011/2012. It was designed and implemented by the students of the lab course.

A human user uses his torso movements to steer a Festo Robotino robot along a pre-defined course. Our domestic service robot Caesar acts as a referee and autonomously follows the Robotino and makes sure that it stays within a corridor along the path. If the user manages to keep the Robotino within the corridor for the whole path he wins. The game can be used, for example, to engage people in physical training such as a rehabilitation after an injury.

Posted by Tim Niemueller on October 5, 2012 13:19

Fawkes 0.5.0 released

Today we are happy to announce the release of Fawkes 0.5.0. This release two years after the last major release (we need to get better on this) contains a vast amount of new software components and plugins, sub-systems, and overall system and framework improvements. For this release, the large majority of additions and changes has been made to functional components and plugins, rather than the core framework. This indicates that Fawkes has matured over the years and provides a solid base for robot software applications.

The new software components cover typical robot tasks like self-localization, (point cloud based) perception, robot arm motion planning, and integration with other software frameworks. Many of these components are possible because we integrated other third party robot software components and make it available within the Fawkes ecosystem. We have also added support for several common robot platforms like the Nao, the Robotino, and the Roomba. These robots can now be used easily out-of-the box with Fawkes.

Here is a more detailed (yet still incomplete) list of additions and changes in Fawkes 0.5.0.

ROS Integration
This version integrates closely with ROS, the Robot Operating System. It can provide data acquired in Fawkes to ROS and vice versa, integrate ROS' move_base locomotion planner, and several plugins now use rviz to visualize their internal state.
OpenNI Integration
Fawkes can now use OpenNI to acquire RGB-D data from sensors like the Kinect, and make use of the provided hand and user tracking capabilities.
Point Cloud Processing
New tool support and plugins have been added to make use of the Point Cloud Library (PCL). For example, a plugin to analyse tabletop scenes has been added identifying the position of table in front of the robot and objects on it.
OpenRAVE Manipulation Planning
An integration plugin for OpenRAVE has been added that allows plugins to use, for example, its motion planning capabilities. The Katana 5 DoF arm hardware plugin has been extended to make use of this new capability.
New Hardware Platforms
Fawkes can now work on robot platforms like the Nao, the Robotino, and the Roomba. The plugins integrate the robot's hardware capabilities and make it easily available to other plugins.
Self-localization
Fawkes now comes with an Adaptive Monte Carlo Localization plugin which has been ported from ROS. Using a known map an frequently taken 2D laser scans it can determine the robot's position within the map.
Coordinate Frame Transforms Framework
Fawkes now includes a framework and library for easily calculating transforms for points in different coordinate frames. The system is based on and thus compatible with ROS' tf framework.
RRD graphing
A new plugin provides RRD graphing capabilities for plugins. For example, for a MongoDB Logging project performance graphs have been created with this framework.
CLIPS Expert System Integration
The CLIPS rule engine for building Expert Systems has been integrated into Fawkes. Plugins can now easily acquire a CLIPS environment and start using it. For example, the Carologistics team has used this to create a reasoning agent to participate in the RoboCup Logistics League sponsored by Festo.

Thank you to the contributors who made this release possible. The new release is available on the download page. The documentation is continuously extended and improved in our Trac Wiki.

Posted by Tim Niemueller on September 27, 2012 12:43

Generic Logging to MongoDB

Autonomous mobile robots produce an astonishing amount of run-time data during their operation. Data is acquired from sensors and actuator feedback, processed to extract information, and further refined as the basis for decision making or parameter estimation. In today’s robot systems, this data is typically volatile. It is generated, used, and disposed right away. However, some of this data might be useful later, for example to analyze faults or evaluate the robot’s performance. A system is required to store this data as well as enable efficient and flexible querying mechanisms.

We have created systems based on the document-oriented, schema-free database MongoDB that is able to store any and all data transmitted via Fawkes blackboard interfaces or ROS topics. A particularly important property is that the interface or message type structure is inherited by the database document, thus allowing selective queries on the stored data. By creating appropriate indexes access is also very efficient. The architecture has been implemented and released as Open Source software for Fawkes and ROS.

This work has recently been accepted for publication at IROS 2012 in the paper "A Generic Robot Database and its Application in Fault Analysis and Performance Evaluation" (Niemueller, Lakemeyer, Srinivasa). The work has been conducted in a cooperation of the Personal Robotics Lab at The Robotics Institute of the Carnegie Mellon University and the Knowledge-based Systems Group of the Computer Science Department of the RWTH Aachen University.

The data can open the door to a wide array of applications, two of which we sketch in the paper. For one, we develop a model of robot data processing and make use of this model to guide our way to manual data-driven fault analysis. For another, we use the MapReduce paradigm to query the data for performance data like number of successful executions and average run times of the behavior system for a particular time range.

The project is described in detail on the Generic MongoDB logging project page.

Posted by Tim Niemueller on July 31, 2012 18:24

Carologistics at RoboCup 2012

The IMA/ZLW & IFU Institute Cluster, RWTH Aachen University, the Knowledge-based Systems Group, RWTH Aachen University, and the Department for Electrical Engineering and Information Technology, Robotics Group, FH Aachen founded the new Carologistics robot team to participate in the Festo RoboCup Logistics League

The team is about to set out for their journey to Mexico City to take part in the competition. During a Hackathon students were trained and selected to take part in the competition and developed the crucial software components required for the competition. They have developed, adapted, ported, and integrated software to perform self localization, navigate the Robotino on the playing field avoiding obstacles, visually detect pucks and lights, and behavior code to tie it all together. They use a mix of Fawkes and ROS to power their robots and to get a tightly integrated system which fits the platform short in terms of computing power. If you are interested about Fawkes and at RoboCup 2012 you are welcome to visit us and have a chat!

Posted by Tim Niemueller on June 14, 2012 01:24

Robotino Hackathon 2012

The IMA/ZLW & IFU Institute Cluster, RWTH Aachen University, the Knowledge-based Systems Group, RWTH Aachen University, and the Department for Electrical Engineering and Information Technology, Robotics Group, FH Aachen founded a new joined team to participate in the Festo RoboCup Logistics League

To kick off the team, and as a preparation for RoboCup 2012 in Mexico City, there will be a Hackathon from May 28th to June 1st (excursion week). The goal of this Hackathon is to integrate a robotics system based on the Robotino robot, that can complete certain logistics task in a restricted environment.

Who can participate?

Any student of the RWTH Aachen University or the FH Aachen can participate. Because of constraints in room and advisers participants will be selected among the applicants. Strong applications including good qualifying information is preferred.

Participants should be fluent in C++ programming. A background in robotics (lectures, programming experience etc.) is preferred but not required. Students must be eager to learn about new mathematical and programming concepts and to work in small groups on a particular topic.

What do we offer?

We can offer first-hand knowledge and experience in robot research and application development from an experienced team of robotics researchers. There will be introductory talks on the first day introducing the topics. On the following days small groups will work on the development an integration of modules on robot self-localization, navigation, computer vision, point cloud processing, behavior design, etc.

Some students will be selected to join us for the participation in RoboCup 2012 in Mexico City based on their work and team cooperation. There will be free Pizza and soft drinks throughout the Hackathon.

Background Info

The RoboCup Logistics League is a brand-new league sponsored by the German industrial manufacturer Festo. The goal is to solve problems in logistics with autonomous mobile robots in a competitive environment. Three Robotino robots per team have the task to transport material between production locations within the field of play.

When will the Hackathon take place?

The Hackathon will be held from May 28th 2012 to June 1st 2012. This is the excursion week at the RWTH Aachen University and there will be no lectures during that time. The Hackathon will be held daily from 9:00 to 18:00. Should you apply participation on each day for the full time is expected (exceptions could be negotiated, state in your application).

How to participate

To participate you will need to apply by email until May 13th 2012. Applicants will be notified by May 20th of acceptance or rejection. There are only a limited number of slots available. Applications will be selected based on the documentation handed in with the application.

To apply send an email to Tim Niemueller including information regarding your studies, semester, and about your background in (C++) programming, robotics, and relevant lectures.

Posted by Tim Niemueller on May 16, 2012 15:20

Repository now available via Git HTTP

The Fawkes git repository can now be cloned, for example, with
git clone http://git.fawkesrobotics.org/fawkes.git
If you open the same URL in your browser you'll get the gitweb page. This is intended. Note that this method only works for public repositories. Other repositories offer SSH access only. The links on the download page have been updated. This should solve a problem for a new contributing team with their firewall.

Posted by Tim Niemueller on April 13, 2012 16:18

ROS Integration for Fawkes

Fawkes and ROS are robot software frameworks, each with unique features. Recently, we have added plugins to Fawkes to participate in the ROS ecosystem as a ROS node. Furthermore we have created rosfawkes. It encapsulates Fawkes in a ROS package for straight-forward inclusion.

The Fawkes ros plugin allows users of Fawkes to benefit from the wealth of code that is being written for ROS nowadays. Other components can access ROS and communicate with other nodes via topics or provide or invoke services. Fawkes plugins can be written that benefit from the focus and infrastructure on these closely implemented components, much like nodelets on steroids.

The rosfawkes package embeds Fawkes into ROS and provides a specialized main application embeds Fawkes in a ROS node. The package makes it possible to use all of Fawkes' libraries and tools in ROS nodes. For example, the ros-webview integration plugin allows ROS nodes to extend the Fawkes webview web interface.

With this code we have only made the first step, but an important one. We strive for an even closer integration in the future.

The basic installation instructions for the two ways of integration are described in the (preliminary) rosfawkes documentation.

Posted by Tim Niemueller on May 26, 2011 00:03

RoboCup German Open 2011

The AllemaniACs RoboCup Team has arrived in Madgeburg to participate in the RoboCup German Open 2011. This time they will participate in the RoboCup@Home service robot competition.

The robot Caesar is powered by the current version of Fawkes, in combination with an older software system called RCSoftX. Most teams are now employing Kinect cameras. For the AllemaniACs, support for OpenNI has landed in Fawkes just in time.

You are welcome to visit us in Hall 1 of the Messe Magdeburg to see robots helping in a household or to ask questions about Fawkes.

Posted by Tim Niemueller on March 30, 2011 12:38

Google Summer of Code 2011

The Fedora Robotics SIG has completed the Fedora Robotics Suite, a set of robotics related software packages that are readily available in Fedora Linux. Fawkes is one prominent member of this package set. The original idea also envisioned creating an educational application, where a user would learn step by step to control a robot, then instruct, and finally program it. The project could not be completed due to a developer shortage.

The project has now been proposed as one possible candidate for the Google Summer of Code 2011 with the Fedora Project as mentoring organization. If you are a student with a background in robotics and experience in C++ software development please consider applying for this project. The Fedora Robotics SIG comprises many developers of upstream software projects providing a good way to get in touch with those projects. It will also be a very visible feature of the Fedora Robotics effort providing a good show case for later applications.

To apply please read information on the Fedora GSoC 2011 page and contact Tim Niemueller of the Fedora Robotics SIG.

Posted by Tim Niemueller on March 23, 2011 12:20