[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