From 4d74c528905ac9b4fe73b84ea535876fedad837c Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Thu, 1 Mar 2018 15:54:21 +0000 Subject: [PATCH 1/9] add orientations --- content/api/vision/_index.md | 1 + content/api/vision/coordinates.md | 15 ++++++++++++++- .../api/coordinate-orientations/m-45x0y0z.png | Bin 0 -> 19354 bytes .../api/coordinate-orientations/m0x-45y0z.png | Bin 0 -> 27622 bytes .../api/coordinate-orientations/m0x0y-45z.png | Bin 0 -> 25589 bytes .../img/api/coordinate-orientations/m0x0y0z.png | Bin 0 -> 19128 bytes .../api/coordinate-orientations/m0x0y45z.png | Bin 0 -> 26560 bytes .../api/coordinate-orientations/m0x45y0z.png | Bin 0 -> 28141 bytes .../api/coordinate-orientations/m45x0y0z.png | Bin 0 -> 19723 bytes 9 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 static/img/api/coordinate-orientations/m-45x0y0z.png create mode 100644 static/img/api/coordinate-orientations/m0x-45y0z.png create mode 100644 static/img/api/coordinate-orientations/m0x0y-45z.png create mode 100644 static/img/api/coordinate-orientations/m0x0y0z.png create mode 100644 static/img/api/coordinate-orientations/m0x0y45z.png create mode 100644 static/img/api/coordinate-orientations/m0x45y0z.png create mode 100644 static/img/api/coordinate-orientations/m45x0y0z.png diff --git a/content/api/vision/_index.md b/content/api/vision/_index.md index 9a6a7f94..dce7280c 100644 --- a/content/api/vision/_index.md +++ b/content/api/vision/_index.md @@ -20,6 +20,7 @@ The markers in the list have some useful attributes: - `pixel_centre` - returns the location in pixels of the centre of the marker in the captured image. - `cartesian` - returns details of the position of the marker in the [Cartesian](coordinates/#cartesian-coordinates) coordinate system. - `spherical` - returns details of the position of the marker in a [spherical](coordinates/#spherical-coordinates) coordinate system. +- `orientation` - returns the rotation of the marker around its centre. See [Orientation](coordinates/#orientation) for its coordinate system. - `polar` - *Deprecated*. Use the `spherical` attribute instead. {{% notice tip %}} diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index 78ae0773..3c569e21 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -47,9 +47,22 @@ robot, exactly 1 metre away. {{% added_in update="2018-jan" feature="spherical coordinates" %}} -## Diagram +### Diagram The following diagram shows the orientation of the Cartesian axes relative to the camera as well as the angles which describe the spherical coordinate space. ![A diagram showing the coordinate spaces](/img/api/coordinate-spaces.svg) + +## Orientation Coordinates + +Orientation represents the rotation of a marker around the x, y, and z axes. +Rotations are applied in order of Z, Y, X. + +The following table visually explains what positive and negative rotations represent. +| | | +|:-:|:-:| +| `rot_x_degrees = 45` | `rot_x_degrees = -45` | +| `rot_y_degrees = 45` | `rot_y_degrees = -45` | +| `rot_z_degrees = 45` | `rot_z_degrees= -45` | +| `0` in all axes | diff --git a/static/img/api/coordinate-orientations/m-45x0y0z.png b/static/img/api/coordinate-orientations/m-45x0y0z.png new file mode 100644 index 0000000000000000000000000000000000000000..3e840b9f652f6934294f79879b4eed6bb55c6f0e GIT binary patch literal 19354 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 Sg}=GA?8qTqjkJRoeEuJYgRe{g literal 0 HcmV?d00001 diff --git a/static/img/api/coordinate-orientations/m0x-45y0z.png b/static/img/api/coordinate-orientations/m0x-45y0z.png new file mode 100644 index 0000000000000000000000000000000000000000..9c6cdaeaf9c69891ddf1299e2bb549dccde6a7f4 GIT binary patch literal 27622 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 literal 0 HcmV?d00001 diff --git a/static/img/api/coordinate-orientations/m0x0y-45z.png b/static/img/api/coordinate-orientations/m0x0y-45z.png new file mode 100644 index 0000000000000000000000000000000000000000..daa4bfecb266d4881ab6e6d8491f7d46ab1f2b83 GIT binary patch literal 25589 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 Sz=>2w+c)oaE7=%u>OTRh*+;to literal 0 HcmV?d00001 diff --git a/static/img/api/coordinate-orientations/m0x0y45z.png b/static/img/api/coordinate-orientations/m0x0y45z.png new file mode 100644 index 0000000000000000000000000000000000000000..84cdb27413a729ca3f4fde34deda5747b6d8b783 GIT binary patch literal 26560 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 PW%9?Bj>Sk{y!n3s3I!NN literal 0 HcmV?d00001 diff --git a/static/img/api/coordinate-orientations/m45x0y0z.png b/static/img/api/coordinate-orientations/m45x0y0z.png new file mode 100644 index 0000000000000000000000000000000000000000..3034d941e56db881ff2bd17558a7b3f638835c17 GIT binary patch literal 19723 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 Date: Thu, 1 Mar 2018 16:49:17 +0000 Subject: [PATCH 2/9] add detail to orientations --- content/api/vision/coordinates.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index 3c569e21..13a7e73d 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -56,8 +56,16 @@ the camera as well as the angles which describe the spherical coordinate space. ## Orientation Coordinates -Orientation represents the rotation of a marker around the x, y, and z axes. -Rotations are applied in order of Z, Y, X. +Orientation represents the rotation of a marker around the x, y, and z axes. These can be accessed as follows: + +- `rot_x_radians` / `rot_x_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian x axis. +- `rot_y_radians` / `rot_y_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian y axis. +- `rot_z_radians` / `rot_z_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian z axis. (tip: the z axis typically faces the camera, and thus will seem like a clockwise rotation) + +Rotations are applied in order of z, y, x. The following table visually explains what positive and negative rotations represent. | | | From 1c1fa7f273c2d527e7f87a2533f4da11c0e566b2 Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Thu, 1 Mar 2018 16:49:59 +0000 Subject: [PATCH 3/9] wrapping --- content/api/vision/coordinates.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index 13a7e73d..0e5615ed 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -56,18 +56,21 @@ the camera as well as the angles which describe the spherical coordinate space. ## Orientation Coordinates -Orientation represents the rotation of a marker around the x, y, and z axes. These can be accessed as follows: +Orientation represents the rotation of a marker around the x, y, and z axes. +These can be accessed as follows: - `rot_x_radians` / `rot_x_degrees` - the angle of rotation in radians/degrees counter-clockwise about the Cartesian x axis. - `rot_y_radians` / `rot_y_degrees` - the angle of rotation in radians/degrees counter-clockwise about the Cartesian y axis. - `rot_z_radians` / `rot_z_degrees` - the angle of rotation in radians/degrees - counter-clockwise about the Cartesian z axis. (tip: the z axis typically faces the camera, and thus will seem like a clockwise rotation) + counter-clockwise about the Cartesian z axis. (tip: the z axis typically + faces the camera, and thus will seem like a clockwise rotation) Rotations are applied in order of z, y, x. -The following table visually explains what positive and negative rotations represent. +The following table visually explains what positive and negative +rotations represent. | | | |:-:|:-:| | `rot_x_degrees = 45` | `rot_x_degrees = -45` | From c04d06df932b25d3425492c5e7219dd80414b5f0 Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Fri, 2 Mar 2018 20:18:43 +0000 Subject: [PATCH 4/9] clarify that the z axis will always face the user --- content/api/vision/coordinates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index 0e5615ed..0a125c46 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -64,8 +64,8 @@ These can be accessed as follows: - `rot_y_radians` / `rot_y_degrees` - the angle of rotation in radians/degrees counter-clockwise about the Cartesian y axis. - `rot_z_radians` / `rot_z_degrees` - the angle of rotation in radians/degrees - counter-clockwise about the Cartesian z axis. (tip: the z axis typically - faces the camera, and thus will seem like a clockwise rotation) + counter-clockwise about the Cartesian z axis. (tip: in our use case the z + axis always faces the camera, and thus will appear as a clockwise rotation) Rotations are applied in order of z, y, x. From 55660070206d6112a261eaaecf3e7a20fbfeb12b Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Fri, 2 Mar 2018 20:20:10 +0000 Subject: [PATCH 5/9] shorten orientation description --- content/api/vision/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/api/vision/_index.md b/content/api/vision/_index.md index dce7280c..f174d9b3 100644 --- a/content/api/vision/_index.md +++ b/content/api/vision/_index.md @@ -20,7 +20,7 @@ The markers in the list have some useful attributes: - `pixel_centre` - returns the location in pixels of the centre of the marker in the captured image. - `cartesian` - returns details of the position of the marker in the [Cartesian](coordinates/#cartesian-coordinates) coordinate system. - `spherical` - returns details of the position of the marker in a [spherical](coordinates/#spherical-coordinates) coordinate system. -- `orientation` - returns the rotation of the marker around its centre. See [Orientation](coordinates/#orientation) for its coordinate system. +- `orientation` - returns the [Orientation](coordinates/#orientation) of the marker around its centre. - `polar` - *Deprecated*. Use the `spherical` attribute instead. {{% notice tip %}} From eb0f59eb0d0f17c729d00b2e7f314f3f0fd2d2ac Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Fri, 2 Mar 2018 20:22:52 +0000 Subject: [PATCH 6/9] fix table not rendering --- content/api/vision/coordinates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index 0a125c46..a57b48d8 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -71,6 +71,7 @@ Rotations are applied in order of z, y, x. The following table visually explains what positive and negative rotations represent. + | | | |:-:|:-:| | `rot_x_degrees = 45` | `rot_x_degrees = -45` | From 96900198ed926d0c530d2eab5859ded65f4088c8 Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Fri, 2 Mar 2018 21:00:40 +0000 Subject: [PATCH 7/9] move orientation to a separate file --- content/api/vision/_index.md | 2 +- content/api/vision/coordinates.md | 25 ------------------------- content/api/vision/orientation.md | 26 ++++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 26 deletions(-) create mode 100644 content/api/vision/orientation.md diff --git a/content/api/vision/_index.md b/content/api/vision/_index.md index f174d9b3..09921604 100644 --- a/content/api/vision/_index.md +++ b/content/api/vision/_index.md @@ -20,7 +20,7 @@ The markers in the list have some useful attributes: - `pixel_centre` - returns the location in pixels of the centre of the marker in the captured image. - `cartesian` - returns details of the position of the marker in the [Cartesian](coordinates/#cartesian-coordinates) coordinate system. - `spherical` - returns details of the position of the marker in a [spherical](coordinates/#spherical-coordinates) coordinate system. -- `orientation` - returns the [Orientation](coordinates/#orientation) of the marker around its centre. +- `orientation` - returns the [Orientation](orientation) of the marker around its centre. - `polar` - *Deprecated*. Use the `spherical` attribute instead. {{% notice tip %}} diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index a57b48d8..e39b9dd6 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -53,28 +53,3 @@ The following diagram shows the orientation of the Cartesian axes relative to the camera as well as the angles which describe the spherical coordinate space. ![A diagram showing the coordinate spaces](/img/api/coordinate-spaces.svg) - -## Orientation Coordinates - -Orientation represents the rotation of a marker around the x, y, and z axes. -These can be accessed as follows: - -- `rot_x_radians` / `rot_x_degrees` - the angle of rotation in radians/degrees - counter-clockwise about the Cartesian x axis. -- `rot_y_radians` / `rot_y_degrees` - the angle of rotation in radians/degrees - counter-clockwise about the Cartesian y axis. -- `rot_z_radians` / `rot_z_degrees` - the angle of rotation in radians/degrees - counter-clockwise about the Cartesian z axis. (tip: in our use case the z - axis always faces the camera, and thus will appear as a clockwise rotation) - -Rotations are applied in order of z, y, x. - -The following table visually explains what positive and negative -rotations represent. - -| | | -|:-:|:-:| -| `rot_x_degrees = 45` | `rot_x_degrees = -45` | -| `rot_y_degrees = 45` | `rot_y_degrees = -45` | -| `rot_z_degrees = 45` | `rot_z_degrees= -45` | -| `0` in all axes | diff --git a/content/api/vision/orientation.md b/content/api/vision/orientation.md new file mode 100644 index 00000000..1cb37e19 --- /dev/null +++ b/content/api/vision/orientation.md @@ -0,0 +1,26 @@ +--- +title: Orientation +--- + +Orientation represents the rotation of a marker around the x, y, and z axes. +These can be accessed as follows: + +- `rot_x_radians` / `rot_x_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian x axis. +- `rot_y_radians` / `rot_y_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian y axis. +- `rot_z_radians` / `rot_z_degrees` - the angle of rotation in radians/degrees + counter-clockwise about the Cartesian z axis. (tip: in our use case the z + axis always faces the camera, and thus will appear as a clockwise rotation) + +Rotations are applied in order of z, y, x. + +The following table visually explains what positive and negative +rotations represent. + +| | | +|:-:|:-:| +| `rot_x_degrees = 45` | `rot_x_degrees = -45` | +| `rot_y_degrees = 45` | `rot_y_degrees = -45` | +| `rot_z_degrees = 45` | `rot_z_degrees= -45` | +| `0` in all axes | From 557c3ae4092fe1a203ff7391744cb8c2ec93618e Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Fri, 2 Mar 2018 21:01:49 +0000 Subject: [PATCH 8/9] add orientation version message --- content/api/vision/orientation.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/content/api/vision/orientation.md b/content/api/vision/orientation.md index 1cb37e19..6d4001a8 100644 --- a/content/api/vision/orientation.md +++ b/content/api/vision/orientation.md @@ -2,6 +2,11 @@ title: Orientation --- +{{% notice tip %}} +Orientation was added in version `1.2` of the robot software, see +[updates](/updates) how to update your robot. +{{% /notice %}} + Orientation represents the rotation of a marker around the x, y, and z axes. These can be accessed as follows: From 1aca9385618a189e1b89808e58549dc74c2a1fd3 Mon Sep 17 00:00:00 2001 From: Andrew Barrett-Sprot Date: Tue, 6 Mar 2018 16:31:47 +0000 Subject: [PATCH 9/9] undo unrelated change in coordinates.md --- content/api/vision/coordinates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/api/vision/coordinates.md b/content/api/vision/coordinates.md index e39b9dd6..78ae0773 100644 --- a/content/api/vision/coordinates.md +++ b/content/api/vision/coordinates.md @@ -47,7 +47,7 @@ robot, exactly 1 metre away. {{% added_in update="2018-jan" feature="spherical coordinates" %}} -### Diagram +## Diagram The following diagram shows the orientation of the Cartesian axes relative to the camera as well as the angles which describe the spherical coordinate space.