[Rock-dev] Syskit Monitors

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Mon Jun 16 16:32:04 CEST 2014


I had just tested my first monitor, which results in the following error:

16:28:27.564 (Roby) = failed emission of the weak_signal event of 
Pipeline::Detector:0x71f5cf0
16:28:27.564 (Roby) = Backtrace
16:28:27.564 (Roby) |
16:28:27.564 (Roby) | /home/auv/dev/tools/roby/lib/roby/task.rb:663:in 
`emitting_event'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/task_event_generator.rb:46:in `emitting'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/event_generator.rb:628:in 
`emit_without_propagation'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1017:in `block (2 
levels) in event_propagation_step'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:648:in 
`propagation_context'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1015:in `block in 
event_propagation_step'
16:28:27.564 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:559:in `block in 
gather_propagation'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:648:in 
`propagation_context'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:559:in 
`gather_propagation'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1014:in 
`event_propagation_step'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:783:in `block in 
event_propagation_phase'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:761:in `gather_errors'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:779:in 
`event_propagation_phase'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1426:in 
`process_events'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1940:in `block (2 
levels) in event_loop'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/support.rb:176:in `synchronize'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1939:in `block in 
event_loop'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1917:in `loop'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1917:in `event_loop'
16:28:27.565 (Roby) | 
/home/auv/dev/tools/roby/lib/roby/execution_engine.rb:1797:in `block (3 
levels) in run'
16:28:27.565 (Roby) =


Don't know wether this is a bug, or if i had miss-used the monitor... 
here is the action_state_machine i'm using:

183     describe("Find_pipe_with_localization").
184         optional_arg("check_pipe_angle",false)
185     action_state_machine "find_pipe_with_localization" do
186         find_pipe_back = state target_move_def(... some long stuff 
here ... )
187         pipe_detector = state pipeline_detector_def
188         pipe_detector.depends_on find_pipe_back, :role => "detector"
189         start(pipe_detector)
190
191         pipe_detector.monitor(
192             'angle_checker', #the Name
193             pipe_detector.find_port('pipeline'), #the port for the 
reader
194             :check_pipe_angle => check_pipe_angle). #arguments
195             trigger_on do |pipeline|
196                 angle_in_range = true
197                 if check_pipe_angle
198                     angle_in_range = pipeline.angle < 0.1 && 
pipeline.angle > -0.1
199                 end
200                 state_valid = pipeline.inspection_state == 
:ALIGN_AUV || pipeline.inspection_state == :FOLLOW_PIPE
201                 state_valid && angle_in_range #last condition
202             end. emit pipe_detector.success_event
# for non-monitor use, this works if the above is commented out
203 #        forward pipe_detector.align_auv_event, success_event
204 #        forward pipe_detector.follow_pipe_event, success_event
205
206         forward pipe_detector.success_event, success_event
207         forward 
pipe_detector,find_pipe_back.success_event,failed_event #timeout here on 
moving
208     end





Can anyone help me here?,
Best,Matthias


-- 
  --
  Matthias Goldhoorn
  Unterwasserrobotik
  
  Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany
  
  Phone: +49 (0)421 218-64100
  Fax:   +49 (0)421 218-64150
  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
  -----------------------------------------------------------------------




More information about the Rock-dev mailing list