I have written, and continue to write, a number of different user interfaces
to interact with MicroSeeker. Below are screenshots from some of these user
interfaces, with some descriptive text of what is going on. All of these user
interfaces are in Squeak, and all but the first are Morphic, running on a Squeak
3.7 image.
You can click on most of the screenshots for full-size versions.
 |
First off, here's a screenshot of
the MVC GUI window that runs on the Axim PDA when it is inside the sub. I push
the "Start Mission" button, close up the sub, and it will run whichever
mission I have selected each time I point my TV remote at the sub and push a
button. I have a slight variation of this window, which also runs a remote
command facility, so I can command the sub over an 802.11 wireless link.
Note that the wireless link does not work under water at all. This is a
screenshot from my laptop, but the window is identical when it runs on the
PDA. |
 |
When I'm running at a pool, and
I'm using the remote command facility, I use this window on my laptop to
choose missions, start & stop missions, and send other commands to the sub.
Both my laptop and the PDA use maClientServer, a SqueakMap project by Chris
Muller, to communicate.
The list at the left is the log, retrieved from a pool test I did
on September 11, 2004 (no pictures from that day). Immediately after every
mission run is done, the software automatically saves the log to the RAM
drive of the PDA, so I can retrieve it later for analysis.
Incidentally, for the true Smalltalk enthusiasts out there, when I push the
"Ping Server" button on this window, it sends "3 + 4" to the PDA, and waits
for the correct response... |
| To the right is a new window I
wrote recently, which allows me to graphically plot and analyze logs from
running either in the sub, or in the simulator. The log to the right is the
same one as is shown in the pool window above. Once again, this is an actual
log from running the sub in a pool... The red circles represent
depth-control finite state machine log entries.
I plan on further enhancing this window, to show more log elements, and
better represent in a visual way how the sub actually operates, both in the
real world and in the simulator.
|
 |
| Here's a log graph analysis of a
simulator run, with a new PID depth controller I am testing. Each line
represents the subs depth and pitch at that particular point in time, along
the timeline on the bottom (depth is the vertical axis). Each green circle
represents a waypoint reached.
The objects in the window (lines and circles) are "live", and when you
mouse over them, the status bar at the bottom is updated with information
about that log entry. The window also auto-scales, both horizontally and
vertically, for the length and max depth of the log entries.
|
 |
 |
Here's one of my simple pool test
missions running in the simulator. The log shown directly above is from
running this mission in the simulator. The mission started near the red
dot (which is actually the last waypoint), and is following the waypoints
clockwise around the circle, and then back to the start position. The map
in the lower left shows a representation of the body of water, and
auto-scales it so that it fits. The pool in this run is 16' wide, and 32'
long, and the scale is 12:1. When the scale is 10:1 or greater, the map
draws an actual picture of the sub, otherwise it draws a simple triangle, as
in the map below (which is a 1:1 scale lake, 400' by 300'). |
 |
And here's my old competition
mission, also running in this simulator. The simulator is completely
detached from the autonomous controller -- it basically puts a hook in at
the very bottom level, where the autonomous controller talks over the serial
port with the PIC hardware. As far as the controller is concerned, it is
controlling the real sub, and getting real sensor feedback, in exactly the
same fashion it would if it were running on the sub.
|
 |
And finally, here is a simple user
interface for when I hook the sub directly to the serial port on my laptop,
without using the PDA. I can drag sliders to control the actuators, and get
real-time visual feedback from the sensors. This is one of my older user
interfaces, but I still use it to debug communication issues between Squeak
and my PIC microcontrollers. |