<div dir="ltr">Hey, two points:<div> - this question would better be placed on the robotics stack exchange website (with the syskit and rock tags) as we discussed earlier on this ML</div><div> - it is generally better to ask *what* you want to do first (i.e. when my pipeline follower reaches heading X I want to do Y), not *how* you think you should be doing it (state machine, create roby task and so on)</div>
<div><br></div><div>Sylvain</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 3, 2014 at 3:53 PM, Matthias Goldhoorn <span dir="ltr">&lt;<a href="mailto:matthias.goldhoorn@dfki.de" target="_blank">matthias.goldhoorn@dfki.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I search for a nice way to define that transition should only be done IF<br>
some conditions (like data on input ports) are valid.<br>
<br>
Concrete:<br>
<br>
find_pipe_back = state target_move_def(:finish_when_reached =&gt; false ,<br>
:heading =&gt; 1 ...)<br>
pipe_detector = state pipeline_detector_def<br>
pipe_detector.depends_on find_pipe_back, :role =&gt; &quot;detector&quot;<br>
start(pipe_detector)<br>
<br>
script do<br>
     somewhow_get_reader_of_orientation<br>
     if orientation.yaw &lt; foo and orientation.yaw &gt; 2<br>
         forward pipe_detector.align_auv_event, success_event<br>
     end<br>
end<br>
<br>
<br>
I thoug to do anything like creating a Roby::Task like this:<br>
<br>
class Foo::Task &lt;&lt; Roby::Task<br>
     add OrientationSrv, :as =&gt; ori_p<br>
     reader = ori_p.orientation.reader<br>
     script do<br>
         if ori.yaw .....<br>
             emit :failed<br>
         else<br>
             emit :success<br>
      end<br>
end<br>
<br>
and then fallback in the statemachine to the original state, but i<br>
assume this will result in a nonsense-loop. Is there a better way to do<br>
those things?<br>
<br>
Best,<br>
Matthias<br>
<br>
<br>
<br>
--<br>
  --<br>
  Matthias Goldhoorn<br>
  Unterwasserrobotik<br>
<br>
  Standort Bremen:<br>
  DFKI GmbH<br>
  Robotics Innovation Center<br>
  Robert-Hooke-Straße 5<br>
  28359 Bremen, Germany<br>
<br>
  Phone: <a href="tel:%2B49%20%280%29421%20218-64100" value="+4942121864100">+49 (0)421 218-64100</a><br>
  Fax:   <a href="tel:%2B49%20%280%29421%20218-64150" value="+4942121864150">+49 (0)421 218-64150</a><br>
  E-Mail: <a href="mailto:robotik@dfki.de">robotik@dfki.de</a><br>
<br>
  Weitere Informationen: <a href="http://www.dfki.de/robotik" target="_blank">http://www.dfki.de/robotik</a><br>
  -----------------------------------------------------------------------<br>
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH<br>
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern<br>
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster<br>
  (Vorsitzender) Dr. Walter Olthoff<br>
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes<br>
  Amtsgericht Kaiserslautern, HRB 2313<br>
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)<br>
  USt-Id.Nr.:    DE 148646973<br>
  Steuernummer:  19/673/0060/3<br>
  -----------------------------------------------------------------------<br>
<br>
<br>
_______________________________________________<br>
Rock-dev mailing list<br>
<a href="mailto:Rock-dev@dfki.de">Rock-dev@dfki.de</a><br>
<a href="http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev" target="_blank">http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev</a><br>
</blockquote></div><br></div>