Emss v1.2 Change Log

From emss Framework - iRobot Create C++ Framework

Jump to: navigation, search


========================================================================
=                               CHANGELOG                              =
========================================================================

             emss framework
             http://emssframework.sourceforge.net

========================================================================
=                          Changelog v1.2                              =
========================================================================

* Updated CorrectedFrenetTracker to fix the input speeds to reflect how the hardware would handle this.If the difference in speeds is small, then we mimick the way the hardware ignores these small values...
* First default patch for EmssRobot...
* Fixed save stateOfTheWorld
* Initial implemenation of create_patch.sh script for automatically generated patch files. Not yet fully working, also, it is n^2.
* Refactrored all GUI views to use a common slot registerCore(Core*). This way when the parent interface disconnects/connects or changes core all these class can catch the signal and react appropriately, changing pointers et cetera if needed.\nAdded new views RobotyControlPanel and RobotSpeedGraph.
* Added support for starting from docking station in FingerprintCollector
* Removed the auto-add-task from CoreFactory::createTask().\nFinished implementation of ScriptedTask.
* Changed the AVAILABLE_TASKS definition to reflect class names instead of shortnames.\nAdded initial implementaiton of ScriptedTasks which lets one define a series of tasks to be added.
* Implemented PauseTask and UndockTask
* Added skeleton of PauseTask and UndockTask
* Added skeleton of PauseTask and UndockTask
* Changed WallFollowerWeight Settings
* Fix for uninitialized jx value in DockWeight.
* Built in support to unhook/hook the CollisionWieght when Docking at the appropriate times...
* Added capability to make the EmssController display debugging info every so often.
* Refactored all constants in DockWeight to use emssCore.config.. Updated config files accordingly...
* Added DockIR to Library space from DockWeight.h
* Added 'Custom Move' to TestMoveTask which allows one to define a custom movement over a time or distance. Input is via console.
* Added support for patching .config files (!!!). Just add a emssCOMPONENT.config.patch file along side the config and your settings in .patch will be kept when running the 'ecc' or 'create_configs.sh' command :).
* Updated emssInterface and emssFingerprintCollector to reflect new features in Core: Util::saveWorldState() and Viewport Action 'setrobotdocked'...
* Added support to 'save world state' as Util::saveWorldState().
* Added support to position robot on dock automatically.
* Optimized moved() signal in MovementTracker to not call a triple lock by moving it inside lock of offending methods.
* Fixed minor regression in MovementTracker when calling setTransformation() to send moved() signal.
* Updated ColorMap to do bounds checking on paint - performance improvement
* Fixed Viewport to not display extra padding above maps...
* Added snap-to-wall functionality for moving docking station
* FingerprintCollector now keeps the old map if the loadMap-dialog is cancelled
* Added new TestMoveTask "Straight with Weights" which allows a straight move with distance d (defined in emssCore.config) but with weights.
* Updates to the way Core disconnectes and connects through a GUI interface.
* More updates to DockWeight and DockAndChargeTask
* Updated Core::abort() and refactored to use this method...
* Added support for EmssController to disconnect if iRobot is 'not responding'
* Changed the way COIL gets all sensor data by not allowing it to allocate memory by itself anymore.
* Added debug message when unexpected COIL disconnect happens.
* Cleaned out deprecated methods from COIL.
* Added "Tracker Calibration" to TestMoveTask and developed the forumulas needed to extract error values...
* Added clean disconnect on COIL/Qextserialport when robot suddenly turns off.
* Created new CorrectedFrenetTracker which allows a error value to be set for the left and right wheel.
* Fix in init.sh script to display default component
* Update in DockWeight to use ms instead of tick in turn time.
* Added lost fingerprint navigation settings (svn merge)
* Update in DockWeight to use ms instead of tick in turn time.
* Fix for inaccuracy (!) in wheel offset millimeters measurement! This is such bullshit - how did we not see this earlier!
* New DefaultResources config files to better reflect the standard use case.
* Initial commit of CameraCalibrationTest - not yet functional - just skeleton app
* Fixed bug in NavPathMapObject
* Great new version of DockWeight which seems to dock quite well! Whats missing: special cases where a dock needs to be retried...
* Added capability to emulate docking station interference.
* Updated DockWeight to use a log of all IR signal changes. This allows us to make decisions much smarter...
* Added default KML Physical Map.
* Added debugging info for Docking Algo of IR signal delta values.
* Update of docking algorithm...
* Third generation Dock and Charge algo. This one looks promising...
* Added support for enabling/disabling specific signals in DockingStation object.
* Added new DockingStationView for controlling DockingStation properties on the fly.
* Added support for Charging State and Charging Sources.
* Added emulation for Charging Sources in EmulatedCOIL.
* Homing algorithm for dock weight
* Updated settings.sh to support a default component script-wide. The "all" virtual component is still supported :).
* Removed dependency on 'blocking' actions in DockAndChargeWeight...
* Added property local-orientation in fingerprint message
* Added new "turnaround" action to DockAndChargeWeight
* RemoteControl weight now allows pause and power button to control the core. Pause will interrupt the current task, power will disconnect core.
* Second attempt and docking algorithm...
* Added capability to set starting rotation of robot. 
* Update in DockWeight to use ms instead of tick in turn time.
* Added lost fingerprint navigation settings (svn merge)
* Update in DockWeight to use ms instead of tick in turn time.
* Fix for inaccuracy (!) in wheel offset millimeters measurement! This is such bullshit - how did we not see this earlier!
* New DefaultResources config files to better reflect the standard use case.
* Initial commit of CameraCalibrationTest - not yet functional - just skeleton app
* Fixed bug in NavPathMapObject
* Great new version of DockWeight which seems to dock quite well! Whats missing: special cases where a dock needs to be retried...
* Added capability to emulate docking station interference.
* Updated DockWeight to use a log of all IR signal changes. This allows us to make decisions much smarter...
* Added default KML Physical Map.
* Added debugging info for Docking Algo of IR signal delta values.
* Update of docking algorithm...
* Third generation Dock and Charge algo. This one looks promising...
* Added support for enabling/disabling specific signals in DockingStation object.
* Added new DockingStationView for controlling DockingStation properties on the fly.
* Added support for Charging State and Charging Sources.
* Added emulation for Charging Sources in EmulatedCOIL.
* Homing algorithm for dock weight
* Updated settings.sh to support a default component script-wide. The "all" virtual component is still supported :).
* Removed dependency on 'blocking' actions in DockAndChargeWeight...
* Added property local-orientation in fingerprint message
* Added new "turnaround" action to DockAndChargeWeight
* RemoteControl weight now allows pause and power button to control the core. Pause will interrupt the current task, power will disconnect core.
* Second attempt and docking algorithm...
* Added capability to set starting rotation of robot.
* Updates for flexibility of DockingStation configuration... 
* Updated entire Core GUI classes to use the new icons resource. Looks nice and makes the UI a little easier to use.
* Updated emssInterface application to use the new icons resource... Looks really nice.
* Added new script create_resources which automatically generates any needed .qrc files in DefaultResources...
* Updated FingerprintCollector to use the new icons resource...
* Commit of new FamFamFam icons in DefaultResources
* Added FingerprintDiscoveryTask
* Made navigation class thread-safe
* Resolved bug where robot would still turn while Fingerprinting
* Added new active/inactive capability in Weight
* Minor fix for custom settings in emssFingerprintCollector
* New RemoteControlWeight which allows a remote control to make the weight drive the robot. Nice :).
* Initial implementation of DockWeight. Works in emulation with ellipsoid dock beams...
* Refactored task creation from Util class to CoreFactory. Added new support for creating tasks via TaskEditor and also the emssInterface menubar.
* New RemoteControlWeight which allows a remote control to make the weight drive the robot. Nice :).
* Minor update for build.sh script.
* Added typedef enum oi_irsignal with all IR signal encodings for sensor packet SENSOR_IR_SENSOR
* Working implementation of DockingStation emulation of forcefield, green beam, and red beam.
* Initial code for emulating docking station IR signal. Not yet working.
* Core support for DockingStation object and configuration.
* Fix for dependency problems with scripts. Now the emss Core is automatically built if an application needs it to link against...
* Changed FingerprintNavigationTask. It doesnt requires a strategy parameter. Now decides by itself which strategy should be used.
* Patch to fix scaling of MapObjects when chaning Map_Scale in Core config.
* Minor changes to sensor test for testing of home base values...
* Finaly fixes for GPS converstions in PhysicalMap.
* Updates to world map size and scales...
* Changed precision of gps coordinates
* Initial commit of semi-working code for SelfCorrectingTracker. Line detection fully implemented with optimized further-distance algo, position fixing also implemented, not yet working.
* Changed Color settings for gridSizeMap, Added possiblity to display icons on the viewport toolbar, fingerprintnabigationtask now sends gps-coordinates calculated from the kml file
* Added method for calculate pixel in gps-coordinates
* FingerprintCollector bug fixes
* FingerprintCollector bug fixes
* Changed viewportAction rotate robot - now it uses the angle between the clicked position and the robots position to rotate
* New debug-run script (shortcut edr)!
* Some minor GUI changes
* Changed FingerprintNavigationTask to stop smoother for set a fingerprint
* Changed physical map scale to double
* Updates to the emss scripts. Notably is create_settings.sh which now automatically detects the environment...
* Minor changes to the way COIL opens the serial port...
* Enabled opengl/native switch in FingerprintCollector 
* Initial dock & charge tests (requirements)
* Assembly of second home-base charger (model C)
* Tests second home-base charger (model C)
* Reimplemented WallFollowerWeight and determined new settings
* Added functionality to load KML files and using the including GPS-Data for our offset. As well the coordinates are used to calculate the scale of the map and the physical environment.
* Added color settings to the emssCoreSettings. PhysicalMap uses this information for determine the area.
* Several improvments on the FingerprintCollector
* Initial SelfCorrectingTracker class stub.
* New support for emulating error in a movement tracker by specifying which movementtracker the sensors should query. This is only implemented in EmulatedCOIL. COIL queries the actual sensors of course.
* Ported all for statements to iterators for performance reasons.
* Added new getTransformationFromSpecificTracker() to all tracker modules (preparations for EmulatedCOIL with error injection).
* Minor fix in PhysicalMap color-sensing
* Extract methods from Interface to Util
* Extract methods from Interface to Util
* Create CoreFactory::createGUIView(...) factory method and ported the emssInterface to it
* Support for re-using a single viewport with different maps from different emss cores...
* Added support for MapObject visibility and corresponding GUI
* Add possibility to choose emulation or real
* Initial implementation and integration of TrackerMapObject --> cool
* Minor bugfix for obsolete methods.
* Added sorting to the HeapLoggerView class. Makes things easier to pindown...
* Added functionality to define color used in the PhysicalMap
* Fixed bug in ThreadMonitorWatchdogAction.
* Added visibility and HeapLogger functionality to MapObject objects.
* Removed legacy objects and functions in Core.
* Added internal support for non-thread-safe calculation methods to the Tracker module
* Further Unit Tests for GPSPosition and KMLGroundOverlay...
* Patch to fix GPSPosition metersPerLatitude() and metersPerLongitude()
* Removed MapCanvas
* Initial implementation of KMLGroundOverlay class for reading and parsing kml files. Also included is the unit test. All error handling built in :).
* Renamed HeapLogger methods to better reflect its functionality
* Minor changes to GPS longitude conversion.
* Minor changes to GPS longitude conversion.
* Phase 2 of refactoring "Object" to "MapObject" naming scheme: move to subfolder in Map.
* Phase 1 of refactoring "Object" to "MapObject" naming scheme: renamed all classes and files.
* New zoom functionality when in opengl render mode (Viewport_RenderMode=opengl)!!!
* RemoteInterface messages for task start and finish: "task-finished", "task-started" with "status" and "task" property per difinition at http://wiki.hsr.ch/StefanKeller/wiki.cgi?emssRemoteInterface
* Added viewport widget to fingerprintCollector
* Added new FrenetMovementTracker using frenet.h math class.
* Fixed ExpectedMovementTracker port by cleaning out old unused variables and changing variable names to better suit their functionality...
* Patched Objects for saving and restoring the transformation matrix on paint().
* Added filter for NavPathObject on Trackers to allow more sparse nav paths...
* Initial implementation of frenet.h in Core for new FrenetMovementTracker.
* Added flush() to logging so that crashes will be logged even on startup...
* Final implementation of DiffSteeringTest application. Added GUI elements, and cleaned up all C code to templated C++. The new file frenet.h allows one to calculate the frenet curves with a custom curve function.
* Initial add of FingerprintCollector
* Added mileage statistics to accuracy test task
* Minor changes to structure of wall follower weight
* Minor changes to wall follower
* Added WallFollowerWeight settings
* Reimplementation of WallFollowerWeight
* First revision of diffsteer.h to diffeq.h generic templated class...
* Changed AccuracyTestTask to use Wallfollower...
* Added trafo output of start and end pos in AccuracyTestTask
* Added chmod to emssStartup.sh when automatically building the startup script...
* Added trafo output of start and end pos in AccuracyTestTask
* Removed "Resources" folder from script update.sh
* Changed main function AccuracyTask. No more navigation points are needed