diff --git a/2d_ellipse-1.pdf b/2d_ellipse-1.pdf index af63e334..5b2bad79 100644 Binary files a/2d_ellipse-1.pdf and b/2d_ellipse-1.pdf differ diff --git a/2d_ellipse-2.pdf b/2d_ellipse-2.pdf index 4129eb5d..b008ecc5 100644 Binary files a/2d_ellipse-2.pdf and b/2d_ellipse-2.pdf differ diff --git a/2d_ellipse.html b/2d_ellipse.html index 0677191d..6bee76a7 100644 --- a/2d_ellipse.html +++ b/2d_ellipse.html @@ -555,7 +555,7 @@

2D ellipse

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_line.html b/2d_line.html index 291ac2ca..2837775d 100644 --- a/2d_line.html +++ b/2d_line.html @@ -302,7 +302,7 @@

2D line

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_linesegment.html b/2d_linesegment.html index 051c8c00..b7539ee4 100644 --- a/2d_linesegment.html +++ b/2d_linesegment.html @@ -122,7 +122,7 @@

2D line segment

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_orient_SO2-1.pdf b/2d_orient_SO2-1.pdf index 98a07d72..bd6e8cb1 100644 Binary files a/2d_orient_SO2-1.pdf and b/2d_orient_SO2-1.pdf differ diff --git a/2d_orient_SO2.html b/2d_orient_SO2.html index 9d1d419e..9ddb9e79 100644 --- a/2d_orient_SO2.html +++ b/2d_orient_SO2.html @@ -121,7 +121,7 @@

SO(2) matrix

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -997,8 +997,8 @@

SO(2) matrix
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -1038,7 +1038,7 @@

SO(2) matrix
Return type
-

bool

+

bool

@@ -1809,7 +1809,7 @@

SO(2) matrix

printline() strline()

Return type
-

None

+

None

@@ -2167,7 +2167,7 @@

SO(2) matrix
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -2318,7 +2318,7 @@

SO(2) matrix

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_polygon-1.pdf b/2d_polygon-1.pdf index 7db4adb1..bf931a39 100644 Binary files a/2d_polygon-1.pdf and b/2d_polygon-1.pdf differ diff --git a/2d_polygon-2.pdf b/2d_polygon-2.pdf index 7bcec263..fa17e7a4 100644 Binary files a/2d_polygon-2.pdf and b/2d_polygon-2.pdf differ diff --git a/2d_polygon.html b/2d_polygon.html index a10e2629..79c8da5d 100644 --- a/2d_polygon.html +++ b/2d_polygon.html @@ -537,7 +537,7 @@

2D polgon

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_pose_SE2-1.pdf b/2d_pose_SE2-1.pdf index 93afc610..ace00e27 100644 Binary files a/2d_pose_SE2-1.pdf and b/2d_pose_SE2-1.pdf differ diff --git a/2d_pose_SE2.html b/2d_pose_SE2.html index 05692369..5d523558 100644 --- a/2d_pose_SE2.html +++ b/2d_pose_SE2.html @@ -125,7 +125,7 @@

SE(2) matrix

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -1152,8 +1152,8 @@

SE(2) matrix
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -1193,7 +1193,7 @@

SE(2) matrix
Return type
-

bool

+

bool

@@ -1964,7 +1964,7 @@

SE(2) matrix

printline() strline()

Return type
-

None

+

None

@@ -2340,7 +2340,7 @@

SE(2) matrix
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -2557,7 +2557,7 @@

SE(2) matrix

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/2d_pose_twist.html b/2d_pose_twist.html index e17f715c..2dd933a8 100644 --- a/2d_pose_twist.html +++ b/2d_pose_twist.html @@ -116,7 +116,7 @@

se(2) twist

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -701,11 +701,11 @@

se(2) twist
>>> from spatialmath import Twist3
 >>> S = Twist3(SE3.Rand())
 >>> S
-Twist3([-0.085167, 0.084531, -0.18368, 0.007879, 2.716, -0.97149])
+Twist3([0.53291, -0.8185, -0.32723, -2.2705, 0.2433, -0.10986])
 >>> S.inv()
-Twist3([0.085167, -0.084531, 0.18368, -0.007879, -2.716, 0.97149])
+Twist3([-0.53291, 0.8185, 0.32723, 2.2705, -0.2433, 0.10986])
 >>> S * S.inv()
-Twist3([0, -2.7756e-17, -3.9899e-17, 0, 0, 0])
+Twist3([1.1102e-16, -2.2204e-16, 0, 0, 0, 0])
 

@@ -850,7 +850,7 @@

se(2) twist
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -1126,7 +1126,7 @@

se(2) twist

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_dualquaternion.html b/3d_dualquaternion.html index 4a7d4398..9f73e778 100644 --- a/3d_dualquaternion.html +++ b/3d_dualquaternion.html @@ -140,7 +140,7 @@

Dual Quaternionclassmethod Pure(x)[source]
Return type
-

Self

+

Self

@@ -215,7 +215,7 @@

Dual Quaternion
Return type
-

Self

+

Self

@@ -359,7 +359,7 @@

Dual Quaternion

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_line.html b/3d_line.html index 6a8fcffc..4b9af3a0 100644 --- a/3d_line.html +++ b/3d_line.html @@ -108,9 +108,7 @@

3D line
-class Line3(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], w: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])[source]
-
-class Line3(v: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])
+class Line3(v=None, w=None, check=True)[source]

Bases: spatialmath.baseposelist.BasePoseList

@@ -121,7 +119,7 @@

3D line

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -295,9 +293,7 @@

3D line
-__init__(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], w: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])[source]
-
-__init__(v: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])
+__init__(v=None, w=None, check=True)[source]

Create a Line3 object

Parameters
@@ -529,8 +525,8 @@

3D line
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -570,7 +566,7 @@

3D line
Return type
-

bool

+

bool

@@ -1576,7 +1572,7 @@

3D line

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_orient_SO3-1.pdf b/3d_orient_SO3-1.pdf index aeabc732..1a1b774f 100644 Binary files a/3d_orient_SO3-1.pdf and b/3d_orient_SO3-1.pdf differ diff --git a/3d_orient_SO3.html b/3d_orient_SO3.html index f4ae4462..21198034 100644 --- a/3d_orient_SO3.html +++ b/3d_orient_SO3.html @@ -126,7 +126,7 @@

SO(3) matrix

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -241,9 +241,7 @@

SO(3) matrix
-classmethod Eul(*angles: float, unit: str = "'rad'") typing_extensions.Self[source]
-
-classmethod Eul(*angles: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], unit: str = "'rad'") typing_extensions.Self
+classmethod Eul(*angles, unit='rad')[source]

Construct a new SO(3) from Euler angles

Parameters
@@ -411,9 +409,7 @@

SO(3) matrix
-classmethod RPY(*angles: float, unit: str = "'rad'", order="'zyx'") typing_extensions.Self[source]
-
-classmethod RPY(*angles: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], unit: str = "'rad'", order="'zyx'") typing_extensions.Self
+classmethod RPY(*angles, unit='rad', order='zyx')[source]

Construct a new SO(3) from roll-pitch-yaw angles

Parameters
@@ -508,9 +504,9 @@

SO(3) matrix
>>> from spatialmath import SO3
 >>> x = SO3.Rand()
 >>> x
-SO3(array([[ 0.9424, -0.3344, -0.0026],
-           [ 0.1644,  0.4564,  0.8745],
-           [-0.2912, -0.8246,  0.4851]]))
+SO3(array([[-0.9534,  0.1331,  0.2706],
+           [-0.1306, -0.9911,  0.027 ],
+           [ 0.2718, -0.0096,  0.9623]]))
 
@@ -843,17 +839,7 @@

SO(3) matrix
-__init__()[source]
-
-__init__(arg: spatialmath.pose3d.SO3, *, check='True')
-
-__init__(arg: spatialmath.pose3d.SE3, *, check='True')
-
-__init__(arg: SO3Array, *, check='True')
-
-__init__(arg: List[SO3Array], *, check='True')
-
-__init__(arg: List[Union[spatialmath.pose3d.SO3, SO3Array]], *, check='True')
+__init__(arg=None, *, check=True)[source]

Construct new SO(3) object

Return type
@@ -1564,8 +1550,8 @@

SO(3) matrix
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -1605,7 +1591,7 @@

SO(3) matrix
Return type
-

bool

+

bool

@@ -2437,7 +2423,7 @@

SO(3) matrix

printline() strline()

Return type
-

None

+

None

@@ -2826,7 +2812,7 @@

SO(3) matrix
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -3046,7 +3032,7 @@

SO(3) matrix

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_orient_unitquaternion.html b/3d_orient_unitquaternion.html index ab40c116..f0e75ddb 100644 --- a/3d_orient_unitquaternion.html +++ b/3d_orient_unitquaternion.html @@ -137,7 +137,7 @@

Unit quaternion

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -451,11 +451,11 @@

Unit quaternion
>>> from spatialmath import UnitQuaternion as UQ
 >>> print(UQ.Rand())
- 0.4136 << -0.0236,  0.7383,  0.5322 >>
+ 0.1611 << -0.3811,  0.2960,  0.8610 >>
 >>> print(UQ.Rand(3))
- 0.3477 << -0.9081,  0.2034,  0.1147 >>
- 0.1876 << -0.7945,  0.5712, -0.0855 >>
- 0.2736 << -0.8952, -0.0688, -0.3451 >>
+ 0.1372 <<  0.4102,  0.9013,  0.0250 >>
+ 0.7938 << -0.4059, -0.3980, -0.2163 >>
+ 0.2434 <<  0.3112, -0.1144,  0.9115 >>
 
@@ -1692,7 +1692,7 @@

Unit quaternion
Return type
-

None

+

None

@@ -1769,7 +1769,7 @@

Unit quaternionParameters
  • end (UnitQuaternion) – final unit quaternion

  • -
  • shortest (Optional[bool]) – Take the shortest path along the great circle

  • +
  • shortest (Optional[bool]) – Take the shortest path along the great circle

  • s (array_like or int) – interpolation coefficient, range 0 to 1, or number of steps

@@ -1828,7 +1828,7 @@

Unit quaternion
Parameters
    -
  • shortest (Optional[bool]) – Take the shortest path along the great circle

  • +
  • shortest (Optional[bool]) – Take the shortest path along the great circle

  • s (array_like or int) – interpolation coefficient, range 0 to 1, or number of steps

@@ -2194,7 +2194,7 @@

Unit quaternion
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -2484,7 +2484,7 @@

Unit quaternion

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_plane.html b/3d_plane.html index 579ec5ea..14fb70d7 100644 --- a/3d_plane.html +++ b/3d_plane.html @@ -361,7 +361,7 @@

Plane

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_pose_SE3-1.pdf b/3d_pose_SE3-1.pdf index da72ba35..d5fb62a1 100644 Binary files a/3d_pose_SE3-1.pdf and b/3d_pose_SE3-1.pdf differ diff --git a/3d_pose_SE3.html b/3d_pose_SE3.html index 7c6dd10d..5532427f 100644 --- a/3d_pose_SE3.html +++ b/3d_pose_SE3.html @@ -168,7 +168,7 @@

SE(3) matrix

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -337,9 +337,7 @@

SE(3) matrix
-classmethod Eul(phi: float, theta: float, psi: float, unit: str = 'rad') spatialmath.pose3d.SE3[source]
-
-classmethod Eul(angles: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], unit: str = 'rad') spatialmath.pose3d.SE3
+classmethod Eul(*angles, unit='rad')[source]

Create an SE(3) pure rotation from Euler angles

Parameters
@@ -514,9 +512,7 @@

SE(3) matrix
-classmethod RPY(roll: float, pitch: float, yaw: float, unit: str = 'rad') spatialmath.pose3d.SE3[source]
-
-classmethod RPY(angles: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], unit: str = 'rad') spatialmath.pose3d.SE3
+classmethod RPY(*angles, unit='rad', order='zyx')[source]

Create an SE(3) pure rotation from roll-pitch-yaw angles

Parameters
@@ -622,13 +618,13 @@

SE(3) matrix
>>> from spatialmath import SE3
 >>> SE3.Rand(2)
 SE3([
-array([[ 0.3642,  0.9207, -0.14  ,  0.4218],
-       [ 0.5679, -0.3388, -0.7502,  0.3033],
-       [-0.7381,  0.1937, -0.6463,  0.7354],
+array([[-0.5737, -0.5994,  0.5583,  0.0125],
+       [-0.7935,  0.5757, -0.1973,  0.2054],
+       [-0.2032, -0.5561, -0.8059, -0.3645],
        [ 0.    ,  0.    ,  0.    ,  1.    ]]),
-array([[-0.706 , -0.1586, -0.6903,  0.4993],
-       [ 0.6593,  0.2087, -0.7223, -0.3281],
-       [ 0.2586, -0.965 , -0.0428, -0.2934],
+array([[ 0.8297, -0.4327,  0.3526, -0.3633],
+       [-0.1064,  0.4975,  0.8609,  0.4885],
+       [-0.548 , -0.7518,  0.3667, -0.2392],
        [ 0.    ,  0.    ,  0.    ,  1.    ]]) ])
 
@@ -842,9 +838,7 @@

SE(3) matrix
-classmethod Trans(x: float, y: float, z: float) spatialmath.pose3d.SE3[source]
-
-classmethod Trans(xyz: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) spatialmath.pose3d.SE3
+classmethod Trans(x, y=None, z=None)[source]

Create SE(3) from translation vector

Parameters
@@ -1226,19 +1220,7 @@

SE(3) matrix
-__init__()[source]
-
-__init__(x: Union[spatialmath.pose3d.SE3, spatialmath.pose3d.SO3, spatialmath.pose2d.SE2], *, check='True')
-
-__init__(x: List[spatialmath.pose3d.SE3], *, check='True')
-
-__init__(x: float, y: float, z: float, *, check='True')
-
-__init__(x: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], *, check='True')
-
-__init__(x: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], *, check='True')
-
-__init__(x: List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], *, check='True')
+__init__(x=None, y=None, z=None, *, check=True)[source]

Construct new SE(3) object

Return type
@@ -2773,7 +2755,7 @@

SE(3) matrix

printline() strline()

Return type
-

None

+

None

@@ -3159,7 +3141,7 @@

SE(3) matrix
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -3501,7 +3483,7 @@

SE(3) matrix

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_pose_dualquaternion.html b/3d_pose_dualquaternion.html index 0021edf1..d94b1344 100644 --- a/3d_pose_dualquaternion.html +++ b/3d_pose_dualquaternion.html @@ -108,7 +108,7 @@

Unit dual quaternion

-class UnitDualQuaternion(T: spatialmath.pose3d.SE3)[source]
+class UnitDualQuaternion(real=None, dual=None)[source]

Bases: spatialmath.DualQuaternion.DualQuaternion

[summary]

@@ -131,7 +131,7 @@

Unit dual quaternionclassmethod Pure(x)
Return type
-

Self

+

Self

@@ -181,7 +181,7 @@

Unit dual quaternion
-__init__(T: spatialmath.pose3d.SE3)[source]
+__init__(real=None, dual=None)[source]

Create new unit dual quaternion

Parameters
@@ -201,14 +201,14 @@

Unit dual quaternion
>>> from spatialmath import UnitDualQuaternion, SE3
 >>> T = SE3.Rand()
 >>> print(T)
-   0.7367    0.1074   -0.6676   -0.4989    
-   0.6681   -0.2683    0.694     0.3831    
-  -0.1046   -0.9573   -0.2694    0.5062    
+   0.007573 -0.65      0.7599    0.1257    
+   0.3056    0.7251    0.6172   -0.03884   
+  -0.9521    0.2275    0.2041    0.9315    
    0         0         0         1         
 
 >>> d = UnitDualQuaternion(T)
 >>> print(d)
--0.5475 <<  0.7541,  0.2571, -0.2560 >> + ε  0.2037 <  0.0225,  0.0221, -0.3471 >
+ 0.6958 << -0.1400,  0.6151,  0.3433 >> + ε -0.1392 < -0.2494, -0.1003,  0.3600 >
 >>> type(d)
 <class 'spatialmath.DualQuaternion.UnitDualQuaternion'>
 
@@ -243,7 +243,7 @@

Unit dual quaternion
Return type
-

Self

+

Self

@@ -387,7 +387,7 @@

Unit dual quaternion

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_pose_twist.html b/3d_pose_twist.html index 881df7c0..5cc4de01 100644 --- a/3d_pose_twist.html +++ b/3d_pose_twist.html @@ -177,7 +177,7 @@

se(3) twist

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -323,8 +323,8 @@

se(3) twist
>>> from spatialmath import Twist3
 >>> Twist3.Rand(N=2)
 Twist3([
-  [-0.30051, -1.1276, 0.38612, 2.4369, 0.022505, 1.849],
-  [0.38281, 0.35688, -0.43225, -2.0304, 0.5188, -0.24966]
+  [-0.3593, -0.5476, 1.3714, 0.33385, -0.99977, 0.88985],
+  [0.18471, 0.33358, 1.0167, 2.5831, 0.72188, 0.64953]
 ])
 
@@ -1081,11 +1081,11 @@

se(3) twist
>>> from spatialmath import Twist3
 >>> S = Twist3(SE3.Rand())
 >>> S
-Twist3([0.50234, -0.19903, 0.067103, -0.61177, -1.6873, 0.17415])
+Twist3([0.91701, -0.51477, 0.19019, -0.43025, -0.52311, 0.82259])
 >>> S.inv()
-Twist3([-0.50234, 0.19903, -0.067103, 0.61177, 1.6873, -0.17415])
+Twist3([-0.91701, 0.51477, -0.19019, 0.43025, 0.52311, -0.82259])
 >>> S * S.inv()
-Twist3([2.7756e-17, 1.3878e-17, 0, 0, 0, 0])
+Twist3([1.1102e-16, 8.3267e-17, 1.1102e-16, 4.5679e-17, 2.7756e-17, 8.1938e-18])
 

@@ -1142,7 +1142,7 @@

se(3) twist
  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/twist.py", line 968, in <listcomp>
     return Line3([Line3(-tw.v + tw.pitch * tw.w, tw.w) for tw in self])
-  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/geom3d.py", line 326, in __init__
+  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/geom3d.py", line 314, in __init__
     raise ValueError("invalid Plucker coordinates")
 ValueError: invalid Plucker coordinates
 
@@ -1259,7 +1259,7 @@

se(3) twist
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -1539,7 +1539,7 @@

se(3) twist

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/3d_quaternion.html b/3d_quaternion.html index 117c8285..ba0159d2 100644 --- a/3d_quaternion.html +++ b/3d_quaternion.html @@ -127,7 +127,7 @@

Quaternion

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -774,8 +774,8 @@

Quaternion
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -815,7 +815,7 @@

Quaternion
Return type
-

bool

+

bool

@@ -1321,7 +1321,7 @@

Quaternion
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -1528,7 +1528,7 @@

Quaternion

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_acceleration.html b/6d_acceleration.html index 4397d188..072d8704 100644 --- a/6d_acceleration.html +++ b/6d_acceleration.html @@ -137,7 +137,7 @@

Spatial acceleration

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -460,7 +460,7 @@

Spatial acceleration
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -511,7 +511,7 @@

Spatial acceleration

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_f6.html b/6d_f6.html index a6fd181c..ea60fc01 100644 --- a/6d_f6.html +++ b/6d_f6.html @@ -144,7 +144,7 @@

Spatial F6

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_force.html b/6d_force.html index ee611d4e..a28030dc 100644 --- a/6d_force.html +++ b/6d_force.html @@ -135,7 +135,7 @@

Spatial force

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -433,7 +433,7 @@

Spatial force
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -484,7 +484,7 @@

Spatial force

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_inertia.html b/6d_inertia.html index cd5c2ab0..86856a20 100644 --- a/6d_inertia.html +++ b/6d_inertia.html @@ -148,7 +148,7 @@

Spatial inertia

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -460,7 +460,7 @@

Spatial inertia
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -511,7 +511,7 @@

Spatial inertia

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_m6.html b/6d_m6.html index b22cda7a..b0c14133 100644 --- a/6d_m6.html +++ b/6d_m6.html @@ -168,7 +168,7 @@

Spatial M6

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_momentum.html b/6d_momentum.html index a83fb0c1..17a498c6 100644 --- a/6d_momentum.html +++ b/6d_momentum.html @@ -135,7 +135,7 @@

Spatial momentum

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -433,7 +433,7 @@

Spatial momentum
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -484,7 +484,7 @@

Spatial momentum

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_spatial.html b/6d_spatial.html index 2feccefc..9f8fd30c 100644 --- a/6d_spatial.html +++ b/6d_spatial.html @@ -372,7 +372,7 @@

Spatial vector

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/6d_velocity.html b/6d_velocity.html index 5ed43dab..8db22e45 100644 --- a/6d_velocity.html +++ b/6d_velocity.html @@ -137,7 +137,7 @@

Spatial velocity

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -460,7 +460,7 @@

Spatial velocity
-property A: Union[List[NDArray], NDArray]
+property A: Union[List[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]

Array value of an instance (BasePoseList superclass method)

Returns
@@ -511,7 +511,7 @@

Spatial velocity

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_images/func_2d_graphics-8.png b/_images/func_2d_graphics-8.png index b21640af..be292ec8 100644 Binary files a/_images/func_2d_graphics-8.png and b/_images/func_2d_graphics-8.png differ diff --git a/_images/func_2d_graphics-9.png b/_images/func_2d_graphics-9.png index 846f0d69..f2b24dde 100644 Binary files a/_images/func_2d_graphics-9.png and b/_images/func_2d_graphics-9.png differ diff --git a/_images/func_3d_graphics-2.png b/_images/func_3d_graphics-2.png index 6b156418..a4c4d8e4 100644 Binary files a/_images/func_3d_graphics-2.png and b/_images/func_3d_graphics-2.png differ diff --git a/_modules/index.html b/_modules/index.html index 734ef573..3d3c9907 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -103,7 +103,7 @@

All modules for which code is available

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/DualQuaternion.html b/_modules/spatialmath/DualQuaternion.html index 0f8b969d..dadac8ed 100644 --- a/_modules/spatialmath/DualQuaternion.html +++ b/_modules/spatialmath/DualQuaternion.html @@ -80,12 +80,7 @@

Source code for spatialmath.DualQuaternion

 import numpy as np
 from spatialmath import Quaternion, UnitQuaternion, SE3
 from spatialmath import base
-from spatialmath.base.types import (
-    ArrayLike3,
-    R8,
-    R8x8,
-)
-from typing import Tuple, overload
+from spatialmath.base.types import *
 
 # TODO scalar multiplication
 
@@ -354,9 +349,11 @@ 

Source code for spatialmath.DualQuaternion

     """
 
     @overload
-    def __init__(self, T: SE3): ...
+    def __init__(self, T: SE3):
+        ...
 
-    def __init__(self, real: Quaternion, dual: Quaternion): ...
+    def __init__(self, real: Quaternion, dual: Quaternion):
+        ...
 
 
[docs] def __init__(self, real=None, dual=None): r""" @@ -455,7 +452,7 @@

Source code for spatialmath.DualQuaternion

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/animate.html b/_modules/spatialmath/base/animate.html index baf99bfd..423f1d24 100644 --- a/_modules/spatialmath/base/animate.html +++ b/_modules/spatialmath/base/animate.html @@ -290,6 +290,7 @@

Source code for spatialmath.base.animate

                 # assume it is an SO(3) or SE(3)
                 T = frame
             # ensure result is SE(3)
+            
             if T.shape == (3, 3):
                 T = smb.r2t(T)
 
@@ -386,7 +387,7 @@ 

Source code for spatialmath.base.animate

             self.anim = anim
 
         def draw(self, T):
-            p = T @ self.p
+            p = T.A @ self.p
             self.h.set_data(p[0, :], p[1, :])
             self.h.set_3d_properties(p[2, :])
 
@@ -443,7 +444,8 @@ 

Source code for spatialmath.base.animate

             self.anim = anim
 
         def draw(self, T):
-            p = T @ self.p
+            # import ipdb; ipdb.set_trace()
+            p = T.A @ self.p
 
             # reshape it
             p = p[0:3, :].T.reshape(3, 2, 3)
@@ -497,7 +499,7 @@ 

Source code for spatialmath.base.animate

             self.anim = anim
 
         def draw(self, T):
-            p = T @ self.p
+            p = T.A @ self.p
             # x2, y2, _ = proj3d.proj_transform(
             #   p[0], p[1], p[2], self.anim.ax.get_proj())
             # self.h.set_position((x2, y2))
@@ -992,7 +994,7 @@ 

Source code for spatialmath.base.animate

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/argcheck.html b/_modules/spatialmath/base/argcheck.html index c9473207..5e669535 100644 --- a/_modules/spatialmath/base/argcheck.html +++ b/_modules/spatialmath/base/argcheck.html @@ -83,25 +83,29 @@

Source code for spatialmath.base.argcheck

 
 """
 Utility functions for testing and converting passed arguments.  Used in all
-spatialmath functions and classes to provides for flexibility in argument types
+spatialmath functions and classes to provides for flexibility in argument types 
 that can be passed.
 """
 
 # pylint: disable=invalid-name
 
+import math
 import numpy as np
 from collections.abc import Iterable
-from typing import Union, List, Tuple, Any, Optional, Type, Callable, cast, overload
-from numpy.typing import DTypeLike, NDArray
 
 # from spatialmath.base import symbolic as sym # HACK
 from spatialmath.base.symbolic import issymbol, symtype
 
-from spatialmath.base.types import ArrayLike
-
 # valid scalar types
 _scalartypes = (int, np.integer, float, np.floating) + symtype
 
+# from typing import Union, List, Tuple, Any, Optional, Type, Callable
+# from numpy.typing import DTypeLike
+# Array = np.ndarray[Any, np.dtype[np.floating]]
+# ArrayLike = Union[float,List[float],Tuple,Array]  # various ways to represent R^3 for input
+
+from spatialmath.base.types import *
+
 
 
[docs]def isscalar(x: Any) -> bool: """ @@ -348,8 +352,7 @@

Source code for spatialmath.base.argcheck

         raise ValueError("incorrect matrix dimensions, expecting {0}".format(shape))
-# and not np.iscomplex(m) checks every element, would need to be not -# np.any(np.iscomplex(m)) which seems expensive +# and not np.iscomplex(m) checks every element, would need to be not np.any(np.iscomplex(m)) which seems expensive @overload @@ -358,7 +361,8 @@

Source code for spatialmath.base.argcheck

     dim: Optional[Union[int, None]] = None,
     out: str = "array",
     dtype: DTypeLike = np.float64,
-) -> NDArray: ...
+) -> NDArray:
+    ...
 
 
 @overload
@@ -367,7 +371,8 @@ 

Source code for spatialmath.base.argcheck

     dim: Optional[Union[int, None]] = None,
     out: str = "list",
     dtype: DTypeLike = np.float64,
-) -> List[float]: ...
+) -> List[float]:
+    ...
 
 
 @overload
@@ -376,7 +381,8 @@ 

Source code for spatialmath.base.argcheck

     dim: Optional[Union[int, None]] = None,
     out: str = "sequence",
     dtype: DTypeLike = np.float64,
-) -> Tuple[float, ...]: ...
+) -> Tuple[float, ...]:
+    ...
 
 
 @overload
@@ -385,7 +391,8 @@ 

Source code for spatialmath.base.argcheck

     dim: Optional[Union[int, None]] = None,
     out: str = "sequence",
     dtype: DTypeLike = np.float64,
-) -> List[float]: ...
+) -> List[float]:
+    ...
 
 
 
[docs]def getvector( @@ -581,8 +588,8 @@

Source code for spatialmath.base.argcheck

         if dim is None:
             return (
                 (len(s) == 1 and s[0] > 0)
-                or (len(s) > 1 and s[0] == 1 and s[1] > 0)
-                or (len(s) > 1 and s[0] > 0 and s[1] == 1)
+                or (s[0] == 1 and s[1] > 0)
+                or (s[0] > 0 and s[1] == 1)
             )
         else:
             return s == (dim,) or s == (1, dim) or s == (dim, 1)
@@ -773,7 +780,7 @@ 

Source code for spatialmath.base.argcheck

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/graphics.html b/_modules/spatialmath/base/graphics.html index 4cfca900..c975d8f2 100644 --- a/_modules/spatialmath/base/graphics.html +++ b/_modules/spatialmath/base/graphics.html @@ -83,19 +83,7 @@

Source code for spatialmath.base.graphics

 from matplotlib import colors
 
 from spatialmath import base as smb
-from spatialmath.base.types import (
-    ArrayLike,
-    ArrayLike2,
-    ArrayLike3,
-    ArrayLike4,
-    R2x2,
-    R3x3,
-    Points2,
-    SE3Array,
-    Color,
-)
-from typing import List, Optional, Union, Tuple, Callable, overload
-from numpy.typing import NDArray
+from spatialmath.base.types import *
 
 # To assist code portability to headless platforms, these graphics primitives
 # are defined as null functions.
@@ -1299,7 +1287,9 @@ 

Source code for spatialmath.base.graphics

         z = height
         X, Z = np.meshgrid(x, z)
 
-        Y = np.sqrt(radius**2 - (X - centre[0]) ** 2) + centre[1]  # Pythagorean theorem
+        Y = (
+            np.sqrt(radius**2 - (X - centre[0]) ** 2) + centre[1]
+        )  # Pythagorean theorem
 
         handles = []
         handles.append(_render3D(ax, X, Y, Z, filled=filled, **kwargs))
@@ -1482,9 +1472,9 @@ 

Source code for spatialmath.base.graphics

             edges = [[0, 1, 3, 2, 0], [4, 5, 7, 6, 4], [0, 4], [1, 5], [3, 7], [2, 6]]
             lines = []
             for edge in edges:
-                E = vertices[:, edge]
-                # ax.plot(E[0], E[1], E[2], **kwargs)
-                lines.append(E.T)
+                for line in zip(edge[:-1], edge[1:]):
+                    E = vertices[:, line]
+                    lines.append(E.T)
             if "color" in kwargs:
                 if "alpha" in kwargs:
                     alpha = kwargs["alpha"]
@@ -1570,7 +1560,8 @@ 

Source code for spatialmath.base.graphics

         dimensions: int = 2,
         autoscale: Optional[bool] = True,
         new: Optional[bool] = False,
-    ) -> plt.Axes: ...
+    ) -> plt.Axes:
+        ...
 
     @overload
     def axes_logic(
@@ -1579,7 +1570,8 @@ 

Source code for spatialmath.base.graphics

         projection: Optional[str] = "ortho",
         autoscale: Optional[bool] = True,
         new: Optional[bool] = False,
-    ) -> Axes3D: ...
+    ) -> Axes3D:
+        ...
 
     def axes_logic(
         ax: Union[plt.Axes, Axes3D, None],
@@ -1894,7 +1886,7 @@ 

Source code for spatialmath.base.graphics

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/numeric.html b/_modules/spatialmath/base/numeric.html index 32abc4b4..ec017367 100644 --- a/_modules/spatialmath/base/numeric.html +++ b/_modules/spatialmath/base/numeric.html @@ -79,13 +79,7 @@

Source code for spatialmath.base.numeric

 import re
 import numpy as np
 from spatialmath import base
-from spatialmath.base.types import (
-    ArrayLike,
-    ArrayLike2,
-    Points2,
-)
-from numpy.typing import NDArray
-from typing import Callable, Tuple
+from spatialmath.base.types import *
 
 # this is a collection of useful algorithms, not otherwise categorized
 
@@ -457,7 +451,11 @@ 

Source code for spatialmath.base.numeric

     sigma = np.sqrt(var)
     x = base.getvector(x)
 
-    return 1.0 / np.sqrt(sigma**2 * 2 * np.pi) * np.exp(-((x - mu) ** 2) / 2 / sigma**2)
+ return ( + 1.0 + / np.sqrt(sigma**2 * 2 * np.pi) + * np.exp(-((x - mu) ** 2) / 2 / sigma**2) + )
[docs]def gauss2d(mu: ArrayLike2, P: NDArray, X: NDArray, Y: NDArray) -> NDArray: @@ -534,7 +532,7 @@

Source code for spatialmath.base.numeric

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/quaternions.html b/_modules/spatialmath/base/quaternions.html index a857ba7c..d735c4ff 100644 --- a/_modules/spatialmath/base/quaternions.html +++ b/_modules/spatialmath/base/quaternions.html @@ -92,17 +92,7 @@

Source code for spatialmath.base.quaternions

import math
 import numpy as np
 import spatialmath.base as smb
-from spatialmath.base.types import (
-    ArrayLike3,
-    ArrayLike4,
-    R3,
-    R4x4,
-    SO3Array,
-    QuaternionArray,
-    UnitQuaternionArray,
-)
-
-from typing import Union, Optional, Tuple, overload, TextIO
+from spatialmath.base.types import *
 
 _eps = np.finfo(np.float64).eps
 
@@ -264,7 +254,8 @@ 

Source code for spatialmath.base.quaternions

q2: ArrayLike4,
     tol: float = 20,
     unitq: Optional[bool] = False,
-) -> bool: ...
+) -> bool:
+    ...
 
 
 @overload
@@ -273,7 +264,8 @@ 

Source code for spatialmath.base.quaternions

q2: ArrayLike4,
     tol: float = 20,
     unitq: Optional[bool] = True,
-) -> bool: ...
+) -> bool:
+    ...
 
 
 
[docs]def qisequal(q1, q2, tol: float = 20, unitq: Optional[bool] = False): @@ -1157,7 +1149,7 @@

Source code for spatialmath.base.quaternions

     

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/symbolic.html b/_modules/spatialmath/base/symbolic.html index 04baf7dc..f73cc952 100644 --- a/_modules/spatialmath/base/symbolic.html +++ b/_modules/spatialmath/base/symbolic.html @@ -86,13 +86,11 @@

Source code for spatialmath.base.symbolic

 Symbolic arguments.
 
 If SymPy is not installed then only the standard numeric operations are
-supported.
+supported. 
 """
 
 import math
-
-from typing import Any, Optional, Tuple, Union, overload
-
+from spatialmath.base.types import *
 
 try:  # pragma: no cover
     # print('Using SymPy')
@@ -174,11 +172,13 @@ 

Source code for spatialmath.base.symbolic

 
 
 @overload
-def sin(theta: float) -> float: ...
+def sin(theta: float) -> float:
+    ...
 
 
 @overload
-def sin(theta: Symbol) -> Symbol: ...
+def sin(theta: Symbol) -> Symbol:
+    ...
 
 
 
[docs]def sin(theta): @@ -206,11 +206,13 @@

Source code for spatialmath.base.symbolic

 
 
 @overload
-def cos(theta: float) -> float: ...
+def cos(theta: float) -> float:
+    ...
 
 
 @overload
-def cos(theta: Symbol) -> Symbol: ...
+def cos(theta: Symbol) -> Symbol:
+    ...
 
 
 
[docs]def cos(theta): @@ -238,11 +240,13 @@

Source code for spatialmath.base.symbolic

 
 
 @overload
-def tan(theta: float) -> float: ...
+def tan(theta: float) -> float:
+    ...
 
 
 @overload
-def tan(theta: Symbol) -> Symbol: ...
+def tan(theta: Symbol) -> Symbol:
+    ...
 
 
 
[docs]def tan(theta): @@ -270,11 +274,13 @@

Source code for spatialmath.base.symbolic

 
 
 @overload
-def sqrt(theta: float) -> float: ...
+def sqrt(theta: float) -> float:
+    ...
 
 
 @overload
-def sqrt(theta: Symbol) -> Symbol: ...
+def sqrt(theta: Symbol) -> Symbol:
+    ...
 
 
 
[docs]def sqrt(v): @@ -435,7 +441,7 @@

Source code for spatialmath.base.symbolic

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/transforms2d.html b/_modules/spatialmath/base/transforms2d.html index 5e28e91c..877ab089 100644 --- a/_modules/spatialmath/base/transforms2d.html +++ b/_modules/spatialmath/base/transforms2d.html @@ -104,26 +104,7 @@

Source code for spatialmath.base.transforms2d

_matplotlib_exists = False import spatialmath.base as smb - -# from spatialmath.base.types import * -from typing import Any, Optional, Union, overload, cast, TextIO, Tuple -from numpy.typing import ArrayLike, NDArray -from spatialmath.base.types import ( - SO2Array, - SE2Array, - SE3Array, - so2Array, - se2Array, - R2, - R3, - ArrayLike2, - ArrayLike3, - R1x1, - R3x3, - ArrayLikePure, - Points2, - Color, -) +from spatialmath.base.types import * from spatialmath.base.transformsNd import rt2tr from spatialmath.base.vectors import unitvec @@ -269,15 +250,18 @@

Source code for spatialmath.base.transforms2d

# ---------------------------------------------------------------------------------------# @overload # pragma: no cover -def transl2(x: float, y: float) -> SE2Array: ... +def transl2(x: float, y: float) -> SE2Array: + ... @overload # pragma: no cover -def transl2(x: ArrayLike2) -> SE2Array: ... +def transl2(x: ArrayLike2) -> SE2Array: + ... @overload # pragma: no cover -def transl2(x: SE2Array) -> R2: ... +def transl2(x: SE2Array) -> R2: + ...
[docs]def transl2(x, y=None): @@ -540,7 +524,8 @@

Source code for spatialmath.base.transforms2d

twist: bool = False, check: bool = True, tol: float = 20, -) -> so2Array: ... +) -> so2Array: + ... @overload # pragma: no cover @@ -549,7 +534,8 @@

Source code for spatialmath.base.transforms2d

twist: bool = False, check: bool = True, tol: float = 20, -) -> se2Array: ... +) -> se2Array: + ... @overload # pragma: no cover @@ -558,7 +544,8 @@

Source code for spatialmath.base.transforms2d

twist: bool = True, check: bool = True, tol: float = 20, -) -> float: ... +) -> float: + ... @overload # pragma: no cover @@ -567,7 +554,8 @@

Source code for spatialmath.base.transforms2d

