Features

Version 24 (Daniel Stonier, 07/11/2010 12:44 PM)

1 1
h1. Features
2 1
3 1
{{>toc}} 
4 1
5 1
The following is a brief list of the features currently available in the embedded control library.
6 1
7 1
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.
8 1
9 1
h2. Build Tools
10 1
11 1
* **CMake Scripts**
12 18 Daniel Stonier
** __Configuration:__ ConfigurePlatform, DetectPosix
13 18 Daniel Stonier
** __Find Modules:__ FindECL, FindEigen, FindOpenCv, FindPeekabot
14 18 Daniel Stonier
** __Build Scripts:__ UnInstall
15 16 Daniel Stonier
* **Platforms** - cmake settings for building on various cpu's.
16 18 Daniel Stonier
** __Generic Platforms:__ Native, Vanilla
17 18 Daniel Stonier
** __Arm Cores:__ Arm1176jzf-s 
18 18 Daniel Stonier
** __Intel Atoms:__ Atom230, AtomN270, Atom330
19 19 Daniel Stonier
** __Intel x86/64:__ Core2, i5
20 1
* **Toolchains**
21 20 Daniel Stonier
** __arm-none-linux-gnueabi__ - configuration for the code sourcery arm toolchain.
22 12 Daniel Stonier
** __arm-samsung-linux-gnueabi__ - custom toolchain for arm core development at Yujin Robot.
23 12 Daniel Stonier
** __arm-generic-linux-gnueabi__ - custom toolchain for arm core development at Yujin Robot.
24 1
** __i586-moblin-gnu__
25 12 Daniel Stonier
** __i686-pc-linux-gnu__ - typical cross-compiler for 64bit machines.
26 12 Daniel Stonier
** __i686-pc-mingw32__ - gentoo crossdev's mingw32 cross-compiler.
27 12 Daniel Stonier
** __i586-mingw32msvc__ - ubuntu's mingw32 cross-compiler.
28 1
29 1
h2. Core
30 1
31 13 Daniel Stonier
* **Comand Line** - parse program input arguments on the command line (using the tclap library).
32 14 Daniel Stonier
* **Concepts** - compile time checking mechanisms for programming concepts.
33 1
* **Error Handling**
34 1
** __Abort/Asserts__ - functions for conditional handling of errors and termination of processes.
35 1
** __Data Exceptions__ - throwing data with exceptions.
36 1
** __Macros__ - enable debug mode error handling.
37 1
** __Standard Exceptions__ - convenient exception handlers for ecl error types.
38 1
* **Containers**
39 1
** __Dynamic Array__ - heap allocated c++ arrays with a minimal interface, including eigen style initialiser.
40 2 Daniel Stonier
** __Fixed Array__ - stack allocated c++ arrays with a minimal interface (mem_checking variant also available), including eigen style initialiser.
41 4 Daniel Stonier
** __Mem Checking Array Extensions__ - transparent modifications to the array class that enable memory checking for buffer under/overruns.
42 7 Daniel Stonier
** __Stencils__ - typesafe, pointer safe windows onto ecl containers.
43 1
* **Inter-Process** 
44 1
** __Process Priority__ - simple, cross platform process priority setting.
45 1
** __Semaphore__ - binary style inter process locking mechanism.
46 1
** __Shared Memory__ - allocation of shared memory automatically via structure definitions.
47 1
* **Meta-Programming**
48 15 Daniel Stonier
* **Sigslot** - type-safe, thread-safe, signals and slots implementation with posix style named connections.
49 1
* **Threads**
50 1
** __Mutex__ - the usual binary style lock.
51 1
** __Thread__ - threading via composition.
52 6 Daniel Stonier
** __Threadable__ - threading via inheritance.
53 6 Daniel Stonier
* **Time**
54 15 Daniel Stonier
** __Durations__ - representation and math operations for intervals of times.
55 15 Daniel Stonier
** __Sleepers__ - generic sleep functions with varied resolutions.
56 1
** __Snooze__ - provides sleeping functionality with minimal drift for absolutely periodic loops.
57 15 Daniel Stonier
** __Stopwatches__ - all the features you'd expect in a stopwatch with nanosecond resolution.
58 15 Daniel Stonier
** __Timestamps__ - representation and math operations for system timestamping.
59 1
* **Utilities**
60 1
** __Blueprints__
61 1
** __Converters__
62 1
** __Function Objects__
63 1
** __Parameters__
64 1
** __Reference Wrappers__
65 1
** __Singleton__
66 1
* **Devices**
67 1
** __OFile__ - synchronous output file device.
68 1
** __SharedFile__ - multi-threaded, multi-instance output file device.
69 1
** __Console__ - standard input/output/error (console) devices.
70 1
** __Serial__ - the serial RS232 device.
71 2 Daniel Stonier
** __Sockets__ - a very simple ipv4 socket server and client.
72 1
** __String__ - virtual string storage (io)devices.
73 1
* **Formatters**
74 1
** __Floats__ - formatting floats for insertion into streams.
75 1
** __Integers__ - formatting integral types for insertion into streams.
76 1
** __Strings__ - formatting strings for insertion into streams.
77 1
** __Containers__ - formatting containers for insertion into streams.
78 1
* **Streams**
79 1
** __Text Streams__ - generic text streaming class.
80 1
** __Console Streams__ - streams to and from standard input/output/error.
81 1
** __Log Streams__ - convenient macro enabled stream for multi-threaded, multi-modal logging.
82 1
** __Output File Streams__ - streams to output files (vanilla and multi-threaded versions). 
83 1
** __String Streams__ - customised textstream wrapper for connections with virtual serial devices.
84 1
* **Geometry**
85 15 Daniel Stonier
** __Angle__ - convenient interface for angles, does auto-wrapping, conversions and math operations.
86 2 Daniel Stonier
** __Cartesian Point__ - defines c++ style cartesian point representations.
87 1
** __Cubic Spline__ - third order polynomial spline representation and generation.
88 1
** __Polynomials__ - generic polynomial representations as c++ classes.
89 1
** __Smooth Linear Spline__ - smoothed linear spline representation and generation.
90 1
** __Tension Functions/Splines__ - tension (inverse trig) spline representation and generation.
91 24 Daniel Stonier
* **Math** - basic mathematical constants (these are mostly for cross platform support).
92 24 Daniel Stonier
* **Statistics**
93 24 Daniel Stonier
** __Covariance Ellipsoids__ - ellipsoid characteristics of a covariance matrix.
94 24 Daniel Stonier
95 24 Daniel Stonier
h2. Manipulation
96 24 Daniel Stonier
97 1
* **Manipulators**
98 15 Daniel Stonier
** __Joint Trajectories__ - standardised joint trajectory interface.
99 1
** __Joint Trajectory Generators__ - generator interfaces for developing trajectories from waypoints.
100 1
** __Waypoints__ - standard waypoint definition for manipulator trajectories.
101 1
102 9 Daniel Stonier
h2. Navigation
103 9 Daniel Stonier
104 9 Daniel Stonier
* **Maps**
105 9 Daniel Stonier
** __Grid Maps__ - overlay a 2d grid map on a real world map using fixed dimensions.
106 9 Daniel Stonier
* **Mobile Robot**
107 15 Daniel Stonier
** __Pose__ - representation and mathematical operations for mobile robot poses.
108 15 Daniel Stonier
** __Differential Drive__ - kinematics for differential drive robots.
109 9 Daniel Stonier
* **Slam**
110 1
** __Slam Ekf__ - modular architecture for a slam-ekf algorithm.
111 1
112 1
h2. Cross
113 1
114 1
Build recipes for cross-compilations of various packages from source.
115 1
116 24 Daniel Stonier
* **Ros Deps**
117 24 Daniel Stonier
** __Apr__
118 24 Daniel Stonier
** __Apr-Util__
119 24 Daniel Stonier
** __Boost__ : this is a trimmed boost suitable for embedded systems.
120 24 Daniel Stonier
** __Bzip2__
121 24 Daniel Stonier
** __Log4cxx__
122 24 Daniel Stonier
** __Zlib__
123 24 Daniel Stonier
* **Other Packages**
124 24 Daniel Stonier
** __Busybox__
125 24 Daniel Stonier
** __Gdb__
126 24 Daniel Stonier
** __NCurses__
127 24 Daniel Stonier
** __Opencv__ : this is a trimmed opencv2 suitable for embedded systems.
128 24 Daniel Stonier
* **Toolchains**
129 24 Daniel Stonier
** __Sourcery Toolchain__ : installer for code sourcery's g++ toolchain.