|  |  orca-robotics 
 
 INTRODUCTION
 Overview
 Download and Install
 Quick Start
 Documentation
 Publications
 
 REPOSITORY
 Interfaces
 Components
 Libraries
 Utilities
 Software Map
 
 DEVELOPER
 Tutorials
 Examples
 Dev Guide
 Dashboard
 Wiki
 login/pass: orca/orca
 
 PEOPLE
 Contributors
 Users
 
 
  Project
 Download
 Mailing lists
   |  |  | Developers: as you make substantial changes in the code (add features, fix bugs, etc.), add an item in the section on changes. When the next version is released, this list will be copied into the release notes. 
Documentation
An end-to-end tutorial: create new slice interface, write server, write client. (alex m)Update the 'coordinate systems' image. 
 
libOrcaIce
Should components quit when there's no registry and Orca.RequireRegistry=1? Right now they seem to hang. Look into component thread. (alexm)What happens when the component assumes a config file name but it's not there? e.g. $ teleop (without teleop.cfg). This should be allowed for utilities like probe but components with required interfaces should say something intelligent (alexm). 
 
RegistryView
fix stale display of components (alexm) 
 
laser2og:
The ray-trace stuff in here is currently cut-n-pasted from hydroogmap... Project wide
Build system
Big cleanup of CMake scripts for generating interface code.cmake files updated for cmake 2.6
 New interfaces
 New components
 New utilities
 New libraries
OrcaSim2d (alex b)
Library for simple 2D simulationsOrcaVfh (alex b)
moved out of lovalnav directoryOrcaIfaceString (alex m)
This library is autogenerated from Slice defenitions (.ice files). It contains string utilities for Slice data types (enums, structures, classes).
 Updated interfaces
Image, OgPatch, OgMap, RangeScanner2d, LaserScanner2d, QGraphics2d, Hand, PointCloud.
Using newly defined 'standard' sequences of builtin types (defined in orca.ice)
 Updated components
LocalNav (alex b)
Big overhaul and simpleification
 Updated utilities
slice2string (alex m)
utility for generating string functions from Slice definitions.
 Updated libraries
OrcaIfaceImpl (alex b)
Added QGraphics2dImplAdded PathFollower2dImplOrcaIceGrid
fixed bug which could lead to uncaught exception under certain conditions when setting observers. (alexm)OrcaIce
subscribers to component's Status interface get current status on subscription (alex m)
 Removed
 
IceGridMon utility because the standard IceGrid GUI is very good. Project wide
 
Build system
GearBox distribution is now required to build Orca. Orca uses Gearbox cmake scripts.Default installation directories follow GearBox standard (/usr/local).Renamed all local cmake variables to low case. The names of all CMake macros defined in Orca now start with "ORCA_" (alex m) 
 
Documentation
Cleaned up and shortened the programming style guide. 
 New utilities
 
SnapshotLogger (alex b)
Logs a small window (in time) of information when triggered. 
 Updated interfaces
 
PolarFeature2d (alex b)
Added 'description' which includes the sensor offset. 
 Updated components
 
Gps
Big clean up of the component. All driver functionality moved to Hydro. (alex m)PathPlanner
Big cleanup of the component. Conversion from output of algorithm to orca path improved. (alex b)LaserFeatureExtractor
Moved all the algorithms out to hydro (alex b)Made an important functional change: the component no longer does coordinate transformations. The interface now reports the sensor's offset, leaving it up to clients to do the transformation. This gives more flexibility, eg clients can transform the uncertainty correctly if they want to. (alex b)General overhaul and cleanup (alex b) 
 Updated utilities
 
Orcaview2d (tobi)
Elements in config file can have an arbitrary string, no consecutive numbers required any moreGrid element does not need to be configured any moreFixed bug: multiple deletions of QObjects in component.cppGeneral cleanup 
 Updated libraries
 
libOrcaIce
Component API: removed now rarely used shortcuts to the contents of Context.Much stricter parsing of properties. No changes in API. Throwing exceptions whenever parsing fails (to int and double, vectors of ints and doubles). Fails when characters trail a numeric value. This applies to '.' meaning that parsing fails when a double is given in place of an int. Comments are allowed to trail values. (alex m) 
 
libOrcaProbeFactory
Added button probe (alex b) 
 
libOrcaIceGrid
New function IceGridSession::setObservers() allows delayed observer initialization. (alexm) 
 Removed
 
Imu componentInsGps component (the old version, a complete re-write is currently in the repository). Project wide
 
Build system
Updated style of checking module dependencies, for both components and libraries. Better cmake feedback when a component cannot be built. (alex m)Component containers (Application and Service) are now auto-generated by the build-system (using WRAP_COMPONENT_INTO_APP and WRAP_COMPONENT_INTO_SERVICE cmake macros). This means that for "standard" component there's no need to write main.cpp and service.h/cpp by hand. (alex m)Component itself can also be autogenerated (using WRAP_MAINTHREAD_INTO_APP and WRAP_MAINTHREAD_INTO_SERVICE cmake macros). For "standard" components, this eliminates the need for writing component.h/cpp by hand (alex m)Added modular input of license information (with GLOBAL_ADD_LICENSE macro). (alex m) 
 
 New interfaces
 
