RE: Modelica Conference 2002

Herman Bruyninckx <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Message-ID <Pine.LNX.4.44.0202070827420.16270-100000@pc25-213.mech.kuleuven.ac.be>
On Wed, 6 Feb 2002, Tiller, Michael (M.M.) wrote:

[...about Modelica...]
> > >   My guess is that you are really interested in a simulator, correct?  
> > 
> > A simulator indeed, but more than that: code that can be used on-line
> > in a real system.
> 
> Do you mean for doing embedded system code generation?  Are you
> talking about logical control or continuous behavior.  

I'm talking about the dynamics algorithms of robots, to be used by the
on-line controllers. Preferably with the ability to switch control
laws on-line, which is needed, for example, for controlling a walking
robot (during subsequent phases of a step).

[...]
> Well, the full Modelica language would require the ability to solve
> continuous equations and respond to events based on conditional
> expressions (involving continuous and discrete variables).  That is
> the basic part.  The complete semantics include some complexities
> for doing things like initialization of discrete controllers so that
> the controller starts in "steady state".  Also, for systems of DAEs
> there is the issue of index reduction (this need not be handled
> directly if you use a DAE solver, but it is my understanding that
> the general numerical solvers are really only able to go up to
> index-2 DAEs while the Modelica language allows arbitrary index
> DAEs).  There are several other issues but these are the ones I
> remember off the top of my head.

Ok, I see and know these problems. But for use in a controller, we
don't need these solvers: nature does that job for us :-) I just want
to reuse as much as possible from the modelling and specification
efforts.

[...]
> > That I understand :-) But I still sort of dislike its `feature' that
> > extra things (such as 3D object information) have to be given in
> > ``comments''.
> 
> Well, that isn't quite a fair statement.  

Sorry about that :-)

> The 3D object information
> is not stored in a comment.  In Modelica (as in most languages), a
> comment is a free-form string that only provides documentation.  In
> Modelica both 3D representations and 2D representations are stored
> as *annotations* which have a specific syntax, allow for structured
> data representation and can be associated with specific instances or
> definitions.  

Okay, but just calling things by another name doesn't bring us any
further :-)

> > And how good would Modelica be as a general controller description language?
> 
> It isn't clear to me if you are talking about continuous controllers
> or discrete controllers.  

Hybrid controllers! That is, with continous and discrete parts. In
robotics, you quickly end up in this hybrid controller area.


> I would need an example of the kind of
> controller you are talking about.  

Walking robot: in each phase of the step, one uses a continuous
controller, but there are many (more or less continuous) transitions
between phases: swing to heel contact, toe contact to release, etc.


> The purpose of Modelica is to try
> and capture a reasonable set of behavior types in a single language.
> If it can't be used as a general controller description language, I
> would be very interested (as would the rest of the design group) in
> understanding why and seeing if the issue could easily be addressed.

That would be a nice project :-) I am on the outlook to participate in
it.

> We are not interested in creating some all encompassing, monolithic
> language but I see no reason why the application you describe would
> not fit within the existing framework.

That's the reason why I like XML: it's never a monolithic thing, not
because of its inherent properties, but because there are so many
tools available to transform from and to XML.

> Are you familiar with Simulink and Stateflow?  If so, could you
> perhaps describe your application in the context of those tools
> (since I am somewhat familiar with them)?

I know these, but the reason I like Modelica is that Simulink leads to
spagetti code quickly, while Modelica is inherently much more
component-based and object-oriented. I mean, I see students connect
anything to anything in Simulink, while they should be able to do
that. A good interface (human, parser) to Modelica should make these
errors impossible.

Herman
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.