Skip to content

v0.24.4 RC1 #745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jul 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name = "RoME"
uuid = "91fb55c2-4c03-5a59-ba21-f4ea956187b8"
keywords = ["SLAM", "state-estimation", "MM-iSAM", "MM-iSAMv2", "inference", "robotics"]
desc = "Non-Gaussian simultaneous localization and mapping"
version = "0.24.3"
version = "0.24.4"

[deps]
ApproxManifoldProducts = "9bbbb610-88a1-53cd-9763-118ce10c1f89"
Expand Down Expand Up @@ -48,15 +48,19 @@ RoMEImageIOExt = "ImageIO"

[compat]
ApproxManifoldProducts = "0.8"
CameraModels = "0.2"
CoordinateTransformations = "0.5, 0.6"
Dates = "1.10"
DelimitedFiles = "1"
DifferentialEquations = "7"
Distributed = "1.10"
DistributedFactorGraphs = "0.23"
DistributedFactorGraphs = "0.23, 0.24"
Distributions = "0.24, 0.25"
DocStringExtensions = "0.8, 0.9"
FileIO = "1"
Flux = "0.14"
ImageCore = "0.9, 0.10"
ImageIO = "0.6"
IncrementalInference = "0.35"
Interpolations = "0.14, 0.15"
KernelDensityEstimate = "0.5.1, 0.6"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

Robot Motion Estimate (RoME.jl) is part of the overall [Caesar.jl][cjl-url] and provides a set of graph variables, factors, and utility features for robotics-related navigation, tracking, and mapping (i.e. SLAM). RoME.jl helps build front-ends using the [Multi-modal iSAM] backend solver which is implemented over at [IncrementalInference.jl][iif-url]. See [the related references of interest here](http://www.juliarobotics.org/Caesar.jl/latest/refs/literature/). Most notably, this package provides common navigation-type variables and factors to be included in more general [DistributedFactorGraphs.jl](https://github.com/JuliaRobotics/DistributedFactorGraphs.jl) graph objects.

[NavAbility.io](http://www.navability.io) helps the with administration and support of the Caesar.jl community, please reach out for any additional information (info@navability.io) or via the caesarjl Slack badge-link above.
[NavAbility(TM) by WhereWhen.ai](http://www.wherewhen.ai) helps the with administration and support of the Caesar.jl community, please reach out for any additional information (info@wherewhen.ai) or via the caesarjl Slack badge-link above.
## Installation

You can directly install with:
Expand Down
2 changes: 1 addition & 1 deletion ext/RoMEFluxExt.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module RoMEFluxExt

@info "RoME.jl is loading extension functionality related to Flux.jl."
# @info "RoME.jl is loading extension functionality related to Flux.jl."

using Flux

Expand Down
2 changes: 1 addition & 1 deletion ext/RoMEImageIOExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module RoMEImageIOExt

# ScalarField functions related to Images.jl

@info "RoME.jl is loading extension functionality related ImageCore.jl and ImageIO.jl"
# @info "RoME.jl is loading extension functionality related ImageCore.jl and ImageIO.jl"

using ImageIO
using ImageCore
Expand Down
1 change: 1 addition & 0 deletions src/RoME.jl
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ using Manifolds: hat, ProductGroup, ProductManifold, SpecialEuclidean, SpecialOr
import Manifolds: project, project!, identity_element

import Rotations as _Rot
import Rotations: ⊕, ⊖ # TODO deprecate

export SpecialOrthogonal, SpecialEuclidean
export submanifold_component
Expand Down
16 changes: 16 additions & 0 deletions src/factors/Pose3Pose3.jl
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ Pose3Pose3(::UniformScaling) = Pose3Pose3()

function (cf::CalcFactor{<:Pose3Pose3})(X, p::ArrayPartition{T}, q) where T
M = getManifold(Pose3)
# X: p_Xq̂
# p: w_H_p
# q: w_H_q
# ̂q: w_H_̂q = w_H_p * exp_0(p_Xq̂)
# w_H_̂q = Manifolds.compose(M, w_H_p, exp(M, getPointIdentity(M), p_Xq̂))

q̂ = Manifolds.compose(M, p, exp(M, getPointIdentity(M), X))

Xc::SVector{6,T} = get_coordinates(M, q, log(M, q, q̂), DefaultOrthogonalBasis())
Expand Down Expand Up @@ -85,4 +91,14 @@ function (cf::CalcFactor{<:Pose3Pose3UnitTrans})(X, p::ArrayPartition{T}, q) whe
q̂ = Manifolds.compose(M, p, exp(M, getPointIdentity(M), X))
Xc::SVector{6,T} = get_coordinates(M, q, log(M, q, q̂), DefaultOrthogonalBasis())
return SVector{6,T}(normalize(Xc[1:3])..., Xc[4:6]...)
end

Base.@kwdef struct PackedPose3Pose3UnitTrans <: AbstractPackedFactor
Z::PackedSamplableBelief
end
function convert(::Type{Pose3Pose3UnitTrans}, packed::PackedPose3Pose3UnitTrans)
return Pose3Pose3UnitTrans( convert(SamplableBelief, packed.Z) )
end
function convert(::Type{PackedPose3Pose3UnitTrans}, obj::Pose3Pose3UnitTrans)
return PackedPose3Pose3UnitTrans( convert(PackedSamplableBelief, obj.Z) )
end
Loading