Properties (alex b)
Hands out a set of Properties, for use in implementing a centralised properties database. 
 New components
 
 Updated interfaces
 
VehicleDescription (alex b)
For Differential Drive robots, changed description of allowable control region. Rather than defining maxTurnrate as a linear function of speed, put a limit on the maximum lateral acceleration due to centripital force. This gives a hyperbolic relation between speed and turnrate. Better because it has a physical justification.Gps (alex b)
Deleted deprecated 'offset' from GpsDescription. 
 Updated components
 
pathplanner (alex b)
brought closer to modern standards, implemented status.implemented handling of simultaneous arrival of tasks properlysegwayrmp (alex b)
use updated vehicle description. Limit unfeasible commands in netthread, issue a warning to status when commands are limited.lasermon
brought closer to modern standards (alex m)ognode (alex b)
Allowed beginning with a prior map. 
 Updated utilities
 
Probe
added support for Pinger interface (alex m)added support for VelocityControl2d interface (alex b) 
 
IceGridMon
Updated implementation to modern standards. (alex m) 
 Updated libraries
 
libOrcaIce
Component standard interfaces can now be configured from the config file in addition to the programatic method used before. (alex m)Context now returns references to Tracer and Status instead of pointers (alex m)added conversion function to hydroutil::Contextbetter feedback on exceptions caught during component startup. no need to catch them in Component::start() just to print them out. 
Removed deprecated orcaice::PtrProxy (replaced with PtrStore) (alex b) 
Cleaned up reading of properties in orcaice::Application and orcaice::Service (alex b)Added ability to read configuration parameters from network (alex b)Imported toString() and getProperty*() functions related to Orca types defined in orca.h and those included from it. These came form libOrcaObjects. The rest of utility functions related to other Orca the objects stayed in libOrcaObjects and libOrcaIce no longer depens on it. 
 
libOrcaObjects
Got its own namespace -- orcaobj. Exported toString() and getProperty*() functions related to Orca types defined in orca.h and those included from it. These came form libOrcaObjects. The rest of utility functions related to other Orca objects stayed in libOrcaObjects and libOrcaIce no longer depens on it. 
 
libOrcaIceGrid
Rearranged all code by merging two independent implementations of IceGrid admin sessions into two classes. (alex m) 
 Turned Off
Image components and libraries are turned off by default because they do not properly check their dependencies and fail to compile under some circumstances. Hopefully they'll be fixed soon.
 Removed
Imu component. It was never implemented properly and it's component structure was hopelessly obsolete.
 Project wide
 
java build (Jayen Ashar)
Dealt with the fact that gcj only handles '-classpath', not '-cp'. 
 
documentation
orca documentation now links to hydro's (alex m)new tutorial: line-by-line step-through of Brick source code. (alex m)new tutorial: detailed comments on running Brick. (alex m) 
 
build system
looking for Ice installation, first looks in generic dirs: /opt/Ice; /opt/Ice-3; /opt/Ice-3.2 
 New interfaces
 
Button (alex b)
A simple thing you can press remotely, with no feedback. 
 New libraries
 
libOrcaNavUtil (alex b)
Library for conversion between Orca types and HydroNavUtil types. 
 Updated interfaces
 
PolarFeature2d (alex b)
PolarFeature2dData was un-necessarily a class. It's now a struct.FeatureMap2d (alex b)
FeatureMap2d was un-necessarily a class. It's now a struct. 
 Updated components
 
Laser2d
fixed bug made dynamically loaded drivers not to load configuration parameters (alex m)converted source code to modern style (alex m) 
 
LogPlayer
Implemented interactive interface which allows pausing/fast-forwarding/rewinding/etc during log playing (alex b) 
 
Robot2d/SegwayRMP
simplified and improved common code (alex b) 
 
Robot2d
moved hardware drivers to Hydro (alex m)converted source code to modern style (alex m) 
 
SegwayRMP
big overhaul of SegwayRmpDriver (alex b)Added interpretation of pct remaining for CU batteries (alex b)moved hardware drivers to Hydro (alex m)converted source code to modern style (alex m) 
 
GoalPlanner
Added functionality to re-plan when something goes awry (alex b) 
 
Teleop
moved hardware drivers to Hydro (alex m) 
 
PathPlanner
Got rid of that hazardMap malarky -- now only accepts an OG map (alex b) 
 
FaithLocaliser, Gps, LaserFeatureExtractor
converted source code to modern style (alex m) 
 Updated utilities
 
Pinger/Replier
These utilities for measuring communication latencies are working again (alex m) 
 
IcePing
Added command line shortcut '-s' for pinging IceStorm (specifically its TopicManager interface). (alex m)Fixed seg fault with '-f' option when file name is not specified. (alex m)Updated documentation. (alex m) 
 Updated libraries
 
