Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
2 changes: 0 additions & 2 deletions defaults.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# Default configuration for run_pipeline.py
keyframing:
max_rotation: 20.0
max_distance: 1.0
Expand Down Expand Up @@ -38,7 +37,6 @@ optimization:
imu:
optimize_scale: false
optimize_gravity: false
optimize_imu_from_rig: false
optimize_bias: true
gyro_infl: 1.0
acc_infl: 1.0
Expand Down
1 change: 0 additions & 1 deletion lamaria/config/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ class OptIMUOptions:

optimize_scale: bool = False
optimize_gravity: bool = False
optimize_imu_from_rig: bool = False
optimize_bias: bool = False


Expand Down
13 changes: 6 additions & 7 deletions lamaria/pipeline/optim/residual.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,15 @@ def setup_manifolds_and_constraints(
problem,
):
"""Setup manifolds and parameter constraints"""
problem.set_manifold(session.gravity, pyceres.SphereManifold(3))
problem.set_manifold(
session.imu_from_rig.rotation.quat, pyceres.EigenQuaternionManifold()
)

# Apply optimization constraints based on configuration
if not imu_options.optimize_scale:
problem.set_parameter_block_constant(session.log_scale)
if not imu_options.optimize_gravity:
problem.set_parameter_block_constant(session.gravity)
if not imu_options.optimize_imu_from_rig:
problem.set_parameter_block_constant(session.imu_from_rig.rotation.quat)
problem.set_parameter_block_constant(session.imu_from_rig.translation)
else:
problem.set_manifold(session.gravity, pyceres.SphereManifold(3))

if not imu_options.optimize_bias:
constant_idxs = np.arange(3, 9)
for frame_id in session.imu_states:
Expand All @@ -82,4 +78,7 @@ def setup_manifolds_and_constraints(
pyceres.SubsetManifold(9, constant_idxs),
)

problem.set_parameter_block_constant(session.imu_from_rig.rotation.quat)
problem.set_parameter_block_constant(session.imu_from_rig.translation)

return problem