[Rock-dev] Proposal: Rock Apps

Sylvain Joyeux sylvain.joyeux at dfki.de
Thu Oct 13 14:33:26 CEST 2011


On 10/13/2011 01:47 PM, Alexander Duda wrote:
>> What I personally want to push with apps is a "functional view" of Rock,
>> which is IMO orthogonal from the "component view" we have. In ROS, this
>> is done with stacks. However, stacks don't do the trick for me as they
>> apply on both the "software package" and "system functional" aspects.
> Ok, I see your point.
> I was thinking of an app in a different way than you do. You have
> obviously roby/supervision in mind in contrast to that I was thinking
> more of normal run scripts and GUIs.
>
> Have you had a look on https://kepler-project.org/? I have the feeling
> your propose is going into the same direction. You want to share work
> flows. If this is the case the word rock-app is maybe misleading.
>
>>> Second:
>>> Why is there a need for migration scripts in an App folder?
>>> ->   this should go to the type definition (orogen task) or everyone else
>>> using the type/ task is not getting the migration script.
>> I don't agree. Type migration is a very "system-wide" concern. When you
>> add a migration for base/Time, you actually affect *every type* that is
>> using base/Time somehow.
> Still-. If I am modifying a base type I think the conversion belongs to
> the package where I did the modification otherwise it is most likely to
> get out of sync. The conversion for types which are using the modified
> type are automatically converted by the converter if it knows the
> conversion for the embedded base type.
In any case: one can always have a "system-wide app" in e.g. 
install/share/rock where the packages install their stuff. This way, the 
tooling needs only one way to find things (ROCK_APP_PATH and the app 
structure) and (if the consensus goes this way) packages can install 
package-specific files.
>> My idea behind the proposal was to have only a few places where these
>> "system-wide" files were placed (when thinking about it, I thought that
>> a typical developer would have 2-3 apps installed on his system). The
>> underlying idea was to have a "Rock app" where all rock-wide type
>> convertion scripts would be added for Rock types.
> -->  That's wrong with /install/share/rock/log/migration?
> and storing the immigration scripts in the orogen package
> declaring the type.
(btw: it is "migration" not "immigration". "immigration" refers to 
people coming to live in a foreign country)

Some log migrations *are* application-specific. Example: iMoby that 
misconfigured the GPS module for a while. That's not package specific, 
that's project-specific. In general, I would be OK if the consensus goes 
towards your approach, but I would have the same structure in 
install/share/rock/ than in a "normal" app (again, to reduce the 
confusion and the work done in the general loading code).

The problem with having migration scripts in install/ is that we are 
going to have an app for rock models (because, frankly, I really don't 
want to have them split up from my experience) and *then* have migration 
scripts elsewhere.

So ... That's two folders by default:

   install/share/rock
   apps/rock

Confused, anyone ?

>>> Third:
>>> Why is there a need for a log folder?
>>> ->   the app folder is usual under a version control so why polluting its
>>> folder structure with log files which are not going to be committed?
>> This is not only "version control" structure but also runtime structure.
>> The log/ directory is populated at runtime (and does not have to exist
>> in the VCS)
>>> ->   Maybe we could add a default log path to the environment
>> I'd like to *not* add even more environment variables to the
>> environment. When running a system (these days, using Roby), I
>> personally very much like that I can know *for sure* where the log files
>> are.
> If you have more than one app which folder is going to be used ;-)?
You always run a script *from* within a given app (the same way than is 
done from the supervision). The logs go into the logs/ folder of that app.
> Moreover most our system have a separate partition for log files
> therefore I would really like to globally set it.
I don't like it because you are going to mix logs without giving any 
context. If I choose to have a "asguard" app and a "separated pan-tilt 
unit" app, I don't want their logs to mix (I chose to separate them for 
a reason).

In principle, one could anyway configure on a per-app basis (again, just 
how it is done in the supervision). You could then choose to have all 
YOUR apps to put their logs in a global folder. I would personally 
prefer having, by default, logs in a app-local logs/ folder (because, 
from experience, it's something that works fine). Moreover, what if the 
user does not define any global folder ?
> There are just too
> many people which does not care and polluting the main partition.
I don't understand what you mean by that. 3 apps, 3 logs folders tops. 
Hardly polluting.

-- 
Sylvain Joyeux
Space&  Security Robotics

!!! Achtung, neue Telefonnummer!!!

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

Phone: +49 (0)421 178-454136
Fax:   +49 (0)421 218-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