libOrcaIce
fixed bug which made Tracer and Status not to load configuration parameters (alex m)all multi-try functions now accept an optional parameter specifying the name of the subsystem. if this name is provided, Status heartbeat is sent at every attempt. (alex m) 
 
libOrcaLog
Changes for interactive log-playing (alex b) 
 
libOrcaLocalNav
Moved Velocity/Acceleration out into hydronavutil (alex b) 
 
libOrcaIfaceImpl
Fixed bug where interfaces were not removed from the adapter correctly (alex b)Added NotifyingConsumer types (alex b) 
 
libOrcaDef
changed 'orca2' to 'orca' in executable path in generated .xml files (alex m, thanks duncan m.) 
 
libOrcaOgMap
Moved the guts out to Hydro. This is now just a set of conversion functions (alex b). 
 
libOrcaPathPlan
Moved the guts out to Hydro. This is now just a set of conversion functions (alex b). 
 
libOrcaMapLoad
Moved out to Hydro (alex b). 
 Removed
 
mgaconversionlibHydroGeom2dlibHydroGpsUtillibHydroNovatelUtillibHydroOgMaplibHydroPathPlanlibHydroMapLoad
Moved to Hydro (alexb, alexm) Project wide
 
Moved from CVS to SVN version control system. 
 
Created a separate distribution called Hydro for communication-independent code (e.g. hardware drivers and algorithm implementations). Hydro only requires CMake to compile (but is more useful with libIceUtil). Orca requires CMake, Hydro, and Ice. 
 
Added a new keyword for writing .def files. A single line which starts with 'ExternalConfig.*' replaces 2 lines: 'Config.*' + 'Config.*.External=1'. The old syntax is deprecated but will be supported for a while. All .def files in Orca have been updated. (alexm) 
 
Documentation
New tutorial: "Closed-loop control of a robot simulated with Player/Stage" 
 
Build system
only one XML file is now generated from .def file instead of two before (it contains the xml template) 
 New interfaces
 New components
 New utilities
 New libraries
 
libOrcaIceXml (alex m.)
Tools useful for XML parsing. Current contents were extracted from IceGrid code. 
 New examples
 
Brick (alex m)
moved from tests and cleaned up. It's very simple and makes a good first example. 
 
ReactiveWalker (alex m)
resurrected from the sandbox. It's a robot controller similar to Player's randomwalk. 
 Updated interfaces
 
Gps (alex b)
removed GpsMapGrid and GpsTime interfaces. 
 Updated components
 
SegwayRmpUsb
Added correction for the curve which the Segway applies to the commanded turn rate. This is a big improvement, but it's still not 100% right (it's not clear if the MAX_TURNRATE_SCALE is applied internally as well). (alexb, alexm) 
 
Laser2d
Moved all 4 drivers to hydro. 
 Updated utilities
 
Orcaview2d
big overhaul of how paths are stored internally and to files (Tobi)olympic marker is configurable (Tobi)overhaul of paint utils: independence of transformation matrices (Tobi) 
 Updated libraries
 
libOrcaWifi (Tobi)
removed dependence on orca enums before moving to hydro 
 
libOrcaIce
split some of the contents into a new libOrcaIceUtil library. This is done in preparation for decoupling of Ice-dependent components and libs from Ice-independent drivers and algorithm implementations. libOrcaIce depends on libOrcaIceUtil. (alex m.)added function isInterfaceReachable() (alex m.)all multi-try connection functions now have an optional retryNumber parameter. default is -1, i.e. infinite -- same as before. therefore, no changes in existing code are needed. (alex m)renamed function getProvidedTopic() into getProvidedTopicWithTag() and added getProvidedTopicWitString(). These were mostly used internally by libOrcaIce and other utilities. (alex m) 
 
libOrcaMisc
moved Activator to libOrcaIce 
 
libOrcaDef
Added new keyword 'ExternalConfig' (see Project Wide changes above). Fixed bugs in tests. (alexm) 
 
libOrcaObjects
moved general string functions toStringSeq() and toString(vector<string>) to libOrcaIceUtilmoved math defenitions to libOrcaIceUtil 
 
libOrcaIceGrid
added a new session manager with can control the IceGrid registry through its Admin interface. (alex b) 
 
libOrcaDynamicLoad
split up include file into parts for more modular inclusions. added explicit dependence on libdl (which before was included somehow through libIce). added tests which can also server as examples. (alex m) 
 
libOrcaIfaceImpl
the two multi-try subscribe functions now have an optional retryNumber parameter. default is -1, i.e. infinite -- same as before. therefore, no changes in existing code are needed. (alex m)Added constructors that don't rely on a tag but rather take the interface name directly as a string (alex b) 
 
libOrcaLog/libOrcaLogFactory
Huge overhaul of how logging/replaying is done. Note: This is solely an implementation change: log file formats remain the same (and old logs will still play) (alex b) 
 Removed
 Project wide
 
Build system
Modularized cmake scripts which contain dependencies and build preferences. This will allow reduce the number of unintended dependencies.Added experimental support for Python. (ben u.)Stopped using convenience libraries because they were problematic on 64bit systems. (alex m)Fixed CMake bug with ORCA_MOTHERSHIP, it was unusalbe in satellite projects. (thanks John Yamokoski)Added project-wide access to Orca installation directory by adding -DCMAKE_INSTALL_PREFIX (Tobi) 
 New interfaces
 
