[Rock-dev] Periodic Mars Plugin as Device in Roby
Christian Rauch
Christian.Rauch at dfki.de
Wed Jul 25 11:13:04 CEST 2012
Hi,
if I define in Roby that:
{{{
Robot.devices do
device(Dev::SeekurJrSimulation, :as => "simulation_deployment")
end
}}}
{{{
class SeekurSimulation::Task
driver_for 'Dev::SeekurJrSimulation' do
provides Srv::ActuatorControlledSystem
end
end
}}}
and the Task itself is defined as periodical in the *.orogen file
{{{
task_context "Task" do
subclasses "simulation::Mars"
[...]
end
deployment "simulation_deployment" do
sim = task("seekur_simulation", "Task").periodic(0.1)
[...]
end
}}}
I will get the following error when running or instantiating:
{{{
=
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:140:in
`+': nil can't be coerced into Fixnum (TypeError)
= Backtrace
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:140:in
`+',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:140:in
`queue_size',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:291:in
`initial_device_information_periodic_triggering',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/component.rb:179:in
`each_task_output_port',
| (eval):17:in `each_value',
| (eval):17:in `each_output_port',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/component.rb:357:in
`each_output_port',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/component.rb:153:in
`each_output_port',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/component.rb:178:in
`each_task_output_port',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:288:in
`initial_device_information_periodic_triggering',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:263:in
`initial_device_information_common',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:255:in
`each',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:255:in
`initial_device_information_common',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:287:in
`initial_device_information_periodic_triggering',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:243:in
`initial_device_information',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:325:in
`initial_information',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_computation.rb:177:in
`propagate',
|
/home/christian/rock_virgo/tools/utilrb/lib/utilrb/logger/indent.rb:23:in `nest',
|
/home/christian/rock_virgo/tools/utilrb/lib/utilrb/logger/forward.rb:19:in
`log_nest',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_computation.rb:176:in
`propagate',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_computation.rb:173:in
`each',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_computation.rb:173:in
`propagate',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:172:in
`propagate',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb:460:in
`compute_connection_policies',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/engine.rb:1584:in
`resolve',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/scripts/run.rb:61,
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1924:in
`execute',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1820:in
`execute',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:622:in `call',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:622:in `gather_external_events',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:512:in `gather_framework_errors',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:622:in `gather_external_events',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1190:in
`process_events',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:646:in `gather_errors',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1189:in
`process_events',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:476:in `gather_propagation',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:546:in `propagation_context',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:476:in `gather_propagation',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1188:in
`process_events',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1669:in
`event_loop',
| /home/christian/rock_virgo/tools/roby/lib/roby/support.rb:182:in
`synchronize',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1667:in
`event_loop',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1645:in
`loop',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1645:in
`event_loop',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1526:in
`run',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1519:in
`initialize',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1519:in
`new',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1519:in
`run',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1518:in
`synchronize',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1518:in
`run',
| /home/christian/rock_virgo/tools/roby/lib/roby/support.rb:137:in
`condition_variable',
|
/home/christian/rock_virgo/tools/roby/lib/roby/execution_engine.rb:1517:in
`run',
| /home/christian/rock_virgo/tools/roby/lib/roby/app.rb:931:in `run',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/scripts/run.rb:51,
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/scripts/common.rb:269:in
`run',
| /home/christian/rock_virgo/tools/roby/lib/roby/exceptions.rb:333:in
`display_exception',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/scripts/common.rb:267:in
`run',
|
/home/christian/rock_virgo/tools/orocos.rb/lib/orocos/roby/scripts/run.rb:50,
| /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',
| /home/christian/rock_virgo/tools/orocos.rb/bin/rock-roby:15
=
}}}
This is caused by "triggers.map" in
"tools/orocos.rb/lib/orocos/roby/dataflow_dynamics.rb" line 130 being empty.
Is there a restriction in using periodic Devices in Roby?
Regards,
Christian
--
Christian Rauch
Space Robotics
Universität Bremen
FB 3 - Mathematik und Informatik
AG Robotik
Robert-Hooke-Straße 5
28359 Bremen, Germany
Tel: +49 (0)421 178 45-6619
Empfang: +49 (0)421 178 45-6550
Fax: +49 (0)421 178 45-4150
E-Mail: Christian.Rauch at dfki.de
Weitere Informationen: http://www.informatik.uni-bremen.de/robotik
More information about the Rock-dev
mailing list