Skip to content

Commit 8ede817

Browse files
authored
docs: typos and parameterized -> parametrized (#299)
Parametrize is the correct meaning in this context https://english.stackexchange.com/questions/79847/parametrise-or-parameterise-a-curve
1 parent cee8b77 commit 8ede817

14 files changed

+51
-51
lines changed

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@
99
[![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)
1010
[![DOI](https://zenodo.org/badge/53457088.svg)](https://zenodo.org/badge/latestdoi/53457088)
1111

12-
This package implements various 3D rotation parameterizations and defines
13-
conversions between them. At their heart, each rotation parameterization *is*
12+
This package implements various 3D rotation parametrizations and defines
13+
conversions between them. At their heart, each rotation parametrization *is*
1414
a 3×3 unitary (orthogonal) matrix (based on the [StaticArrays.jl package](https://github.com/JuliaArrays/StaticArrays.jl)),
1515
and acts to rotate a 3-vector about the origin through matrix-vector multiplication.
1616

1717
While the `RotMatrix` type is a dense representation of a `3×3` matrix, we also
1818
have sparse (or computed, rather) representations such as quaternions,
19-
angle-axis parameterizations, and Euler angles.
19+
angle-axis parametrizations, and Euler angles.
2020

2121
For composing rotations about the origin with other transformations, see
2222
the [CoordinateTransformations.jl](https://github.com/JuliaGeometry/CoordinateTransformations.jl)
2323
package.
2424

2525
### Interface
26-
The following operations are supported by all of the implemented rotation parameterizations.
26+
The following operations are supported by all of the implemented rotation parametrizations.
2727

2828
#### Composition
2929
Any two rotations of the same type can be composed with simple multiplication:
@@ -49,22 +49,22 @@ r = q\r2
4949
```
5050

5151
#### Rotation Angle / Axis
52-
The rotation angle and axis can be obtained for any rotation parameterization using
52+
The rotation angle and axis can be obtained for any rotation parametrization using
5353
```julia
5454
rotation_axis(r::Rotation)
5555
rotation_angle(r::Rotation)
5656
```
5757

5858
#### Initialization
59-
All rotation types support `one(R)` to construct the identity rotation for the desired parameterization. A random rotation, uniformly sampled over the space of rotations, can be sampled using `rand(R)`. For example:
59+
All rotation types support `one(R)` to construct the identity rotation for the desired parametrization. A random rotation, uniformly sampled over the space of rotations, can be sampled using `rand(R)`. For example:
6060
```julia
6161
r = one(QuatRotation) # equivalent to QuatRotation(1.0, 0.0, 0.0, 0.0)
6262
q = rand(QuatRotation)
6363
p = rand(MRP{Float32})
6464
```
6565

6666
#### Conversion
67-
All rotatations can be converted to another parameterization by simply calling the constructor for the desired parameterization. For example:
67+
All rotations can be converted to another parametrization by simply calling the constructor for the desired parametrization. For example:
6868
```julia
6969
q = rand(QuatRotation)
7070
aa = AngleAxis(q)
@@ -103,7 +103,7 @@ q5 = q3 \ q2 # q5 = inv(q3) * q2
103103
# convert to a Modified Rodrigues Parameter (aka Stereographic quaternion projection, recommended for applications with differentiation)
104104
spq = MRP(r)
105105

106-
# convert to the Angle-axis parameterization, or related Rotation vector
106+
# convert to the Angle-axis parametrization, or related Rotation vector
107107
aa = AngleAxis(r)
108108
rv = RotationVec(r)
109109
ϕ = rotation_angle(r)
@@ -116,7 +116,7 @@ r_xyz = RotXYZ(r)
116116
# Rotation about the X axis by 0.1 radians
117117
r_x = RotX(0.1)
118118

119-
# Composing axis rotations together automatically results in Euler parameterization
119+
# Composing axis rotations together automatically results in Euler parametrization
120120
RotX(0.1) * RotY(0.2) * RotZ(0.3) === RotXYZ(0.1, 0.2, 0.3)
121121

122122
# Can calculate Jacobian - derivatives of rotations with respect to parameters
@@ -126,7 +126,7 @@ j2 = Rotations.jacobian(q, p) # How does the rotated point q*p change w.r.t. the
126126
# (MRP is ideal for optimization purposes - no constaints/singularities)
127127
```
128128

129-
### Rotation Parameterizations
129+
### Rotation Parametrizations
130130

131131
1. **Rotation Matrix** `RotMatrix{N, T}`
132132

@@ -149,7 +149,7 @@ j2 = Rotations.jacobian(q, p) # How does the rotated point q*p change w.r.t. the
149149

150150
3. **Quaternions** `QuatRotation{T}`
151151

152-
A 3D rotation parameterized by a unit quaternion. Note that the constructor
152+
A 3D rotation parametrized by a unit quaternion. Note that the constructor
153153
will renormalize the quaternion to be a unit quaternion, and that although
154154
they follow the same multiplicative *algebra* as quaternions, it is better
155155
to think of `QuatRotation` as a 3×3 matrix rather than as a quaternion *number*.
@@ -163,7 +163,7 @@ j2 = Rotations.jacobian(q, p) # How does the rotated point q*p change w.r.t. the
163163

164164
Note: If you're differentiating a Rodrigues Vector check the result is what
165165
you expect at theta = 0. The first derivative of the rotation *should*
166-
behave, but higher-order derivatives of it (as well as parameterization
166+
behave, but higher-order derivatives of it (as well as parametrization
167167
conversions) should be tested. The Stereographic Quaternion Projection (`MRP`) is
168168
the recommended three parameter format for differentiation.
169169

@@ -194,14 +194,14 @@ j2 = Rotations.jacobian(q, p) # How does the rotated point q*p change w.r.t. the
194194
10. **Euler Angles - Three-axis rotations** `RotXYZ{T}`, `RotXYX{T}`, etc
195195

196196
A composition of 3 cardinal axis rotations is typically known as a Euler
197-
angle parameterization of a 3D rotation. The rotations with 3 unique axes,
197+
angle parametrization of a 3D rotation. The rotations with 3 unique axes,
198198
such as `RotXYZ`, are said to follow the [**Tait Bryan**](https://en.wikipedia.org/wiki/Euler_angles#Tait.E2.80.93Bryan_angles) angle ordering,
199199
while those which repeat (e.g. `EulerXYX`) are said to use [**Proper Euler**](https://en.wikipedia.org/wiki/Euler_angles#Conventions) angle ordering.
200200

201201
Like the two-angle versions, the order of application to a vector is right-to-left, so that `RotXYZ(x, y, z) * v == RotX(x) * (RotY(y) * (RotZ(z) * v))`. This may be interpreted as an "extrinsic" rotation about the Z, Y, and X axes or as an "intrinsic" rotation about the X, Y, and Z axes. Similarly, `RotZYX(z, y, x)` may be interpreted as an "extrinsic" rotation about the X, Y, and Z axes or an "intrinsic" rotation about the Z, Y, and X axes.
202202

203203
### The Rotation Error state and Linearization
204-
It is often convenient to consider perturbations or errors about a particular 3D rotation, such as applications in state estimation or optimization-based control. Intuitively, we expect these errors to live in three-dimensional space. For globally non-singular parameterizations such as unit quaternions, we need a way to map between the four parameters of the quaternion to this three-dimensional plane tangent to the four-dimensional hypersphere on which quaternions live.
204+
It is often convenient to consider perturbations or errors about a particular 3D rotation, such as applications in state estimation or optimization-based control. Intuitively, we expect these errors to live in three-dimensional space. For globally non-singular parametrizations such as unit quaternions, we need a way to map between the four parameters of the quaternion to this three-dimensional plane tangent to the four-dimensional hypersphere on which quaternions live.
205205

206206
There are several of these maps provided by Rotations.jl:
207207
* `ExponentialMap`: A very common mapping that uses the quaternion
@@ -210,7 +210,7 @@ converts a 3D rotation vector (i.e. axis-angle vector) to a unit quaternion.
210210
It tends to be the most computationally expensive mapping.
211211

212212
* `CayleyMap`: Represents the differential quaternion using Rodrigues
213-
parameters. This parameterization goes singular at 180° but does not
213+
parameters. This parametrization goes singular at 180° but does not
214214
inherit the sign ambiguities of the unit quaternion. It offers an
215215
excellent combination of cheap computation and good behavior.
216216

@@ -221,7 +221,7 @@ differential unit quaternion. This mapping goes singular at 360°.
221221
differential unit quaternion. This mapping also goes singular at 180° but is
222222
the computationally cheapest map and often performs well.
223223

224-
Rotations.jl provides the `RotationError` type for representing rotation errors, that act just like a `SVector{3}` but carry the nonlinear map used to compute the error, which can also be used to convert the error back to a `QuatRotation` (and, by extention, any other 3D rotation parameterization). The following methods are useful for computing `RotationError`s and adding them back to the nominal rotation:
224+
Rotations.jl provides the `RotationError` type for representing rotation errors, that act just like a `SVector{3}` but carry the non-linear map used to compute the error, which can also be used to convert the error back to a `QuatRotation` (and, by extension, any other 3D rotation parametrization). The following methods are useful for computing `RotationError`s and adding them back to the nominal rotation:
225225
```julia
226226
rotation_error(R1::Rotation, R2::Rotation, error_map::ErrorMap) # compute the error between `R1` and `R2` using `error_map`
227227
add_error(R::Rotation, err::RotationError) # "adds" the error to `R` by converting back a `UnitQuaterion` and composing with `R`
@@ -246,7 +246,7 @@ respect to the infinitesimal rotation. For unit quaternions, this is a 4x3 matri
246246

247247
### Import / Export
248248

249-
All parameterizations can be converted to and from (mutable or immutable)
249+
All parametrizations can be converted to and from (mutable or immutable)
250250
3×3 matrices, e.g.
251251

252252
```julia

docs/src/3d_angleaxis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ R(\bm{v})
6666

6767
!!! note "Differentiation"
6868
If you're differentiating a Rodrigues Vector check the result is what you expect at theta = 0.
69-
The first derivative of the rotation *should* behave, but higher-order derivatives of it (as well as parameterization conversions) should be tested.
69+
The first derivative of the rotation *should* behave, but higher-order derivatives of it (as well as parametrization conversions) should be tested.
7070
The Stereographic Quaternion Projection (`MRP`) is the recommended three parameter format for differentiation.
7171

7272
**example**

docs/src/3d_quaternion.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using Rotations
55
```
66

77
## `QuatRotation`
8-
A 3D rotation parameterized by a unit [quaternion](https://en.wikipedia.org/wiki/Quaternion) ([versor](https://en.wikipedia.org/wiki/Versor)).
8+
A 3D rotation parametrized by a unit [quaternion](https://en.wikipedia.org/wiki/Quaternion) ([versor](https://en.wikipedia.org/wiki/Versor)).
99
Note that the constructor will renormalize the quaternion to be a unit quaternion, and that although they follow the same multiplicative *algebra* as quaternions, it is better to think of `QuatRotation` as a ``3 \times 3`` matrix rather than as a quaternion *number*.
1010

1111
```math

docs/src/rotation_types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ For more information, see the sidebar page.
4444
* `RotationVec`
4545
* Rotation around given axis. The length of axis vector represents its angle.
4646
* `QuatRotation`
47-
* A 3D rotation parameterized by a unit quaternion.
47+
* A 3D rotation parametrized by a unit quaternion.
4848
* `MRP`
4949
* A 3D rotation encoded by the stereographic projection of a unit quaternion.

src/angleaxis_types.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
struct AngleAxis{T} <: Rotation{3,T}
55
AngleAxis(Θ, x, y, z)
66
7-
A 3×3 rotation matrix parameterized by a 3D rotation by angle θ about an
7+
A 3×3 rotation matrix parametrized by a 3D rotation by angle θ about an
88
arbitrary axis `[x, y, z]`.
99
10-
Note that the axis is not unique for θ = 0, and that this parameterization does
10+
Note that the axis is not unique for θ = 0, and that this parametrization does
1111
not continuously map the neighbourhood of the identity rotation (and therefore
1212
might not be suitable for autodifferentation and optimization purposes).
1313
@@ -99,7 +99,7 @@ end
9999
return AA(r.theta, 0, 0, 1)
100100
end
101101

102-
# Using Rodrigues formula on an AngleAxis parameterization (assume unit axis length) to do the rotation
102+
# Using Rodrigues formula on an AngleAxis parametrization (assume unit axis length) to do the rotation
103103
# (implementation from: https://ceres-solver.googlesource.com/ceres-solver/+/1.10.0/include/ceres/rotation.h)
104104
function Base.:*(aa::AngleAxis, v::StaticVector)
105105
if length(v) != 3
@@ -141,7 +141,7 @@ end
141141
struct RotationVec{T} <: Rotation{3,T}
142142
RotationVec(sx, sy, sz)
143143
144-
Rodrigues vector parameterization of a 3×3 rotation matrix. The direction of the
144+
Rodrigues vector parametrization of a 3×3 rotation matrix. The direction of the
145145
vector [sx, sy, sz] defines the axis of rotation, and the rotation angle is
146146
given by its norm.
147147
"""

src/core_types.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ end
133133
theta::T
134134
end
135135
136-
A 2×2 rotation matrix parameterized by a 2D rotation by angle.
136+
A 2×2 rotation matrix parametrized by a 2D rotation by angle.
137137
Only the angle is stored inside the `Angle2d` type, values
138138
of `getindex` etc. are computed on the fly.
139139
"""

src/derivatives.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ ith_partial{N}(X::SMatrix{9,N}, i) = @SMatrix([X[1,i] X[4,i] X[7,i];
2424

2525
"""
2626
jacobian(::Type{output_param}, R::input_param)
27-
Returns the jacobian for transforming from the input rotation parameterization
28-
to the output parameterization, centered at the value of R.
27+
Returns the Jacobian for transforming from the input rotation parametrization
28+
to the output parametrization, centered at the value of R.
2929
3030
jacobian(R::rotation_type, X::AbstractVector)
3131
Returns the jacobian for rotating the vector X by R.
@@ -221,11 +221,11 @@ end
221221
#
222222
"""
223223
1) hessian(::Type{output_param}, R::input_param)
224-
Returns the 2nd order partial derivatives for transforming from the input rotation parameterization to the output parameterization, centered at the value of R.
225-
The output is an N vector of DxD matrices, where N and D are the number of parameters in the output and input parameterizations respectively.
224+
Returns the 2nd order partial derivatives for transforming from the input rotation parametrization to the output parametrization, centered at the value of R.
225+
The output is an N vector of DxD matrices, where N and D are the number of parameters in the output and input parametrizations respectively.
226226
2) hessian(R::rotation_type, X::AbstractVector)
227227
Returns the 2nd order partial derivatives for rotating the vector X by R.
228-
The output is an 3 vector of DxD matrices, where D is the number of parameters of the rotation parameterization.
228+
The output is an 3 vector of DxD matrices, where D is the number of parameters of the rotation parametrization.
229229
"""
230230
function hessian(::Type{Quaternion}, X::SpQuat)
231231

src/error_maps.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
"""
33
ErrorMap
44
5-
A nonlinear mapping between the space of unit quaternions and three-dimensional
5+
A non-linear mapping between the space of unit quaternions and three-dimensional
66
rotation errors.
77
8-
These mappings are extremely useful for converting from globally nonsingular 3D rotation
8+
These mappings are extremely useful for converting from globally non-singular 3D rotation
99
representations such as `QuatRotation` or `RotMatrix3` to a three-parameter error that can
1010
be efficiently used in gradient-based optimization methods that optimize deviations about
1111
a current iterate using first or second-order information.
@@ -38,7 +38,7 @@ struct IdentityMap <: ErrorMap end
3838
"""
3939
InvErrorMap
4040
41-
The nonlinear mapping from unit quaternions to a three-dimensional error state. Obtained by
41+
The non-linear mapping from unit quaternions to a three-dimensional error state. Obtained by
4242
inverting an `ErrorMap`, i.e.
4343
4444
InvCayleyMap() = inv(CayleyMap())

0 commit comments

Comments
 (0)