ORBit for robotics??



Hi ALL,

I am a researcher working within a lab called Centre of Autonomous
Systems (www.cas.kth.se), which is one of the largest robotics groups
in Europe. We don't build the robots themselves, but the control and
AI mechanisms behind them. All these robots work under Linux (and
sometimes QNX). Windose is not allowed within the lab.

As you can imagine robots are quite complex. There are numerous sensor
inputs, like sonars, cameras, lasers, gps, accelerometers, etc. On the
other side you find actuators controlling the motors of wheels, arms,
grippers and camera-heads. In-between you find all the logic. Basically
it is divided into multiple behaviours running in parallel. A behaviour
might be quite simple, such as obstacle avoidance using sonars, coloured
blob tracking using vision, etc. Different behaviours use different
sources of information. In the end the output from these behaviours are
fused into single motor commands, using some kind of arbitration between
different possible routes of motion. There are additional high-level
processes for planning and decision-making, of course.

When we started five years ago, we used ACE. Unfortunately, it didn't
really scale up. A complete system might include as many as 50 processes
and the information passed between processes can be as much as complete
video-streams. This is an extreme, of course. Such streams are typically
few, but they do exist. When the system grew, the total compilation time
increased tremedously and today we simply can't use ACE, at least not
the way we used to. Another problem is what happens when you move from
one robot to another. Some smaller robots might only have a single
processor, while others consist of multiple Linux boxes.

So, what should we use instead? ORBit? Is it stable enough? Thread-safe?
For some processes, like input devices, threads can be quite handy. Do
you have any other suggestions?

Thank you in advance,

Mårten Björkman

Btw, we currently have five open phd student positions.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]