PK PF0 META-INF/PK PF0--META-INF/MANIFEST.MFManifest-Version: 1.0 Created-By: 0.92-gcc PK QF0./PK eMF0CVS/PK MF0--CVS/Root/afs/nd.edu/user40/airolab/projects/cvsroot/ PK MF04CVS/Repositorynnsim PK MF09hSS CVS/Entries/NNstartG.java/1.1.1.1/Tue May 28 21:18:48 2002// D/aesim//// D/apple//// D/apple2//// D/behaviorsandbrains//// D/groups//// D/misc//// D/oldimport//// D/popforages//// D/units//// D/vacuum//// D/nnsim//// D/com//// D/javaactsclient//// D/kickdemo//// D/agent//// D/resources//// /.cvsignore/1.1/Thu Oct 10 18:47:59 2002// /AGESST~1.PIF/1.1.1.1/Thu Oct 10 18:47:07 2002// /AgeSstart1.bat/1.1.1.1/Thu Oct 10 18:47:07 2002// /Applet.form/1.1.1.1/Thu Oct 10 18:47:07 2002// /Help.html/1.1/Thu Oct 10 18:47:55 2002// /Help_Blank.html/1.1/Thu Oct 10 18:47:55 2002// /Makefile/1.1.1.1/Thu Oct 10 18:47:07 2002// /NNsim.html/1.1.1.1/Thu Oct 10 18:47:07 2002// /NNsimApplet.java/1.1.1.1/Thu Oct 10 18:47:07 2002// /NNstart.java/1.1.1.1/Thu Oct 10 18:47:07 2002// /SimAgentJava.tex/1.1.1.1/Thu Oct 10 18:47:07 2002// /TrilobotServerImpl.java/1.1.1.1/Thu Oct 10 18:47:07 2002// /admin_basic/1.1/Thu Oct 10 18:47:55 2002// /basic/1.1/Thu Oct 10 18:47:55 2002// /biagender.net/1.1.1.1/Thu Oct 10 18:47:07 2002// /biamodel.net/1.1.1.1/Thu Oct 10 18:47:07 2002// /biamodel2.net/1.1.1.1/Thu Oct 10 18:47:07 2002// /callsequencesinAGES.txt/1.1.1.1/Thu Oct 10 18:47:07 2002// /compile.bat/1.1.1.1/Thu Oct 10 18:47:07 2002// /edit_screen.html/1.2/Thu Oct 10 18:47:55 2002// /fba4.net/1.1.1.1/Thu Oct 10 18:47:07 2002// /general_usage.html/1.2/Thu Oct 10 18:47:55 2002// /jar.bat/1.1.1.1/Thu Oct 10 18:47:07 2002// /nnsim.jar/1.3/Thu Oct 10 18:47:08 2002// /nnsim_importexport_format.txt/1.1.1.1/Thu Oct 10 18:47:08 2002// /nnsim_old_format.txt/1.1.1.1/Thu Oct 10 18:47:08 2002// /notes.txt/1.1.1.1/Thu Oct 10 18:47:08 2002// /run_screen.html/1.2/Thu Oct 10 18:47:55 2002// /t/1.1.1.1/Thu Oct 10 18:47:08 2002// /tes/1.1.1.1/Thu Oct 10 18:47:08 2002// /test.net/1.1.1.1/Thu Oct 10 18:47:08 2002// /tester.net/1.1.1.1/Thu Oct 10 18:47:09 2002// /train_screen.html/1.2/Thu Oct 10 18:47:55 2002// PK MF0CVS/Entries.LogA D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/com//// A D/nnsim//// A D/com//// A D/com//// A D/com//// A D/com//// A D/simulation//// A D/simulation//// PK eMF0html/PK MF0`=QQhtml/edit_screen.html Edit Mode

Edit Mode information

Menu Bar

  • Units - Menu to select which unit type to place in the network. Used in conjunction with the Unit button.
  • Groups - Menu to select which group to place in the network. Used in conjunction with the Group button.

Tool Bar

  • Unit - Button to be selected before or after a unit type has been selected.
  • Link - Button to be selected to make a link between two units in the network.
  • Label - Button to be selected to place a label in the network.
  • Group - Button to be selected before or after a group type has been selected.
  • Zoom Out - Zoom out on the network.
  • Zoom in - Zoom in on the network.
  • Pan - Shifts the network in direction selected.
  • Arrow - Button that allows objects in the network be moved or selected.
  • Ungroup - Button that will ungroup a selected group.
  • Toggle Value - Button to selected to reset the values in the network.
  • Delete - Button to selected to delete a component in the network.
  • Group it - Button to be selected once objects in the network have been selected by the user to be made in to a group.
  • Copy - Button to copy selected object to the internal clipboard.
  • Paste - Button to paste copied objects into the network where the user specifies.
  • Pattern - Button to ?
  • Pattern Set - Button to ?

Usage

  To begin creating a network, select which unit type wanted, then click on Unit in the tool bar. Place a unit in the network by clicking on the screen where the unit should be placed. It is possible to able multiple units to the network with out having to reselect the type. Thus a user needs to just click where they want a unit until all the units for a given network have been added. It a user switches to a different object such as a label or link or to a different action, they can switch back to adding units without having to reselect a unit type.
 
  Links are created between units by selecting Link and then clicking on the unit that is to be the from-unit and dragging to the to-unit. A dialog box will appear and allow the user to select which type of link is be created. Only one instance of each link type is allowed between two units in a single direction. To add another link type between two units just repeat the process. Once can set link specific values by double clicking on the arrow or caret that represents the link type.
 
  Labels can be added to the network for understandability. To add a label, click the label button on the tool bar, then click on the screen where ever the label is to be placed. This does not have to be the final placement of the label since all objects can be moved with the arrow tool. The default value for a label is
Label
, the value can be changed by double clicking on the label and change the text in the dialog box that appears.
 
  There are two ways to use groups: add a preexisting group or create one from objects already in the network. In order to use preexisting groups, the groups option must be set in the permissions. If it is, then there will be a button labeled Group to the right of Label as well as a menu labeled Groups. This menu lists all the preexisting groups available. Similar to units, select which group type to add and click Group. Once this is done, a group can be placed where ever the mouse is clicked. If this option is not available or if a group needs to be constructed from objects in the network already, highlight the objects wanted in the group, then click Group it.
 
  While editing the network, one can undo actions most actions taken including, adding units, groups, labels, activation links, priority links, and observer links. Other editing actions can be undone as well. These include deletetions and pastes. To paste an a selected object it must be copied through the copy button. An item can only be pasted once, then must be recopied to paste another one. To delete objects either select them with the arrow tool, select delete and click on them items or delete the objects one by one.
 
  Pattern sets - not sure what to put here.
 
PK MF0wtM html/general_usage.html General Information

General Information

File Menu

  • New - creates a completely new session for NNSim©
  • Open - allows a user to open a network saved in binary format to replace the current network
  • Insert - allows a user to insert a network saved in binary form into the current network
  • Save - allows a user to save a network in binary form
  • Save As - allows a user to save a network in binary form
  • Import - allows a user to insert a network, saved in the NNSim© format, into the current network
  • Export - allows a user to save a network in the NNSim© format
  • Preferences - ?
  • Permissions - (Admin Mode only) allows an admin to set global permission to allow different capabilities for users
  • Quit - Exit NNSim©

Mode Menu

  • Edit Network - Switch to the edit mode screen
  • Train Network - Switch to the training mode screen
  • Run Network - (Default mode) Switch to the run mode screen
  • Agent Network (Optional) Switch to the agent mode screen

Pattern Set Menu

Used to select a pattern set

Updating Menu

Used to select an updating algorithm

Help Menu

Used to select the Help menu

Usage

  To begin, there are four options to run a network, command line argument, load a saved network, import a network, and create a new network. The command line argument is a file that contains an exported file. To load a network that has been saved in binary format select the File->Open or File->Insert and select the network file to be loaded. To import a network saved in the NNSim© format, select File->Import and select the corresponding file. To create a new network select Mode->Edit Mode, and begin creating a new network.
Once a network has been created, it can be saved in two ways, binary format or NNSim© format. To save in binary format select File->Save or File->Save As and select the file name you want to save as the network. To save in the NNSim© format, select File->Export and give the name of the file to write.
 
PK MF0 Myyhtml/Help_Blank.html Blank PK MF01 ҵhtml/Help.html Help System

Help Contents


General Usage

Run Mode

Edit Mode

Train Mode

