-
Notifications
You must be signed in to change notification settings - Fork 2
Initial Development Roadmap
dehann edited this page May 5, 2020
·
12 revisions
- Satisfy IIF solver requirements, v0.7.x/v0.8.x
- Part 1: Solving graph efficiently local or cloud with one shared interface
- In-memory implementation of common interface using skeleton variables and factors
- Implementation
- Standardized test for an implementation of the interface
- Documentation of methods and usage
- Visualization extensions for viewing factor graphs (copy from IIF)
- Definition of a common DFGVariable and DFGFactor for all our applications
- What is first-class citizen of DFGVariable? (e.g. label, tags, keyed estimates, timestamp)
- What is used by solver and should optionally be pulled? (e.g. VariableNodeData)
- What is used by users but is only pulled on demand? (e.g. smalldata, bigdata)
- Updating IIF to use shared interface
- Validation of changes
- In-memory implementation of common interface using skeleton variables and factors
- Part 2: Extension of interface for big data and small data
- Part 3: Arena example
- More general separation of concerns
- Part 1: Solving graph efficiently local or cloud with one shared interface
- Also remember mirroring.
https://github.com/JuliaRobotics/Caesar.jl/wiki/Data-Design-for-Caesar-RoME-IIF
Graff or ZMQ:
# To enable the Neo4j driver, import Neo4j.jl first
using Neo4j
using DistributedFactorGraphs
# Neo4j-based DFG
dfg = CloudGraphsDFG{NoSolverParams}("localhost", 7474, "neo4j", "test",
"testUser", "testRobot", "testSession",
nothing,
nothing,
IncrementalInference.decodePackedType)
addVariable!(dfg, DFGVariable(:a))
addVariable!(dfg, DFGVariable(:b))
addFactor!(dfg, [v1, v2], DFGFactor{Int, :Symbol}(:f1)) # Rather use a RoME-type factor here (e.g. Pose2Pose2) rather than an Int, this is just for demonstrative purposes.
Please see the documentation for more information on interacting with the factor graph.
The simplest way to set up a test database is with Docker. The Neo4j driver currenly doesn't work with Neo4j 4.0, version 3.5 can be used as in this example.
To pull the Neo4j image:
docker pull neo4j:3.5
To run the image with user neo4j
and password test
:
docker run -d --publish=7474:7474 --publish=7687:7687 --env NEO4J_AUTH=neo4j/test neo4j:3.5
Note If you just installed docker and having permission issues, please see this ask Ubuntu forum.