Release notes
Mobotware release notes
Release 3.687
Added rhd plugins for Robotti, and adjusted to allow aurobotservers to run on Raspberry/Beaglebone. Raspberry camera now supported (plugin for camera server).
Release 3.648
Simulation is updated with many new features and now compiles and installes on Kalman directly.
Release 3.583
Especially a bugfix for error in unpacking laserscans in auclient, that could crash the client - especially on slow networks. Many version numbers were taken by new experimental plugins.
Release 3.544
Added pixhawk autopilot to the repository, but this is pt not connected to other Mobotware functionality. AURobotServers plugis is now split into current plugins and old plugins, so that depricated or plugins that requires work to be in line with the main baseline gets separated. Also included is a small number of bugfixes and an upgrade of the new graphical client qclient - a byproduct of the AGCO work.
Release 3.523
A large number of warnings removed. qclient now use mouse based pan (click-and-drag) and ctrl-+/ctrl-- to zoom - all on top-view image.
Release 3.519
Added QT based client (gclient) - used by AGCO sensor package. Added terminal emulator to qclient (as from gclient). Added message handling for better support for q- and g-client. Still missing ability to update vars directly from QT-global var tree.
Release 3.466
Improved Qt based client, global variables tree now work, and image display is now stable.
Release 3.461
slightly improved Qt based client (global variables not perfect). Fixed instability error in ucamserver, interrupting connection to clients.
Release 3.433
Added new Qt based client, called qclient (pt. only image-pool display supported - as auclient, but much better potential). This replaces the old gstreamer/opencv display of images.
Release 3.390
Added rhd.h to /usr/local/smr/include (used by some rhd-client development apps, all other development (rhd-plugin, camera-server plugin etc) needs to use the source file tree - i.e. unpack the source tar package). Many of the release versions from 3.258 to 3.390 are rhd-plugins for fieldrobot and other hardware interface rhd-plugins.
Release 3.258
Fixed client so that it can display bayer coded and BW 16-bit images.
Release 3.182
Updated to use gsreamer to display images in client - rather than openCV. New plugin auv4lgst to use video for linux supported cameras as camera source, many, but not Kinect yet. new 3D viewer auview.so.0 - is mostly a 3D version of of audisp.so.0 (use command 'view' rather than 'disp'). Update to localizer to show lines using polygon plugin (aupoly.so.0) on both localizer server and client.
Release 3.120
Updated to allow compile and run on 64 bit version of ubuntu. New plugin auballkz with Kristian Villien og Linzey's bersion of the ballfinder. New aufzclass with (extracted version) of an image fuzzy classifier (takes an image and divides pixels into 4 classes - road, not-road, dark and bright unknown stuff.
Release 3.70
Updated to allow compile on 64 bit version of ubuntu 12.04 - except localizer, fixed issues with MARG interface, so that client close now is detected and shuts down camera and laser server. NB! this is not on all SMRs (as of 28/11-2012), requires version 2012j and smr flash image smrXmobotware20121128 (or add "var core.clientPunkTime=10" added (appended) to /usr/local/etc/mobotware/aukeeper.ini.
Release 3.34
Fixed a number of issues in Kinect plugin (especially when generating PCL clouds) and handling of image size in imagepool.
Release 3.22
New configuration setup - especially in directory config-scripts and main Makefile. Fixed route planner crash-on-second-plan error. Fixed error in conversion of BW images (changed image format of source-image rather than destination).
Release 3.xx
Moved to repository on G-bar
Release 2.1972
For AURS servers, unified command line help files, fixed load-order dependency when copying global variables from one server to another. Implemented destination option when copying variables between servers (see AURS server help). Fixed 'feature' in RHD when using security (priority) option for plugins (with joycontrol), so that update flag for write variables can be used (when joycontrol is in charge).
Release 2.1960 Makefile changes to adapt to default (x)ubuntu version 12.04, opencv and PCL. Inter-server communication improvements (diagnose and recover). Fix in MRC for array write variables. More RHD plugins.
Release 2.1912 Mostly Makefile changes to adapt to default ubuntu/kubuntu version 12.04 - especially the changed file structure of openCV (version 2.3.1), where the header files from version 2.1 no longer is maintained.
Release 2.1902 New point-cloud functions added to kinect plug-in. New method call added to aulobst plug-in to get ransac line segments from laserscan. New tree-finder plug-in added. Net auview plug-in to auclient, to display features in 3D - requires point-cloud library i.e. not on jensen/nyquist. Some other, mostly maintenance, changes.
Release 2.1868
Added a new plugin (aupipi) for ping-pong game with universal robot. Added some parts of boost and other header-only libraries in aurobotservers/trunk/libs for especially aulocalizer, but available for future plugins too.
Release 2.1822 Fixed some errors. Added new plugin (aupcltest) with some testcode using point cloud library. Added plugin (auv4l2) with some (thin) support for video for linux 2 camera - not complete). Added compile options to include PCL (export USE_PCL=1.4) and ROS version of opencv (export OPENCV=2.3.1). Mapbase plugin (mapbase) has now some possibility to search in nested graphs.
Release 2.1797 Fixed an error for LMS100 laser scanner introduced when removing warnings. This version is implemented in the 2012a version.
Release 2.1784 Added CRC to guidemark detection and fixed a number of errors and many "set-but-not-used" warnings (but not all). Moved this version to the new default 2012a version.
Release 2.1704 Removed debug message from png save and fixed replay of image.log file (camset replay). Removed a major memory leak in savePNG (577kB/image), and a few other minor valgrind-issues.
Release 2.1827 Improved kinect use of cam-pool features, remade ballfinder plug-in in just one file (aurobotservers/trunk/plugin/auball).
Release 2.1797 Fixed an error for LMS100 laser scanner introduced when removing warnings. This version is implemented in the 2012a version.
Release 2.1784 Added CRC to guidemark detection and fixed a number of errors and many "set-but-not-used" warnings (but not all). Moved this version to the new default 2012a version.
Release 2.1704 Removed debug message from png save and fixed replay of image.log file (camset replay). Removed a major memory leak in savePNG (577kB/image), and a few other minor valgrind-issues.
Release 2.1694 Fixed crash, when unloading camera server, fixed error when loading bayer-coded png-images (filename BGGRname.png etc.). New bayer-to-rgb conversion utility.
Release 2.1625
Added new plugin aucamrectify to rectify images from single camera - using results of a camera calibrationusing the utility cameracalibrate. Restructured directories, so that the source code now follows a more normal pattern:
trunk + libs has sourcecode of libraries (ugen4 etc.) + src has sourcecode of applications (ucamserver etc.) + plugin has sourcecode of plugins (aukinect etc) + build + bin has all executables (ucamserver etc) | + lib has all libraries (aukinect.so.0 etc) + include has all library headerfiles + lib has all linkable libraries (libugen4o.a etc) + util has sime utilityes (cameracalibrate etc.) + examples has som example plugins
To get rid of all the old libraries in the SVN repository, run a:
$ make clean.
Release 2.1563 Fixed error in camera pool, that created 2 logical devices for each camera, resulting in lack of bandwidth and other problems. Images can now be logged and replayed in bayer format (format is part of image name for Bayer coding).
Release 2.1544 Added possibility to get poolimages bayer-coded as gray-level image, where pixel values represent the RGGB values directly (for MATLAB analysis or similar). Use "poolget img=10 fmt=bayer toimg=44" then image 44 is a grayscale of the original bayer coded image.
Release 2.1525 Added support for more than one kinect, sideeffect is errors in the server to auclient push commands - will be fixed soon. improved auservertest (open server port with raw logging function)
Release 2.1468 Fixed an issue imagelog open (see Ucamserver for use). Changed Kinect image format to Bayer - to save processing time. Fixed an issue of image transfer from server to client (image format YUV420 is shown in client af RGB, workaround: e.g. from auclient 'cam' interface: ">> cam poolget img=0 fmt=RGB all" this will convert the YUV420 format to RGB prior to transmission.
Release 2.1441 Fixed an issue with copy to BW image, with missing libiau_lel.a library and an auplan.so.0 error.
Release 2.1435 Fixed an issue when setting parameters to Guppy camera (still requires a second update to see actual parameters in camera). RHD interface plug-in now allow same value to be send twice (set the update value to 1 to trigger update, is then reset to 0 by the system). Added an extra BMP codec to camera server for better streaming to java client.
Release 2.1424 Added monitoring of data flow for if-plugin, byte count and flow rate (bytes/sec). And a few other fixes. NB! this version is not yet loaded to kalman, jensen and nyquist.
Release 2.1422 Mostly update global variables. display of matrices are now truncated to max size 8x7. New commands are available to set variable size and value - see Variables. NB! this version is not yet loaded to kalman, jensen and nyquist.
Release 2.1420
New graph-based route planner. New features to global variables, and this means that plug-ins are no longer binary compatible with older versions of the server, but needs a recompile. - new servers loaded to kalman 21 march 2011 (on jensen and nyquist by 22 march 2011).
Release 2.1404 New feature in global variables, so that these can be logged individually and can (be set to) hold a time series of the updates to the variable, e.g. if the variable is a sensor (say a 3d position), then the update history of the variable will be available (e.g. the last 10000 updates), these updates van then be retrieved as a matrix or an array of doubles for batch analysis. NB! this update will require all plug-ins to be recompiled to be binary compatible (not loaded to jensen/nyquist/kalman yet).
Release 2.1382 Added 2 new plugins, peoplefinder (aupplfinder) by Mikkel Viager and obstacle avoidance (auavoidk) by Kasper Understrup, plus a few other minor changes.
Release 2.1372 Added a demonstration client data handler for binary received data over socket connection (ausockbin).
Release 2.1352
Release for 2011 baseline - some updates to support Guppy and Kinect cameras.
NB! define a link in /usr/bin to make a command g++44 to link to g++, as jensen/nyquist has a version 4.1 compiler and kinect needs a version 4.4 c++ compiler (sudo ln -s /usr/bin/g++ /usr/bin/g++44).
Release 2.1233 Release comptible with old SMR baseline (not Kinect, libdc1394_control, opencv version 0.96 etc). new version removed with defined especially USE_GUPPY and USE_KINECT needs to be added in ucam4, ucamserver and uservermoduletester. Kinect used libfreenect version of 10 dec 2010 - including motor and acc. kinect plugin does not yet support log nor replay. Warnig: image format conversion - toRGB(dest) etc. - may now include a destination image (any library change is a risk).
Release 2.1146
Some improvements to auclient with some ctrl-mouse pan and zoom, and some polygon display additions. UFuncLaserbase now inherits from UFuncPlugBase to include full plug-in capabilities. Does include firewire control version 1.2 in makefiles (not the new 2.2)
Release 2.1113
A few bugfixes to prevent crash during simulation (and replay), where a restart of will make time go backwards. Bugfix in server core may require recompilation of plugins. Improvement in URG laser scanner timestamp - should improve localization during turns. Bugfixes in a number of other places - especially visibility graph (auavoid) plug-in.
Release 2.1053
Minor "perfective maintenance", and update of default version on SMRs. Firewire is not fully updated to ieee1394dc version 2.2 yet.
Release 2.1040
Server cleanup, so that the plug-in class now better handles global variables, but the setCommand(char* cmd_list, char* name, char* description) must now include all 3 parameters. And further, all plugins must be recompiled (sorry). Firewire is not fully updated yet.
Release 2.1014 Excluded FIREWIRE DC1394, as it needs to be updated to version 2.2. A number of minor maintenance issues.
Release 2.995 A few improvements to obstacle avoidance and bug fixes. And fixed a compile problem release 2.984
Release 2.984 The release intended for 3-week period in June 2010. Primarily bug fixes compared to 2.957.
Release 2.957 (5 apr 2010) New template for plugins, it is now possible to make a plug-in using all server capabilitiy in one file (ufuncXXX.cpp + ufuncXXX.h), defining one class with 2 methods (a constuctor and a function implement) - see plug-in structure. Global variables can now be a matrix (e.g. "1 2 3;4 5 6" for a 2x3). Else mostly debugging and improvements to localization and obstacle avoidance.
Release 2.904 (5 apr 2010) Visibility graph based obstacle avoidance (auavoid.so.0) now uses A* for route search and now behaves fine in most cases and is almost ready for field test.
Release 2.870
(24 feb 2010) New RANSAC obstacle detect plugin (aulobst.so.0), new sample ballfinder plugin (aub2.so.0) for 31388 course.
Release 2.847 (13 feb 2010) Improved UVimg tool in auclient (disp command), new default ini-files for camera and laserscanner. Plus a number of bug-fixes.
Release 2.820 (28 jan 2010) Support for LMS100 sick laser scanner, improved obstacle avoidance in the auavoid plug-in, and a number of bug fixes.
Release 2.777 (30 sep 2009) Virtuel 360 degree laser scanner can now be used using the simplified interface, as used in the 'aulmsnear' example (implementing the command near). And a few other corrections - mostly comments and documentation.
Release 2.711
(30 sep 2009) Added especially configuration changes related to Hako tractor.
Release 2.703
(22 sep 2009) Added row-end detection to localizer plug-in, added string parameters to rule plug-in, and a few minor bug-fixes.
Release 2.695
(15 sep 2009) Added localizer functions to allow localization on rows of sparse trees, like the boulevard Højbakkegaard. Changed obstacle avoidance to use less drive commands. New rules to aud update of mapPose and drive on mapPose.
Release 2.611
(14 jul 2009) Added odometry pose origin to other coordinate references (utmPose and mapPose). Removed many mew compiler warnings. Added a new plugin - aumapobst.so.0 - to use known maplines as known obstacles. changed ulmspassable.so.0 to allow horizontal scanning and correlate with known obstacles. A few rule based missions are added in the rule directory subordinate to the bin directory.
Release 2.580
(18 jun 2009) Removed some warnings from gcc 4.3 compiler. Improved rule, map, obstacle avoidance and manoeuvre handling issues.
Release 2.548
(25 may 2009) Improved crash handling and stoppen a memory leak in aurule. Improved log functionality. New utility utmpose2kml - for google display, new aulogrotate utility for renaming of logfiles. New configuration directory in the bin directory, for startup-files for the HAKO tractor.
Release 2.501 and 2.506
(5 may 2009) Sorry, neither of these will compile out of the box. Will be back soon. Use version 2.498.
Release 2.498
(4 may 2009) Same as 2.497, but the configuration files (*.ini) are from the HAKO configuration. The configuration files will in the future be more structured, for the different used configurations.
Release 2.497
(3 may 2009) operational process keeper plugin aukeep.so.0. Better stereo camera exposure. Better alive monitoring for server interfaces.
Release 2.488
(19 apr 2009) new plug-in for RHD interface (read access only). A obj3d plug-in is now modified to do obstacle (and human) detection from stereo camera (almost finished). An auclient called auclientnox is now in the bin directory, intended as server for the web browser robot GUI
Release 2.402
(18 feb 2009) Support for strings in global variables and in the rule based sequencer is now operational.
Release 2.401
(15 feb 2009) Cleanup of code related to AUBallfinder plugin.
Release 2.396
(10 feb 2009) Camera specific files are now isolated to the ucam4 library, this means that other libraries no longer is dependent on especially firewire libraries. (String global variables are still not fully implemented).
Release 2.334 (11 jan 2009) Variables in the global variable system can now hold more than one value, this is also implemented in the rule-based mission execution plugin. Variables can now be specified with an indes, like odoPose.pose[0] for the first element (x) and odoPose.pose[1] as the second (y). The size i defined at the last element used. This should form the base for string variables too, but string variables are not fully implemented yet.
Plugins used to create local variables retaining an integer as a fast way to access the variable. This is now changed (must be changed) and a (UVariable*) must be used as replacement for the index. The addVar(...) function now returns a pointer to the newly added variable. The variable has methods to set and extract the value or values for the variable.
Release 2.214
(7 dec 2008) A few bugfixes to the rule-based mission execution module, and added a case construct to the language syntax
Release 2.210 (1 dec 2008) Update to smr interface module, now supports call to put a multiple user events on MRC command queue, and test if any one of then has occured (new functions: putevent(d), gotevent(d), gotevent(dd), eventflush(), see 'var smr' for on-line description.
Release 2.192 (10 nov 2008) Update to rule based scheduler, the enable/disable can now take a constructed string as parameter. All global variable structures (see var all) can now handle 'varpush struct=...' command (bugfix). MRC watch handling added - creates and updates a smr.watchname.event (+1 on fire) and smr.watchname.time, 'watchname' is the name assigned to the watch.
Release 2.178 (3 nov 2008) The rule based mission scheduler is now renamed from aumission to aurule, to be more intuitively in line with the intension. The XML based rules has changet tag name from <plan ...>...</plan> to <rule ...>...</rule>, and the file extension changed from .mis to .rule. The rule plugin now allows new rules to be added directly from a socket connection, either in one go, if it is not too long (less than 900 characters), or line by line, until finished. See her rule help on line help. The wiki description is updated to describe the rule language. (The new plugin obj3d is intended to extract objects from svs disparity point-cloud - this module is not finished)
Release 2.142 (10 oct 2008) The server prompt should now appear after the issued command is executed, i.e. the '>>' should now appear at an empty line after any printout from the previous command. Mission plans (and sub-plans) may now include an "order=45" number to force a specific order in wich e.g. rules (plans) are fired, to allow conclusions to be drawn in the same iteration.
Release 2.130 (6 oct 2008) The project is now moved to SVN, and the regular tar-ball releases now includes the svn version number, so this version -- 2.130 -- is svn version 130. New client side plugins - aulaserif.so.0, aulaserifscan.so.0 and ucamif.so.0 are added from this version. Load into a server and see 'help' for supported commands and then e.g. 'laserdata help' for more help.
Old repository versions
Release 2.05 (30 sep 2008) Two bugs are fixed in this release: loaded modules do now call the destructor upon unload or server shutdown, and the call to getStaticResource(const char * name,bool mayCreate,bool staticOnly=true) is now working in UFunc* based objects also (and not just in resources).
Release 2.04.2
The release fixes some bugs in the mission scheduler: the occational crash on load of module should now be fixed. A code line with a '<' now gives a warning only. An XML remark -- like '<!-- nnnnn -->' is now fixed, so that the nnnn may include other XML tags, but nested remark tags are not allowed. A few mismatched malloc() free() issues are fixed too, thanks to valgrind (a few issues are still outstanding, relating to readline and openCV).
Release 2.04.1
Mission scheduler is now included and complete to a field-test level. There is likely more than one bug, and one is that server crashes sometimes, when a mission is loaded, and always during server shutdown. report bugs, and I will try to fix as soon as possible.
Release 2.02 Improvements to svs module includes replay, sensor pose handling, projection to 3d point cloud (available for other modules). The svs camera shutter control is corrected for a few bugs, and can now generate a intensity histogram in pool-image 35 and estimate the horizon line. A new plugin 'obj3d' is introduced to use the 3D cloud information - for now it can display horizontal slizes in pool image 26-40 in different projections - some filtering is prepared, but not finished. The mission sequencer is not improved (much) from version 2.01.
Release 2.01 This version improves the SVS stereo camera plugin with horizon estimate as modelled by Fran (KU-LIFE). It includes a new plugin AUCRON that implements a way to execute bash commands regularly, e.g. every second. The commands are implemented in separate threads and may be started with a 'nice' pre-command, so that the commands do not take time from the main server thread. The version has changed a few functions in the server core, and is thus (probably) not compatible with plug-ins compiled against earlier versions.
Release 2.00 This release includes a functional SVS module that is capable of logging sets of stereo images, do illumination control - as suggested by fran, except that the mean value of the intensity histogram is used in place of the highest amplitude. The new mission scheduler plug-in AUMISSION is almost finished in this version, including IF statement ELSE statement structures, but misses a a functional BREAK <level> function.
Release 1.XX The release notes got lost as the old wiki page were hacked - sorry.