Last Friday I finished off work on the first working version
of Zaza's selectmap
CGI. I ended up using the Perl
interface to ImageMagick for auto-generation of the
start position thumbnails, but the performance is
sub-optimal. The antialiasing functions perform poorly. The
image-shearing-based rotation algorithm doesn't work well on
small images, so the robot image looks pretty bad (See here,
here,
and here).
To top it all off, it chews up 100% of the server's CPU for
three seconds while generating images. Yuck...
I also successfully tested auto-generation of the
map.initprobs and map.laserDist.1.1000 files (the
map.planmap file could also be auto-generated, but would
need to be edited to include unseen obstacles for the
obstacleServer.) This simplifies some of the aspects of
running with new maps. The first two files are used by the
localizer system to determine the robot's initial pose on
startup, and to pre-load the Bayesian position estimation
routines of the localizer for faster position estimation
than interpreting a BeeSoft-format map in real-time would
allow. Carmen's new
mapping system/localizer are all integrated, so all the data
included in these files are included in a single map. I look
forward to the simplicity this allows ;)
For some reason Redhat included some changes in the last
eratta version of mod_perl for Apache 1.3.27 that reduced
the scope of subroutine references and broke external
references to poslib functions in the posServer CGI and
C-language wrapper for poslib used by poslibtcx. To work
around this poslib needed to be defined as a package, and
all functions updated to explicitly reference the package
functions. I guess this is the proper way to do it, but I
had to waste a few hours resolving the problem instead of
finishing off the applet/Java plugin auto-generation CGI.
I made a few additions to poslib, and started work on
another CGI (showmap) to add support for auto-content
generation for the map applet frame. When finished, it will
automatically cut-over to the map applet after selectmap
starts up all of the Phase IV components, or a status page
with the time of the next scheduled run. I'll also need to
update posServer to provide functionality for status polling
with the ZazaMap applet.
On another front, the Blue
Cube's batteries are badly sulfated and have been on the
charger in float mode for two weeks with all showing signs
of improvement, but only three of the five returning to a
reasonable voltage in the last few days. Gotta be patient I
guess ;) Last week I added a simple 250ms RC delay to the
'power good' line of the motherboard's power supply which
should help improve startup reliability.