symforce-org / symforce

Fast symbolic computation, code generation, and nonlinear optimization for robotics
https://symforce.org
Apache License 2.0
1.41k stars 145 forks source link

Emit a warning if optimizing factors that don't touch any keys #178

Closed aaron-skydio closed 2 years ago

aaron-skydio commented 2 years ago

For instance, if I change the symforce_optimizer_test to just optimize one pose but still add all the factors:

[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]
[2022-06-15 15:03:42.358] [warning] LM<sym::Optimize>: Optimizing a factor that touches no optimized keys! Input keys for the factor are: [<FORMATTING DISABLED>, <FORMATTING DISABLED>]

(Side note: we need to somehow define SKYMARSHAL_PRINTING_ENABLED "by default" or something)