Archive for Work

Robot Robustness

// June 23rd, 2012 // No Comments » // Research, Work

Along the last three days I have been attending to the Robocup competition held in Mexico. This is a competition were robots confront to each other on a dynamic scenario, out of the more controlled ones of the labs. There are several leagues in which robots can compete. Concretely, I have been attending the Robocup@Home competition league, devoted to the test of Service Robots on a home scenario.

20120629-171042.jpg

The Robocup@Home arena during training periods

In the Robocup@Home, robots must perform tasks on a home environment. They have to follow the orders of humans and help them in common situations of dayly live activities. Tests, for example, include following the owner across a chaotic environment, bring to the owner some stuff from some place, or help him clean a room.

During the competition of this year, even if the tests are very simple for a human, most of the robots failed from its very beginning. They were not able to perform what they were (suposedly) trained to do.

20120629-171224.jpg

Classification table after the first stage of the competition

I am sure that most of the teams had their robots working perfectly at their labs before comming to the competition. But their performance at the competition arena was very bad. The question is then, what happenned between their working situation at the lab and the failure condition during the competition?

When the teams are asked about why their robot failed, they report that their robot just had a failure in one of its mechanical, electronical or software component. Usually they indicate that they performed a last minute change in order to adapt the robot to the new environment, and that change, triggered those errors.

