<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.robojackets.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BenJ</id>
	<title>RoboJackets Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.robojackets.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=BenJ"/>
	<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/Special:Contributions/BenJ"/>
	<updated>2026-04-08T11:52:56Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Base_Station&amp;diff=9065</id>
		<title>RoboCup Base Station</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Base_Station&amp;diff=9065"/>
		<updated>2010-08-31T21:03:48Z</updated>

		<summary type="html">&lt;p&gt;BenJ: Created page with 'The base station works in two modes: host (standalone) and device.  In standalone mode, the base station can be used without a computer to drive robots for mechanical testing and...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The base station works in two modes: host (standalone) and device.  In standalone mode, the base station can be used without a computer to drive robots for mechanical testing and demos.&lt;br /&gt;
&lt;br /&gt;
There are two USB connectors: type A (host) and type B (device).  Only connect one of these at a time.  The data lines are connected between them and nothing will work if both are connected.&lt;br /&gt;
&lt;br /&gt;
The base station can be powered by external power (required for standalone mode) or from the USB B connector.  External power is not required in device mode unless you have a very broken USB hub.&lt;br /&gt;
&lt;br /&gt;
The base station will operate in device mode if the USB B connector has power on reset.&lt;br /&gt;
&lt;br /&gt;
== Antenna ==&lt;br /&gt;
There is an SMA antenna connector.  Always check the antenna connector to be sure you are using an SMA (not RP-SMA) connector.  An RP-SMA connector is mechanically compatible with the base station but will not make an electrical connection.&lt;br /&gt;
The antenna must work at 902MHz.&lt;br /&gt;
&lt;br /&gt;
== Standalone Mode ==&lt;br /&gt;
Connections:&lt;br /&gt;
* Antenna&lt;br /&gt;
* Power: 6-12V DC, center positive, 2.1mm pin&lt;br /&gt;
* Joystick to USB A&lt;br /&gt;
Do not connect USB B.&lt;br /&gt;
&lt;br /&gt;
Standalone mode will work with either the Logitech RumblePad 2 or Logitech Dual Action Gamepad.  These are the two controllers currently supported by soccer as well.&lt;br /&gt;
&lt;br /&gt;
== Standalone Controls ==&lt;br /&gt;
Driving is the same as in soccer:&lt;br /&gt;
* '''Left X''': Rotate.&lt;br /&gt;
* '''Right analog stick''': Translate.&lt;br /&gt;
* '''Left Y + Button 5''': Dribbler.  Release button 5 to latch dribbler speed.&lt;br /&gt;
* '''Button 8''': Kick, full power.&lt;br /&gt;
* '''Button 6''': Chip, full power.&lt;br /&gt;
&lt;br /&gt;
Robot selection is done with the controller:&lt;br /&gt;
* '''Button 10''': Select robot 0&lt;br /&gt;
* '''Buttons 1-4''': Select robots 1-4&lt;br /&gt;
Other robot IDs cannot be driven in standalone mode for lack of buttons.&lt;br /&gt;
&lt;br /&gt;
== Device Mode ==&lt;br /&gt;
This is normally used for competition.&lt;br /&gt;
&lt;br /&gt;
Connections:&lt;br /&gt;
* Antenna&lt;br /&gt;
* Computer to USB B&lt;br /&gt;
Do not connect USB A.&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
The AT90USB1287 has a built-in bootloader ROM which will enumerate as a USB device.  &amp;lt;tt&amp;gt;dfu-programmer&amp;lt;/tt&amp;gt; can be used to program the device.&lt;br /&gt;
&lt;br /&gt;
Inside, there are two buttons.  The one nearest to the LEDs is PROGRAM and the other is RESET.  To program the base station, you must hold PROGRAM while releasing RESET.  You can do this by rolling your finger over the two buttons.&lt;br /&gt;
&lt;br /&gt;
Programming steps:&lt;br /&gt;
* Connect the base station in device mode.&lt;br /&gt;
* Reset the device while holding the PROGRAM button.&lt;br /&gt;
* &amp;lt;tt&amp;gt;make prog&amp;lt;/tt&amp;gt; in the &amp;lt;tt&amp;gt;electrical/base_station/current/fw&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
There is a USB control command to start the bootloader.  This is finicky and depends on the firmware already working, so I don't bother with it.&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;dfu-programmer&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;radio&amp;lt;/tt&amp;gt; must have privileges for the base station.  &amp;lt;tt&amp;gt;software/util/robocup.rules&amp;lt;/tt&amp;gt; should be copied to &amp;lt;tt&amp;gt;/etc/udev/rules.d&amp;lt;/tt&amp;gt; before plugging in the base station to give the proper privileges for both the bootloader and normal operation.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Soccer&amp;diff=9023</id>
		<title>RoboCup Soccer</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Soccer&amp;diff=9023"/>
		<updated>2010-08-03T02:19:49Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The ''soccer'' program encompasses everything that happens between ''vision'' and ''radio''.&lt;br /&gt;
