[Rock-dev] Fullfill several conrol-loops with one controller?

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Tue Jul 2 14:34:05 CEST 2013


On 02.07.2013 14:28, Sylvain Joyeux wrote:
> On 07/02/2013 01:59 PM, Matthias Goldhoorn wrote:
>> Just had the case that an joystick provides several "controller" modes.
>> How can i get the mapping within syskit:
>>
>>
>>     6         Base::ControlLoop.declare 'RawCommand', 'controldev/RawCommand'
>>     7         Base::ControlLoop.declare 'FourWheel',
>> 'controldev/FourWheelCommand'
>>     8
>>     9         device_type 'Joystick' do
>>    10             provides Base::Motion2DControllerSrv
>>    11             provides Base::RawCommandControllerSrv
>>    12         end
>>    13         device_type 'CANJoystick' do
>>    14             provides Base::Motion2DControllerSrv
>>    15             provides Base::RawCommandControllerSrv
>>    16         end
>>
>> error:
>> 13:53:20.972 (Roby)
>> /home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:160:in
>> `block in provides': invalid port mapping command_out =>  command_out in
>> #<Syskit::Models::DeviceModel:0x00000005dc35c0>.provides(Base::RawCommandControllerSrv):
>> port command_out on #<Syskit::Models::DeviceModel:0x00000005dc35c0>  is
>> of type /controldev/RawCommand and command_out on
>> Base::RawCommandControllerSrv is of type /base/MotionCommand2D
>> (Syskit::SpecError)
> Could you give the whole backtrace ?

See below
>
>
> On a related note:
>   - the joystick device does NOT provide
> Motion2DControllerSrv/RawCommandControllerSrv. This is a feature of our
> joystick task.
>   - look at bundles/rock/orogen/controldev.rb, this particular modelling
> is already done there (might be incomplete, but there is at least
> something).
>
I try to extend exactly this file because i would like to add the Raw 
support to it. (Which the task provides but syskit does not know from.)

[14:32:35 goldhoorn avalon]$ syskit browse
Bundles[INFO]: Active bundles: avalon, rock
Xlib:  extension "RANDR" missing on display ":0.0".
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/avalon_simulation::Actuators.yml 
as there are no corresponding task model
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/avalon_simulation::BottomCamera.yml 
as there are no corresponding task model
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/avalon_simulation::FrontCamera.yml 
as there are no corresponding task model
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/avalon_simulation::SonarTop.yml 
as there are no corresponding task model
Port is: true
Task has dynamic props: true
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/low_level_driver::LowLevelTask.yml 
as there are no corresponding task model
Orocos[WARN]: ignoring configuration file 
/home/goldhoorn/dev-avalon/bundles/avalon/config/orogen/avalon_simulation::SonarRear.yml 
as there are no corresponding task model
14:32:39.670 (Robot) ignored file models/orogen/controldev.rb
14:32:39.670 (Roby) 
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:160:in 
`block in provides': invalid port mapping command_out => command_out in 
#<Syskit::Models::DeviceModel:0x000000053a6330>.provides(Base::RawCommandControllerSrv): 
port command_out on #<Syskit::Models::DeviceModel:0x000000053a6330> is 
of type /controldev/RawCommand and command_out on 
Base::RawCommandControllerSrv is of type /base/MotionCommand2D 
(Syskit::SpecError)
14:32:39.671 (Roby)
14:32:39.671 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:160:in 
`block in provides'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:152:in 
`each'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:152:in 
`provides'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:303:in 
`provides'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/data_service.rb:87:in 
`method_missing'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/bundles/rock/models/orogen/controldev.rb:11:in `block 
in <module:Controldev>'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/metaruby/lib/metaruby/module.rb:111:in 
`setup_submodel'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/metaruby/lib/metaruby/module.rb:101:in 
`new_submodel'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/metaruby/lib/metaruby/module.rb:45:in 
`create_and_register_submodel'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/bundles/rock/models/orogen/controldev.rb:9:in 
`<module:Controldev>'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/bundles/rock/models/orogen/controldev.rb:4:in 
`<module:Dev>'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/bundles/rock/models/orogen/controldev.rb:3:in 
`<top (required)>'
14:32:39.672 (Roby)   ./models/profiles/avalon.rb:3:in `<top (required)>'
14:32:39.672 (Roby)   
/home/goldhoorn/dev-avalon/tools/syskit/bin/syskit:16:in `<main>'
14:32:40.526 (Roby) Deprecation Warning: calling #specialize with child 
names is deprecated, use _child accessors instead (i.e. 
controlled_system_child here) at 
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:8:in 
`block in map_key'
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:7:in 
`each'
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:7:in 
`map_key'
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/composition.rb:104:in 
`specialize'
/home/goldhoorn/dev-avalon/bundles/avalon/models/orogen/avalon_control.rb:9:in 
`<module:Avalon>'
14:32:41.556 (Roby) Deprecation Warning: calling #specialize with child 
names is deprecated, use _child accessors instead (i.e. 
controlled_system_child here) at 
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:8:in 
`block in map_key'
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:7:in 
`each'
/home/goldhoorn/dev-avalon/tools/utilrb/lib/utilrb/hash/map_key.rb:7:in 
`map_key'
/home/goldhoorn/dev-avalon/tools/syskit/lib/syskit/models/composition.rb:104:in 
`specialize'
/home/goldhoorn/dev-avalon/bundles/avalon/models/orogen/auv_rel_pos_controller.rb:8:in 
`<top (required)>'
14:32:41.672 (Robot) loaded Roby application in 3.764 seconds
/home/goldhoorn/dev-avalon/tools/metaruby/lib/metaruby/gui/ruby_constants_item_model.rb:70: 
Use RbConfig instead of obsolete and deprecated Config.
Object::connect: No such signal QObject::updated()




-- 
  Dipl.-Inf. Matthias Goldhoorn
  Space and Underwater Robotic

  Universität Bremen
  FB 3 - Mathematik und Informatik
  AG Robotik
  Robert-Hooke-Straße 5
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-4193
  Zentrale: +49 421 178 45-6550
  Fax:      +49 421 178 45-4150
  E-Mail:   matthias.goldhoorn at uni-bremen.de

  Weitere Informationen: http://www.informatik.uni-bremen.de/robotik



More information about the Rock-dev mailing list