Skip to content

Commit fe121e1

Browse files
svwilliamsgiafranchini
authored andcommitted
Port support for Ceres 2.1.0 Manifold class into ROS 2 Rolling (locusrobotics#366)
* Support gcc12 and ceres 2.1.0 * Add support for the Manifold class when using Ceres Solver version 2.1.0 and above * General clean up for Ceres 2.2.0 support * Updated serialization support to be backwards compatible with previously serialized files * Formatting changes required for ROS 2 Rolling / Ubuntu Noble
1 parent ac96de6 commit fe121e1

File tree

19 files changed

+330
-330
lines changed

19 files changed

+330
-330
lines changed

fuse_constraints/src/marginalize_variables.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ fuse_core::Transaction marginalizeVariables(
192192
[&elimination_order, &marginalized_variables](const fuse_core::UUID & variable_uuid)
193193
{
194194
return elimination_order.exists(variable_uuid) &&
195-
elimination_order.at(variable_uuid) < marginalized_variables.size();
195+
elimination_order.at(variable_uuid) < marginalized_variables.size();
196196
})); // NOLINT
197197

198198
fuse_core::Transaction transaction;

fuse_constraints/src/variable_constraints.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ bool VariableConstraints::empty() const
5252
size_t VariableConstraints::size() const
5353
{
5454
auto sum_edges = [](const size_t input, const ConstraintCollection & edges)
55-
{
56-
return input + edges.size();
57-
};
55+
{
56+
return input + edges.size();
57+
};
5858
return std::accumulate(variable_constraints_.begin(), variable_constraints_.end(), 0u, sum_edges);
5959
}
6060