Pinger (alex b)
Interface for requesting that a host be 'ping'ed. 
 New components
 
ImageServer
fixed bug in figuring out dependencies: opencv installed but low-level libs are not. (alex m) 
 
PingServer
Simple component which will execute 'ping' and report the results when asked over a slice interface. (alex b) 
 New utilities
 
Wall (alex m)
Simulates Orca interfaces. Use it during component development and debugging to easily create 'fake' implementations of standard interfaces. Then plug your component into 'the wall'. 
 New libraries
 
libBros1 (alex m)
C++ implementation of the proposed BROS-I standard. 
 
libOrcaBros1 (alex m)
utility library to convert between BROS-I data structures defined in Slice (libOrcaInterfaces.so) and in C++ (libBros1.so). 
 
libOrcaWall and libOrcaWallFactory (alex m)
Dynamically loadable implementation of the interface simulators used by the Wall utility. 
 
libOrcaPing (alex b)
C++ Wrapper for the 'oping' library: a C library for executing the 'ping' command. 
 
libOrcaLockFile (alex b)
Pulled code for creating lockfiles (for ensuring unique access to resources) out of libOrcaSerial and into separate lib, to allow use elsewhere. 
 New examples
 
PureIcePython (ben u.)
Example of Orca component in Python. 
 Updated interfaces
Localise2d
added getGeometry() which describes the geometry of the localised robot (Tobi)
 Updated components
 
LaserFeatureExtractor (alex b)
Improved Corner and ForegroundPoint detectors. 
 
Laser2d (alex b)
Added SickAcfr driver library. 
 
Gps2Localise2d, FaithLocaliser, SimLocaliser
get vehicle description from odometry interface and relay to localise2d (Tobi) 
 
OgNode/Laser2Og (alex b)
big cleanup. fixed problem where skinny objects are missed. 
 
robot2d/segwayrmp (alex b)
factored out common code into orcarobotdriverutil library.cleaned up robot2d, so exceptions are handled better.fixed threading problem in robot2d which could cause the Ice thread to hang. 
 
gps (Duncan Mercer)
Added support for Garmin GPS units.General cleanup, which broke the old Ashtech driver. 
 Updated utilities
 
Orcaview2d
LocaliseElement gets VehicleGeometryDescription and draws robot properly (Tobi)Lookup table (hazardmap) is installed and accessed from there (Tobi)Hazard map by itself is displayed properly (Tobi)WifiElement: Windows-like interpretation of signal strength is displayed (Tobi) 
 Updated libraries
 
libOrcaWifi
bug fixes for signal strength (Tobi)status reports warnings when signal strength is low (Tobi) 
 
libOrcaNavUtil
added convenience functions for transformations between poses (alex b) 
 
libOrcaIce
added getPropertyAsIntVector/WithDefault() and getPropertyAsDoubleVector/WithDefault() which loads ints and doubles respectively separated by spaces from a cfg file into vector<int> and vector<double> resp. (ben u)added multi-try versions of getInterfaceIdWithString() and getInterfaceIdWithTag() functions. (alex m)changed API for Thread class. isActive() is depricated, isStopping() should be used instead. added isStarted(). The implicit state machine is explained in the documentation. (alex m)added a specialized thread class SafeThread which defines a new entry point called walk() and catches all possible exceptions around it. (alex m)Buffer and PtrBuffer classes now require explicit configuration (depth and buffer type). The latest defaults (infinite depth, circular type) were used at the point of instantiation. (alex m)Renamed Proxy storage class into (hopefully less confusing) Store. Proxy still exists but is depricated. 
 
libOrcaImage
added support for Image interface in image conversion functions. (alex m) 
 
libOrcaObjects
added functions to parse a sequence of int's and double's into an std::vector. (ben u)added support for Image interface. (alex m)mathdefs.h: changed CHECK_LIMITS to CLIP_TO_LIMITS. (alex b) 
 
libOrcaProbeFactory
added support for Image interface. (alex m) 
 
libOrcaQGui2d
PixMap gets repainted if its offset has changed (ben u) 
 
libOrcaLogFactory
added replayer for DriveBicycle interface (ben u)fixed bug which led to unbounded growth in internal buffer sizes in all replayers (michael m) 
 
libOrcaOgMap (alex b)
use doubles instead of floats to represent world coordsmap orcaogmap::OgMap a specific instance of the more general orcaogmap::GenericMap 
 
libOrcaIfaceImpl
added fully-featured Consumer implementations which can subscribe themselves, including multi-try versions. Name cleaning up so that Impl classes of consumer and 'provider' interfaces have similar names and API. (alex m) 
 Removed
 Project wide
 
