Owl Positioning System: a Wi-Fi-based, infrastructure-centred indoor positioning system.
http://owlps.pu-pm.univ-fcomte.fr/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
534 lines
24 KiB
534 lines
24 KiB
This file is automatically generated from the Git tag messages. |
|
|
|
|
|
v1.3.5 OwlPS, version 1.3.5 (development point release) |
|
|
|
This release features the usual refactoring and code cleaning, fixes and |
|
improves the build system (the manual pages are now installed), and also |
|
brings some more important changes listed below. |
|
|
|
The scripts/ directory was added with two Perl scripts and two Perl |
|
modules that were formerly developed in another repository: |
|
- OwlPS AggCheck (owlps-aggcheck.pl), that allows one to analyse an |
|
aggregation file in various ways: print human-readable information, |
|
extract signal strength distribution, or extract the number of packets |
|
per request and per capture point. |
|
- OwlPS AggSetCoord (owlps-aggsetcoord.pl), that can be used to fill an |
|
aggregation CSV file with coordinates, either statically or by |
|
interpolation of existing coordinates. It uses the following two |
|
modules. |
|
- The OwlPS::CSV module, that provides functions to deal with the CSV |
|
format used in OwlPS. |
|
- The OwlPS::TimeInterpolation module, that provides function to |
|
interpolate timestamped coordinates. |
|
|
|
Documentation: |
|
- New manual page owlps-aggregatord(1). |
|
- New manual page owlps-positionerd(1). |
|
- New manual page owlps-udp-to-http(1). |
|
- A bunch of figures where added. |
|
- Perl files from the scripts/ directory are documented with POD and man |
|
pages are generated directly from the source files. |
|
|
|
API changes: |
|
- libowlps: the synopsis of owl_create_udp_trx_socket() has changed |
|
(deletion of the client_description argument). |
|
- libowlps-client: the synopsis of owl_create_trx_socket(), |
|
owl_send_request() and owl_send_packet() has changed (struct sockaddr |
|
instead of struct sockaddr_in). |
|
- libowlps-resultreader: struct _owl_result.mobile_mac_addr is now a |
|
static buffer instead of a dynamically allocated string. |
|
|
|
OwlPS Client: |
|
- -F now supports either an inter-transmission delay (old behaviour) or |
|
a delay between the start of two transmissions. |
|
|
|
OwlPS UDP-to-HTTP: |
|
- The error code when no results are stored has been changed |
|
("NoResults" instead of "NoResult"). |
|
- Command-line options are now handled: |
|
- -h and -V for help and version messages |
|
- -v and -q for verbose and quiet modes |
|
- -l and -t to set the port numbers |
|
|
|
All the modules are now able to deal with host names and not only IP |
|
addresses. |
|
|
|
|
|
v1.3.4 OwlPS, version 1.3.4 (development point release) |
|
|
|
This is again a big release in terms of number of commits. Many of these |
|
commits are code cleaning, refactoring, and other invisible |
|
improvements, but there are also a number of noticeable changes, and |
|
especially two major ones. |
|
|
|
First of all, this release could be called "mine-ready OwlPS". Indeed, |
|
the most important change is the new autocalibration method in OwlPS |
|
Positioner that allows to generate reference points along a path defined |
|
in the configuration, which enables self-calibrated positioning in a |
|
network of tunnels. |
|
|
|
The other important change is that the aggregation CSV format is now |
|
versionned. The first field OwlPS Aggregator's CSV output files is now |
|
an unsigned integer that defines the version of the CSV format used. The |
|
format was otherwise untouched, and this version has number 1. An |
|
aggregation file generated with a previous version can therefore still |
|
be used by adding "1;" at the beginning of each line. |
|
|
|
A summary of all the noticeable changes since 1.3.3 follows. |
|
|
|
Documentation: |
|
- CMake rules were added to handle the documentation; manual pages are |
|
now generated in the man/ directory under the build tree. |
|
- Doxygen is now used to generate manual pages from the libraries' code. |
|
- The manual page owlps-client(1) is now complete. |
|
- New manual page owlps-listenerd(1). |
|
- New manual page owlps-deployment(7). |
|
- Some improvements in other existing manual pages. |
|
|
|
libowlps API change: |
|
- To be consistent, every reference to an "Access Point" has been |
|
changed to "Capture Point"; the only visible change is that all the |
|
structures that contained a field named "ap_mac_addr_bytes" now |
|
contain a field "cp_mac_addr_bytes" instead. |
|
|
|
OwlPS Client: |
|
- New options verbose (-v) and quiet (-q). |
|
|
|
OwlPS Listener: |
|
- New option -G to dump the current configuration on the standard output |
|
and exit. |
|
- Now builds on *BSD (compilation tested on NetBSD, OpenBSD and |
|
DragonFly). |
|
|
|
OwlPS Aggregator: |
|
- New option -G (same as for Listener). |
|
- New option -F to not flush the output. |
|
- Option -o is now optional, and the default output file is the standard |
|
output. |
|
- When exiting, the requests in memory are output instead of being |
|
deleted. |
|
|
|
OwlPS Positioner: |
|
- Should now build with clang++. |
|
- Now requires to be linked against libclaw_tween. |
|
- The unit tests were brought back to live, although they are very |
|
incomplete. |
|
- A new autocalibration method was implemented, that allows to generate |
|
reference points along a path instead of a meshing of reference |
|
points. The behaviour of the positioning.generate-reference-points |
|
option was changed, and two new options were added: |
|
positioning.generated-line-path and positioning.generated-line-step. |
|
|
|
|
|
v1.3.3 OwlPS, version 1.3.3 (development point release) |
|
|
|
We've got a real build system, and that's worth a point release! |
|
OwlPS has abandoned without any regret its old set of custom Makefiles, |
|
and is now using CMake. Dependency checks, improved maintainability, |
|
portability and (hopefully) readability: long story short, it's a great |
|
improvement. |
|
|
|
This is a big release in terms of number of commits, though not that |
|
much in terms of features. The important changes since v1.3.2 follow. |
|
|
|
Some initial work has been done on the documentation: |
|
- README.t2t is an entry point that directs the reader to other |
|
documentation files. |
|
- INSTALL.t2t is a guide on how to build and install OwlPS. |
|
- The doc/ directory contains other txt2tags files that can be built as |
|
man pages. Beside the owlps(7) and owlps-architecture(7) pages, only |
|
OwlPS Client has a man page (owlps-client(1)), so there is still some |
|
work to do in this area. |
|
|
|
libowlps API changes: |
|
- Doesn't define the owl_bool type any more, we are now using stdbool.h. |
|
|
|
OwlPS Listener: |
|
- Can now read packets from a pcap file instead of a capture interface, |
|
which is useful for testing (option -R). |
|
- The radiotap parser code has been cleaned and two non-trivial bugs |
|
were fixed: the alignment of the radiotap fields is now handled |
|
correctly, and the signal strength (Antenna Signal) is now stored as a |
|
signed 8-bit value instead of an unsigned one (which was problematic |
|
only with positive signal strengths). |
|
|
|
OwlPS Positioner: |
|
- Now requires GCC 4.7 with C++11 enabled. |
|
- New option positioning.generated-points-list, which allows to generate |
|
a pre-determined list of reference points instead of a regular |
|
meshing. The positioning.generate-reference-points option is now a |
|
string with values "false" (autocalibration deactivated), "mesh" (to |
|
generate a meshing, old default for "true"), "list" (to generate only |
|
a list of reference point") or "both" (combination of "mesh" and |
|
"list"). |
|
|
|
|
|
v1.3.2 OwlPS, version 1.3.2 (development point release) |
|
|
|
This is the last release "made in Université de Franche-Comté" by Matteo |
|
Cypriani (or to be more precise, as an employee of the University). It |
|
is also the first public release. |
|
|
|
Due to the fact that it is a "time-based" release, it does not |
|
correspond to a particular important change, but here are the major |
|
modifications since v1.3.1: |
|
- OwlPS Positioner can now compute the error in two dimension by setting |
|
the option output.2d-error. |
|
- One can now specify the number of requests OwlPS Client will send (-N |
|
option). |
|
- libowlps: owl_timestamp_to_string() now always displays nanoseconds on |
|
9 digits. |
|
- A bunch of bug and cosmetic fixes, mainly in OwlPS Positioner. |
|
|
|
|
|
v1.3.1 OwlPS, version 1.3.1 (development point release) |
|
|
|
This release features various important changes. |
|
|
|
First of all, we finally got rid of the OpenWrt-specific makefiles, |
|
and unified all the makefiles thanks to the new common files |
|
(common.mk and common-rules.mk). To compile for OpenWrt, one has to |
|
set the variable OPENWRT_VERSION (for example make |
|
OPENWRT_VERSION=10.03), or to use the main Makefile_atheros_openwrt. |
|
|
|
The format of the positioning requests has changed, and now includes |
|
padding bytes. OwlPS Client features a new option (-s) to set the size |
|
of the transmitted data. |
|
|
|
Major autocalibration bugs fixed in OwlPS Positioner: |
|
- Segfault with positioning.generate-reference-points. |
|
- Failed assertion with positioning.calibration-requests-timeout > 0. |
|
- Several problems preventing the generation of multi-packet reference |
|
points (positioning.generate-single-packet-reference-points=false). |
|
|
|
The Positioner option generate-single-packet-reference-points has been |
|
renamed generate-multi-packet-reference-points and the default is now |
|
to generate multi-packet reference points. |
|
|
|
Positioner now features the option replay (--replay on), which change |
|
the time-related behaviour, and is useful for the option |
|
positioning.calibration-requests-timeout: instead of computing the |
|
elapsed time with the current time on the machine running Positioner, |
|
we keep track of the most recent received request's timestamp, and use |
|
it as the current time. Unfortunately, this option is quite useless if |
|
the clock of the mobile terminals and listeners are not synchronised |
|
(actually if this is the case, one should run the server without |
|
enabling the replay mode, because this option could cause the deletion |
|
of non-obsolete calibration requests). |
|
|
|
Positioner now features the option |
|
positioning.unique-calibration-request. Thanks to this behaviour |
|
(which was already the default), it is not too annoying (at least when |
|
using autocalibration) that the replay option does not work without |
|
synchronised clocks. |
|
|
|
And last but not least, the OwlPS logo enters the repository. |
|
|
|
|
|
v1.3.0 OwlPS, version 1.3.0 (development point release) |
|
|
|
This is the first release of the development branch 1.3. |
|
|
|
The positioning requests now contain the total number of packets of |
|
the request, along with the current packet number (libowlps API |
|
change). |
|
|
|
This allows for the introduction of new similarity methods for |
|
cartography-based algorithms, based on the distribution of the SSs: |
|
- “interval” uses the number of values within the interval |
|
[mean-std.dev.;mean+std.dev.]. |
|
- “interval2” computes the percent of packets in both the intervals |
|
[Im-0.674×Is, Im+0.674×Is] and [Im-Is, Im+Is], and selects the |
|
measurement which have the closest percentage of packets to the |
|
theoretical percentages of the two intervals (see |
|
owlps-positioner.conf for details). |
|
|
|
Autocalibration improvements: |
|
- Due to the availability of packet numbers, we are now able to |
|
generate multi-packet requests (which is required for the new |
|
similarity methods to work properly). |
|
- The APs are now selected not only by their angle, but also in |
|
function of the coverage with the receiver AP. |
|
- The APs are now selected with signed angles, which improves the |
|
selection in some cases. The minimum number of reference AP is |
|
lowered to one. |
|
- The building's floors are now handled (2.5-D positioning). |
|
|
|
New Positioner options: |
|
- positioning.calibration-requests-timeout: allows to delete old |
|
calibration requests. |
|
- positioning.generate-single-packet-reference-points: allows to |
|
choose between single and multi-packet reference points in the |
|
autocalibration. |
|
- positioning.generated-meshing-grain-z: vertical grain of the |
|
autocalibration meshing (should be 1 in most cases, as it is |
|
currently a floor number). |
|
- positioning.smallest-ss: allows to specify the smallest possible SS |
|
value received by the listeners. |
|
- positioning.ss-similarity: allows to choose the similarity method |
|
used. |
|
|
|
|
|
v1.2 OwlPS, version 1.2 |
|
|
|
Changes since v1.1.8: |
|
- The Positioning module has been renamed Positioner, to be consistent |
|
with the other modules, and the executable file is owlps-positionerd. |
|
- Positioner: the RADAR algorithm is renamed NSS. |
|
- CLI option are standardised amongst all the modules (e.g. -i as |
|
destination IP). |
|
- A daemon mode has been implemented in Client, Listener and |
|
Aggregator (option -D). |
|
- All the requests (positioning, calibration, autocalibration) are now |
|
sent to the same port by default. |
|
- Two different ports are now used for autocalibration hello messages |
|
and autocalibration orders. This allows to run a listener and an |
|
aggregator on the same machine with the autocalibration enabled. |
|
- The default time-related values has been updated. By default the |
|
aggregator will not be able to fully aggregate calibration requests |
|
any more, only the positioning and autocalibration requests. In |
|
order to aggregate calibration requests, the aggregation timeout |
|
needs to be increased, or the number of packets of the request and |
|
the delay between each of them lowered. |
|
- Some bug fixes, minor improvements and cosmetic changes. |
|
|
|
Release notes: |
|
- Those programs are developped and tested on GNU/Linux. All the modules |
|
but the Listener (which is Linux-specific for the moment) also build |
|
on NetBSD, FreeBSD, OpenBSD and DragonFly BSD. The Positioner does not |
|
build with versions of GCC older than 4.4; for some reason, it also |
|
does not compile on DragonFly BSD with GCC 4.4. |
|
- The implicit mode is still an experimental feature. It is pretty much |
|
untested and needs to be redesigned properly. |
|
- The full changelog is long, please refer to the development point |
|
releases' changelogs to have an overview of the changes since v1.0. |
|
Long story short: autocalibration! |
|
|
|
|
|
v1.1.8 OwlPS, version 1.1.8 (development point release) |
|
|
|
Along with the usual bug fixes, minor improvements, and more or less |
|
important changes (listed below), two modules were added: |
|
- owlps-udp-to-http: a program that serves the results of OwlPS |
|
Positioning through HTTP. |
|
- libowlps-resultreader: a library that handles results sent by OwlPS |
|
Positioning (with its sample program owlps-resultreader-udp). It |
|
supports the previous new module OwlPS UDP-to-HTTP, as well as OwlPS |
|
Client (for the -l option). |
|
|
|
API changes: |
|
- libowlps: |
|
+ Listener-specific code was moved into owlps-listener. |
|
+ OWL_TIMESTAMP_STR_LEN was renamed OWL_TIMESTAMP_STRLEN. |
|
+ All the elements declared in owlps.h are now prefixed with "owl_". |
|
- libowlps-client: the functions are now prefixed with "owl_" instead of |
|
"owlclient_". |
|
|
|
OwlPS Positioning: |
|
- The options minmax-start and minmax stop are renamed area-start and |
|
area-stop. |
|
- FBCM did not work with autocalibration, this is fixed. |
|
- Fixed a segfault that occurred in certain circumstances with the |
|
option positioning.radar-ignore-ap-reference-points activated. |
|
- CSV format changes (CSV & UDP outputs): |
|
+ Removed the useless "Error" string before the error field. |
|
+ Added the area in which is the result for each algorithm. |
|
|
|
|
|
v1.1.7 OwlPS, version 1.1.7 (development point release) |
|
|
|
Finally the autocalibration is here! All the commits of this release are |
|
more or less related to the autocalibration development, in OwlPS |
|
Positioning. There is some work remaining, but this release features the |
|
main basis of the autocalibration. |
|
|
|
Most user visible changes: a lot of new options, including reading the |
|
mobiles' characteristics from a CSV file; see the sample configuration |
|
file for details. |
|
|
|
Note: this is the version used to participate at the EvAAL 2011 |
|
competition, with the required post-competition cleaning. |
|
|
|
|
|
v1.1.6 OwlPS, version 1.1.6 (development point release) |
|
|
|
This release was developed in parallel with the autocalibration |
|
development branch, so it contains a relatively large amount of things |
|
(as usual, fixes, cleaning and a few new features). |
|
|
|
Here are the most noticeable changes introduced, module by module. |
|
|
|
Positioning: |
|
- The long-term, unnoticed, and hard to debug ReferencePoint creation |
|
bug was fixed, and |
|
- the option --radar-average-reference-points was added; the default is |
|
to keep the old bug's consequent behaviour, i.e to search for the |
|
nearest calibration request in SS instead of the nearest reference |
|
point, since it gives better results (for a calibration with several |
|
mobile's orientation). |
|
- The option --verbose was added. |
|
|
|
Aggregator: |
|
- Semaphores are now used to lock the lists of APs and requests. |
|
- The verbose mode was changed into a verbose level. |
|
- The -q (quiet) option was added. |
|
|
|
Listener: |
|
- The verbose mode was changed into a verbose level. |
|
|
|
Client: |
|
- The option -f (flood mode) was added, to allow the client to |
|
continuously send requests. |
|
|
|
Other changes: |
|
- libowlps, libowlps-client, owlps-client and owlps-aggregator now build |
|
on OpenBSD and DragonFlyBSD, thanks to some cleaning and fixes (mainly |
|
in the libraries and makefiles). Untested on FreeBSD and NetBSD, but |
|
it should work painlessly. |
|
- All the configurable delays are now in milliseconds or seconds (no |
|
more microseconds). |
|
- We finally deleted writeInDb, since it is useless for the moment. |
|
|
|
|
|
v1.1.5 OwlPS, version 1.1.5 (development point release) |
|
|
|
This small release includes the following changes: |
|
- Positioning computes the error for each algorithm when the |
|
pseudo-algorithm "Real" is used. |
|
That changes the results' CSV format (OutputCSV & OutputUDPSocket). |
|
- Positioning: add --minmax-start & --minmax-stop to limit the search |
|
space of MinMax. |
|
- Positioning's configuration files updated (they are now really example |
|
files). |
|
- Add -V to print the version, in each module. |
|
- A fair amount of bug fixes and small improvements. |
|
|
|
|
|
v1.1.4 OwlPS, version 1.1.4 (development point release) |
|
|
|
Here are the most noticeable changes for this release: |
|
- The request type and calibration data (position & direction) are now |
|
handled in all modules. |
|
- The listener can send its own position in autocalibration requests. |
|
- The OwlPS Positioning module: |
|
+ handles SIGINT and SIGTERM to exit correctly; |
|
+ adds the option flush-output-files; |
|
+ includes the algorithm name in the result output; |
|
+ writes all the results for a given request in a bunch; |
|
+ accepts '-' as file names to read the standard input or write to the |
|
standard output; |
|
+ sends the computed results by UDP (CSV string format); note that |
|
currently, the mobile cannot receive this format. |
|
- The last endianness issues have (hopefully) been fixed. |
|
- libowlps API change: constants for localisation request types |
|
(PACKET_TYPE_*) are now OWL_REQUEST_*; the global variable run is |
|
renamed owl_run; owl_request includes the position; float endianness |
|
conversion functions were added. |
|
|
|
|
|
v1.1.3 OwlPS, version 1.1.3 (development point release) |
|
|
|
We finally got rid of mobile-centred. The code is still in the memory |
|
of the VCS, of course, but we do not have time to bother maintaining |
|
it. |
|
|
|
owlps-positioning is now linked to libowlps, and is able to read |
|
aggregated requests sent by the aggregator via UDP, thanks to the new |
|
class InputUDPSocket. This exchange does not concern calibration nor |
|
autocalibration requests yet, since the aggregator do not send |
|
calibration data. |
|
|
|
As usual, this release includes some refactoring, code improvement, |
|
bug fixes and various minor new features. The most important code |
|
improvement concerns thread handling in the listener and the |
|
aggregator, that is now far cleaner. |
|
|
|
libowlps API changes: types are now all lowercase and prefixed, |
|
several new functions were added, and the behaviour of |
|
owl_mac_bytes_to_string() is changed. |
|
|
|
|
|
v1.1.2 OwlPS, version 1.1.2 (development point release) |
|
|
|
Note the new case of "OwlPS": Owl Positioning System should make |
|
easier to memorise "Open Wireless Positioning System". |
|
|
|
We are still on the way to autocalibration, and a lot of things were |
|
done since v1.1.1, mostly on libowlps and infrastructure-centred code. |
|
The emission of autocalibration requests by the listeners now works as |
|
intended. The code has been adapted to be able to work in a complex |
|
network configuration: multiple Wi-Fi modes (e.g. monitor, master and |
|
ad-hoc), multiple IP addresses, etc. Endianness issues have been |
|
addressed, and everything works well now. |
|
|
|
This release includes major library API changes: functions are now |
|
prefixed, several functions were renamed, and stdint types are used in |
|
custom types. |
|
|
|
The data format also changes: we now use nanosecond precision in all |
|
modules, via the new type TIMESTAMP which is inspired from the C++ |
|
class Timestamp created for the Positioning module. Therefore, the |
|
timestamp field of the CSV outputs has a nanosecond precision, and its |
|
format is "seconds.nanoseconds". |
|
|
|
Finally, a lot of other less visible things were accomplished: bug |
|
fixes and improvements, code refactoring, new options, etc. |
|
|
|
|
|
v1.1.1 OWLPS, version 1.1.1 (development point release) |
|
|
|
We are on the way to autocalibration. The listeners can send Hello |
|
messages to the aggregator, which now handles a list of listeners and |
|
schedules autocalibration requests. Emission of autocalibration requests |
|
by the listeners has been worked on, but is very buggy at this time, and |
|
therefore not operational yet. |
|
|
|
|
|
v1.1.0 OWLPS, version 1.1.0 (development point release) |
|
|
|
Cleaning, refactoring, translation of comments from French to English, |
|
bug fixes and minor features. The only very noticeable thing is the |
|
creation of the libowlps-client library; it is to prepare the future |
|
ability of the listener to send autocalibration requests. |
|
|
|
|
|
v1.0 OWLPS, version 1.0 |
|
|
|
Few changes are actually visible since version 0.8. This release is a |
|
new start for owlps-positioning, which was rewritten almost completely. |
|
Support for Viterbi-enabled algorithms has been dropped; this could be |
|
reintegrated someday, but it is not needed for our current researches, |
|
so it is not in the top-priority list. |
|
|
|
Extensive non-regression tests have not been conducted yet (we need to |
|
ensure that the results obtained with v1.0 are consistent with those |
|
obtained with v0.8). |
|
|
|
|
|
v0.9.0 OWLPS, version 0.9.0 (development point release) |
|
|
|
This release includes the internship work of Julien Graeffly (mostly on |
|
the positioning server), and some improvements (configuration file |
|
support, better handling of command-line options, Fonera compilation, |
|
passive mode, etc.). |
|
|
|
|
|
v0.8 OWLPS, version 0.8 |
|
|
|
Version 0.8, as documented in the technical report "Open Wireless |
|
Positioning System, Version 0.8". |
|
|
|
|
|
v0.6 "OWLPS", version 0.6 |
|
|
|
The system allows to perform infrastructure-based measurements. |
|
Computation has to be done manually. |
|
|
|
Note: at this time, the system was not called "OWLPS" yet. |
|
|
|
|
|
v0.4 "OWLPS", version 0.4 |
|
|
|
First, early release of the student works TX (mobile-centred |
|
measurements) and TO (infrastructure-centred).
|
|
|