[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