There are two interesting points in that answer there:

  • First, robots are not able to adapt very well to changes in the environment.
  • Second, a last minute change makes the robot fail, which is a consequence of a lack of robusteness in the robot.
  • In this post, I’m going to concentrate on the second point. The robots of the competition are not robust. This means that small changes in the conditions of working, make the robot fail.Those conditions may include last minutes changes in the robot code or hardware, but also, and more important than that, changes in conditions include differences between the testing situation at the lab and the testing situation during the competition.


    20120629-171508.jpg

    Cosero robot (one of the more robust) training how to identify and grasp objects at the Robocup@Home

    At the Universities, people is more concentrated on doing proof of concepts. This means that researchers and students work in order to show that something is possible at least once. Once this is demonstrated, they move to another subject to try to demonstrate that it is also possible in principle. After all, they get recognition after any new discovery or demo of possibility. So they are not interested in robustness as much as they can keep on doing more proofs of concepts.

    Companies, instead, they need to have robust products in order to sell them. By robust products, I mean products that provide all the time what is expected from them. In the case of robots, the robust robot must be able to follow its master 99% of the times, in different places and locations, be able to grasp objects or understand language in almost any situation.

    To achieve robust products, companies have developed all a bunch of quality assurance mechanisms that can be applied to all mechanical, electronic and software parts. They also dedicate the time to implement those mechanisms, which include unit testing, massive test of hardware under limit conditions, testing under noisy conditions, testing in simulated environments, etc.
    However, companies do not feel yet attractive the Robocup competition, hence they do not use their products to participate and make the competition more interesting.


    Robot engages into cyclic behavior during Robocup competition, due to lack of robustness

    Since researchers do not have access to all that bunch of techniques (not because they don’t know but because they do not have time and money to implement them), the solution they have found is something intermediate. They buy as much off-the-shelf hardware as they can (Kinect cameras, Hokuyo lasers, Pioneer mobile bases, Katana arms…), and they use as much already made software as they can (let’s say ROS and other open source libraries). However, there are still some robot parts that are not available in the market, so participants must construct them themselves. And hence, a possiblitiy of failure appears…

    I presume that when companies participate in the competition the level will increase since most of current failures will be avoided, and the competition will concentrate on skills development rather than in robustness achievement. Next question is then, how can we make interesting the competition to companies…

    20120629-171710.jpg
    Reem-B, a product of Pal Robotics

    Compliance: trending topic at the Humanoids 2011

    // November 7th, 2011 // No Comments » // Artificial Intelligence, Research, Work

    Compliant robot: a robot with the ability to tolerate and compensate for misaligned parts. Or otherwise stated, the ability of the robot to gracefully absorve an external force that tries to modify its position.

    At the last Humanoids conference (www.humanoids2011.org) everybody was talking about how to control a compliant arm, how to build compliant legs and how to move a compliant humanoid.
    We introduced our latest Reem robot to the scientific community and, besides the typical question about how much the robot costs, the top number one of the questions was: is your robot compliant?. Some people even crashed their bodies against the robot in order to check if the robot had compliant arms!.
    No, our robot is not compliant… yet.

    Of course, compliance is a very important feature for a service robot because we must be sure that a robot that works with humans will not harm a person. Hence, if someone crashes against the robot (or viceversa), we, as builders of the robots, must ensure that nobody gets hurt.

    Some other robots in the world have already shown very nice compliant characteristics. This is the case of the Meka robots. You can watch a nice video here, where the robot shows its compliance.

    Another case is the omnipresent PR2, where in this video shows how compliance can be useful for cooperation.

    However, at present, compliance has its dark side. Due to the fact that a compliant robot must be able to absorb forces, a compliant joint cannot distinguish between situation of crash or a situation of carrying a heavy load. A compliant joint will react in the same way to both situations, that is, letting the joint move on the opposite direction of the force. If the robot were carrying a weight, it would fall off.

    This reminds me the training of Chi Sao while doing Wing chun kung fu. In this training, two opponents try to feel the force one of them is doing against the arms of the other, and use it to generate a better attack. The basics of this trainning is to learn to differentiate when you have to push and when you have to diminish.

    We suffered the same kind of training when we were babies in order to understand the differences between carrying or being pushed.

    The compliant robot is still far from encoding that knowledge. The point is more delicated that just using a flag that indicates when the robot is in carrying mode or when in free mode to absorb collisions (that would be the GOFAI solution). It is necessary to embed into robots a more complex ability that makes them know when they are in one situation or the other.

    And that ability is understanding. The robot needs to understand when a force in its body is due to a crash or when is due to an object been carried.

    Understanding is the most important feature for a robot, and not only for compliance but for everything. At present, no robot in the world understands a … eemm… anything…

    Though work in front of us!

    Organising a Humanoid Robot Navigation Workshop

    // September 24th, 2011 // No Comments » // Research, Work

    The next 26th October 2011 the Humanoids conference will be held in Bled, Slovenia. This is a conference about the current status of humanoid robots.
    In this conference, together with some colleagues, I am organising a workshop about the current problems that humanoid robots have when moving around in human environments. The workshop is entitled Humanoid service robot navigation in crowded and dynamic environments. There we will discuss about those problems and our robot REEM will perform a demonstration of its navigation abilities.
    More information at the workshop website.

    Invited talk at Campus Party 2010

    // June 1st, 2010 // No Comments » // Talks, Work

    Our company Pal Robotics was invited to the European Campus Party 2010 event, to present our robots to the community. I was selected to represent the company giving a talk about when are we going to have humanoid robots.
    The whole presentation, featuring guest star Reem-B, can be watched here.

    Developed system for autonomous humanoid navigation

    // December 23rd, 2008 // No Comments » // Research, Work

    Legged humanoid robots face a big problem when trying to move autonomously on an indoor environment. Up to date, most of approaches have focused on using vision to persom such behavior. However, those approaches are still on its infance and do not allow the robot to move on real environments without crashing with obstacles.

    In this work, we are using classical techniques based on laser and odometry to successfully achieve the complete suite of navigation abilities: mapping, localization, path planning and obstacle avoidance.

    Motivation
    The main motivation for this research is to deploy a humanoid service robot on a home environment. A strong navigation system will allow the robot move on the environment and help people inside.

    Method
    For the laser data, we use two small lasers on each feet of the robot. The odometry is obtained by an inverse kinematic computation of the walking algorithm.

    Localization and mapping abilities of the robot are based on the use of particle filters, based on the DP-SLAM algorithm for mapping, and MonteCarlo particle filter for localization. Path planning uses the A* algorithm to calculate trajectories, and the obstacle avoidance is based on a potential field implementation.

    Results
    We applied the method to a human tall legged humanoid robot Reem-B. The results obtained can be seen on the following video.

    Autonomous navigation skills of Reem-B humanoid robot

    Reem-B humanoid robot official presentation

    // July 6th, 2008 // No Comments » // Media, Work

    Last June 12th, we finally presented to the general public the Reem-B robot. You can find a complete chronicle of the event here, including pictures, videos and links.

    Hired for the construction of humanoid robots

    // March 1st, 2007 // No Comments » // Work

    I have been hired by Pal Robotics company for the creation of autonomous humanoid robots that will work as service robots at home. Very interesting challenge!.