Build system: changed the order of places where we search for Ice. The new order is this:
specified by env. var. $ICE_HOMEDebian package install point: /usr/standard Ice istall point: /opt/Ice-[VERSION]possible install point when built from source: /usr/local This change simplifies switching between source and package Ice installs. Common situations with outcomes:source install w/env.var -> source installpackage -> packagepackage + source install w/env.var -> source installpackage + source install w/out env.var -> package 
 
Build system
fixed bug which prevented distrib. compilation in external projects (alexm) 
 
Documentation
added tutorial with simple robot teleop in stageadded tutorial on logging interface data in text format 
 New interfaces
 
Image (alexm)
Represents an image source. It is similar to PixMap and Camera. Unlike the other two its defines its main data object as a class. 
 New components
 New utilities
 New libraries
 
libOrcaColourText (alexb, alexm)
Simple text colours on the Linux terminal, using escape-codes. 
 New examples
 
Orca2Yarp (alex m.)
A simple component which connects to both Orca and Yarp systems. 
 
Player2Orca (alex m.)
A simple component which connects to both Player and Orca systems. 
 Updated interfaces
 
DriveBicycle (alex m.)
provides information on the current state of the actuators (speed and steer angle). 
 
Gps (michael m.)
added Novatel-specific position types. 
 
Localise2d (tobi)
got rid of getDataAtTime which was not implemented 
 Updated components
 
FaithLocaliser (tobi)
complete overhaulgot rid off storing history and interpolation 
 
Wifi (tobi)
reading using ioctl only attempted oncebug fix with open sockets 
 
GoalPlanner (tobi)
new config parameter: velocity to reach first waypointfigures out the timing to the first wp and changes subsequent times accordinglylocalisation data is obtained using getData rather than through Icestorm 
 
PathPlanner (tobi)
policy for adding timing to waypoints changed: distances are taken into account 
 
Imu (ben u.)
Added configurable offset between the IMU sensor and the platform. 
 
SegwayRmp
Internal source cleanup. Not using orca:: structures internally. (alex m)Added Peak CAN interface (Duncan Mercer) 
 
Robot2d
Internal source cleanup. Not using orca:: structures internally. (alex m) 
 
LocalNav
Catch exceptions properly on driver initialisation. (alex b) 
 
Laser2d (alex b)
Simplified interaction between component code and driver code.Allowed dynamically-loaded drivers from libraries outside the orca2 distribution.remove SickAcfr (QNX implementation no longer compatible with OrcaSerial) 
 Updated utilities
 
Name change: sysmon -> systemtracermon (alex b)OrcaView2d (tobi)
olympic marker displays properlymore shortcuts for path input addedimproved display of table in main windowProbe: added support for wifi interface (alex b) 
 Updated libraries
 
libOrcaObjects
Bugfixes to 3D transformations in orcaobj/frameutils.cpp (Will Uther)added toIntVector() and toDoubleVector() which parses a string of ints/doubles separated by spaces. (ben u) 
 
libOrcaDef
fixed bug in XML generation: 'external' tag for config was ignored (alexm) 
 
libOrcaIce
added two config properties with the following defaults: Orca.Warn.DefaultProperty=1 and Orca.Warn.FactoryProperty=0. Streamlined and standardized progress reports during component initialization. (alexm)fixed bugs handling negative times in conversions between orca::Time, doubles, durations, and strings. Added more tests. (alexm)Worked around an Ice3.2 bug which occasionally resulted in a deadlock on adapter activation. (alex b)added functions for looped multi-try connections and interface setup. these wrap the existing "single-shot" function e.g. activate(), connectToInterfaceWithTag(), but catch the exceptions which indicate conditions which may change (service unavailability) and try again. (alexm)version info printed out on startup (or with --version) now includes project version, which could be useful for non-orca projects. (alexm)getRequiredTags() and getProvidedTags() now takes an optional string parameter to filter the list of tags by initial text. (alexm) 
 
libOrcaSerial (alex b, duncan)
Big overhaul:
The interface is substantially different, hopefully more sane and consistent and easier to understand. Plus error checking and reporting is improved. Plus lockfiles have been implemented, to prevent concurrent access to a device from multiple instances of orcaserial. 
 
libOrcaIfaceImpl
(for some interfaces) added multi-try function for interface initialization. (alex m) 
 Removed
 Project wide
 
documentation
added a high-level guide on how to start coding (alex m) 
 New interfaces
 New components
 
gps2localise2d (alexb)Imu component has been moved from sandbox to the components directory (ben u) 
 New utilities
 New libraries
 
libOrcaColourText (alexb)
Simple text colours on the Linux terminal, using escape-codes. 
 Updated interfaces
 
PathPlanner
Added an error string (tobi) 
 
Gps
Split into separate interfaces (alex b) 
 
Power
Added a new variable: ChargingState (tobi) 
 
 Updated components
 
 
OrcaView2d:
Redesign of factories and how elements are configured (tobi)Fixed bug with uninitialised platform location (alex b)Fixed bug with waypoint heading tolerances being normalised (alex b)Changed range of entries for pathfollower parameters (tobi)Added feature: connect to all interfaces on given component (tobi) 
 
PathPlanner:
Big re-organisation (alex b, tobi) 
 
 Updated utilities
 
