Re: Orocos program
Herman Bruyninckx <[email protected]>
| Newsgroups | gmane.science.robotics.orocos.user |
|---|---|
| Message-ID | <Pine.LNX.4.44.0405041003090.26865-100000@srv04.mech.kuleuven.ac.be> |
On Mon, 3 May 2004, Peter Soetens wrote:
> On Monday 03 May 2004 12:09, Andrea Consonni wrote:
> > We are trying to understand how to give a command in an orocos program.
> > We have had a look at your example "program-state" and, if we have
> > understood right, you want that we create a real trajectory in the
> > oro_main, write it in the command dataobject and, in the orocos program
> > "program.ops", load the trajectory through the command "do
> > CartesianGenerator.loadTrajectory()". Our question is: if we want to write
> > in the command dataobject from an orocos program, how can we do?
>
> This is a good question again :-). There were some unclear semantics
> about the command dataobject in the past. The problem is that discrete
> commands like 'moveto', 'wait' etc are not suited for data objects. These
> should be commands from the programscript (or HMI) and not passed
> through a dataobject.
Indeed, we're evolving towards a more clear separation between "execution
flow" (start, stop, select, ...) and "data flow" (the numerical values of
the positions you want to move to).
> DataObjects are only for data flow, for example if the generator must
> interpolate between points given in the command DataObject, which were
> calculated in a higher level control loop. In this way, the
> CartesianComponent's examples violate this 'protocol' since it gives a
> trajectory command through the dataobject and not through a method call.
> Another conclusion is that the Command Dataobject is only usefull for
> cascaded control kernels.
So, _we_ have some more work to do to get the API cleaner...
Herman
--
K.U.Leuven, Mechanical Eng., Mechatronics & Robotics Research Group
<http://people.mech.kuleuven.ac.be/~bruyninc> Tel: +32 16 322480