twist: bool = True, check: bool = True, tol: float = 20, -) -> R3: ... +) -> R3: + ...
[docs]def trlog2( @@ -653,15 +641,13 @@

Source code for spatialmath.base.transforms2d

# ---------------------------------------------------------------------------------------# @overload # pragma: no cover -def trexp2( - S: so2Array, theta: Optional[float] = None, check: bool = True -) -> SO2Array: ... +def trexp2(S: so2Array, theta: Optional[float] = None, check: bool = True) -> SO2Array: + ... @overload # pragma: no cover -def trexp2( - S: se2Array, theta: Optional[float] = None, check: bool = True -) -> SE2Array: ... +def trexp2(S: se2Array, theta: Optional[float] = None, check: bool = True) -> SE2Array: + ...
[docs]def trexp2( @@ -784,7 +770,8 @@

Source code for spatialmath.base.transforms2d

@overload # pragma: no cover -def trnorm2(R: SO2Array) -> SO2Array: ... +def trnorm2(R: SO2Array) -> SO2Array: + ...
[docs]def trnorm2(T: SE2Array) -> SE2Array: @@ -849,11 +836,13 @@

Source code for spatialmath.base.transforms2d

@overload # pragma: no cover -def tradjoint2(T: SO2Array) -> R1x1: ... +def tradjoint2(T: SO2Array) -> R1x1: + ... @overload # pragma: no cover -def tradjoint2(T: SE2Array) -> R3x3: ... +def tradjoint2(T: SE2Array) -> R3x3: + ...
[docs]def tradjoint2(T): @@ -942,15 +931,13 @@

Source code for spatialmath.base.transforms2d

@overload -def trinterp2( - start: Optional[SO2Array], end: SO2Array, s: float, shortest: bool = True -) -> SO2Array: ... +def trinterp2(start: Optional[SO2Array], end: SO2Array, s: float, shortest: bool = True) -> SO2Array: + ... @overload -def trinterp2( - start: Optional[SE2Array], end: SE2Array, s: float, shortest: bool = True -) -> SE2Array: ... +def trinterp2(start: Optional[SE2Array], end: SE2Array, s: float, shortest: bool = True) -> SE2Array: + ...
[docs]def trinterp2(start, end, s, shortest: bool = True): @@ -1674,7 +1661,7 @@

Source code for spatialmath.base.transforms2d

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/transforms3d.html b/_modules/spatialmath/base/transforms3d.html index c23100af..19b8dcad 100644 --- a/_modules/spatialmath/base/transforms3d.html +++ b/_modules/spatialmath/base/transforms3d.html @@ -96,7 +96,7 @@

Source code for spatialmath.base.transforms3d

from collections.abc import Iterable import math import numpy as np -from typing import Any, Optional, Union, overload, cast, Tuple, TextIO, List + from spatialmath.base.argcheck import getunit, getvector, isvector, isscalar, ismatrix from spatialmath.base.vectors import ( unitvec, @@ -118,6 +118,7 @@

Source code for spatialmath.base.transforms3d

isskew, isskewa, isR, + iseye, tr2rt, Ab2M, ) @@ -125,19 +126,8 @@

Source code for spatialmath.base.transforms3d

from spatialmath.base.graphics import plotvol3, axes_logic from spatialmath.base.animate import Animate import spatialmath.base.symbolic as sym -from spatialmath.base.types import ( - ArrayLikePure, - ArrayLike3, - ArrayLike6, - R3, - R6, - R3x3, - R6x6, - SO3Array, - SE3Array, - so3Array, - se3Array, -) + +from spatialmath.base.types import * _eps = np.finfo(np.float64).eps @@ -351,15 +341,18 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover -def transl(x: float, y: float, z: float) -> SE3Array: ... +def transl(x: float, y: float, z: float) -> SE3Array: + ... @overload # pragma: no cover -def transl(x: ArrayLike3) -> SE3Array: ... +def transl(x: ArrayLike3) -> SE3Array: + ... @overload # pragma: no cover -def transl(x: SE3Array) -> R3: ... +def transl(x: SE3Array) -> R3: + ...
[docs]def transl(x, y=None, z=None): @@ -511,7 +504,8 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover def rpy2r( roll: float, pitch: float, yaw: float, *, unit: str = "rad", order: str = "zyx" -) -> SO3Array: ... +) -> SO3Array: + ... @overload # pragma: no cover @@ -522,7 +516,8 @@

Source code for spatialmath.base.transforms3d

*, unit: str = "rad", order: str = "zyx", -) -> SO3Array: ... +) -> SO3Array: + ...
[docs]def rpy2r( @@ -600,7 +595,8 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover def rpy2tr( roll: float, pitch: float, yaw: float, unit: str = "rad", order: str = "zyx" -) -> SE3Array: ... +) -> SE3Array: + ... @overload # pragma: no cover @@ -610,7 +606,8 @@

Source code for spatialmath.base.transforms3d

yaw: None = None, unit: str = "rad", order: str = "zyx", -) -> SE3Array: ... +) -> SE3Array: + ...
[docs]def rpy2tr( @@ -674,13 +671,15 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover -def eul2r(phi: float, theta: float, psi: float, unit: str = "rad") -> SO3Array: ... +def eul2r(phi: float, theta: float, psi: float, unit: str = "rad") -> SO3Array: + ... @overload # pragma: no cover def eul2r( phi: ArrayLike3, theta: None = None, psi: None = None, unit: str = "rad" -) -> SO3Array: ... +) -> SO3Array: + ...
[docs]def eul2r( @@ -733,11 +732,13 @@

Source code for spatialmath.base.transforms3d

# ---------------------------------------------------------------------------------------# @overload # pragma: no cover -def eul2tr(phi: float, theta: float, psi: float, unit: str = "rad") -> SE3Array: ... +def eul2tr(phi: float, theta: float, psi: float, unit: str = "rad") -> SE3Array: + ... @overload # pragma: no cover -def eul2tr(phi: ArrayLike3, theta=None, psi=None, unit: str = "rad") -> SE3Array: ... +def eul2tr(phi: ArrayLike3, theta=None, psi=None, unit: str = "rad") -> SE3Array: + ...
[docs]def eul2tr( @@ -1349,25 +1350,25 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover def trlog( T: SO3Array, check: bool = True, twist: bool = False, tol: float = 20 -) -> so3Array: ... +) -> so3Array: + ... @overload # pragma: no cover def trlog( T: SE3Array, check: bool = True, twist: bool = False, tol: float = 20 -) -> se3Array: ... +) -> se3Array: + ... @overload # pragma: no cover -def trlog( - T: SO3Array, check: bool = True, twist: bool = True, tol: float = 20 -) -> R3: ... +def trlog(T: SO3Array, check: bool = True, twist: bool = True, tol: float = 20) -> R3: + ... @overload # pragma: no cover -def trlog( - T: SE3Array, check: bool = True, twist: bool = True, tol: float = 20 -) -> R6: ... +def trlog(T: SE3Array, check: bool = True, twist: bool = True, tol: float = 20) -> R6: + ...
[docs]def trlog( @@ -1482,23 +1483,23 @@

Source code for spatialmath.base.transforms3d

# ---------------------------------------------------------------------------------------# @overload # pragma: no cover -def trexp( - S: so3Array, theta: Optional[float] = None, check: bool = True -) -> SO3Array: ... +def trexp(S: so3Array, theta: Optional[float] = None, check: bool = True) -> SO3Array: + ... @overload # pragma: no cover -def trexp( - S: se3Array, theta: Optional[float] = None, check: bool = True -) -> SE3Array: ... +def trexp(S: se3Array, theta: Optional[float] = None, check: bool = True) -> SE3Array: + ... @overload # pragma: no cover -def trexp(S: ArrayLike3, theta: Optional[float] = None, check=True) -> SO3Array: ... +def trexp(S: ArrayLike3, theta: Optional[float] = None, check=True) -> SO3Array: + ... @overload # pragma: no cover -def trexp(S: ArrayLike6, theta: Optional[float] = None, check=True) -> SE3Array: ... +def trexp(S: ArrayLike6, theta: Optional[float] = None, check=True) -> SE3Array: + ...
[docs]def trexp(S, theta=None, check=True): @@ -1619,7 +1620,8 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover -def trnorm(R: SO3Array) -> SO3Array: ... +def trnorm(R: SO3Array) -> SO3Array: + ...
[docs]def trnorm(T: SE3Array) -> SE3Array: @@ -1681,15 +1683,13 @@

Source code for spatialmath.base.transforms3d

@overload -def trinterp( - start: Optional[SO3Array], end: SO3Array, s: float, shortest: bool = True -) -> SO3Array: ... +def trinterp(start: Optional[SO3Array], end: SO3Array, s: float, shortest: bool = True) -> SO3Array: + ... @overload -def trinterp( - start: Optional[SE3Array], end: SE3Array, s: float, shortest: bool = True -) -> SE3Array: ... +def trinterp(start: Optional[SE3Array], end: SE3Array, s: float, shortest: bool = True) -> SE3Array: + ...
[docs]def trinterp(start, end, s, shortest=True): @@ -2302,7 +2302,8 @@

Source code for spatialmath.base.transforms3d

inverse: bool = False, full: bool = False, representation="rpy/xyz", -) -> R3x3: ... +) -> R3x3: + ... @overload # pragma: no cover @@ -2310,7 +2311,8 @@

Source code for spatialmath.base.transforms3d

𝚪: SO3Array, inverse: bool = False, full: bool = False, -) -> R3x3: ... +) -> R3x3: + ... @overload # pragma: no cover @@ -2319,7 +2321,8 @@

Source code for spatialmath.base.transforms3d

inverse: bool = False, full: bool = True, representation="rpy/xyz", -) -> R6x6: ... +) -> R6x6: + ... @overload # pragma: no cover @@ -2327,7 +2330,8 @@

Source code for spatialmath.base.transforms3d

𝚪: SO3Array, inverse: bool = False, full: bool = True, -) -> R6x6: ... +) -> R6x6: + ...
[docs]def rotvelxform( @@ -2539,13 +2543,15 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover def rotvelxform_inv_dot( 𝚪: ArrayLike3, 𝚪d: ArrayLike3, full: bool = False, representation: str = "rpy/xyz" -) -> R3x3: ... +) -> R3x3: + ... @overload # pragma: no cover def rotvelxform_inv_dot( 𝚪: ArrayLike3, 𝚪d: ArrayLike3, full: bool = True, representation: str = "rpy/xyz" -) -> R6x6: ... +) -> R6x6: + ...
[docs]def rotvelxform_inv_dot( @@ -2742,11 +2748,13 @@

Source code for spatialmath.base.transforms3d

@overload # pragma: no cover -def tr2adjoint(T: SO3Array) -> R3x3: ... +def tr2adjoint(T: SO3Array) -> R3x3: + ... @overload # pragma: no cover -def tr2adjoint(T: SE3Array) -> R6x6: ... +def tr2adjoint(T: SE3Array) -> R6x6: + ...
[docs]def tr2adjoint(T): @@ -3544,7 +3552,7 @@

Source code for spatialmath.base.transforms3d

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/transformsNd.html b/_modules/spatialmath/base/transformsNd.html index 2d975b14..5f508b8f 100644 --- a/_modules/spatialmath/base/transformsNd.html +++ b/_modules/spatialmath/base/transformsNd.html @@ -89,31 +89,11 @@

Source code for spatialmath.base.transformsNd

""" # pylint: disable=invalid-name +import math import numpy as np -from spatialmath.base.types import ( - ArrayLike2, - ArrayLike3, - ArrayLike6, - R1, - R2, - R3, - R6, - SO2Array, - SE2Array, - SO3Array, - SE3Array, - so2Array, - se2Array, - so3Array, - se3Array, - Rn, - SOnArray, - SEnArray, - senArray, -) +from spatialmath.base.types import * from spatialmath.base.argcheck import getvector, isvector -from typing import Tuple, Union, overload -from numpy.typing import NDArray +from spatialmath.base.vectors import iszerovec, unitvec_norm # from spatialmath.base.symbolic import issymbol # from spatialmath.base.transforms3d import transl @@ -134,11 +114,13 @@

Source code for spatialmath.base.transformsNd

# ---------------------------------------------------------------------------------------# @overload -def r2t(R: SO2Array, check: bool = False) -> SE2Array: ... +def r2t(R: SO2Array, check: bool = False) -> SE2Array: + ... @overload -def r2t(R: SO3Array, check: bool = False) -> SE3Array: ... +def r2t(R: SO3Array, check: bool = False) -> SE3Array: + ...
[docs]def r2t(R, check=False): @@ -198,11 +180,13 @@

Source code for spatialmath.base.transformsNd

# ---------------------------------------------------------------------------------------# @overload -def t2r(T: SE2Array, check: bool = False) -> SO2Array: ... +def t2r(T: SE2Array, check: bool = False) -> SO2Array: + ... @overload -def t2r(T: SE3Array, check: bool = False) -> SO3Array: ... +def t2r(T: SE3Array, check: bool = False) -> SO3Array: + ...
[docs]def t2r(T: SEnArray, check: bool = False) -> SOnArray: @@ -261,11 +245,13 @@

Source code for spatialmath.base.transformsNd

@overload -def tr2rt(T: SE2Array, check=False) -> Tuple[SO2Array, R2]: ... +def tr2rt(T: SE2Array, check=False) -> Tuple[SO2Array, R2]: + ... @overload -def tr2rt(T: SE3Array, check=False) -> Tuple[SO3Array, R3]: ... +def tr2rt(T: SE3Array, check=False) -> Tuple[SO3Array, R3]: + ...
[docs]def tr2rt(T: SEnArray, check=False) -> Tuple[SOnArray, Rn]: @@ -319,11 +305,13 @@

Source code for spatialmath.base.transformsNd

@overload -def rt2tr(R: SO2Array, t: ArrayLike2, check=False) -> SE2Array: ... +def rt2tr(R: SO2Array, t: ArrayLike2, check=False) -> SE2Array: + ... @overload -def rt2tr(R: SO3Array, t: ArrayLike3, check=False) -> SE3Array: ... +def rt2tr(R: SO3Array, t: ArrayLike3, check=False) -> SE3Array: + ...
[docs]def rt2tr(R, t, check=False): @@ -562,11 +550,13 @@

Source code for spatialmath.base.transformsNd

# ---------------------------------------------------------------------------------------# @overload -def skew(v: float) -> se2Array: ... +def skew(v: float) -> se2Array: + ... @overload -def skew(v: ArrayLike3) -> se3Array: ... +def skew(v: ArrayLike3) -> se3Array: + ...
[docs]def skew(v): @@ -620,11 +610,13 @@

Source code for spatialmath.base.transformsNd

# ---------------------------------------------------------------------------------------# @overload -def vex(s: so2Array, check: bool = False) -> R1: ... +def vex(s: so2Array, check: bool = False) -> R1: + ... @overload -def vex(s: so3Array, check: bool = False) -> R3: ... +def vex(s: so3Array, check: bool = False) -> R3: + ...
[docs]def vex(s, check=False): @@ -677,11 +669,13 @@

Source code for spatialmath.base.transformsNd

# ---------------------------------------------------------------------------------------# @overload -def skewa(v: ArrayLike3) -> se2Array: ... +def skewa(v: ArrayLike3) -> se2Array: + ... @overload -def skewa(v: ArrayLike6) -> se3Array: ... +def skewa(v: ArrayLike6) -> se3Array: + ...
[docs]def skewa(v: Union[ArrayLike3, ArrayLike6]) -> Union[se2Array, se3Array]: @@ -731,11 +725,13 @@

Source code for spatialmath.base.transformsNd

@overload -def vexa(Omega: se2Array, check: bool = False) -> R3: ... +def vexa(Omega: se2Array, check: bool = False) -> R3: + ... @overload -def vexa(Omega: se3Array, check: bool = False) -> R6: ... +def vexa(Omega: se3Array, check: bool = False) -> R6: + ...
[docs]def vexa(Omega: senArray, check: bool = False) -> Union[R3, R6]: @@ -952,7 +948,7 @@

Source code for spatialmath.base.transformsNd

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/base/vectors.html b/_modules/spatialmath/base/vectors.html index eba2e08c..1dd8e15f 100644 --- a/_modules/spatialmath/base/vectors.html +++ b/_modules/spatialmath/base/vectors.html @@ -92,16 +92,7 @@

Source code for spatialmath.base.vectors

 import math
 import numpy as np
 from spatialmath.base.argcheck import getvector
-from spatialmath.base.types import (
-    ArrayLike,
-    ArrayLikePure,
-    R3,
-    R6,
-    ArrayLike6,
-    ArrayLike3,
-)
-from typing import Tuple, Union, overload
-from numpy.typing import NDArray
+from spatialmath.base.types import *
 
 try:  # pragma: no cover
     # print('Using SymPy')
@@ -707,11 +698,13 @@ 

Source code for spatialmath.base.vectors

 
 
 @overload
-def angdiff(a: ArrayLike, b: ArrayLike) -> NDArray: ...
+def angdiff(a: ArrayLike, b: ArrayLike) -> NDArray:
+    ...
 
 
 @overload
-def angdiff(a: ArrayLike) -> NDArray: ...
+def angdiff(a: ArrayLike) -> NDArray:
+    ...
 
 
 
[docs]def angdiff(a, b=None): @@ -955,7 +948,7 @@

Source code for spatialmath.base.vectors

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/geom2d.html b/_modules/spatialmath/geom2d.html index eca4329b..5efc0033 100644 --- a/_modules/spatialmath/geom2d.html +++ b/_modules/spatialmath/geom2d.html @@ -85,7 +85,6 @@

Source code for spatialmath.geom2d

 """
 from __future__ import annotations
 
-from typing_extensions import Self
 from functools import reduce
 import warnings
 import matplotlib.pyplot as plt
@@ -99,15 +98,22 @@ 

Source code for spatialmath.geom2d

 from spatialmath.base import plot_ellipse
 from spatialmath.base.types import (
     Points2,
+    Optional,
     ArrayLike,
     ArrayLike2,
     ArrayLike3,
+    NDArray,
+    Union,
+    List,
+    Tuple,
     R2,
     R3,
     R4,
+    Iterator,
+    Tuple,
+    Self,
+    cast,
 )
-from typing import Optional, Tuple, Union, List, Iterator, cast
-from numpy.typing import NDArray
 
 _eps = np.finfo(np.float64).eps
 
@@ -1268,7 +1274,7 @@ 

Source code for spatialmath.geom2d

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/geom3d.html b/_modules/spatialmath/geom3d.html index 4f26601e..66315da5 100644 --- a/_modules/spatialmath/geom3d.html +++ b/_modules/spatialmath/geom3d.html @@ -86,23 +86,9 @@

Source code for spatialmath.geom3d

 from collections import namedtuple
 import matplotlib.pyplot as plt
 import spatialmath.base as base
-from spatialmath.base.types import (
-    ArrayLike,
-    ArrayLike3,
-    ArrayLike4,
-    ArrayLike6,
-    R3,
-    R6,
-    R3x3,
-    R4x4,
-    Points3,
-    Rn,
-)
+from spatialmath.base.types import *
 from spatialmath.baseposelist import BasePoseList
 import warnings
-from typing import Union, Tuple, Optional, List, cast, overload
-from typing_extensions import Self
-from numpy.typing import NDArray
 
 _eps = np.finfo(np.float64).eps
 
@@ -345,10 +331,12 @@ 

Source code for spatialmath.geom3d

     __array_ufunc__ = None  # allow pose matrices operators with NumPy values
 
     @overload
-    def __init__(self, v: ArrayLike3, w: ArrayLike3): ...
+    def __init__(self, v: ArrayLike3, w: ArrayLike3):
+        ...
 
     @overload
-    def __init__(self, v: ArrayLike6): ...
+    def __init__(self, v: ArrayLike6):
+        ...
 
 
[docs] def __init__(self, v=None, w=None, check=True): """ @@ -1525,7 +1513,7 @@

Source code for spatialmath.geom3d

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/pose2d.html b/_modules/spatialmath/pose2d.html index 98e459c1..2f1bc80e 100644 --- a/_modules/spatialmath/pose2d.html +++ b/_modules/spatialmath/pose2d.html @@ -732,7 +732,7 @@

Source code for spatialmath.pose2d

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/pose3d.html b/_modules/spatialmath/pose3d.html index 442c7ef0..223f08c7 100644 --- a/_modules/spatialmath/pose3d.html +++ b/_modules/spatialmath/pose3d.html @@ -105,28 +105,14 @@

Source code for spatialmath.pose3d

 import numpy as np
 
 import spatialmath.base as smb
-from spatialmath.base.types import (
-    ArrayLike,
-    ArrayLike2,
-    ArrayLike3,
-    ArrayLike6,
-    R3,
-    R6,
-    R3x3,
-    R4x4,
-    R6x6,
-    RNx3,
-    SO3Array,
-    SE3Array,
-)
+from spatialmath.base.types import *
 from spatialmath.base.vectors import orthogonalize
 from spatialmath.baseposematrix import BasePoseMatrix
 from spatialmath.pose2d import SE2
+
 from spatialmath.twist import Twist3
-from typing import TYPE_CHECKING, List, Tuple, Union, overload, Optional, cast
-from typing_extensions import Self
-from numpy.typing import NDArray
 
+from typing import TYPE_CHECKING
 if TYPE_CHECKING:
     from spatialmath.quaternion import UnitQuaternion
 
@@ -146,22 +132,28 @@ 

Source code for spatialmath.pose3d

     """
 
     @overload
-    def __init__(self): ...
+    def __init__(self):
+        ...
 
     @overload
-    def __init__(self, arg: SO3, *, check=True): ...
+    def __init__(self, arg: SO3, *, check=True):
+        ...
 
     @overload
-    def __init__(self, arg: SE3, *, check=True): ...
+    def __init__(self, arg: SE3, *, check=True):
+        ...
 
     @overload
-    def __init__(self, arg: SO3Array, *, check=True): ...
+    def __init__(self, arg: SO3Array, *, check=True):
+        ...
 
     @overload
-    def __init__(self, arg: List[SO3Array], *, check=True): ...
+    def __init__(self, arg: List[SO3Array], *, check=True):
+        ...
 
     @overload
-    def __init__(self, arg: List[Union[SO3, SO3Array]], *, check=True): ...
+    def __init__(self, arg: List[Union[SO3, SO3Array]], *, check=True):
+        ...
 
 
[docs] def __init__(self, arg=None, *, check=True): """ @@ -427,7 +419,7 @@

Source code for spatialmath.pose3d

         """
         theta, v = smb.tr2angvec(self.R)
         return theta * v
- + # ------------------------------------------------------------------------ #
[docs] @staticmethod @@ -567,11 +559,13 @@

Source code for spatialmath.pose3d

 
     @overload
     @classmethod
-    def Eul(cls, *angles: float, unit: str = "rad") -> Self: ...
+    def Eul(cls, *angles: float, unit: str = "rad") -> Self:
+        ...
 
     @overload
     @classmethod
-    def Eul(cls, *angles: Union[ArrayLike3, RNx3], unit: str = "rad") -> Self: ...
+    def Eul(cls, *angles: Union[ArrayLike3, RNx3], unit: str = "rad") -> Self:
+        ...
 
 
[docs] @classmethod def Eul(cls, *angles, unit: str = "rad") -> Self: @@ -620,13 +614,15 @@

Source code for spatialmath.pose3d

         *angles: float,
         unit: str = "rad",
         order="zyx",
-    ) -> Self: ...
+    ) -> Self:
+        ...
 
     @overload
     @classmethod
     def RPY(
         cls, *angles: Union[ArrayLike3, RNx3], unit: str = "rad", order="zyx"
-    ) -> Self: ...
+    ) -> Self:
+        ...
 
 
[docs] @classmethod def RPY(cls, *angles, unit="rad", order="zyx"): @@ -921,22 +917,22 @@

Source code for spatialmath.pose3d

 
 
[docs] def UnitQuaternion(self) -> UnitQuaternion: """ - SO3 as a unit quaternion instance + SO3 as a unit quaternion instance - :return: a unit quaternion representation - :rtype: UnitQuaternion instance + :return: a unit quaternion representation + :rtype: UnitQuaternion instance - ``R.UnitQuaternion()`` is an ``UnitQuaternion`` instance representing the same rotation - as the SO3 rotation ``R``. + ``R.UnitQuaternion()`` is an ``UnitQuaternion`` instance representing the same rotation + as the SO3 rotation ``R``. - Example: + Example: - .. runblock:: pycon + .. runblock:: pycon - >>> from spatialmath import SO3 - >>> SO3.Rz(0.3).UnitQuaternion() + >>> from spatialmath import SO3 + >>> SO3.Rz(0.3).UnitQuaternion() - """ + """ # Function level import to avoid circular dependencies from spatialmath import UnitQuaternion @@ -1317,11 +1313,11 @@

Source code for spatialmath.pose3d

         """
         if len(self) == 1:
             if order == "zyx":
-                return SE2(self.x, self.y, self.rpy(order=order)[2])
+                return SE2(self.x, self.y, self.rpy(order = order)[2])
             elif order == "xyz":
-                return SE2(self.z, self.y, self.rpy(order=order)[2])
+                return SE2(self.z, self.y, self.rpy(order = order)[2])
             elif order == "yxz":
-                return SE2(self.z, self.x, self.rpy(order=order)[2])
+                return SE2(self.z, self.x, self.rpy(order = order)[2])
         else:
             return SE2([e.yaw_SE2() for e in self])
@@ -1639,10 +1635,12 @@

Source code for spatialmath.pose3d

         )
@overload - def Eul(cls, phi: float, theta: float, psi: float, unit: str = "rad") -> SE3: ... + def Eul(cls, phi: float, theta: float, psi: float, unit: str = "rad") -> SE3: + ... @overload - def Eul(cls, angles: ArrayLike3, unit: str = "rad") -> SE3: ... + def Eul(cls, angles: ArrayLike3, unit: str = "rad") -> SE3: + ...
[docs] @classmethod def Eul(cls, *angles, unit="rad") -> SE3: @@ -1687,10 +1685,12 @@

Source code for spatialmath.pose3d

             return cls([smb.eul2tr(a, unit=unit) for a in angles], check=False)
@overload - def RPY(cls, roll: float, pitch: float, yaw: float, unit: str = "rad") -> SE3: ... + def RPY(cls, roll: float, pitch: float, yaw: float, unit: str = "rad") -> SE3: + ... @overload - def RPY(cls, angles: ArrayLike3, unit: str = "rad") -> SE3: ... + def RPY(cls, angles: ArrayLike3, unit: str = "rad") -> SE3: + ...
[docs] @classmethod def RPY(cls, *angles, unit="rad", order="zyx") -> SE3: @@ -1915,10 +1915,12 @@

Source code for spatialmath.pose3d

         return cls(smb.trnorm(smb.delta2tr(d)))
@overload - def Trans(cls, x: float, y: float, z: float) -> SE3: ... + def Trans(cls, x: float, y: float, z: float) -> SE3: + ... @overload - def Trans(cls, xyz: ArrayLike3) -> SE3: ... + def Trans(cls, xyz: ArrayLike3) -> SE3: + ...
[docs] @classmethod def Trans(cls, x, y=None, z=None) -> SE3: @@ -2059,7 +2061,11 @@

Source code for spatialmath.pose3d

         return cls(smb.rt2tr(R, t, check=check), check=check)
