|
Hello Twister !
MetaEdit+ tool
and Domain-specific modeling generally helps you to specify problems on various
levels of abstraction, with intention to have graphical languages on highest possible
level for various application domains. Suppose you have four types of user for KUKA or any other robot doing such
tasks:
1) The first forces robot arm to do
simple steps, like drawing line, circle, ellipse, …. T(1)..(T4). For this user
you will create graphical language with objects representing elementary
motions, and every type of line will be, by MERL code generator, translated to
robot control program, like in your code example.
2) The second uses robot arm to draw characters
somewhere and he prefers end user application where he is able to enter one character
and specify size. Semantics of DSL expresses in object type “Character”, must
have knowledge about primitive lines / motions used to construct one concrete
character. This is like font definition.
3) The third user wants to enter
complete sentences and to force robot to draw it. Language that enables
graphical specification of sentences must have some new language concepts, like
auto-divide rules, write direction, etc. In order to have simple
transformations of models to actions, here is better to have “motion framework”
that contains definition for all characters. Like in previous cases, here you
also can get control logic code for robot and end-user application for
programming motions. If DSL is on proper level of abstraction, models will be very
similar to end-user applications and generated from models. Some specific things
in applications depend on target operating system, graphical framework on programmer’s
computer, etc.
4) The fourth user wants to handle some input
signals from sensors and, depending on it, dynamically adjust sentence layout
(T2.1). If so, DSL for modeling must contain language concepts and graphical
representations for sensors. If sensors can not be accesses from robot control
language, then separate code must be generated from such models, for drivers.
To conclude:
MetaEdit+ does not limit you to any abstraction level. Using it you are able to
provide graphical tools and generate end-user applications and control logic
for robot that respects user request, implementation specificities of robot and
environment where robot executes some tasks. Regards, Djukic

|