[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