orcaifaceimpl
servers catch AlreadySubscribed exceptions but don't pass them on to clients (tobi)enables clients to try to resubscribe as often as they want 
 
Probe:
Added PathFollower2d probe (alex b) 
 
 Updated libraries
 
orcnavutil:
Changed order of parameters in covpredict (alex b) 
 
orcapathplan:
Allowed for non-uniform costs in skeleton path planning (alex b) 
 
libOrcaIce
direct connections work again (alex m) 
 Removed
 Project wide
 
Compile Options
Under Linux, build with debugging symbols by default (alex b)Compatible with Ice v3.1 and Ice v3.2, but warnings are spewed out for Ice v3.2 (alex b) 
 New interfaces
 
Replay
Remote interface to a log playing process. 
 New components
 New utilities
 
mgaconversion (Tobi)
contains tools to convert from latitude/longitude to MGAsysmon (alex b)
A tool to monitor info/warn/error messages for an entire system. 
 New libraries
 
orcagpsutil (Tobi)
split up orcanavutiladded nmea classes which were with the gps component before 
 Updated interfaces
 
Tracer
Has functions to subscribe just for that componnent, or to all info/warn/errors on a platform. The orcaice::Tracer implementation is updated accordingly (alex b)Status
small changes to improve system monitoring. OrcaIce has been updated accordingly. (alex b)Position2d/3d and Platform2d
Removed these obsolete interfaces (alex b) 
 Updated components
 
SegwayRmp
Added hardware speed limits, set in hardware driver (alex m/b)the RmpUsb driver now corrects for segway's built in speed scaling factor, so that segway will actually drive at the speed specified. (alex m/b)Overhaul of component, error reporting greatly improved (alex b) 
 Updated utilities
 
Orcaview2d
Probe
fixed bug with wrong max number of options (alex m)added support for Gps, Localise2d interfaces (alex b/m)Logger
optinally, tolerates unsupported interface types and formats. also allows disabling replay. (alex m)LogPlayer
CameraReplayer: fixed mem leak and bug to do with skipping images (Alen Alempijevic)IceGridMon
Compatible with Ice v3.2 (alex b) 
 Updated libraries
 
OrcaIce
fixed bug with Tracer not calculating total verbosity (alex m)added ComponentThread to handle transient failures to register Home interface and manage Status (alex b)OrcaNavUtil (Tobi)
added MGA/latitude/longitude functionsOrcaLogFactory (Tobi)
fixed GPS replay bugadded wifi for replayingOrcaIfaceImpl
Interface lifetimes are now independent of the adapter. (This involved an API change). (alex b) 
 Removed
 
drunkrobot and robot2dtester
moved to sandbox as unmaintained, an no longer compile after removal of position2d (alexb) Project wide
 
Interfaces
Data objects in Orca interfaces no longer have to derive from orca::OrcaObject class. Most existing interfaces now use struct's. The following interfaces still use classes RangeScanner2d, LaserScanner2d, FeatureMap2d.Build system
Support for QNX Neutrino real time OSNew CMake macro BUILD_COMPONENT_SOURCES to simplify building both stand-alone component and an IceBox service. Internally it builds a convenience library which cuts down compilation time in half.Defined new CMake variables to establish the local OS: OS_LINUX, OS_QNX, OS_WIN.Documentation
Expanded docco on how to add interfaces and souce code to the project ( orca-robotics.sf.net/orca_doc_devguide.html )Re-did latency tests on new hardware and using structures instead of classes ( orca-robotics.sf.net/orca_doc_performance.html )Dependencies
libOpenCV can now be installed into an arbitrary location (alex m)Global code changes
changed all IceStorm subscriptions to 'twoway' to reduce risk of keeping subscriptions after consumers go down. 
 New interfaces
 
Tracer
Remote access to component's traces, e.g. errors, warning, etc. Separated from the existing Status interface.DriveBicycleDriveDifferentialLogOdometry2d and Odometry3d
Replace Position2d and Position3d which are now obsolete.VelocityControl2d
Replaces Platform2d which is now obsolete.VehicleDescription
Describes physical geometry and dynamic constraints of vehicles (Alex B.)Wifi
Access to wireless signal strength and other wireless network parameters (Tobi)PixMap
Access to a pixmap representation of the world, e.g. background image (Tobi) 
 New components
 
TracerMon (alex m.)
Connects to Tracer interface of a component and displays all trace statements.Wifi (Tobi)
Component that provides wifi informationPixMapLoader (Tobi)
Loads and provides a pixmap 
 New utilities
 
IceGridMon (alex m.)
Connects to the registry and installs itself as the Registry and Node Observer. Then all registry and node events are traced locally or re 
 New libraries
 
orcaifaceimpl
Optional convenience library providing default implementations of some Orca interfaces (Alex B.)orcawifi
Library for getting wireless information in Linux (Tobi) 
 Updated interfaces
 
