[ros-users] [Orocos-users] Joint controller manager

Herman Bruyninckx Herman.Bruyninckx at mech.kuleuven.be
Mon Jan 28 19:10:57 UTC 2013


On Mon, 28 Jan 2013, Jonathan Bohren wrote:

> On Mon, Jan 28, 2013 at 11:51 AM, Herman Bruyninckx
> <Herman.Bruyninckx at mech.kuleuven.be> wrote:
>       On Mon, 28 Jan 2013, Jonathan Bohren wrote:
>
>             Based on this thread, and from what I know about other efforts
>             going on in the
>             community, I just went ahead and created a google group called
>             "ros-robot-control-sig"
>             [1].
>             My thought is that purpose of this group should be to
>             coordinate efforts on a common
>             interface for robot control in a ROS-based system as well as a
>             common realtime-friendly
>             and simulation-friendly controller architecture. While
>             different platforms will always
>             call for different architectures, it would be great if the
>             different systems spoke the
>             same ROS interfaces, and if similar computation platforms could
>             use the same libraries
>             for control.
> 
> 
> Allow me to disagree... Putting the design of interfaces (and "topic" data
> structures) at the level of a programming language as the most important
> design decision is wrong: robotics is one of the few technology domains
> (together with computer vision and machine learning) where software and
> systems are made 100% by compilers and hand-written libraries; other
> domains (automative, aerospace, mechatronics and control,...) start with
> standardizing _models_ (and their semantics), and _generate_ code from
> there.
> 
> 
> No, I agree entirely. I should have been more clear. When I refer to ROS interfaces, I
> mean the interfaces that we can use to connect the operation of these controllers to
> higher-level execution systems. In my experience, moving to something more model-based
> and _not_ heavily multithreaded is definitely the way to go.
>  
>       What I now see happening all the time (and especially in the context of
>       so-called "hackathons") is that developers _have_ to look at each others'
>       implementations in order to make components/nodes work together, since the
>       _meaning_ of the topics is not ambiguously defined. (Similar problems occur
>       at the level of the "actions": too many configuration parameters are in the
>       "code" and not in the "model".)
> 
>  
>       And finally, the data topics on their own never fully represent an
>       _interface_ between two concurrent activities: there just represent
>       functional
>       data flow, but also discrete coordination, bi-lateral QoS
>       adaptations, introspection, and data buffering policies are parts of the
>       interaction between components.
> 
> 
> I agree, semantic information about the data is _critical_.

Thank you for agreeing. The logical next step is to focus first on the
semantics, hence a "model". Unfortunately, this is not a common reflex in
the ROS/Orocos universe. But things are slowly changing; this concrete
topic could be a good start for a more visible effort in this direction.

Side note: within (but fully independent of) the Orocos context, Tinne De
Laet has made a complete "model-based stack", with a formal model that can
be connected to existing KDL code, while introducing checking of all
constraints in the model:
  <http://www.orocos.org/wiki/geometric-relations-semantics-wiki>
She has also had summer interns that made two prototype tools, one in
Eclipse (via Xcore/Xtext and OCL), another one via Prolog (using the same
Xcore formal model). So, we know that it _can_ be done, bottom up, and with
C++-biased developers, and without loosing any runtime efficiency :-)

> -j

Herman


More information about the ros-users mailing list