Skip to content

Commit 42fa235

Browse files
committed
Cleaned
1 parent 8127c1e commit 42fa235

File tree

4 files changed

+83
-46
lines changed

4 files changed

+83
-46
lines changed

README.md

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -42,48 +42,46 @@ Additionally, we recommend checking out the [tests](/tests/) folder for more exa
4242

4343
```rust
4444
use factrs::{
45-
assign_symbols,
46-
fac,
47-
containers::{FactorBuilder, Graph, Values},
48-
noise::GaussianNoise,
49-
optimizers::GaussNewton,
50-
residuals::{BetweenResidual, PriorResidual},
51-
robust::Huber,
52-
traits::*,
53-
variables::SO2,
45+
core::{
46+
assign_symbols, fac, BetweenResidual, GaussNewton, Graph, Huber, PriorResidual, Values, SO2,
47+
},
48+
traits::*,
5449
};
5550

5651
// Assign symbols to variable types
5752
assign_symbols!(X: SO2);
5853

59-
// Make all the values
60-
let mut values = Values::new();
61-
62-
let x = SO2::from_theta(1.0);
63-
let y = SO2::from_theta(2.0);
64-
values.insert(X(0), SO2::identity());
65-
values.insert(X(1), SO2::identity());
66-
67-
// Make the factors & insert into graph
68-
let mut graph = Graph::new();
69-
let res = PriorResidual::new(x.clone());
70-
let factor = fac![res, X(0)];
71-
graph.add_factor(factor);
72-
73-
let res = BetweenResidual::new(y.minus(&x));
74-
let robust = Huber::default();
75-
let factor = fac![res, (X(0), X(1)), 0.1 as std, robust];
76-
// fac! is syntactic sugar for the following
77-
// let noise = GaussianNoise::from_scalar_sigma(0.1);
78-
// let factor = FactorBuilder::new2(res, X(0), X(1))
79-
// .noise(noise)
80-
// .robust(robust)
81-
// .build();
82-
graph.add_factor(factor);
83-
84-
// Optimize!
85-
let mut opt: GaussNewton = GaussNewton::new(graph);
86-
let result = opt.optimize(values);
54+
fn main() {
55+
// Make all the values
56+
let mut values = Values::new();
57+
58+
let x = SO2::from_theta(1.0);
59+
let y = SO2::from_theta(2.0);
60+
values.insert(X(0), SO2::identity());
61+
values.insert(X(1), SO2::identity());
62+
63+
// Make the factors & insert into graph
64+
let mut graph = Graph::new();
65+
let res = PriorResidual::new(x.clone());
66+
let factor = fac![res, X(0)];
67+
graph.add_factor(factor);
68+
69+
let res = BetweenResidual::new(y.minus(&x));
70+
let robust = Huber::default();
71+
let factor = fac![res, (X(0), X(1)), 0.1 as std, robust];
72+
// fac! is syntactic sugar for the following
73+
// let noise = GaussianNoise::from_scalar_sigma(0.1);
74+
// let factor = FactorBuilder::new2(res, X(0), X(1))
75+
// .noise(noise)
76+
// .robust(robust)
77+
// .build();
78+
graph.add_factor(factor);
79+
80+
// Optimize!
81+
let mut opt: GaussNewton = GaussNewton::new(graph);
82+
let result = opt.optimize(values).unwrap();
83+
println!("Results {:#}", result);
84+
}
8785
```
8886

8987
# Installation

examples/readme.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
use factrs::{
2+
core::{
3+
assign_symbols, fac, BetweenResidual, GaussNewton, Graph, Huber, PriorResidual, Values, SO2,
4+
},
5+
traits::*,
6+
};
7+
8+
// Assign symbols to variable types
9+
assign_symbols!(X: SO2);
10+
11+
fn main() {
12+
// Make all the values
13+
let mut values = Values::new();
14+
15+
let x = SO2::from_theta(1.0);
16+
let y = SO2::from_theta(2.0);
17+
values.insert(X(0), SO2::identity());
18+
values.insert(X(1), SO2::identity());
19+
20+
// Make the factors & insert into graph
21+
let mut graph = Graph::new();
22+
let res = PriorResidual::new(x.clone());
23+
let factor = fac![res, X(0)];
24+
graph.add_factor(factor);
25+
26+
let res = BetweenResidual::new(y.minus(&x));
27+
let robust = Huber::default();
28+
let factor = fac![res, (X(0), X(1)), 0.1 as std, robust];
29+
// fac! is syntactic sugar for the following
30+
// let noise = GaussianNoise::from_scalar_sigma(0.1);
31+
// let factor = FactorBuilder::new2(res, X(0), X(1))
32+
// .noise(noise)
33+
// .robust(robust)
34+
// .build();
35+
graph.add_factor(factor);
36+
37+
// Optimize!
38+
let mut opt: GaussNewton = GaussNewton::new(graph);
39+
let result = opt.optimize(values).unwrap();
40+
println!("Results {:#}", result);
41+
}

examples/serde.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
use factrs::{
2-
assign_symbols,
3-
containers::{Graph, Values},
4-
fac,
5-
residuals::{BetweenResidual, PriorResidual},
6-
robust::GemanMcClure,
7-
variables::{SE2, SO2},
1+
use factrs::core::{
2+
assign_symbols, fac, BetweenResidual, GemanMcClure, Graph, PriorResidual, Values, SE2, SO2,
83
};
94

105
assign_symbols!(X: SO2; Y: SE2);

src/lib.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,20 @@ pub mod traits {
135135
/// Helper module to group together common types
136136
///
137137
/// Specifically, this contains everything that would be needed to implement a
138-
/// simple pose graph. While we recommend against it, it can be all imported
139-
/// using
138+
/// simple pose graph. While we recommend against it, for quick usage it can be
139+
/// glob imported as
140140
/// ```
141141
/// use factrs::core::*;
142142
/// ```
143143
pub mod core {
144144
pub use crate::{
145+
assign_symbols,
145146
containers::{Factor, Graph, Values},
147+
fac,
146148
noise::{GaussianNoise, UnitNoise},
147149
optimizers::{GaussNewton, LevenMarquardt},
148150
residuals::{BetweenResidual, PriorResidual},
151+
robust::{GemanMcClure, Huber, L2},
149152
variables::{VectorVar, VectorVar1, VectorVar2, VectorVar3, SE2, SE3, SO2, SO3},
150153
};
151154
}

0 commit comments

Comments
 (0)