[Rock-dev] Syskit Feedback
Chris Mueller
christoph.mueller at dfki.de
Tue Mar 19 17:16:46 CET 2013
Am 19.03.2013 17:08, schrieb Sylvain Joyeux:
> On 03/19/2013 05:06 PM, Chris Mueller wrote:
>> Am 19.03.2013 16:43, schrieb Sylvain Joyeux:
>>> On 03/19/2013 04:10 PM, Chris Mueller wrote: def intialize(*arguments)
>>>> super
>>>> depends_on(..., :role => 'orientation')
>>>> end
>>> You mean that the scripting block that you have defined works on
>>> Roby::Task but not on compositions ?
>>
>> Exactly.
>>
>>>> 3) DataService are not shadowing the actual task in this szenario.
>>>>
>>>> # profile ...
>>>> use Base::Motion2DControlledSystemSrv => aria_dev
>>>>
>>>> class ConstantMovement < Syskit::Composition
>>>> add Base::Motion2DControlledSystemSrv, :as => 'system'
>>>>
>>>> on :start do |ev|
>>>> puts "#{system_child}" ==> returns the concrete Task (in my
>>>> case Aria::Task)
>>>> system_child.command_in_port => throws an error because the
>>>> port command_in does not exists in Aria::Task
>>>> end
>>>> end
>>> This is "intended". There are issues with both options, and I am
>>> personally not really sure which one is best. Needs more discussions.
>> Is there any option to reference in this case to the model? e.g.
>> system_child.model ? (for having a uniform port_interface)
> I don't understand what you mean by that ...
Usually data_services also form a uniform port_interface for a set of
tasks that can be used for this services. Most of the time the port names
differs between the concrete tasks.
e.g Controller A has a port motion_command of type base/MotionCommand2D and
Controller B has a port movement_command of the same type.
If you have now the concret instance and want to access on the port
through writer/reader you need always the same names for the port
or you add an ugly case definition depending on the concrete orocos task.
> Sylvain
More information about the Rock-dev
mailing list