Skip to content

Commit 27c5d51

Browse files
authored
Fixes for joss review (#101)
* Fix build/install instruction in readme Fix #99 * Update/fix typo README.md * remove 'constexpr void' function altogether Fix #98 * readme install eigen on osx
1 parent 59aebec commit 27c5d51

File tree

3 files changed

+19
-37
lines changed

3 files changed

+19
-37
lines changed

CMakeLists.txt

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,6 @@ option(BUILD_TESTING "Build all tests." OFF)
4949
option(ENABLE_CPPCHECK "Enable cppcheck." OFF)
5050
option(BUILD_EXAMPLES "Build all examples." OFF)
5151

52-
# Do a backup
53-
set(CMAKE_REQUIRED_FLAGS_BK ${CMAKE_REQUIRED_FLAGS})
54-
include(CheckCXXSourceCompiles)
55-
set(CMAKE_REQUIRED_FLAGS "-std=c++11")
56-
# Check if compiler support constexpr functions
57-
CHECK_CXX_SOURCE_COMPILES(
58-
"
59-
constexpr void f() {};
60-
int main(void) { return 0; }
61-
"
62-
_MANIF_COMPILER_SUPPORTS_CONSTEXPR_VOID_)
63-
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_BK})
64-
6552
###########
6653
## Build ##
6754
###########

README.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,33 @@
77
![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)
88

99
## Package Summary
10-
**manif** is a header-only c++11 Lie theory library for state-estimation
10+
**manif** is a header-only C++11 Lie theory library for state-estimation
1111
targeted at robotics applications.
1212

1313
At the moment, it provides the groups:
1414
- SO(2): rotations in the plane.
15-
- SE(2): righd motion (rotation and translation) in the plane.
15+
- SE(2): rigid motion (rotation and translation) in the plane.
1616
- SO(3): rotations in 3D space.
17-
- SE(3): righd motion (rotation and translation) in 3D space.
17+
- SE(3): rigid motion (rotation and translation) in 3D space.
1818

1919
Other Lie groups can and will be added, contributions are welcome.
2020

