[Rock-dev] Syskit Feedback

Sylvain Joyeux sylvain.joyeux at dfki.de
Tue Mar 19 16:43:50 CET 2013


On 03/19/2013 04:10 PM, Chris Mueller wrote:
> Hi,
>
> i'm currently developing with the new syskit interface from rock and 
> i'd like to share some feedback
> for the current version (some Bug reports, Recommendations, etc.)
>
> 1) Action calls with missing arguments get stucked. If you have a Roby 
> Tasks that needs some
> arguments and you call it without the necessary arguments, the system 
> acts like it's fallen into a
> deadlock. No Error Message is written out and the Task itself is not 
> executed. (Some verbose
> status information would be helpful, otherwise its quite confusing if 
> you don't realize you have missed
> the arguments).
I can't reproduce that one. You should have an error message both in the 
shell and on the console where you run roby.
> 2) I'm often using Roby's scripting facalities and like to experiment 
> with its interface. I'm running often
> into a requirement writing a Roby Task, that needs to write/read some 
> data ports on a data service.
> More concret: it has a dependency to a roby/syskit component 
> (Composition, DataService, Task)
> The cleanest approach in my opinion would be to use a composition in 
> the following sense, because
> it has a generic and simple interface for defining dependencies to the 
> model, and data services can
> be filled by the active profile from the action interface.
Yes, that would be my pick as well. If you need to read/write ports, 
using a composition is probably your best pick.
> class WriterTask < Syskit::Composition
>   # can be also a Composition or Task
>   add Base::OrientationSrv, :as => 'orientation'
>
>   script do
>       wait_any orientation_child.start_event
>
>       execute do
>          # scripting with system model ...
>      end
>
>      emit :success
>   end
> end
>
> This is unfortanetely not working, because its seems child_components 
> for a composition are not valid within the scripting block:
> /home/chris/repos/virgo/tools/roby/lib/roby/task_scripting.rb:138:in 
> `resolve': undefined method `event' for nil:NilClass (NoMethodError)
>
> Don't know if this is a bug. I suppose compositions has not been 
> intended for this usage in the past. My current workaround is using 
> Roby::Task parent class
> and add the dependency from the corresponding ruby constructor.
>
> 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 ?
> 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.

> 4) undefined method 'writer' for Syskit::InputPort
> (only reader for Syskit::OutputPort is defined in tools/syskit/port.rb)
Ah. Yuk.

-- 
Sylvain Joyeux (Dr.Ing.)
Senior Researcher

Space & Security Robotics
Underwater Robotics

!!! Achtung, neue Telefonnummer!!!

Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany

Phone: +49 (0)421 178-454136
Fax:   +49 (0)421 218-454150
E-Mail: robotik at dfki.de

Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.:    DE 148646973
Steuernummer:  19/673/0060/3
-----------------------------------------------------------------------

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20130319/6dd070b9/attachment-0001.htm 


More information about the Rock-dev mailing list