&lt;br /&gt;
==Invocation==&lt;br /&gt;
For command-line help:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./soccer --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All command line options except &amp;lt;tt&amp;gt;-sim&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;-nolog&amp;lt;/tt&amp;gt; can also be changed in the GUI.&lt;br /&gt;
&lt;br /&gt;
If a &amp;lt;tt&amp;gt;logs&amp;lt;/tt&amp;gt; directory is present in the current directory when &amp;lt;tt&amp;gt;soccer&amp;lt;/tt&amp;gt; is started, it will write a log file named with the date and time the program was started.  This can be disabled with the &amp;lt;tt&amp;gt;-nolog&amp;lt;/tt&amp;gt; option.  You typically don't need to log data during simulation.&lt;br /&gt;
&lt;br /&gt;
All options have defaults.  If &amp;lt;tt&amp;gt;soccer&amp;lt;/tt&amp;gt; is started with no arguments, it will start in a configuration suitable for competition.&lt;br /&gt;
&lt;br /&gt;
If no configuration file is given, &amp;lt;tt&amp;gt;soccer&amp;lt;/tt&amp;gt; will read &amp;lt;tt&amp;gt;soccer-sim.cfg&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;soccer-real.cfg&amp;lt;/tt&amp;gt; from the current directory, depending on the &amp;lt;tt&amp;gt;-sim&amp;lt;/tt&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
The typical command line for off-line development and testing is &amp;lt;tt&amp;gt;./soccer -sim&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Operation==&lt;br /&gt;
&lt;br /&gt;
===Team and Field Configuration===&lt;br /&gt;
There are two parameters that must be set before each half of a match: team and defending goal.&lt;br /&gt;
The team (yellow or blue) can be set with the &amp;lt;tt&amp;gt;Field -&amp;gt; Team&amp;lt;/tt&amp;gt; menu.&lt;br /&gt;
The goal we defend, identified by its position in vision space, can be set with the &amp;lt;tt&amp;gt;Field -&amp;gt; Defend Goal&amp;lt;/tt&amp;gt; menu.&lt;br /&gt;
&lt;br /&gt;
The current team is shown next to the status indicator.&lt;br /&gt;
&lt;br /&gt;
===Field View===&lt;br /&gt;
The orientation of the field view can be changed in the View menu to correspond with the physical setup of the computer on a real field.&lt;br /&gt;
&lt;br /&gt;
Team space and vision space coordinate frames can be shown on the field with &amp;lt;tt&amp;gt;View -&amp;gt; Coordinate Frames&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The field view allows you to control the simulator and manual driving:&lt;br /&gt;
* Left-clicking on a robot drags the robot&lt;br /&gt;
* Left-clicking away from a robot places and drags the ball&lt;br /&gt;
* Right-clicking on a robot selects it for manual control (if a joystick is present)&lt;br /&gt;
&lt;br /&gt;
===Tree===&lt;br /&gt;
The tree is automatically generated from Packet::LogFrame using Google Protocol Buffers' reflection mechanism.  By default, non-repeated messages are expanded and repeated messages are not.  There are options in the context menu to expand and collapse items.&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
There is a circular buffer of recent log data even if no log file is being created.  You can use the log controls to move through this data and see the recent history of the game.  The amount of log data available for instant replay is shown in the status bar.&lt;br /&gt;
&lt;br /&gt;
The field view and tree can show either live or historical data.  All controls showing historical data have a red outline.  Some controls, such as the Plays tab and the status label, only show live data.&lt;br /&gt;
&lt;br /&gt;
*Use the playback rate slider to move through recorded data: center is stopped, left is backwards, and right is forwards.  The display stops when you start moving the playback slider or when you click on the pause button.&lt;br /&gt;
*Use the &amp;lt;tt&amp;gt;Next Frame&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Previous Frame&amp;lt;/tt&amp;gt; buttons to step through data.&lt;br /&gt;
*Use the &amp;lt;tt&amp;gt;Live&amp;lt;/tt&amp;gt; button to continuously see current data.&lt;br /&gt;
&lt;br /&gt;
===Status Indicator===&lt;br /&gt;
There is a status indicator in the upper right corner of the main window.  Its text and color indicates the readiness of the whole system for competition.  If everything is ready for a real match, the indicator will show &amp;lt;span style=&amp;quot;background:#00FF00&amp;quot;&amp;gt;COMPETITION&amp;lt;/span&amp;gt;.  Otherwise, the indicator will be red for serious system problems or yellow for configuration problems.  It will never be green except when the entire system is ready to run.&lt;br /&gt;
&lt;br /&gt;
===Manual Driving===&lt;br /&gt;
You must have a compatible gamepad connected for manual driving.  We recommend the Logitech Cordless Rumblepad 2 or its wired equivalent.&lt;br /&gt;
&lt;br /&gt;
Select a robot either by right-clicking on it in the field view (must be on this soccer's team) or selecting its shell ID in the &amp;lt;tt&amp;gt;Manual&amp;lt;/tt&amp;gt; combobox.&lt;br /&gt;
&lt;br /&gt;
Controls:&lt;br /&gt;
* Button 1 starts autonomous operation&lt;br /&gt;
* Button 3 stop autonomous operation (manual driving still works)&lt;br /&gt;
* The D-pad allows precise direction control at full speed&lt;br /&gt;
* The right analog stick's X-axis is rotation&lt;br /&gt;
* The left analog stick controls translation&lt;br /&gt;
* Holding button 7 (lower left shoulder) lets you control the roller with the right analog stick's Y-axis&lt;br /&gt;
* Pressing button 5 (upper left shoulder) saves or restores the current roller speed&lt;br /&gt;
* Pressing button 8 (lower right shoulder) fires the kicker at full power when the ball is detected&lt;br /&gt;
&lt;br /&gt;
==Communications==&lt;br /&gt;
Simulation and real-robot operation are essentially the same.  They differ only by the type of network communication used.&lt;br /&gt;
&lt;br /&gt;
* Real vision and referee data uses UDP multicast.&lt;br /&gt;
* Simulated vision data is sent as two separate copies to different UDP unicast ports on &amp;lt;tt&amp;gt;localhost&amp;lt;/tt&amp;gt;.  This avoids the need to configure local multicast or broadcast.&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;tt&amp;gt;software/common/Network.hpp&amp;lt;/tt&amp;gt; for details.&lt;br /&gt;
&lt;br /&gt;
There are provisions for two radio channels to allow two teams to play with the same hardware and software components.  The radio channel is shown above the team indicator.  There is currently no provision for changing channels on the robots, so this is only useful in simulation.  This is an electronics (firmware) upgrade item.&lt;br /&gt;
&lt;br /&gt;
==Major Components==&lt;br /&gt;
; [[World Modeling]] : Develops models of the world based on available information from multiple systems&lt;br /&gt;
; [[Robocup StateID | StateID]] : Assigns semantic labels to game states to aid in behavior selection&lt;br /&gt;
; Gameplay : Plays and Behaviors. Play selection and behavior definitions.&lt;br /&gt;
; [[Motion]] : Low level robot planning and motion control&lt;br /&gt;
&lt;br /&gt;
; [[Robocup Play Development HOWTO]] : How to add plays to the system so they can be compiled and used&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Simulator&amp;diff=9022</id>
		<title>RoboCup Simulator</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Simulator&amp;diff=9022"/>
		<updated>2010-08-03T01:41:32Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The simulator, &amp;lt;tt&amp;gt;soccsim&amp;lt;/tt&amp;gt;, is used heavily for off-line development and testing.  It provides the same interfaces as &amp;lt;tt&amp;gt;ssl-vision&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;radio&amp;lt;/tt&amp;gt;, allowing &amp;lt;tt&amp;gt;soccer&amp;lt;/tt&amp;gt; to run in (nearly) the same way for simulation and real operation.&lt;br /&gt;
&lt;br /&gt;
==Invocation==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./soccsim [-c &amp;lt;config file&amp;gt;] [--ui] [--sv]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no configuration file is given, it will use &amp;lt;tt&amp;gt;simulator.cfg&amp;lt;/tt&amp;gt; in the current directory.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;--ui&amp;lt;/tt&amp;gt; displays a GUI that is really only useful for debugging the geometry given to the physics engine.&lt;br /&gt;
* &amp;lt;tt&amp;gt;--sv&amp;lt;/tt&amp;gt; causes the simulator to send data to the &amp;lt;tt&amp;gt;ssl-vision&amp;lt;/tt&amp;gt; multicast address.  &amp;lt;b&amp;gt;Do not use this on a competition network!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
* No noise.&lt;br /&gt;
* Only outputs data for one camera.  Ball-occlusion simulation is still done as if there were two cameras.&lt;br /&gt;
* No carpet effects such as loss of traction and variable height.&lt;br /&gt;
* Only partial simulation of robot status in RadioRx packets.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=9015</id>
		<title>RoboCup Simulator Execution</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=9015"/>
		<updated>2010-08-03T00:50:56Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The easiest way to get started using the software is to make use of the simulator, which will be most useful for developing much of the actual system.  The first scenario will start a simulator with a single robot, and the second scenario will start two teams with referee control.&lt;br /&gt;
&lt;br /&gt;
All of the commands on this page assume you are in the &amp;lt;i&amp;gt;software/run&amp;lt;/i&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
== Single-team Simulator Use ==&lt;br /&gt;
In this case, we will only drive one team.  The other team's robots will remain stationary.&lt;br /&gt;
&lt;br /&gt;
=== Starting the Simulator ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./soccsim [-c &amp;lt;config file&amp;gt;]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If no configuration file is given, it will use &amp;lt;i&amp;gt;default.cfg&amp;lt;/i&amp;gt; in the current directory.  Currently, &amp;lt;i&amp;gt;default.cfg&amp;lt;/i&amp;gt; creates two full teams.&lt;br /&gt;
&lt;br /&gt;
You can kill the simulator with Ctrl-C.&lt;br /&gt;
&lt;br /&gt;
=== Starting one team ===&lt;br /&gt;
In another terminal, in the &amp;lt;i&amp;gt;software/run&amp;lt;/i&amp;gt; directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./soccer -sim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The status indicator in the upper right corner should be yellow and show SIMULATION.&lt;br /&gt;
&lt;br /&gt;
You can now issue internal referee commands.  Either use the shortcut buttons at the top of the window for the most common commands (they have tooltips) or go to the Referee tab for a complete set of commands.&lt;br /&gt;
&lt;br /&gt;
== Starting two teams ==&lt;br /&gt;
Start another soccer program exactly like the first one.  Don't use the referee buttons yet - the two soccers won't stay in sync.&lt;br /&gt;
Set the second soccer to run the blue team (&amp;lt;b&amp;gt;Field&amp;lt;/b&amp;gt; -&amp;gt; &amp;lt;b&amp;gt;Team Color&amp;lt;/b&amp;gt; -&amp;gt; &amp;lt;b&amp;gt;Blue&amp;lt;/b&amp;gt;) and defend the opposite goal (&amp;lt;b&amp;gt;Field&amp;lt;/b&amp;gt; -&amp;gt; &amp;lt;b&amp;gt;Defend Goal&amp;lt;/b&amp;gt; -&amp;gt; &amp;lt;b&amp;gt;Vision +X&amp;lt;/b&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You must use the SSL referee box to control two soccers at once.&lt;br /&gt;
&lt;br /&gt;
If you are not connected to a network, you must add a multicast route:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../util/mcast_route lo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can reverse this later with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
../util/mcast_route&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
but the route will typically be removed by your network manager when you get a real network connection.&lt;br /&gt;
&lt;br /&gt;
Now start the SSL referee box:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./sslrefbox&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The referee buttons in both soccers should now be grayed out and the &amp;lt;i&amp;gt;Use external referee&amp;lt;/i&amp;gt; checkbox should be checked.  If you have previously changed this checkbox manually, you will need to check it.&lt;br /&gt;
&lt;br /&gt;
You can now use the SSL referee box to issue commands to both soccers at once.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8705</id>
		<title>RoboCup Simulator Execution</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8705"/>
		<updated>2010-01-31T22:23:24Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The easiest way to get started using the software is to make use of the simulator, which will be most useful for developing much of the actual system. For these instructions, you will need to be in a terminal in your robocup folder (/robocup/software/trunk).  The first scenario will start a simulator with a single robot, and the second scenario will start two teams with referee control.&lt;br /&gt;
&lt;br /&gt;
== Before starting the simulator ==&lt;br /&gt;
To avoid flooding the network with data from your simulator, we have a script to reroute some networking processes.  You will need to follow these instructions once before running the simulator, but the setting will remain correct until you reboot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./doc/mcast_route lo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Single-team Simulator Use ==&lt;br /&gt;
In this case, we will only drive one team, the other team's robots will just remain stationary&lt;br /&gt;
&lt;br /&gt;
=== Starting the Simulator ===&lt;br /&gt;
We will start the simulator to run in a terminal.  You can run the soccsim executable without parameters to get a small explanation of the correct arguments, if necessary.  Note that you can choose from the config files in the SoccSim/config/ folder to try different scenarios.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ./SoccSim/bin&lt;br /&gt;
./soccsim -c ../config/two_teams.xml &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the simulator should report that it is running.  To stop the simulator, kill the process by typing Ctrl-C in the terminal where you started it.&lt;br /&gt;
&lt;br /&gt;
=== Starting the soccer interface ===&lt;br /&gt;
Start a new terminal to run soccer from and use the following commands.  This will start the soccer engine using the simulation configuration file (soccer/config/sim.xml) and using the yellow team (use -b for blue team).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd [robocup root]/soccer/bin&lt;br /&gt;
./soccer -y -c ../config/sim.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now see the GUI for the soccer program.  To to a simple check to ensure that everything is working, you want to enable a play to run.  Go to the plays tab and select &amp;quot;testBasicAttack&amp;quot; from the list, then click the green check button (Force Start) in the upper left of the GUI.  You should see one robot go to the goal (because goalie is enabled by default), and another robot drive at the ball and start kicking.  &lt;br /&gt;
&lt;br /&gt;
== Using the Soccer interface ==&lt;br /&gt;
There's a lot of data available in the GUI to make debugging the robots easier.  The best place to look if you want to see what the robots are doing is in the tree view tab, where all of the data logged or passed through the system is shown in realtime.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8704</id>
		<title>RoboCup Simulator Execution</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8704"/>
		<updated>2010-01-31T22:23:00Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The easiest way to get started using the software is to make use of the simulator, which will be most useful for developing much of the actual system. For these instructions, you will need to be in a terminal in your robocup folder (/robocup/software/trunk).  The first scenario will start a simulator with a single robot, and the second scenario will start two teams with referee control.&lt;br /&gt;
&lt;br /&gt;
== Before starting the simulator ==&lt;br /&gt;
To avoid flooding the network with data from your simulator, we have a script to reroute some networking processes.  You will need to follow these instructions once before running the simulator, but the setting will remain correct until you reboot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ./doc/mcast_route lo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Single-team Simulator Use ==&lt;br /&gt;
In this case, we will only drive one team, the other team's robots will just remain stationary&lt;br /&gt;
&lt;br /&gt;
=== Starting the Simulator ===&lt;br /&gt;
We will start the simulator to run in a terminal.  You can run the soccsim executable without parameters to get a small explanation of the correct arguments, if necessary.  Note that you can choose from the config files in the SoccSim/config/ folder to try different scenarios.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ./SoccSim/bin&lt;br /&gt;
./soccsim -c ../config/two_teams.xml &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the simulator should report that it is running.  To stop the simulator, kill the process by typing Ctrl-C in the terminal where you started it.&lt;br /&gt;
&lt;br /&gt;
=== Starting the soccer interface ===&lt;br /&gt;
Start a new terminal to run soccer from and use the following commands.  This will start the soccer engine using the simulation configuration file (soccer/config/sim.xml) and using the yellow team (use -b for blue team).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd [robocup root]/soccer/bin&lt;br /&gt;
./soccer -y -c ../config/sim.xml -p ../playbooks/Default.pbk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now see the GUI for the soccer program.  To to a simple check to ensure that everything is working, you want to enable a play to run.  Go to the plays tab and select &amp;quot;testBasicAttack&amp;quot; from the list, then click the green check button (Force Start) in the upper left of the GUI.  You should see one robot go to the goal (because goalie is enabled by default), and another robot drive at the ball and start kicking.  &lt;br /&gt;
&lt;br /&gt;
== Using the Soccer interface ==&lt;br /&gt;
There's a lot of data available in the GUI to make debugging the robots easier.  The best place to look if you want to see what the robots are doing is in the tree view tab, where all of the data logged or passed through the system is shown in realtime.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8460</id>
		<title>RoboCup Simulator Execution</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Simulator_Execution&amp;diff=8460"/>
		<updated>2009-10-11T18:56:41Z</updated>

		<summary type="html">&lt;p&gt;BenJ: /* Running Under Simulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running Under Simulation ==&lt;br /&gt;
* Reroute the multicast packets - this is to keep your simulator from flooding any network you are on with vision packets.&lt;br /&gt;
** Starting from the software/trunk folder&lt;br /&gt;
** cd doc/&lt;br /&gt;
** ./mcast_route lo [requires root password]&lt;br /&gt;
* Start the simulator itself with a configuration to describe how many robots it starts with.  There are multiple configurations available in the SoccSim/config folder, but two_teams will provide the default for most soccer applications.&lt;br /&gt;
**cd SoccSim/bin&lt;br /&gt;
**./soccsim -c ../config/two_teams.xml&lt;br /&gt;
* At this point, there is a small wireframe display of the field with robots, but it isn't particularly interactive.  To actually do robot control and soccer playing, you will need to create instances of soccer for each team.  &lt;br /&gt;
**Starting from the previous step&lt;br /&gt;
**cd ../../soccer/bin&lt;br /&gt;
**./soccer -b -c ../config/sim.xml&lt;br /&gt;
*** This command starts soccer with the blue team (-b) flag, the robot configuration for the simulator.  To specify the other team, use -y instead of -b.  The sim config should be used whenever the simulator is used.&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Radio_2009&amp;diff=6812</id>
		<title>RoboCup Radio 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Radio_2009&amp;diff=6812"/>
		<updated>2008-09-10T17:49:45Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Bandwidth=&lt;br /&gt;
* 90Hz cycles =&amp;gt; 11ms period.&lt;br /&gt;
* 250kbaud maximum.  The radio can do 500kbaud with some modulation types, but we can not assume that this will be the final choice.&lt;br /&gt;
** Raw: 347 bytes per period, less 23 bytes for VCO calibration time.  324 bytes usable.&lt;br /&gt;
* 12 bytes overhead per packet&lt;br /&gt;
** 4 bytes preamble (recommended by datasheet, 2 bytes minimum)&lt;br /&gt;
** 4 bytes sync (recommended by datasheet, 2 bytes minimum)&lt;br /&gt;
** 1 or 2 bytes padding for error correction (payload must be an odd number of bytes before padding)&lt;br /&gt;
** 2 bytes CRC&lt;br /&gt;
** Separate overhead for forward and reverse packets&lt;br /&gt;
* Maximum packet size is 255 bytes, excluding FEC padding and CRC.&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
Need to consider a reliable communication protocol for performing robot configuration&lt;br /&gt;
&lt;br /&gt;
* Radio configuration&lt;br /&gt;
* PID loops&lt;br /&gt;
* etc...&lt;br /&gt;
&lt;br /&gt;
This is not done often, but a host-side application for this would be nice.&lt;br /&gt;
&lt;br /&gt;
=Channels=&lt;br /&gt;
* A small number of channel configurations (8-16?) should be stored on the robot for scanning.  Would prefer EEPROM on MCU for this.  Should not require JTAG flash to change these.&lt;br /&gt;
** Channel config includes bit rate, modulation, power, etc.  Everything can be configured per channel.&lt;br /&gt;
** These *will* change during competition.  Expect frequent changes during setup as other teams go online and crowd us out.&lt;br /&gt;
** Too many possible channels to scan in an acceptable amount of time.&lt;br /&gt;
* Each robot will scan for the host among the channels it knows on power-on and when it has received no radio data in some period of time (5s?).&lt;br /&gt;
** Expect to wait at least 3 radio cycles (33ms) on each channel.  If we miss three forward packets in a row, either the host is on another channel or the channel is unusable.&lt;br /&gt;
* Not sure how to select a channel for standalone mode.&lt;br /&gt;
** Use last channel assigned by host, stored on the base&lt;br /&gt;
** Select with joystick&lt;br /&gt;
** Clear Channel Assessment (find lowest noise among configured channels)&lt;br /&gt;
&lt;br /&gt;
=Scanning=&lt;br /&gt;
Looking for robots that are turned on.&lt;br /&gt;
* This should be done per request of the host. Most likely during a ''stop/halt'' in gameplay because we do not reverse channel data then.&lt;br /&gt;
* Should be able to change a robot on the field without touching the computer.&lt;br /&gt;
&lt;br /&gt;
=Protocols=&lt;br /&gt;
==Forward==&lt;br /&gt;
&lt;br /&gt;
==Reverse==&lt;br /&gt;
Under normal operating conditions the reverse channel has several different modes of operation. &lt;br /&gt;
&lt;br /&gt;
# Gameplay Mode&lt;br /&gt;
#* Slow Update: All robots are reporting back every ''nth robot'' fast loop interval.&lt;br /&gt;
#* Fast Update: Only one robot is reporting back, but is reporting every fast loop.&lt;br /&gt;
# Fast Engineering data&lt;br /&gt;
# Slow Engineering data&lt;br /&gt;
&lt;br /&gt;
===Information Types===&lt;br /&gt;
There are three types of information that need to come back over the reverse channel. They are in order of priority.&lt;br /&gt;
&lt;br /&gt;
====Gameplay====&lt;br /&gt;
Gameplay information needs to be updated frequently and is critical to good gameplay.&lt;br /&gt;
* Ball Presence&lt;br /&gt;
* Capacitor Voltage&lt;br /&gt;
&lt;br /&gt;
====Fast Engineering====&lt;br /&gt;
These are things that we want to know periodically, but are not updated very quickly or are not critical to gameplay.&lt;br /&gt;
* Battery Health/Voltage&lt;br /&gt;
* RSSI&lt;br /&gt;
&lt;br /&gt;
====Slow Engineeting====&lt;br /&gt;
Items that do not change at all or change very slowly during a match.&lt;br /&gt;
* Board serial number&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup_Radio_2009&amp;diff=6811</id>
		<title>RoboCup Radio 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup_Radio_2009&amp;diff=6811"/>
		<updated>2008-09-10T17:38:10Z</updated>

		<summary type="html">&lt;p&gt;BenJ: /* Channels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Configuration=&lt;br /&gt;
Need to consider a reliable communication protocol for performing robot configuration&lt;br /&gt;
&lt;br /&gt;
** Radio configuration&lt;br /&gt;
** PID loops&lt;br /&gt;
** etc...&lt;br /&gt;
&lt;br /&gt;
This is not done often, but a host-side application for this would be nice.&lt;br /&gt;
&lt;br /&gt;
=Channels=&lt;br /&gt;
* A small number of channel configurations (8-16?) should be stored on the robot for scanning.  Would prefer EEPROM on MCU for this.  Should not require JTAG flash to change these.&lt;br /&gt;
** Channel config includes bit rate, modulation, power, etc.  Everything can be configured per channel.&lt;br /&gt;
** These *will* change during competition.  Expect frequent changes during setup as other teams go online and crowd us out.&lt;br /&gt;
** Too many possible channels to scan in an acceptable amount of time.&lt;br /&gt;
* Each robot will scan for the host among the channels it knows on power-on and when it has received no radio data in some period of time (5s?).&lt;br /&gt;
** Expect to wait at least 3 radio cycles (33ms) on each channel.  If we miss three forward packets in a row, either the host is on another channel or the channel is unusable.&lt;br /&gt;
* Not sure how to select a channel for standalone mode.&lt;br /&gt;
** Use last channel assigned by host, stored on the base&lt;br /&gt;
** Select with joystick&lt;br /&gt;
** Clear Channel Assessment (find lowest noise among configured channels)&lt;br /&gt;
&lt;br /&gt;
=Scanning=&lt;br /&gt;
Looking for robots that are turned on.&lt;br /&gt;
* This should be done per request of the host. Most likely during a ''stop/halt'' in gameplay because we do not reverse channel data then.&lt;br /&gt;
* Should be able to change a robot on the field without touching the computer.&lt;br /&gt;
&lt;br /&gt;
=Protocols=&lt;br /&gt;
==Forward==&lt;br /&gt;
&lt;br /&gt;
==Reverse==&lt;br /&gt;
Under normal operating conditions the reverse channel has several different modes of operation. &lt;br /&gt;
&lt;br /&gt;
# Gameplay Mode&lt;br /&gt;
#* Slow Update: All robots are reporting back every ''nth robot'' fast loop interval.&lt;br /&gt;
#* Fast Update: Only one robot is reporting back, but is reporting every fast loop.&lt;br /&gt;
# Fast Engineering data&lt;br /&gt;
# Slow Engineering data&lt;br /&gt;
&lt;br /&gt;
===Information Types===&lt;br /&gt;
There are three types of information that need to come back over the reverse channel. They are in order of priority.&lt;br /&gt;
&lt;br /&gt;
====Gameplay====&lt;br /&gt;
Gameplay information needs to be updated frequently and is critical to good gameplay.&lt;br /&gt;
* Ball Presence&lt;br /&gt;
* Capacitor Voltage&lt;br /&gt;
&lt;br /&gt;
====Fast Engineering====&lt;br /&gt;
These are things that we want to know periodically, but are not updated very quickly or are not critical to gameplay.&lt;br /&gt;
* Battery Health/Voltage&lt;br /&gt;
* RSSI&lt;br /&gt;
&lt;br /&gt;
====Slow Engineeting====&lt;br /&gt;
Items that do not change at all or change very slowly during a match.&lt;br /&gt;
* Board serial number&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=User:BenJ&amp;diff=2943</id>
		<title>User:BenJ</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=User:BenJ&amp;diff=2943"/>
		<updated>2006-07-02T16:18:14Z</updated>

		<summary type="html">&lt;p&gt;BenJ: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Name:''' Ben Johnson&lt;br /&gt;
&lt;br /&gt;
'''E-mail:''' [mailto:circuitben@gmail.com circuitben@gmail.com]&lt;br /&gt;
&lt;br /&gt;
'''Web site:''' [http://www.circuitben.net www.circuitben.net]&lt;br /&gt;
&lt;br /&gt;
'''Major:''' Computer Engineering&lt;br /&gt;
&lt;br /&gt;
'''Phone:''' (404) 642-0329&lt;/div&gt;</summary>
		<author><name>BenJ</name></author>
		
	</entry>
</feed>