fuse_core/include/fuse_core/callback_wrapper.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ template<typename T>
109109
class CallbackWrapper : public CallbackWrapperBase
110110
{
111111
public:
112-
using CallbackFunction = std::function<T(void)>;
112+
using CallbackFunction = std::function<T (void)>;
113113

114114
/**
115115
* @brief Constructor

fuse_core/include/fuse_core/ceres_options.hpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,30 +54,30 @@
5454
* For a given Ceres Solver Option <T>, the function ToString calls ceres::<T>ToString
5555
*/
5656
#define CERES_OPTION_TO_STRING_DEFINITION(Option) \
57-
static inline const char * ToString(ceres::Option value) \
58-
{ \
59-
return ceres::Option ## ToString(value); \
60-
}
57+
static inline const char * ToString(ceres::Option value) \
58+
{ \
59+
return ceres::Option ## ToString(value); \
60+
}
6161

6262
/**
6363
* Defines FromString overloaded function to Ceres Options.
6464
*
6565
* For a given Ceres Solver Option <T>, the function FromString calls ceres::StringTo<T>
6666
*/
6767
#define CERES_OPTION_FROM_STRING_DEFINITION(Option) \
68-
static inline bool FromString(std::string string_value, ceres::Option * value) \
69-
{ \
70-
return ceres::StringTo ## Option(string_value, value); \
71-
}
68+
static inline bool FromString(std::string string_value, ceres::Option * value) \
69+
{ \
70+
return ceres::StringTo ## Option(string_value, value); \
71+
}
7272

7373
/**
7474
* Defines ToString and FromString overloaded functions for Ceres Options.
7575
*
7676
* See CERES_OPTION_TO_STRING_DEFINITION and CERES_OPTION_FROM_STRING_DEFINITION.
7777
*/
7878
#define CERES_OPTION_STRING_DEFINITIONS(Option) \
79-
CERES_OPTION_TO_STRING_DEFINITION(Option) \
80-
CERES_OPTION_FROM_STRING_DEFINITION(Option)
79+
CERES_OPTION_TO_STRING_DEFINITION(Option) \
80+
CERES_OPTION_FROM_STRING_DEFINITION(Option)
8181

8282
#if !CERES_VERSION_AT_LEAST(2, 0, 0)
8383
/**
@@ -99,8 +99,8 @@ static void UpperCase(std::string * input)
9999
inline const char * LoggingTypeToString(LoggingType type)
100100
{
101101
switch (type) {
102-
CASESTR(SILENT);
103-
CASESTR(PER_MINIMIZER_ITERATION);
102+
CASESTR(SILENT);
103+
CASESTR(PER_MINIMIZER_ITERATION);
104104
default:
105105
return "UNKNOWN";
106106
}
@@ -117,8 +117,8 @@ inline bool StringToLoggingType(std::string value, LoggingType * type)
117117
inline const char * DumpFormatTypeToString(DumpFormatType type)
118118
{
119119
switch (type) {
120-
CASESTR(CONSOLE);
121-
CASESTR(TEXTFILE);
120+
CASESTR(CONSOLE);
121+
CASESTR(TEXTFILE);
122122
default:
123123
return "UNKNOWN";
124124
}

fuse_core/include/fuse_core/constraint.hpp

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@
6767
* @endcode
6868
*/
6969
#define FUSE_CONSTRAINT_CLONE_DEFINITION(...) \
70-
fuse_core::Constraint::UniquePtr clone() const override \
71-
{ \
72-
return __VA_ARGS__::make_unique(*this); \
73-
}
70+
fuse_core::Constraint::UniquePtr clone() const override \
71+
{ \
72+
return __VA_ARGS__::make_unique(*this); \
73+
}
7474

7575
/**
7676
* @brief Implementation of the serialize() and deserialize() member functions for derived classes
@@ -86,22 +86,22 @@
8686
* @endcode
8787
*/
8888
#define FUSE_CONSTRAINT_SERIALIZE_DEFINITION(...) \
89-
void serialize(fuse_core::BinaryOutputArchive & archive) const override \
90-
{ \
91-
archive << *this; \
92-
} /* NOLINT */ \
93-
void serialize(fuse_core::TextOutputArchive & archive) const override \
94-
{ \
95-
archive << *this; \
96-
} /* NOLINT */ \
97-
void deserialize(fuse_core::BinaryInputArchive & archive) override \
98-
{ \
99-
archive >> *this; \
100-
} /* NOLINT */ \
101-
void deserialize(fuse_core::TextInputArchive & archive) override \
102-
{ \
103-
archive >> *this; \
104-
}
89+
void serialize(fuse_core::BinaryOutputArchive & archive) const override \
90+
{ \
91+
archive << *this; \
92+
} /* NOLINT */ \
93+
void serialize(fuse_core::TextOutputArchive & archive) const override \
94+
{ \
95+
archive << *this; \
96+
} /* NOLINT */ \
97+
void deserialize(fuse_core::BinaryInputArchive & archive) override \
98+
{ \
99+
archive >> *this; \
100+
} /* NOLINT */ \
101+
void deserialize(fuse_core::TextInputArchive & archive) override \
102+
{ \
103+
archive >> *this; \
104+
}
105105

106106
/**
107107
* @brief Implements the type() member function using the suggested implementation
@@ -119,17 +119,17 @@
119119
* @endcode
120120
*/
121121
#define FUSE_CONSTRAINT_TYPE_DEFINITION(...) \
122-
struct detail \
123-
{ \
124-
static std::string type() \
125-
{ \
126-
return boost::typeindex::stl_type_index::type_id<__VA_ARGS__>().pretty_name(); \
127-
} /* NOLINT */ \
128-
}; /* NOLINT */ \
129-
std::string type() const override \
130-
{ \
131-
return detail::type(); \
132-
}
122+
struct detail \
123+
{ \
124+
static std::string type() \
125+
{ \
126+
return boost::typeindex::stl_type_index::type_id<__VA_ARGS__>().pretty_name(); \
127+
} /* NOLINT */ \
128+
}; /* NOLINT */ \
129+
std::string type() const override \
130+
{ \
131+
return detail::type(); \
132+
}
133133

134134
/**
135135
* @brief Convenience function that creates the required pointer aliases, clone() method, and type()
@@ -146,10 +146,10 @@
146146
* @endcode
147147
*/
148148
#define FUSE_CONSTRAINT_DEFINITIONS(...) \
149-
FUSE_SMART_PTR_DEFINITIONS(__VA_ARGS__) \
150-
FUSE_CONSTRAINT_TYPE_DEFINITION(__VA_ARGS__) \
151-
FUSE_CONSTRAINT_CLONE_DEFINITION(__VA_ARGS__) \
152-
FUSE_CONSTRAINT_SERIALIZE_DEFINITION(__VA_ARGS__)
149+
FUSE_SMART_PTR_DEFINITIONS(__VA_ARGS__) \
150+
FUSE_CONSTRAINT_TYPE_DEFINITION(__VA_ARGS__) \
151+
FUSE_CONSTRAINT_CLONE_DEFINITION(__VA_ARGS__) \
152+
FUSE_CONSTRAINT_SERIALIZE_DEFINITION(__VA_ARGS__)
153153

154154
/**
155155
* @brief Convenience function that creates the required pointer aliases, clone() method, and type()
@@ -166,10 +166,10 @@
166166
* @endcode
167167
*/
168168
#define FUSE_CONSTRAINT_DEFINITIONS_WITH_EIGEN(...) \
169-
FUSE_SMART_PTR_DEFINITIONS_WITH_EIGEN(__VA_ARGS__) \
170-
FUSE_CONSTRAINT_TYPE_DEFINITION(__VA_ARGS__) \
171-
FUSE_CONSTRAINT_CLONE_DEFINITION(__VA_ARGS__) \
172-
FUSE_CONSTRAINT_SERIALIZE_DEFINITION(__VA_ARGS__)
169+
FUSE_SMART_PTR_DEFINITIONS_WITH_EIGEN(__VA_ARGS__) \
170+
FUSE_CONSTRAINT_TYPE_DEFINITION(__VA_ARGS__) \
171+
FUSE_CONSTRAINT_CLONE_DEFINITION(__VA_ARGS__) \
172+
FUSE_CONSTRAINT_SERIALIZE_DEFINITION(__VA_ARGS__)
173173

174174

175175
namespace fuse_core

fuse_core/include/fuse_core/eigen_gtest.hpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -108,23 +108,23 @@ AssertionResult AssertMatrixNearHelper(
108108
// Internal macro for implementing {EXPECT|ASSERT}_MATRIX_EQ.
109109
// Don't use this in your code.
110110
#define GTEST_MATRIX_EQUAL_(v1, v2, on_failure) \
111-
GTEST_ASSERT_( \
112-
::testing::AssertMatrixEqualHelper( \
113-
#v1, \
114-
#v2, \
115-
v1, \
116-
v2), on_failure)
111+
GTEST_ASSERT_( \
112+
::testing::AssertMatrixEqualHelper( \
113+
#v1, \
114+
#v2, \
115+
v1, \
116+
v2), on_failure)
117117

118118
// Internal macro for implementing {EXPECT|ASSERT}_MATRIX_NEAR.
119119
// Don't use this in your code.
120120
#define GTEST_MATRIX_NEAR_(v1, v2, tol, on_failure) \
121-
GTEST_ASSERT_( \
122-
::testing::AssertMatrixNearHelper( \
123-
#v1, \
124-
#v2, \
125-
v1, \
126-
v2, \
127-
tol), on_failure)
121+
GTEST_ASSERT_( \
122+
::testing::AssertMatrixNearHelper( \
123+
#v1, \
124+
#v2, \
125+
v1, \
126+
v2, \
127+
tol), on_failure)
128128

129129
// Define gtest macros for use with Eigen
130130

@@ -137,7 +137,7 @@ AssertionResult AssertMatrixNearHelper(
137137
* @param[in] v2 The actual matrix
138138
*/
139139
#define EXPECT_MATRIX_EQ(v1, v2) \
140-
GTEST_MATRIX_EQUAL_(v1, v2, GTEST_NONFATAL_FAILURE_)
140+
GTEST_MATRIX_EQUAL_(v1, v2, GTEST_NONFATAL_FAILURE_)
141141

142142
/**
143143
* @brief Fatal check for exact equality of two Eigen matrix-like objects.
@@ -148,7 +148,7 @@ AssertionResult AssertMatrixNearHelper(
148148
* @param[in] v2 The actual matrix
149149
*/
150150
#define ASSERT_MATRIX_EQ(v1, v2) \
151-
GTEST_MATRIX_EQUAL_(v1, v2, GTEST_FATAL_FAILURE_)
151+
GTEST_MATRIX_EQUAL_(v1, v2, GTEST_FATAL_FAILURE_)
152152

153153
/**
154154
* @brief Non-fatal check for approximate equality of two Eigen matrix-like objects.
@@ -160,7 +160,7 @@ AssertionResult AssertMatrixNearHelper(
160160
* @param[in] tol The allowed tolerance between any entries in v1 and v2
161161
*/
162162
#define EXPECT_MATRIX_NEAR(v1, v2, tol) \
163-
GTEST_MATRIX_NEAR_(v1, v2, tol, GTEST_NONFATAL_FAILURE_)
163+
GTEST_MATRIX_NEAR_(v1, v2, tol, GTEST_NONFATAL_FAILURE_)
164164

165165
/**
166166
* @brief Fatal check for approximate equality of two Eigen matrix-like objects.
@@ -172,7 +172,7 @@ AssertionResult AssertMatrixNearHelper(
172172
* @param[in] tol The allowed tolerance between any entries in v1 and v2
173173
*/
174174
#define ASSERT_MATRIX_NEAR(v1, v2, tol) \
175-
GTEST_MATRIX_NEAR_(v1, v2, tol, GTEST_FATAL_FAILURE_)
175+
GTEST_MATRIX_NEAR_(v1, v2, tol, GTEST_FATAL_FAILURE_)
176176

177177
} // namespace testing
178178

0 commit comments

Comments
 (0)