From December 7th to 11th, the Carologistics Team organized the first RoboCup Logistics League Winter School in Aachen, Germany. Participants of new and existing teams from Germany, Austria, and Japan attended the event. The winter school was held to help new teams to start into the league and existing teams to adapt to the invasive rule changes performed in the past few years.
The content was based on the (pending) full 2015 software stack release of the Carologistics team to better understand and tackle the problems of perception, navigation and self-localization, using and extending the RCLL simulation and the behavior sub-systems like the Lua-based Behavior Engine and the CLIPS agent.
The winter school was supported by Festo Didactic SE and the RoboCup Federation. The feedback of the participants was very positive and the team enjoyed sharing and discussing ideas with the RCLL community at large!
We are currently preparing the material and will release the videos of the talks in January. The slides and information material can be found on the winter school wiki page.
Posted by Tim Niemueller on December 15, 2015 14:00
Together with Bonding, Carologistics hosted the Bonding Hackathon for the third time in a row. 47 students split up in small teams and hacked through the night. They used Fawkes, the Lua-Based Behavior Engine and a Gazbeo simulation to solve a nuclear catastrophe scenario.
The scenario was a nuclear catastrophe and the teams had to bring nuclear fuel rods from the reactor to some decay tanks. They got points by successfully delivering a fuel rod to a decay tank. The decay tanks were hidden and randomly placed on the field. We also placed random obstacles on the field. The better the tanks were hidden the more points you got, from 1 to 3 points. The tanks and the reactor were identified by AR-tags. The teams had to rescue 3 fuel rods, so there were different strategies. Either to find the 3 point decay tank, which is hard to find, or just use the 1 point decay tank. The scenario was represented in our simulation based on gazebo, so the teams could run through a lot of testing cycles, before testing on the real hardware.
We offered the students first-hand knowledge and experience in robotics, whilst Bonding took care of them with free food and soft drinks during the whole night. The sponsors (Bosch, Continental and IVU Traffic Technologies) provided some exiting prices for the top 3 teams. The first place won a trip to the Bosch ConnectedWorld Conference in Berlin. Alltogether it was a great event and we look forward to next years Bonding Hackathon.
Here are videos of the final and the winning teams skill in the simulation:
Posted by Frederik Zwilling on November 3, 2015 12:00
We won Robocup 2015 in the Logistics League with the Carologistics Team! Although there were many major and challenging changes of the league, we could defend our title as world champion. In the finals we won against Team Solidus with the score 56:26.
After arriving in Hefei, China, and getting introduced to the Chinese culture, we entered an exiting RoboCup competition. This years main challenge in the Logistics League was to adapt to the almost completely changed competition area and game rules. In contrast to last year, the game has changed from a moderately difficult and more abstract production scenario to a more realistic, flexible and plausible production scenario with actual processing stations based on the Festo Modular Production System (MPS). Especially finding the randomly placed machines and handling their small tolerances in the production were difficult tasks. We could build on top of our basic success at the RoboCup German Open and further improved our system to solve the challenge.
In the exploration phase of the game our robots explored the factory environment to find randomly placed machines. They used our flexible collision avoidance and navigation to drive to possible machine-positions in the unknown environment. To find machines we detected lines in the laser range data to cope with random machine orientation and determined the type and exact machine position by looking for attached AR tags. During the exploration, the robots dynamically generated a navigation-graph which is used later in the production. By presenting this approach based on Voronoi and CGAL we won a technical challenge.
In the production phase we struggled at the start of the tournament because of small tolerances when placing workpieces on the conveyor belt of a machine. Later in the tournament our machine handling improved. Here we benefited from our idea to adjust the height of the gripper by detecting the conveyor belt with OpenCV. To coordinate the multi-robot team and to perform the reasoning about the world model and the actions to take, we used a CLIPS agent based on the Incremental Task-Level Reasoning approach. The agent was adapted to the new game to control the new exploration phase, reason about the new machine types, their instruction, production preparation and output. Furthermore, the agent needed to handle random product orders with designated delivery times and a wide variety of product types and complexity.
Another factor for our success at the RoboCup is the simulation of the RCLL based on Gazebo. After modelling the new game and our robots in the simulation, we could use it for rapid prototyping and testing during the development. This was especially useful in the development of the agent and the low level behavior. It also allowed us to test before the RoboCup without having a full competition field.
After solving these challenging tasks to achieve a successful exploration and production, we won the finals against Team Solidus with the score 56:26. However, we are eager to improve our performance further. Now that we have a successful basis to explore, handle and reason about the new machines, we can focus on more efficient task allocation, faster physical interaction and more ideas to improve.
Posted by Frederik Zwilling on July 22, 2015 13:00
The Carologistics RoboCup team was successful again this year at the RoboCup German Open 2015.
This year, the league used actual processing stations based on the Festo Modular Production System (MPS) for the first time. Additionally, the machines were placed freely within certain zones on the field (therefore neither the exact position nore orientation was known before the game) and the number of product variants increased from 3 to almost 300.
This made several adjustments necessary to our robot team. Therefore, we switched to the new Robotino Version 3. Robotino 3 can handle higher payloads and allows mounting components at the needed height. The image on the left shows some of the components we mounted on it.
By the end of the tournament we were able to almost complete the exploration phase with only a single machine missing. The robots then executed the first steps for the production phase, but eventually failed as the handling of the machines was not yet precise enough. The robots coordinated to use the stations in the proper order, but the products were not placed properly on the conveyor belt. This is a challenge we will work on on the way towards RoboCup 2015 in Heifei.
Posted by Frederik Zwilling on April 26, 2015 13:00
RoboCup is particularly well-known for its soccer leagues, but there are an increasing number of application leagues. The newest one is the RoboCup Logistics League (RCLL) where groups of robots take on the task of in-factory production logistics. Development of a robust and capable integrated system to operate a group of autonomous mobile robots for an environment like the RCLL can be a tedious and longsome enterprise. This can be a barrier for new (or rebooting) teams and slow down even seasoned teams.
To foster the development of the RCLL as a whole and in the hope to serve as an example, we release our full software stack used for winning the RCLL 2014 today. It is based on the Fawkes Robot Software Framework. While major parts have always been openly available, the release also includes all parts which we developed in private specific to this domain and which we considered to be our competitive edge. We provide this in one coherent and tested package that will reduce the effort required to get a full running robot for the RCLL tremendously.
Some of the highlights that the package contains are components for localization and navigation, perception and vision, basic behaviors (skills) using our Lua-based Behavior Engine, and the complete task-level executive based on CLIPS. With the included simulation integration, you can immediately start and have a complete system that performs the 2014 game on the same level as the world champion.
The software has been developed for more than eight years by numerous people and has been used in the Middle-Size and Standard Platform soccer leagues, the RoboCup@Home league, the RCLL, and projects aside from RoboCup, like Hybrid Reasoning for Intelligent Systems and HERB at CMU. In the last three years the Carologistics team has been the major driving force developing the framework and its components to its present state.
We invite teams to take a look and adopt Fawkes as their software platform. All parts are Open Source software and the vast majority of components are developed in the public. We welcome contributions from anyone and hope to help newcomer teams to get a better start. In combination with the now publicly developed simulation for the 2015 game, it should be far easier to perform better than ever before.
More detailed information are available on the Fawkes LLSF 2014 Release Page.
Posted by Tim Niemueller on March 30, 2015 18:00
We did it! We won in the RoboCup Logistics League 2014 in João Pessoa, Brazil. In a flawless run through the tournament we won every game and had an exiting final against the title defender Bavarian Bending Units. We participated with the Carologistics team, a joint venture of the Knowledge-based Systems Group, RWTH Aachen University, the IMA/ZLW & IFU Institute Cluster, RWTH Aachen University, and the Department for Electrical Engineering and Information Technology, Robotics Group, FH Aachen
A few days after the German national team won the Fifa World Cup, we also went to Brazil to win a title, in our case the RoboCup 2014 Logistics League. We competed with 9 other teams from Germany, Brazil, Japan, Egypt, Mexico, Switzerland and France. After arriving in João Pessoa, a beautiful city at the beach with topical weather and a lot of coconuts to drink from, we could continue with our good performance from the German Open. Nevertheless we faced various challenges, such as changing lightening conditions and recovering from wrong worldmodels after wrong perception results. As we solved these issues and further improved our low level skills, which use the Lua behavior engine, and the high level task decision based on an incremental reasoning approach in CLIPS with improved multi-robot collaboration, we continued to increase our performance.
In the final we won against the Bavarian Bending Units with the score 165:124. The following video shows the final.
In the first phase, the exploration phase, we could successfully detect all light signals to determine the machine types. Even after one robot had to be restarted, it could continue its work because the robot team synchronizes their knowledge about the world.
In the production phase the robot team got randomized orders and had to produce the products according to the production chain and the machine types with the raw material pucks lying on the side of the field. We especially profited from our collision avoidance and multi-robot coordination. The collision avoidance allowed us to get through narrow passages between other robots or take alternative paths. The high level decision making and multi-robot coordination of the CLIPS agent lead to a fast completion of complex products.
We also won multiple technical challenges, namely the navigation challenge and the MPS challenge:
At the RoboCup Symposium we presented our simulation of the RoboCup Logistics League. It is an important tool for rapid prototyping, especially of the high level decision and multi-robot coordination. It features a 3D physics and sensor simulation with real world environment agency because it is controlled by the referee box that also controls the real game.
Posted by Frederik Zwilling on July 24, 2014 18:00
We won the RoboCup German Open 2014 Logistics League with the Carologistics team. In the finals we beat the TUMsBendingUnits with 71:30. This is an important milestone on the road to the RoboCup 2014 in Brazil.
After some mayor rule changes the competing teams had to play in a shared factory space. Here we benefited from your flexible navigation and collision avoidance. The collision avoidance was ported to Fawkes from the AllemaniAcs Team in the RoboCup@Home league and uses an occupancy grid, A* search and a collision free triangle to find trajectories on the planned path. Our performance was also boosted by a closer multi-robot coordination, which allowed the robot team to produce ordered goods more quickly. The robots could perform small sub-steps of a larger production task in parallel and could continue with the work of another robot. For the development of the agent, the component responsible for the task reasoning and multi-robot coordination, we used a Gazebo based simulation of the Logistics League, which allowed rapid prototyping. Furthermore we used more robust techniques for visual perception of light signals and pucks by using colour filters and geometrical clues.
Posted by Frederik Zwilling on April 5, 2014 12:00
We participated with the Carologistics Team at the RoboCup 2013 in Eindhoven, Netherlands. After a promising performance in the round-robin phase we reached the small finals. To achieve this we had to solve many technical challenges, such as task planning, where we used an incremental reasoning approach and visual perception of light signals and pucks.
In the Open Technical Challenge we gave an interesting demo of a Robotino performing a pick-and-place task with a mounted Jaco Arm from Kinova.
Posted by Frederik Zwilling on June 30, 2013 16:00
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
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
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.
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
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
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).
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
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
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