[Rock-dev] Defining conditions for state-machines withing roby?

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Tue Jun 3 15:53:46 CEST 2014


I search for a nice way to define that transition should only be done IF 
some conditions (like data on input ports) are valid.

Concrete:

find_pipe_back = state target_move_def(:finish_when_reached => false , 
:heading => 1 ...)
pipe_detector = state pipeline_detector_def
pipe_detector.depends_on find_pipe_back, :role => "detector"
start(pipe_detector)

script do
     somewhow_get_reader_of_orientation
     if orientation.yaw < foo and orientation.yaw > 2
         forward pipe_detector.align_auv_event, success_event
     end
end


I thoug to do anything like creating a Roby::Task like this:

class Foo::Task << Roby::Task
     add OrientationSrv, :as => ori_p
     reader = ori_p.orientation.reader
     script do
         if ori.yaw .....
             emit :failed
         else
             emit :success
      end
end

and then fallback in the statemachine to the original state, but i 
assume this will result in a nonsense-loop. Is there a better way to do 
those things?

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