PK MF0EwNNhtml/NNsim.html NNSim 1.2.1 alt="Your browser understands the <APPLET> tag but isn't running the applet, for some reason." Your browser is completely ignoring the <APPLET> tag! PK MF0{ html/run_screen.html Run Mode

Run Mode information

Tool Bar

  • Update button - allows user to perform one update cycle on the network
  • Cycle button - allows user to perform X number of updates on the network. X depends on the number in the text filed "# of cycles"
  • Reset button - resets the network back to it's initial state; all values are set to 0.0
  • Graph button - bring up plot screen for a specific unit, see usage section below
  • Arrow button - turns of the selection of units for graphing
  • # of cycles text field - allows users to set how many updates to run for when the cycle button is clicked.

Usage

  Once a network has been loaded, imported, or created, the network can be updated by clicking the Update or the Cycle buttons. The Update button will go through one update cycle for all the units in the network. The Cycle button will update all the units in the network for a specified number of cycles. The number of cycles is specified in the text field "# of cycles". The default value for the number of cycles is 10. This can be changed to any positive value starting at 0.
 
  To view a graph of the activation value for a unit, clock on Graph and then double click on the unit desired. Once the window is open it is possible to save the graph in jpg format by selecting File->Save As in the graph's window. One can also set the scale for the graph it defaults to ten hash marks on the positive and ten hash marks in the negative y-axis. The scale is set by the maximum value, if it is greater than zero, otherwise it is set by the minimum value.
 
  It is possible to reset the graph to its initial state by clicking Reset on the tool bar.
 
PK MF0q q html/train_screen.html Train Mode

Train Mode information

Tool Bar

  • (un)Scramble button - button scrambles/unscrambles the network.
  • Randomize button - button randomizes the activation values in the network.
  • Train button - button trains the network for X epochs, where X depends on the number in the text field "# of epochs"
  • Test button - bring up plot screen for a specific unit, see usage section below
  • Epsilon field - change the epsilon value for training
  • # of epochs field - change the number of epochs for training the network

Usage

  Once a network has been loaded, imported, or created, the network can be trained. By selecting Mode->Train Mode, NNSim© will enter it's training mode. In this mode it is possible to test and train the network. To train the network, set the number of epochs to run, the default is one hundred, then click Train. The network can be tested with the Test button.
 
  While training the network the activation values can be randomize or scrambled. To randomize the activation values, click Randomize on the tool bar. To scramble the network, click Scramble on the tool bar.
 
  The number of epochs wanted to train the network can be changed in the " # of epochs " text field. The epsilon value for can also be changed in the " epsilon" text field.
 
PK MF0 b basic_permssrjava.util.Hashtable%!JF loadFactorI thresholdxp?@Gw,4t Undo_Facilitysrjava.lang.Boolean r՜ZvaluexptEditorsq~tDelete_Objectssq~t Train_Toolssq~tSelect_Objectssq~t ViewArrowsq~t Agent_Optionssq~t Create_Labelssq~tupdatesq~tOpen_NNsq~t Agent_Startsq~t Agent_Clearsq~t Create_Linkssq~t Insert_NNsq~t Agent_Modesq~tDisplay_Groupssq~tScramblesq~tPatternSet_Menusq~t Edit_Modesq~tAdd_PatternSetssq~t ViewGraphsq~tRun_Modesq~t Units_Menusq~t Groups_Menusq~tSave_NNsq~t Learning_Menusq~t Train_Modesq~t SaveAs_NNsq~tTrainsq~tresetsq~t Copy_Objectssq~tMUpdatesq~tTestsq~t Agent_Stopsq~t Permissionssq~t Create_Groupssq~t Run_Toolssq~tDeselect_Objectssq~tROptionssq~t Create_Unitssq~t Set_Valuessq~tcyclesq~tZoom_outsq~tPansq~t Edit_Optionssq~t Randomizesq~tZoom_insq~t Paste_Objectssq~t Group_Objectssq~t Preferencessq~tNew_PatternSetssq~t Agent_Toolssq~xPK MF0  all.permssrjava.util.Hashtable%!JF loadFactorI thresholdxp?@Gw_4t SaveAs_APOCsrjava.lang.Boolean r՜Zvaluexpt Set_Valuessq~t Learning_Menusq~t ViewGraphsq~tTestsq~tScramblesq~tTrainsq~t Undo_Facilitysq~t Units_Menusq~t Agent_Clearsq~t Create_Unitssq~tDeselect_Objectssq~tDisplay_Groupssq~t Agent_Optionssq~t Permissionssq~tMUpdatesq~t Save_APOCsq~t Open_APOCsq~t Edit_Modesq~tZoom_insq~tEditorsq~t Train_Toolssq~t Agent_Modesq~tZoom_outsq~t Copy_Objectssq~tPatternSet_Menusq~tRun_Modesq~t Groups_Menusq~t Preferencessq~tupdatesq~t Run_Toolssq~t Agent_Stopsq~t Train_Modesq~t Insert_APOCsq~t Randomizesq~tSelect_Objectssq~tresetsq~t Group_Objectssq~tROptionssq~tcyclesq~t Paste_Objectssq~tNew_PatternSetssq~tAdd_PatternSetssq~t ViewArrowsq~t Create_Groupssq~t Edit_Optionssq~tPansq~tDelete_Objectssq~t Create_Labelssq~t Create_Linkssq~t Agent_Startsq~t Agent_Toolssq~xPK MF0 QMakefileFILE = SimAgentJava $(FILE).ps: $(FILE).dvi dvips $(FILE).dvi -o $(FILE).ps $(FILE).dvi: $(FILE).tex latex $(FILE).tex clean: rm -rf $(FILE).aux $(FILE).log $(FILE).dvi $(FILE).ps *~ PK aPF0basic/PK MF0SSAPOCstart.class.   ()VCodeLineNumberTablemain([Ljava/lang/String;)V SourceFileAPOCstart.java apoc/APOCSimulator   APOCstartjava/lang/ObjectAPOCinit! *   .Y*L+    PK bPF0agent/PK eMF0 agent/CVS/PK MF0i,,agent/CVS/Root/afs/nd.edu/user40/airolab/projects/cvsroot PK MF0i<* agent/CVS/Repositorynnsim/agent PK MF0\Ќ#agent/CVS/EntriesD/trilobot//// D/webagents//// D/peoplebot//// /BasicSensor.java/1.1/Mon Aug 12 19:15:43 2002// D/sensors//// D/effectors//// D/pioneer//// /.cvsignore/1.1/Thu Oct 10 18:47:21 2002// /.nbattrs/1.1.1.1/Thu Oct 10 18:47:10 2002// /Agent.java/1.2/Thu Oct 10 18:47:10 2002// /BasicEffector.java/1.1/Thu Oct 10 18:47:21 2002// /Brain.java/1.2/Thu Oct 10 18:47:10 2002// /Effector.java/1.2/Thu Oct 10 18:47:10 2002// /Environment.java/1.1.1.1/Thu Oct 10 18:47:10 2002// /IOProvider.java/1.1.1.1/Thu Oct 10 18:47:10 2002// /Makefile/1.1.1.1/Thu Oct 10 18:47:10 2002// /Sensor.java/1.2/Thu Oct 10 18:47:10 2002// /SimAgent.java/1.1.1.1/Thu Oct 10 18:47:10 2002// /Simulation.java/1.1.1.1/Thu Oct 10 18:47:10 2002// PK MF05>>agent/MakefileCMP = javac FLAGS = -classpath ../ all : SimAgent.class SimAgent.class: Agent.class Brain.class Sensor.class Effector.class $(CMP) SimAgent.java $(FLAGS) Environment.class: IOProvider.class $(CMP) Environment.java $(FLAGS) IOProvider.class: $(CMP) IOProvider.java $(FLAGS) Agent.class: Brain.class Sensor.class Effector.class $(CMP) Agent.java $(FLAGS) Brain.class: Sensor.class Effector.class $(CMP) Brain.java $(FLAGS) Sensor.class: $(CMP) Sensor.java $(FLAGS) Effector.class: $(CMP) Effector.java $(FLAGS) # Clean Up clean : rm -rf *.class rm -rf *~ PK MF0-@agent/Agent.class.S 2 3 45 3 6 7 8 9 :;< = > ? @A BC D E FGHIJ mySensorsLjava/util/Vector; myEffectorsmyBrain Lagent/Brain; update_rateItLjava/lang/Thread;()VCodeLineNumberTable(Lagent/Brain;)V(ILagent/Brain;)V initializeSEB startAgentrunupdate+(Ljava/util/Observable;Ljava/lang/Object;)V'(Ljava/lang/Object;Ljava/lang/Object;)V updateAgent SourceFile Agent.java #( #$  java/util/Vector    *$ )$java/lang/Thread Agent_thread #K !" L$ MNjava/lang/InterruptedExceptionO P$ /$ Q$ R$ agent/Agentjava/util/Observablejava/lang/Runnablejava/util/Observer)(Ljava/lang/Runnable;Ljava/lang/String;)Vstartsleep(J)V agent/Brain updateBrain setChangednotifyObservers! !" #$%$*d& $%#'%$*d+& ()#(%Q%***Y*Y*,&,- ./0$1)$*'%* *+* &9: ;*$%>* * Y* *&?@AB+$%V"*L**** &IJ KLNO,-%&W,.%&Z/$%&_01PK MF04TԌ77agent/BasicEffector.class.c 7 89 : ; <=> ? @ A B CD EFG HI CJ CKL M ENOPQRSTthreadSuspendedZtLjava/lang/Thread;serverLcom/AgeSServer;typeLjava/lang/String;commandLjava/lang/Object;debug sentCommand()VCodeLineNumberTablegetType()Ljava/lang/String; startEffectordeactivateEffectoractivateEffector(Ljava/lang/Object;)V sendCommandsendingCommandrun SourceFileBasicEffector.java () Unknown "# & 'java/lang/ThreadEffector-thread (U  V) W)X Y)Z [\BasicEffector: activating...] ^_ `) a)java/lang/InterruptedException $% b\ Interruptedagent/BasicEffectorjava/util/Observableagent/Effectorjava/lang/Runnablejava/io/Serializable)(Ljava/lang/Runnable;Ljava/lang/String;)Vstartyieldjava/lang/Objectnotifyjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)V notifyAllwaiterr! !"#$%&' ()*F*****+ ,-**+%.)*=*Y* * +*+,-!/)** ** +01 2!0)*=* ** +89:;01*h(**M***+*  +& >@A B>DE#G'I2)3)*P*YL** +çM+,+NO P QR4)*?L*YM§***,çN,-M* ##&#(++2 XZ\ ] ^]_(`,a4b7h<Z56PK QF0agent/peoplebot/PK PF0agent/peoplebot/sensors/PK MF04agent/peoplebot/sensors/PeoplebotBatterySensor.class.=    ! !" #$ % & '( ')*+,(Lcom/AgeSServer;)VCodeLineNumberTable getVoltage()FgetData()Ljava/lang/Object; SourceFilePeoplebotBatterySensor.java -. /0 GOT HERE...1 23 45com/peoplebot/PeoplebotServer 6java/rmi/RemoteException 27 8 9: ;<.agent/peoplebot/sensors/PeoplebotBatterySensoragent/BasicSensoragent/sensors/BatterySensor()Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)VserverLcom/AgeSServer; getBattery(Ljava/lang/Object;)Vjava/lang/FloattoString(F)Ljava/lang/String;valueOf%(Ljava/lang/String;)Ljava/lang/Float;!6**+ ;*L+    # * $PK MF063agent/peoplebot/sensors/PeoplebotBumperSensor.class..       !"#(Lcom/AgeSServer;)VCodeLineNumberTablegetBumperValues()[ZgetData()Ljava/lang/Object; SourceFilePeoplebotBumperSensor.java $ %&com/peoplebot/PeoplebotServer 'java/rmi/RemoteException( )*+ ,- -agent/peoplebot/sensors/PeoplebotBumperSensoragent/BasicSensoragent/sensors/BumperSensor()VserverLcom/AgeSServer; getBumpersjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)V!   * **+ ;*L+   * #PK MF0.qxx4agent/peoplebot/sensors/PeoplebotCompassSensor.class.8      ! " #$ #%&'((Lcom/AgeSServer;)VCodeLineNumberTablegetOrientation()IgetData()Ljava/lang/Object; SourceFilePeoplebotCompassSensor.java ) *+com/peoplebot/PeoplebotServer ,java/rmi/RemoteException- ./0 12 3 45 67.agent/peoplebot/sensors/PeoplebotCompassSensoragent/BasicSensoragent/sensors/CompassSensor()VserverLcom/AgeSServer;getThjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)Vjava/lang/IntegertoString(I)Ljava/lang/String;valueOf'(Ljava/lang/String;)Ljava/lang/Integer;! * **+ ;*L+   # * #PK MF0y3w..0agent/peoplebot/sensors/PeoplebotLrfSensor.class.O + , ,- ./ 01 23 , 4 , 56 +7 8 9 : 2; , < .=>?(Lcom/AgeSServer;)VCodeLineNumberTablegetLrfReadings()[D getLrfReading(I)D getLrfNew(I)Z()[ZgetData()Ljava/lang/Object; SourceFilePeoplebotLrfSensor.java @ ABcom/peoplebot/PeoplebotServer !java/rmi/RemoteExceptionC DEF GH "# $%java/lang/StringBuffer Got an error IJ IK LM GN $&*agent/peoplebot/sensors/PeoplebotLrfSensoragent/BasicSensoragent/sensors/LrfSensor()VserverLcom/AgeSServer;java/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;,(Ljava/lang/Object;)Ljava/lang/StringBuffer;toString()Ljava/lang/String;(Ljava/lang/String;)V!* **+  !;*L+   "#>*  M,   $%$%N** MY,  *+$&;*L+  0 1'(*6)*PK MF07^^2agent/peoplebot/sensors/PeoplebotMotorSensor.class.3     ! "#  $ %&'((Lcom/AgeSServer;)VCodeLineNumberTablegetMotorStatus()[Z getEncoders()[IgetData()Ljava/lang/Object; SourceFilePeoplebotMotorSensor.java ) *+com/peoplebot/PeoplebotServer ,java/rmi/RemoteException- ./0 12  ,agent/peoplebot/sensors/PeoplebotMotorSensoragent/BasicSensoragent/sensors/MotorSensor()VserverLcom/AgeSServer; motorStatusjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)V! * **+ ;*L+   ;*  L+  $ %* *PK MF0//2agent/peoplebot/sensors/PeoplebotSonarSensor.class.< " # #$ %& '( )* # + # , # - ./01(Lcom/AgeSServer;)VCodeLineNumberTablegetSonarReadings()[FgetSonarReading(I)F getSonarNew()[Z(I)ZgetData()Ljava/lang/Object; SourceFilePeoplebotSonarSensor.java 2 34com/peoplebot/PeoplebotServer 5java/rmi/RemoteException6 789 :; 5   ,agent/peoplebot/sensors/PeoplebotSonarSensoragent/BasicSensoragent/sensors/SonarSensor()VserverLcom/AgeSServer;getSonarjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)V!* **+ ;*L+   <*  M,   $%;*  L+  * +<* M,  01*5 !PK MF0H%4agent/peoplebot/sensors/PeoplebotGripperSensor.class.,        !"(Lcom/AgeSServer;)VCodeLineNumberTablegetGripperInfo()[SgetData()Ljava/lang/Object; SourceFilePeoplebotGripperSensor.java # $%com/peoplebot/PeoplebotServer java/rmi/RemoteException& '() *+.agent/peoplebot/sensors/PeoplebotGripperSensoragent/BasicSensoragent/sensors/GripperSensor()VserverLcom/AgeSServer;java/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/Object;)V!   * **+ ;*L+   * #PK PF0agent/peoplebot/effectors/PK MF0j6agent/peoplebot/effectors/PeoplebotMotorEffector.class. %X &Y %Z %Z[ \] ^_ `a %Z %Z b %Z c %Zd Ye f gh i `j %Z k ^l %Z %Z m %Z %Z %Z %Z n %o %pqrsvelocityS setGoVelocity(S)VCodeLineNumberTable getGoVelocity()S(Lcom/AgeSServer;)V sendCommand()V(Ljava/lang/Object;)Vturn(I)VturnTo setVelocitysetWheelVelocity([I)Vgostop emergencyStopgoForwardShortgoForwardMedium goForwardLonggoBackwardShortgoBackwardMediumgoBackwardLongturnRightShortturnRightMedium turnRightLong turnLeftShortturnLeftMedium turnLeftLonggoForwardShortRightgoForwardMediumRightgoForwardLongRightgoBackwardShortRightgoBackwardMediumRightgoBackwardLongRightgoForwardShortLeftgoForwardMediumLeftgoForwardLongLeftgoBackwardShortLeftgoBackwardMediumLeftgoBackwardLongLeft SourceFilePeoplebotMotorEffector.java () 03 tucom/peoplebot/PeoplebotServer v+java/rmi/RemoteExceptionw xyz {4 |+ }+java/lang/StringBufferERROR CHECKING ~ ~ { + 3 3 ;6 560agent/peoplebot/effectors/PeoplebotMotorEffectoragent/BasicEffectoragent/effectors/MotorEffectorserverLcom/AgeSServer;sendVeljava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln sendDheadsendHeadappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;(I)Ljava/lang/StringBuffer;toString()Ljava/lang/String;(Ljava/lang/String;)VsendVel2currentTimeMillis()JsendStop sendEstop!%&'()$*+,"*- ./,*-01,4**(*+-! "#23,B* L+ -'()24,B*  M, --./56,B*   M, -45676,B*  M, -:;<86,B* M, -@AB9:,^Y+.+.+.h+.`*+.h+.` M, RU-F:GRH]I;6,7>**\Aeh*n*=**t\Aeh*n* : ~-* MO PQ5RDUVVrW~YZ<3,@*  L+  -^ _`=3,@*!" L+  -d ef>3,#*d#- ij?3,$*X#- mn@3,$*#- qrA3,#*#- uvB3,$*#- yzC3,$*P#- }~D3,#*$- E3,#*-$- F3,#*Z$- G3,#*$- H3,#*Ӷ$- I3,#*$- J3,-K3,-L3,-M3,-N3,-O3,-P3,-Q3,-R3,-S3,-T3,-U3,-VWPK MF0 r --8agent/peoplebot/effectors/PeoplebotGripperEffector.class.N 5 6 67 89 :; <= 6 6 > 6 6 ? 6 6 6 6 6 6 6 6 6 6 6@AB(Lcom/AgeSServer;)VCodeLineNumberTable sendCommand()V(Ljava/lang/Object;)Vmove(II)VmoveTogripOpen gripClose(I)VgripStopliftUpliftDownliftStop gripStore gripDeploygripHalt gripPress liftCarry SourceFilePeoplebotGripperEffector.java " CDcom/peoplebot/PeoplebotServer EFjava/rmi/RemoteExceptionG HIJ K# LF MF2agent/peoplebot/effectors/PeoplebotGripperEffectoragent/BasicEffectoragent/effectors/GripperEffectorserverLcom/AgeSServer;sendVel(S)Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln sendGrippersendGripperval!* **+  !"E*L+  !#E* M, $%&$% *&% -'"D*  L+  1 23()V**  * M, 7 89):*"D* L+  ? @A+"D* L+  F GH,"D* L+  M NO-"E* L+ TUV."E* L+ [\]/"E* L+ bcd0"E* L+ ijk1)W+* *M, pqr*s2)W+* *M, xyz*{34PK eMF0agent/peoplebot/brains/PK QF0agent/peoplebot/brains/brain2/PK MF0 J"J"0agent/peoplebot/brains/brain2/CSPath1Brain.class.p                                 B  G  K  O  !"# T $% X &'() \ *+, ` -. /0 12 34 56 7 89: ;< = > ?@A tB ?C >D xEF zG zH zI zJ K > tL tM K > tNOPQrobot Lagent/peoplebot/PeoplebotAgent; lookForDoor+Lagent/peoplebot/brains/brain2/LookForDoor;turnTowardsDoor/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; goThroughDoor-Lagent/peoplebot/brains/brain2/GoThroughDoor;goToWall(Lagent/peoplebot/brains/brain2/GoToWall; goToEndOfWall-Lagent/peoplebot/brains/brain2/GoToEndOfWall; turnRight)Lagent/peoplebot/brains/brain2/TurnRight;turnLeft(Lagent/peoplebot/brains/brain2/TurnLeft;knowDoorLocationLapoc/units/CSGoal;faceDoorgoThroughDoorGoal frontingWall1 frontingWall2atWallSideways1 atWallEndatWallSideways2inRoomoutOfAcloseToBinB tempGoal1 tempGoal2 tempGoal3 tempGoal4aToBLapoc/units/CSSchema;exitRoom takePath1 takePath2 takePath3 enterRoom tempSchema1 tempSchema2 tempSchema3 tempSchema4motorsLapoc/units/CSObject; objectInFrontobjectFrontRightobjectFrontLeft objectRight objectLeftforwardZbackwardleftrightcomplstLjava/util/Vector;()VCodeLineNumberTable#(Lagent/peoplebot/PeoplebotAgent;)VinitializeBrain'(Ljava/util/Vector;Ljava/util/Vector;)V getComponents()Ljava/util/Vector;activateSensorsdeactivateSensors updateMyselfupdate+(Ljava/util/Observable;Ljava/lang/Object;)V SourceFileCSPath1Brain.java java/util/Vector apoc/units/CSSchemaAToB R apoc/UnitComponent S TUapoc/units/CSGoalOutOfA CloseToB InB ExitRoom  TakePath1  TakePath2  TakePath3 Boredeom EnterRoom KnowDoorLocationGoal  FaceDoorGoal GoThroughDoorGoal FrontingWallGoal AtWallSidewaysGoal FrontingWall2Goal  AtWallEndGoal  TempSchema1  TempGoal1  TempGoal2 TempSchema2  TempSchema3  TempGoal3  TempSchema4  TempGoal4 )agent/peoplebot/brains/brain2/LookForDoor LookForDoor V -agent/peoplebot/brains/brain2/TurnTowardsDoorTurnTowardsDoor +agent/peoplebot/brains/brain2/GoThroughDoor GoThroughDoor &agent/peoplebot/brains/brain2/GoToWallGoToWall  GoToWall1'agent/peoplebot/brains/brain2/TurnRight TurnRight &agent/peoplebot/brains/brain2/TurnLeft TurnLeft+agent/peoplebot/brains/brain2/GoToEndOfWall GoToEndOfWall apoc/units/CSObjectMotors  ObjectInFront ObjectFrontRight ObjectFrontLeft  ObjectRight  ObjectLeft W XY Init BrainZ [\ ]^_ `aagent/BasicSensor b cdagent/BasicEffector ejava/lang/StringBufferRobot = fg fh ij k lm n o*agent/peoplebot/brains/brain2/CSPath1Brain agent/Brainjava/io/Serializable(ILjava/lang/String;II)V)(ILjava/lang/String;IILapoc/UnitObject;)V addElement(Ljava/lang/Object;)V8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Viterator()Ljava/util/Iterator;java/util/Iteratornext()Ljava/lang/Object; startSensorhasNext()Z startEffectorappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;,(Ljava/lang/Object;)Ljava/lang/StringBuffer;toString()Ljava/lang/String; mySensorssetPollingRate(I)VactivateSensordeactivateSensor!-v******Y* Y  * Y * *Y2* Y2**Y2* Y2**Y2* Y2** Yd * Yd** Yd * Yd** Yd * Yd** Yd * Y d** Y!d "* Y!d*"*Y#$* Y#*$*Y%d&* Y%d*&*Y'(* Y'*(*Y)** Y)***Y+6,* Y+6*,*Y)|-* Y.|*-*Y+/* Y+*/*Y01* Y0*1* Y2ȷ 3* Y2*3*Y45* Y6*5* Y7,ȷ 8* Y7,*8*Y6,9* Y6,*9* Y:^ȷ ;* Y:^*;*Y<^=* Y<^*=* Y>ȷ ?* Y>*?*Y@A* Y@*A*BYC,*DEF* YC,*F*GYHd,*DIJ* YHd,*J*KYL,*DMN* YL,*N*OYP,*DQR* YS,*R*TYU6,*DVW* YU6,*W*XYU,*DYZ* Y[,*Z*\Y],*D^_* Y],*_*`Ya^bc* Ya^*c*`Yd2be* Yd2*e*`Yfdbg* Yfd*g*`Yhbi* Yh*i*`Yjbk* Yj*k*`Ylbm* Yl*mNS-" #$%/#152N5a6{89;<>?AB-D@EZGmHJKPQST V!W<YPZk\]_`bce f'k;lVnjoqrtuwxz&{A}U~p3Kf~.A[n******+D*Y* Y  * Y * *Y2* Y2**Y2* Y2**Y2* Y2** Yd * Yd** Yd * Yd** Yd * Yd** Yd * Y d** Y!d "* Y!d*"*Y#$* Y#*$*Y%d&* Y%d*&*Y'(* Y'*(*Y)** Y)***Y+6,* Y+6*,*Y)|-* Y.|*-*Y+/* Y+*/*Y01* Y0*1*BYC+EF* YC*F*GYHd+IJ* YHd*J*KYL+MN* YL*N*OYP+QR* YS*R*TYU6+VW* YU6*W*XY[+YZ* Y[*Z*\Y]+^_* Y]*_*`Yabc* Ya*c*`Yd2,be* Yd2,*e*`Yfd,bg* Yfd,*g*`Yh,bi* Yh,*i*`Yj,bk* Yj,*k*`Yl,bm* Yl,*mD" #$%(:Sf2E_r&AUp,@Ym,G\w  /C^renop*+,q+rN-stu-v,wN-sxy-vnzY{|}*D~p2  "$%&"%+(0)3*?)H,d0*4Z**L+stM,,+v9: ;<= :)?I!*L+st+vBC DC FsPK MF08v;agent/peoplebot/brains/brain2/LookForDoor$1$NewAction.class.t #2 "3 "4 56 78 9: 9; 5< 5= 78 5> 5? 78 5@ 5A 78 5B 5C 78 5D 5E 78 5F 5G 78 5H 5I 78 5J 5K 78 5L MNORSval$meLapoc/UnitComponent; Syntheticthis$0+Lagent/peoplebot/brains/brain2/LookForDoor;B(Lagent/peoplebot/brains/brain2/LookForDoor;Lapoc/UnitComponent;)VCodeLineNumberTableactionPerformed(Ljava/awt/event/ActionEvent;)V SourceFileLookForDoor.java *T () %&U VWX YZ[ \] ^_ `a bW ca dW ea fW ga hW ia jW ka lW ma nW oa pW qar sT5agent/peoplebot/brains/brain2/LookForDoor$1$NewAction NewAction InnerClassesjava/lang/Objectjava/awt/event/ActionListener()V)agent/peoplebot/brains/brain2/LookForDoord_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0Dd_1Td_1d_2Td_2d_3Td_3c_0Tc_0c_1Tc_1c_2Tc_2c_3Tc_3c_3_1Tc_3_1apoc/UnitComponentrepaint "#$%&'()'*+,'**+*,-#./,****  ** ************ *!-. %&.'E(\)s*+,-./01Q "PPK MF0NN1agent/peoplebot/brains/brain2/LookForDoor$1.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$1 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoord_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0D     " **+94** :<" PK MF08.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$2 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoord_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_1D     " **+E4** FH" PK MF0U=NN1agent/peoplebot/brains/brain2/LookForDoor$3.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$3 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoord_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_2D     " **+Q4** RT" PK MF0PNN1agent/peoplebot/brains/brain2/LookForDoor$4.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$4 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoord_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_3D     " **+\4** ]_" PK MF0wiNN1agent/peoplebot/brains/brain2/LookForDoor$5.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$5 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoorc_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_0D     " **+h4** ik" PK MF0?KtJ J ,agent/peoplebot/brains/brain2/GoToWall.class. .@ /A .B??333333 CD CE@ .F .G .H .H .I .J .J .K .L MN OP MQ RS RT UVW XY Z [ \ ]^_ O`a .L 'bc .L .J .d .e fg .Fhijrobot Lagent/peoplebot/PeoplebotAgent;(ILjava/lang/String;II)VCodeLineNumberTable8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)VsetRobot#(Lagent/peoplebot/PeoplebotAgent;)V outfunction(D)Drun()V SourceFile GoToWall.java 37 34 12k lm no pq rs tu vw xy z{ |u} ~   java/lang/StringBuffer 3=State   Near right  Near left java/util/Vector  &agent/peoplebot/brains/brain2/GoToWallapoc/units/CSRobotjava/io/Serializablejava/lang/Mathrandom()Dround(D)JrunningZ chooseTrigger()Ljava/util/Vector; cTriggersLjava/util/Vector; sortTriggers(Ljava/util/Vector;)I true_triggerI chooseObjects(I)Ljava/util/Vector; maxObjectsagent/peoplebot/PeoplebotAgentmyMotorEffector2Lagent/peoplebot/effectors/PeoplebotMotorEffector;0agent/peoplebot/effectors/PeoplebotMotorEffector setVelocity(I)V myLrfSensor,Lagent/peoplebot/sensors/PeoplebotLrfSensor;*agent/peoplebot/sensors/PeoplebotLrfSensor getLrfNew(I)Z getLrfReading(I)Djava/lang/SystemoutLjava/io/PrintStream;append,(Ljava/lang/String;)Ljava/lang/StringBuffer;(I)Ljava/lang/StringBuffer;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vturn elementAt(I)Ljava/lang/Object; setLabels((Ljava/util/Vector;Ljava/util/Vector;I)V completedLapoc/NNObservableBoolean;apoc/NNObservableBooleanset(Z)V!./012345' *,6  3750*,*6 895"*+6 :;5'6<=5H'6  6 6 9 9d696662666 p6 9 9 99!9#6&* ** ******6 9 4.7e **Z*Z96&Y  !6 *A*2*9*9 6 6 Y  !J6"! 6  6 6 Y  !*t#6 Y  !*#6 Y  !6$! 6  6 6 Y  ![*#6 Y  !.*t#Y  !6 &**%&'*(&'*)**+,*-6&i6:N*+ -/035"7%9*:-<1>4@7BBDGELFQGUHYK\M_NiOqP}QRSTVWYZ[]^_a3cAdOe^fbh|iklmnopqstuvxyz!{$}'~/>MQknz~SM>?PK MF0Zama8a85agent/peoplebot/brains/brain2/LookForDoor.java.backuppackage agent.peoplebot.brains.brain2; import nnsim.*; import nnsim.units.*; import agent.peoplebot.*; import agent.peoplebot.sensors.*; import agent.peoplebot.effectors.*; import agent.*; import java.io.*; // implements the lookForDoor node and the find behavior public class LookForDoor extends CSRobot implements Serializable { PeoplebotAgent robot; final int RIGHT = 0; final int LEFT = 1; public LookForDoor(int id, String labeltext, int x, int y) { this(id,labeltext,x,y,null); } public LookForDoor(int id, String labeltext,int x, int y, PeoplebotAgent robot) { super(id,labeltext,x,y); this.robot = robot; } public void setRobot(PeoplebotAgent robot) { this.robot = robot; } // public double actfunction(double netinput) { // return netinput; // } public double outfunction(double activation) { return activation; } public boolean testLrf(int s, double dist) { int i; double temp; boolean test = true; for (i = 0; i < 2; i++) { while (!robot.myLrfSensor.getLrfNew(s)); temp = robot.myLrfSensor.getLrfReading(s); if ((temp > ((float)1.2*dist)) || (temp<((float)0.8*dist))) test = false; } return test; } public boolean isDoor(int dir, double dist, double x_0) { boolean door = false; double x, y; int i = 1, far = 0, angle; double[] readings = robot.myLrfSensor.getLrfReadings(); if (dist < 2.5) return false; while ((readings == null) || (readings[0] == 0.0)) readings = robot.myLrfSensor.getLrfReadings(); if (dir == RIGHT) { angle = (int)Math.atan(1.5/x_0); while (i < angle) { x = readings[i] * Math.cos((double)i*Math.PI/180.0); while (x == 0.0) { readings[i] = robot.myLrfSensor.getLrfReading(i); x = readings[i] * Math.cos((double)i*Math.PI/180.0); } if (Math.abs(x - x_0) < 0.5) { if ( (readings[i] * Math.sin(i)) < 1.0 ) return false; else return true; } i++; } return false; } else { angle = (int)(Math.atan(1.5/x_0)*180.0/Math.PI); System.out.println("ANGLE " + angle + "PROJECTED D " + readings[180-angle] * Math.cos((double)angle*Math.PI/180.0)); while ( i < angle ) { x = readings[180 - i] * Math.cos((double)i*Math.PI/180.0); while (x == 0.0) { readings[180-i] = robot.myLrfSensor.getLrfReading(180-i); x = readings[180-i] * Math.cos((double)i*Math.PI/180.0); } if (Math.abs(x - x_0) < 0.5) { System.out.println("i " + i + "distance computed " + readings[180-i] * Math.sin((double)i*Math.PI/180.0)); if ( (readings[180-i] * Math.sin((double)i*Math.PI/180.0)) < 0.7 ) return false; else return true; } i++; } return false; } } public void goHalfway(int dir, double x_0) { double x, y; int i = 1, far = 0, angle; double[] readings = robot.myLrfSensor.getLrfReadings(); System.out.println("Going halfway"); while ((readings == null) || (readings[0] == 0.0)) readings = robot.myLrfSensor.getLrfReadings(); if (dir == RIGHT) { angle = (int)Math.atan(1.5/x_0); while (i < angle) { x = readings[i] * Math.cos((double)i*Math.PI/180.0); while (x == 0.0) { readings[i] = robot.myLrfSensor.getLrfReading(i); x = readings[i] * Math.cos((double)i*Math.PI/180.0); } if (Math.abs(x - x_0) < 0.5) { y = readings[i] * Math.sin((double)i*Math.PI/180.0); robot.myMotorEffector.go((int)y/2); // may want to sleep here return; } i++; } } else { angle = (int)Math.atan(1.5/x_0); while ( (180 - i) < angle ) { x = readings[180 - i] * Math.cos((double)i*Math.PI/180.0); while (x == 0.0) { readings[180-i] = robot.myLrfSensor.getLrfReading(180-i); x = readings[180-i] * Math.cos((double)i*Math.PI/180.0); } if (Math.abs(x - x_0) < 0.5) { y = readings[180-i] * Math.sin((double)i*Math.PI/180.0); robot.myMotorEffector.go((int)y/2); // may want to sleep here return; } i++; } } } public void run() { final int FORWARD=20; final int LEFT_RIGHT=21; final int NEAR_LEFT=22; final int NEAR_RIGHT=23; final int RIGHT_APPR=24; final int RIGHT_LEAVE=25; final int LEFT_APPR=26; final int LEFT_LEAVE=27; int process_state; int width = 4000; int height = 2500; int maxRange = 5000; float maxDist = (float).500; float minDist = (float).300; int moveDist = 100; float nearDist = (float).600; int turnAngle = 5; int leftLrf = 180; int rightLrf = 0; int speed = 50; int moveTime = 3; int curHeading = 0; int direction = ((int)Math.round(Math.random())) % 2; double front = 5.0, frontRight = 5.0, frontRightRight = 5.0; double frontLeft = 5.0; double frontLeftLeft = 5.0; double left = 5.0; double right = 5.0; double oldLeft = left; double oldRight = right; int current; boolean foundDoor = false; boolean lrfTest = false; boolean set = false; while (true) { while (! running); true_trigger = chooseTrigger(); maxObjects = chooseObjects(true_trigger); process_state = FORWARD; foundDoor = false; while (! foundDoor) { try { Thread.sleep(300); } catch (InterruptedException e) {} switch (process_state) { case FORWARD: if (direction == LEFT) { if (robot == null) System.out.println("ERROR: Robot = NULL"); if (robot.myLrfSensor == null) System.out.println("ERROR: LRF = NULL"); left = 0.0; while ((left == 0.0) || (left == oldLeft)) { // System.out.println("READING LEFT LRF"); left = robot.myLrfSensor.getLrfReading(leftLrf); } System.out.println("left " + left + " oldLeft " + oldLeft); front = robot.myLrfSensor.getLrfReading(90); frontLeft = robot.myLrfSensor.getLrfReading(120); frontLeftLeft = robot.myLrfSensor.getLrfReading(140); /* if ( ( ((front - frontLeft) > 1) && (frontLeft < 1.0) ) || ( ((front - frontLeftLeft) > 1) && (frontLeftLeft < 1.0)) ) { System.out.println("I THINK I FOUND A DOOR " + frontLeftLeft + " " + frontLeft + " " + front); robot.myMotorEffector.turn(-90); completed = true; running = false; return; } */ if ((left - oldLeft) > 1) { System.out.println("Check door on left" + left + " " + robot.myLrfSensor.getLrfReading(rightLrf)); robot.myMotorEffector.stop(); //lrfTest = testLrf(leftLrf,left); lrfTest = isDoor(LEFT,left,oldLeft); if (lrfTest) { //robot.myMotorEffector.go(200); goHalfway(LEFT,left); foundDoor = true; } else left = oldLeft; } oldLeft = left; } else { if (robot == null) System.out.println("ERROR: ROBOT = NULL"); if (robot.myLrfSensor == null) System.out.println("ERROR: LRF = NULL"); right = 0.0; while ((right == 0.0) || (right == oldRight)) { // System.out.println("READING RIGHT LRF"); right = robot.myLrfSensor.getLrfReading(rightLrf); } if ((right - oldRight) > 1) { System.out.println("Check door on right" + right + " " + robot.myLrfSensor.getLrfReading(leftLrf)); robot.myMotorEffector.stop(); //lrfTest = testLrf(rightLrf,right); lrfTest = isDoor(RIGHT,right,oldRight); if (lrfTest) { //robot.myMotorEffector.go(200); goHalfway(RIGHT,right); foundDoor = true; } else right = oldRight; } oldRight = right; } if (! foundDoor) { robot.myMotorEffector.setVelocity(speed); if (robot.myLrfSensor.getLrfNew(90)) { front = robot.myLrfSensor.getLrfReading(90); frontRight = robot.myLrfSensor.getLrfReading(60); frontRightRight = robot.myLrfSensor.getLrfReading(40); frontLeft = robot.myLrfSensor.getLrfReading(120); frontLeftLeft = robot.myLrfSensor.getLrfReading(140); System.out.println("OBStacle avoidance values " + front + " " + frontRight + " " + frontLeft); if ((front <= nearDist) || (frontRight <= nearDist) || (frontLeft <= nearDist) || (frontRightRight <= nearDist) || (frontLeftLeft <= nearDist)) if ( direction == RIGHT ) { robot.myMotorEffector.turn(30); try { Thread.sleep(2000); } catch (InterruptedException e) {System.out.println("INTERRUPTED");} System.out.println("Turning left"); } else if ( direction == LEFT) { robot.myMotorEffector.turn(-30); try { Thread.sleep(2000); } catch (InterruptedException e) {System.out.println("INTERRUPTED");} System.out.println("Turning right"); } } oldLeft = left; oldRight = right; System.out.println("State " + process_state); process_state = LEFT_RIGHT; } break; case LEFT_RIGHT: //System.out.println(robot.myLrfSensor.getLrfNew(rightLrf)); if (set) { if (direction == RIGHT) process_state = NEAR_RIGHT; else process_state = NEAR_LEFT; } else if (robot.myLrfSensor.getLrfNew(rightLrf) && robot.myLrfSensor.getLrfNew(leftLrf)) { System.out.println("IN CODE"); oldRight = right; oldLeft = left; right = 0.0; left = 0.0; while ((right == 0.0) || (left == 0.0)) { // System.out.println("READING BOTH LRFs :-P"); right = robot.myLrfSensor.getLrfReading(rightLrf); left = robot.myLrfSensor.getLrfReading(leftLrf); } System.out.println(right + " " + left); if (right <= left) process_state = NEAR_RIGHT; else process_state = NEAR_LEFT; set = true; } System.out.println("State " + process_state); break; case NEAR_RIGHT: direction = RIGHT; System.out.println("Near right"); if ( right >= maxDist ) process_state = RIGHT_APPR; else if ( right <= minDist ) process_state = RIGHT_LEAVE; else process_state = FORWARD; System.out.println("State " + process_state); break; case RIGHT_APPR: robot.myMotorEffector.turn(-turnAngle); /* if (direction == 0) { left = robot.myLrfSensor.getLrfReading(leftLrf); if ((left - oldLeft) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(leftLrf,left); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else left = oldLeft; } oldLeft = left; } else { right = robot.myLrfSensor.getLrfReading(rightLrf); if ((right - oldRight) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(rightLrf,right); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else right = oldRight; } oldRight = right; } */ process_state = FORWARD; System.out.println("State " + process_state); break; case RIGHT_LEAVE: /* if (direction == 0) { left = robot.myLrfSensor.getLrfReading(leftLrf); if ((left - oldLeft) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(leftLrf,left); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else left = oldLeft; } oldLeft = left; } else { right = robot.myLrfSensor.getLrfReading(rightLrf); if ((right - oldRight) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(rightLrf,right); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else right = oldRight; } oldRight = right; } */ robot.myMotorEffector.turn(turnAngle); process_state = FORWARD; System.out.println("State " + process_state); break; case NEAR_LEFT: direction = LEFT; System.out.println("Near left"); if (left >= maxDist) process_state = LEFT_APPR; else if (left <= minDist ) process_state = LEFT_LEAVE; else process_state = FORWARD; System.out.println("State " + process_state); break; case LEFT_APPR: /* if (direction == 0) { left = robot.myLrfSensor.getLrfReading(leftLrf); if ((left - oldLeft) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(leftLrf,left); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else left = oldLeft; } oldLeft = left; } else { right = robot.myLrfSensor.getLrfReading(rightLrf); if ((right - oldRight) > 1) { robot.myMotorEffector.stop(); lrfTest = testLrf(rightLrf,right); if (lrfTest) { robot.myMotorEffector.go(200); foundDoor = true; } else right = oldRight; } oldRight = right; } */ robot.myMotorEffector.turn(turnAngle); process_state = FORWARD; System.out.println("State " + process_state); break; case LEFT_LEAVE: left = 0.0; while ((left == 0.0) || (left == oldLeft)) { // System.out.println("READING LEFT LRF"); left = robot.myLrfSensor.getLrfReading(leftLrf); } System.out.println("left " + left + " oldLeft " + oldLeft); front = robot.myLrfSensor.getLrfReading(90); frontLeft = robot.myLrfSensor.getLrfReading(120); frontLeftLeft = robot.myLrfSensor.getLrfReading(140); if ((left - oldLeft) > 1) { System.out.println("Check door on left" + left + " " + robot.myLrfSensor.getLrfReading(rightLrf)); robot.myMotorEffector.stop(); //lrfTest = testLrf(leftLrf,left); lrfTest = isDoor(LEFT,left,oldLeft); if (lrfTest) { //robot.myMotorEffector.go(200); goHalfway(LEFT,left); foundDoor = true; } else left = oldLeft; } if (! foundDoor) { robot.myMotorEffector.turn(-turnAngle); System.out.println("State " + process_state); process_state = FORWARD; } break; } } setLabels(maxObjects,true_trigger); completed = true; running = false; } } } PK MF0駄NN1agent/peoplebot/brains/brain2/LookForDoor$6.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$6 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoorc_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_1D     " **+t4** uw" PK MF0)%r"NN1agent/peoplebot/brains/brain2/LookForDoor$7.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$7 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoorc_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_2D     " **+4** " PK MF0INN1agent/peoplebot/brains/brain2/LookForDoor$8.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$8 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoorc_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3D     " **+4** " PK MF0|pRR1agent/peoplebot/brains/brain2/LookForDoor$9.class.3        #$this$0+Lagent/peoplebot/brains/brain2/LookForDoor; Synthetic.(Lagent/peoplebot/brains/brain2/LookForDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileLookForDoor.java % & '() *+, -. /0 12+agent/peoplebot/brains/brain2/LookForDoor$9 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V)agent/peoplebot/brains/brain2/LookForDoorc_3_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3_1D     " **+4** " PK MF0 0-0-/agent/peoplebot/brains/brain2/LookForDoor.class.    ?  ?ffffff ?ٙ @b @9 >   @. ! " #$% !( )*+ $, -./ )01 )2 )3 )4 (, 5 (67 28 (9 ) ): ;< 98 (9 ) )= >? @8 (9 ) @A E8 (9 ) )B CD L8 (9 ) )E FG S8 (9 ) )H IJ Z8 (9 ) )K LM a8 (9 ) )N OP h8 (9 ) " QR ST " SU?33@?陙@?WJD VW VX VY VZ V[?zG{@ !TD- \?!TD-@f?ə@ ]^_ )`a bcd??333333e f?g f?6C- h i j " Vk Vl@@$ m n o o p q q r s " St " u Vv@Y@|3! Vw? " Qx Vy z{ "@@ V| }~ " " "    " z s  s q    mRIGHTI ConstantValueLEFTd_3Dd_2d_1d_0c_0c_1c_2c_3c_3_1d_0TLjava/awt/TextField;d_1Td_2Td_3Tc_0Tc_1Tc_2Tc_3Tc_3_1T(ILjava/lang/String;II)VCodeLineNumberTable8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)VextendComponent()V outfunction(D)DtestLrf(ID)Z calcAngle(I[D)D doorRight([D)[IdoorLeft doorCenter(I[D)[I calcForcegetForce (DDDDD)[D scaleVector(DDD)[DcompTotalForce([D)[Drun SourceFileLookForDoor.java  apoc/UnitComponent5agent/peoplebot/brains/brain2/LookForDoor$1$NewAction NewAction InnerClasses  java/awt/Labeld_0:  java/awt/TextFieldjava/lang/StringBuffer     +agent/peoplebot/brains/brain2/LookForDoor$1  d_1: +agent/peoplebot/brains/brain2/LookForDoor$2d_2: +agent/peoplebot/brains/brain2/LookForDoor$3 +agent/peoplebot/brains/brain2/LookForDoor$4c_0: +agent/peoplebot/brains/brain2/LookForDoor$5c_1: +agent/peoplebot/brains/brain2/LookForDoor$6c_2: +agent/peoplebot/brains/brain2/LookForDoor$7c_3: +agent/peoplebot/brains/brain2/LookForDoor$8c_3_1: +agent/peoplebot/brains/brain2/LookForDoor$9          Found door right at angle   Found left door at angle starting door center Found door center at angle                      java/lang/InterruptedException INTERRUPTED      java/util/Vector   )agent/peoplebot/brains/brain2/LookForDoorapoc/units/CSRobotjava/io/Serializablerobot Lagent/peoplebot/PeoplebotAgent; getComponent()Lapoc/BasicComponent;B(Lagent/peoplebot/brains/brain2/LookForDoor;Lapoc/UnitComponent;)VcompsLjava/util/Vector;(Ljava/lang/String;I)V addElement(Ljava/lang/Object;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;(D)Ljava/lang/StringBuffer;toString()Ljava/lang/String;addActionListener"(Ljava/awt/event/ActionListener;)V.(Lagent/peoplebot/brains/brain2/LookForDoor;)VaddTextListener (Ljava/awt/event/TextListener;)Vagent/peoplebot/PeoplebotAgent myLrfSensor,Lagent/peoplebot/sensors/PeoplebotLrfSensor;*agent/peoplebot/sensors/PeoplebotLrfSensor getLrfNew(I)Z getLrfReading(I)Djava/lang/Mathcossqrtsinasinabsjava/lang/SystemoutLjava/io/PrintStream;(I)Ljava/lang/StringBuffer;java/io/PrintStreamprintln(Ljava/lang/String;)VxsetRobotrandom()Dround(D)JrunningZ chooseTrigger()Ljava/util/Vector; cTriggers sortTriggers(Ljava/util/Vector;)I true_trigger chooseObjects(I)Ljava/util/Vector; maxObjectsgetLrfReadings()[Datanatan2(DD)DmyMotorEffector2Lagent/peoplebot/effectors/PeoplebotMotorEffector;floor0agent/peoplebot/effectors/PeoplebotMotorEffectorsetWheelVelocity([I)Vmin(II)Ijava/lang/Threadsleep(J)Vstop elementAt(I)Ljava/lang/Object; setLabels((Ljava/util/Vector;Ljava/util/Vector;I)V completedLapoc/NNObservableBoolean;apoc/NNObservableBooleanset(Z)V!' *,  W*,***** * ******  -PV* L!Y*+"M+#$Y%&'*(Y)Y*+,*-./0*0,1*02Y*34+5*0'+6$Y7&'*(Y)Y*+,* -./8*8,1*89Y*:;+<*8'+=$Y>&'*(Y)Y*+,*-./?*?,1*?@Y*AB+C*?'*(Y)Y*+,*-./D*D,1*DEY*FG+H*D'+I$YJ&'*(Y)Y*+,*-./K*K,1*KLY*MN+O*K'+P$YQ&'*(Y)Y*+,*-./R*R,1*RSY*TU+V*R'+W$YX&'*(Y)Y*+,*-./Y*Y,1*YZY*[\+]*Y'+^$Y_&'*(Y)Y*+,*-./`*`,1*`aY*bc+d*`'+e$Yf&'*(Y)Y*+,*-./g*g,1*ghY*ij+k*g'/"14#5E6M7\?g@xABCKLMNOWX3Y;ZJbUcfdefnopqrz{|2}:~ITe'L66=*lmn*omp9q(ks(k6" '=@I ,1J, 19,1J,19))kkcu)kkwykgz9 w{k o|9 ))k  kcu)k k ykgz9g}~  g . <Mjy]9 6666*+I+19({k9 6[V(!+1(gkog{k9 +1(koc{k9   g} 66o+1+d1g ]+1 Pd66(#+d1(gkog{k9 !+d1(koc{k9 y++1(gkogyk}9+1(gkogyk}9g vgj a)Y*,,,-,-,+1-,+1-. YOYO  $*4<Zq *HiT9 6666*+I+196[V(!+1(gkog{k9 +1(koc{k9   g} 66o+1+`1g ]+1 Pd6(#+d1(gkog{k9 +d1(koc{k9 6;++1(gkogyk}9+1(gkogyk}9g vgj a)Y*,,,-,-,+1-,+1-. YOYO~ %/7Ul{     %Cd  996 666 *,J *,J,19 6,1)gkogyk}9  g}a, 1,1g}N6,1)gkogyk}9)Y*,,*.6],1,d1gK,1>,d11d6 ,d1)gdkogyk}96fa)Y*, ,,-,-,, 1-,,1-. Y OYO 96,1)gkogyk}9  g}a, 1,1g}N6,1)gkogyk}9)Y*,,*.6],1,`1gK,1>,`11d6 ,`1)g`kogyk}96fa)Y*, ,,-,-,, 1-,,1-. Y OYO0#$ % &'( *',,.2/<0Z1|23459:;<=>$A&.1D;EFHIJKLMNO8P;T@URVjWpXY\I_`ac k7,1J)**)** )gk "hi jkl&q1r5u  tD'g9 )g9   k  kczc9 ko9: kR kRy z {*|/}8~A*Y'kRY)kRF YRYRMuzuo999u9 9 9**+kN,\1-1cR,\1-1cR*w *+kN,\1-1cR,\1-1cR* *Z+kN,\1-1cR,\1-1cR*ww*-+kN,\1-1cR,\1-1cR**+kN,\1-1cR,\1-1cR,N );DMbkt ! ;**<=2>p6999 9 9 9999:99!9#9%9'9)9+6.6/606162*********6/:*m:11 626261:*m:*:*9+21* +Q1+{k93* 3g955o977+cg99\19ykcR\19{kcR1+{k93* 3g955o977 7c977+cg99\19ykcR\19{kcRN1* =+Q1+{k933* g955o977g+c99\19ykcR\19{kcR1+{k933* g955o977 7c977g+c99\19ykcR\19{kcR2*9+1* +O1+{k93* 3g955o977g+g99\19ykcR\19{kcR1+{k93* 3g955o977 7c977g+g99\19ykcR\19{kcR1* +O1+{k933* g955o977c+g99\19ykcR\19{kcR[1+{k933* g955o977 7c977c+g99\19ykcR\19{kcR119 c9@g91!9%!ogk9#V!w9%!wogk9#61=g91!9#!ogk9%!w9#!wogk9%61#1o}k93%1o}k95+z1'* Y5Ž`OY3ŽOç$*Ĵ Y5ŽdOY3ŽO33k55kczoDžȧ:7ʶ+z1'*˴ Y5ŽdOY3ŽOç$*̴ Y5Ž`OY3ŽO33k55kczoDžȧY:7ʶL*ʹ Y5ŽOY3ŽO33k55kczoDžȧ :7ʶ*** * .6..;*Ѵ****׶6/**/P&CFf"1;EMPUfknqtz} "09BM]p~"5 C L U\do!"% &'(&).*9,I-\1k4t5678:;>?@ABCEFP%Q,R4T<WCXLYPZ`^e_s`yefghlmnrs&CS\aBHKQ[y|'R !&29@ELSZahPK MF0R  ?agent/peoplebot/brains/brain2/TurnTowardsDoor$1$NewAction.class.t #2 "3 "4 56 78 9: 9; 5< 5= 78 5> 5? 78 5@ 5A 78 5B 5C 78 5D 5E 78 5F 5G 78 5H 5I 78 5J 5K 78 5L MNORSval$meLapoc/UnitComponent; Syntheticthis$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor;F(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;Lapoc/UnitComponent;)VCodeLineNumberTableactionPerformed(Ljava/awt/event/ActionEvent;)V SourceFileTurnTowardsDoor.java *T () %&U VWX YZ[ \] ^_ `a bW ca dW ea fW ga hW ia jW ka lW ma nW oa pW qar sT9agent/peoplebot/brains/brain2/TurnTowardsDoor$1$NewAction NewAction InnerClassesjava/lang/Objectjava/awt/event/ActionListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoord_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0Dd_1Td_1d_2Td_2d_3Td_3c_0Tc_0c_1Tc_1c_2Tc_2c_3Tc_3c_3_1Tc_3_1apoc/UnitComponentrepaint "#$%&'()'*+,'**+*,-"./,****  ** ************ *!-. $%.&E'\(s)*+,-.01Q "PPK MF0:\bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$1.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$1 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoord_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0D     " **+84** 9;" PK MF0E/bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$2.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$2 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoord_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_1D     " **+D4** EG" PK MF0fbb5agent/peoplebot/brains/brain2/TurnTowardsDoor$3.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$3 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoord_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_2D     " **+P4** QS" PK MF05bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$4.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$4 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoord_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_3D     " **+[4** \^" PK MF09bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$5.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$5 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoorc_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_0D     " **+g4** hj" PK MF00|bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$6.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$6 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoorc_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_1D     " **+s4** tv" PK MF0CMs\bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$7.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$7 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoorc_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_2D     " **+4** " PK MF0=bb5agent/peoplebot/brains/brain2/TurnTowardsDoor$8.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$8 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoorc_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3D     " **+4** " PK MF0ff5agent/peoplebot/brains/brain2/TurnTowardsDoor$9.class.3        #$this$0/Lagent/peoplebot/brains/brain2/TurnTowardsDoor; Synthetic2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileTurnTowardsDoor.java % & '() *+, -. /0 12/agent/peoplebot/brains/brain2/TurnTowardsDoor$9 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V-agent/peoplebot/brains/brain2/TurnTowardsDoorc_3_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3_1D     " **+4** " PK MF0{I.I.3agent/peoplebot/brains/brain2/TurnTowardsDoor.class. % & ' (? ) *?ffffff +?ٙ ,@b -@9 .> / 0@. 1 2 345 !8 9:; $< =>? )@A )B )C )D (< E (FG 2H (I 9 9J KL 9H (I 9 9M NO @H (I 9 PQ EH (I 9 9R ST LH (I 9 9U VW SH (I 9 9X YZ ZH (I 9 9[ \] aH (I 9 9^ _` hH (I 9 2 ab cd 2 ce?33@?陙@?WJD fg fh fi fj fk?zG{@ !TD- l?!TD-@f?ə mno )pq rstuvwx?yz?6C- { |?/v@@$} ~ 2          2 c 2?    @Y f 2 a f @@ f  2  2  2  2p 2 2 2 2 2         2RIGHTI ConstantValueLEFTd_3Dd_2d_1d_0c_0c_1c_2c_3c_3_1d_0TLjava/awt/TextField;d_1Td_2Td_3Tc_0Tc_1Tc_2Tc_3Tc_3_1T(ILjava/lang/String;II)VCodeLineNumberTable8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)VextendComponent()V outfunction(D)DtestLrf(ID)Z calcAngle(I[D)D doorRight([D)[IdoorLeft doorCenter(I[D)[I calcForcegetForce (DDDDD)[D scaleVector(DDD)[DcompTotalForce(I[D)[Drun SourceFileTurnTowardsDoor.java      apoc/UnitComponent9agent/peoplebot/brains/brain2/TurnTowardsDoor$1$NewAction NewAction InnerClasses   java/awt/Labeld_0:   java/awt/TextFieldjava/lang/StringBuffer       /agent/peoplebot/brains/brain2/TurnTowardsDoor$1   d_1: /agent/peoplebot/brains/brain2/TurnTowardsDoor$2d_2: /agent/peoplebot/brains/brain2/TurnTowardsDoor$3 /agent/peoplebot/brains/brain2/TurnTowardsDoor$4c_0: /agent/peoplebot/brains/brain2/TurnTowardsDoor$5c_1: /agent/peoplebot/brains/brain2/TurnTowardsDoor$6c_2: /agent/peoplebot/brains/brain2/TurnTowardsDoor$7c_3: /agent/peoplebot/brains/brain2/TurnTowardsDoor$8c_3_1: /agent/peoplebot/brains/brain2/TurnTowardsDoor$9          Found door right at angle    Distances ALPHA Found left door at angle  blah ending door center starting door center Found door center at angle  test 1         "Discarding one piece of laser data  !  Door left Door front left  Door rightDoor front right      java/lang/InterruptedException INTERRUPTEDBefore completion completing Completing left  Completing front leftCompleting rightCompleting front right java/util/Vector   -agent/peoplebot/brains/brain2/TurnTowardsDoorapoc/units/CSRobotjava/io/Serializablerobot Lagent/peoplebot/PeoplebotAgent; getComponent()Lapoc/BasicComponent;F(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;Lapoc/UnitComponent;)VcompsLjava/util/Vector;(Ljava/lang/String;I)V addElement(Ljava/lang/Object;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;(D)Ljava/lang/StringBuffer;toString()Ljava/lang/String;addActionListener"(Ljava/awt/event/ActionListener;)V2(Lagent/peoplebot/brains/brain2/TurnTowardsDoor;)VaddTextListener (Ljava/awt/event/TextListener;)Vagent/peoplebot/PeoplebotAgent myLrfSensor,Lagent/peoplebot/sensors/PeoplebotLrfSensor;*agent/peoplebot/sensors/PeoplebotLrfSensor getLrfNew(I)Z getLrfReading(I)Djava/lang/Mathcossqrtsinasinabsjava/lang/SystemoutLjava/io/PrintStream;(I)Ljava/lang/StringBuffer;java/io/PrintStreamprintln(Ljava/lang/String;)VsetRobotrunningZ chooseTrigger()Ljava/util/Vector; cTriggers sortTriggers(Ljava/util/Vector;)I true_trigger chooseObjects(I)Ljava/util/Vector; maxObjectsgetLrfReadings()[Datan2(DD)DmyMotorEffector2Lagent/peoplebot/effectors/PeoplebotMotorEffector;floor0agent/peoplebot/effectors/PeoplebotMotorEffectorsetWheelVelocity([I)Vmin(II)Ijava/lang/Threadsleep(J)Vstopturn(I)Vgo elementAt(I)Ljava/lang/Object; setLabels((Ljava/util/Vector;Ljava/util/Vector;I)V completedLapoc/NNObservableBoolean;apoc/NNObservableBooleanset(Z)V!   ' *,     W*,***** * ******   -PV * L!Y*+"M+#$Y%&'*(Y)Y*+,*-./0*0,1*02Y*34+5*0'+6$Y7&'*(Y)Y*+,* -./8*8,1*89Y*:;+<*8'+=$Y>&'*(Y)Y*+,*-./?*?,1*?@Y*AB+C*?'*(Y)Y*+,*-./D*D,1*DEY*FG+H*D'+I$YJ&'*(Y)Y*+,*-./K*K,1*KLY*MN+O*K'+P$YQ&'*(Y)Y*+,*-./R*R,1*RSY*TU+V*R'+W$YX&'*(Y)Y*+,*-./Y*Y,1*YZY*[\+]*Y'+^$Y_&'*(Y)Y*+,*-./`*`,1*`aY*bc+d*`'+e$Yf&'*(Y)Y*+,*-./g*g,1*ghY*ij+k*g' /!03#4E5M6\>g?x@ABJKLMNVW3X;YJaUbfcdemnopqyz{2|:}ITe '  L66=*lmn*omp9q(ks(k6 " '=@I  ,1J, 19,1J,19))kkcu)kkwykgz9 w{k o|9 ))k  kcu)k k ykgz9g}~  g  . <Mjy ]9 6666*+I+19({k9 6[V(!+1(gkog{k9 +1(koc{k9   g} 66o+1+d1g ]+1 Pd66(#+d1(gkog{k9 !+d1(koc{k9 y++1(gkogyk}9+1(gkogyk}9g vgj a)Y*,,,-,-,+1-,+1-. YOYO  $*4<Zq *Hi B9 6666)Y*,+1-,+1-,+<1-,+Z1-,+x1-,+1-,+1-.*+I)Y*,(-.+196[V(!+1(gkog{k9 +1(koc{k9   g} 66o+1+`1g ]+1 Pd6(#+d1(gkog{k9 +d1(koc{k9 6;++1(gkogyk}9+1(gkogyk}9g vgj a)Y*,,,-,-,+1-,+1-. YOYO ! t{   " ( 0Pioq{2@ 996666 *,J *,J)Y*,)-,.,19 6G,1)gkogyk9 ,1,1k,1,1kcudkoyk,1k,1kgz9  g}U L6,1)gkogyk}9)Y*,, -.6,1,d1go,1b,d1Ud6,d1)gdkogyk}9)Y*,,-.6fa)Y*,,,-,-,,1-,,1-. YOYO96#,1)gkogyk9 ,1,1k,1,1kcudkoyk,1k,1kgz9  g}U L6,1)gkogyk}9)Y*,, -.6],1,`1gK,1>,`11d6,`1)g`kogyk}96fa)Y*,,,-,-,,1-,,1-. YOYO 4$% & '() +',I-N/T0^1y234567;<)=A>G?i@AD/GHIK LMN:OrPQRSTXYZ[\*]0`2L>cHdeg L,1J)**)*#* )gk}* )gk  * kl mno"p0r;wFxJ{ tD'g9 )g9   k  kczc9 ko9: kR kR   */8A *Y'kRY)kR  !  $YRYRNuzuo999 u9 9 9**,k:-\11cR-\11cR*w *,k:-\11cR-\11cR$*{wyw *Z,k: *{yw *Z,k:-\11cR-\11cR*ww *-,k:-\11cR-\11cR**,k:-\11cR-\11cR- V )<FPfpz"" G 0<=2>99:99999999: 6!6"6#6(***********6":*m:11 6#6#6$6%6&6'6)*m:6)6*i*1*d1g}O*1*`1g}8**d1*`1cuoR)Y*,*.6)**#*: *: : #O'*:  6$ !$*:  6'*9 L&*:  6% !%*:  6&*9  = . .`lko9 \1ykcR \1{kcR 1 19    c9  @ g9 19ogk9Vw9wogk96(= g9 19ogk9w9wogk96( 1o}k9+ 1o}k9-*´ Y-ĎOY+ĎO++k--kczoȅɧ :/˶̶% */$ *!' *&* !6!!8Ͷ*δö#{$1ж*ѴZӸɧ:+*մd֧'׶*ش YOYOٸɧ:+*۴ YOYOŧx%1ܶ*ݴӸɧ:+*޴d֧E&@߶* YOYOٸɧ:+* YOYO*****6"** YOYO"}7: =CFy & ,69<?BEMPT[^hp|&@CNS_hkpu}      0@MT\!d$k%t&x'+,-23459:;?@y{7|DL $)1=CHW\dy#$7R !629@ELSZahPK MF0*1agent/peoplebot/brains/brain2/GoThroughDoor.class. ^ _ ^ ^@ ^?ffffff ^?ٙ ^@Y ^@4 ^$ ^ ^@      ?6C- ^ ^?!TD- ^ ^ ^ ^ ^ ^ ^ ^ ^ ^@I @ !TD- @ @@  ^ W ^ ^ ^ ^ ^robot Lagent/peoplebot/PeoplebotAgent;RIGHTI ConstantValueLEFTd_2Dd_1d_0c_0c_1c_2(ILjava/lang/String;II)VCodeLineNumberTable8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)VsetRobot#(Lagent/peoplebot/PeoplebotAgent;)V outfunction(D)Dout()Z calcForce(I[D)DgetForce (DDDDD)[D scaleVector(DDD)[DcompTotalForce()[Drun()V SourceFileGoThroughDoor.java pt pq cd gd ij kj lj mj nj oj ab   yjava/lang/StringBuffer p DISTANCES    x {| V1 V2 V3 V4 V5 d Vector ANGLE LEFT?  LEFT back? RIGHT?  RIGHT back? x   java/lang/InterruptedException INTERRUPTED java/util/Vector  +agent/peoplebot/brains/brain2/GoThroughDoorapoc/units/CSRobotjava/io/Serializableagent/peoplebot/PeoplebotAgent myLrfSensor,Lagent/peoplebot/sensors/PeoplebotLrfSensor;*agent/peoplebot/sensors/PeoplebotLrfSensorgetLrfReadingsjava/lang/SystemLjava/io/PrintStream;append,(Ljava/lang/String;)Ljava/lang/StringBuffer;(D)Ljava/lang/StringBuffer;toString()Ljava/lang/String;java/io/PrintStreamprintln(Ljava/lang/String;)Vjava/lang/MathsqrtrunningZ chooseTrigger()Ljava/util/Vector; cTriggersLjava/util/Vector; sortTriggers(Ljava/util/Vector;)I true_trigger chooseObjects(I)Ljava/util/Vector; maxObjectsatan2(DD)DabsmyMotorEffector2Lagent/peoplebot/effectors/PeoplebotMotorEffector;0agent/peoplebot/effectors/PeoplebotMotorEffectorsetWheelVelocity([I)Vmin(II)Ijava/lang/Threadsleep(J)V elementAt(I)Ljava/lang/Object; setLabels((Ljava/util/Vector;Ljava/util/Vector;I)V completedLapoc/NNObservableBoolean;apoc/NNObservableBooleanset(Z)V!^_` abcdefgdehijkjljmjnjoj pqr' *,s  ptrtD*,**** * ****s   ( =Cuvr"*+s wxr's!yzrHJ999 9 9  9 9999966*19*-19Y !" !" !" !#$s* % &'!())5*;,K-Z./{|rs?,1J)* *)* *)o)* *)ks"34 567"869=:}~rtD'g9 )g9 %  k  kc'c9 ko9: kR kRs> ? @*A/B8CADr*Y'kRY)kRsHr *LYRYRM'o9999 9 9**+(k)NY* ,1!" ,1!#$*w *+(k)NY+ -1!" -1!#$,\1-1cR,\1-1cR*, *Z+(k)NY. -1!" -1!#$,\1-1cR,\1-1cR*ww*-+(k)NY/ -1!" -1!#$,\1-1cR,\1-1cR*,*+(k)NY0 -1!" -1!#$,\1-1cR,\1-1cR,s^L MN#W4XFYl[\]^`abcef?gHhQicjklnr $6 6 : 19999996 6 *3**45***678***9:;*<:  \1=cRY?  1!"  1!#$ 1 1@9 Ac9YC !#$g9 1;9Aogk9YD !" !#$w9wAogk9YE !" !#$g9 1;9Aogk9YF !" !#$:w9wAogk9YG !" !#$ 1=oHk9 1=oHk9!HIK9!HIK9!!!gog9!gog9!99*M Y!OYONOk!!kc'oQR :#T$**UVW*XVW*YZ*[\*]HehSs5uvw xy|"}%~(2:FRXb#JQZ^k '+/Her|PK MF0P,=agent/peoplebot/brains/brain2/GoToEndOfWall$1$NewAction.class.t #2 "3 "4 56 78 9: 9; 5< 5= 78 5> 5? 78 5@ 5A 78 5B 5C 78 5D 5E 78 5F 5G 78 5H 5I 78 5J 5K 78 5L MNORSval$meLapoc/UnitComponent; Syntheticthis$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall;D(Lagent/peoplebot/brains/brain2/GoToEndOfWall;Lapoc/UnitComponent;)VCodeLineNumberTableactionPerformed(Ljava/awt/event/ActionEvent;)V SourceFileGoToEndOfWall.java *T () %&U VWX YZ[ \] ^_ `a bW ca dW ea fW ga hW ia jW ka lW ma nW oa pW qar sT7agent/peoplebot/brains/brain2/GoToEndOfWall$1$NewAction NewAction InnerClassesjava/lang/Objectjava/awt/event/ActionListener()V+agent/peoplebot/brains/brain2/GoToEndOfWalld_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0Dd_1Td_1d_2Td_2d_3Td_3c_0Tc_0c_1Tc_1c_2Tc_2c_3Tc_3c_3_1Tc_3_1apoc/UnitComponentrepaint "#$%&'()'*+,'**+*,-#./,****  ** ************ *!-. %&.'E(\)s*+,-./01Q "PPK MF0>+XX3agent/peoplebot/brains/brain2/GoToEndOfWall$1.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$1 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWalld_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_0D     " **+94** :<" PK MF0&XX3agent/peoplebot/brains/brain2/GoToEndOfWall$2.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$2 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWalld_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_1D     " **+E4** FH" PK MF0XX3agent/peoplebot/brains/brain2/GoToEndOfWall$3.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$3 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWalld_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_2D     " **+Q4** RT" PK MF0XX3agent/peoplebot/brains/brain2/GoToEndOfWall$4.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$4 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWalld_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dd_3D     " **+\4** ]_" PK MF0i[XX3agent/peoplebot/brains/brain2/GoToEndOfWall$5.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$5 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWallc_0TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_0D     " **+h4** ik" PK MF0(KXX3agent/peoplebot/brains/brain2/GoToEndOfWall$6.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$6 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWallc_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_1D     " **+t4** uw" PK MF0h6XX3agent/peoplebot/brains/brain2/GoToEndOfWall$7.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$7 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWallc_2TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_2D     " **+4** " PK MF0XX3agent/peoplebot/brains/brain2/GoToEndOfWall$8.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$8 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWallc_3TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3D     " **+4** " PK MF0i\\3agent/peoplebot/brains/brain2/GoToEndOfWall$9.class.3        #$this$0-Lagent/peoplebot/brains/brain2/GoToEndOfWall; Synthetic0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VCodeLineNumberTabletextValueChanged(Ljava/awt/event/TextEvent;)V SourceFileGoToEndOfWall.java % & '() *+, -. /0 12-agent/peoplebot/brains/brain2/GoToEndOfWall$9 InnerClassesjava/lang/Objectjava/awt/event/TextListener()V+agent/peoplebot/brains/brain2/GoToEndOfWallc_3_1TLjava/awt/TextField;java/awt/TextFieldgetText()Ljava/lang/String;java/lang/DoublevalueOf&(Ljava/lang/String;)Ljava/lang/Double; doubleValue()Dc_3_1D     " **+4** " PK MF0ԧ((1agent/peoplebot/brains/brain2/GoToEndOfWall.class.     ?  ?ffffff ?ٙ @b @9 >  @.    !  $! "#$ )%& )' )( )) (! * (+, 2- (.  / 01 9- (.  2 34 @- (.  56 E- (.  7 89 L- (.  : ;< S- (.  = >? Z- (.  @ AB a- (.  C DE h- (.   FG HI  HJ?33@?陙@?WJD KL KM KN KO KP?zG{@ !TD- Q?!TD-@f?ə RST )UV WX@YZ?6C- [ \ K] K^@@$ _  ` a b b c d d e f  Hg  h Ki@Y@|3! Kj  Fk Kl mn@@ Ko pqrs t uv   mw f xy f d z { | }~   `RIGHTI ConstantValueLEFTd_3Dd_2d_1d_0c_0c_1c_2c_3c_3_1d_0TLjava/awt/TextField;d_1Td_2Td_3Tc_0Tc_1Tc_2Tc_3Tc_3_1T(ILjava/lang/String;II)VCodeLineNumberTable8(ILjava/lang/String;IILagent/peoplebot/PeoplebotAgent;)VextendComponent()V outfunction(D)DtestLrf(ID)Z calcAngle(I[D)D wallEndRight([D)[I wallEndLeft calcForcegetForce (DDDDD)[D scaleVector(DDD)[DcompTotalForce([D)[Drun SourceFileGoToEndOfWall.java  apoc/UnitComponent7agent/peoplebot/brains/brain2/GoToEndOfWall$1$NewAction NewAction InnerClasses  java/awt/Labeld_0:  java/awt/TextFieldjava/lang/StringBuffer     -agent/peoplebot/brains/brain2/GoToEndOfWall$1  d_1: -agent/peoplebot/brains/brain2/GoToEndOfWall$2d_2: -agent/peoplebot/brains/brain2/GoToEndOfWall$3 -agent/peoplebot/brains/brain2/GoToEndOfWall$4c_0: -agent/peoplebot/brains/brain2/GoToEndOfWall$5c_1: -agent/peoplebot/brains/brain2/GoToEndOfWall$6c_2: -agent/peoplebot/brains/brain2/GoToEndOfWall$7c_3: -agent/peoplebot/brains/brain2/GoToEndOfWall$8c_3_1: -agent/peoplebot/brains/brain2/GoToEndOfWall$9           Wall end   Found door right at angle Found left door at angle                     java/lang/InterruptedException INTERRUPTED Finishing wall follow  java/util/Vector      +agent/peoplebot/brains/brain2/GoToEndOfWallapoc/units/CSRobotjava/io/Serializablerobot Lagent/peoplebot/PeoplebotAgent; getComponent()Lapoc/BasicComponent;D(Lagent/peoplebot/brains/brain2/GoToEndOfWall;Lapoc/UnitComponent;)VcompsLjava/util/Vector;(Ljava/lang/String;I)V addElement(Ljava/lang/Object;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;(D)Ljava/lang/StringBuffer;toString()Ljava/lang/String;addActionListener"(Ljava/awt/event/ActionListener;)V0(Lagent/peoplebot/brains/brain2/GoToEndOfWall;)VaddTextListener (Ljava/awt/event/TextListener;)Vagent/peoplebot/PeoplebotAgent myLrfSensor,Lagent/peoplebot/sensors/PeoplebotLrfSensor;*agent/peoplebot/sensors/PeoplebotLrfSensor getLrfNew(I)Z getLrfReading(I)Djava/lang/Mathcossqrtsinasinabsjava/lang/SystemoutLjava/io/PrintStream;(I)Ljava/lang/StringBuffer;java/io/PrintStreamprintln(Ljava/lang/String;)Vrandom()Dround(D)JsetRobotrunningZ chooseTrigger()Ljava/util/Vector; cTriggers sortTriggers(Ljava/util/Vector;)I true_trigger chooseObjects(I)Ljava/util/Vector; maxObjectsgetLrfReadings()[Datanatan2(DD)DmyMotorEffector2Lagent/peoplebot/effectors/PeoplebotMotorEffector;floor0agent/peoplebot/effectors/PeoplebotMotorEffectorsetWheelVelocity([I)Vmin(II)Ijava/lang/Threadsleep(J)Vstop elementAt(I)Ljava/lang/Object; setLabels((Ljava/util/Vector;Ljava/util/Vector;I)VactLapoc/NNObservableDouble;restapoc/NNObservableDoubleset(D)V completedLapoc/NNObservableBoolean;apoc/NNObservableBoolean(Z)V! ' *,  W*,***** * ******  -PV* L!Y*+"M+#$Y%&'*(Y)Y*+,*-./0*0,1*02Y*34+5*0'+6$Y7&'*(Y)Y*+,* -./8*8,1*89Y*:;+<*8'+=$Y>&'*(