Skip to content

Releases: JuliaRobotics/IncrementalInference.jl

Mutlithreaded Convolutions

22 Aug 00:53
d74d9c7
Compare
Choose a tag to compare
Pre-release

This pre-release has a relatively small code change with few PRs, but represents a major change in the computations performed during approximate convolution. Each particle is now projected through a shared memory multithreaded loop -- and applies to both FunctorPairwise and FunctorPairwiseMinimize. This release also introduces a new constraint on factors, such that multiple threads do not conflict on any memory shared during residual computations. Please use Threads.nthreads() and Threads.threadid() for allocating separate memory space in the functor objects. The new keyword addFactor!(..., threadmodel=MultiThreaded / SingleThreaded) can be used for better error stack trace in SingleThreaded mode. Please set the number of shared memory threads in the .bashrc file with export JULIA_NUM_THREADS=4, or which ever amount you prefer. Lastly, also note that the shared memory threads are an addition on top of the existing multiprocess computations already used with the Bayes tree formulation.

Refactor to CommonConvWrapper (without Shared Multithreading)

20 Aug 02:52
95709df
Compare
Choose a tag to compare

The core approxConv operation has been refactored for simpler code and easier upgrade path for shared memory mutlithreading during the approximate convolution operation for both FunctorPairwise and FunctorPairwiseMinimize. This is a pre-release and does not yet include the Julia 0.7 updates. This is defined as a pre-release, since the next release will contain the shared memory multithreading upgrade. Shared memory mutlithreading may introduce unforseen problems, although all current tests indicate that the upgrade is already working. This IIF v0.3.7 pre-release allows downstream packages to use use the new CommonConvWrapper type (while dropping previous GenericWrapParam and FastGenericWrapParam types) without the mutlithreading update as well. Please see milestone for issues and pull requests included in this pre-release.

Penultimate Julia 0.6 Release, Standardize Multihypothesis

26 Jun 13:44
aca3989
Compare
Choose a tag to compare

This release provides a more standard interface to internal multihypothesis support (explicit marginalization of a discrete decision) -- and introduction of addFactor!(...; multihypo=[1.0;0.5;0.5], ...) API. The current implementation allows definition of binary association uncertainties, while future versions are expected to support n-ary association possibilities. The userdata::FactorMetadata argument passed to all factor functions now also include the userdata.solvefor::Symbol field. This release also has a cleaner interface to the evalFactor portions of the code. Besides bugfixes, the next expected release is 0.4.0 using upcoming Julia 0.7.

Feature Expansion, API changes & clean-up

18 Jun 19:00
8656ed5
Compare
Choose a tag to compare

This is a feature expansion release:

  • Add userdata::FactorMetadata requirement for factor evaluation,
  • Add standard multi-hypothesis support,
  • Add variable node metadata/userdata support,
  • Removing old addNode! deprecation warnings in test and example code,
  • Merged the square root and ApproximateConvolution examples,
  • Added more fundamental Bayes tree test (needs more expansion),
  • Removed some obsolete code (increased test coverage report to nearly 70%),
  • Removed old or commented code associated with previous deprecated type registration,
  • Several bug fixes.

This release has the potential to induce breaking changes, although a thorough effort has been made to deprecate rather than break dependencies. Expect deprecations to be removed soon after. Please file issues or make suggestions.

Dispatch-only Without Type Registration

26 May 20:12
7d26548
Compare
Choose a tag to compare
Pre-release

This is a pre-release to allow RoME.jl and Caesar.jl opportunity to finalize development on dispatch-only type conversion for Database use-cases.

JuliaRobotics and subgraphcopy

19 May 21:28
2816caf
Compare
Choose a tag to compare

Minor release update in anticipation of a much larger change relating to type conversion and serialization. Also the first release within the JuliaRobotics organization. This release does introduce robotname inside the factor graph type to allow for more general multi-session / multi-robot usage.

General Maintenance Release

30 Apr 11:26
2d1ee92
Compare
Choose a tag to compare

This release includes:

  • Several bug fixes,
  • The last version with where hard Normal distribution assumptions are allowed in the API, specifically surrounding addNode!, and
  • Introduces softtyping for variable nodes.

Fix NLsolve API change

27 Feb 02:35
699347d
Compare
Choose a tag to compare
  • Wide spread change to accommodate new NLsolve API,
  • Starting to work on removing old addNode! functionality, in preparation for improved autoinitialization process.

Generic root finding version

23 Jan 18:12
Compare
Choose a tag to compare

This version establishes IncrementalInference.jl package as a basic multi-modal solver, which can operate with user defined from outside. Furthermore conditional beliefs are currently enforced through generic non-linear root finding using NLsolve.jl.

New graph based inference library in pure Julia

14 Jun 14:23
Compare
Choose a tag to compare

Early release of Bayes (Junction) tree graph based inference library in pure Julia, work ongoing. Current use cases motivated by robot navigation problems.