Wifi, OgMap (Tobi)
enums instead of const int for typesPathFollower2d (Tobi)
Added get and set methods for activation time and enabled-state.Platform2d
Obsolete. Use VelocityControl2d or DriveBicycle in new code.Position2d
Obsolete. Use Odometry2d in new code.Position3d
Obsolete. Use Odometry3d in new code. 
 Updated components
 
FeatureMapLoader
Added error tracing (alex m.)Robot2d and SegwayRmp
Now using new interfaces Odometry2d and VelocityControl2d. (alex m.)Teleop (alex m.)
Support for configurable display, input, and network drivers.Added support for VelocityControl2d and DriveBicycle interfaces.General source overhaul. Using orcaice::EventQueue's.added a 'secret' feature to send step inputs 10%,20%...100% of max speed with one key stroke. it's disabled by default.joystick driver applies a quadratic curve to the inputLocalNav
General cleanup, plus made to respect timings in paths. (Alex B.)Uses new interfaces Odometry2d and VelocityControl2d. (Tobi)Use vehicle details obtained using VehicleDescription (Alex B.)ImageServer
Cleaned up code and documentation. Using standard interface implementation (alex m.)Gps
FakeDriver can spit out configured coordinates, useful for debugging (Tobi) 
 Updated utilities
 
Probe (alex m.)
now using orcaice::EventQueue for cross-thread communication.OrcaView2d (Tobi)
Interaction with pathfollower2d interface more sophisticated:
paths can be specified as missions with associcated waiting times and behaviourstiming is displayed online by an "olympic marker"All interfaces on a given platform can be connected.Prohibit connecting the identical interface twice.Changed some guielements to be displayed in iconic view, ie independent on zoom configuration. 
 Updated libraries
 
libOrcaIce
an overhaul of tracing and status facilities. (alex m.)added EventQueue class using events defined as Ice smart pointers. (alex m.)implementation of Home interface now returns dynamic information about component's interfaces. Works for automatically when using std connect utilities, an option exist for custom Home data manipulation. (alex m.)made 'component started' trace optional with Orca.PrintComponentStarted property. This is to be nice to nonstandard display drivers, e.g. those using ncurses.libOrcaLogFactory
added support for Odometry2d/3d interfaces (alex m.)added support for Wifi interface (Tobi)added support for Imu interface (Tobi)libOrcaProbeFactory (alex m.)
added support for Status and Tracer interfaceslibOrcaDef (alex m.)
removed Home object registration from XML descriptor. It's done programatically from libOrcaIce.fixed bug in xml template generation which caused 60sec delay in component shutdown from within IceGrid.libOrcaOgMapLoad (Tobi)
renamed to libOrcaMapLoadadded functionality to load pixmaps Project wide
 
Build system
split utils directory into libs and utils. components are not affected.Documentation
added graphical UML symbol to documentation pages of all components.added separate listing of libs and utils.fixed broken doxygen references. 
 New components
 
InsGps (Ben Upcroft)
hardware component for Inertial navigation systems which include IMU and GPS units. It provides raw imu data, gps data, and position3d data. It is also planned that Localise3d interface will also be provided. At present, the Novatel Span INS system is supported. 
 New utilities
 
def2cfg, def2xml, def2xmltemplate, def2definverted, def2uml
the first 4 are renamed from generatecfg, etc. and moved into a separate dir.new utility def2uml for creating images of UML symbols from component definition files. 
 New libraries
 
libOrcaDynamicLoad
factored out the dynamic loading stuff into a separate library (Alex B.)libOrcaQUml (Alex M.)
port of old libQorcaUml from QCanvas to QGraphicViewlibOrcaQt
factored out commonly used Qt elements. Currently contains the Orca icon and aboutOrca() function. 
 Updated interfaces
 
PolarFeature2d
Added two fields to all features: pFalsePositive and pTruePositive, to characterise feature detection reliability (Alex B.)Allowed different feature representations using inheritence (Alex B.)FeatureMap2d
Added field to each feature: pExists. Quantifies the certainty that the feature is really there. (Alex B.)Allowed different feature representations using inheritence (Alex B.)OgMap interface
added a user-defined type, useful to determine the type of certainty grid map, e.g. hazard, ogmap, motion etc. (Tobi) 
 Updated components
 
LogPlayer component (Alex M.)
interface name is set properly on replayinterfaces are initialized before waiting for user input to start replaexecution dir of logplayer and the dir where logs are stored may be differentcustom begin and end time of replay are working againit's possible to step through data objects one at a time by settiing ReplayRate=0LaserFeatureExtractor
Huge Overhaul, plus added line features (Alex B.)PathPlanner
fixed potential problem with skeleton (zeromap is now a map of ints) (Tobi)GoalPlanner
throws remote exception if there are more than one localisation hypotheses (Tobi) 
 Updated utilities
 
Probe utility (Alex M.)
using dynamically loaded factory libraries to allow use with satellite projectsadded a gui driver using QtOrcaView2d
now supports guielements with multiple interfaces, see e.g. ogmapscombined (Tobi)CleanRegistry (Alex M.)
now works with the Home interfaces registered as well-known-objects 
 Updated libraries
 