2121
**manif** is based on the mathematical presentation of the Lie theory available in [this paper](http://arxiv.org/abs/1812.01537).
2222
We recommend every user of **manif** to read the paper (17 pages) before starting to use the library.
23-
The paper provides a thorough introduction to Lie theory, in a simplified way so as to make the entrance to Lie theory easy for average robotician who is interested in designing rigorous and elegant state estimation algorithms.
23+
The paper provides a thorough introduction to Lie theory, in a simplified way so as to make the entrance to Lie theory easy for the average robotician who is interested in designing rigorous and elegant state estimation algorithms.
2424

2525
**manif** has been designed for an easy integration to larger projects:
2626
- A single dependency on [Eigen](http://eigen.tuxfamily.org),
2727
- header-only for easy integration,
2828
- templated on the underlying scalar type so that one can use its own,
29-
- and c++11, since not everyone gets to enjoy the latest c++ features, especially in industry.
29+
- and C++11, since not everyone gets to enjoy the latest C++ features, especially in industry.
3030

3131
It provides analytic computation of Jacobians for all the operations.
3232
It also supports template scalar types. In particular, it can work with the
3333
[`ceres::Jet`](http://ceres-solver.org/automatic_derivatives.html#dual-numbers-jets) type, allowing for automatic Jacobian computation --
34-
<a href="#jacobians">see related paragraph on Jacobians below</a>.
34+
[see related paragraph on Jacobians below](#jacobians).
3535

36-
All Lie group classes defined in **manif** have in common that they inherit from a templated base class (CRTP).
36+
All Lie group classes defined in **manif** have in common that they inherit from a templated base class ([CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern)).
3737
It allows one to write generic code abstracting the Lie group details.
3838
Please find more information in the related [wiki page](https://github.com/artivis/manif/wiki/Writing-generic-code)
3939

@@ -65,7 +65,9 @@ ___
6565

6666
### Dependencies
6767

68-
- Eigen 3 : ```apt-get install libeigen3-dev```
68+
- Eigen 3 :
69+
- Ubuntu and similar ```apt-get install libeigen3-dev```
70+
- OS X ```brew install eigen```
6971
- [lt::optional](https://github.com/TartanLlama/optional) : included in the `external` folder
7072

7173
### Installation
@@ -80,14 +82,11 @@ $ apt-get install manif
8082
```terminal
8183
$ git clone https://github.com/artivis/manif.git
8284
$ cd manif && mkdir build && cd build
83-
$ cmake ..
84-
$ make
85-
```
86-
###### To build also examples/tests
87-
```terminal
8885
$ cmake -DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON ..
8986
$ make
87+
$ make install
9088
```
89+
9190
###### Using catkin_tools
9291
```terminal
9392
$ git clone https://github.com/artivis/manif.git
@@ -96,7 +95,7 @@ $ catkin build manif --cmake-args -DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON
9695

9796
###### Generate the documentation
9897
```terminal
99-
cd [manif]
98+
cd manif
10099
doxygen .doxygen.txt
101100
```
102101

@@ -125,8 +124,8 @@ target_include_directories(${PROJECT_NAME} SYSTEM ${manif_INCLUDE_DIRS})
125124
| Act on vector | <img src="https://latex.codecogs.com/png.latex?\mathbf\mathcal{X}\circ\mathbf&space;v"/> | `X.act(v)` |
126125
| Retract to group element | <img src="https://latex.codecogs.com/png.latex?\exp(\mathbf\varphi^\wedge)" title="\exp(\mathbf \varphi^{^})" /> | `w.exp()` |
127126
| Lift to tangent space | <img src="https://latex.codecogs.com/png.latex?\log(\mathbf&space;\mathcal{X})^\vee" title="\log(\mathbf \Phi)" /> | `X.log()` |
128-
| Manifold Adjoint | <img src="https://latex.codecogs.com/png.latex?Adj(\mathbf&space;\mathcal{X})" /> | `X.adj()` |
129-
| Tangent adjoint | <img src="https://latex.codecogs.com/png.latex?adj(\mathbf&space;\varphi^\wedge)" /> | `w.smallAdj()` |
127+
| Manifold Adjoint | <img src="https://latex.codecogs.com/png.latex?\operatorname{Adj}(\mathbf&space;\mathcal{X})" /> | `X.adj()` |
128+
| Tangent adjoint | <img src="https://latex.codecogs.com/png.latex?\operatorname{adj}(\mathbf&space;\varphi^\wedge)" /> | `w.smallAdj()` |
130129
| | Composed Operation | |
131130
| Manifold right plus | <img src="https://latex.codecogs.com/png.latex?\mathbf\mathcal{X}\oplus\mathbf\varphi=\mathbf\mathcal{X}\circ\exp(\mathbf\varphi^\wedge)" /> | `X + w`<br/>`X.plus(w)`<br/>`X.rplus(w)` |
132131
| Manifold left plus | <img src="https://latex.codecogs.com/png.latex?\mathbf\varphi\oplus\mathbf\mathcal{X}=\exp(\mathbf\varphi^\wedge)\circ\mathbf\mathcal{X}" /> | `w + X`<br/>`w.plus(X)`<br/>`w.lplus(X)` |
@@ -184,9 +183,9 @@ local perturbation on the tangent space.
184183
These Jacobians map tangent spaces, as described in [this paper](http://arxiv.org/abs/1812.01537).
185184

186185
However, many non-linear solvers
187-
(e.g. [Ceres](http://ceres-solver.org/)) expect functions to be differentiated wrt the underlying
186+
(e.g. [Ceres](http://ceres-solver.org/)) expect functions to be differentiated with respect to the underlying
188187
representation vector of the group element
189-
(e.g. wrt to quaternion vector for <img src="https://latex.codecogs.com/png.latex?SO^3"/>).
188+
(e.g. with respect to quaternion vector for <img src="https://latex.codecogs.com/png.latex?SO^3"/>).
190189

191190
For this reason **manif** is compliant with [Ceres](http://ceres-solver.org/)
192191
auto-differentiation and the
@@ -208,11 +207,11 @@ Some more general documentation and tips on the use of the library is available
208207
To generate the documentation on your machine, type in the terminal
209208

210209
```terminal
211-
cd [manif]
210+
cd manif
212211
doxygen .doxygen.txt
213212
```
214213

215-
and find it at `[manif]/doc/html/index.html`.
214+
and find it at `manif/doc/html/index.html`.
216215

217216
Throughout the code documentation we refer to 'the paper' which you can
218217
find in the section <a href="#publications">Publications</a>.

include/manif/impl/macro.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@ struct invalid_argument : std::invalid_argument
1919

2020
namespace detail {
2121
template <typename E, typename... Args>
22-
#ifdef _MANIF_COMPILER_SUPPORTS_CONSTEXPR_VOID_
23-
constexpr void
24-
#else
2522
void
26-
#endif
2723
__attribute__(( noinline, cold, noreturn )) raise(Args&&... args)
2824
{
2925
throw E(std::forward<Args>(args)...);

0 commit comments

Comments
 (0)