« Previous - Version 15/36 (diff) - Next » - Current version
Daniel Stonier, 05/29/2010 07:35 PM


Features

The following is a brief list of the features currently available in the embedded control library.

The library currently only supports posix platforms but all c++ interfaces have been designed to present non-os dependant interfaces to the programmer. This will ensure porting and usage is easy and at the very least, win32 is expected to be ported across from the ycl at some point in the future.

Build Tools

  • CMake Scripts
    • ConfigurePlatform
    • DetectPosix
    • FindECL
    • FindEigen
    • FindOpenCv
    • FindPeekabot
    • UnInstall
  • Platforms
    • Native
    • Arm1176jzf-s
    • Atom230
    • AtomN270
    • Atom330
    • Core2
    • i5
  • Toolchains
    • arm-samsung-linux-gnueabi - custom toolchain for arm core development at Yujin Robot.
    • arm-generic-linux-gnueabi - custom toolchain for arm core development at Yujin Robot.
    • i586-moblin-gnu
    • i686-pc-linux-gnu - typical cross-compiler for 64bit machines.
    • i686-pc-mingw32 - gentoo crossdev's mingw32 cross-compiler.
    • i586-mingw32msvc - ubuntu's mingw32 cross-compiler.

Core

  • Comand Line - parse program input arguments on the command line (using the tclap library).
  • Concepts - compile time checking mechanisms for programming concepts.
  • Error Handling
    • Abort/Asserts - functions for conditional handling of errors and termination of processes.
    • Data Exceptions - throwing data with exceptions.
    • Macros - enable debug mode error handling.
    • Standard Exceptions - convenient exception handlers for ecl error types.
  • Containers
    • Dynamic Array - heap allocated c++ arrays with a minimal interface, including eigen style initialiser.
    • Fixed Array - stack allocated c++ arrays with a minimal interface (mem_checking variant also available), including eigen style initialiser.
    • Mem Checking Array Extensions - transparent modifications to the array class that enable memory checking for buffer under/overruns.
    • Stencils - typesafe, pointer safe windows onto ecl containers.
  • Inter-Process
    • Process Priority - simple, cross platform process priority setting.
    • Semaphore - binary style inter process locking mechanism.
    • Shared Memory - allocation of shared memory automatically via structure definitions.
  • Meta-Programming
  • Sigslot - type-safe, thread-safe, signals and slots implementation with posix style named connections.
  • Threads
    • Mutex - the usual binary style lock.
    • Thread - threading via composition.
    • Threadable - threading via inheritance.
  • Time
    • Durations - representation and math operations for intervals of times.
    • Sleepers - generic sleep functions with varied resolutions.
    • Snooze - provides sleeping functionality with minimal drift for absolutely periodic loops.
    • Stopwatches - all the features you'd expect in a stopwatch with nanosecond resolution.
    • Timestamps - representation and math operations for system timestamping.
  • Utilities
    • Blueprints
    • Converters
    • Function Objects
    • Parameters
    • Reference Wrappers
    • Singleton
  • Devices
    • OFile - synchronous output file device.
    • SharedFile - multi-threaded, multi-instance output file device.
    • Console - standard input/output/error (console) devices.
    • Serial - the serial RS232 device.
    • Sockets - a very simple ipv4 socket server and client.
    • String - virtual string storage (io)devices.
  • Formatters
    • Floats - formatting floats for insertion into streams.
    • Integers - formatting integral types for insertion into streams.
    • Strings - formatting strings for insertion into streams.
    • Containers - formatting containers for insertion into streams.
  • Streams
    • Text Streams - generic text streaming class.
    • Console Streams - streams to and from standard input/output/error.
    • Log Streams - convenient macro enabled stream for multi-threaded, multi-modal logging.
    • Output File Streams - streams to output files (vanilla and multi-threaded versions).
    • String Streams - customised textstream wrapper for connections with virtual serial devices.
  • Geometry
    • Angle - convenient interface for angles, does auto-wrapping, conversions and math operations.
    • Cartesian Point - defines c++ style cartesian point representations.
    • Cubic Spline - third order polynomial spline representation and generation.
    • Polynomials - generic polynomial representations as c++ classes.
    • Smooth Linear Spline - smoothed linear spline representation and generation.
    • Tension Functions/Splines - tension (inverse trig) spline representation and generation.
  • Manipulators
    • Joint Trajectories - standardised joint trajectory interface.
    • Joint Trajectory Generators - generator interfaces for developing trajectories from waypoints.
    • Waypoints - standard waypoint definition for manipulator trajectories.
  • Math - basic mathematical constants (these are mostly for cross platform support).
  • Statistics
    • Covariance Ellipsoids - ellipsoid characteristics of a covariance matrix.
  • Maps
    • Grid Maps - overlay a 2d grid map on a real world map using fixed dimensions.
  • Mobile Robot
    • Pose - representation and mathematical operations for mobile robot poses.
    • Differential Drive - kinematics for differential drive robots.
  • Slam
    • Slam Ekf - modular architecture for a slam-ekf algorithm.

Also available in: HTML TXT