Re: FK and Jacobian calculation in RTT
Sylvain Joyeux <[email protected]> Tue, 21 Jan 2014 10:46:09 +0100
| Newsgroups | gmane.science.robotics.orocos.devel |
|---|---|
| Organization | DFKI |
| Message-ID | <2718510.ZzFtvykc6H@heracles> |
On Tuesday, January 21, 2014 08:48:44 AM Herman Bruyninckx wrote: > Not agreed... It _is_ a generic rule that processes take up orders of > magnitude more resources than function calls, so the obvious _first_ thing > to think of is to reuse functionality as _functions_, not as > processes/activities. 1. You are equating component and process, which is obviously a misreprentation (would I want to start a flamewar, I would say FUD given that you KNOW how RTT is architectured). 2. You are assuming here that a function is cheap. It is obviously dependent on the function ! Path planning algorithms can take easily north of 100ms to run for *each run*. A ping-pong between two RTT components takes 25 microseconds. It is interesting to see this discussion pop up here, as we are considering using RTT as a form of plugin system and doing some serious benchmarking and optimization to the RTT channel implementation for this purpose. The motivation in our case is to integrate *once* algorithms that are shared between planning and runtime (as e.g. IK) by being able to "hide" the component as a function call within the motion planning algorithm (which would only see a boost::function object, never an actual RTT component). So far, I am honestly leaning towards "it is doable". > Assigning one single process to one single function > should be a well-motivated _exception_, and any (even implicit) suggestion > that "the context" is in general equally ready to accept either solution is > hard to motivate. Rock's development guidelines stresses strongly that most of the functionality should be put in libraries. In the end, some components *are* as few calls as possible to single functions *because of this process*. > For example, in the context of IK/ID functionality: sharing the "costly" > _code_ of such a function is simple when deploying it as a function where > the different callers keep their own computational state of the function, > but reuse the executable code by just pointing to it; such decoupling of > computational state from the code of the algorithm does _in general_ not > require deployment in different processes (if the code is re-entrant). Again component != process. -- Dr. Ing. Sylvain Joyeux Space and Security Robotics Besuchsadresse der Nebengeschäftstelle: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 5 28359 Bremen, Germany Postadresse der Hauptgeschäftsstelle Standort Bremen: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 1 28359 Bremen, Germany Phone: +49 421 178 45-4136 Zentrale: +49 421 178 45-0 Fax: +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen) E-Mail: [email protected] 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 --------------------------------------------------------------------- -- Orocos-Dev mailing list [email protected] http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev