I was able to finish the cable harness repair job on Zaza Saturday 8/2. It took a few more hours than expected, but gave me the opportunity to clean up a bunch of the other wire management without fear of missing the following weekend's scheduled demo.
The demo on the 9th went as planned, but due to time restrictions we weren't able to do the regularly scheduled Phase IV test. Last weekend we were able to do both the demo, and the Phase IV test and things went quite well. Prior to starting the test, I was able to upgrade the JRE from Sun's 1.4.1, to the recently released 1.4.2 on Zaza2. Improvements in the networking, Java2D and audio code showed noticable reliability and performance increases with the face applet. The map and webcam applets running through the control interface on a remote Redhat 9 laptop also worked quite a bit better. Since ALSA is now supported, it is now possible to run a Sphinx audio capture client onboard to robot at the same time as the face applet.
Since migrating from the original Breezecom 802.11 (FH) WLAN hardware to Wi-Fi, there has been a noticable improvement in the performance of the localizer/planner during Phase IV tests. I attribute this to fewer lost laser scans being sent to the localizer due to bandwith saturation. Zaza no longer inexplicably 'gets lost', or 'gives up' searching for a route to the next target after being blocked by visitors for an extended period of time.
Things with work have settled down a bit, so I was able to spend yesterday working on a few of the outstanding issues with the Phase IV code. After adding the button management and destination announcement code a while back, we noticed a need to better integrate these two. I made some modifications to poslib, and poslibtcx adding some handshaking allowing the robot to announce the list of planned destinations when the robot begins moving, as well as when a user presses a button when the robot is in motion. After stopping at a target destination, the button management behavior changes and will eventually be used to speak additional information about the exhibit the robot is nearest to.
Since the basic operation of the tourguide code is now stable, it is now time to start improving the web-based control interface to allow dynamic map and start position selection to allow the robot to operate in this mode in other areas of the museum without substantial manual tweaking.