libOrcaIce
added basename() and dirname() similar to Unix equivalents (Alex M.)added ctest for string utilities (Alex M.)added pathDelimeter() function to sysutils (Alex M.)added toString and "reverse" functions for several BROS-I structures. added tests. (Alex M.)libOrcaQGui
renamed from libOrcaGuiMade the generic bits in libOrcaQGui unaware of any specific bits in libOrcaQGui2d (Alex B.)Added support for dynamically-loaded plug-in GuiElementFactories, to allow satelite projects to extend the GUI (Alex B.)Added support for line features (Alex B.)Added a fix for multiple-subscriptions and increased re-subscribe timeout (Alex B.)libOrcaCompModel
improved exception handling when contacting the Registry (Alex M.) 
Build system
Solaris compatability (Christopher Brooks, Alex Brooks)Tested with Ice-3.1.1CMake scripts are now installed and can be used by satellite projects without copying. (Alex M.)New interface: BinarySwitch (Alex M.)
Represents a bank of hardware devices with binary states, e.g. lights.New interface: Cpu (Alex M.)
Interface to info about the computer's CPU.Gps interface
RangeScanner2d interface: renamed from RangeScanner (Alex M.)
removed operation for remote configuration setConfig()combined Config and Geometry into DescriptionLaserScanner2d interface: renamed from Laser (Alex M.)Camera interface (Alex M.)
removed operation for remote configuration setConfig()combined Config and Geometry into Descriptionrenamed enum parameters from all-caps to Orca standard notationNew component: OrcaView3d (Ben Upcroft, Waleed Kadous, Alex Brooks)
a 3-D visualisation componentOrcaGui Library
Broken into separate 2D, 3D, and general librariesNew utility: Probe (Alex M.)
a utility to browse and probe remote orca interfaces.OrcaIce library
added docs for tracing functions and properties (Alex M.)component config file may now be specified with Ice.Config in addition to Orca.Config parameter. This is done for compatibility with IceGrid (Alex M.)renamed Orca.Tracer.DoTimestamp config paramter to Orca.Tracer.Timestamp, to be similar to Ice.Logger.Timestamp (Alex M.)added a new config parameter Orca.RequireRegistry to allow start up components without registry (Alex M.)in component config files, component name is no longer required. We use ComponentTag as default (converted to lower case). this is useful for some utilities which now don't need dummy config files. (Alex M.)added functions for standardized warning about missing properties, see warnMissingProperty().OrcaObject library
added functions for converting time to time-of-day and date. added ctest to test them. (Alex M.)OrcaDef library
added orca version info to autogenerated files (.cfg and .xml) (Alex M.)Laser2d component: renamed from SickLaser
Significant overhaul of internal structure to comply with changes in the interface and accomodate new drivers. (Alex M.)PlayerClient driver
can now connect to multiple lasers on the same robot (Alex M.)now works with Hokuyo URG laserImageServer and ImageViewer components
Significant overhaul of internal structure to comply with changes in the interface. (Alex M.)Logger/LogPlayer components, and new libOrcaLog library
major code clean-up to simplify addition of new interfaces (Alex M.)master file protocol has changed, logger writes metadata (Tobi)new feature: logplayer can do endless loops (Tobi)timestamp in log filenames is optional (Alex M.)added support for Power interface (Alex M.)Added support for plug-in loggers, via dynamic library loading (Alex B.)CameraLogger/Replayer added explicit support for "ice" and "jpeg" formats (Alex M.)added ctests to test that replayers can read logs.Orca for Java
now works with Debian package of IceJ (Alex M.) 
Build system
User preference for installation directory are no longer overwritten.Orca will now build with Ice intalled as Debian package.Fixed Windows build error in 2.0.1.Imu interface
accellerometer and gyro values are now stored using BROS-I structures.Alex MakarenkoPosition3d interface
removed 'stalled' flag from Position3dData object.Alex MakarenkoRobot2d component
Split off Segway driver into a separate component.Alex MakarenkoNew component: SegwayRmp
compared to Robot2d, provides Position3d interface.Alex MakarenkoOrcaDef library: new feature
generates IceGrid app descriptor (XML format) from .def fileAlex MakarenkoDocumentation
new tutorial on using IceGrid for application deploymentDebian package for Ice is now the default install option.Alex MakarenkoNew interface: PointCloud
ImageServer and ImageViewernow rely on the latest release verisons of opencv-0.9.9.builds of these individual components have been turned on by default.user specified resolutions are now supported for both firewire and usb cameras.
 
New components: ognode & laser2og
For (cooperative) occupancy-grid mappingMatt Ridely, George Mathews, Alexei Makarenko, Tobias KauppNew component: gps
New component: goalplanner
Component overhaul: pathplanner
Alex Brooks and Tobias KauppSubstantial improvements: orcaview
New interface: imu (inertial measurement unit)
Support for integration with gazebo
Support for logging in ascii and parsing from matlab
Ben Upcroft, Tobias KauppInitial support for components as daemons
Fixed mem leak in SickLaser
Portability of common components (logger/logplayer/orcaview) to Orca-derived projects
 |  |