[Rock-dev] Prefix Extension for orogen deployments

Thomas Roehr thomas.roehr at dfki.de
Tue May 10 12:00:33 CEST 2011


On 09.05.2011 18:06, Chris Mueller wrote:
> Am 09.05.2011 17:01, schrieb Sylvain Joyeux:
>> On 05/09/2011 04:55 PM, Chris Mueller wrote:
>>> Here are some of my thoughts about this issue:
>>>
>>> * Therefore we want to decide at runtime, which task should be 
>>> started, we
>>> need an instance of each task for all robotic systems in the
>>> deployment's main.cpp
>>> template.
>> Why do you want that ? Should not you care only about adding a prefix 
>> to all tasks, but starting the set of tasks that the deployment 
>> contains ?
>
> That's exactly what i'm thinking. The problem is only the commandline 
> arguments are first known at runtime, after we have
> started the deployment with a given prefix and when orogen already 
> built it. Therefore orogen only knows the possible prefixes
> and i need to list all instances of the tasks in order to filter it by 
> the prefix in the generated main.cpp for deciding which tasks should 
> be started.
>
> The consequence for a deployment specification would be something like 
> that, where i need to list all possible tasks that is startable by the 
> prefix.
>
> deployment "SIMULATION" do
>    system_a = task("a_simulation", "a_simulation::Core")
>    system_b = task("b_simulation", "b_simulation::Core")
>    ....
>
> Now assume there exists also 8-15 deployments with the same 
> requirements, maybe for more than 4 prefixes/systems
> and each task has additionally common configuration, but can differs 
> slightly.
>
> Of course, this is the simplest solution. But maybe there is also a 
> better one, that suits more properly if additional systems
> needs to be integrated in the future and the deployments needs to scale.
>
> The aim is currently simplifying our current deployment situation, 
> where we have one big deployment module for each system
> and we would like to switch between them a little faster e.g. simple 
> using the same deployments with a different prefix controlled
> via a commandline argument. (Currently, we need to rebuild each 
> deployment which configuration and task names is depending
> on a system environment variable.).
>
Currently, we have deployments with only a single task, thus it is 
completly sufficient to apply the prefix to a deployment (and thus all 
of its tasks). I don't see a need for higher granularity.
Btw: its not 'one big deployment' but one orogen project which defines 
all robot specific deployments

>>
>>> * We need a mapping in an orogen deployment file for specifing the task
>>> implementation
>>> for a given prefix. Something like e.g.
>>>
>>> map = { "sherpa" =>  "sherpa_simulation::Core", "crex" =>
>>> "crex_simulation::Core" };
>> Aaaaheeeehhhehhehehehhhhh.
>>
>> This is going IMO waaaaay too far. If you want *different* 
>> deployments based on a name, just create two deployments.
>>
>
> I know that and that's why i ask here, listening to your advice before 
> integrating such a bigger modification ;]
The main intention of the prefix is to disambiguate between two robots 
using the same deployment. In our case the prefix looks like this: 
<robottype>_<id>. In short same deployments, but different robots, thus 
different ids, e.g. for service-publishing.
We are NOT wanting to decide dynamically based on the prefix to choose 
different deployments and effentually tasks - which is something 
actually roby does in a way, by specifying the robotname.

>> Now, here's the thing: I think that getting that flexible should 
>> *not* be done through the current orogen deployment mechanism. If you 
>> *really* want to be that flexible, then integrate support for the OCL 
>> deployer in orocos.rb (which dynamically creates deployments based on 
>> a XML configuration file or a LUA script).
>
>


-- 
Thomas Röhr (M.Sc.)
Space Robotics

Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany

Phone: +49 (0)421 178-454151
Fax:   +49 (0)421 178-454150
E-Mail: robotik at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.:    DE 148646973
Steuernummer:  19/673/0060/3
-----------------------------------------------------------------------



More information about the Rock-dev mailing list