[Rock-dev] Roby: Using different configurations - conceptual error or bug?

Allan E. Conquest allan.conquest at dfki.de
Thu Feb 16 15:45:31 CET 2012


Hi,

I would like to use non-default configurations for

a) the general running case (like the time before or between any
mission) [here: 'studiobad'] and
b) mission specific configurations? [here: 'default', 'wall_servoing']

The following is our situation:

Robot.devices do
  device(Dev::Micron, :as => 'sonar').
    period(0.01).
    use_conf("studiobad")
end

wall_device = device('sonar').use_conf('default', 'wall_servoing')
define('wall', Cmp::VisualServoing.use(Cmp::WallDetector.use(wall_device)))

Unfortunately, this produces the following error message:

device sonar is assigned to both
Orocos::RobyPlugin::SonarTritech::Micron:0x7f764a0764b8{conf =>
[studiobad], micron_name => sonar}[] and
Orocos::RobyPlugin::SonarTritech::Micron:0x7f764a07fcc0{conf =>
[default, wall_servoing], micron_name => sonar}[]
(Orocos::RobyPlugin::SpecError)
= Backtrace
|
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/engine.rb:876:in
`validate_generated_network',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/data_sources.rb:846:in
`each',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/data_sources.rb:846:in
`each_master_device',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/engine.rb:873:in
`validate_generated_network',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/engine.rb:871:in
`each',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/engine.rb:871:in
`validate_generated_network',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/engine.rb:1501:in
`resolve',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:130:in
`compute',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:119:in
`each',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:119:in
`compute',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:154:in
`run',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/common.rb:251:in
`run',
|  
/home/allan/dev/AVALON.master/tools/roby/lib/roby/exceptions.rb:327:in
`display_exception',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/common.rb:249:in
`run',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:152:in
`run',
|  
/home/allan/dev/AVALON.master/tools/orocos.rb/lib/orocos/roby/scripts/instanciate.rb:310,
|   /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require',
|   /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require',
|   scripts/orocos/instanciate:3
=

If this problem is not due to a bug, could somebody please give a best
practice guide on how to do this kind of configuration?

Best

Allan


More information about the Rock-dev mailing list