[docs] @classmethod - def CopyFrom(cls, T: SE3Array, check: bool = True) -> SE3: + def CopyFrom( + cls, + T: SE3Array, + check: bool = True + ) -> SE3: """ Create an SE(3) from a 4x4 numpy array that is passed by value. @@ -2176,7 +2182,7 @@

Source code for spatialmath.pose3d

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/quaternion.html b/_modules/spatialmath/quaternion.html index 48aa7f05..2be3daaa 100644 --- a/_modules/spatialmath/quaternion.html +++ b/_modules/spatialmath/quaternion.html @@ -2414,7 +2414,7 @@

Source code for spatialmath.quaternion

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/spatialvector.html b/_modules/spatialmath/spatialvector.html index b7f7c6ae..752faee4 100644 --- a/_modules/spatialmath/spatialvector.html +++ b/_modules/spatialmath/spatialvector.html @@ -819,7 +819,7 @@

Source code for spatialmath.spatialvector

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/_modules/spatialmath/twist.html b/_modules/spatialmath/twist.html index b65ff078..2686ee2c 100644 --- a/_modules/spatialmath/twist.html +++ b/_modules/spatialmath/twist.html @@ -1940,7 +1940,7 @@

Source code for spatialmath.twist

 
   

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/classes-2d-1.pdf b/classes-2d-1.pdf index aa4d49b1..a8186fe6 100644 Binary files a/classes-2d-1.pdf and b/classes-2d-1.pdf differ diff --git a/classes-2d-2.pdf b/classes-2d-2.pdf index e421557c..8be190b3 100644 Binary files a/classes-2d-2.pdf and b/classes-2d-2.pdf differ diff --git a/classes-2d-3.pdf b/classes-2d-3.pdf index 95b4514f..06de1aeb 100644 Binary files a/classes-2d-3.pdf and b/classes-2d-3.pdf differ diff --git a/classes-2d-4.pdf b/classes-2d-4.pdf index 353d3448..1b93bf6a 100644 Binary files a/classes-2d-4.pdf and b/classes-2d-4.pdf differ diff --git a/classes-2d.html b/classes-2d.html index 069c0a14..fece483e 100644 --- a/classes-2d.html +++ b/classes-2d.html @@ -1273,7 +1273,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/classes-3d.html b/classes-3d.html index 58f8495e..b083aa95 100644 --- a/classes-3d.html +++ b/classes-3d.html @@ -86,9 +86,7 @@

Geometry

-class Line3(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], w: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])[source]
-
-class Line3(v: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])
+class Line3(v=None, w=None, check=True)[source]

Bases: spatialmath.baseposelist.BasePoseList

@@ -99,7 +97,7 @@

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -273,9 +271,7 @@
-__init__(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], w: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])[source]
-
-__init__(v: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]])
+__init__(v=None, w=None, check=True)[source]

Create a Line3 object

Parameters
@@ -507,8 +503,8 @@
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -548,7 +544,7 @@
Return type
-

bool

+

bool

@@ -1795,7 +1791,7 @@

n (int, optional) – Number of values, defaults to 1

Return type
-

Self

+

Self

Returns

pose instance with n default values

@@ -2201,8 +2197,8 @@
Parameters
    -
  • arg (Any) – initial value

  • -
  • convertfrom (Tuple) – list of classes to accept and convert from

  • +
  • arg (Any) – initial value

  • +
  • convertfrom (Tuple) – list of classes to accept and convert from

  • check (bool) – check value is valid, defaults to True

@@ -2242,7 +2238,7 @@
Return type
-

bool

+

bool

@@ -3245,7 +3241,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_2d-1.pdf b/func_2d-1.pdf index e167b13f..4fd36dd9 100644 Binary files a/func_2d-1.pdf and b/func_2d-1.pdf differ diff --git a/func_2d.html b/func_2d.html index c2fd1f14..3a180882 100644 --- a/func_2d.html +++ b/func_2d.html @@ -451,9 +451,7 @@
-tradjoint2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-tradjoint2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+tradjoint2(T)[source]

Adjoint matrix in 2D

Parameters
@@ -524,11 +522,7 @@
-transl2(x: float, y: float) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-transl2(x: Union[List, Tuple[float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-transl2(x: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+transl2(x, y=None)[source]

Create SE(2) pure translation, or extract translation from SE(2) matrix

Create a translational SE(2) matrix

@@ -605,9 +599,7 @@
-trexp2(S: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], theta: Optional[float] = None, check: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-trexp2(S: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], theta: Optional[float] = None, check: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+trexp2(S, theta=None, check=True)[source]

Exponential of so(2) or se(2) matrix

Parameters
@@ -697,9 +689,7 @@
-trinterp2(start: Optional[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], end: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], s: float, shortest: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-trinterp2(start: Optional[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], end: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], s: float, shortest: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+trinterp2(start, end, s, shortest=True)[source]

Interpolate SE(2) or SO(2) matrices

Parameters
@@ -811,13 +801,7 @@
-trlog2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], twist: bool = False, check: bool = True, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-trlog2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], twist: bool = False, check: bool = True, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-trlog2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], twist: bool = True, check: bool = True, tol: float = 20) float
-
-trlog2(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], twist: bool = True, check: bool = True, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+trlog2(T, twist=False, check=True, tol=20)[source]

Logarithm of SO(2) or SE(2) matrix

Parameters
@@ -877,7 +861,7 @@
-trnorm2(R: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
+trnorm2(T)[source]

Normalize an SO(2) or SE(2) matrix

Parameters
@@ -1195,7 +1179,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_2d_graphics-1.pdf b/func_2d_graphics-1.pdf index c5d76521..c49750dc 100644 Binary files a/func_2d_graphics-1.pdf and b/func_2d_graphics-1.pdf differ diff --git a/func_2d_graphics-10.pdf b/func_2d_graphics-10.pdf index df224c98..b71f5f6b 100644 Binary files a/func_2d_graphics-10.pdf and b/func_2d_graphics-10.pdf differ diff --git a/func_2d_graphics-11.pdf b/func_2d_graphics-11.pdf index 3fb332ee..f7aab35f 100644 Binary files a/func_2d_graphics-11.pdf and b/func_2d_graphics-11.pdf differ diff --git a/func_2d_graphics-2.pdf b/func_2d_graphics-2.pdf index d2f26695..cf1128e2 100644 Binary files a/func_2d_graphics-2.pdf and b/func_2d_graphics-2.pdf differ diff --git a/func_2d_graphics-3.pdf b/func_2d_graphics-3.pdf index 331d80a8..bff5b5c8 100644 Binary files a/func_2d_graphics-3.pdf and b/func_2d_graphics-3.pdf differ diff --git a/func_2d_graphics-4.pdf b/func_2d_graphics-4.pdf index 6a65b950..161ad2a1 100644 Binary files a/func_2d_graphics-4.pdf and b/func_2d_graphics-4.pdf differ diff --git a/func_2d_graphics-5.pdf b/func_2d_graphics-5.pdf index 46771483..3842c53a 100644 Binary files a/func_2d_graphics-5.pdf and b/func_2d_graphics-5.pdf differ diff --git a/func_2d_graphics-6.pdf b/func_2d_graphics-6.pdf index 9ce85914..1b98967b 100644 Binary files a/func_2d_graphics-6.pdf and b/func_2d_graphics-6.pdf differ diff --git a/func_2d_graphics-8.hires.png b/func_2d_graphics-8.hires.png index 646bea8a..f31c8d91 100644 Binary files a/func_2d_graphics-8.hires.png and b/func_2d_graphics-8.hires.png differ diff --git a/func_2d_graphics-8.pdf b/func_2d_graphics-8.pdf index a10f7d88..6d267458 100644 Binary files a/func_2d_graphics-8.pdf and b/func_2d_graphics-8.pdf differ diff --git a/func_2d_graphics-8.png b/func_2d_graphics-8.png index b21640af..be292ec8 100644 Binary files a/func_2d_graphics-8.png and b/func_2d_graphics-8.png differ diff --git a/func_2d_graphics-9.hires.png b/func_2d_graphics-9.hires.png index e4625965..3161b235 100644 Binary files a/func_2d_graphics-9.hires.png and b/func_2d_graphics-9.hires.png differ diff --git a/func_2d_graphics-9.pdf b/func_2d_graphics-9.pdf index 4649bf05..8833fc54 100644 Binary files a/func_2d_graphics-9.pdf and b/func_2d_graphics-9.pdf differ diff --git a/func_2d_graphics-9.png b/func_2d_graphics-9.png index 846f0d69..f2b24dde 100644 Binary files a/func_2d_graphics-9.png and b/func_2d_graphics-9.png differ diff --git a/func_2d_graphics.html b/func_2d_graphics.html index 2d7a5394..a828ccb8 100644 --- a/func_2d_graphics.html +++ b/func_2d_graphics.html @@ -571,7 +571,7 @@

2D graphics

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_3d-1.pdf b/func_3d-1.pdf index b9d571f8..ffce7cb8 100644 Binary files a/func_3d-1.pdf and b/func_3d-1.pdf differ diff --git a/func_3d.html b/func_3d.html index c95631f3..2d4a1b10 100644 --- a/func_3d.html +++ b/func_3d.html @@ -311,9 +311,7 @@
-eul2r(phi: float, theta: float, psi: float, unit: str = 'rad') SO3Array[source]
-
-eul2r(phi: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], theta: None = None, psi: None = None, unit: str = 'rad') SO3Array
+eul2r(phi, theta=None, psi=None, unit='rad')[source]

Create an SO(3) rotation matrix from Euler angles

Parameters
@@ -365,9 +363,7 @@
-eul2tr(phi: float, theta: float, psi: float, unit: str = 'rad') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-eul2tr(phi: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], theta=None, psi=None, unit: str = 'rad') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+eul2tr(phi, theta=None, psi=None, unit='rad')[source]

Create an SE(3) pure rotation matrix from Euler angles

Parameters
@@ -875,13 +871,7 @@
-rotvelxform(Γ: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], inverse: bool = False, full: bool = False, representation='rpy/xyz') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-rotvelxform(Γ: SO3Array, inverse: bool = False, full: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-rotvelxform(Γ: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], inverse: bool = False, full: bool = True, representation='rpy/xyz') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-rotvelxform(Γ: SO3Array, inverse: bool = False, full: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+rotvelxform(Γ, inverse=False, full=False, representation='rpy/xyz')[source]

Rotational velocity transformation

Parameters
@@ -971,9 +961,7 @@
-rotvelxform_inv_dot(Γ: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], Γd: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], full: bool = False, representation: str = 'rpy/xyz') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-rotvelxform_inv_dot(Γ: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], Γd: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], full: bool = True, representation: str = 'rpy/xyz') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+rotvelxform_inv_dot(Γ, Γd, full=False, representation='rpy/xyz')[source]

Derivative of angular velocity transformation

Parameters
@@ -1246,9 +1234,7 @@
-rpy2r(roll: float, pitch: float, yaw: float, *, unit: str = "'rad'", order: str = "'zyx'") SO3Array[source]
-
-rpy2r(roll: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], pitch: None = None, yaw: None = None, *, unit: str = "'rad'", order: str = "'zyx'") SO3Array
+rpy2r(roll, pitch=None, yaw=None, *, unit='rad', order='zyx')[source]

Create an SO(3) rotation matrix from roll-pitch-yaw angles

Parameters
@@ -1316,9 +1302,7 @@
-rpy2tr(roll: float, pitch: float, yaw: float, unit: str = 'rad', order: str = 'zyx') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-rpy2tr(roll: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], pitch: None = None, yaw: None = None, unit: str = 'rad', order: str = 'zyx') numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+rpy2tr(roll, pitch=None, yaw=None, unit='rad', order='zyx')[source]

Create an SE(3) rotation matrix from roll-pitch-yaw angles

Parameters
@@ -1390,9 +1374,7 @@
-tr2adjoint(T: SO3Array) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-tr2adjoint(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+tr2adjoint(T)[source]

Adjoint matrix

Parameters
@@ -1834,11 +1816,7 @@
-transl(x: float, y: float, z: float) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-transl(x: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-transl(x: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+transl(x, y=None, z=None)[source]

Create SE(3) pure translation, or extract translation from SE(3) matrix

Create a translational SE(3) matrix

@@ -1928,13 +1906,7 @@
-trexp(S: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], theta: Optional[float] = None, check: bool = True) SO3Array[source]
-
-trexp(S: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], theta: Optional[float] = None, check: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-trexp(S: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], theta: Optional[float] = None, check=True) SO3Array
-
-trexp(S: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], theta: Optional[float] = None, check=True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+trexp(S, theta=None, check=True)[source]

Exponential of se(3) or so(3) matrix

Parameters
@@ -2032,9 +2004,7 @@
-trinterp(start: Optional[SO3Array], end: SO3Array, s: float, shortest: bool = True) SO3Array[source]
-
-trinterp(start: Optional[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], end: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], s: float, shortest: bool = True) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+trinterp(start, end, s, shortest=True)[source]

Interpolate SE(3) matrices

Parameters
@@ -2154,13 +2124,7 @@
-trlog(T: SO3Array, check: bool = True, twist: bool = False, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-trlog(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = True, twist: bool = False, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
-
-trlog(T: SO3Array, check: bool = True, twist: bool = True, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
-
-trlog(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = True, twist: bool = True, tol: float = 20) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+trlog(T, check=True, twist=False, tol=20)[source]

Logarithm of SO(3) or SE(3) matrix

Parameters
@@ -2221,7 +2185,7 @@
-trnorm(R: SO3Array) SO3Array[source]
+trnorm(T)[source]

Normalize an SO(3) or SE(3) matrix

Parameters
@@ -2814,7 +2778,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_3d_graphics-1.pdf b/func_3d_graphics-1.pdf index 0aa7712e..fa9e8dd4 100644 Binary files a/func_3d_graphics-1.pdf and b/func_3d_graphics-1.pdf differ diff --git a/func_3d_graphics-2.hires.png b/func_3d_graphics-2.hires.png index b707e126..1f59796e 100644 Binary files a/func_3d_graphics-2.hires.png and b/func_3d_graphics-2.hires.png differ diff --git a/func_3d_graphics-2.pdf b/func_3d_graphics-2.pdf index e29156f8..22df3b88 100644 Binary files a/func_3d_graphics-2.pdf and b/func_3d_graphics-2.pdf differ diff --git a/func_3d_graphics-2.png b/func_3d_graphics-2.png index 6b156418..a4c4d8e4 100644 Binary files a/func_3d_graphics-2.png and b/func_3d_graphics-2.png differ diff --git a/func_3d_graphics-3.pdf b/func_3d_graphics-3.pdf index 1f9af356..9aac7941 100644 Binary files a/func_3d_graphics-3.pdf and b/func_3d_graphics-3.pdf differ diff --git a/func_3d_graphics-4.pdf b/func_3d_graphics-4.pdf index 8c3de2a5..cd133cbd 100644 Binary files a/func_3d_graphics-4.pdf and b/func_3d_graphics-4.pdf differ diff --git a/func_3d_graphics-5.pdf b/func_3d_graphics-5.pdf index 9a1ff8d3..d1c69ae9 100644 Binary files a/func_3d_graphics-5.pdf and b/func_3d_graphics-5.pdf differ diff --git a/func_3d_graphics-6.pdf b/func_3d_graphics-6.pdf index 427b4142..aa7d3b3c 100644 Binary files a/func_3d_graphics-6.pdf and b/func_3d_graphics-6.pdf differ diff --git a/func_3d_graphics.html b/func_3d_graphics.html index 67ea6261..2cf9f580 100644 --- a/func_3d_graphics.html +++ b/func_3d_graphics.html @@ -399,7 +399,7 @@

3D graphics

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_animation.html b/func_animation.html index 4db78db0..a9c70ccb 100644 --- a/func_animation.html +++ b/func_animation.html @@ -646,7 +646,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_args.html b/func_args.html index dbd4d1fb..b0a56558 100644 --- a/func_args.html +++ b/func_args.html @@ -102,7 +102,7 @@

Argument checking

Utility functions for testing and converting passed arguments. Used in all -spatialmath functions and classes to provides for flexibility in argument types +spatialmath functions and classes to provides for flexibility in argument types that can be passed.

@@ -311,13 +311,7 @@
-getvector(v: Union[float, List[float], Tuple[float, ...], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], dim: Optional[int] = None, out: str = 'array', dtype: Union[numpy.dtype, None, type, numpy.typing._dtype_like._SupportsDType[numpy.dtype], str, Tuple[Any, int], Tuple[Any, Union[typing_extensions.SupportsIndex, Sequence[typing_extensions.SupportsIndex]]], List[Any], numpy.typing._dtype_like._DTypeDict, Tuple[Any, Any]] = np.float64) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-getvector(v: Union[float, List[float], Tuple[float, ...], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], dim: Optional[int] = None, out: str = 'list', dtype: Union[numpy.dtype, None, type, numpy.typing._dtype_like._SupportsDType[numpy.dtype], str, Tuple[Any, int], Tuple[Any, Union[typing_extensions.SupportsIndex, Sequence[typing_extensions.SupportsIndex]]], List[Any], numpy.typing._dtype_like._DTypeDict, Tuple[Any, Any]] = np.float64) List[float]
-
-getvector(v: Tuple[float, ...], dim: Optional[int] = None, out: str = 'sequence', dtype: Union[numpy.dtype, None, type, numpy.typing._dtype_like._SupportsDType[numpy.dtype], str, Tuple[Any, int], Tuple[Any, Union[typing_extensions.SupportsIndex, Sequence[typing_extensions.SupportsIndex]]], List[Any], numpy.typing._dtype_like._DTypeDict, Tuple[Any, Any]] = np.float64) Tuple[float, ...]
-
-getvector(v: List[float], dim: Optional[int] = None, out: str = 'sequence', dtype: Union[numpy.dtype, None, type, numpy.typing._dtype_like._SupportsDType[numpy.dtype], str, Tuple[Any, int], Tuple[Any, Union[typing_extensions.SupportsIndex, Sequence[typing_extensions.SupportsIndex]]], List[Any], numpy.typing._dtype_like._DTypeDict, Tuple[Any, Any]] = np.float64) List[float]
+getvector(v, dim=None, out='array', dtype=<class 'numpy.float64'>)[source]

Return a vector value

Parameters
@@ -728,7 +722,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_graphics.html b/func_graphics.html index e706686b..1b553d33 100644 --- a/func_graphics.html +++ b/func_graphics.html @@ -125,7 +125,7 @@

Graphics and animation

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_nd.html b/func_nd.html index 914a7473..bdcba776 100644 --- a/func_nd.html +++ b/func_nd.html @@ -481,9 +481,7 @@
-r2t(R: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-r2t(R: SO3Array, check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+r2t(R, check=False)[source]

Convert SO(n) to SE(n)

Parameters
@@ -529,9 +527,7 @@
-rt2tr(R: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], t: Union[List, Tuple[float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], check=False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-rt2tr(R: SO3Array, t: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], check=False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+rt2tr(R, t, check=False)[source]

Convert SO(n) and translation to SE(n)

Parameters
@@ -576,9 +572,7 @@
-skew(v: float) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-skew(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+skew(v)[source]

Create skew-symmetric metrix from vector

Parameters
@@ -628,9 +622,7 @@
-skewa(v: Union[List, Tuple[float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-skewa(v: Union[List, Tuple[float, float, float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+skewa(v)[source]

Create augmented skew-symmetric metrix from vector

Parameters
@@ -683,9 +675,7 @@
-t2r(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-t2r(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) SO3Array
+t2r(T, check=False)[source]

Convert SE(n) to SO(n)

Parameters
@@ -734,9 +724,7 @@
-tr2rt(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check=False) Tuple[numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], numpy.ndarray[Any, numpy.dtype[numpy.floating]]][source]
-
-tr2rt(T: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check=False) Tuple[SO3Array, numpy.ndarray[Any, numpy.dtype[numpy.floating]]]
+tr2rt(T, check=False)[source]

Convert SE(n) to SO(n) and translation

Parameters
@@ -784,9 +772,7 @@
-vex(s: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.floating]][source]
-
-vex(s: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+vex(s, check=False)[source]

Convert skew-symmetric matrix to vector

Parameters
@@ -848,9 +834,7 @@
-vexa(Omega: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.floating]][source]
-
-vexa(Omega: numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]], check: bool = False) numpy.ndarray[Any, numpy.dtype[numpy.floating]]
+vexa(Omega, check=False)[source]

Convert skew-symmetric matrix to vector

Parameters
@@ -926,7 +910,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_numeric-1.pdf b/func_numeric-1.pdf index 43d3a964..c49920b3 100644 Binary files a/func_numeric-1.pdf and b/func_numeric-1.pdf differ diff --git a/func_numeric-2.pdf b/func_numeric-2.pdf index 62106656..7432a3e5 100644 Binary files a/func_numeric-2.pdf and b/func_numeric-2.pdf differ diff --git a/func_numeric-3.pdf b/func_numeric-3.pdf index b55f352e..76d49a62 100644 Binary files a/func_numeric-3.pdf and b/func_numeric-3.pdf differ diff --git a/func_numeric.html b/func_numeric.html index f36ca7dc..3d9a7e8e 100644 --- a/func_numeric.html +++ b/func_numeric.html @@ -130,13 +130,13 @@
>>> from spatialmath.base import array2str
 >>> import numpy as np
 >>> array2str(np.random.rand(2,2))
-'[ 0.857, 0.499 | 0.5, 0.0367 ]'
+'[ 0.152, 0.924 | 0.317, 0.421 ]'
 >>> array2str(np.random.rand(2,2), rowsep="; ")  # MATLAB-like
-'[ 0.805, 0.373; 0.441, 0.168 ]'
+'[ 0.633, 0.654; 0.938, 0.595 ]'
 >>> array2str(np.random.rand(3,))
-'[ 0.781, 0.545, 0.628 ]'
+'[ 0.236, 0.849, 0.546 ]'
 >>> array2str(np.random.rand(3,1))
-'[ 0.915 | 0.965 | 0.949 ]'
+'[ 0.888 | 0.309 | 0.603 ]'
 
@@ -357,18 +357,18 @@ an SE(N) matrix and the derivative is converted to a colun vector.

Example:

-
  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/transforms3d.py", line 92, in rotx
+
  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/transforms3d.py", line 82, in rotx
     theta = getunit(theta, unit, dim=0)
-  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/argcheck.py", line 568, in getunit
+  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/argcheck.py", line 575, in getunit
     raise ValueError("for dim==0 input must be a scalar")
 ValueError: for dim==0 input must be a scalar
 Traceback (most recent call last):
   File "<input>", line 1, in <module>
-  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/numeric.py", line 65, in numjac
+  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/numeric.py", line 59, in numjac
     J0 = f(x)
-  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/transforms3d.py", line 92, in rotx
+  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/transforms3d.py", line 82, in rotx
     theta = getunit(theta, unit, dim=0)
-  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/argcheck.py", line 568, in getunit
+  File "/opt/hostedtoolcache/Python/3.7.17/x64/lib/python3.7/site-packages/spatialmath/base/argcheck.py", line 575, in getunit
     raise ValueError("for dim==0 input must be a scalar")
 ValueError: for dim==0 input must be a scalar
 
@@ -434,7 +434,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_quat.html b/func_quat.html index bf61149e..e28f1cb0 100644 --- a/func_quat.html +++ b/func_quat.html @@ -389,9 +389,7 @@
-qisequal(q1: Union[List, Tuple[float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], q2: Union[List, Tuple[float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], tol: float = 20, unitq: Optional[bool] = False) bool[source]
-
-qisequal(q1: Union[List, Tuple[float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], q2: Union[List, Tuple[float, float, float, float], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], tol: float = 20, unitq: Optional[bool] = True) bool
+qisequal(q1, q2, tol=20, unitq=False)[source]

Test if quaternions are equal

Parameters
@@ -624,7 +622,7 @@ 1.0000 < 2.0000, 3.0000, 4.0000 > >>> q = qrand() # a unit quaternion >>> qprint(q, delim=('<<', '>>')) - 0.5170 << 0.3377, -0.1088, 0.7790 >> +-0.4603 << 0.0424, -0.8376, -0.2911 >>
@@ -705,7 +703,7 @@ considered equivalent to a random SO(3) rotation.

>>> from spatialmath.base import qrand, qprint
 >>> qprint(qrand())
--0.5585 < -0.6229, -0.4615,  0.2951 >
+ 0.5431 <  0.6420,  0.5389, -0.0491 >
 
@@ -995,7 +993,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_symbolic.html b/func_symbolic.html index d077686c..3266a288 100644 --- a/func_symbolic.html +++ b/func_symbolic.html @@ -106,9 +106,7 @@ supported.

-cos(theta: float) float[source]
-
-cos(theta: sympy.core.symbol.Symbol) sympy.core.symbol.Symbol
+cos(theta)[source]

Generalized cosine function

Parameters
@@ -303,9 +301,7 @@
-sin(theta: float) float[source]
-
-sin(theta: sympy.core.symbol.Symbol) sympy.core.symbol.Symbol
+sin(theta)[source]

Generalized sine function

Parameters
@@ -335,9 +331,7 @@
-sqrt(theta: float) float[source]
-
-sqrt(theta: sympy.core.symbol.Symbol) sympy.core.symbol.Symbol
+sqrt(v)[source]

Generalized sqrt function

Parameters
@@ -415,9 +409,7 @@
-tan(theta: float) float[source]
-
-tan(theta: sympy.core.symbol.Symbol) sympy.core.symbol.Symbol
+tan(theta)[source]

Generalized tangent function

Parameters
@@ -486,7 +478,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/func_vector.html b/func_vector.html index 94aa1636..c7d0f6a3 100644 --- a/func_vector.html +++ b/func_vector.html @@ -106,9 +106,7 @@ tuple, numpy array, numpy row vector or numpy column vector.

-angdiff(a: Union[float, List[float], Tuple[float, ...], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]], b: Union[float, List[float], Tuple[float, ...], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]][source]
-
-angdiff(a: Union[float, List[float], Tuple[float, ...], numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]]) numpy.ndarray[Any, numpy.dtype[numpy.typing._generic_alias.ScalarType]]
+angdiff(a, b=None)[source]

Angular difference

Parameters
@@ -1000,7 +998,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/functions.html b/functions.html index 722a5202..94ce8f68 100644 --- a/functions.html +++ b/functions.html @@ -130,7 +130,7 @@

Function reference

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/genindex.html b/genindex.html index 047ed16e..bf9f2207 100644 --- a/genindex.html +++ b/genindex.html @@ -2643,7 +2643,7 @@

Z

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/index.html b/index.html index 75e64115..d8c4e8d8 100644 --- a/index.html +++ b/index.html @@ -134,7 +134,7 @@

Spatial Maths for Python

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/indices.html b/indices.html index 64d69e58..39aa1589 100644 --- a/indices.html +++ b/indices.html @@ -103,7 +103,7 @@

Indices

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/intro.html b/intro.html index b3898008..5e74c07a 100644 --- a/intro.html +++ b/intro.html @@ -452,7 +452,7 @@

Displaying values
>>> from spatialmath import *
 >>> X = SE3.Rand()
 >>> _ = X.printline()
-t = -0.801, -0.783, -0.239; rpy/zyx = 122°, 22.7°, 23.3°
+t = -0.758, 0.44, 0.299; rpy/zyx = 89.8°, 17.5°, 54.2°
 

The classes SE3, SO3, SE2 and SO2 can provide colorized text output to the console:

@@ -1211,7 +1211,7 @@

Creating a MATLAB-like environment in Python

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/modules.html b/modules.html index 04f24985..3d3dd792 100644 --- a/modules.html +++ b/modules.html @@ -154,7 +154,7 @@

spatialmath

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/py-modindex.html b/py-modindex.html index a4053503..1fadcb64 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -165,7 +165,7 @@

Python Module Index

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/search.html b/search.html index 3792b7a1..8317aeb7 100644 --- a/search.html +++ b/search.html @@ -98,7 +98,7 @@

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/searchindex.js b/searchindex.js index c12e84dc..1a4e8bc5 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["2d_ellipse","2d_line","2d_linesegment","2d_orient_SO2","2d_polygon","2d_pose_SE2","2d_pose_twist","3d_dualquaternion","3d_line","3d_orient_SO3","3d_orient_unitquaternion","3d_plane","3d_pose_SE3","3d_pose_dualquaternion","3d_pose_twist","3d_quaternion","6d_acceleration","6d_f6","6d_force","6d_inertia","6d_m6","6d_momentum","6d_spatial","6d_velocity","classes-2d","classes-3d","func_2d","func_2d_graphics","func_3d","func_3d_graphics","func_animation","func_args","func_graphics","func_nd","func_numeric","func_quat","func_symbolic","func_vector","functions","index","indices","intro","modules","spatialmath","support"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["2d_ellipse.rst","2d_line.rst","2d_linesegment.rst","2d_orient_SO2.rst","2d_polygon.rst","2d_pose_SE2.rst","2d_pose_twist.rst","3d_dualquaternion.rst","3d_line.rst","3d_orient_SO3.rst","3d_orient_unitquaternion.rst","3d_plane.rst","3d_pose_SE3.rst","3d_pose_dualquaternion.rst","3d_pose_twist.rst","3d_quaternion.rst","6d_acceleration.rst","6d_f6.rst","6d_force.rst","6d_inertia.rst","6d_m6.rst","6d_momentum.rst","6d_spatial.rst","6d_velocity.rst","classes-2d.rst","classes-3d.rst","func_2d.rst","func_2d_graphics.rst","func_3d.rst","func_3d_graphics.rst","func_animation.rst","func_args.rst","func_graphics.rst","func_nd.rst","func_numeric.rst","func_quat.rst","func_symbolic.rst","func_vector.rst","functions.rst","index.rst","indices.rst","intro.rst","modules.rst","spatialmath.rst","support.rst"],objects:{"spatialmath.DualQuaternion":[[7,0,1,"","DualQuaternion"],[13,0,1,"","UnitDualQuaternion"]],"spatialmath.DualQuaternion.DualQuaternion":[[7,1,1,"","Pure"],[7,1,1,"","__add__"],[7,1,1,"","__init__"],[7,1,1,"","__mul__"],[7,1,1,"","__sub__"],[7,1,1,"","conj"],[7,1,1,"","matrix"],[7,1,1,"","norm"],[7,2,1,"","vec"]],"spatialmath.DualQuaternion.UnitDualQuaternion":[[13,1,1,"","Pure"],[13,1,1,"","SE3"],[13,1,1,"","__add__"],[13,1,1,"","__init__"],[13,1,1,"","__mul__"],[13,1,1,"","__sub__"],[13,1,1,"","conj"],[13,1,1,"","matrix"],[13,1,1,"","norm"],[13,2,1,"","vec"]],"spatialmath.base":[[30,3,0,"-","animate"],[31,3,0,"-","argcheck"],[29,3,0,"-","graphics"],[34,3,0,"-","numeric"],[35,3,0,"-","quaternions"],[36,3,0,"-","symbolic"],[26,3,0,"-","transforms2d"],[28,3,0,"-","transforms3d"],[33,3,0,"-","transformsNd"],[37,3,0,"-","vectors"]],"spatialmath.base.animate":[[30,0,1,"","Animate"],[30,0,1,"","Animate2"]],"spatialmath.base.animate.Animate":[[30,4,1,"","__dict__"],[30,1,1,"","__init__"],[30,4,1,"","__module__"],[30,1,1,"","__repr__"],[30,1,1,"","__str__"],[30,4,1,"","__weakref__"],[30,1,1,"","artists"],[30,1,1,"","plot"],[30,1,1,"","quiver"],[30,1,1,"","run"],[30,1,1,"","scatter"],[30,1,1,"","set_proj_type"],[30,1,1,"","set_xlabel"],[30,1,1,"","set_xlim"],[30,1,1,"","set_ylabel"],[30,1,1,"","set_ylim"],[30,1,1,"","set_zlabel"],[30,1,1,"","set_zlim"],[30,1,1,"","text"],[30,1,1,"","trplot"]],"spatialmath.base.animate.Animate2":[[30,4,1,"","__dict__"],[30,1,1,"","__init__"],[30,4,1,"","__module__"],[30,1,1,"","__repr__"],[30,1,1,"","__str__"],[30,4,1,"","__weakref__"],[30,1,1,"","artists"],[30,1,1,"","autoscale"],[30,1,1,"","plot"],[30,1,1,"","quiver"],[30,1,1,"","run"],[30,1,1,"","scatter"],[30,1,1,"","set_aspect"],[30,1,1,"","set_xlabel"],[30,1,1,"","set_xlim"],[30,1,1,"","set_ylabel"],[30,1,1,"","set_ylim"],[30,1,1,"","text"],[30,1,1,"","trplot2"]],"spatialmath.base.argcheck":[[31,5,1,"","assertmatrix"],[31,5,1,"","assertvector"],[31,5,1,"","getmatrix"],[31,5,1,"","getunit"],[31,5,1,"","getvector"],[31,5,1,"","isinteger"],[31,5,1,"","islistof"],[31,5,1,"","ismatrix"],[31,5,1,"","isnumberlist"],[31,5,1,"","isscalar"],[31,5,1,"","isvector"],[31,5,1,"","isvectorlist"],[31,5,1,"","verifymatrix"]],"spatialmath.base.graphics":[[27,5,1,"","plot_arrow"],[27,5,1,"","plot_box"],[27,5,1,"","plot_circle"],[29,5,1,"","plot_cone"],[29,5,1,"","plot_cuboid"],[29,5,1,"","plot_cylinder"],[27,5,1,"","plot_ellipse"],[29,5,1,"","plot_ellipsoid"],[27,5,1,"","plot_homline"],[27,5,1,"","plot_point"],[27,5,1,"","plot_polygon"],[29,5,1,"","plot_sphere"],[27,5,1,"","plot_text"],[27,5,1,"","plotvol2"],[29,5,1,"","plotvol3"]],"spatialmath.base.numeric":[[34,5,1,"","array2str"],[34,5,1,"","bresenham"],[34,5,1,"","gauss1d"],[34,5,1,"","gauss2d"],[34,5,1,"","mpq_point"],[34,5,1,"","numhess"],[34,5,1,"","numjac"],[34,5,1,"","str2array"]],"spatialmath.base.quaternions":[[35,5,1,"","q2r"],[35,5,1,"","q2v"],[35,5,1,"","qangle"],[35,5,1,"","qconj"],[35,5,1,"","qdot"],[35,5,1,"","qdotb"],[35,5,1,"","qeye"],[35,5,1,"","qinner"],[35,5,1,"","qisequal"],[35,5,1,"","qisunit"],[35,5,1,"","qmatrix"],[35,5,1,"","qnorm"],[35,5,1,"","qpositive"],[35,5,1,"","qpow"],[35,5,1,"","qprint"],[35,5,1,"","qpure"],[35,5,1,"","qqmul"],[35,5,1,"","qrand"],[35,5,1,"","qslerp"],[35,5,1,"","qunit"],[35,5,1,"","qvmul"],[35,5,1,"","r2q"],[35,5,1,"","v2q"],[35,5,1,"","vvmul"]],"spatialmath.base.symbolic":[[36,5,1,"","cos"],[36,5,1,"","det"],[36,5,1,"","issymbol"],[36,5,1,"","negative_one"],[36,5,1,"","one"],[36,5,1,"","pi"],[36,5,1,"","simplify"],[36,5,1,"","sin"],[36,5,1,"","sqrt"],[36,5,1,"","symbol"],[36,5,1,"","tan"],[36,5,1,"","zero"]],"spatialmath.base.transforms2d":[[26,5,1,"","ICP2d"],[26,5,1,"","ishom2"],[26,5,1,"","isrot2"],[26,5,1,"","points2tr2"],[26,5,1,"","pos2tr2"],[26,5,1,"","rot2"],[26,5,1,"","tr2jac2"],[26,5,1,"","tr2pos2"],[26,5,1,"","tr2xyt"],[26,5,1,"","tradjoint2"],[26,5,1,"","tranimate2"],[26,5,1,"","transl2"],[26,5,1,"","trexp2"],[26,5,1,"","trinterp2"],[26,5,1,"","trinv2"],[26,5,1,"","trlog2"],[26,5,1,"","trnorm2"],[26,5,1,"","trot2"],[26,5,1,"","trplot2"],[26,5,1,"","trprint2"],[26,5,1,"","xyt2tr"]],"spatialmath.base.transforms3d":[[28,5,1,"","angvec2r"],[28,5,1,"","angvec2tr"],[28,5,1,"","angvelxform"],[28,5,1,"","angvelxform_dot"],[28,5,1,"","delta2tr"],[28,5,1,"","eul2jac"],[28,5,1,"","eul2r"],[28,5,1,"","eul2tr"],[28,5,1,"","exp2jac"],[28,5,1,"","exp2r"],[28,5,1,"","exp2tr"],[28,5,1,"","ishom"],[28,5,1,"","isrot"],[28,5,1,"","oa2r"],[28,5,1,"","oa2tr"],[28,5,1,"","r2x"],[28,5,1,"","rodrigues"],[28,5,1,"","rot2jac"],[28,5,1,"","rotvelxform"],[28,5,1,"","rotvelxform_inv_dot"],[28,5,1,"","rotx"],[28,5,1,"","roty"],[28,5,1,"","rotz"],[28,5,1,"","rpy2jac"],[28,5,1,"","rpy2r"],[28,5,1,"","rpy2tr"],[28,5,1,"","tr2adjoint"],[28,5,1,"","tr2angvec"],[28,5,1,"","tr2delta"],[28,5,1,"","tr2eul"],[28,5,1,"","tr2jac"],[28,5,1,"","tr2rpy"],[28,5,1,"","tr2x"],[28,5,1,"","tranimate"],[28,5,1,"","transl"],[28,5,1,"","trexp"],[28,5,1,"","trinterp"],[28,5,1,"","trinv"],[28,5,1,"","trlog"],[28,5,1,"","trnorm"],[28,5,1,"","trotx"],[28,5,1,"","troty"],[28,5,1,"","trotz"],[28,5,1,"","trplot"],[28,5,1,"","trprint"],[28,5,1,"","x2r"],[28,5,1,"","x2tr"]],"spatialmath.base.transformsNd":[[33,5,1,"","Ab2M"],[33,5,1,"","det"],[33,5,1,"","e2h"],[33,5,1,"","h2e"],[33,5,1,"","homtrans"],[33,5,1,"","isR"],[33,5,1,"","iseye"],[33,5,1,"","isskew"],[33,5,1,"","isskewa"],[33,5,1,"","r2t"],[33,5,1,"","rt2tr"],[33,5,1,"","skew"],[33,5,1,"","skewa"],[33,5,1,"","t2r"],[33,5,1,"","tr2rt"],[33,5,1,"","vex"],[33,5,1,"","vexa"]],"spatialmath.base.vectors":[[37,5,1,"","angdiff"],[37,5,1,"","angle_mean"],[37,5,1,"","angle_std"],[37,5,1,"","angle_wrap"],[37,5,1,"","colvec"],[37,5,1,"","cross"],[37,5,1,"","isunittwist"],[37,5,1,"","isunittwist2"],[37,5,1,"","isunitvec"],[37,5,1,"","iszero"],[37,5,1,"","iszerovec"],[37,5,1,"","norm"],[37,5,1,"","normsq"],[37,5,1,"","orthogonalize"],[37,5,1,"","project"],[37,5,1,"","removesmall"],[37,5,1,"","unittwist"],[37,5,1,"","unittwist2"],[37,5,1,"","unittwist2_norm"],[37,5,1,"","unittwist_norm"],[37,5,1,"","unitvec"],[37,5,1,"","unitvec_norm"],[37,5,1,"","vector_diff"],[37,5,1,"","wrap_0_2pi"],[37,5,1,"","wrap_0_pi"],[37,5,1,"","wrap_mpi2_pi2"],[37,5,1,"","wrap_mpi_pi"]],"spatialmath.geom2d":[[24,0,1,"","Ellipse"],[24,0,1,"","Line2"],[24,0,1,"","LineSegment2"],[24,0,1,"","Polygon2"]],"spatialmath.geom2d.Ellipse":[[24,2,1,"","E"],[24,1,1,"","FromPerimeter"],[24,1,1,"","FromPoints"],[24,1,1,"","Polynomial"],[24,1,1,"","__init__"],[0,1,1,"","__str__"],[24,2,1,"","area"],[24,2,1,"","centre"],[24,1,1,"","contains"],[24,1,1,"","plot"],[24,1,1,"","points"],[24,1,1,"","polygon"],[24,2,1,"","polynomial"],[24,2,1,"","radii"],[24,2,1,"","theta"]],"spatialmath.geom2d.Line2":[[24,1,1,"","General"],[24,1,1,"","Join"],[24,1,1,"","TwoPoints"],[24,1,1,"","__init__"],[24,1,1,"","contains"],[24,1,1,"","contains_polygon_point"],[24,1,1,"","distance_line_line"],[24,1,1,"","distance_line_point"],[24,1,1,"","general"],[24,1,1,"","intersect"],[24,1,1,"","intersect_polygon___line"],[24,1,1,"","intersect_segment"],[24,1,1,"","plot"],[24,1,1,"","points_join"]],"spatialmath.geom2d.LineSegment2":[[24,1,1,"","General"],[24,1,1,"","Join"],[24,1,1,"","TwoPoints"],[24,1,1,"","__init__"],[24,1,1,"","contains"],[24,1,1,"","contains_polygon_point"],[24,1,1,"","distance_line_line"],[24,1,1,"","distance_line_point"],[24,1,1,"","general"],[24,1,1,"","intersect"],[24,1,1,"","intersect_polygon___line"],[24,1,1,"","intersect_segment"],[24,1,1,"","plot"],[24,1,1,"","points_join"]],"spatialmath.geom2d.Polygon2":[[24,1,1,"","__init__"],[4,1,1,"","__len__"],[4,1,1,"","__str__"],[24,1,1,"","animate"],[24,1,1,"","area"],[24,1,1,"","bbox"],[24,1,1,"","centroid"],[24,1,1,"","contains"],[24,1,1,"","edges"],[24,1,1,"","intersects"],[24,1,1,"","moment"],[24,1,1,"","plot"],[24,1,1,"","radius"],[24,1,1,"","transformed"],[24,1,1,"","vertices"]],"spatialmath.geom3d":[[25,0,1,"","Line3"],[25,0,1,"","Plane3"],[25,0,1,"","Plucker"]],"spatialmath.geom3d.Line3":[[25,2,1,"","A"],[25,1,1,"","Alloc"],[25,1,1,"","Empty"],[25,1,1,"","IntersectingPlanes"],[25,1,1,"","Join"],[25,1,1,"","PointDir"],[25,1,1,"","TwoPlanes"],[25,1,1,"","__eq__"],[25,1,1,"","__init__"],[25,1,1,"","__mul__"],[25,1,1,"","__ne__"],[25,1,1,"","__or__"],[25,1,1,"","__rmul__"],[25,1,1,"","__xor__"],[25,1,1,"","append"],[25,1,1,"","arghandler"],[25,1,1,"","binop"],[25,1,1,"","clear"],[25,1,1,"","closest_to_line"],[25,1,1,"","closest_to_point"],[25,1,1,"","commonperp"],[25,1,1,"","contains"],[25,1,1,"","copy"],[25,1,1,"","count"],[25,1,1,"","distance"],[25,1,1,"","extend"],[25,1,1,"","index"],[25,1,1,"","insert"],[25,1,1,"","intersect_plane"],[25,1,1,"","intersect_volume"],[25,1,1,"","intersects"],[25,1,1,"","isequal"],[25,1,1,"","isintersecting"],[25,1,1,"","isparallel"],[25,1,1,"","isvalid"],[25,1,1,"","lam"],[25,1,1,"","plot"],[25,1,1,"","point"],[25,1,1,"","pop"],[25,2,1,"","pp"],[25,2,1,"","ppd"],[25,1,1,"","remove"],[25,1,1,"","reverse"],[25,2,1,"","shape"],[25,1,1,"","side"],[25,1,1,"","skew"],[25,1,1,"","sort"],[25,1,1,"","unop"],[25,2,1,"","uw"],[25,2,1,"","v"],[25,2,1,"","vec"],[25,2,1,"","w"]],"spatialmath.geom3d.Plane3":[[25,1,1,"","LinePoint"],[25,1,1,"","PointNormal"],[25,1,1,"","ThreePoints"],[25,1,1,"","TwoLines"],[25,1,1,"","__init__"],[25,1,1,"","contains"],[25,2,1,"","d"],[25,1,1,"","intersection"],[25,2,1,"","n"],[25,1,1,"","plot"]],"spatialmath.geom3d.Plucker":[[25,2,1,"","A"],[25,1,1,"","Alloc"],[25,1,1,"","Empty"],[25,1,1,"","IntersectingPlanes"],[25,1,1,"","Join"],[25,1,1,"","PointDir"],[25,1,1,"","TwoPlanes"],[25,1,1,"","__eq__"],[25,1,1,"","__init__"],[25,1,1,"","__mul__"],[25,1,1,"","__ne__"],[25,1,1,"","__or__"],[25,1,1,"","__rmul__"],[25,1,1,"","__xor__"],[25,1,1,"","append"],[25,1,1,"","arghandler"],[25,1,1,"","binop"],[25,1,1,"","clear"],[25,1,1,"","closest_to_line"],[25,1,1,"","closest_to_point"],[25,1,1,"","commonperp"],[25,1,1,"","contains"],[25,1,1,"","copy"],[25,1,1,"","count"],[25,1,1,"","distance"],[25,1,1,"","extend"],[25,1,1,"","index"],[25,1,1,"","insert"],[25,1,1,"","intersect_plane"],[25,1,1,"","intersect_volume"],[25,1,1,"","intersects"],[25,1,1,"","isequal"],[25,1,1,"","isintersecting"],[25,1,1,"","isparallel"],[25,1,1,"","isvalid"],[25,1,1,"","lam"],[25,1,1,"","plot"],[25,1,1,"","point"],[25,1,1,"","pop"],[25,2,1,"","pp"],[25,2,1,"","ppd"],[25,1,1,"","remove"],[25,1,1,"","reverse"],[25,2,1,"","shape"],[25,1,1,"","side"],[25,1,1,"","skew"],[25,1,1,"","sort"],[25,1,1,"","unop"],[25,2,1,"","uw"],[25,2,1,"","v"],[25,2,1,"","vec"],[25,2,1,"","w"]],"spatialmath.pose2d":[[5,0,1,"","SE2"],[3,0,1,"","SO2"]],"spatialmath.pose2d.SE2":[[5,2,1,"","A"],[5,1,1,"","Alloc"],[5,1,1,"","Empty"],[5,1,1,"","Exp"],[5,2,1,"","N"],[5,2,1,"","R"],[5,1,1,"","Rand"],[5,1,1,"","Rot"],[5,1,1,"","SE2"],[5,1,1,"","SE3"],[5,1,1,"","Twist2"],[5,1,1,"","Tx"],[5,1,1,"","Ty"],[5,1,1,"","__add__"],[5,1,1,"","__eq__"],[5,1,1,"","__init__"],[5,1,1,"","__mul__"],[5,1,1,"","__ne__"],[5,1,1,"","__pow__"],[5,1,1,"","__sub__"],[5,1,1,"","__truediv__"],[5,2,1,"","about"],[5,1,1,"","animate"],[5,1,1,"","append"],[5,1,1,"","arghandler"],[5,1,1,"","binop"],[5,1,1,"","clear"],[5,1,1,"","conjugation"],[5,1,1,"","det"],[5,1,1,"","extend"],[5,1,1,"","insert"],[5,1,1,"","interp"],[5,1,1,"","interp1"],[5,1,1,"","inv"],[5,2,1,"","isSE"],[5,2,1,"","isSO"],[5,1,1,"","ishom"],[5,1,1,"","ishom2"],[5,1,1,"","isrot"],[5,1,1,"","isrot2"],[5,1,1,"","isvalid"],[5,1,1,"","log"],[5,1,1,"","norm"],[5,1,1,"","plot"],[5,1,1,"","pop"],[5,1,1,"","print"],[5,1,1,"","printline"],[5,1,1,"","prod"],[5,1,1,"","reverse"],[5,2,1,"","shape"],[5,1,1,"","simplify"],[5,1,1,"","stack"],[5,1,1,"","strline"],[5,2,1,"","t"],[5,1,1,"","theta"],[5,1,1,"","unop"],[5,2,1,"","x"],[5,1,1,"","xyt"],[5,2,1,"","y"]],"spatialmath.pose2d.SO2":[[3,2,1,"","A"],[3,1,1,"","Alloc"],[3,1,1,"","Empty"],[3,1,1,"","Exp"],[3,2,1,"","N"],[3,2,1,"","R"],[3,1,1,"","Rand"],[3,1,1,"","SE2"],[3,1,1,"","__add__"],[3,1,1,"","__eq__"],[3,1,1,"","__init__"],[3,1,1,"","__mul__"],[3,1,1,"","__ne__"],[3,1,1,"","__pow__"],[3,1,1,"","__sub__"],[3,1,1,"","__truediv__"],[3,2,1,"","about"],[3,1,1,"","animate"],[3,1,1,"","append"],[3,1,1,"","arghandler"],[3,1,1,"","binop"],[3,1,1,"","clear"],[3,1,1,"","conjugation"],[3,1,1,"","det"],[3,1,1,"","extend"],[3,1,1,"","insert"],[3,1,1,"","interp"],[3,1,1,"","interp1"],[3,1,1,"","inv"],[3,2,1,"","isSE"],[3,2,1,"","isSO"],[3,1,1,"","ishom"],[3,1,1,"","ishom2"],[3,1,1,"","isrot"],[3,1,1,"","isrot2"],[3,1,1,"","isvalid"],[3,1,1,"","log"],[3,1,1,"","norm"],[3,1,1,"","plot"],[3,1,1,"","pop"],[3,1,1,"","print"],[3,1,1,"","printline"],[3,1,1,"","prod"],[3,1,1,"","reverse"],[3,2,1,"","shape"],[3,1,1,"","simplify"],[3,1,1,"","stack"],[3,1,1,"","strline"],[3,1,1,"","theta"],[3,1,1,"","unop"]],"spatialmath.pose3d":[[12,0,1,"","SE3"],[9,0,1,"","SO3"]],"spatialmath.pose3d.SE3":[[12,2,1,"","A"],[12,1,1,"","Ad"],[12,1,1,"","Alloc"],[12,1,1,"","AngVec"],[12,1,1,"","AngleAxis"],[12,1,1,"","CopyFrom"],[12,1,1,"","Delta"],[12,1,1,"","Empty"],[12,1,1,"","Eul"],[12,1,1,"","EulerVec"],[12,1,1,"","Exp"],[12,2,1,"","N"],[12,1,1,"","OA"],[12,2,1,"","R"],[12,1,1,"","RPY"],[12,1,1,"","Rand"],[12,1,1,"","Rt"],[12,1,1,"","Rx"],[12,1,1,"","Ry"],[12,1,1,"","Rz"],[12,1,1,"","Trans"],[12,1,1,"","TwoVectors"],[12,1,1,"","Tx"],[12,1,1,"","Ty"],[12,1,1,"","Tz"],[12,1,1,"","UnitQuaternion"],[12,1,1,"","__add__"],[12,1,1,"","__eq__"],[12,1,1,"","__init__"],[12,1,1,"","__mul__"],[12,1,1,"","__ne__"],[12,1,1,"","__pow__"],[12,1,1,"","__sub__"],[12,1,1,"","__truediv__"],[12,2,1,"","a"],[12,2,1,"","about"],[12,1,1,"","angdist"],[12,1,1,"","angvec"],[12,1,1,"","animate"],[12,1,1,"","append"],[12,1,1,"","clear"],[12,1,1,"","conjugation"],[12,1,1,"","delta"],[12,1,1,"","det"],[12,1,1,"","eul"],[12,1,1,"","eulervec"],[12,1,1,"","extend"],[12,1,1,"","insert"],[12,1,1,"","interp"],[12,1,1,"","interp1"],[12,1,1,"","inv"],[12,2,1,"","isSE"],[12,2,1,"","isSO"],[12,1,1,"","ishom"],[12,1,1,"","ishom2"],[12,1,1,"","isrot"],[12,1,1,"","isrot2"],[12,1,1,"","isvalid"],[12,1,1,"","jacob"],[12,1,1,"","log"],[12,2,1,"","n"],[12,1,1,"","norm"],[12,2,1,"","o"],[12,1,1,"","plot"],[12,1,1,"","pop"],[12,1,1,"","print"],[12,1,1,"","printline"],[12,1,1,"","prod"],[12,1,1,"","reverse"],[12,1,1,"","rpy"],[12,2,1,"","shape"],[12,1,1,"","simplify"],[12,1,1,"","stack"],[12,1,1,"","strline"],[12,2,1,"","t"],[12,1,1,"","twist"],[12,2,1,"","x"],[12,2,1,"","y"],[12,1,1,"","yaw_SE2"],[12,2,1,"","z"]],"spatialmath.pose3d.SO3":[[9,2,1,"","A"],[9,1,1,"","Alloc"],[9,1,1,"","AngVec"],[9,1,1,"","AngleAxis"],[9,1,1,"","Empty"],[9,1,1,"","Eul"],[9,1,1,"","EulerVec"],[9,1,1,"","Exp"],[9,2,1,"","N"],[9,1,1,"","OA"],[9,2,1,"","R"],[9,1,1,"","RPY"],[9,1,1,"","Rand"],[9,1,1,"","Rx"],[9,1,1,"","Ry"],[9,1,1,"","Rz"],[9,1,1,"","TwoVectors"],[9,1,1,"","UnitQuaternion"],[9,1,1,"","__add__"],[9,1,1,"","__eq__"],[9,1,1,"","__init__"],[9,1,1,"","__mul__"],[9,1,1,"","__ne__"],[9,1,1,"","__pow__"],[9,1,1,"","__sub__"],[9,1,1,"","__truediv__"],[9,2,1,"","a"],[9,2,1,"","about"],[9,1,1,"","angdist"],[9,1,1,"","angvec"],[9,1,1,"","animate"],[9,1,1,"","append"],[9,1,1,"","arghandler"],[9,1,1,"","binop"],[9,1,1,"","clear"],[9,1,1,"","conjugation"],[9,1,1,"","det"],[9,1,1,"","eul"],[9,1,1,"","eulervec"],[9,1,1,"","extend"],[9,1,1,"","insert"],[9,1,1,"","interp"],[9,1,1,"","interp1"],[9,1,1,"","inv"],[9,2,1,"","isSE"],[9,2,1,"","isSO"],[9,1,1,"","ishom"],[9,1,1,"","ishom2"],[9,1,1,"","isrot"],[9,1,1,"","isrot2"],[9,1,1,"","isvalid"],[9,1,1,"","log"],[9,2,1,"","n"],[9,1,1,"","norm"],[9,2,1,"","o"],[9,1,1,"","plot"],[9,1,1,"","pop"],[9,1,1,"","print"],[9,1,1,"","printline"],[9,1,1,"","prod"],[9,1,1,"","reverse"],[9,1,1,"","rpy"],[9,2,1,"","shape"],[9,1,1,"","simplify"],[9,1,1,"","stack"],[9,1,1,"","strline"],[9,1,1,"","unop"]],"spatialmath.quaternion":[[15,0,1,"","Quaternion"],[10,0,1,"","UnitQuaternion"]],"spatialmath.quaternion.Quaternion":[[15,2,1,"","A"],[15,1,1,"","Alloc"],[15,1,1,"","Empty"],[15,1,1,"","Pure"],[15,1,1,"","__add__"],[15,1,1,"","__eq__"],[15,1,1,"","__init__"],[15,1,1,"","__mul__"],[15,1,1,"","__ne__"],[15,1,1,"","__pow__"],[15,1,1,"","__sub__"],[15,1,1,"","__truediv__"],[15,1,1,"","append"],[15,1,1,"","arghandler"],[15,1,1,"","binop"],[15,1,1,"","clear"],[15,1,1,"","conj"],[15,1,1,"","exp"],[15,1,1,"","extend"],[15,1,1,"","inner"],[15,1,1,"","insert"],[15,1,1,"","isvalid"],[15,1,1,"","log"],[15,2,1,"","matrix"],[15,1,1,"","norm"],[15,1,1,"","pop"],[15,1,1,"","reverse"],[15,2,1,"","s"],[15,2,1,"","shape"],[15,1,1,"","unit"],[15,1,1,"","unop"],[15,2,1,"","v"],[15,2,1,"","vec"],[15,2,1,"","vec_xyzs"]],"spatialmath.quaternion.UnitQuaternion":[[10,2,1,"","A"],[10,1,1,"","Alloc"],[10,1,1,"","AngVec"],[10,1,1,"","Empty"],[10,1,1,"","Eul"],[10,1,1,"","EulerVec"],[10,1,1,"","OA"],[10,1,1,"","Pure"],[10,2,1,"","R"],[10,1,1,"","RPY"],[10,1,1,"","Rand"],[10,1,1,"","Rx"],[10,1,1,"","Ry"],[10,1,1,"","Rz"],[10,1,1,"","SE3"],[10,1,1,"","SO3"],[10,1,1,"","Vec3"],[10,1,1,"","__add__"],[10,1,1,"","__eq__"],[10,1,1,"","__init__"],[10,1,1,"","__mul__"],[10,1,1,"","__ne__"],[10,1,1,"","__pow__"],[10,1,1,"","__sub__"],[10,1,1,"","__truediv__"],[10,1,1,"","angdist"],[10,1,1,"","angvec"],[10,1,1,"","animate"],[10,1,1,"","append"],[10,1,1,"","clear"],[10,1,1,"","conj"],[10,1,1,"","dot"],[10,1,1,"","dotb"],[10,1,1,"","eul"],[10,1,1,"","exp"],[10,1,1,"","extend"],[10,1,1,"","increment"],[10,1,1,"","inner"],[10,1,1,"","insert"],[10,1,1,"","interp"],[10,1,1,"","interp1"],[10,1,1,"","inv"],[10,1,1,"","isvalid"],[10,1,1,"","log"],[10,2,1,"","matrix"],[10,1,1,"","norm"],[10,1,1,"","plot"],[10,1,1,"","pop"],[10,1,1,"","qvmul"],[10,1,1,"","reverse"],[10,1,1,"","rpy"],[10,2,1,"","s"],[10,2,1,"","shape"],[10,1,1,"","unit"],[10,2,1,"","v"],[10,2,1,"","vec"],[10,2,1,"","vec3"],[10,2,1,"","vec_xyzs"]],"spatialmath.spatialvector":[[16,0,1,"","SpatialAcceleration"],[17,0,1,"","SpatialF6"],[18,0,1,"","SpatialForce"],[19,0,1,"","SpatialInertia"],[20,0,1,"","SpatialM6"],[21,0,1,"","SpatialMomentum"],[22,0,1,"","SpatialVector"],[23,0,1,"","SpatialVelocity"]],"spatialmath.spatialvector.SpatialAcceleration":[[16,2,1,"","A"],[16,1,1,"","Alloc"],[16,1,1,"","Empty"],[16,1,1,"","__add__"],[16,1,1,"","__init__"],[16,1,1,"","__sub__"],[16,1,1,"","append"],[16,1,1,"","clear"],[16,1,1,"","cross"],[16,1,1,"","extend"],[16,1,1,"","insert"],[16,1,1,"","isvalid"],[16,1,1,"","pop"],[16,1,1,"","reverse"],[16,2,1,"","shape"]],"spatialmath.spatialvector.SpatialF6":[[17,1,1,"","dot"]],"spatialmath.spatialvector.SpatialForce":[[18,2,1,"","A"],[18,1,1,"","Alloc"],[18,1,1,"","Empty"],[18,1,1,"","__add__"],[18,1,1,"","__init__"],[18,1,1,"","__sub__"],[18,1,1,"","append"],[18,1,1,"","clear"],[18,1,1,"","dot"],[18,1,1,"","extend"],[18,1,1,"","insert"],[18,1,1,"","isvalid"],[18,1,1,"","pop"],[18,1,1,"","reverse"],[18,2,1,"","shape"]],"spatialmath.spatialvector.SpatialInertia":[[19,2,1,"","A"],[19,1,1,"","Alloc"],[19,1,1,"","Empty"],[19,1,1,"","__add__"],[19,1,1,"","__init__"],[19,1,1,"","__mul__"],[19,1,1,"","__rmul__"],[19,1,1,"","append"],[19,1,1,"","clear"],[19,1,1,"","extend"],[19,1,1,"","insert"],[19,1,1,"","isvalid"],[19,1,1,"","pop"],[19,1,1,"","reverse"],[19,2,1,"","shape"]],"spatialmath.spatialvector.SpatialM6":[[20,1,1,"","cross"]],"spatialmath.spatialvector.SpatialMomentum":[[21,2,1,"","A"],[21,1,1,"","Alloc"],[21,1,1,"","Empty"],[21,1,1,"","__add__"],[21,1,1,"","__init__"],[21,1,1,"","__sub__"],[21,1,1,"","append"],[21,1,1,"","clear"],[21,1,1,"","dot"],[21,1,1,"","extend"],[21,1,1,"","insert"],[21,1,1,"","isvalid"],[21,1,1,"","pop"],[21,1,1,"","reverse"],[21,2,1,"","shape"]],"spatialmath.spatialvector.SpatialVector":[[22,1,1,"","__add__"],[22,1,1,"","__init__"],[22,1,1,"","__neg__"],[22,1,1,"","__sub__"],[22,1,1,"","isvalid"],[22,2,1,"","shape"]],"spatialmath.spatialvector.SpatialVelocity":[[23,2,1,"","A"],[23,1,1,"","Alloc"],[23,1,1,"","Empty"],[23,1,1,"","__add__"],[23,1,1,"","__init__"],[23,1,1,"","__sub__"],[23,1,1,"","append"],[23,1,1,"","clear"],[23,1,1,"","cross"],[23,1,1,"","extend"],[23,1,1,"","insert"],[23,1,1,"","isvalid"],[23,1,1,"","pop"],[23,1,1,"","reverse"],[23,2,1,"","shape"]],"spatialmath.twist":[[6,0,1,"","Twist2"],[14,0,1,"","Twist3"]],"spatialmath.twist.Twist2":[[6,2,1,"","A"],[6,1,1,"","Alloc"],[6,1,1,"","Empty"],[6,2,1,"","N"],[6,2,1,"","S"],[6,1,1,"","SE2"],[6,1,1,"","Tx"],[6,1,1,"","Ty"],[6,1,1,"","UnitPrismatic"],[6,1,1,"","UnitRevolute"],[6,1,1,"","__eq__"],[6,1,1,"","__init__"],[6,1,1,"","__mul__"],[6,1,1,"","__ne__"],[6,1,1,"","__truediv__"],[6,2,1,"","ad"],[6,1,1,"","append"],[6,1,1,"","clear"],[6,1,1,"","exp"],[6,1,1,"","extend"],[6,1,1,"","insert"],[6,1,1,"","inv"],[6,2,1,"","isprismatic"],[6,2,1,"","isrevolute"],[6,2,1,"","isunit"],[6,1,1,"","isvalid"],[6,2,1,"","pole"],[6,1,1,"","pop"],[6,1,1,"","printline"],[6,1,1,"","prod"],[6,1,1,"","reverse"],[6,2,1,"","shape"],[6,1,1,"","skewa"],[6,2,1,"","theta"],[6,1,1,"","unit"],[6,2,1,"","v"],[6,2,1,"","w"]],"spatialmath.twist.Twist3":[[14,2,1,"","A"],[14,1,1,"","Ad"],[14,1,1,"","Alloc"],[14,1,1,"","Empty"],[14,2,1,"","N"],[14,1,1,"","RPY"],[14,1,1,"","Rand"],[14,1,1,"","Rx"],[14,1,1,"","Ry"],[14,1,1,"","Rz"],[14,2,1,"","S"],[14,1,1,"","SE3"],[14,1,1,"","Tx"],[14,1,1,"","Ty"],[14,1,1,"","Tz"],[14,1,1,"","UnitPrismatic"],[14,1,1,"","UnitRevolute"],[14,1,1,"","__eq__"],[14,1,1,"","__init__"],[14,1,1,"","__mul__"],[14,1,1,"","__ne__"],[14,1,1,"","__truediv__"],[14,1,1,"","ad"],[14,1,1,"","append"],[14,1,1,"","clear"],[14,1,1,"","exp"],[14,1,1,"","extend"],[14,1,1,"","insert"],[14,1,1,"","inv"],[14,2,1,"","isprismatic"],[14,2,1,"","isrevolute"],[14,2,1,"","isunit"],[14,1,1,"","isvalid"],[14,1,1,"","line"],[14,2,1,"","pitch"],[14,2,1,"","pole"],[14,1,1,"","pop"],[14,1,1,"","printline"],[14,1,1,"","prod"],[14,1,1,"","reverse"],[14,2,1,"","shape"],[14,1,1,"","skewa"],[14,2,1,"","theta"],[14,1,1,"","unit"],[14,2,1,"","v"],[14,2,1,"","w"]],spatialmath:[[24,3,0,"-","geom2d"],[25,3,0,"-","geom3d"]]},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","property","Python property"],"3":["py","module","Python module"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"]},objtypes:{"0":"py:class","1":"py:method","2":"py:property","3":"py:module","4":"py:attribute","5":"py:function"},terms:{"0":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"00":[3,5,9,12],"0000":[7,10,13,15,35,41],"000000":[3,5,9,12],"00000000000000":[3,5,9,12],"0000000000000002":[3,5,9,12],"0000000000000004":[3,5,9,12],"00000000000001":35,"0000000e":[3,5,9,12],"000000e":[3,5,9,12],"0001":[12,26],"001":28,"002":28,"0026":9,"0059":28,"007879":6,"009":35,"01":28,"0100":10,"0161":35,"0172219678978514":[0,24],"018":[9,12,28],"0191":28,"0198":[9,12,28],"02":28,"021006":35,"0221":13,"0223":10,"0225":13,"022505":14,"0236":10,"0241":[10,33,41],"0304":[10,14,15],"0343":10,"0355":28,"0367":34,"037":[9,12,28],"0396":[0,24],"0428":12,"0436":28,"05":[26,28],"0528":28,"0587":[9,12,28,41],"0594":[9,12,28],"067103":14,"0686":[3,5,9,12],"0688":10,"068925":14,"0747":10,"0749":10,"0753":10,"077525":14,"0788v1":28,"08":34,"0831":41,"084531":6,"085167":6,"0855":10,"0893":28,"09":24,"0943951023931953":35,"0954":41,"0978":[9,12,28],"0993":10,"0998":28,"1":[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,31,33,34,35,36,37,41],"10":[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,27,28,29,34,35,41],"100":[26,28,30,34,41],"1001":10,"1007":35,"1046":13,"1060":10,"1074":13,"1088":35,"10ep":[8,25],"11":[3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,35],"1115":35,"1147":10,"12":[4,7,10,13,15,24,34,35,41],"120":[7,13],"122":41,"123234e":[3,5,9,12],"124":[10,15,28],"1276":14,"12892":14,"12g":41,"13":[4,10,15,24,37],"1312":28,"14":[7,10,12,13,15,27],"1411":26,"141592653589793":37,"1416":31,"1417":28,"1436":10,"1469":[0,24],"1478":10,"1489":28,"1494":[9,10,12],"15":[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28],"1538":[9,12],"1586":12,"1593":[9,12],"16":[3,5,7,9,10,12,13,15,28,36,37],"1632":[9,12,28],"1644":9,"16589613":[3,5,9,12],"168":34,"17":[3,5,6,9,12,14,22,26,34,36],"171":[9,12,28],"17415":14,"18":[4,24],"180":[31,35],"180deg":35,"1821":28,"1822":6,"1826":[10,15,35,41],"18343":14,"18368":6,"1843":[10,15],"1848":[0,24],"1876":10,"188734":[3,5,9,12],"1898":[9,12,28,41],"19":26,"1909":[10,15],"192":28,"1937":12,"19599":28,"1977":[9,10,12,28],"1987":[3,5,9,10,12,22,28,41],"19903":14,"1d":[3,5,8,9,12,15,25,28,31,33,34,35,41],"1e":[26,34,37],"1f":27,"1x1":[6,14,34],"1xm":33,"1xn":[16,18,21,22,23,33],"2":[0,1,4,7,8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31,33,34,35,36,37,39,41,42,43],"20":[0,1,3,5,8,9,10,11,12,14,15,24,25,26,28,33,35,37],"2010":22,"2017":[6,14,41],"2018":28,"2019":35,"2020":24,"2023":[6,12,14,26,28],"2034":10,"2037":13,"2087":12,"21":[0,24],"2117327177378023":10,"213":28,"21323":14,"2151":28,"2184":[9,12,28],"22":[22,41],"2246467991473532e":36,"2246468e":[3,5,9,12],"2298":[0,24],"23":41,"2353":[8,25],"239":41,"24":[0,10,15,24,35,41],"2474":10,"24956747275377":41,"24966":14,"25":[0,24],"2544":28,"2560":13,"2571":13,"2586":12,"2593":28,"2683":13,"2694":13,"2724":[0,24],"2736":10,"2751":[9,12,28],"2796":26,"28":[7,10,13,15,35],"283185307179586":[0,3,5,24],"28875":14,"2896":[9,12,28,41],"2912":9,"2934":12,"2951":35,"2955":[3,5,6,9,10,12,14,26,28,33,41],"29552021":[3,5,9,12],"2962":[9,12,28],"2989":[10,26],"2\u03c0":37,"2d":[3,5,6,8,9,12,15,24,25,28,30,31,32,33,34,38,39,41,42],"2f":27,"2pi":37,"2x":37,"2x1":33,"2x2":[0,3,6,24,26,33],"2xn":27,"3":[0,1,3,4,5,6,7,8,10,11,13,15,19,22,24,25,26,27,28,29,30,31,33,34,35,36,37,39,41,42,43],"30":[9,10,12,14,15,24,28,35,41],"3000000000000001":10,"3001":12,"30051":14,"3033":12,"3038":28,"30875":14,"31":28,"313":[9,12],"3156":[0,24],"32":[7,13,15,41],"326":14,"3281":12,"3306690738754696e":28,"3333333333333335":[4,24],"3344":9,"3368":[9,12,28],"3377":35,"3388":12,"342":[9,12,28],"3429":10,"3429971702850176":[8,25],"3451":10,"3471":13,"3477":10,"3481":28,"3494":28,"35":28,"3536":35,"35688":14,"36":34,"3642":12,"3651":[10,15,35,41],"373":34,"3785":[9,12,28],"3790":[10,15],"3825":[0,24],"38281":14,"3831":13,"3836":[9,12,28],"38485":14,"38612":14,"3875":[9,12,28],"3878e":14,"3894":[10,12,41],"3d":[3,5,9,10,11,12,14,16,18,19,21,22,23,25,26,30,32,33,34,35,38,39,41,42],"3g":[3,5,9,12,26,28,34],"3x1":[8,25,33],"3x3":[5,6,9,19,26,28,33],"3xn":[8,10,15,25,27,29],"4":[0,3,4,5,6,7,8,9,10,11,12,13,14,15,24,25,26,27,28,30,31,33,34,35,36,37,41],"40":[27,29],"4041889":35,"4082":35,"4136":10,"4161":[10,26,28],"4183":28,"42":24,"4218":12,"4224":[0,24],"423":28,"4234654354756045":[9,12],"424":28,"43225":14,"435":14,"4369":14,"44":[7,13],"441":[9,12,28,34],"45":[26,28],"4549":[10,15],"4564":9,"457":[10,33,41],"458":28,"459156":[3,5,9,12],"4606":41,"4615":35,"4698":[9,12,28],"4772":[10,15],"477225575051661":[7,10,13,15,35],"4794":[9,12],"479425538604203":36,"4851":9,"48648":14,"4901":[0,24],"4944":10,"4989":13,"499":34,"4993":12,"4d":35,"4f":35,"4g":[26,28],"4x1":35,"4x4":[3,5,6,8,9,10,12,14,15,25,28,33,35],"4xn":15,"5":[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,36,37,41],"50":[26,27,28,29,30],"5000":35,"50234":14,"5062":13,"5152":[10,15],"5170":35,"5188":14,"5307":[10,15],"5322":10,"5403":26,"545":34,"5463024898437905":36,"5475":13,"5477":[10,15,35,41],"5498":28,"5535":[0,24],"5585":35,"56":[7,13],"5646":[3,5,9,12,41],"5679":12,"568":34,"5707963267948963":[10,15],"5708":[31,41],"5712":10,"5791":[10,15],"5793":[0,24],"5946":26,"5984":28,"5g":6,"5x":37,"6":[0,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,33,34,35,36,37,41],"60":[10,15,35,41],"604":36,"606":36,"6065":[10,15],"61177":14,"6131":[9,12,28],"6156":28,"616":28,"618":[0,24],"6229":35,"6232":28,"625":[0,24],"628":34,"6311":[0,24],"6313":28,"6337":[9,12,28],"6364":28,"6463":12,"65":34,"6593":12,"6667":[4,24],"6676":13,"6681":13,"6775":14,"6867":28,"6873":14,"6903":12,"693":28,"6939":[10,15],"694":13,"6949":28,"6d":[22,42],"6f":[3,5,9,12],"6x1":[3,5,8,9,12,15,25,26,28],"6x6":[12,14,19,26,28],"6xn":[16,18,21,22,23],"7":[0,3,5,6,7,9,10,12,13,14,15,24,31,34,35,36,41],"70":[10,15],"7001":[0,24],"7006":[10,15],"706":12,"7071":[10,15,26,28,35],"7135":28,"7146":[9,12,28],"716":6,"72":41,"7223":12,"7264":28,"7303":[10,15,35,41],"7354":12,"7367":13,"7381":12,"7383":10,"7477":[0,24],"75":[0,24],"7502":12,"7541":13,"7574":26,"7678":35,"7691":28,"7713":[9,12,28],"7728":[10,15],"7756e":[6,14],"778":28,"7782":28,"7790":35,"7799":[0,24],"781":34,"783":41,"7853981633974317":[0,24],"7853981633974483":[0,24,28],"7854":[10,15],"7866":[3,5,9,12],"7896":[10,15],"7945":10,"8":[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,25,26,28,34,35,37,41],"80":[10,15],"801":41,"805":34,"8138":[9,12,28],"8165":35,"82":28,"8213":28,"8235":[8,25],"8246":9,"8253":[3,5,9,12,41],"8276":[0,24],"83":22,"832159566199232":[7,13],"8384":28,"8415":26,"849":14,"857":34,"866":41,"8745":9,"8775825618903728":36,"8776":[9,12],"8802":28,"8826":[9,12,28],"8882":28,"8952":10,"9":[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,34,37],"90":[3,10,31,35],"9021":[9,12,28],"9046":28,"9081":10,"9093":[10,26,28],"90deg":35,"915":34,"92":34,"9207":12,"9211":[10,12,41],"9216":[9,12,28],"9254":[9,12,28],"9314":[3,5,9,12],"9326":28,"9332":28,"9363":[9,12,28,41],"9394":10,"9397":[9,12,28],"94":22,"9424":9,"9447":[9,12],"949":34,"9553":[3,5,6,9,10,12,14,26,28,33,41],"95533649":[3,5,9,12],"9564":[9,12,28],"9573":13,"965":[12,34],"968":14,"9689":10,"97149":6,"9752":[9,10,12,28],"9756":28,"9775":10,"9777":10,"9799":[0,24],"9801":[3,5,9,10,12,28,41],"9833":10,"9851":28,"98614323":[3,5,9,12],"9888":[9,10,12],"9899e":6,"99":26,"9921":10,"995":28,"9965":41,"9972":10,"9999999999999997":[3,5,9,12],"\u03b2":[9,10,12,14,28],"\u03b3":28,"\u03b3d":28,"\u03b4":28,"\u03b5":[7,13],"\u03b8":[3,5,6,9,10,12,14,26,28,36],"\u03b81":3,"\u03b82":3,"\u03b8n":3,"\u03bb":[8,25],"\u03c0":[36,37],"\u03c01":[8,25],"\u03c02":[8,25],"\u03c03":[8,25],"\u03c3":[26,28],"\u03c3\u03b8":[26,28],"\u03c6":[9,10,12,28],"\u03c8":[9,10,12,28],"\u03c9":[9,10,12,26,28],"\u03c9\u03b8":[26,28],"\ud835\udeaa":[9,10,12,14,28],"\ud835\udeaad":28,"\ud835\udefe":[9,10,12,14],"abstract":[8,16,17,18,20,21,22,23,25,41,43],"boolean":[8,25],"case":[0,3,5,6,8,9,10,12,14,15,24,25,26,27,28,33,37,41],"class":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,39,42],"default":[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"do":[8,9,10,11,12,25,26,28,41],"export":[10,15],"final":[3,5,9,10,12,26,28,30,35],"float":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,19,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"function":[8,16,20,23,25,26,28,29,30,31,33,35,36,37,39,41,43],"import":[0,3,4,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,31,33,34,35,36,37,41],"int":[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,37,41],"long":[9,10,12,28,35],"new":[3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,27,28,29,30,41],"null":[3,5,9,10,12,14,30,41],"pl\u00fccker":[8,41],"return":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"s\u03b8":[26,28],"static":[3,5,6,8,9,10,11,12,14,15,25],"super":41,"throw":[9,10,12],"true":[0,1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"var":[34,36],"while":[26,28,41],A:[0,1,3,4,5,6,7,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,41],As:41,At:41,By:[3,5,9,12,26,28,35,41],For:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,35,41],IN:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],If:[1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],In:[0,3,5,9,10,12,24,27,28,36,41],Is:[8,25,30],It:[9,12,26,28,36,41],No:[3,5,9,12],Not:41,One:36,The:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,37,41,43,44],There:[3,5,7,8,9,10,12,13,15,25,28,35,41],These:[26,28,30,33,35,41],To:[0,9,12,24,26,28,41],Will:30,_0:[0,24],_1:[9,12],_2:[9,12],_3:27,_:[26,28,41],__add__:[3,5,7,9,10,12,13,15,16,18,19,21,22,23,41],__annotations__:30,__dict__:30,__doc__:30,__eq__:[3,5,6,8,9,10,12,14,15,25,41],__iadd__:41,__imul__:[15,41],__init__:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,30],__ipow__:41,__isub__:41,__itruediv__:41,__len__:4,__module__:30,__mul__:[3,5,6,7,8,9,10,12,13,14,15,19,25,41],__ne__:[3,5,6,8,9,10,12,14,15,25,41],__neg__:[16,18,21,22,23],__or__:[8,25],__pow__:[3,5,9,10,12,15,41],__radd__:[3,5,9,12,41],__repr__:[30,41],__rmul__:[3,5,6,8,9,12,14,15,19,25,41],__rsub__:[3,5,9,12,41],__str__:[0,4,30],__sub__:[3,5,7,9,10,12,13,15,16,18,21,22,23,41],__truediv__:[3,5,6,9,10,12,14,15,41],__weakref__:30,__xor__:[8,25],_a:[3,5,8,9,15,25,28],_ansimatrix:41,_b:[12,26,28],_bgcolor:41,_binop:[3,5,8,9,15,25],_color:41,_constcolor:41,_draw:30,_dtype_lik:31,_dtypedict:31,_format:41,_generic_alia:[8,9,10,12,15,25,26,28,31,33,35,37],_import:[3,5,8,9,15,25],_indexcolor:41,_io:[26,28,35],_l:[8,25],_line:30,_quiver:30,_r:[8,25],_rotcolor:41,_supportsdtyp:31,_suppress_smal:41,_suppress_tol:41,_text:30,_transcolor:41,_type_:[0,24],_x:26,_y:26,ab2m:33,ab:[26,36],abc:[3,5,9,10,12,15,16,18,21,23,41],abcmeta:[8,25],about:[3,5,6,9,10,12,14,19,26,28,35,41],abov:[3,5,6,8,9,10,12,14,15,25,26,27,28,31,33,35,36,41],absolut:[33,37],abstractmethod:[8,25],abstractstaticmethod:[8,25],acceler:[19,22,28,41,42,43],accept:[3,5,8,9,15,25,30,36,41],access:[8,25],accord:[3,5,8,9,10,12,15,25,30,31],account:[5,9,10,12,35],aco:[9,10,12,35],act:[18,28],action:[6,14],actual:33,ad:[4,6,12,14,24,34,41],add:[3,4,5,8,9,10,12,15,16,18,19,21,22,23,24,25,26,28,29,41],addit:[3,4,5,8,9,12,19,22,24,25,27,41],adjac:34,adjoint:[6,12,14,22,26,28],adjust:[3,5,9,10,12,41],after:[9,12,28,36],again:[36,41],against:[4,8,24,25],algebra:[3,5,6,9,12,14,26,28,33],algorithm:[11,22,25,26,34,41],align:[6,8,14,19,25,26,27],all:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,41,43],alloc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],allow:[3,5,8,9,15,25,31,41],along:[3,5,6,8,9,10,11,12,14,25,26,27,28,34],alpha:[9,27],alreadi:[4,11,24,25],also:[7,8,9,10,12,13,25,26,28,30,31,41,44],altern:[14,26,27,28],alwai:[3,4,5,8,9,10,15,24,25,31,33,34,35,41],ambigu:[5,9],amount:[26,28],an:[0,1,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,41,44],anaglyph:28,analysi:35,analyt:28,angdiff:37,angdist:[9,10,12],angl:[3,5,6,9,10,12,14,15,26,28,35,37,39,41],angle_mean:37,angle_std:37,angle_wrap:37,angleaxi:[9,12],angular:[3,5,9,10,12,14,26,28,31,35,37],angvec2r:[9,10,12,28],angvec2tr:[12,28],angvec:[3,5,9,10,12,15,28,41],angvelxform:28,angvelxform_dot:28,ani:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,28,29,31,33,35,36,37,41],anim:[3,4,5,9,10,12,24,26,28,38,39,41],animate2:30,anoth:[1,24],ans:12,answer:35,anthoni:28,anymor:28,api:34,appear:[26,28,36,41],append:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,33,41],appli:[3,5,6,9,12,14,28,30,33,41],applic:[3,5,41],approach:[9,10,12,14,28],appropri:[3,5,8,9,15,25,41],approxim:[0,12,24,28,34],april:35,ar:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,30,33,34,35,36,37,41],arang:[3,5,41],arbitrari:[8,25],arbitrarili:28,area:[0,4,24,27,34],arg:[3,5,6,8,9,10,12,14,15,25,27,30],argcheck:34,arghandl:[3,5,8,9,15,17,25],arguent:[8,25],argument:[0,1,3,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,33,34,35,36,37,38,39,41],argumetn:27,arithmet:[3,5,9,10,12,15,26,28,34,41],arm:28,around:[4,24,35],arrai:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,41],arrang:[11,25],array2str:34,array_lik:[0,1,3,4,5,6,8,9,10,11,12,14,15,19,24,25,26,27,28,29,30,31,33,34,35,37,41],arraylik:[0,24],arrow:[26,27,28,30,41],artist:[0,8,24,25,27,29,30],arxiv:28,asm:35,aspect:[0,24,27,29],assert:31,assertionerror:41,assertmatrix:31,assertsmatrix:31,assertvector:31,assign:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],assum:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,31,34,35,36],astyp:41,attach:[26,28],attempt:[8,16,18,19,21,22,23,25,31],attribut:[4,24,30,36],attributeerror:36,augment:[3,5,6,9,12,14,26,28,33],augument:[26,28],author:24,autom:22,autosc:41,autoscal:30,avail:[9,12,41,44],averag:[12,28],avoid:27,ax:[1,4,8,9,10,11,12,14,19,24,25,26,27,28,29,30,41],axes3d:[26,28,29,30],axes3dsubplot:[28,29],axes_log:[11,25,26,28],axessubplot:[26,27],axi:[3,5,6,8,9,10,12,14,15,25,26,27,28,29,35,41],axislabel:[26,28],axissubscript:[26,28],b:[3,5,7,8,9,11,12,14,15,25,26,27,28,29,33,37,41],back:[3,5,9,12,36,37,41],backend:[28,41],background:[28,41],bad:[0,3,5,8,9,12,15,24,25,26,28,33],balanc:41,bar:[14,27,37],base:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],baseposelist:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],baseposematrix:[3,5,9,12,41],basetwist:[6,14,41],baz:27,bbox:[4,24,27],becaus:[8,25,41],becom:[3,5,9,12,26,28,34],been:[3,4,5,9,12,24,33,41],befor:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],beforehand:[3,5,9,12],begin:[5,8,12,25,26,28,33,41],beginn:22,behav:30,behavior:[8,25],behaviour:[8,25],being:[30,41],belong:[3,5,6,9,12,14,26,28,33,41],below:[3,5,9,10,12,22,26,27,28],benefit:41,beta:9,between:[3,5,8,9,10,12,14,25,26,27,28,30,34,35,39,41],beyond:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],bf:[9,10,12,26,28,33],bigger:28,binari:[3,5,8,9,15,25,41],binop:[3,5,8,9,15,17,25],black:27,block:[26,28],blue:[26,27,28,41],bmatrix:[8,25],bodi:[3,5,6,8,9,10,12,13,14,16,18,19,20,21,22,23,25,26,28,35,41],bold:41,book:37,bool:[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],both:[3,5,7,8,9,10,12,13,15,16,18,21,22,23,25,27,35,37,41],bottom:[3,5,9,12,26,27,28,33],bound:[4,8,9,11,24,25,26,27,28,29,31,35,37],boundari:[4,24],box:[4,24,27,29],bracket:[10,15,34,41],bresenham:34,brief:4,broadcast:[10,41],bs:27,bug:28,build:[27,29],bullet:[9,10,12],bundl:[10,41],c:[1,8,11,24,25,27,29,30,37,41],c_:33,call:[3,5,6,7,8,9,10,12,13,14,15,25,26,28,34,35,41],callabl:[3,5,6,8,9,14,15,25,31,34],cambridg:[6,14],camera:[8,9,10,12,14,25,28,41],can:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,35,36,37,41,44],cannot:[1,24,31],care:[31,41],carefulli:[26,28],caus:[3,5,9,12,26,28],caylei:35,cc:[5,12,33],ccc:33,cccc:33,center:27,centr:[0,4,19,24,27,29],centroid:[4,24],certain:22,ch:28,chang:[9,10,12,28,35],channel:44,charact:37,characterist:22,check:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,28,33,35,38,39,41],chi:29,choos:[28,35],circ:41,circl:[3,4,5,9,10,12,24,26,27,28,35,37],circleddash:37,circular:37,circumfer:[0,24,27,29],circumferec:[27,29],classic:41,classmethod:[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25],clear:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],click:43,clip:[3,5,9,10,12],clockwis:[4,24,34],close:[0,3,4,5,9,12,24,26,27,28],closest:[8,25,26],closest_to_lin:[8,25],closest_to_point:[8,25],cloud:26,co:[3,5,9,10,12,15,28,36,37,41],code:[0,3,4,5,9,12,24,26,27,28,29,34,41],coeffic:[0,24],coeffici:[0,3,5,7,9,10,11,12,15,24,25,26,28,35],coeffient:[0,24],col:31,colatitud:37,collect:[3,5,8,9,10,12,15,16,18,21,23,25,29,41],collect_ab:36,color:[0,3,5,8,9,10,12,24,25,26,27,28,29,30,41],column:[3,4,5,8,9,10,11,12,15,16,18,21,22,23,24,25,26,27,28,29,31,33,34,35,37,41],columnwis:[33,41],colun:34,colvec:37,com:[26,28,44],combin:[3,5,6,9,10,12,14,15,41],comma:34,common:[8,25,27,36,39,41],commonperp:[8,25],commut:[3,5,6,9,12,14,22],compact:[3,5,9,12,26,28,34,41],compar:[6,14,26,31,41],comparison:35,compat:[3,5,8,9,12,15,25,26,28],complet:[26,28,30],compon:[3,5,6,8,9,12,14,25,26,28,30,33,35],composit:[3,5,6,8,9,10,12,14,19,25,41],compound:[3,5,6,9,12,14],comprehens:[8,25,41],compris:[6,26,28,41],comput:[0,3,5,6,8,9,10,11,12,14,15,22,24,25,26,27,28,29,34,35,38,39],concret:[16,18,21,22,23],conda:30,cone:29,confid:[27,29],configur:5,conj:[7,10,13,15],conjug:[3,5,7,9,10,12,13,15,35],conjunct:41,connect:19,consecut:[9,10,12,14,27,41],consid:[3,5,6,7,8,9,10,12,14,15,16,18,19,21,23,25,26,28,33,35],consider:41,consol:41,constant:[3,5,9,12,34,36,41],constraint:[10,41],construct:[3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,30,41],constructor:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],contain:[0,1,3,4,5,8,9,10,11,12,14,24,25,26,27,28,33,34,41],contains_point:[4,24],contains_polygon_point:[1,24],content:28,control:[6,12,14,26,27,28,41],conveni:41,convent:[3,5,9,10,12,14,28,35],convers:[3,5,8,9,12,15,25,26,28],convert:[3,5,6,8,9,12,13,14,15,25,26,28,31,33,34,35,36,37,41],convertfrom:[3,5,8,9,15,25],coordin:[0,3,5,6,8,9,10,11,12,14,24,25,26,27,28,30,34,35,39,41],copi:[4,8,12,14,17,24,25],copyfrom:12,core:36,cork:[6,12,14,26,28],corkep:24,corner:27,correct:[0,24,31],correspond:[3,5,6,8,9,10,12,14,25,26,28,30,33,35,41],cosin:[35,36],could:[5,9,31,41],count:[8,17,25],counter:[4,24],covari:[8,9,25,26,27,28,29,31,34,35,37],covert:[39,41],crawler:44,creat:[0,1,3,4,5,6,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,33,35,36,37],creation:28,criteria:[3,5,8,9,15,25],crm:[16,20,23],cross:[16,20,22,23,37,41],cs577:7,cs:7,cuboid:[8,25,29],current:[3,5,8,9,11,12,25,26,27,28,29,30,41],cursori:[3,5,8,9,15,25],cyan:28,cylind:29,cz:[8,11,25],d1:[26,35],d2:[26,28,35],d:[7,8,11,12,13,22,25,27,28,29],dam:28,dash:27,data:[3,5,9,12,26,28,34],datatyp:31,date:41,ddvec:28,deal:41,decid:[5,9],decor:[8,25],decreas:37,def:[8,25],defaault:[26,30],defin:[1,3,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,30,31,33,35,41],definit:34,deflat:[4,24],deg:[3,5,9,10,12,14,26,28,31,35,41],degre:[3,5,9,10,12,14,26,28,31,41],degsym:28,del:41,delim:35,delimet:35,delimit:[10,15,34,41],delta2tr:[12,28],delta:[12,28],delta_i:[12,28],delta_x:[12,28],delta_z:[12,28],denomin:10,denorm:[3,5,9,12],denot:[9,12,41],depend:[3,5,6,8,9,10,12,14,15,16,18,19,20,21,23,25,26,28,41],deprec:[8,9,12,25,28],deriv:[28,34],describ:[0,3,5,8,9,10,11,12,13,24,25,27,41],descript:[3,5,9,12,13,29,41],design:41,desir:31,destin:35,det:[3,5,9,12,28,33,36],detail:[9,10,12],determin:[0,3,5,9,12,24,26,28,33,36],deviat:37,diag:[29,34],diagon:[28,33],dict:[26,28,41],diff:[3,5,9,10,12,15],differ:[3,5,7,8,9,10,12,13,15,16,18,21,22,23,25,26,27,28,34,37,41],differenti:[12,26,28],differnc:37,dim:[26,27,28,29,30,31,34,41],dimens:[3,5,6,9,12,14,26,27,28,29,30,31,41],dimension:[3,5,9,12,41],dir:[8,25],direct:[3,5,6,8,9,10,12,14,25,26,28,29],directli:[6,41],disabl:[3,5,9,12,28],discuss:41,dispar:28,displac:[6,10,12],displai:[3,5,9,10,12,26,28,30],dist:10,distanc:[5,6,8,9,10,12,14,25,26,27,28,35],distance_line_lin:[1,24],distance_line_point:[1,24],distinguish:[10,15],distribut:[10,35],divis:[3,5,9,10,12],dmat:[28,34],docstr:41,document:[28,41],doe:[4,7,8,13,24,25,28,36,37,41],doesn:30,dofi:35,doi:35,domain:[9,10,12,35],don:[31,37],done:[33,41],dot:[8,10,15,17,18,21,25,26,28,35],dotb:[10,35],doubl:[10,15,35,41],down:29,dq1:[7,13],dq2:[7,13],dq:[7,13],draw:[4,24,26,27,28,29,30,34],drawn:[11,25,27,28,29,30,41],dtype:[0,3,5,7,8,9,10,11,12,13,15,24,25,26,28,29,31,33,35,37,41],du:35,dual:[42,43],dual_quaternion:7,dualquaternion:[7,13],due:[9,10,12],dunder:41,dvec:[16,20,23,28],dx:34,dynam:[22,28],e2h:33,e:[0,6,9,10,12,14,15,24,27,29,33],e_0:[0,24],e_1:[0,24],e_2:[0,24],e_3:[0,24],e_4:[0,24],e_5:[0,24],each:[3,4,5,6,8,9,10,12,14,15,22,24,25,26,27,28,29,31,33,35,41],easi:41,easiest:44,edg:[4,24],edgecolor:[4,24],edu:7,effect:[12,28],effector:12,effici:[3,5,9,12,26,28],eg:[8,25,27,28,31,41],either:[3,5,7,8,9,10,12,15,25,27,41],el:[26,28],element:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,30,31,33,34,35,36,37,41],elementwis:[3,5,6,9,10,12,14,15,41],elemn:31,ell:27,ellips:[24,27,29,42,43],ellipsoid:29,elment:41,els:[9,12,29],embu:43,empti:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],en:7,enabl:41,enclos:[4,24],encod:[10,15,26,28,35],encount:6,end:[1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,33,34],endless:[26,28,30],endpoint:[1,24],enforc:41,engin:22,enlarg:43,ensur:[3,5,9,12,28,33,35,41],entir:[35,41],enumer:41,ep:[1,8,10,11,15,24,25,26,28,33,35,37,41],epsilon:[0,7,24],epsilon_1:[0,24],epsilon_2:[0,24],epsilon_3:[0,24],epsilon_4:[0,24],epsilon_5:[0,24],eq:[3,5,8,9,10,12,25,31],equal:[3,4,5,6,8,9,10,12,14,15,19,24,25,27,29,35,41],equival:[0,3,5,6,8,9,10,12,13,14,15,24,25,26,28,33,35,41],eref:[0,24],error:[9,10,12,26,35],eta:[0,24],etc:[27,29,41],eth:28,ethanead:[26,28],ethz:28,euclidean:[1,3,5,9,12,24,33,41],eul2jac:28,eul2r:[9,10,12,28],eul2tr:[28,41],eul:[3,5,9,10,12,28,41],euler:[3,5,9,10,12,15,28,35,41],eulervec:[9,10,12,15],even:[8,25,41],everi:[3,5,8,9,12,25,30,31,41],exager:28,exampl:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,41],except:[3,5,8,9,15,25,28,31,35,41],exclud:17,execut:30,exist:[11,25,30,41],exp2jac:28,exp2r:28,exp2tr:28,exp:[3,5,6,9,10,12,14,15,28,41],expand_dim:[27,29],expect:[31,41],explicitli:[10,15,28],expon:[3,5,9,12,35,41],exponenti:[6,9,10,12,14,15,26,28,39,41],expr:36,express:[5,6,10,15,26,28,36,41],extend:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,29,41],extra:[8,25,34,41],extract:[26,28,41],ey:[28,33],f6:[42,43],f:[16,20,23,29,34,35,41],face:[8,25,29],facecolor:[4,24,27,29],factor:27,fail:[11,25],fals:[0,3,4,5,6,8,9,10,12,14,15,24,25,26,27,28,29,30,31,33,35,36,37,41],familiar:41,faster:[34,37],featherston:22,ffmpeg:30,fig:34,figur:[26,28,41],file:[3,5,6,9,10,12,13,14,26,28,30,31,34,35,36,41],fill:[0,4,24,27,29],fillcolor:27,find:[8,25,26],finger:[9,10,12,14,28],finit:[3,5,9,10,12,26,28],first:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,33,34,35,37,41],fit:[0,24],fix:[3,5,9,12,16,20,23,26,28,35],flag:27,flexibl:31,flip:[4,9,12,24,28,29],flo:28,float64:[31,41],fmt:[3,5,9,12,26,27,28,34,35],fold:37,follow:[6,14,27,41],fontsiz:27,foo:[14,27],forc:[16,17,19,20,22,23,41,42,43],foreground:41,forg:30,form:[1,3,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,31,33,35,41,43],format:[1,3,5,6,8,9,12,15,24,25,26,27,28,31,34,35,41],formula:28,forum:44,forward:[9,10,12,14,28],four:[8,25,41],frac:[10,13,15,34,37],fraction:27,frame:[3,5,9,10,12,14,19,26,28,30,33,35,41],freenod:44,frequent:41,from:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41,43],fromperimet:[0,24],frompoint:[0,24],full:28,func:31,further:41,g:[4,24,27,34],g_:34,gallego:28,gamma:[9,10,12,14,28],gauss1d:34,gauss2d:34,gaussian:34,gb:28,gca:[27,28],gener:[0,1,8,9,24,25,26,28,29,31,33,35,36,37,41],geodes:[9,10,12],geom2d:24,geom3d:[14,25],geometri:42,get:44,getmatrix:31,getunit:[31,34],getvector:31,github:44,give:[26,27,41],given:[1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,34,35,37,41],glass:28,good:44,googl:44,gradient:[1,24],graphic:[4,24,38,39],great:[3,5,9,10,12,26,28,35],greater:[10,15],greek:36,green:[3,4,5,9,10,12,24,26,27,28,30,41],grei:41,grey_50:41,grid:[27,29,34,41],gripper:[9,10,12,14,28],group:[3,5,6,9,10,12,14,26,28,44],guarante:[8,9,10,12,25,26,28,41],gui:[26,28],guid:22,guillermo:28,h2e:33,h:[27,33,34,41],h_:34,ha:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,28,30,31,33,34,35,36,37,41],half:35,hamilton:[10,15,35,41],hand:35,handl:[3,5,6,8,9,12,14,25,41],handout:7,hang:44,hardwir:[8,25],hat:[7,8,9,12,25,26,28],have:[4,6,9,10,12,14,15,22,24,26,27,28,29,30,31,33,41],head:[26,27,28,37],height:[27,29],held:[3,5,9,12],helic:14,help:44,helper:[3,5,8,9,15,25],here:7,hessian:34,heta:14,heta_i:14,hierarchi:[41,43],high:[27,41],hire:[0,3,4,5,9,12,24,26,27,28,29,34],hold:[3,5,9,10,12,14,41],homgen:27,homogen:[1,3,5,6,8,9,12,14,24,25,26,27,28,33,39,41],homogon:[26,28],homtran:33,horizont:28,horizontalalign:27,hostedtoolcach:[6,14,34,36],howev:41,html5:30,html:30,http:[7,26,28,44],human:[30,35],huynh:35,hyperspher:35,i:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,27,28,33,34,37,41],iastat:7,icp2d:26,icp:26,ideal:[1,24],ident:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,33,35,41],ie:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,31,33,41],ieee:22,ignor:[9,12,16,18,19,21,22,23,28,34],imag:[27,35],imatrix:41,implement:[3,5,6,8,9,14,15,25,34,35],implicit:41,implicitli:[0,24],includ:[4,24,27,39,41],inclus:[34,41],incompat:[3,5,9,12],inconsist:31,incorrect:[3,5,6,7,8,9,10,12,14,15,16,18,19,21,23,25,31,37],increas:37,increment:10,index:[8,17,25,27,40,41],indexerror:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],indic:[8,22,25,27,28,31,39,41],induc:28,inequ:[3,5,9,12],inertia:[0,24,41,42,43],infin:[6,14],infinit:[8,25],infinitesim:12,infinitessim:28,inflat:[4,24],inform:41,infti:37,inherit:[8,10,22,25,41,43],initi:[3,4,5,8,9,10,12,15,24,25,26,27,28,29,30,34,35],inner:[10,15,35],input:[3,5,6,8,9,10,12,13,14,15,25,26,27,28,29,31,33,34,35,37,41],insert:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],insid:[4,24,26,28],inspect:[3,5,8,9,15,25],instal:[30,36,41],instanc:[0,1,3,5,6,8,9,10,12,14,15,16,18,19,20,21,22,23,24,25,27,30,41],instantan:28,instead:[3,5,8,9,12,15,25,26,28],integ:[8,10,15,25,31,34,35,41],intellig:28,intepret:[10,15,37],inter:[3,5,6,9,10,15,16,18,19,21,22,23],intercept:[1,24],interest:28,interior:[0,24],intern:[0,1,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,41],interp1:[3,5,9,10,12],interp:[3,5,9,10,12],interpol:[3,5,9,10,12,26,28,35],interpret:[9,29],intersect:[0,1,4,8,11,24,25,41],intersect_plan:[8,25],intersect_polygon___lin:[1,24],intersect_seg:[1,24],intersect_volum:[8,25],intersectingplan:[8,25],interv:[0,3,12,24,26,28,29,30,35],introduct:39,inv:[3,5,6,9,10,12,14,41],invalid:[14,19,26,28],invers:[3,5,6,9,10,12,14,26,27,28,29,33,41],invert:[3,5,9,12,26,27,28,29],invok:[3,5,8,9,15,25,30,41],involv:41,ipynb:28,isequ:[8,25,35],isey:33,ishom2:[3,5,9,12,26,28],ishom:[3,5,9,12,26,28],isinst:[3,5,9,12],isinteg:31,isintersect:[8,25],islistof:31,ismatrix:31,isnumberlist:31,isparallel:[8,25],isprismat:[6,14],isr:[26,28,33],isrevolut:[6,14],isrot2:[3,5,9,12,26,28,33],isrot:[3,5,9,12,26,28,33],iss:[3,5,9,12],isscalar:31,isscalarlist:31,isskew:33,isskewa:33,isso:[3,5,9,12],issu:44,issymbol:36,isunit:[6,14],isunittwist2:37,isunittwist:37,isunitvec:37,isvalid:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25],isvec:26,isvector:31,isvectorlist:31,iszero:37,iszerovec:37,item:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],iter:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,41],its:[0,3,5,9,10,12,24,26,27,28,31,33,35,41],itself:[10,15],j0:34,j:[27,28,34,35],j_:34,jacob:12,jacobian:[12,26,28,34],join:[1,8,19,24,25,44],js:[10,15],jul:24,jupyt:[28,36],just:[35,41],justifi:27,k:[8,25,27,31,34],keep:[4,24,41],kei:22,keyword:[31,41],know:[0,24],known:[10,28],kwarg:[0,1,3,4,5,6,8,9,10,11,12,14,24,25,26,27,28,29,30],kwd:[8,25],l1:[8,11,25],l2:[8,11,25],l:[8,11,25,37],lab:28,label:[3,5,9,12,26,27,28,29,30],label_po:27,lam:[8,25],lambda:[3,5,8,9,15,25,31],langl:[10,15],languag:41,larg:35,largest:10,last:[0,3,4,5,6,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,33,34,35,41],latex:36,latitud:37,latter:[0,7,24,41],lb:27,lbrt:27,lbwh:27,lead:[0,24,35],lectur:28,left:[3,5,6,8,9,10,12,14,15,19,22,25,27,28,33,35,37],len:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,33,41],length:[3,5,9,10,12,15,26,28,29,30,31,35,37,41],less:[33,35,37],let:41,letter:[27,36,41],level:39,li:[0,1,8,24,25],lib:[6,14,34,36],lie:[3,5,6,9,12,14,26,27,28,33,34],lift:5,light:36,like:[3,5,6,8,9,10,12,14,15,16,18,21,22,23,25,28,30,31,34,43],limit:[8,25,28,30],linalg:[28,37],line1:[8,25],line2:[1,4,8,24,25],line2d:[8,25,27],line3:[8,11,14,25,41],line3dcollect:29,line:[0,3,4,5,6,9,10,11,12,13,14,24,25,26,27,28,30,31,34,35,36,41,42,43],linear:[3,5,9,10,11,12,25,28],linearli:26,linepoint:[11,25],linesegment2:[2,24],linestyl:[8,25],link:[3,5,9,10,12,19],linspac:[3,5,9,12,34],list1:[3,5,8,9,15,25],list:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,43,44],listcomp:[6,14],ll:12,ln:[10,15],log:[3,5,9,10,12,15,37],logarithm:[3,5,6,9,10,12,14,15,26,28,41],logic:41,loop:[8,25,26,28,30,41],lost:33,low:[8,25,27,39],lrbt:27,lt:27,ltrb:27,lvert:[9,10,12],lynch:[6,14],m6:[42,43],m:[1,3,4,5,6,8,9,10,12,14,15,16,19,20,23,24,25,26,31,33,34,35,36,37,41],m_r:[8,25],made:[3,5,8,9,15,25,35],magazin:22,magnitud:[6,10,14,15,26,28,35,37],mai:[3,5,6,9,10,12,14,28,35,41],mail:44,main:[26,28],make:34,mani:[3,5,9,10,12,26,27,28,39,41],manipul:[26,27,28,35,37,39,41],map:[10,12,26,28,33,35,41],mappingproxi:30,mapsto:34,march:35,margin:[4,9,10,12,24],mark:27,marker:[27,28],mass:19,mat:[0,3,5,9,12,13,16,20,23,24,26,27,28,29,34,39,41],match:31,math:[3,5,7,9,10,12,13,15,26,35,36,37,43],mathbb:[0,8,10,15,24,25,27,28,34,37,41],mathbf:[8,12,25,26,28],mathemat:[39,41],mathit:27,mathr:41,mathrm:[39,41],matlab:[3,5,8,9,10,12,25,26,28,34],matplotlib:[1,4,8,24,25,27,28,29,30,41],matplotlub:27,matric:[26,28,33,35,39,41],matrix:[0,6,7,8,10,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,41,42,43],mavt:28,max:[5,12,14,26,28,30],max_it:26,mayb:[8,25],mbox:12,mean:[33,34,36,37,41],mechan:[3,5,8,9,15,25,35],meet:[3,5,8,9,15,25],member:[3,5,9,12,17,31],membership:[3,5,9,12],merit:41,meshgrid:34,metaclass:[8,25],meth:[8,25],method:[3,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,25,30,35,41],metric:[9,10,12,35],metrix:33,millisecond:[26,28,30],min:[5,12,14,28,30],min_delta_err:26,minim:[5,10,26,28,41],minimum:[8,25,37],minu:22,mirror:[7,13],mix:41,mixtur:41,mobil:[9,10,12,14,28],mode:[26,28,35,37],modern:[6,14],modifi:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],modul:[5,6,9,10,13,14,26,31,33,34,35,40,41],moment:[4,6,8,14,24,25,34],momentum:[22,41,42,43],more:[3,5,8,9,10,12,15,25,26,27,28,29,41],most:[6,9,10,13,14,26,34,35,41],motion:[3,5,6,9,12,13,14,16,20,23,26,28,37,41],move:[3,4,5,9,10,12,16,23,24,26,28,30,41],movi:[26,28,30],mp4:[26,28,30],mp:10,mpq_point:34,msg:31,mu:[27,34],much:41,multipl:[3,5,6,7,8,9,10,12,13,14,15,25,27,28,35,41],multipli:[10,12,15,22,28,35,41],multiplicand:[3,5,6,9,10,12,14,15,22],must:[4,6,9,10,12,14,15,24,26,28,30,31,34,35,41],mx1:33,mx:[1,24],mxm:33,my_abstract_staticmethod:[8,25],n:[0,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,37,41],name:[5,6,8,9,10,13,14,25,26,28,30,31,35,36,41],nameerror:[5,6,9,10,13,14,26,31,35],namespac:41,nativ:31,nd:[37,38,39],ndarrai:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],ne:[3,5,9,12,26,28],nearest:[8,25,26,37],necessari:35,need:[3,5,9,12,30,41],neg:[4,6,10,14,22,24,34,35,36,41],negat:[10,15,35],negative_on:36,negativeon:36,neighbor:26,nframe:[26,28,30],non:[8,25,26,28,35],none:[0,1,3,4,5,6,7,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,37,41],nonetyp:36,norm:[3,5,6,7,9,10,12,13,14,15,26,28,33,35,37,41],normal:[3,5,9,10,11,12,15,25,26,28,35,37],normalis:[26,28],normsq:37,north:37,notat:[8,9,12,25,41],note:[3,4,5,8,9,10,12,15,22,24,25,28,31,41],notebook:[28,30],notimpl:[3,5,9,12],now:41,np:[0,3,4,5,8,9,10,12,14,15,24,25,26,27,28,29,31,33,34,35,37,41],nstep:28,nu:[12,27,28],number:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,34,37,41],numer:[3,5,8,9,10,12,15,25,36,38,39,41],numhess:34,numjac:34,numpi:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,28,31,33,34,35,37,41],numpyarrai:[3,5,8,9,15,25],nx1:33,nx3:[5,9,12,14],nx4:10,nxm:[3,5,9,12,33],nxn:[3,5,9,12,33],o:[9,10,12,28,31,41],oa2r:[9,10,12,28],oa2tr:28,oa:[9,10,12],objec3:14,object:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,35,36,39],occur:28,occurr:[8,25],octav:41,offset:[11,25,28],often:[10,15,41],ok:31,old:[9,12],omega:[6,9,10,12,14,28,33,37],omega_i:[8,12,25],omega_x:[8,12,25],omega_z:[8,12,25],onc:28,one:[0,3,4,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,35,36,37,41],ones:33,onli:[3,4,5,9,10,12,24,26,28,30,33,35,36,41],onlin:[22,41],onto:37,op2:[3,5,8,9,15,25],op:[3,5,8,9,15,25,41],open:[29,44],oper:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,28,33,36,37],operand:[3,5,6,8,9,10,12,14,15,25,35,41],opt:[6,14,34,36],optic:[9,10,12,14,28],optim:10,option:[0,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,36,37,41],order:[3,4,5,7,9,10,12,14,15,24,26,28,34,35,41],org:[7,28,35],orient:[0,3,5,9,10,12,24,28,29,35,39,41,42],origin:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,30,35,41],original_expr:36,origincolor:[26,28],origins:[26,28],ortho:[28,29,30],orthogin:37,orthogon:[3,5,9,10,12,26,28,33,37,41],orthonorm:[3,9,28,33],orthonorn:28,other:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,19,20,23,24,25,30,31,41,44],otherwis:[4,9,10,12,24,28,31],out:[28,31,41,44],outlin:[27,41],output:[3,5,8,9,12,15,25,31,37,41],outsid:[3,5,8,9,10,12,25,35],over:[3,4,8,12,24,25,28,41],overal:[0,24],overhead:41,overlaid:27,overlap:27,overload:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],overrid:28,p0:34,p1:[1,24,26,34],p2:[1,24,26],p:[0,1,4,6,7,8,9,10,11,12,13,14,24,25,26,27,28,33,34,41],p_p:[8,25],pack:33,packag:[6,10,14,15,30,34,36,39,41],page:40,pair:[4,7,10,15,24,27,35],parallel:[1,8,9,10,11,12,14,15,24,25,26,28,29,37,41],param:[19,28],paramet:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],parameter:[8,25],parametr:[8,25],parent:41,park:[6,14],parrallel:37,part:[3,5,9,10,12,13,15,22,26,28,33,35,37,41],partial:34,particular:[28,41],particularli:41,partit:33,pass:[0,1,3,4,5,8,9,11,12,14,15,24,25,26,27,28,29,31,35,41],patch:[4,24,27],path:[3,4,5,9,10,12,24,26,28,35],pathpatch:[4,24],pdf:[0,3,4,5,7,9,12,24,26,27,28,29,34],per:[3,5,7,9,12,13,14,27,28],perform:[3,4,5,6,8,9,10,12,14,15,24,25,35,41],perhap:41,perim:[0,24],perimet:[0,4,24,34],permut:[8,25],perpendicular:[8,25],persp:[28,30],perspect:[8,25],perturb:34,phi:[9,10,12,28],pi1:[8,11,25],pi2:[8,11,25],pi3:[11,25],pi:[0,3,5,8,9,10,11,12,15,24,25,28,35,36,37,41],pierc:[8,25],pitch:[3,5,9,10,12,14,28,41],pixel:[9,10,12,14,28],place:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,27,28,30],planar:[4,24,26],plane3:[8,11,25],plane:[5,8,25,41,42,43],plot:[0,1,3,4,5,8,9,10,11,12,24,25,26,27,28,29,30,39,41],plot_arrow:27,plot_box:27,plot_circl:27,plot_con:29,plot_cuboid:29,plot_cylind:29,plot_ellips:[0,24,27],plot_ellipsoid:29,plot_homlin:27,plot_point:27,plot_polygon:[4,24,27],plot_spher:29,plot_surfac:[11,25,29],plot_text:27,plot_wirefram:29,plotvol2:[0,4,24,26,27,29],plotvol3:[27,28,29],plt:41,plucker:[8,14,25,41],pm:10,pmatrix:[26,28],png:[0,3,4,5,9,12,24,26,27,28,29,34],po:[8,14,25,27],point:[0,1,4,6,7,8,11,13,14,24,25,26,27,28,29,33,34,35,41],pointdir:[8,25],pointnorm:[11,25],points2:[0,24],points2tr2:26,points2tr:26,points_join:[1,24],pole:[6,14,37],polgon:[42,43],polgyon:[4,24],poly3dcollect:29,polygon2:[0,4,24],polygon:[0,4,24,27,29,34],polylin:30,polymorph:[30,41],polynomi:[0,24],pop:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,41],pos2tr2:26,pose2d:[3,5,12,41],pose3d:[9,12,13,41],pose:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,29,30,33,39,42],posese3:41,posit:[0,10,24,27,28,29,35,39,41],possibl:41,power:[3,5,9,12,35,41],pp:[8,25],ppd:[8,25],pq:[4,8,24,25,34],pre:[8,25],precend:[8,25],premultipli:41,present:[8,25,41],pretti:36,prevent:[3,5,9,12,26,28],previou:[9,12],primit:[4,24,27,29,30],primsmat:6,princip:[8,25],print:[0,3,4,5,7,9,10,12,13,15,24,28,33,35,36,37,39,41],printf:35,printlin:[3,5,6,9,12,14,41],prismat:[6,14,26,28],procedur:10,process:31,prod:[3,5,6,9,10,12,14,15],prod_i:[3,5,6,9,12,14],product:[3,5,6,7,8,9,10,12,13,14,15,16,20,22,23,25,35,37,41],proj_typ:30,project:[8,25,28,29,30,37,44],proper:[3,5,9,12,26,28,33],properti:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25],provid:[4,8,9,10,11,12,14,24,25,27,28,29,31,36,39,41],proxi:30,psi:[9,10,12,28,36],pure:[5,6,7,10,12,13,14,15,26,28,35,41],purpos:37,push:[9,10,12],put:[3,5,9,12,26,28],py:[6,14,34,36],pybullet:[10,15],pycon:[8,25],pyplot:[1,24,27,30],python3:[6,14,34,36],python:[3,5,6,9,12,14,26,28,31,34,36],q0:[10,35],q11:10,q1:[10,15,35],q2:[10,15,35],q2r:35,q2v:35,q:[4,5,6,7,8,10,13,14,15,24,25,28,34,35,36,39,41],q_0:36,q_1:[9,10,12,36],q_2:[9,10,12,36],q_3:36,q_4:36,q_5:36,q_:36,q_d:13,q_r:13,q_t:13,qa:35,qangl:35,qb:35,qconj:[10,15,35],qdot:[10,35],qdotb:[10,35],qey:35,qi:10,qinner:[10,15,35],qinv:10,qisequ:[10,15,35],qisunit:35,qlerp:28,qmatrix:[10,15,35],qn:[10,15],qnorm:[10,15,35,41],qp:[8,25],qposit:35,qpow:[10,15,35],qprint:[35,41],qpure:35,qqmul:[15,35,41],qrand:35,qslerp:[3,5,9,10,12,35],quadrant:28,quadrat:[0,24],quaterion:35,quaternion:[3,5,6,8,9,12,14,16,18,19,21,23,25,28,38,39,41,42,43],quick:[26,28],quit:28,quiver:30,qunit:35,quo:[3,5,9,10,12],quotient:[3,5,9,10,12],qv1:10,qv2:10,qv:10,qvmul:[10,35],r0:[26,28],r1:[3,9,26,28],r2:[3,9,41],r2q:35,r2t:33,r2x:28,r:[0,3,5,6,8,9,10,12,13,14,15,19,22,24,25,26,27,28,29,33,34,35,37,39,41],r_:[3,5,9,10,12,15,31,37],rad:[3,5,6,9,10,12,14,26,28,31],radian:[0,3,5,6,9,10,12,14,24,26,28,31,35,37],radii:[0,24,27],radiu:[4,24,27,29],radsimp:36,rais:[0,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,28,31,33,34,35,37,41],rand:[3,5,6,9,10,12,13,14,34,41],random:[3,5,9,10,12,14,27,34,35,41],rang:[3,5,9,10,12,14,26,28,29,35,37],rangl:[10,15],rate:[10,28,35],rather:[28,29,41],ratio:[0,24,26,27,28,29],rb:27,rc:28,rd_hs2018script:28,readabl:[30,35,41],real:[7,10,13,15,31,36,37,44],recent:[6,9,10,13,14,26,34,35,41],reciproc:[8,25],recommend:[8,25],recomput:28,reconsitut:35,rectangl:27,rectangular:[8,25],red:[27,28,29,41],refer:[6,7,8,9,10,12,14,15,22,25,26,28,30,31,33,35,37,39,41,42],referenc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],reflect:[4,24],regular:[7,13,41],rel:[12,14,19,26,28,30,41],relat:[9,12,41],relationship:28,releas:41,relev:41,remain:[9,12],remov:[3,5,6,8,9,10,12,14,15,16,17,18,19,21,23,25,41],removesmal:37,render:30,repeat:[3,5,9,12,26,28,30,35,41],replac:[4,24,36,41],replic:[4,24,41],repr:10,repres:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,30,35,37,39,41],represens:[7,13],represent:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,28,34,39,41],requir:[3,5,8,9,15,19,25,26,27,30,31,35,41],reshap:31,residu:33,resolut:[0,24,27,29],respect:[4,7,9,10,12,13,24,26,27,28,33,37,41],result:[3,5,6,8,9,10,12,14,15,16,18,19,20,21,22,23,25,26,28,33,34,37,41],ret:[3,5,8,9,15,25],retain:31,retur:33,revers:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26],revolut:[6,14,26,28],rgb:28,ri:[3,9],rich:41,right:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,25,27,28,33,35,37],rigid:[3,5,6,8,9,12,13,14,16,18,19,21,23,25,26,28,41],rigidbodi:5,ring:41,riski:[3,5,9,12],rn:[3,9],ro:27,robot:[6,9,10,12,14,22,26,27,28,35,41],robotdynamics2018:28,robust:[9,10,12],rodrigu:28,roll:[3,5,9,10,12,14,28,41],rot2:[26,33],rot2jac:28,rot:5,rotat:[3,5,6,9,10,12,13,14,15,16,18,21,23,26,28,33,35,37,39,41],roti:[28,41],rotvelxform:28,rotvelxform_inv_dot:28,rotx:[28,34,35,41],rotz:28,row:[3,5,8,9,10,12,14,25,26,28,31,33,34,37,41],rowsep:34,rpy2jac:28,rpy2r:[9,10,12,28,41],rpy2tr:28,rpy:[3,5,9,10,12,14,28,41],rsl:28,rt2m:33,rt2tr:33,rt:[12,27],rtotx:28,rtype:[5,6,28,31],rudimentari:33,rule:[10,15,41],run:[26,28,30],runblock:[8,25],runnabl:41,rvc3:34,rvc:37,rvert:[9,10,12],rviz:[26,28,41],rx:[3,5,6,9,10,12,14,15,27,41],ry:[3,5,9,10,12,14,41],rz:[9,10,12,14,41],s10851:35,s1:[6,14],s2:[6,14],s:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,27,28,30,33,34,35,36,37,39,41],s_i:[6,14],safeti:41,sai:[26,28],same:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,35,37,41],sarabandi:35,save:28,scalar:[3,5,6,8,9,10,11,12,14,15,25,27,29,31,34,35,37,41],scalartyp:[8,9,10,12,15,25,26,28,29,31,33,35,37],scale:[0,3,5,9,12,14,24,27,29,33,35],scatter:30,scienc:22,screen:28,screw:[14,26,28],se2:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,41],se2arrai:26,se3:[3,5,6,8,9,10,12,13,14,15,16,18,19,21,22,23,25,28,29,41],se:[3,8,9,10,13,15,25,26,28,30,33,34,37,39,41,42,43],sealso:[8,25],search:40,sec:28,second:[5,6,8,9,10,12,14,15,25,26,28,31,35,37],section:[6,12,14,26,28,41],see:[3,5,8,9,10,12,22,25,31,41],seealso:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],seem:28,segment:[1,4,8,24,25,42,43],select:28,self:[0,1,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,30],semant:41,semicolon:34,sep:22,separ:[8,25,34,41],sequenc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,31,39,41],sequenti:[4,24,27,28],seri:[22,30],set:[0,3,4,5,8,9,10,12,15,24,25,26,27,28,29,30,31,34,37,41],set_aspect:30,set_proj_typ:30,set_xlabel:30,set_xlim:30,set_ylabel:30,set_ylim:30,set_zlabel:30,set_zlim:30,settabl:5,setup:30,sever:[7,9,10,12,13,28],shape:[0,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,27,31,41],share:41,shift:[4,24,28],shortest:[3,5,9,10,12,26,28,35],should:[4,8,24,25],show:[26,41],shown:[26,28,41],si1:19,si2:19,si:14,side:[8,25,29],sidewai:[9,10,12,14,28],sigma_:37,sign:[4,24,35],signatur:[9,12],signific:41,signsimp:36,silent:[3,5,9,10,12],sim:13,similar:[8,25,28,34,41],similarli:41,simpl:41,simpli:[9,10,12],simplif:[3,5,9,12,36],simplifi:[3,5,9,12,36],sin:[3,5,9,10,12,15,28,36,37,41],sinc:[8,9,10,12,25,41],sine:36,singelton:[3,5,8,9,15,25],singl:[0,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,31,34,35,41],singleton:31,singular:28,site:[6,14,34,36],six:[8,25],size:[8,25,26,27,28,29,31],sk:[8,25],skew:[3,5,6,8,9,12,14,25,26,28,33],skewa:[6,14,26,28,33],skx:28,slam:41,slerp:[3,5,9,10,12,28],slice:[8,25,41],slope:34,small:[34,37,41],smaller:27,smalleset:[4,24],smallest:[4,8,24,25,35],smb:[6,14],smtb:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],smuserlist:[22,43],sn:14,so2:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],so3:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],so3arrai:[9,10,12,28,33],so:[4,5,6,10,12,14,24,26,27,28,30,33,34,35,36,39,41,42,43],soecifi:35,solut:[3,5,9,12,26,28],some:[8,25,27,28,36,41],sometim:[6,9,12,14],sort:[8,17,25],sourc:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],south:37,space:[3,5,6,8,9,12,14,16,17,18,19,20,21,23,25,33,34,35,39,41,42],spatial:[3,5,7,9,12,13,26,28,42],spatialacceler:[16,19,20,22,23,41],spatialf6:[16,17,18,19,20,21,22,23,41],spatialforc:[17,18,19,21,22,41],spatialinertia:[19,22,41],spatialm6:[16,19,20,22,23,41],spatialmath:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],spatialmomemtum:19,spatialmomentum:[17,18,19,21,22,41],spatialvector:[16,17,18,20,21,22,23,41],spatialveloc:[16,19,20,22,23,41],special:[28,33],specif:41,specifi:[0,3,5,6,8,9,10,12,13,14,24,25,27,28,31,35,41],sphere:29,spheric:[3,5,9,10,12,28],spin:[26,28],split:33,springer:[6,12,14,22,26,28],sq:37,sqrt:[10,15,35,36,37],squar:[26,29,33,34,35,37],stack:[3,5,8,9,12,15,25,28],stand:31,standard:[3,5,8,9,15,25,36,37],star:27,start:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,30,34],state:10,staticmethod:[8,25],stdout:[3,5,9,12,26,28,35],step:[3,5,9,10,12,26,28,30],stop:[8,25],stopiter:28,store:[7,13,33],str2arrai:34,str:[0,3,4,5,6,9,10,12,14,26,27,28,30,31,34,35,36,37,41],straightest:35,stride:29,string:[3,4,5,6,9,12,26,27,28,30,34,35,41],strline:[3,5,9,12],structur:[3,5,9,12],style:[8,25,26,27,28,35,41],sub:[26,28],subclass:[3,5,8,9,12,15,16,18,20,21,22,23,25,41],subject:10,submatrix:[9,10,12,26,28,33,41],subplot:[27,29],subscript:[26,28,36],subtract:[3,5,9,10,12,15,16,18,21,22,23,37,41],subtyp:22,success:[9,10,12,14,27,28],succinct:[3,5,9,12],succinctli:41,suitabl:27,sum:[3,5,7,9,10,12,13,15,16,18,21,22,23,26,33,35,37],sum_:[4,24,34],summari:[3,4,5,9,12,13],sun:24,superclass:[3,5,6,8,9,10,12,14,15,16,17,18,19,20,21,22,23,25],support:[3,5,6,7,8,9,10,12,13,14,15,19,22,25,26,28,31,32,33,35,36,37,38,42],supportsindex:31,suppress:[26,28,34,41],suppress_smal:34,supress:41,surfac:29,survei:35,susbstitut:27,sxyz:35,sy:35,sym:41,symbol:[3,5,9,12,27,28,31,38,39],symmetr:[0,3,5,6,8,9,12,14,24,25,26,28,33],symmetri:33,sympi:[3,5,6,9,12,14,19,26,28,31,33,35,36,37,41],system:28,t0:[26,28],t1:[5,12,26,28],t2:[5,12,26,28],t2r:33,t:[3,4,5,6,8,9,12,13,14,24,25,26,27,28,29,30,31,33,34,37,39,41],t_i:[3,5,9,12],tabl:22,tabular:[3,5,9,12,26,28,41],tag:41,tail:27,take:[3,5,9,10,12,26,28,33],taken:[8,11,25,27,28,29,35,41],tan:[9,10,12,36,37],tangent:36,tb_optpars:41,ten:5,tension:41,term:[9,10,12,28],test:[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,28,31,33,35,36,37,41],text:[3,5,9,12,26,27,28,30,41],textarg:27,textcolor:[26,27,28],textiowrapp:[26,28,35],th:[4,9,10,12,24,34],than:[3,5,9,10,12,15,28,29,33,34,35,37,41],thei:[1,4,8,9,10,12,13,24,25,28,36,41,43],them:[27,30,41,43],theta:[0,3,5,6,9,10,12,14,24,26,28,34,36,37,41],theta_i:[12,28,37],theta_p:28,theta_r:28,theta_x:[12,28],theta_z:[12,28],thi:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,30,31,33,34,35,36,37,39,41],thick:[27,28],thing:[26,28],third:[1,3,5,9,12,24,41],thoma:35,those:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,28,30,41],though:41,three:[3,5,9,10,11,12,14,15,25],threepoint:[11,25],threshold:41,through:[14,28],ti:[5,12],time:[0,4,8,10,12,15,16,20,23,24,25,28,31,34,41,44],tkagg:28,tn:[5,12],tol:[1,8,10,11,15,24,25,26,28,33,35,37],toler:[1,8,10,11,15,24,25,26,28,33,35,37],toolbox:[3,5,9,12,26,28,41,43],top:[0,24,27,33],torqu:18,tr2adjoint2:26,tr2adjoint:28,tr2angvec:28,tr2delta:[12,28],tr2eul:[9,10,12,28],tr2jac2:26,tr2jac:[12,28],tr2pos2:26,tr2r:33,tr2rpy:[9,10,12,28],tr2rt:33,tr2x:28,tr2xyt:26,traceback:[6,9,10,13,14,26,34,35,41],tradjoint2:26,trajectori:41,tran:12,tranim:[3,5,9,10,12,28],tranimate2:[3,5,9,12,26],transform:[3,4,5,6,7,8,9,12,13,14,24,25,30,38,39],transformaton:41,transforms2d:[3,5],transforms3d:[9,34],transformsnd:[3,5,9],transit:41,transl2:[6,26,28,41],transl:[5,12,14,26,28,41],translat:[3,5,6,9,10,12,13,14,16,18,21,23,26,28,33,37,41],transpar:27,transpos:[3,9,12,22],trexp2:[6,26,28],trexp:[3,5,9,12,14,26,28],triangl:[4,24,27],trinterp2:[3,5,9,12,26,28],trinterp:[3,5,9,12,26,28],trinv2:26,trinv:[12,28],trlog2:[3,5,9,12,26],trlog:[3,5,9,12,26,28],trnorm2:[3,5,9,12,26],trnorm:[3,5,9,12,26,28],trot2:[26,33,41],troti:[12,14,28],trotx:[12,14,28,33,41],trotz:[12,14,28,41],trplot2:[3,5,9,12,26,30,41],trplot:[3,5,9,10,12,28,30,41],trprint2:[3,5,9,12,26,28],trprint:[3,5,9,12,26,28],tupl:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,25,26,27,28,29,30,31,33,34,35,37,41],tw:[6,14],twice:27,twist2:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],twist3:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],twist:[3,5,8,9,10,12,15,16,18,19,21,23,25,26,28,33,37,39,41,42,43],two:[1,3,5,6,7,8,9,10,11,12,13,14,15,22,24,25,26,28,33,35,41],twolin:[11,25],twoplan:[8,25],twopoint:[1,24],twovector:[9,12],tx:[5,6,12,14],ty:[5,6,12,14],type:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],typeerror:[6,9,10,12,14,16,18,19,21,22,23,31],typevar:[8,9,25,26,28,29,31,35,37],typic:41,typing_extens:[9,31],typl:[3,5,8,9,15,25],tz:[12,14],u:[30,37],uaternion:35,ultim:41,unari:[3,5,8,9,15,22,25],unchang:[3,5,9,12,26,28],underli:41,underpin:41,underscor:36,uniform:[3,27],uniformli:[10,35],union:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,29,31,33,35,37],uniqu:[4,5,6,8,9,10,12,14,24,25,33,35],unit:[1,3,5,6,7,8,9,11,12,14,15,24,25,26,28,31,33,34,35,37,39,41,42,43],unitdualquaternion:[7,13],uniti:[7,13],unitprismat:[6,14],unitq:35,unitquaternion:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,25,41],unitrevolut:[6,14],unittwist2:37,unittwist2_norm:37,unittwist:37,unittwist_norm:37,unitvec:37,unitvec_norm:37,unlik:[7,13,31],unnari:[3,5,8,9,15,25],unnorm:[3,5,9,12,26,28],unop:[3,5,8,9,15,17,25],unspecifi:31,until:[26,28,30],unusu:[26,28],up:30,updat:[4,10,24,30],uppercas:41,upsid:41,upward:29,uq:10,us:[0,1,3,4,5,7,8,9,10,11,12,15,24,25,26,27,28,29,30,31,34,35,36,37,41],usag:[8,25],user:41,userlist:[3,5,8,9,10,12,15,16,18,21,23,25,41],utf:[26,28,35],util:[31,38,39],uvw:28,uw:[8,25],v1:[16,18,20,21,22,23,35,37],v2:[16,18,20,21,22,23,35,37],v2q:35,v:[3,5,6,8,9,10,12,14,15,16,19,20,22,23,25,26,28,30,31,33,35,36,37,41],v_1:33,v_2:33,v_3:33,v_4:33,v_5:33,v_6:33,v_x:[8,10,12,15,25,33,35],v_y:[8,10,12,15,25,33,35],v_z:[8,10,12,15,25,33,35],valid:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,28,31,33,35,41],validit:[26,28],valu:[3,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,31,33,34,35,37],valueerror:[0,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,31,33,34,35,37,41],valueerrror:[16,18,21,22,23],valuesep:34,variabl:[36,41],varianc:34,varieti:41,variou:[3,5,9,12],vec3:10,vec:[0,6,7,8,10,12,13,14,15,16,18,20,21,22,23,24,25,28,31],vec_xyz:[10,15],vector:[3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,25,26,27,28,30,31,33,34,35,38,39,42],vector_diff:37,vectoris:34,vee:[8,25],vehicl:[5,28],veloc:[10,12,16,20,22,26,28,35,41,42,43],verifymatrix:31,version:[9,10,12,26,28,30,41],vertex:[4,24],vertic:[0,1,3,4,5,8,9,15,24,25,27,34],vex:[26,28,33,34],vexa:[26,28,33],vi:[16,18,21,22,23,35],via:41,video:30,view:28,vision:[6,12,14,26,28,41],vn:[16,18,21,22,23],volum:[8,11,22,25,26,28,29,30],vp:35,vvmul:35,vx:[10,15,35],vy:[10,15,35],vz:[10,15,35],w:[6,8,9,10,12,14,25,26,27,28,30,35],wa:[4,24,31,35,41],wai:[27,35,41,44],wait:[28,30],we:[0,10,14,24,26,27,28,33,37,41,44],weak:30,web:7,weight:36,weird:[26,28],well:[8,25,41],wh:27,what:[4,24,26,28,31,33,37,41],when:[3,4,5,8,9,10,12,15,19,24,25,26,28,35,41],whenev:[8,25],where:[0,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,37,41],wherea:41,whether:[1,6,8,14,24,25,26,28,31,33,35,36,37],which:[0,1,3,4,5,6,8,9,10,11,12,14,15,22,24,25,26,27,28,29,30,31,33,34,35,41,43],white:34,whose:[3,4,5,8,9,10,12,15,16,18,20,21,22,23,24,25,41],width:[3,5,9,12,26,27,28,41],wiki:7,wikipedia:[7,10,15],wildcard:31,window:[26,28],wirefram:29,wise:[3,5,6,9,10,12,14,16,18,21,22,23,35,41],wish:41,within:[0,6,9,12,14,24,41],word:[3,5,9,12,26,28],work:[8,12,25,28,41],workspac:41,world:[10,26,28,30,35],would:[8,14,25,41],wrap:37,wrap_0_2pi:37,wrap_0_pi:37,wrap_mpi2_pi2:37,wrap_mpi_pi:37,wrapper:36,write:[3,5,9,12,26,28,30,41],written:[7,10,13,15,26,28,35],wtl:[26,28],wwith:9,x1:[3,5,9,10,12,14],x2:[3,5,9,10,12,14],x2r:28,x2tr:28,x64:[6,14,34,36],x:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,34,35,36,41],x_:34,x_i:[4,24,34],xi:[3,5,9,12,14],xlim:27,xmax:[4,8,11,24,25,26,27,28,30],xmin:[4,8,11,24,25,26,27,28,30],xn:[3,5,9,10,12,14],xrang:[5,12,14,27,29],xs:30,xy:[0,5,24],xyt2tr:26,xyt:[5,26],xyz:[9,10,12,14,28,35],y:[0,1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,30,34,35,36,41],y_:34,y_i:[4,24,34],yaw:[3,5,9,10,12,14,28,41],yaw_se2:12,yellow:27,yellow_2:41,yet:[7,13,41],yezzi:28,yield:35,ylim:27,ymax:[4,8,11,24,25,26,27,28,30],ymin:[4,8,11,24,25,26,27,28,30],you:[3,5,9,12,41,44],your:44,yrang:[5,12,14,27,29],ys:30,yxz:[3,5,9,10,12,14,28],z:[3,5,9,10,12,14,26,27,28,29,30,35,41],zero:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,36,37,41],zip:41,zmax:[8,11,25,28,30],zmin:[8,11,25,28,30],zrang:[12,14,29],zs:30,zurich:28,zyx:[3,5,9,10,12,14,28,41],zyz:[3,5,9,12,28]},titles:["2D ellipse","2D line","2D line segment","SO(2) matrix","2D polgon","SE(2) matrix","se(2) twist","Dual Quaternion","3D line","SO(3) matrix","Unit quaternion","Plane","SE(3) matrix","Unit dual quaternion","se(3) twist","Quaternion","Spatial acceleration","Spatial F6","Spatial force","Spatial inertia","Spatial M6","Spatial momentum","Spatial vector","Spatial velocity","Geometry","Geometry","Transforms in 2D","2D graphics","Transforms in 3D","3D graphics","Animation support","Argument checking","Graphics and animation","Transforms in ND","Numerical utility functions","Quaternions","Symbolic computation","Vectors","Function reference","Spatial Maths for Python","Indices","Introduction","spatialmath","Class reference","Support"],titleterms:{"2":[3,5,6],"2d":[0,1,2,4,26,27,43],"3":[9,12,14],"3d":[8,28,29,43],"6d":43,"class":[41,43],"function":[34,38],acceler:16,anim:[30,32],argument:31,capabl:41,check:31,comput:36,constructor:41,creat:41,displai:41,dual:[7,13],ellips:0,environ:41,f6:17,forc:18,geometri:[24,25,43],graphic:[27,29,32,41],group:41,implement:41,indic:40,inertia:19,introduct:41,level:41,like:41,line:[1,2,8],list:41,low:41,m6:20,math:[39,41],matlab:41,matrix:[3,5,9,12],momentum:21,nd:33,non:41,numer:34,object:41,oper:41,orient:43,plane:11,polgon:4,pose:[41,43],python:[39,41],quaternion:[7,10,13,15,35],refer:[38,43],relationship:41,se:[5,6,12,14],segment:2,so:[3,9],space:43,spatial:[16,17,18,19,20,21,22,23,39,41,43],spatialmath:42,support:[30,41,43,44],symbol:[36,41],todo:[3,5,9,12],tool:41,transform:[26,28,33,41],twist:[6,14],unit:[10,13],util:34,valu:41,vector:[22,37,41,43],veloc:23}}) \ No newline at end of file +Search.setIndex({docnames:["2d_ellipse","2d_line","2d_linesegment","2d_orient_SO2","2d_polygon","2d_pose_SE2","2d_pose_twist","3d_dualquaternion","3d_line","3d_orient_SO3","3d_orient_unitquaternion","3d_plane","3d_pose_SE3","3d_pose_dualquaternion","3d_pose_twist","3d_quaternion","6d_acceleration","6d_f6","6d_force","6d_inertia","6d_m6","6d_momentum","6d_spatial","6d_velocity","classes-2d","classes-3d","func_2d","func_2d_graphics","func_3d","func_3d_graphics","func_animation","func_args","func_graphics","func_nd","func_numeric","func_quat","func_symbolic","func_vector","functions","index","indices","intro","modules","spatialmath","support"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["2d_ellipse.rst","2d_line.rst","2d_linesegment.rst","2d_orient_SO2.rst","2d_polygon.rst","2d_pose_SE2.rst","2d_pose_twist.rst","3d_dualquaternion.rst","3d_line.rst","3d_orient_SO3.rst","3d_orient_unitquaternion.rst","3d_plane.rst","3d_pose_SE3.rst","3d_pose_dualquaternion.rst","3d_pose_twist.rst","3d_quaternion.rst","6d_acceleration.rst","6d_f6.rst","6d_force.rst","6d_inertia.rst","6d_m6.rst","6d_momentum.rst","6d_spatial.rst","6d_velocity.rst","classes-2d.rst","classes-3d.rst","func_2d.rst","func_2d_graphics.rst","func_3d.rst","func_3d_graphics.rst","func_animation.rst","func_args.rst","func_graphics.rst","func_nd.rst","func_numeric.rst","func_quat.rst","func_symbolic.rst","func_vector.rst","functions.rst","index.rst","indices.rst","intro.rst","modules.rst","spatialmath.rst","support.rst"],objects:{"spatialmath.DualQuaternion":[[7,0,1,"","DualQuaternion"],[13,0,1,"","UnitDualQuaternion"]],"spatialmath.DualQuaternion.DualQuaternion":[[7,1,1,"","Pure"],[7,1,1,"","__add__"],[7,1,1,"","__init__"],[7,1,1,"","__mul__"],[7,1,1,"","__sub__"],[7,1,1,"","conj"],[7,1,1,"","matrix"],[7,1,1,"","norm"],[7,2,1,"","vec"]],"spatialmath.DualQuaternion.UnitDualQuaternion":[[13,1,1,"","Pure"],[13,1,1,"","SE3"],[13,1,1,"","__add__"],[13,1,1,"","__init__"],[13,1,1,"","__mul__"],[13,1,1,"","__sub__"],[13,1,1,"","conj"],[13,1,1,"","matrix"],[13,1,1,"","norm"],[13,2,1,"","vec"]],"spatialmath.base":[[30,3,0,"-","animate"],[31,3,0,"-","argcheck"],[29,3,0,"-","graphics"],[34,3,0,"-","numeric"],[35,3,0,"-","quaternions"],[36,3,0,"-","symbolic"],[26,3,0,"-","transforms2d"],[28,3,0,"-","transforms3d"],[33,3,0,"-","transformsNd"],[37,3,0,"-","vectors"]],"spatialmath.base.animate":[[30,0,1,"","Animate"],[30,0,1,"","Animate2"]],"spatialmath.base.animate.Animate":[[30,4,1,"","__dict__"],[30,1,1,"","__init__"],[30,4,1,"","__module__"],[30,1,1,"","__repr__"],[30,1,1,"","__str__"],[30,4,1,"","__weakref__"],[30,1,1,"","artists"],[30,1,1,"","plot"],[30,1,1,"","quiver"],[30,1,1,"","run"],[30,1,1,"","scatter"],[30,1,1,"","set_proj_type"],[30,1,1,"","set_xlabel"],[30,1,1,"","set_xlim"],[30,1,1,"","set_ylabel"],[30,1,1,"","set_ylim"],[30,1,1,"","set_zlabel"],[30,1,1,"","set_zlim"],[30,1,1,"","text"],[30,1,1,"","trplot"]],"spatialmath.base.animate.Animate2":[[30,4,1,"","__dict__"],[30,1,1,"","__init__"],[30,4,1,"","__module__"],[30,1,1,"","__repr__"],[30,1,1,"","__str__"],[30,4,1,"","__weakref__"],[30,1,1,"","artists"],[30,1,1,"","autoscale"],[30,1,1,"","plot"],[30,1,1,"","quiver"],[30,1,1,"","run"],[30,1,1,"","scatter"],[30,1,1,"","set_aspect"],[30,1,1,"","set_xlabel"],[30,1,1,"","set_xlim"],[30,1,1,"","set_ylabel"],[30,1,1,"","set_ylim"],[30,1,1,"","text"],[30,1,1,"","trplot2"]],"spatialmath.base.argcheck":[[31,5,1,"","assertmatrix"],[31,5,1,"","assertvector"],[31,5,1,"","getmatrix"],[31,5,1,"","getunit"],[31,5,1,"","getvector"],[31,5,1,"","isinteger"],[31,5,1,"","islistof"],[31,5,1,"","ismatrix"],[31,5,1,"","isnumberlist"],[31,5,1,"","isscalar"],[31,5,1,"","isvector"],[31,5,1,"","isvectorlist"],[31,5,1,"","verifymatrix"]],"spatialmath.base.graphics":[[27,5,1,"","plot_arrow"],[27,5,1,"","plot_box"],[27,5,1,"","plot_circle"],[29,5,1,"","plot_cone"],[29,5,1,"","plot_cuboid"],[29,5,1,"","plot_cylinder"],[27,5,1,"","plot_ellipse"],[29,5,1,"","plot_ellipsoid"],[27,5,1,"","plot_homline"],[27,5,1,"","plot_point"],[27,5,1,"","plot_polygon"],[29,5,1,"","plot_sphere"],[27,5,1,"","plot_text"],[27,5,1,"","plotvol2"],[29,5,1,"","plotvol3"]],"spatialmath.base.numeric":[[34,5,1,"","array2str"],[34,5,1,"","bresenham"],[34,5,1,"","gauss1d"],[34,5,1,"","gauss2d"],[34,5,1,"","mpq_point"],[34,5,1,"","numhess"],[34,5,1,"","numjac"],[34,5,1,"","str2array"]],"spatialmath.base.quaternions":[[35,5,1,"","q2r"],[35,5,1,"","q2v"],[35,5,1,"","qangle"],[35,5,1,"","qconj"],[35,5,1,"","qdot"],[35,5,1,"","qdotb"],[35,5,1,"","qeye"],[35,5,1,"","qinner"],[35,5,1,"","qisequal"],[35,5,1,"","qisunit"],[35,5,1,"","qmatrix"],[35,5,1,"","qnorm"],[35,5,1,"","qpositive"],[35,5,1,"","qpow"],[35,5,1,"","qprint"],[35,5,1,"","qpure"],[35,5,1,"","qqmul"],[35,5,1,"","qrand"],[35,5,1,"","qslerp"],[35,5,1,"","qunit"],[35,5,1,"","qvmul"],[35,5,1,"","r2q"],[35,5,1,"","v2q"],[35,5,1,"","vvmul"]],"spatialmath.base.symbolic":[[36,5,1,"","cos"],[36,5,1,"","det"],[36,5,1,"","issymbol"],[36,5,1,"","negative_one"],[36,5,1,"","one"],[36,5,1,"","pi"],[36,5,1,"","simplify"],[36,5,1,"","sin"],[36,5,1,"","sqrt"],[36,5,1,"","symbol"],[36,5,1,"","tan"],[36,5,1,"","zero"]],"spatialmath.base.transforms2d":[[26,5,1,"","ICP2d"],[26,5,1,"","ishom2"],[26,5,1,"","isrot2"],[26,5,1,"","points2tr2"],[26,5,1,"","pos2tr2"],[26,5,1,"","rot2"],[26,5,1,"","tr2jac2"],[26,5,1,"","tr2pos2"],[26,5,1,"","tr2xyt"],[26,5,1,"","tradjoint2"],[26,5,1,"","tranimate2"],[26,5,1,"","transl2"],[26,5,1,"","trexp2"],[26,5,1,"","trinterp2"],[26,5,1,"","trinv2"],[26,5,1,"","trlog2"],[26,5,1,"","trnorm2"],[26,5,1,"","trot2"],[26,5,1,"","trplot2"],[26,5,1,"","trprint2"],[26,5,1,"","xyt2tr"]],"spatialmath.base.transforms3d":[[28,5,1,"","angvec2r"],[28,5,1,"","angvec2tr"],[28,5,1,"","angvelxform"],[28,5,1,"","angvelxform_dot"],[28,5,1,"","delta2tr"],[28,5,1,"","eul2jac"],[28,5,1,"","eul2r"],[28,5,1,"","eul2tr"],[28,5,1,"","exp2jac"],[28,5,1,"","exp2r"],[28,5,1,"","exp2tr"],[28,5,1,"","ishom"],[28,5,1,"","isrot"],[28,5,1,"","oa2r"],[28,5,1,"","oa2tr"],[28,5,1,"","r2x"],[28,5,1,"","rodrigues"],[28,5,1,"","rot2jac"],[28,5,1,"","rotvelxform"],[28,5,1,"","rotvelxform_inv_dot"],[28,5,1,"","rotx"],[28,5,1,"","roty"],[28,5,1,"","rotz"],[28,5,1,"","rpy2jac"],[28,5,1,"","rpy2r"],[28,5,1,"","rpy2tr"],[28,5,1,"","tr2adjoint"],[28,5,1,"","tr2angvec"],[28,5,1,"","tr2delta"],[28,5,1,"","tr2eul"],[28,5,1,"","tr2jac"],[28,5,1,"","tr2rpy"],[28,5,1,"","tr2x"],[28,5,1,"","tranimate"],[28,5,1,"","transl"],[28,5,1,"","trexp"],[28,5,1,"","trinterp"],[28,5,1,"","trinv"],[28,5,1,"","trlog"],[28,5,1,"","trnorm"],[28,5,1,"","trotx"],[28,5,1,"","troty"],[28,5,1,"","trotz"],[28,5,1,"","trplot"],[28,5,1,"","trprint"],[28,5,1,"","x2r"],[28,5,1,"","x2tr"]],"spatialmath.base.transformsNd":[[33,5,1,"","Ab2M"],[33,5,1,"","det"],[33,5,1,"","e2h"],[33,5,1,"","h2e"],[33,5,1,"","homtrans"],[33,5,1,"","isR"],[33,5,1,"","iseye"],[33,5,1,"","isskew"],[33,5,1,"","isskewa"],[33,5,1,"","r2t"],[33,5,1,"","rt2tr"],[33,5,1,"","skew"],[33,5,1,"","skewa"],[33,5,1,"","t2r"],[33,5,1,"","tr2rt"],[33,5,1,"","vex"],[33,5,1,"","vexa"]],"spatialmath.base.vectors":[[37,5,1,"","angdiff"],[37,5,1,"","angle_mean"],[37,5,1,"","angle_std"],[37,5,1,"","angle_wrap"],[37,5,1,"","colvec"],[37,5,1,"","cross"],[37,5,1,"","isunittwist"],[37,5,1,"","isunittwist2"],[37,5,1,"","isunitvec"],[37,5,1,"","iszero"],[37,5,1,"","iszerovec"],[37,5,1,"","norm"],[37,5,1,"","normsq"],[37,5,1,"","orthogonalize"],[37,5,1,"","project"],[37,5,1,"","removesmall"],[37,5,1,"","unittwist"],[37,5,1,"","unittwist2"],[37,5,1,"","unittwist2_norm"],[37,5,1,"","unittwist_norm"],[37,5,1,"","unitvec"],[37,5,1,"","unitvec_norm"],[37,5,1,"","vector_diff"],[37,5,1,"","wrap_0_2pi"],[37,5,1,"","wrap_0_pi"],[37,5,1,"","wrap_mpi2_pi2"],[37,5,1,"","wrap_mpi_pi"]],"spatialmath.geom2d":[[24,0,1,"","Ellipse"],[24,0,1,"","Line2"],[24,0,1,"","LineSegment2"],[24,0,1,"","Polygon2"]],"spatialmath.geom2d.Ellipse":[[24,2,1,"","E"],[24,1,1,"","FromPerimeter"],[24,1,1,"","FromPoints"],[24,1,1,"","Polynomial"],[24,1,1,"","__init__"],[0,1,1,"","__str__"],[24,2,1,"","area"],[24,2,1,"","centre"],[24,1,1,"","contains"],[24,1,1,"","plot"],[24,1,1,"","points"],[24,1,1,"","polygon"],[24,2,1,"","polynomial"],[24,2,1,"","radii"],[24,2,1,"","theta"]],"spatialmath.geom2d.Line2":[[24,1,1,"","General"],[24,1,1,"","Join"],[24,1,1,"","TwoPoints"],[24,1,1,"","__init__"],[24,1,1,"","contains"],[24,1,1,"","contains_polygon_point"],[24,1,1,"","distance_line_line"],[24,1,1,"","distance_line_point"],[24,1,1,"","general"],[24,1,1,"","intersect"],[24,1,1,"","intersect_polygon___line"],[24,1,1,"","intersect_segment"],[24,1,1,"","plot"],[24,1,1,"","points_join"]],"spatialmath.geom2d.LineSegment2":[[24,1,1,"","General"],[24,1,1,"","Join"],[24,1,1,"","TwoPoints"],[24,1,1,"","__init__"],[24,1,1,"","contains"],[24,1,1,"","contains_polygon_point"],[24,1,1,"","distance_line_line"],[24,1,1,"","distance_line_point"],[24,1,1,"","general"],[24,1,1,"","intersect"],[24,1,1,"","intersect_polygon___line"],[24,1,1,"","intersect_segment"],[24,1,1,"","plot"],[24,1,1,"","points_join"]],"spatialmath.geom2d.Polygon2":[[24,1,1,"","__init__"],[4,1,1,"","__len__"],[4,1,1,"","__str__"],[24,1,1,"","animate"],[24,1,1,"","area"],[24,1,1,"","bbox"],[24,1,1,"","centroid"],[24,1,1,"","contains"],[24,1,1,"","edges"],[24,1,1,"","intersects"],[24,1,1,"","moment"],[24,1,1,"","plot"],[24,1,1,"","radius"],[24,1,1,"","transformed"],[24,1,1,"","vertices"]],"spatialmath.geom3d":[[25,0,1,"","Line3"],[25,0,1,"","Plane3"],[25,0,1,"","Plucker"]],"spatialmath.geom3d.Line3":[[25,2,1,"","A"],[25,1,1,"","Alloc"],[25,1,1,"","Empty"],[25,1,1,"","IntersectingPlanes"],[25,1,1,"","Join"],[25,1,1,"","PointDir"],[25,1,1,"","TwoPlanes"],[25,1,1,"","__eq__"],[25,1,1,"","__init__"],[25,1,1,"","__mul__"],[25,1,1,"","__ne__"],[25,1,1,"","__or__"],[25,1,1,"","__rmul__"],[25,1,1,"","__xor__"],[25,1,1,"","append"],[25,1,1,"","arghandler"],[25,1,1,"","binop"],[25,1,1,"","clear"],[25,1,1,"","closest_to_line"],[25,1,1,"","closest_to_point"],[25,1,1,"","commonperp"],[25,1,1,"","contains"],[25,1,1,"","copy"],[25,1,1,"","count"],[25,1,1,"","distance"],[25,1,1,"","extend"],[25,1,1,"","index"],[25,1,1,"","insert"],[25,1,1,"","intersect_plane"],[25,1,1,"","intersect_volume"],[25,1,1,"","intersects"],[25,1,1,"","isequal"],[25,1,1,"","isintersecting"],[25,1,1,"","isparallel"],[25,1,1,"","isvalid"],[25,1,1,"","lam"],[25,1,1,"","plot"],[25,1,1,"","point"],[25,1,1,"","pop"],[25,2,1,"","pp"],[25,2,1,"","ppd"],[25,1,1,"","remove"],[25,1,1,"","reverse"],[25,2,1,"","shape"],[25,1,1,"","side"],[25,1,1,"","skew"],[25,1,1,"","sort"],[25,1,1,"","unop"],[25,2,1,"","uw"],[25,2,1,"","v"],[25,2,1,"","vec"],[25,2,1,"","w"]],"spatialmath.geom3d.Plane3":[[25,1,1,"","LinePoint"],[25,1,1,"","PointNormal"],[25,1,1,"","ThreePoints"],[25,1,1,"","TwoLines"],[25,1,1,"","__init__"],[25,1,1,"","contains"],[25,2,1,"","d"],[25,1,1,"","intersection"],[25,2,1,"","n"],[25,1,1,"","plot"]],"spatialmath.geom3d.Plucker":[[25,2,1,"","A"],[25,1,1,"","Alloc"],[25,1,1,"","Empty"],[25,1,1,"","IntersectingPlanes"],[25,1,1,"","Join"],[25,1,1,"","PointDir"],[25,1,1,"","TwoPlanes"],[25,1,1,"","__eq__"],[25,1,1,"","__init__"],[25,1,1,"","__mul__"],[25,1,1,"","__ne__"],[25,1,1,"","__or__"],[25,1,1,"","__rmul__"],[25,1,1,"","__xor__"],[25,1,1,"","append"],[25,1,1,"","arghandler"],[25,1,1,"","binop"],[25,1,1,"","clear"],[25,1,1,"","closest_to_line"],[25,1,1,"","closest_to_point"],[25,1,1,"","commonperp"],[25,1,1,"","contains"],[25,1,1,"","copy"],[25,1,1,"","count"],[25,1,1,"","distance"],[25,1,1,"","extend"],[25,1,1,"","index"],[25,1,1,"","insert"],[25,1,1,"","intersect_plane"],[25,1,1,"","intersect_volume"],[25,1,1,"","intersects"],[25,1,1,"","isequal"],[25,1,1,"","isintersecting"],[25,1,1,"","isparallel"],[25,1,1,"","isvalid"],[25,1,1,"","lam"],[25,1,1,"","plot"],[25,1,1,"","point"],[25,1,1,"","pop"],[25,2,1,"","pp"],[25,2,1,"","ppd"],[25,1,1,"","remove"],[25,1,1,"","reverse"],[25,2,1,"","shape"],[25,1,1,"","side"],[25,1,1,"","skew"],[25,1,1,"","sort"],[25,1,1,"","unop"],[25,2,1,"","uw"],[25,2,1,"","v"],[25,2,1,"","vec"],[25,2,1,"","w"]],"spatialmath.pose2d":[[5,0,1,"","SE2"],[3,0,1,"","SO2"]],"spatialmath.pose2d.SE2":[[5,2,1,"","A"],[5,1,1,"","Alloc"],[5,1,1,"","Empty"],[5,1,1,"","Exp"],[5,2,1,"","N"],[5,2,1,"","R"],[5,1,1,"","Rand"],[5,1,1,"","Rot"],[5,1,1,"","SE2"],[5,1,1,"","SE3"],[5,1,1,"","Twist2"],[5,1,1,"","Tx"],[5,1,1,"","Ty"],[5,1,1,"","__add__"],[5,1,1,"","__eq__"],[5,1,1,"","__init__"],[5,1,1,"","__mul__"],[5,1,1,"","__ne__"],[5,1,1,"","__pow__"],[5,1,1,"","__sub__"],[5,1,1,"","__truediv__"],[5,2,1,"","about"],[5,1,1,"","animate"],[5,1,1,"","append"],[5,1,1,"","arghandler"],[5,1,1,"","binop"],[5,1,1,"","clear"],[5,1,1,"","conjugation"],[5,1,1,"","det"],[5,1,1,"","extend"],[5,1,1,"","insert"],[5,1,1,"","interp"],[5,1,1,"","interp1"],[5,1,1,"","inv"],[5,2,1,"","isSE"],[5,2,1,"","isSO"],[5,1,1,"","ishom"],[5,1,1,"","ishom2"],[5,1,1,"","isrot"],[5,1,1,"","isrot2"],[5,1,1,"","isvalid"],[5,1,1,"","log"],[5,1,1,"","norm"],[5,1,1,"","plot"],[5,1,1,"","pop"],[5,1,1,"","print"],[5,1,1,"","printline"],[5,1,1,"","prod"],[5,1,1,"","reverse"],[5,2,1,"","shape"],[5,1,1,"","simplify"],[5,1,1,"","stack"],[5,1,1,"","strline"],[5,2,1,"","t"],[5,1,1,"","theta"],[5,1,1,"","unop"],[5,2,1,"","x"],[5,1,1,"","xyt"],[5,2,1,"","y"]],"spatialmath.pose2d.SO2":[[3,2,1,"","A"],[3,1,1,"","Alloc"],[3,1,1,"","Empty"],[3,1,1,"","Exp"],[3,2,1,"","N"],[3,2,1,"","R"],[3,1,1,"","Rand"],[3,1,1,"","SE2"],[3,1,1,"","__add__"],[3,1,1,"","__eq__"],[3,1,1,"","__init__"],[3,1,1,"","__mul__"],[3,1,1,"","__ne__"],[3,1,1,"","__pow__"],[3,1,1,"","__sub__"],[3,1,1,"","__truediv__"],[3,2,1,"","about"],[3,1,1,"","animate"],[3,1,1,"","append"],[3,1,1,"","arghandler"],[3,1,1,"","binop"],[3,1,1,"","clear"],[3,1,1,"","conjugation"],[3,1,1,"","det"],[3,1,1,"","extend"],[3,1,1,"","insert"],[3,1,1,"","interp"],[3,1,1,"","interp1"],[3,1,1,"","inv"],[3,2,1,"","isSE"],[3,2,1,"","isSO"],[3,1,1,"","ishom"],[3,1,1,"","ishom2"],[3,1,1,"","isrot"],[3,1,1,"","isrot2"],[3,1,1,"","isvalid"],[3,1,1,"","log"],[3,1,1,"","norm"],[3,1,1,"","plot"],[3,1,1,"","pop"],[3,1,1,"","print"],[3,1,1,"","printline"],[3,1,1,"","prod"],[3,1,1,"","reverse"],[3,2,1,"","shape"],[3,1,1,"","simplify"],[3,1,1,"","stack"],[3,1,1,"","strline"],[3,1,1,"","theta"],[3,1,1,"","unop"]],"spatialmath.pose3d":[[12,0,1,"","SE3"],[9,0,1,"","SO3"]],"spatialmath.pose3d.SE3":[[12,2,1,"","A"],[12,1,1,"","Ad"],[12,1,1,"","Alloc"],[12,1,1,"","AngVec"],[12,1,1,"","AngleAxis"],[12,1,1,"","CopyFrom"],[12,1,1,"","Delta"],[12,1,1,"","Empty"],[12,1,1,"","Eul"],[12,1,1,"","EulerVec"],[12,1,1,"","Exp"],[12,2,1,"","N"],[12,1,1,"","OA"],[12,2,1,"","R"],[12,1,1,"","RPY"],[12,1,1,"","Rand"],[12,1,1,"","Rt"],[12,1,1,"","Rx"],[12,1,1,"","Ry"],[12,1,1,"","Rz"],[12,1,1,"","Trans"],[12,1,1,"","TwoVectors"],[12,1,1,"","Tx"],[12,1,1,"","Ty"],[12,1,1,"","Tz"],[12,1,1,"","UnitQuaternion"],[12,1,1,"","__add__"],[12,1,1,"","__eq__"],[12,1,1,"","__init__"],[12,1,1,"","__mul__"],[12,1,1,"","__ne__"],[12,1,1,"","__pow__"],[12,1,1,"","__sub__"],[12,1,1,"","__truediv__"],[12,2,1,"","a"],[12,2,1,"","about"],[12,1,1,"","angdist"],[12,1,1,"","angvec"],[12,1,1,"","animate"],[12,1,1,"","append"],[12,1,1,"","clear"],[12,1,1,"","conjugation"],[12,1,1,"","delta"],[12,1,1,"","det"],[12,1,1,"","eul"],[12,1,1,"","eulervec"],[12,1,1,"","extend"],[12,1,1,"","insert"],[12,1,1,"","interp"],[12,1,1,"","interp1"],[12,1,1,"","inv"],[12,2,1,"","isSE"],[12,2,1,"","isSO"],[12,1,1,"","ishom"],[12,1,1,"","ishom2"],[12,1,1,"","isrot"],[12,1,1,"","isrot2"],[12,1,1,"","isvalid"],[12,1,1,"","jacob"],[12,1,1,"","log"],[12,2,1,"","n"],[12,1,1,"","norm"],[12,2,1,"","o"],[12,1,1,"","plot"],[12,1,1,"","pop"],[12,1,1,"","print"],[12,1,1,"","printline"],[12,1,1,"","prod"],[12,1,1,"","reverse"],[12,1,1,"","rpy"],[12,2,1,"","shape"],[12,1,1,"","simplify"],[12,1,1,"","stack"],[12,1,1,"","strline"],[12,2,1,"","t"],[12,1,1,"","twist"],[12,2,1,"","x"],[12,2,1,"","y"],[12,1,1,"","yaw_SE2"],[12,2,1,"","z"]],"spatialmath.pose3d.SO3":[[9,2,1,"","A"],[9,1,1,"","Alloc"],[9,1,1,"","AngVec"],[9,1,1,"","AngleAxis"],[9,1,1,"","Empty"],[9,1,1,"","Eul"],[9,1,1,"","EulerVec"],[9,1,1,"","Exp"],[9,2,1,"","N"],[9,1,1,"","OA"],[9,2,1,"","R"],[9,1,1,"","RPY"],[9,1,1,"","Rand"],[9,1,1,"","Rx"],[9,1,1,"","Ry"],[9,1,1,"","Rz"],[9,1,1,"","TwoVectors"],[9,1,1,"","UnitQuaternion"],[9,1,1,"","__add__"],[9,1,1,"","__eq__"],[9,1,1,"","__init__"],[9,1,1,"","__mul__"],[9,1,1,"","__ne__"],[9,1,1,"","__pow__"],[9,1,1,"","__sub__"],[9,1,1,"","__truediv__"],[9,2,1,"","a"],[9,2,1,"","about"],[9,1,1,"","angdist"],[9,1,1,"","angvec"],[9,1,1,"","animate"],[9,1,1,"","append"],[9,1,1,"","arghandler"],[9,1,1,"","binop"],[9,1,1,"","clear"],[9,1,1,"","conjugation"],[9,1,1,"","det"],[9,1,1,"","eul"],[9,1,1,"","eulervec"],[9,1,1,"","extend"],[9,1,1,"","insert"],[9,1,1,"","interp"],[9,1,1,"","interp1"],[9,1,1,"","inv"],[9,2,1,"","isSE"],[9,2,1,"","isSO"],[9,1,1,"","ishom"],[9,1,1,"","ishom2"],[9,1,1,"","isrot"],[9,1,1,"","isrot2"],[9,1,1,"","isvalid"],[9,1,1,"","log"],[9,2,1,"","n"],[9,1,1,"","norm"],[9,2,1,"","o"],[9,1,1,"","plot"],[9,1,1,"","pop"],[9,1,1,"","print"],[9,1,1,"","printline"],[9,1,1,"","prod"],[9,1,1,"","reverse"],[9,1,1,"","rpy"],[9,2,1,"","shape"],[9,1,1,"","simplify"],[9,1,1,"","stack"],[9,1,1,"","strline"],[9,1,1,"","unop"]],"spatialmath.quaternion":[[15,0,1,"","Quaternion"],[10,0,1,"","UnitQuaternion"]],"spatialmath.quaternion.Quaternion":[[15,2,1,"","A"],[15,1,1,"","Alloc"],[15,1,1,"","Empty"],[15,1,1,"","Pure"],[15,1,1,"","__add__"],[15,1,1,"","__eq__"],[15,1,1,"","__init__"],[15,1,1,"","__mul__"],[15,1,1,"","__ne__"],[15,1,1,"","__pow__"],[15,1,1,"","__sub__"],[15,1,1,"","__truediv__"],[15,1,1,"","append"],[15,1,1,"","arghandler"],[15,1,1,"","binop"],[15,1,1,"","clear"],[15,1,1,"","conj"],[15,1,1,"","exp"],[15,1,1,"","extend"],[15,1,1,"","inner"],[15,1,1,"","insert"],[15,1,1,"","isvalid"],[15,1,1,"","log"],[15,2,1,"","matrix"],[15,1,1,"","norm"],[15,1,1,"","pop"],[15,1,1,"","reverse"],[15,2,1,"","s"],[15,2,1,"","shape"],[15,1,1,"","unit"],[15,1,1,"","unop"],[15,2,1,"","v"],[15,2,1,"","vec"],[15,2,1,"","vec_xyzs"]],"spatialmath.quaternion.UnitQuaternion":[[10,2,1,"","A"],[10,1,1,"","Alloc"],[10,1,1,"","AngVec"],[10,1,1,"","Empty"],[10,1,1,"","Eul"],[10,1,1,"","EulerVec"],[10,1,1,"","OA"],[10,1,1,"","Pure"],[10,2,1,"","R"],[10,1,1,"","RPY"],[10,1,1,"","Rand"],[10,1,1,"","Rx"],[10,1,1,"","Ry"],[10,1,1,"","Rz"],[10,1,1,"","SE3"],[10,1,1,"","SO3"],[10,1,1,"","Vec3"],[10,1,1,"","__add__"],[10,1,1,"","__eq__"],[10,1,1,"","__init__"],[10,1,1,"","__mul__"],[10,1,1,"","__ne__"],[10,1,1,"","__pow__"],[10,1,1,"","__sub__"],[10,1,1,"","__truediv__"],[10,1,1,"","angdist"],[10,1,1,"","angvec"],[10,1,1,"","animate"],[10,1,1,"","append"],[10,1,1,"","clear"],[10,1,1,"","conj"],[10,1,1,"","dot"],[10,1,1,"","dotb"],[10,1,1,"","eul"],[10,1,1,"","exp"],[10,1,1,"","extend"],[10,1,1,"","increment"],[10,1,1,"","inner"],[10,1,1,"","insert"],[10,1,1,"","interp"],[10,1,1,"","interp1"],[10,1,1,"","inv"],[10,1,1,"","isvalid"],[10,1,1,"","log"],[10,2,1,"","matrix"],[10,1,1,"","norm"],[10,1,1,"","plot"],[10,1,1,"","pop"],[10,1,1,"","qvmul"],[10,1,1,"","reverse"],[10,1,1,"","rpy"],[10,2,1,"","s"],[10,2,1,"","shape"],[10,1,1,"","unit"],[10,2,1,"","v"],[10,2,1,"","vec"],[10,2,1,"","vec3"],[10,2,1,"","vec_xyzs"]],"spatialmath.spatialvector":[[16,0,1,"","SpatialAcceleration"],[17,0,1,"","SpatialF6"],[18,0,1,"","SpatialForce"],[19,0,1,"","SpatialInertia"],[20,0,1,"","SpatialM6"],[21,0,1,"","SpatialMomentum"],[22,0,1,"","SpatialVector"],[23,0,1,"","SpatialVelocity"]],"spatialmath.spatialvector.SpatialAcceleration":[[16,2,1,"","A"],[16,1,1,"","Alloc"],[16,1,1,"","Empty"],[16,1,1,"","__add__"],[16,1,1,"","__init__"],[16,1,1,"","__sub__"],[16,1,1,"","append"],[16,1,1,"","clear"],[16,1,1,"","cross"],[16,1,1,"","extend"],[16,1,1,"","insert"],[16,1,1,"","isvalid"],[16,1,1,"","pop"],[16,1,1,"","reverse"],[16,2,1,"","shape"]],"spatialmath.spatialvector.SpatialF6":[[17,1,1,"","dot"]],"spatialmath.spatialvector.SpatialForce":[[18,2,1,"","A"],[18,1,1,"","Alloc"],[18,1,1,"","Empty"],[18,1,1,"","__add__"],[18,1,1,"","__init__"],[18,1,1,"","__sub__"],[18,1,1,"","append"],[18,1,1,"","clear"],[18,1,1,"","dot"],[18,1,1,"","extend"],[18,1,1,"","insert"],[18,1,1,"","isvalid"],[18,1,1,"","pop"],[18,1,1,"","reverse"],[18,2,1,"","shape"]],"spatialmath.spatialvector.SpatialInertia":[[19,2,1,"","A"],[19,1,1,"","Alloc"],[19,1,1,"","Empty"],[19,1,1,"","__add__"],[19,1,1,"","__init__"],[19,1,1,"","__mul__"],[19,1,1,"","__rmul__"],[19,1,1,"","append"],[19,1,1,"","clear"],[19,1,1,"","extend"],[19,1,1,"","insert"],[19,1,1,"","isvalid"],[19,1,1,"","pop"],[19,1,1,"","reverse"],[19,2,1,"","shape"]],"spatialmath.spatialvector.SpatialM6":[[20,1,1,"","cross"]],"spatialmath.spatialvector.SpatialMomentum":[[21,2,1,"","A"],[21,1,1,"","Alloc"],[21,1,1,"","Empty"],[21,1,1,"","__add__"],[21,1,1,"","__init__"],[21,1,1,"","__sub__"],[21,1,1,"","append"],[21,1,1,"","clear"],[21,1,1,"","dot"],[21,1,1,"","extend"],[21,1,1,"","insert"],[21,1,1,"","isvalid"],[21,1,1,"","pop"],[21,1,1,"","reverse"],[21,2,1,"","shape"]],"spatialmath.spatialvector.SpatialVector":[[22,1,1,"","__add__"],[22,1,1,"","__init__"],[22,1,1,"","__neg__"],[22,1,1,"","__sub__"],[22,1,1,"","isvalid"],[22,2,1,"","shape"]],"spatialmath.spatialvector.SpatialVelocity":[[23,2,1,"","A"],[23,1,1,"","Alloc"],[23,1,1,"","Empty"],[23,1,1,"","__add__"],[23,1,1,"","__init__"],[23,1,1,"","__sub__"],[23,1,1,"","append"],[23,1,1,"","clear"],[23,1,1,"","cross"],[23,1,1,"","extend"],[23,1,1,"","insert"],[23,1,1,"","isvalid"],[23,1,1,"","pop"],[23,1,1,"","reverse"],[23,2,1,"","shape"]],"spatialmath.twist":[[6,0,1,"","Twist2"],[14,0,1,"","Twist3"]],"spatialmath.twist.Twist2":[[6,2,1,"","A"],[6,1,1,"","Alloc"],[6,1,1,"","Empty"],[6,2,1,"","N"],[6,2,1,"","S"],[6,1,1,"","SE2"],[6,1,1,"","Tx"],[6,1,1,"","Ty"],[6,1,1,"","UnitPrismatic"],[6,1,1,"","UnitRevolute"],[6,1,1,"","__eq__"],[6,1,1,"","__init__"],[6,1,1,"","__mul__"],[6,1,1,"","__ne__"],[6,1,1,"","__truediv__"],[6,2,1,"","ad"],[6,1,1,"","append"],[6,1,1,"","clear"],[6,1,1,"","exp"],[6,1,1,"","extend"],[6,1,1,"","insert"],[6,1,1,"","inv"],[6,2,1,"","isprismatic"],[6,2,1,"","isrevolute"],[6,2,1,"","isunit"],[6,1,1,"","isvalid"],[6,2,1,"","pole"],[6,1,1,"","pop"],[6,1,1,"","printline"],[6,1,1,"","prod"],[6,1,1,"","reverse"],[6,2,1,"","shape"],[6,1,1,"","skewa"],[6,2,1,"","theta"],[6,1,1,"","unit"],[6,2,1,"","v"],[6,2,1,"","w"]],"spatialmath.twist.Twist3":[[14,2,1,"","A"],[14,1,1,"","Ad"],[14,1,1,"","Alloc"],[14,1,1,"","Empty"],[14,2,1,"","N"],[14,1,1,"","RPY"],[14,1,1,"","Rand"],[14,1,1,"","Rx"],[14,1,1,"","Ry"],[14,1,1,"","Rz"],[14,2,1,"","S"],[14,1,1,"","SE3"],[14,1,1,"","Tx"],[14,1,1,"","Ty"],[14,1,1,"","Tz"],[14,1,1,"","UnitPrismatic"],[14,1,1,"","UnitRevolute"],[14,1,1,"","__eq__"],[14,1,1,"","__init__"],[14,1,1,"","__mul__"],[14,1,1,"","__ne__"],[14,1,1,"","__truediv__"],[14,1,1,"","ad"],[14,1,1,"","append"],[14,1,1,"","clear"],[14,1,1,"","exp"],[14,1,1,"","extend"],[14,1,1,"","insert"],[14,1,1,"","inv"],[14,2,1,"","isprismatic"],[14,2,1,"","isrevolute"],[14,2,1,"","isunit"],[14,1,1,"","isvalid"],[14,1,1,"","line"],[14,2,1,"","pitch"],[14,2,1,"","pole"],[14,1,1,"","pop"],[14,1,1,"","printline"],[14,1,1,"","prod"],[14,1,1,"","reverse"],[14,2,1,"","shape"],[14,1,1,"","skewa"],[14,2,1,"","theta"],[14,1,1,"","unit"],[14,2,1,"","v"],[14,2,1,"","w"]],spatialmath:[[24,3,0,"-","geom2d"],[25,3,0,"-","geom3d"]]},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","property","Python property"],"3":["py","module","Python module"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"]},objtypes:{"0":"py:class","1":"py:method","2":"py:property","3":"py:module","4":"py:attribute","5":"py:function"},terms:{"0":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"00":[3,5,9,12],"0000":[7,10,13,15,35,41],"000000":[3,5,9,12],"00000000000000":[3,5,9,12],"0000000000000002":[3,5,9,12],"0000000000000004":[3,5,9,12],"00000000000001":35,"0000000e":[3,5,9,12],"000000e":[3,5,9,12],"0001":[12,26],"001":28,"002":28,"0059":28,"007573":13,"009":35,"0096":9,"01":28,"0100":10,"0125":12,"0161":35,"0167":14,"0172219678978514":[0,24],"018":[9,12,28],"0191":28,"0198":[9,12,28],"02":28,"021006":35,"0223":10,"0241":[10,33,41],"0250":10,"027":9,"0304":[10,15],"0343":10,"0355":28,"037":[9,12,28],"03884":13,"0396":[0,24],"0424":35,"0436":28,"0491":35,"05":[26,28],"0528":28,"0587":[9,12,28,41],"0594":[9,12,28],"0686":[3,5,9,12],"068925":14,"0747":10,"0749":10,"0753":10,"077525":14,"0788v1":28,"08":34,"0831":41,"0893":28,"09":24,"0943951023931953":35,"0954":41,"0978":[9,12,28],"0993":10,"0998":28,"1":[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,31,33,34,35,36,37,41],"10":[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,27,28,29,34,35,41],"100":[26,28,30,34,41],"1001":10,"1003":13,"1007":35,"1060":10,"1064":12,"10986":6,"10ep":[8,25],"11":[3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,35],"1102e":[6,14],"1115":35,"1144":10,"12":[4,7,10,13,15,24,34,35,41],"120":[7,13],"123234e":[3,5,9,12],"124":[10,15,28],"1257":13,"12892":14,"12g":41,"13":[4,10,15,24,37],"1306":9,"1312":28,"1331":9,"1372":10,"1392":13,"14":[7,10,13,15,27],"1400":13,"1411":26,"141592653589793":37,"1416":31,"1417":28,"1436":10,"1469":[0,24],"1478":10,"1489":28,"1494":[9,10,12],"15":[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28],"152":34,"1538":[9,12],"1593":[9,12],"16":[3,5,6,7,9,10,12,13,14,15,28,36,37],"1611":10,"1632":[9,12,28],"16589613":[3,5,9,12],"17":[3,5,6,9,12,14,22,26,34,36,41],"171":[9,12,28],"18":[4,14,24],"180":[31,35],"180deg":35,"1821":28,"1822":6,"1826":[10,15,35,41],"18343":14,"1843":[10,15],"18471":14,"1848":[0,24],"188734":[3,5,9,12],"1898":[9,12,28,41],"19":26,"19019":14,"1909":[10,15],"192":28,"1938e":14,"19599":28,"1973":12,"1977":[9,10,12,28],"1987":[3,5,9,10,12,22,28,41],"1d":[3,5,8,9,12,15,25,28,31,33,34,35,41],"1e":[26,34,37],"1f":27,"1x1":[6,14,34],"1xm":33,"1xn":[16,18,21,22,23,33],"2":[0,1,4,7,8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31,33,34,35,36,37,39,41,42,43],"20":[0,1,3,5,8,9,10,11,12,14,15,24,25,26,28,33,35,37],"2010":22,"2017":[6,14,41],"2018":28,"2019":35,"2020":24,"2023":[6,12,14,26,28],"2032":12,"2041":13,"2054":12,"21":[0,24],"2117327177378023":10,"213":28,"21323":14,"2151":28,"2163":10,"2184":[9,12,28],"22":[22,41],"2204e":6,"2246467991473532e":36,"2246468e":[3,5,9,12],"2275":13,"2298":[0,24],"2353":[8,25],"236":34,"2392":12,"24":[0,10,15,24,35,41],"2433":6,"2434":10,"2474":10,"2494":13,"24956747275377":41,"25":[0,24],"2544":28,"2593":28,"2705":6,"2706":9,"2718":9,"2724":[0,24],"2751":[9,12,28],"2796":26,"28":[7,10,13,15,35],"283185307179586":[0,3,5,24],"28875":14,"2896":[9,12,28,41],"2911":35,"2955":[3,5,6,9,10,12,14,26,28,33,41],"29552021":[3,5,9,12],"2960":10,"2962":[9,12,28],"2989":[10,26],"299":41,"2\u03c0":37,"2d":[3,5,6,8,9,12,15,24,25,28,30,31,32,33,34,38,39,41,42],"2f":27,"2pi":37,"2x":37,"2x1":33,"2x2":[0,3,6,24,26,33],"2xn":27,"3":[0,1,3,4,5,6,7,8,10,11,13,15,19,22,24,25,26,27,28,29,30,31,33,34,35,36,37,39,41,42,43],"30":[9,10,12,14,15,24,28,35,41],"3000000000000001":10,"3001":12,"3038":28,"3056":13,"30875":14,"309":34,"31":28,"3112":10,"313":[9,12],"314":14,"3156":[0,24],"317":34,"32":[7,13,15,41],"3267e":14,"32723":6,"3306690738754696e":28,"3333333333333335":[4,24],"33358":14,"33385":14,"3368":[9,12,28],"342":[9,12,28],"3429":10,"3429971702850176":[8,25],"3433":13,"3481":28,"3494":28,"35":28,"3526":12,"3536":35,"3593":14,"36":34,"3600":13,"3633":12,"3645":12,"3651":[10,15,35,41],"3667":12,"3714":14,"3785":[9,12,28],"3790":[10,15],"3811":10,"3825":[0,24],"3836":[9,12,28],"38485":14,"3875":[9,12,28],"3894":[10,12,41],"3980":10,"3d":[3,5,9,10,11,12,14,16,18,19,21,22,23,25,26,30,32,33,34,35,38,39,41,42],"3g":[3,5,9,12,26,28,34],"3x1":[8,25,33],"3x3":[5,6,9,19,26,28,33],"3xn":[8,10,15,25,27,29],"4":[0,3,4,5,6,7,8,9,10,11,12,13,14,15,24,25,26,27,28,30,31,33,34,35,36,37,41],"40":[27,29],"4041889":35,"4059":10,"4082":35,"4102":10,"4161":[10,26,28],"4183":28,"42":24,"421":34,"4224":[0,24],"423":28,"4234654354756045":[9,12],"424":28,"43025":14,"4327":12,"435":14,"44":[7,13,41],"441":[9,12,28],"45":[26,28],"4549":[10,15],"457":[10,33,41],"458":28,"459156":[3,5,9,12],"4603":35,"4606":41,"4698":[9,12,28],"4772":[10,15],"477225575051661":[7,10,13,15,35],"4794":[9,12],"479425538604203":36,"48648":14,"4885":12,"4901":[0,24],"4944":10,"4975":12,"4d":35,"4f":35,"4g":[26,28],"4x1":35,"4x4":[3,5,6,8,9,10,12,14,15,25,28,33,35],"4xn":15,"5":[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,36,37,41],"50":[26,27,28,29,30],"5000":35,"51477":14,"5152":[10,15],"52311":14,"5307":[10,15],"53291":6,"5389":35,"54":41,"5403":26,"5431":35,"546":34,"5463024898437905":36,"5476":14,"5477":[10,15,35,41],"548":12,"5498":28,"5535":[0,24],"5561":12,"5583":12,"56":[7,13],"5646":[3,5,9,12,41],"5679e":14,"5707963267948963":[10,15],"5708":[31,41],"5737":12,"575":34,"5757":12,"5791":[10,15],"5793":[0,24],"5831":14,"59":34,"5946":26,"595":34,"5984":28,"5994":12,"5g":6,"5x":37,"6":[0,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,28,30,31,33,34,35,36,37,41],"60":[10,15,35,41],"603":34,"604":36,"606":36,"6065":[10,15],"6131":[9,12,28],"6151":13,"6156":28,"616":28,"6172":13,"618":[0,24],"6232":28,"625":[0,24],"6311":[0,24],"6313":28,"633":34,"6337":[9,12,28],"6364":28,"6420":35,"64953":14,"65":13,"654":34,"6667":[4,24],"6775":14,"6867":28,"693":28,"6939":[10,15],"6949":28,"6958":13,"6d":[22,42],"6f":[3,5,9,12],"6x1":[3,5,8,9,12,15,25,26,28],"6x6":[12,14,19,26,28],"6xn":[16,18,21,22,23],"7":[0,3,5,6,7,9,10,12,13,14,15,24,31,34,35,36,41],"70":[10,15],"7001":[0,24],"7006":[10,15],"7071":[10,15,26,28,35],"7135":28,"7146":[9,12,28],"72":41,"72188":14,"7251":13,"7264":28,"7303":[10,15,35,41],"7477":[0,24],"75":[0,24],"7518":12,"7574":26,"758":41,"7599":13,"7678":35,"7691":28,"7713":[9,12,28],"7728":[10,15],"7756e":14,"778":28,"7782":28,"7799":[0,24],"7853981633974317":[0,24],"7853981633974483":[0,24,28],"7854":[10,15],"7866":[3,5,9,12],"7896":[10,15],"7935":12,"7938":10,"8":[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,25,26,28,34,35,37,41],"80":[10,15],"8059":12,"8138":[9,12,28],"8165":35,"8185":6,"82":[28,34],"8213":28,"82259":14,"8235":[8,25],"8253":[3,5,9,12,41],"8276":[0,24],"8297":12,"83":22,"832159566199232":[7,13],"8376":35,"8384":28,"8415":26,"849":34,"8609":12,"8610":10,"866":41,"8775825618903728":36,"8776":[9,12],"8802":28,"8826":[9,12,28],"888":34,"8882":28,"88985":14,"89":41,"9":[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,34,37],"90":[3,10,31,35],"9013":10,"9021":[9,12,28],"9046":28,"9093":[10,26,28],"90deg":35,"9115":10,"91701":14,"9211":[10,12,41],"9216":[9,12,28],"924":34,"9254":[9,12,28],"9314":[3,5,9,12],"9315":13,"9326":28,"9332":28,"9363":[9,12,28,41],"938":34,"9394":10,"9397":[9,12,28],"94":22,"9447":[9,12],"9521":13,"9534":9,"9553":[3,5,6,9,10,12,14,26,28,33,41],"95533649":[3,5,9,12],"9564":[9,12,28],"9623":9,"968":14,"9689":10,"9752":[9,10,12,28],"9756":28,"9775":10,"9777":10,"9799":[0,24],"9801":[3,5,9,10,12,28,41],"9833":10,"9851":28,"98614323":[3,5,9,12],"9888":[9,10,12],"99":26,"9911":9,"9921":10,"995":28,"9965":41,"9972":10,"99977":14,"9999999999999997":[3,5,9,12],"\u03b2":[9,10,12,14,28],"\u03b3":28,"\u03b3d":28,"\u03b4":28,"\u03b5":[7,13],"\u03b8":[3,5,6,9,10,12,14,26,28,36],"\u03b81":3,"\u03b82":3,"\u03b8n":3,"\u03bb":[8,25],"\u03c0":[36,37],"\u03c01":[8,25],"\u03c02":[8,25],"\u03c03":[8,25],"\u03c3":[26,28],"\u03c3\u03b8":[26,28],"\u03c6":[9,10,12,28],"\u03c8":[9,10,12,28],"\u03c9":[9,10,12,26,28],"\u03c9\u03b8":[26,28],"\ud835\udeaa":[9,10,12,14,28],"\ud835\udeaad":28,"\ud835\udefe":[9,10,12,14],"abstract":[8,16,17,18,20,21,22,23,25,41,43],"boolean":[8,25],"case":[0,3,5,6,8,9,10,12,14,15,24,25,26,27,28,33,37,41],"class":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,31,39,42],"default":[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"do":[8,9,10,11,12,25,26,28,41],"export":[10,15],"final":[3,5,9,10,12,26,28,30,35],"float":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,19,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"function":[8,16,20,23,25,26,28,29,30,31,33,35,36,37,39,41,43],"import":[0,3,4,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,31,33,34,35,36,37,41],"int":[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,37,41],"long":[9,10,12,28,35],"new":[3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,27,28,29,30,41],"null":[3,5,9,10,12,14,30,41],"pl\u00fccker":[8,41],"return":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"s\u03b8":[26,28],"static":[3,5,6,8,9,10,11,12,14,15,25],"super":41,"throw":[9,10,12],"true":[0,1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],"var":[34,36],"while":[26,28,41],A:[0,1,3,4,5,6,7,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,41],As:41,At:41,By:[3,5,9,12,26,28,35,41],For:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,35,41],IN:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],If:[1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],In:[0,3,5,9,10,12,24,27,28,36,41],Is:[8,25,30],It:[9,12,26,28,36,41],No:[3,5,9,12],Not:41,One:36,The:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,35,37,41,43,44],There:[3,5,7,8,9,10,12,13,15,25,28,35,41],These:[26,28,30,33,35,41],To:[0,9,12,24,26,28,41],Will:30,_0:[0,24],_1:[9,12],_2:[9,12],_3:27,_:[26,28,41],__add__:[3,5,7,9,10,12,13,15,16,18,19,21,22,23,41],__annotations__:30,__dict__:30,__doc__:30,__eq__:[3,5,6,8,9,10,12,14,15,25,41],__iadd__:41,__imul__:[15,41],__init__:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,30],__ipow__:41,__isub__:41,__itruediv__:41,__len__:4,__module__:30,__mul__:[3,5,6,7,8,9,10,12,13,14,15,19,25,41],__ne__:[3,5,6,8,9,10,12,14,15,25,41],__neg__:[16,18,21,22,23],__or__:[8,25],__pow__:[3,5,9,10,12,15,41],__radd__:[3,5,9,12,41],__repr__:[30,41],__rmul__:[3,5,6,8,9,12,14,15,19,25,41],__rsub__:[3,5,9,12,41],__str__:[0,4,30],__sub__:[3,5,7,9,10,12,13,15,16,18,21,22,23,41],__truediv__:[3,5,6,9,10,12,14,15,41],__weakref__:30,__xor__:[8,25],_a:[3,5,8,9,15,25,28],_ansimatrix:41,_b:[12,26,28],_bgcolor:41,_binop:[3,5,8,9,15,25],_color:41,_constcolor:41,_draw:30,_format:41,_generic_alia:[3,5,6,9,10,12,14,15,16,18,19,21,23],_import:[3,5,8,9,15,25],_indexcolor:41,_io:[26,28,35],_l:[8,25],_line:30,_quiver:30,_r:[8,25],_rotcolor:41,_suppress_smal:41,_suppress_tol:41,_text:30,_transcolor:41,_type_:[0,24],_x:26,_y:26,ab2m:33,ab:[26,36],abc:[3,5,9,10,12,15,16,18,21,23,41],abcmeta:[8,25],about:[3,5,6,9,10,12,14,19,26,28,35,41],abov:[3,5,6,8,9,10,12,14,15,25,26,27,28,31,33,35,36,41],absolut:[33,37],abstractmethod:[8,25],abstractstaticmethod:[8,25],acceler:[19,22,28,41,42,43],accept:[3,5,8,9,15,25,30,36,41],access:[8,25],accord:[3,5,8,9,10,12,15,25,30,31],account:[5,9,10,12,35],aco:[9,10,12,35],act:[18,28],action:[6,14],actual:33,ad:[4,6,12,14,24,34,41],add:[3,4,5,8,9,10,12,15,16,18,19,21,22,23,24,25,26,28,29,41],addit:[3,4,5,8,9,12,19,22,24,25,27,41],adjac:34,adjoint:[6,12,14,22,26,28],adjust:[3,5,9,10,12,41],after:[9,12,28,36],again:[36,41],against:[4,8,24,25],algebra:[3,5,6,9,12,14,26,28,33],algorithm:[11,22,25,26,34,41],align:[6,8,14,19,25,26,27],all:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,41,43],alloc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],allow:[3,5,8,9,15,25,31,41],along:[3,5,6,8,9,10,11,12,14,25,26,27,28,34],alpha:[9,27],alreadi:[4,11,24,25],also:[7,8,9,10,12,13,25,26,28,30,31,41,44],altern:[14,26,27,28],alwai:[3,4,5,8,9,10,15,24,25,31,33,34,35,41],ambigu:[5,9],amount:[26,28],an:[0,1,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,41,44],anaglyph:28,analysi:35,analyt:28,angdiff:37,angdist:[9,10,12],angl:[3,5,6,9,10,12,14,15,26,28,35,37,39,41],angle_mean:37,angle_std:37,angle_wrap:37,angleaxi:[9,12],angular:[3,5,9,10,12,14,26,28,31,35,37],angvec2r:[9,10,12,28],angvec2tr:[12,28],angvec:[3,5,9,10,12,15,28,41],angvelxform:28,angvelxform_dot:28,ani:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,28,29,31,33,35,36,37,41],anim:[3,4,5,9,10,12,24,26,28,38,39,41],animate2:30,anoth:[1,24],ans:12,answer:35,anthoni:28,anymor:28,api:34,appear:[26,28,36,41],append:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,33,41],appli:[3,5,6,9,12,14,28,30,33,41],applic:[3,5,41],approach:[9,10,12,14,28],appropri:[3,5,8,9,15,25,41],approxim:[0,12,24,28,34],april:35,ar:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,30,33,34,35,36,37,41],arang:[3,5,41],arbitrari:[8,25],arbitrarili:28,area:[0,4,24,27,34],arg:[3,5,6,8,9,10,12,14,15,25,27,30],argcheck:34,arghandl:[3,5,8,9,15,17,25],arguent:[8,25],argument:[0,1,3,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,33,34,35,36,37,38,39,41],argumetn:27,arithmet:[3,5,9,10,12,15,26,28,34,41],arm:28,around:[4,24,35],arrai:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,41],arrang:[11,25],array2str:34,array_lik:[0,1,3,4,5,6,8,9,10,11,12,14,15,19,24,25,26,27,28,29,30,31,33,34,35,37,41],arraylik:[0,24],arrow:[26,27,28,30,41],artist:[0,8,24,25,27,29,30],arxiv:28,asm:35,aspect:[0,24,27,29],assert:31,assertionerror:41,assertmatrix:31,assertsmatrix:31,assertvector:31,assign:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],assum:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,31,34,35,36],astyp:41,attach:[26,28],attempt:[8,16,18,19,21,22,23,25,31],attribut:[4,24,30,36],attributeerror:36,augment:[3,5,6,9,12,14,26,28,33],augument:[26,28],author:24,autom:22,autosc:41,autoscal:30,avail:[9,12,41,44],averag:[12,28],avoid:27,ax:[1,4,8,9,10,11,12,14,19,24,25,26,27,28,29,30,41],axes3d:[26,28,29,30],axes3dsubplot:[28,29],axes_log:[11,25,26,28],axessubplot:[26,27],axi:[3,5,6,8,9,10,12,14,15,25,26,27,28,29,35,41],axislabel:[26,28],axissubscript:[26,28],b:[3,5,7,8,9,11,12,14,15,25,26,27,28,29,33,37,41],back:[3,5,9,12,36,37,41],backend:[28,41],background:[28,41],bad:[0,3,5,8,9,12,15,24,25,26,28,33],balanc:41,bar:[14,27,37],base:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],baseposelist:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],baseposematrix:[3,5,9,12,41],basetwist:[6,14,41],baz:27,bbox:[4,24,27],becaus:[8,25,41],becom:[3,5,9,12,26,28,34],been:[3,4,5,9,12,24,33,41],befor:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],beforehand:[3,5,9,12],begin:[5,8,12,25,26,28,33,41],beginn:22,behav:30,behavior:[8,25],behaviour:[8,25],being:[30,41],belong:[3,5,6,9,12,14,26,28,33,41],below:[3,5,9,10,12,22,26,27,28],benefit:41,beta:9,between:[3,5,8,9,10,12,14,25,26,27,28,30,34,35,39,41],beyond:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],bf:[9,10,12,26,28,33],bigger:28,binari:[3,5,8,9,15,25,41],binop:[3,5,8,9,15,17,25],black:27,block:[26,28],blue:[26,27,28,41],bmatrix:[8,25],bodi:[3,5,6,8,9,10,12,13,14,16,18,19,20,21,22,23,25,26,28,35,41],bold:41,book:37,bool:[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],both:[3,5,7,8,9,10,12,13,15,16,18,21,22,23,25,27,35,37,41],bottom:[3,5,9,12,26,27,28,33],bound:[4,8,9,11,24,25,26,27,28,29,31,35,37],boundari:[4,24],box:[4,24,27,29],bracket:[10,15,34,41],bresenham:34,brief:4,broadcast:[10,41],bs:27,bug:28,build:[27,29],bullet:[9,10,12],bundl:[10,41],c:[1,8,11,24,25,27,29,30,37,41],c_:33,call:[3,5,6,7,8,9,10,12,13,14,15,25,26,28,34,35,41],callabl:[3,5,6,8,9,14,15,25,31,34],cambridg:[6,14],camera:[8,9,10,12,14,25,28,41],can:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,35,36,37,41,44],cannot:[1,24,31],care:[31,41],carefulli:[26,28],caus:[3,5,9,12,26,28],caylei:35,cc:[5,12,33],ccc:33,cccc:33,center:27,centr:[0,4,19,24,27,29],centroid:[4,24],certain:22,ch:28,chang:[9,10,12,28,35],channel:44,charact:37,characterist:22,check:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,28,33,35,38,39,41],chi:29,choos:[28,35],circ:41,circl:[3,4,5,9,10,12,24,26,27,28,35,37],circleddash:37,circular:37,circumfer:[0,24,27,29],circumferec:[27,29],classic:41,classmethod:[0,1,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25],clear:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],click:43,clip:[3,5,9,10,12],clockwis:[4,24,34],close:[0,3,4,5,9,12,24,26,27,28],closest:[8,25,26],closest_to_lin:[8,25],closest_to_point:[8,25],cloud:26,co:[3,5,9,10,12,15,28,36,37,41],code:[0,3,4,5,9,12,24,26,27,28,29,34,41],coeffic:[0,24],coeffici:[0,3,5,7,9,10,11,12,15,24,25,26,28,35],coeffient:[0,24],col:31,colatitud:37,collect:[3,5,8,9,10,12,15,16,18,21,23,25,29,41],collect_ab:36,color:[0,3,5,8,9,10,12,24,25,26,27,28,29,30,41],column:[3,4,5,8,9,10,11,12,15,16,18,21,22,23,24,25,26,27,28,29,31,33,34,35,37,41],columnwis:[33,41],colun:34,colvec:37,com:[26,28,44],combin:[3,5,6,9,10,12,14,15,41],comma:34,common:[8,25,27,36,39,41],commonperp:[8,25],commut:[3,5,6,9,12,14,22],compact:[3,5,9,12,26,28,34,41],compar:[6,14,26,31,41],comparison:35,compat:[3,5,8,9,12,15,25,26,28],complet:[26,28,30],compon:[3,5,6,8,9,12,14,25,26,28,30,33,35],composit:[3,5,6,8,9,10,12,14,19,25,41],compound:[3,5,6,9,12,14],comprehens:[8,25,41],compris:[6,26,28,41],comput:[0,3,5,6,8,9,10,11,12,14,15,22,24,25,26,27,28,29,34,35,38,39],concret:[16,18,21,22,23],conda:30,cone:29,confid:[27,29],configur:5,conj:[7,10,13,15],conjug:[3,5,7,9,10,12,13,15,35],conjunct:41,connect:19,consecut:[9,10,12,14,27,41],consid:[3,5,6,7,8,9,10,12,14,15,16,18,19,21,23,25,26,28,33,35],consider:41,consol:41,constant:[3,5,9,12,34,36,41],constraint:[10,41],construct:[3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,30,41],constructor:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],contain:[0,1,3,4,5,8,9,10,11,12,14,24,25,26,27,28,33,34,41],contains_point:[4,24],contains_polygon_point:[1,24],content:28,control:[6,12,14,26,27,28,41],conveni:41,convent:[3,5,9,10,12,14,28,35],convers:[3,5,8,9,12,15,25,26,28],convert:[3,5,6,8,9,12,13,14,15,25,26,28,31,33,34,35,36,37,41],convertfrom:[3,5,8,9,15,25],coordin:[0,3,5,6,8,9,10,11,12,14,24,25,26,27,28,30,34,35,39,41],copi:[4,8,12,14,17,24,25],copyfrom:12,cork:[6,12,14,26,28],corkep:24,corner:27,correct:[0,24,31],correspond:[3,5,6,8,9,10,12,14,25,26,28,30,33,35,41],cosin:[35,36],could:[5,9,31,41],count:[8,17,25],counter:[4,24],covari:[8,9,25,26,27,28,29,31,34,35,37],covert:[39,41],crawler:44,creat:[0,1,3,4,5,6,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,33,35,36,37],creation:28,criteria:[3,5,8,9,15,25],crm:[16,20,23],cross:[16,20,22,23,37,41],cs577:7,cs:7,cuboid:[8,25,29],current:[3,5,8,9,11,12,25,26,27,28,29,30,41],cursori:[3,5,8,9,15,25],cyan:28,cylind:29,cz:[8,11,25],d1:[26,35],d2:[26,28,35],d:[7,8,11,12,13,22,25,27,28,29],dam:28,dash:27,data:[3,5,9,12,26,28,34],datatyp:31,date:41,ddvec:28,deal:41,decid:[5,9],decor:[8,25],decreas:37,def:[8,25],defaault:[26,30],defin:[1,3,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,30,31,33,35,41],definit:34,deflat:[4,24],deg:[3,5,9,10,12,14,26,28,31,35,41],degre:[3,5,9,10,12,14,26,28,31,41],degsym:28,del:41,delim:35,delimet:35,delimit:[10,15,34,41],delta2tr:[12,28],delta:[12,28],delta_i:[12,28],delta_x:[12,28],delta_z:[12,28],denomin:10,denorm:[3,5,9,12],denot:[9,12,41],depend:[3,5,6,8,9,10,12,14,15,16,18,19,20,21,23,25,26,28,41],deprec:[8,9,12,25,28],deriv:[28,34],describ:[0,3,5,8,9,10,11,12,13,24,25,27,41],descript:[3,5,9,12,13,29,41],design:41,desir:31,destin:35,det:[3,5,9,12,28,33,36],detail:[9,10,12],determin:[0,3,5,9,12,24,26,28,33,36],deviat:37,diag:[29,34],diagon:[28,33],dict:[26,28,41],diff:[3,5,9,10,12,15],differ:[3,5,7,8,9,10,12,13,15,16,18,21,22,23,25,26,27,28,34,37,41],differenti:[12,26,28],differnc:37,dim:[26,27,28,29,30,31,34,41],dimens:[3,5,6,9,12,14,26,27,28,29,30,31,41],dimension:[3,5,9,12,41],dir:[8,25],direct:[3,5,6,8,9,10,12,14,25,26,28,29],directli:[6,41],disabl:[3,5,9,12,28],discuss:41,dispar:28,displac:[6,10,12],displai:[3,5,9,10,12,26,28,30],dist:10,distanc:[5,6,8,9,10,12,14,25,26,27,28,35],distance_line_lin:[1,24],distance_line_point:[1,24],distinguish:[10,15],distribut:[10,35],divis:[3,5,9,10,12],dmat:[28,34],docstr:41,document:[28,41],doe:[4,7,8,13,24,25,28,36,37,41],doesn:30,dofi:35,doi:35,domain:[9,10,12,35],don:[31,37],done:[33,41],dot:[8,10,15,17,18,21,25,26,28,35],dotb:[10,35],doubl:[10,15,35,41],down:29,dq1:[7,13],dq2:[7,13],dq:[7,13],draw:[4,24,26,27,28,29,30,34],drawn:[11,25,27,28,29,30,41],dtype:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,28,29,31,35,37,41],du:35,dual:[42,43],dual_quaternion:7,dualquaternion:[7,13],due:[9,10,12],dunder:41,dvec:[16,20,23,28],dx:34,dynam:[22,28],e2h:33,e:[0,6,9,10,12,14,15,24,27,29,33],e_0:[0,24],e_1:[0,24],e_2:[0,24],e_3:[0,24],e_4:[0,24],e_5:[0,24],each:[3,4,5,6,8,9,10,12,14,15,22,24,25,26,27,28,29,31,33,35,41],easi:41,easiest:44,edg:[4,24],edgecolor:[4,24],edu:7,effect:[12,28],effector:12,effici:[3,5,9,12,26,28],eg:[8,25,27,28,31,41],either:[3,5,7,8,9,10,12,15,25,27,41],el:[26,28],element:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,30,31,33,34,35,36,37,41],elementwis:[3,5,6,9,10,12,14,15,41],elemn:31,ell:27,ellips:[24,27,29,42,43],ellipsoid:29,elment:41,els:[9,12,29],embu:43,empti:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],en:7,enabl:41,enclos:[4,24],encod:[10,15,26,28,35],encount:6,end:[1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,33,34],endless:[26,28,30],endpoint:[1,24],enforc:41,engin:22,enlarg:43,ensur:[3,5,9,12,28,33,35,41],entir:[35,41],enumer:41,ep:[1,8,10,11,15,24,25,26,28,33,35,37,41],epsilon:[0,7,24],epsilon_1:[0,24],epsilon_2:[0,24],epsilon_3:[0,24],epsilon_4:[0,24],epsilon_5:[0,24],eq:[3,5,8,9,10,12,25,31],equal:[3,4,5,6,8,9,10,12,14,15,19,24,25,27,29,35,41],equival:[0,3,5,6,8,9,10,12,13,14,15,24,25,26,28,33,35,41],eref:[0,24],error:[9,10,12,26,35],eta:[0,24],etc:[27,29,41],eth:28,ethanead:[26,28],ethz:28,euclidean:[1,3,5,9,12,24,33,41],eul2jac:28,eul2r:[9,10,12,28],eul2tr:[28,41],eul:[3,5,9,10,12,28,41],euler:[3,5,9,10,12,15,28,35,41],eulervec:[9,10,12,15],even:[8,25,41],everi:[3,5,8,9,12,25,30,31,41],exager:28,exampl:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,33,34,41],except:[3,5,8,9,15,25,28,31,35,41],exclud:17,execut:30,exist:[11,25,30,41],exp2jac:28,exp2r:28,exp2tr:28,exp:[3,5,6,9,10,12,14,15,28,41],expand_dim:[27,29],expect:[31,41],explicitli:[10,15,28],expon:[3,5,9,12,35,41],exponenti:[6,9,10,12,14,15,26,28,39,41],expr:36,express:[5,6,10,15,26,28,36,41],extend:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,29,41],extra:[8,25,34,41],extract:[26,28,41],ey:[28,33],f6:[42,43],f:[16,20,23,29,34,35,41],face:[8,25,29],facecolor:[4,24,27,29],factor:27,fail:[11,25],fals:[0,3,4,5,6,8,9,10,12,14,15,24,25,26,27,28,29,30,31,33,35,36,37,41],familiar:41,faster:[34,37],featherston:22,ffmpeg:30,fig:34,figur:[26,28,41],file:[3,5,6,9,10,12,13,14,26,28,30,31,34,35,36,41],fill:[0,4,24,27,29],fillcolor:27,find:[8,25,26],finger:[9,10,12,14,28],finit:[3,5,9,10,12,26,28],first:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,33,34,35,37,41],fit:[0,24],fix:[3,5,9,12,16,20,23,26,28,35],flag:27,flexibl:31,flip:[4,9,12,24,28,29],flo:28,float64:[31,41],fmt:[3,5,9,12,26,27,28,34,35],fold:37,follow:[6,14,27,41],fontsiz:27,foo:[14,27],forc:[16,17,19,20,22,23,41,42,43],foreground:41,forg:30,form:[1,3,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,31,33,35,41,43],format:[1,3,5,6,8,9,12,15,24,25,26,27,28,31,34,35,41],formula:28,forum:44,forward:[9,10,12,14,28],four:[8,25,41],frac:[10,13,15,34,37],fraction:27,frame:[3,5,9,10,12,14,19,26,28,30,33,35,41],freenod:44,frequent:41,from:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41,43],fromperimet:[0,24],frompoint:[0,24],full:28,func:31,further:41,g:[4,24,27,34],g_:34,gallego:28,gamma:[9,10,12,14,28],gauss1d:34,gauss2d:34,gaussian:34,gb:28,gca:[27,28],gener:[0,1,8,9,24,25,26,28,29,31,33,35,36,37,41],geodes:[9,10,12],geom2d:24,geom3d:[14,25],geometri:42,get:44,getmatrix:31,getunit:[31,34],getvector:31,github:44,give:[26,27,41],given:[1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,34,35,37,41],glass:28,good:44,googl:44,gradient:[1,24],graphic:[4,24,38,39],great:[3,5,9,10,12,26,28,35],greater:[10,15],greek:36,green:[3,4,5,9,10,12,24,26,27,28,30,41],grei:41,grey_50:41,grid:[27,29,34,41],gripper:[9,10,12,14,28],group:[3,5,6,9,10,12,14,26,28,44],guarante:[8,9,10,12,25,26,28,41],gui:[26,28],guid:22,guillermo:28,h2e:33,h:[27,33,34,41],h_:34,ha:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,28,30,31,33,34,35,36,37,41],half:35,hamilton:[10,15,35,41],hand:35,handl:[3,5,6,8,9,12,14,25,41],handout:7,hang:44,hardwir:[8,25],hat:[7,8,9,12,25,26,28],have:[4,6,9,10,12,14,15,22,24,26,27,28,29,30,31,33,41],head:[26,27,28,37],height:[27,29],held:[3,5,9,12],helic:14,help:44,helper:[3,5,8,9,15,25],here:7,hessian:34,heta:14,heta_i:14,hierarchi:[41,43],high:[27,41],hire:[0,3,4,5,9,12,24,26,27,28,29,34],hold:[3,5,9,10,12,14,41],homgen:27,homogen:[1,3,5,6,8,9,12,14,24,25,26,27,28,33,39,41],homogon:[26,28],homtran:33,horizont:28,horizontalalign:27,hostedtoolcach:[6,14,34,36],howev:41,html5:30,html:30,http:[7,26,28,44],human:[30,35],huynh:35,hyperspher:35,i:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,27,28,33,34,37,41],iastat:7,icp2d:26,icp:26,ideal:[1,24],ident:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,33,35,41],ie:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,31,33,41],ieee:22,ignor:[9,12,16,18,19,21,22,23,28,34],imag:[27,35],imatrix:41,implement:[3,5,6,8,9,14,15,25,34,35],implicit:41,implicitli:[0,24],includ:[4,24,27,39,41],inclus:[34,41],incompat:[3,5,9,12],inconsist:31,incorrect:[3,5,6,7,8,9,10,12,14,15,16,18,19,21,23,25,31,37],increas:37,increment:10,index:[8,17,25,27,40,41],indexerror:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],indic:[8,22,25,27,28,31,39,41],induc:28,inequ:[3,5,9,12],inertia:[0,24,41,42,43],infin:[6,14],infinit:[8,25],infinitesim:12,infinitessim:28,inflat:[4,24],inform:41,infti:37,inherit:[8,10,22,25,41,43],initi:[3,4,5,8,9,10,12,15,24,25,26,27,28,29,30,34,35],inner:[10,15,35],input:[3,5,6,8,9,10,12,13,14,15,25,26,27,28,29,31,33,34,35,37,41],insert:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],insid:[4,24,26,28],inspect:[3,5,8,9,15,25],instal:[30,36,41],instanc:[0,1,3,5,6,8,9,10,12,14,15,16,18,19,20,21,22,23,24,25,27,30,41],instantan:28,instead:[3,5,8,9,12,15,25,26,28],integ:[8,10,15,25,31,34,35,41],intellig:28,intepret:[10,15,37],inter:[3,5,6,9,10,15,16,18,19,21,22,23],intercept:[1,24],interest:28,interior:[0,24],intern:[0,1,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,41],interp1:[3,5,9,10,12],interp:[3,5,9,10,12],interpol:[3,5,9,10,12,26,28,35],interpret:[9,29],intersect:[0,1,4,8,11,24,25,41],intersect_plan:[8,25],intersect_polygon___lin:[1,24],intersect_seg:[1,24],intersect_volum:[8,25],intersectingplan:[8,25],interv:[0,3,12,24,26,28,29,30,35],introduct:39,inv:[3,5,6,9,10,12,14,41],invalid:[14,19,26,28],invers:[3,5,6,9,10,12,14,26,27,28,29,33,41],invert:[3,5,9,12,26,27,28,29],invok:[3,5,8,9,15,25,30,41],involv:41,ipynb:28,isequ:[8,25,35],isey:33,ishom2:[3,5,9,12,26,28],ishom:[3,5,9,12,26,28],isinst:[3,5,9,12],isinteg:31,isintersect:[8,25],islistof:31,ismatrix:31,isnumberlist:31,isparallel:[8,25],isprismat:[6,14],isr:[26,28,33],isrevolut:[6,14],isrot2:[3,5,9,12,26,28,33],isrot:[3,5,9,12,26,28,33],iss:[3,5,9,12],isscalar:31,isscalarlist:31,isskew:33,isskewa:33,isso:[3,5,9,12],issu:44,issymbol:36,isunit:[6,14],isunittwist2:37,isunittwist:37,isunitvec:37,isvalid:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25],isvec:26,isvector:31,isvectorlist:31,iszero:37,iszerovec:37,item:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],iter:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,41],its:[0,3,5,9,10,12,24,26,27,28,31,33,35,41],itself:[10,15],j0:34,j:[27,28,34,35],j_:34,jacob:12,jacobian:[12,26,28,34],join:[1,8,19,24,25,44],js:[10,15],jul:24,jupyt:[28,36],just:[35,41],justifi:27,k:[8,25,27,31,34],keep:[4,24,41],kei:22,keyword:[31,41],know:[0,24],known:[10,28],kwarg:[0,1,3,4,5,6,8,9,10,11,12,14,24,25,26,27,28,29,30],kwd:[8,25],l1:[8,11,25],l2:[8,11,25],l:[8,11,25,37],lab:28,label:[3,5,9,12,26,27,28,29,30],label_po:27,lam:[8,25],lambda:[3,5,8,9,15,25,31],langl:[10,15],languag:41,larg:35,largest:10,last:[0,3,4,5,6,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,33,34,35,41],latex:36,latitud:37,latter:[0,7,24,41],lb:27,lbrt:27,lbwh:27,lead:[0,24,35],lectur:28,left:[3,5,6,8,9,10,12,14,15,19,22,25,27,28,33,35,37],len:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,33,41],length:[3,5,9,10,12,15,26,28,29,30,31,35,37,41],less:[33,35,37],let:41,letter:[27,36,41],level:39,li:[0,1,8,24,25],lib:[6,14,34,36],lie:[3,5,6,9,12,14,26,27,28,33,34],lift:5,light:36,like:[3,5,6,8,9,10,12,14,15,16,18,21,22,23,25,28,30,31,34,43],limit:[8,25,28,30],linalg:[28,37],line1:[8,25],line2:[1,4,8,24,25],line2d:[8,25,27],line3:[8,11,14,25,41],line3dcollect:29,line:[0,3,4,5,6,9,10,11,12,13,14,24,25,26,27,28,30,31,34,35,36,41,42,43],linear:[3,5,9,10,11,12,25,28],linearli:26,linepoint:[11,25],linesegment2:[2,24],linestyl:[8,25],link:[3,5,9,10,12,19],linspac:[3,5,9,12,34],list1:[3,5,8,9,15,25],list:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,37,43,44],listcomp:[6,14],ll:12,ln:[10,15],log:[3,5,9,10,12,15,37],logarithm:[3,5,6,9,10,12,14,15,26,28,41],logic:41,loop:[8,25,26,28,30,41],lost:33,low:[8,25,27,39],lrbt:27,lt:27,ltrb:27,lvert:[9,10,12],lynch:[6,14],m6:[42,43],m:[1,3,4,5,6,8,9,10,12,14,15,16,19,20,23,24,25,26,31,33,34,35,36,37,41],m_r:[8,25],made:[3,5,8,9,15,25,35],magazin:22,magnitud:[6,10,14,15,26,28,35,37],mai:[3,5,6,9,10,12,14,28,35,41],mail:44,main:[26,28],make:34,mani:[3,5,9,10,12,26,27,28,39,41],manipul:[26,27,28,35,37,39,41],map:[10,12,26,28,33,35,41],mappingproxi:30,mapsto:34,march:35,margin:[4,9,10,12,24],mark:27,marker:[27,28],mass:19,mat:[0,3,5,9,12,13,16,20,23,24,26,27,28,29,34,39,41],match:31,math:[3,5,7,9,10,12,13,15,26,35,36,37,43],mathbb:[0,8,10,15,24,25,27,28,34,37,41],mathbf:[8,12,25,26,28],mathemat:[39,41],mathit:27,mathr:41,mathrm:[39,41],matlab:[3,5,8,9,10,12,25,26,28,34],matplotlib:[1,4,8,24,25,27,28,29,30,41],matplotlub:27,matric:[26,28,33,35,39,41],matrix:[0,6,7,8,10,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,41,42,43],mavt:28,max:[5,12,14,26,28,30],max_it:26,mayb:[8,25],mbox:12,mean:[33,34,36,37,41],mechan:[3,5,8,9,15,25,35],meet:[3,5,8,9,15,25],member:[3,5,9,12,17,31],membership:[3,5,9,12],merit:41,meshgrid:34,metaclass:[8,25],meth:[8,25],method:[3,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,25,30,35,41],metric:[9,10,12,35],metrix:33,millisecond:[26,28,30],min:[5,12,14,28,30],min_delta_err:26,minim:[5,10,26,28,41],minimum:[8,25,37],minu:22,mirror:[7,13],mix:41,mixtur:41,mobil:[9,10,12,14,28],mode:[26,28,35,37],modern:[6,14],modifi:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],modul:[5,6,9,10,13,14,26,31,33,34,35,40,41],moment:[4,6,8,14,24,25,34],momentum:[22,41,42,43],more:[3,5,8,9,10,12,15,25,26,27,28,29,41],most:[6,9,10,13,14,26,34,35,41],motion:[3,5,6,9,12,13,14,16,20,23,26,28,37,41],move:[3,4,5,9,10,12,16,23,24,26,28,30,41],movi:[26,28,30],mp4:[26,28,30],mp:10,mpq_point:34,msg:31,mu:[27,34],much:41,multipl:[3,5,6,7,8,9,10,12,13,14,15,25,27,28,35,41],multipli:[10,12,15,22,28,35,41],multiplicand:[3,5,6,9,10,12,14,15,22],must:[4,6,9,10,12,14,15,24,26,28,30,31,34,35,41],mx1:33,mx:[1,24],mxm:33,my_abstract_staticmethod:[8,25],n:[0,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,37,41],name:[5,6,8,9,10,13,14,25,26,28,30,31,35,36,41],nameerror:[5,6,9,10,13,14,26,31,35],namespac:41,nativ:31,nd:[37,38,39],ndarrai:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],ne:[3,5,9,12,26,28],nearest:[8,25,26,37],necessari:35,need:[3,5,9,12,30,41],neg:[4,6,10,14,22,24,34,35,36,41],negat:[10,15,35],negative_on:36,negativeon:36,neighbor:26,nframe:[26,28,30],non:[8,25,26,28,35],none:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,37,41],nonetyp:36,norm:[3,5,6,7,9,10,12,13,14,15,26,28,33,35,37,41],normal:[3,5,9,10,11,12,15,25,26,28,35,37],normalis:[26,28],normsq:37,north:37,notat:[8,9,12,25,41],note:[3,4,5,8,9,10,12,15,22,24,25,28,31,41],notebook:[28,30],notimpl:[3,5,9,12],now:41,np:[0,3,4,5,8,9,10,12,14,15,24,25,26,27,28,29,31,33,34,35,37,41],nstep:28,nu:[12,27,28],number:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,34,37,41],numer:[3,5,8,9,10,12,15,25,36,38,39,41],numhess:34,numjac:34,numpi:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,28,31,33,34,35,37,41],numpyarrai:[3,5,8,9,15,25],nx1:33,nx3:[5,9,12,14],nx4:10,nxm:[3,5,9,12,33],nxn:[3,5,9,12,33],o:[9,10,12,28,31,41],oa2r:[9,10,12,28],oa2tr:28,oa:[9,10,12],objec3:14,object:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,35,36,39],occur:28,occurr:[8,25],octav:41,offset:[11,25,28],often:[10,15,41],ok:31,old:[9,12],omega:[6,9,10,12,14,28,33,37],omega_i:[8,12,25],omega_x:[8,12,25],omega_z:[8,12,25],onc:28,one:[0,3,4,5,6,7,8,9,10,12,13,14,15,24,25,26,27,28,29,35,36,37,41],ones:33,onli:[3,4,5,9,10,12,24,26,28,30,33,35,36,41],onlin:[22,41],onto:37,op2:[3,5,8,9,15,25],op:[3,5,8,9,15,25,41],open:[29,44],oper:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,28,33,36,37],operand:[3,5,6,8,9,10,12,14,15,25,35,41],opt:[6,14,34,36],optic:[9,10,12,14,28],optim:10,option:[0,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,23,24,25,26,27,28,29,30,31,34,35,36,37,41],order:[3,4,5,7,9,10,12,14,15,24,26,28,34,35,41],org:[7,28,35],orient:[0,3,5,9,10,12,24,28,29,35,39,41,42],origin:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,30,35,41],original_expr:36,origincolor:[26,28],origins:[26,28],ortho:[28,29,30],orthogin:37,orthogon:[3,5,9,10,12,26,28,33,37,41],orthonorm:[3,9,28,33],orthonorn:28,other:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,16,19,20,23,24,25,30,31,41,44],otherwis:[4,9,10,12,24,28,31],out:[28,31,41,44],outlin:[27,41],output:[3,5,8,9,12,15,25,31,37,41],outsid:[3,5,8,9,10,12,25,35],over:[3,4,8,12,24,25,28,41],overal:[0,24],overhead:41,overlaid:27,overlap:27,overload:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],overrid:28,p0:34,p1:[1,24,26,34],p2:[1,24,26],p:[0,1,4,6,7,8,9,10,11,12,13,14,24,25,26,27,28,33,34,41],p_p:[8,25],pack:33,packag:[6,10,14,15,30,34,36,39,41],page:40,pair:[4,7,10,15,24,27,35],parallel:[1,8,9,10,11,12,14,15,24,25,26,28,29,37,41],param:[19,28],paramet:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],parameter:[8,25],parametr:[8,25],parent:41,park:[6,14],parrallel:37,part:[3,5,9,10,12,13,15,22,26,28,33,35,37,41],partial:34,particular:[28,41],particularli:41,partit:33,pass:[0,1,3,4,5,8,9,11,12,14,15,24,25,26,27,28,29,31,35,41],patch:[4,24,27],path:[3,4,5,9,10,12,24,26,28,35],pathpatch:[4,24],pdf:[0,3,4,5,7,9,12,24,26,27,28,29,34],per:[3,5,7,9,12,13,14,27,28],perform:[3,4,5,6,8,9,10,12,14,15,24,25,35,41],perhap:41,perim:[0,24],perimet:[0,4,24,34],permut:[8,25],perpendicular:[8,25],persp:[28,30],perspect:[8,25],perturb:34,phi:[9,10,12,28],pi1:[8,11,25],pi2:[8,11,25],pi3:[11,25],pi:[0,3,5,8,9,10,11,12,15,24,25,28,35,36,37,41],pierc:[8,25],pitch:[3,5,9,10,12,14,28,41],pixel:[9,10,12,14,28],place:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,27,28,30],planar:[4,24,26],plane3:[8,11,25],plane:[5,8,25,41,42,43],plot:[0,1,3,4,5,8,9,10,11,12,24,25,26,27,28,29,30,39,41],plot_arrow:27,plot_box:27,plot_circl:27,plot_con:29,plot_cuboid:29,plot_cylind:29,plot_ellips:[0,24,27],plot_ellipsoid:29,plot_homlin:27,plot_point:27,plot_polygon:[4,24,27],plot_spher:29,plot_surfac:[11,25,29],plot_text:27,plot_wirefram:29,plotvol2:[0,4,24,26,27,29],plotvol3:[27,28,29],plt:41,plucker:[8,14,25,41],pm:10,pmatrix:[26,28],png:[0,3,4,5,9,12,24,26,27,28,29,34],po:[8,14,25,27],point:[0,1,4,6,7,8,11,13,14,24,25,26,27,28,29,33,34,35,41],pointdir:[8,25],pointnorm:[11,25],points2:[0,24],points2tr2:26,points2tr:26,points_join:[1,24],pole:[6,14,37],polgon:[42,43],polgyon:[4,24],poly3dcollect:29,polygon2:[0,4,24],polygon:[0,4,24,27,29,34],polylin:30,polymorph:[30,41],polynomi:[0,24],pop:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,41],pos2tr2:26,pose2d:[3,5,41],pose3d:[9,12,41],pose:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,29,30,33,39,42],posese3:41,posit:[0,10,24,27,28,29,35,39,41],possibl:41,power:[3,5,9,12,35,41],pp:[8,25],ppd:[8,25],pq:[4,8,24,25,34],pre:[8,25],precend:[8,25],premultipli:41,present:[8,25,41],pretti:36,prevent:[3,5,9,12,26,28],previou:[9,12],primit:[4,24,27,29,30],primsmat:6,princip:[8,25],print:[0,3,4,5,7,9,10,12,13,15,24,28,33,35,36,37,39,41],printf:35,printlin:[3,5,6,9,12,14,41],prismat:[6,14,26,28],procedur:10,process:31,prod:[3,5,6,9,10,12,14,15],prod_i:[3,5,6,9,12,14],product:[3,5,6,7,8,9,10,12,13,14,15,16,20,22,23,25,35,37,41],proj_typ:30,project:[8,25,28,29,30,37,44],proper:[3,5,9,12,26,28,33],properti:[0,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25],provid:[4,8,9,10,11,12,14,24,25,27,28,29,31,36,39,41],proxi:30,psi:[9,10,12,28,36],pure:[5,6,7,10,12,13,14,15,26,28,35,41],purpos:37,push:[9,10,12],put:[3,5,9,12,26,28],py:[6,14,34,36],pybullet:[10,15],pycon:[8,25],pyplot:[1,24,27,30],python3:[6,14,34,36],python:[3,5,6,9,12,14,26,28,31,34,36],q0:[10,35],q11:10,q1:[10,15,35],q2:[10,15,35],q2r:35,q2v:35,q:[4,5,6,7,8,10,13,14,15,24,25,28,34,35,36,39,41],q_0:36,q_1:[9,10,12,36],q_2:[9,10,12,36],q_3:36,q_4:36,q_5:36,q_:36,q_d:13,q_r:13,q_t:13,qa:35,qangl:35,qb:35,qconj:[10,15,35],qdot:[10,35],qdotb:[10,35],qey:35,qi:10,qinner:[10,15,35],qinv:10,qisequ:[10,15,35],qisunit:35,qlerp:28,qmatrix:[10,15,35],qn:[10,15],qnorm:[10,15,35,41],qp:[8,25],qposit:35,qpow:[10,15,35],qprint:[35,41],qpure:35,qqmul:[15,35,41],qrand:35,qslerp:[3,5,9,10,12,35],quadrant:28,quadrat:[0,24],quaterion:35,quaternion:[3,5,6,8,9,12,14,16,18,19,21,23,25,28,38,39,41,42,43],quick:[26,28],quit:28,quiver:30,qunit:35,quo:[3,5,9,10,12],quotient:[3,5,9,10,12],qv1:10,qv2:10,qv:10,qvmul:[10,35],r0:[26,28],r1:[3,9,26,28],r2:[3,9,41],r2q:35,r2t:33,r2x:28,r:[0,3,5,6,8,9,10,12,13,14,15,19,22,24,25,26,27,28,29,33,34,35,37,39,41],r_:[3,5,9,10,12,15,31,37],rad:[3,5,6,9,10,12,14,26,28,31],radian:[0,3,5,6,9,10,12,14,24,26,28,31,35,37],radii:[0,24,27],radiu:[4,24,27,29],radsimp:36,rais:[0,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,28,31,33,34,35,37,41],rand:[3,5,6,9,10,12,13,14,34,41],random:[3,5,9,10,12,14,27,34,35,41],rang:[3,5,9,10,12,14,26,28,29,35,37],rangl:[10,15],rate:[10,28,35],rather:[28,29,41],ratio:[0,24,26,27,28,29],rb:27,rc:28,rd_hs2018script:28,readabl:[30,35,41],real:[7,10,13,15,31,36,37,44],recent:[6,9,10,13,14,26,34,35,41],reciproc:[8,25],recommend:[8,25],recomput:28,reconsitut:35,rectangl:27,rectangular:[8,25],red:[27,28,29,41],refer:[6,7,8,9,10,12,14,15,22,25,26,28,30,31,33,35,37,39,41,42],referenc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],reflect:[4,24],regular:[7,13,41],rel:[12,14,19,26,28,30,41],relat:[9,12,41],relationship:28,releas:41,relev:41,remain:[9,12],remov:[3,5,6,8,9,10,12,14,15,16,17,18,19,21,23,25,41],removesmal:37,render:30,repeat:[3,5,9,12,26,28,30,35,41],replac:[4,24,36,41],replic:[4,24,41],repr:10,repres:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,30,35,37,39,41],represens:[7,13],represent:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,28,34,39,41],requir:[3,5,8,9,15,19,25,26,27,30,31,35,41],reshap:31,residu:33,resolut:[0,24,27,29],respect:[4,7,9,10,12,13,24,26,27,28,33,37,41],result:[3,5,6,8,9,10,12,14,15,16,18,19,20,21,22,23,25,26,28,33,34,37,41],ret:[3,5,8,9,15,25],retain:31,retur:33,revers:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26],revolut:[6,14,26,28],rgb:28,ri:[3,9],rich:41,right:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,25,27,28,33,35,37],rigid:[3,5,6,8,9,12,13,14,16,18,19,21,23,25,26,28,41],rigidbodi:5,ring:41,riski:[3,5,9,12],rn:[3,9],ro:27,robot:[6,9,10,12,14,22,26,27,28,35,41],robotdynamics2018:28,robust:[9,10,12],rodrigu:28,roll:[3,5,9,10,12,14,28,41],rot2:[26,33],rot2jac:28,rot:5,rotat:[3,5,6,9,10,12,13,14,15,16,18,21,23,26,28,33,35,37,39,41],roti:[28,41],rotvelxform:28,rotvelxform_inv_dot:28,rotx:[28,34,35,41],rotz:28,row:[3,5,8,9,10,12,14,25,26,28,31,33,34,37,41],rowsep:34,rpy2jac:28,rpy2r:[9,10,12,28,41],rpy2tr:28,rpy:[3,5,9,10,12,14,28,41],rsl:28,rt2m:33,rt2tr:33,rt:[12,27],rtotx:28,rtype:[5,6,28,31],rudimentari:33,rule:[10,15,41],run:[26,28,30],runblock:[8,25],runnabl:41,rvc3:34,rvc:37,rvert:[9,10,12],rviz:[26,28,41],rx:[3,5,6,9,10,12,14,15,27,41],ry:[3,5,9,10,12,14,41],rz:[9,10,12,14,41],s10851:35,s1:[6,14],s2:[6,14],s:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,27,28,30,33,34,35,36,37,39,41],s_i:[6,14],safeti:41,sai:[26,28],same:[0,3,4,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,35,37,41],sarabandi:35,save:28,scalar:[3,5,6,8,9,10,11,12,14,15,25,27,29,31,34,35,37,41],scalartyp:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,26,28,29,31,35,37],scale:[0,3,5,9,12,14,24,27,29,33,35],scatter:30,scienc:22,screen:28,screw:[14,26,28],se2:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,41],se2arrai:26,se3:[3,5,6,8,9,10,12,13,14,15,16,18,19,21,22,23,25,28,29,41],se:[3,8,9,10,13,15,25,26,28,30,33,34,37,39,41,42,43],sealso:[8,25],search:40,sec:28,second:[5,6,8,9,10,12,14,15,25,26,28,31,35,37],section:[6,12,14,26,28,41],see:[3,5,8,9,10,12,22,25,31,41],seealso:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],seem:28,segment:[1,4,8,24,25,42,43],select:28,self:[0,1,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,30],semant:41,semicolon:34,sep:22,separ:[8,25,34,41],sequenc:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,31,39,41],sequenti:[4,24,27,28],seri:[22,30],set:[0,3,4,5,8,9,10,12,15,24,25,26,27,28,29,30,31,34,37,41],set_aspect:30,set_proj_typ:30,set_xlabel:30,set_xlim:30,set_ylabel:30,set_ylim:30,set_zlabel:30,set_zlim:30,settabl:5,setup:30,sever:[7,9,10,12,13,28],shape:[0,3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,24,25,27,31,41],share:41,shift:[4,24,28],shortest:[3,5,9,10,12,26,28,35],should:[4,8,24,25],show:[26,41],shown:[26,28,41],si1:19,si2:19,si:14,side:[8,25,29],sidewai:[9,10,12,14,28],sigma_:37,sign:[4,24,35],signatur:[9,12],signific:41,signsimp:36,silent:[3,5,9,10,12],sim:13,similar:[8,25,28,34,41],similarli:41,simpl:41,simpli:[9,10,12],simplif:[3,5,9,12,36],simplifi:[3,5,9,12,36],sin:[3,5,9,10,12,15,28,36,37,41],sinc:[8,9,10,12,25,41],sine:36,singelton:[3,5,8,9,15,25],singl:[0,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,31,34,35,41],singleton:31,singular:28,site:[6,14,34,36],six:[8,25],size:[8,25,26,27,28,29,31],sk:[8,25],skew:[3,5,6,8,9,12,14,25,26,28,33],skewa:[6,14,26,28,33],skx:28,slam:41,slerp:[3,5,9,10,12,28],slice:[8,25,41],slope:34,small:[34,37,41],smaller:27,smalleset:[4,24],smallest:[4,8,24,25,35],smb:[6,14],smtb:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25],smuserlist:[22,43],sn:14,so2:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],so3:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],so3arrai:[9,10,12],so:[4,5,6,10,12,14,24,26,27,28,30,33,34,35,36,39,41,42,43],soecifi:35,solut:[3,5,9,12,26,28],some:[8,25,27,28,36,41],sometim:[6,9,12,14],sort:[8,17,25],sourc:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37],south:37,space:[3,5,6,8,9,12,14,16,17,18,19,20,21,23,25,33,34,35,39,41,42],spatial:[3,5,7,9,12,13,26,28,42],spatialacceler:[16,19,20,22,23,41],spatialf6:[16,17,18,19,20,21,22,23,41],spatialforc:[17,18,19,21,22,41],spatialinertia:[19,22,41],spatialm6:[16,19,20,22,23,41],spatialmath:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],spatialmomemtum:19,spatialmomentum:[17,18,19,21,22,41],spatialvector:[16,17,18,20,21,22,23,41],spatialveloc:[16,19,20,22,23,41],special:[28,33],specif:41,specifi:[0,3,5,6,8,9,10,12,13,14,24,25,27,28,31,35,41],sphere:29,spheric:[3,5,9,10,12,28],spin:[26,28],split:33,springer:[6,12,14,22,26,28],sq:37,sqrt:[10,15,35,36,37],squar:[26,29,33,34,35,37],stack:[3,5,8,9,12,15,25,28],stand:31,standard:[3,5,8,9,15,25,36,37],star:27,start:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,30,34],state:10,staticmethod:[8,25],stdout:[3,5,9,12,26,28,35],step:[3,5,9,10,12,26,28,30],stop:[8,25],stopiter:28,store:[7,13,33],str2arrai:34,str:[0,3,4,5,6,9,10,12,14,26,27,28,30,31,34,35,36,37,41],straightest:35,stride:29,string:[3,4,5,6,9,12,26,27,28,30,34,35,41],strline:[3,5,9,12],structur:[3,5,9,12],style:[8,25,26,27,28,35,41],sub:[26,28],subclass:[3,5,8,9,12,15,16,18,20,21,22,23,25,41],subject:10,submatrix:[9,10,12,26,28,33,41],subplot:[27,29],subscript:[26,28,36],subtract:[3,5,9,10,12,15,16,18,21,22,23,37,41],subtyp:22,success:[9,10,12,14,27,28],succinct:[3,5,9,12],succinctli:41,suitabl:27,sum:[3,5,7,9,10,12,13,15,16,18,21,22,23,26,33,35,37],sum_:[4,24,34],summari:[3,4,5,9,12,13],sun:24,superclass:[3,5,6,8,9,10,12,14,15,16,17,18,19,20,21,22,23,25],support:[3,5,6,7,8,9,10,12,13,14,15,19,22,25,26,28,31,32,33,35,36,37,38,42],suppress:[26,28,34,41],suppress_smal:34,supress:41,surfac:29,survei:35,susbstitut:27,sxyz:35,sy:35,sym:41,symbol:[3,5,9,12,27,28,31,38,39],symmetr:[0,3,5,6,8,9,12,14,24,25,26,28,33],symmetri:33,sympi:[3,5,6,9,12,14,19,26,28,31,33,35,36,37,41],system:28,t0:[26,28],t1:[5,12,26,28],t2:[5,12,26,28],t2r:33,t:[3,4,5,6,8,9,12,13,14,24,25,26,27,28,29,30,31,33,34,37,39,41],t_i:[3,5,9,12],tabl:22,tabular:[3,5,9,12,26,28,41],tag:41,tail:27,take:[3,5,9,10,12,26,28,33],taken:[8,11,25,27,28,29,35,41],tan:[9,10,12,36,37],tangent:36,tb_optpars:41,ten:5,tension:41,term:[9,10,12,28],test:[0,1,3,4,5,6,8,9,10,11,12,14,15,16,18,19,21,22,23,24,25,26,28,31,33,35,36,37,41],text:[3,5,9,12,26,27,28,30,41],textarg:27,textcolor:[26,27,28],textiowrapp:[26,28,35],th:[4,9,10,12,24,34],than:[3,5,9,10,12,15,28,29,33,34,35,37,41],thei:[1,4,8,9,10,12,13,24,25,28,36,41,43],them:[27,30,41,43],theta:[0,3,5,6,9,10,12,14,24,26,28,34,36,37,41],theta_i:[12,28,37],theta_p:28,theta_r:28,theta_x:[12,28],theta_z:[12,28],thi:[0,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,30,31,33,34,35,36,37,39,41],thick:[27,28],thing:[26,28],third:[1,3,5,9,12,24,41],thoma:35,those:[3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,28,30,41],though:41,three:[3,5,9,10,11,12,14,15,25],threepoint:[11,25],threshold:41,through:[14,28],ti:[5,12],time:[0,4,8,10,12,15,16,20,23,24,25,28,31,34,41,44],tkagg:28,tn:[5,12],tol:[1,8,10,11,15,24,25,26,28,33,35,37],toler:[1,8,10,11,15,24,25,26,28,33,35,37],toolbox:[3,5,9,12,26,28,41,43],top:[0,24,27,33],torqu:18,tr2adjoint2:26,tr2adjoint:28,tr2angvec:28,tr2delta:[12,28],tr2eul:[9,10,12,28],tr2jac2:26,tr2jac:[12,28],tr2pos2:26,tr2r:33,tr2rpy:[9,10,12,28],tr2rt:33,tr2x:28,tr2xyt:26,traceback:[6,9,10,13,14,26,34,35,41],tradjoint2:26,trajectori:41,tran:12,tranim:[3,5,9,10,12,28],tranimate2:[3,5,9,12,26],transform:[3,4,5,6,7,8,9,12,13,14,24,25,30,38,39],transformaton:41,transforms2d:[3,5],transforms3d:[9,34],transformsnd:[3,5,9],transit:41,transl2:[6,26,28,41],transl:[5,12,14,26,28,41],translat:[3,5,6,9,10,12,13,14,16,18,21,23,26,28,33,37,41],transpar:27,transpos:[3,9,12,22],trexp2:[6,26,28],trexp:[3,5,9,12,14,26,28],triangl:[4,24,27],trinterp2:[3,5,9,12,26,28],trinterp:[3,5,9,12,26,28],trinv2:26,trinv:[12,28],trlog2:[3,5,9,12,26],trlog:[3,5,9,12,26,28],trnorm2:[3,5,9,12,26],trnorm:[3,5,9,12,26,28],trot2:[26,33,41],troti:[12,14,28],trotx:[12,14,28,33,41],trotz:[12,14,28,41],trplot2:[3,5,9,12,26,30,41],trplot:[3,5,9,10,12,28,30,41],trprint2:[3,5,9,12,26,28],trprint:[3,5,9,12,26,28],tupl:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,25,26,27,28,29,30,31,33,34,35,37,41],tw:[6,14],twice:27,twist2:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,41],twist3:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,41],twist:[3,5,8,9,10,12,15,16,18,19,21,23,25,26,28,33,37,39,41,42,43],two:[1,3,5,6,7,8,9,10,11,12,13,14,15,22,24,25,26,28,33,35,41],twolin:[11,25],twoplan:[8,25],twopoint:[1,24],twovector:[9,12],tx:[5,6,12,14],ty:[5,6,12,14],type:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35,36,37,41],typeerror:[6,9,10,12,14,16,18,19,21,22,23,31],typevar:[8,9,25,26,28,29,31,35,37],typic:41,typl:[3,5,8,9,15,25],tz:[12,14],u:[30,37],uaternion:35,ultim:41,unari:[3,5,8,9,15,22,25],unchang:[3,5,9,12,26,28],underli:41,underpin:41,underscor:36,uniform:[3,27],uniformli:[10,35],union:[3,5,6,8,9,10,12,14,15,16,18,19,21,23,25,28,29,31,35,37],uniqu:[4,5,6,8,9,10,12,14,24,25,33,35],unit:[1,3,5,6,7,8,9,11,12,14,15,24,25,26,28,31,33,34,35,37,39,41,42,43],unitdualquaternion:[7,13],uniti:[7,13],unitprismat:[6,14],unitq:35,unitquaternion:[3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,25,41],unitrevolut:[6,14],unittwist2:37,unittwist2_norm:37,unittwist:37,unittwist_norm:37,unitvec:37,unitvec_norm:37,unlik:[7,13,31],unnari:[3,5,8,9,15,25],unnorm:[3,5,9,12,26,28],unop:[3,5,8,9,15,17,25],unspecifi:31,until:[26,28,30],unusu:[26,28],up:30,updat:[4,10,24,30],uppercas:41,upsid:41,upward:29,uq:10,us:[0,1,3,4,5,7,8,9,10,11,12,15,24,25,26,27,28,29,30,31,34,35,36,37,41],usag:[8,25],user:41,userlist:[3,5,8,9,10,12,15,16,18,21,23,25,41],utf:[26,28,35],util:[31,38,39],uvw:28,uw:[8,25],v1:[16,18,20,21,22,23,35,37],v2:[16,18,20,21,22,23,35,37],v2q:35,v:[3,5,6,8,9,10,12,14,15,16,19,20,22,23,25,26,28,30,31,33,35,36,37,41],v_1:33,v_2:33,v_3:33,v_4:33,v_5:33,v_6:33,v_x:[8,10,12,15,25,33,35],v_y:[8,10,12,15,25,33,35],v_z:[8,10,12,15,25,33,35],valid:[3,5,6,8,9,10,12,14,15,16,18,19,21,22,23,25,26,28,31,33,35,41],validit:[26,28],valu:[3,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,31,33,34,35,37],valueerror:[0,3,4,5,6,7,8,9,10,12,14,15,16,18,19,21,23,24,25,26,28,31,33,34,35,37,41],valueerrror:[16,18,21,22,23],valuesep:34,variabl:[36,41],varianc:34,varieti:41,variou:[3,5,9,12],vec3:10,vec:[0,6,7,8,10,12,13,14,15,16,18,20,21,22,23,24,25,28,31],vec_xyz:[10,15],vector:[3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,23,25,26,27,28,30,31,33,34,35,38,39,42],vector_diff:37,vectoris:34,vee:[8,25],vehicl:[5,28],veloc:[10,12,16,20,22,26,28,35,41,42,43],verifymatrix:31,version:[9,10,12,26,28,30,41],vertex:[4,24],vertic:[0,1,3,4,5,8,9,15,24,25,27,34],vex:[26,28,33,34],vexa:[26,28,33],vi:[16,18,21,22,23,35],via:41,video:30,view:28,vision:[6,12,14,26,28,41],vn:[16,18,21,22,23],volum:[8,11,22,25,26,28,29,30],vp:35,vvmul:35,vx:[10,15,35],vy:[10,15,35],vz:[10,15,35],w:[6,8,9,10,12,14,25,26,27,28,30,35],wa:[4,24,31,35,41],wai:[27,35,41,44],wait:[28,30],we:[0,10,14,24,26,27,28,33,37,41,44],weak:30,web:7,weight:36,weird:[26,28],well:[8,25,41],wh:27,what:[4,24,26,28,31,33,37,41],when:[3,4,5,8,9,10,12,15,19,24,25,26,28,35,41],whenev:[8,25],where:[0,3,5,6,7,8,9,10,12,13,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,37,41],wherea:41,whether:[1,6,8,14,24,25,26,28,31,33,35,36,37],which:[0,1,3,4,5,6,8,9,10,11,12,14,15,22,24,25,26,27,28,29,30,31,33,34,35,41,43],white:34,whose:[3,4,5,8,9,10,12,15,16,18,20,21,22,23,24,25,41],width:[3,5,9,12,26,27,28,41],wiki:7,wikipedia:[7,10,15],wildcard:31,window:[26,28],wirefram:29,wise:[3,5,6,9,10,12,14,16,18,21,22,23,35,41],wish:41,within:[0,6,9,12,14,24,41],word:[3,5,9,12,26,28],work:[8,12,25,28,41],workspac:41,world:[10,26,28,30,35],would:[8,14,25,41],wrap:37,wrap_0_2pi:37,wrap_0_pi:37,wrap_mpi2_pi2:37,wrap_mpi_pi:37,wrapper:36,write:[3,5,9,12,26,28,30,41],written:[7,10,13,15,26,28,35],wtl:[26,28],wwith:9,x1:[3,5,9,10,12,14],x2:[3,5,9,10,12,14],x2r:28,x2tr:28,x64:[6,14,34,36],x:[0,3,4,5,6,7,8,9,10,12,13,14,15,16,18,19,21,22,23,24,25,26,27,28,29,30,31,34,35,36,41],x_:34,x_i:[4,24,34],xi:[3,5,9,12,14],xlim:27,xmax:[4,8,11,24,25,26,27,28,30],xmin:[4,8,11,24,25,26,27,28,30],xn:[3,5,9,10,12,14],xrang:[5,12,14,27,29],xs:30,xy:[0,5,24],xyt2tr:26,xyt:[5,26],xyz:[9,10,12,14,28,35],y:[0,1,3,4,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,30,34,35,36,41],y_:34,y_i:[4,24,34],yaw:[3,5,9,10,12,14,28,41],yaw_se2:12,yellow:27,yellow_2:41,yet:[7,13,41],yezzi:28,yield:35,ylim:27,ymax:[4,8,11,24,25,26,27,28,30],ymin:[4,8,11,24,25,26,27,28,30],you:[3,5,9,12,41,44],your:44,yrang:[5,12,14,27,29],ys:30,yxz:[3,5,9,10,12,14,28],z:[3,5,9,10,12,14,26,27,28,29,30,35,41],zero:[1,3,5,6,8,9,10,12,14,15,16,18,19,21,23,24,25,26,27,28,31,33,34,35,36,37,41],zip:41,zmax:[8,11,25,28,30],zmin:[8,11,25,28,30],zrang:[12,14,29],zs:30,zurich:28,zyx:[3,5,9,10,12,14,28,41],zyz:[3,5,9,12,28]},titles:["2D ellipse","2D line","2D line segment","SO(2) matrix","2D polgon","SE(2) matrix","se(2) twist","Dual Quaternion","3D line","SO(3) matrix","Unit quaternion","Plane","SE(3) matrix","Unit dual quaternion","se(3) twist","Quaternion","Spatial acceleration","Spatial F6","Spatial force","Spatial inertia","Spatial M6","Spatial momentum","Spatial vector","Spatial velocity","Geometry","Geometry","Transforms in 2D","2D graphics","Transforms in 3D","3D graphics","Animation support","Argument checking","Graphics and animation","Transforms in ND","Numerical utility functions","Quaternions","Symbolic computation","Vectors","Function reference","Spatial Maths for Python","Indices","Introduction","spatialmath","Class reference","Support"],titleterms:{"2":[3,5,6],"2d":[0,1,2,4,26,27,43],"3":[9,12,14],"3d":[8,28,29,43],"6d":43,"class":[41,43],"function":[34,38],acceler:16,anim:[30,32],argument:31,capabl:41,check:31,comput:36,constructor:41,creat:41,displai:41,dual:[7,13],ellips:0,environ:41,f6:17,forc:18,geometri:[24,25,43],graphic:[27,29,32,41],group:41,implement:41,indic:40,inertia:19,introduct:41,level:41,like:41,line:[1,2,8],list:41,low:41,m6:20,math:[39,41],matlab:41,matrix:[3,5,9,12],momentum:21,nd:33,non:41,numer:34,object:41,oper:41,orient:43,plane:11,polgon:4,pose:[41,43],python:[39,41],quaternion:[7,10,13,15,35],refer:[38,43],relationship:41,se:[5,6,12,14],segment:2,so:[3,9],space:43,spatial:[16,17,18,19,20,21,22,23,39,41,43],spatialmath:42,support:[30,41,43,44],symbol:[36,41],todo:[3,5,9,12],tool:41,transform:[26,28,33,41],twist:[6,14],unit:[10,13],util:34,valu:41,vector:[22,37,41,43],veloc:23}}) \ No newline at end of file diff --git a/spatialmath.html b/spatialmath.html index 7106c66b..e88115f3 100644 --- a/spatialmath.html +++ b/spatialmath.html @@ -249,7 +249,7 @@

Geometry in 2D

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.

diff --git a/support.html b/support.html index dd9acd5c..85b3348b 100644 --- a/support.html +++ b/support.html @@ -97,7 +97,7 @@

Support

© Copyright 2020-, Peter Corke.. - Last updated on 26-Jun-2024. + Last updated on 23-Jul-2024.