From ed09aa4e6fc822179990f79701ed5ed9fdd29f72 Mon Sep 17 00:00:00 2001 From: <> Date: Tue, 23 Jan 2024 14:40:53 +0000 Subject: [PATCH] Deployed 660f104 with MkDocs version: 1.5.3 --- 404.html | 101 +- about/acknowledgements/index.html | 101 +- about/changelog/index.html | 101 +- about/index.html | 101 +- about/license/index.html | 101 +- about/robots/index.html | 101 +- com2009/assignment1/index.html | 101 +- com2009/assignment1/part1/index.html | 101 +- .../assignment1/part1/publisher/index.html | 101 +- .../assignment1/part1/subscriber/index.html | 101 +- com2009/assignment1/part2/index.html | 101 +- .../assignment1/part2/move_square/index.html | 101 +- .../assignment1/part2/twist-tips/index.html | 101 +- com2009/assignment1/part3/index.html | 101 +- com2009/assignment1/part4/index.html | 101 +- .../assignment1/part4/move_client/index.html | 101 +- .../assignment1/part4/move_server/index.html | 101 +- .../part4/scan_callback/index.html | 101 +- .../part5/action_client/index.html | 101 +- com2009/assignment1/part5/index.html | 101 +- .../part5/preemptive_action_client/index.html | 101 +- .../part5/search_client/index.html | 101 +- .../part5/search_server/index.html | 101 +- com2009/assignment1/part6/index.html | 101 +- .../part6/line_follower/index.html | 101 +- .../part6/object_detection/index.html | 101 +- .../object_detection_complete/index.html | 101 +- .../figures/obstacle_avoidance.jpg | Bin 0 -> 50288 bytes com2009/assignment2/figures/task1.jpg | Bin 0 -> 44328 bytes .../assignment2/figures/task1_motion_path.png | Bin 0 -> 51407 bytes .../assignment2/figures/task1_motion_path.svg | 857 ++++++ .../assignment2/getting-started/index.html | 107 +- com2009/assignment2/index.html | 110 +- com2009/assignment2/parta/task1/index.html | 2618 +++++++++++++++++ com2009/assignment2/parta/task2/index.html | 2503 ++++++++++++++++ com2009/index.html | 101 +- com2009/la1/index.html | 107 +- com2009/la1/week1/index.html | 101 +- com2009/la1/week1/publisher/index.html | 101 +- com2009/la1/week1/subscriber/index.html | 101 +- com2009/la1/week2/index.html | 101 +- com2009/la1/week3/index.html | 101 +- com2009/la1/week3/move_square/index.html | 101 +- com2009/la1/week4/index.html | 101 +- com2009/la1/week4/move_client/index.html | 101 +- com2009/la1/week4/move_server/index.html | 101 +- com2009/la1/week4/scan_callback/index.html | 101 +- com2009/la1/week5/action_client/index.html | 101 +- com2009/la1/week5/index.html | 101 +- .../week5/preemptive_action_client/index.html | 101 +- com2009/la1/week5/search_client/index.html | 101 +- com2009/la1/week5/search_server/index.html | 101 +- com2009/la1/week6/index.html | 101 +- com2009/la1/week6/line_follower/index.html | 101 +- com2009/la1/week6/object_detection/index.html | 101 +- .../object_detection_complete/index.html | 101 +- com2009/la2/extras/index.html | 101 +- com2009/la2/extras/laptops/index.html | 101 +- com2009/la2/extras/submission/index.html | 101 +- com2009/la2/getting-started/index.html | 101 +- com2009/la2/index.html | 101 +- com2009/la2/overview/index.html | 101 +- com2009/la2/task1/index.html | 101 +- com2009/la2/task2/index.html | 101 +- com2009/la2/task3/index.html | 101 +- com2009/la2/task4/index.html | 101 +- com2009/la2/task5/index.html | 101 +- extras/launch-files/cla-to-node/index.html | 101 +- extras/launch-files/index.html | 101 +- .../launching-launch-files/index.html | 101 +- extras/launch-files/python-clis/index.html | 101 +- extras/launch-files/roslaunch-api/index.html | 101 +- extras/launch-files/roslaunch-clas/index.html | 101 +- extras/ros-msgs/index.html | 107 +- extras/tuos-ros/index.html | 2413 +++++++++++++++ index.html | 101 +- others/amr31001/index.html | 107 +- others/amr31001/lab1/index.html | 101 +- others/amr31001/lab2/index.html | 101 +- search/search_index.json | 2 +- sitemap.xml | 15 + sitemap.xml.gz | Bin 788 -> 808 bytes waffles/exercises/index.html | 101 +- waffles/fact-finding/index.html | 101 +- waffles/index.html | 107 +- waffles/intro/index.html | 101 +- waffles/launching-ros/index.html | 101 +- waffles/shutdown/index.html | 101 +- waffles/tips/index.html | 101 +- wsl-ros/backup-restore/index.html | 101 +- wsl-ros/configure-vscode/index.html | 101 +- wsl-ros/first-run/index.html | 101 +- wsl-ros/index.html | 101 +- wsl-ros/installing/index.html | 101 +- wsl-ros/linux-term/index.html | 101 +- wsl-ros/rdp/index.html | 101 +- wsl-ros/vscode/index.html | 101 +- wsl-ros/wsl-ros-return/index.html | 101 +- wsl-ros/wt-settings/index.html | 101 +- 99 files changed, 17240 insertions(+), 196 deletions(-) create mode 100644 com2009/assignment2/figures/obstacle_avoidance.jpg create mode 100644 com2009/assignment2/figures/task1.jpg create mode 100644 com2009/assignment2/figures/task1_motion_path.png create mode 100644 com2009/assignment2/figures/task1_motion_path.svg create mode 100644 com2009/assignment2/parta/task1/index.html create mode 100644 com2009/assignment2/parta/task2/index.html create mode 100644 extras/tuos-ros/index.html diff --git a/404.html b/404.html index 17422cff..25e65a52 100644 --- a/404.html +++ b/404.html @@ -1102,6 +1102,8 @@ + + @@ -1166,6 +1168,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1640,11 +1737,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/about/acknowledgements/index.html b/about/acknowledgements/index.html index 45576e16..8f9e32b2 100644 --- a/about/acknowledgements/index.html +++ b/about/acknowledgements/index.html @@ -1125,6 +1125,8 @@ + + @@ -1189,6 +1191,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1663,11 +1760,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/about/changelog/index.html b/about/changelog/index.html index 66223d94..f75fcb85 100644 --- a/about/changelog/index.html +++ b/about/changelog/index.html @@ -1125,6 +1125,8 @@ + + @@ -1189,6 +1191,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1663,11 +1760,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/about/index.html b/about/index.html index 1ed8f039..7038b2ce 100644 --- a/about/index.html +++ b/about/index.html @@ -1113,6 +1113,8 @@ + + @@ -1177,6 +1179,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1651,11 +1748,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/about/license/index.html b/about/license/index.html index 9bd14779..fb8fa773 100644 --- a/about/license/index.html +++ b/about/license/index.html @@ -1125,6 +1125,8 @@ + + @@ -1189,6 +1191,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1663,11 +1760,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/about/robots/index.html b/about/robots/index.html index 59c4ebb0..7574cd02 100644 --- a/about/robots/index.html +++ b/about/robots/index.html @@ -1235,6 +1235,8 @@ + + @@ -1299,6 +1301,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1773,11 +1870,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/index.html b/com2009/assignment1/index.html index de85fd5d..e470962d 100644 --- a/com2009/assignment1/index.html +++ b/com2009/assignment1/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part1/index.html b/com2009/assignment1/part1/index.html index 23acadc8..0c7321ec 100644 --- a/com2009/assignment1/part1/index.html +++ b/com2009/assignment1/part1/index.html @@ -1466,6 +1466,8 @@ + + @@ -1530,6 +1532,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -2004,11 +2101,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part1/publisher/index.html b/com2009/assignment1/part1/publisher/index.html index b7cccaa3..1e470af5 100644 --- a/com2009/assignment1/part1/publisher/index.html +++ b/com2009/assignment1/part1/publisher/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part1/subscriber/index.html b/com2009/assignment1/part1/subscriber/index.html index 115a5052..80757dd8 100644 --- a/com2009/assignment1/part1/subscriber/index.html +++ b/com2009/assignment1/part1/subscriber/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part2/index.html b/com2009/assignment1/part2/index.html index edf74b7e..c73d65fc 100644 --- a/com2009/assignment1/part2/index.html +++ b/com2009/assignment1/part2/index.html @@ -1442,6 +1442,8 @@ + + @@ -1506,6 +1508,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1980,11 +2077,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part2/move_square/index.html b/com2009/assignment1/part2/move_square/index.html index e58e0421..b748838b 100644 --- a/com2009/assignment1/part2/move_square/index.html +++ b/com2009/assignment1/part2/move_square/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part2/twist-tips/index.html b/com2009/assignment1/part2/twist-tips/index.html index 2f924d89..b9830c40 100644 --- a/com2009/assignment1/part2/twist-tips/index.html +++ b/com2009/assignment1/part2/twist-tips/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part3/index.html b/com2009/assignment1/part3/index.html index 2ba3937d..c273fa56 100644 --- a/com2009/assignment1/part3/index.html +++ b/com2009/assignment1/part3/index.html @@ -1316,6 +1316,8 @@ + + @@ -1380,6 +1382,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1854,11 +1951,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part4/index.html b/com2009/assignment1/part4/index.html index b69e93f1..2eaa62af 100644 --- a/com2009/assignment1/part4/index.html +++ b/com2009/assignment1/part4/index.html @@ -1334,6 +1334,8 @@ + + @@ -1398,6 +1400,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1872,11 +1969,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part4/move_client/index.html b/com2009/assignment1/part4/move_client/index.html index cc98e517..cb037b7b 100644 --- a/com2009/assignment1/part4/move_client/index.html +++ b/com2009/assignment1/part4/move_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part4/move_server/index.html b/com2009/assignment1/part4/move_server/index.html index e163d543..4f64991e 100644 --- a/com2009/assignment1/part4/move_server/index.html +++ b/com2009/assignment1/part4/move_server/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part4/scan_callback/index.html b/com2009/assignment1/part4/scan_callback/index.html index 80689a24..13d72fc3 100644 --- a/com2009/assignment1/part4/scan_callback/index.html +++ b/com2009/assignment1/part4/scan_callback/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part5/action_client/index.html b/com2009/assignment1/part5/action_client/index.html index 0429db2e..cbe5cd9d 100644 --- a/com2009/assignment1/part5/action_client/index.html +++ b/com2009/assignment1/part5/action_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part5/index.html b/com2009/assignment1/part5/index.html index 4202a939..1aaa4168 100644 --- a/com2009/assignment1/part5/index.html +++ b/com2009/assignment1/part5/index.html @@ -1439,6 +1439,8 @@ + + @@ -1503,6 +1505,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1977,11 +2074,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part5/preemptive_action_client/index.html b/com2009/assignment1/part5/preemptive_action_client/index.html index 03b07112..adfeb0f2 100644 --- a/com2009/assignment1/part5/preemptive_action_client/index.html +++ b/com2009/assignment1/part5/preemptive_action_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part5/search_client/index.html b/com2009/assignment1/part5/search_client/index.html index d8e84578..5790b579 100644 --- a/com2009/assignment1/part5/search_client/index.html +++ b/com2009/assignment1/part5/search_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part5/search_server/index.html b/com2009/assignment1/part5/search_server/index.html index 11e52bd9..c9112002 100644 --- a/com2009/assignment1/part5/search_server/index.html +++ b/com2009/assignment1/part5/search_server/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part6/index.html b/com2009/assignment1/part6/index.html index 92d932d3..77bf86e5 100644 --- a/com2009/assignment1/part6/index.html +++ b/com2009/assignment1/part6/index.html @@ -1403,6 +1403,8 @@ + + @@ -1467,6 +1469,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1941,11 +2038,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part6/line_follower/index.html b/com2009/assignment1/part6/line_follower/index.html index fb4a1c78..ba198c0c 100644 --- a/com2009/assignment1/part6/line_follower/index.html +++ b/com2009/assignment1/part6/line_follower/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part6/object_detection/index.html b/com2009/assignment1/part6/object_detection/index.html index be812ce0..45601daf 100644 --- a/com2009/assignment1/part6/object_detection/index.html +++ b/com2009/assignment1/part6/object_detection/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment1/part6/object_detection_complete/index.html b/com2009/assignment1/part6/object_detection_complete/index.html index 79c03dfe..5c34b9c2 100644 --- a/com2009/assignment1/part6/object_detection_complete/index.html +++ b/com2009/assignment1/part6/object_detection_complete/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1653,11 +1750,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/assignment2/figures/obstacle_avoidance.jpg b/com2009/assignment2/figures/obstacle_avoidance.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e2b82d71e6796b38dfe72e253fe269226d9003b GIT binary patch literal 50288 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 literal 0 HcmV?d00001 diff --git a/com2009/assignment2/figures/task1.jpg b/com2009/assignment2/figures/task1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e04aa6954689908bb48643a3115c0b1869a505e3 GIT binary patch literal 44328 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 z%0D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 literal 0 HcmV?d00001 diff --git a/com2009/assignment2/figures/task1_motion_path.png b/com2009/assignment2/figures/task1_motion_path.png new file mode 100644 index 0000000000000000000000000000000000000000..4290590aa20dd990a3dca6986ab76a4a53275c22 GIT binary patch literal 51407 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 wi00n;JII%jp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + "Loop 1" + "Loop 2" + START/FINISHRobot Pose:x=0, y=0, θz=0 + + 1m Path Diameter + + + + + + + + + + + + + + + + + + diff --git a/com2009/assignment2/getting-started/index.html b/com2009/assignment2/getting-started/index.html index a63c0baa..4d97cfb8 100644 --- a/com2009/assignment2/getting-started/index.html +++ b/com2009/assignment2/getting-started/index.html @@ -16,7 +16,7 @@ - + @@ -1115,6 +1115,8 @@ + + @@ -1266,6 +1268,101 @@ + + + + + + + + + + + + + + + + + +
  • + + + + + + + + + + + + + +
  • + + + + @@ -1740,11 +1837,11 @@
  • - + - The Course Repo (GitHub) + The Course Repo @@ -2323,13 +2420,13 @@

    Getting to Know the Real Robots + +

    For more information on how to create .launch files, refer to the following resources:

    +
      +
    1. Assignment #1, Part 1, Exercise 8: Creating a Launch File
    2. +
    3. The ROS Extras: Launch Files section of this course site
    4. +

    Key Requirements

    In order to be awarded any marks for any task outlined in the table above, you must ensure that the following key requirements are met in regard to the ROS package that you submit (as well as any additional requirements specific to a given task):

      @@ -2122,7 +2224,7 @@

      Key Requirements - 2024-01-22 + 2024-01-23 diff --git a/com2009/assignment2/parta/task1/index.html b/com2009/assignment2/parta/task1/index.html new file mode 100644 index 00000000..b3667511 --- /dev/null +++ b/com2009/assignment2/parta/task1/index.html @@ -0,0 +1,2618 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Task 1: Velocity Control - Robotics Labs in The Diamond + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + +
      + + +
      + +
      + + + + + + + + + +
      +
      + + + +
      +
      +
      + + + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + + + + + + + + + + + + + + +

      Task 1: Velocity Control

      + +

      Submit a working ROS package that can be successfully deployed to control a real TurtleBot3 Waffle, making it follow a prescribed motion profile whilst printing key information to the terminal.

      +
      +

      Assignment #1 Checkpoint

      +

      You'll need to have completed Part 2 up to and including Exercise 4 before starting on this task.

      +
      +

      Summary

      +

      The main objective of this task is to create a ROS node (or multiple nodes) that make your robot follow a figure-of-eight pattern on the robot arena floor. The figure-of-eight trajectory should be generated by following two loops, both 1 meter in diameter, as shown below.

      +
      +

      +

      +
      The figure-of-eight path for Task 1.
      +
      +

      Whilst doing this, you will also need to print some robot odometry data to the terminal at regular intervals (see below for the specifics). In order to get the terminal message formatting right, you might want to have a look at the documentation on Python String Formatting, or refer to any of the code examples that involve printing messages to the terminal in Assignment #1.

      +

      Details

      +
        +
      1. The robot must start by moving anti-clockwise, following a circular motion path of 1 m diameter ("Loop 1," as shown in the figure above).
      2. +
      3. Once complete, the robot must then turn clockwise to follow a second circular path, again of 1 m diameter ("Loop 2").
      4. +
      5. After Loop 2 the robot must stop, at which point it should be located back at its starting point.
      6. +
      7. +

        The velocity of the robot should be defined to ensure that the whole sequence takes approximately 60 seconds to complete (5 seconds).

        +

        The timer will start as soon as the robot starts moving.

        +
      8. +
      9. +

        The robot's current pose should be printed to the terminal throughout, where messages should be of the following format (exactly):

        +
        x={x} [m], y={y} [m], yaw={yaw} [degrees].
        +
        +

        Where {x}, {y} and {yaw} should be replaced with the correct real-time odometry data as follows:

        +
          +
        1. {x}: the robot's linear position in the X axis, quoted in meters to two decimal places.
        2. +
        3. {y}: the robot's linear position in the Y axis, quoted in meters to two decimal places.
        4. +
        5. {yaw}: the robot's orientation about the Z axis, quoted in degrees to one decimal place.
        6. +
        +

        The data should be quoted relative to its starting position at the beginning of the task, e.g. at the start of the task (before the robot has moved) the terminal messages should read:

        +
        x=0.00 [m], y=0.00 [m], yaw=0.0 [degrees].
        +
        +

        These message should be printed to the terminal at a rate of 1Hz. It doesn't matter if the messages continue to be printed to the terminal after the robot has stopped (i.e. after the figure-of-eight has been completed).

        +
      10. +
      11. +

        The ROS package that you submit must contain a launch file called task1.launch, which we (the COM2009 teaching team) will use to execute the correct functionality from within your package. This functionality must be launch-able via the command:

        +
        roslaunch com2009_team{} task1.launch
        +
        +

        ... where {} will be replaced with your team number.

        +

        (ROS will already be running on the robot before we attempt to execute your launch file).

        +
      12. +
      +

      A note on Odometry

      +

      When the robot is placed in the arena at the start of the task its odometry may not necessarily read zero, so you will need to compensate for this. You'll therefore need to grab the robot pose from the /odom topic before your robot starts moving, and then use that as the zero-reference to convert all the subsequent odometry readings that you obtain throughout the task.

      +

      Odometry and keeping track of the robot's pose is discussed in detail in Assignment #1 Part 2.

      +

      Simulation Resources

      +

      It's easier to develop your node(s) in simulation before testing things out on a real robot. You can use the standard empty_world environment to do this, which can be launched in using the following command:

      +
      roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
      +
      +
      +WSL-ROS Users +

      You can also launch this using the tb3_empty_world command-line alias.

      +
      +

      For the real task, there will be cylindrical objects placed at the theoretical centre of each of the figure-of-eight loops, so your robot will need to move around these as it completes the task. We have therefore also created a simulation environment that is representative of the real world environment during the assessment. This is available in a package called com2009_simulations, which is part of the tuos_ros Course Repo. The instructions for downloading and installing this within your own local ROS installation are available here.

      +

      If you've already installed this (as part of Assignment #1 perhaps), then it's worth making sure that you have the most up-to-date version (as discussed here):

      +
      roscd && cd ../src/tuos_ros/ && git pull
      +
      +

      Once you've done all this, then you should be able to launch the Task 1 development arena with the following roslaunch command:

      +
      roslaunch com2009_simulations task1.launch
      +
      +
      +

      +

      +
      The development arena for Task 1.
      +
      +
      +

      Note

      +

      There won't be any loop markers on the real robot arena floor during the assessment.

      +
      +

      Marking

      +

      This task will be assessed by the teaching team as part of the Part A submission in Week 6 (i.e. along with Task 2). If things don't work for this first submission then we'll let you know what happened, so that you can try to resolve things for the Part B submission later in the semester.

      +

      There are 20 marks available for this task in total, summarised as follows:

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      CriteriaMarksDetails
      A: The Motion Path5/20How closely the real robot follows a true figure-of-eight path in the robot arena, based on the criteria table below.
      B: Terminal Messages5/20The correct formatting of your odometry messages, and the validity of the data that is presented in the terminal as the robot performs the task, based on the criteria table below.
      C: The Code10/20You will be assessed on the quality of the code that you submit for this task, as detailed below.
      +

      +

      Criterion A: The Motion Path

      +

      Marks: 5/20

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      CriteriaDetailsMarks
      A.1: Direction of travelThe robot must move anticlockwise for the first loop ("Loop 1") and then clockwise for the second ("Loop 2").1
      A.2: Loop 1The loop must be ~1 m in diameter, centered about the red beacon.1
      A.3: Loop 2The loop must be ~1 m in diameter, centered about the blue beacon.1
      A.4: StoppingOnce the robot completes its figure of eight, it must stop with both wheels within 10 cm of the start line.1
      A.5: TimingThe robot must complete the full figure of eight and stop in 55-65 seconds.1
      +

      +

      Criterion B: Terminal Messages

      +

      Marks: 5/20

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      CriteriaDetailsMarks
      B.1: RateMessages should be printed to the terminal at a rate of 1 Hz.1
      B.2: FormatThe messages printed to the terminal should be formatted exactly as detailed above.1
      B.3: DataEach message value (x, y and yaw) should be plausible, that is: they represent the actual pose of the robot, based on all readings being set to zero at the start/finish point (as illustrated above). In addition, each value must be quoted in the correct units (meters or degrees, as appropriate).3
      +

      +

      Criterion C: The Code

      +

      Marks: 10/20

      +

      TODO

      + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com2009/assignment2/parta/task2/index.html b/com2009/assignment2/parta/task2/index.html new file mode 100644 index 00000000..f78a7039 --- /dev/null +++ b/com2009/assignment2/parta/task2/index.html @@ -0,0 +1,2503 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Task 2: Avoiding Obstacles - Robotics Labs in The Diamond + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + +
      + + +
      + +
      + + + + + + + + + +
      +
      + + + +
      +
      +
      + + + + + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      +
      + + + +
      +
      + + + + + + + + + + + + + + + + + + + + +

      Task 2: Avoiding Obstacles

      + +

      Develop the ROS node(s) that allow a TurtleBot3 Waffle to autonomously explore an environment containing various obstacles. The robot must explore as much of the environment as possible in 90 seconds without crashing into anything!

      +
      +

      Assignment #1 Checkpoint

      +

      We'd recommend completing Assignment #1 up to and including Part 5 before starting on this task.

      +
      +

      Summary

      +

      Assignment #1 Part 3 introduces the Waffle's LiDAR sensor. This sensor is very useful, as it tells us the distance to any objects that are present in the robot's environment. In Part 5 Exercise 4 we look at how this data, in combination with the ROS Action framework, can be used as the basis for a basic obstacle avoidance control system. Building on this in Part 5, Advanced Exercise 1, we discuss how this could be developed further into an effective search strategy by developing an action client that could make successive calls to an the action server to keep the robot moving randomly, and indefinitely, around an arena whilst avoiding obstacles.

      +

      This is one approach that you could use for this task, but there are other (and potentially simpler) ways that this could be achieved too.

      +

      In COM2009 Lecture 3 ("Sensing, Actuation & Control"), for instance, you are introduced to Cybernetic Control Principles and some of Braitenberg's "Vehicles," which are discussed and implemented on a Lego robot during the lecture! In particular, "Vehicle 3b" might well be relevant to consider as a simple method to achieve an obstacle avoidance behaviour.

      +

      Another aspect of this task is exploration: your robot will be awarded more marks for navigating around more of the environment. Consider the search strategies that are discussed in Lecture 8 ("Local Guidance Strategies"), such as "Brownian Motion" and "Levy Walks." Could something along these lines be implemented on the +Waffle?

      +

      Details

      +

      The environment that your robot will need to explore for this will, or course, be the Diamond Computer Room 5 Robot Arena, which is a square arena of 4x4m. For the task, the arena will contain a number of "obstacles," i.e.: short wooden walls and coloured cylinders. Your robot will need to be able to detect these obstacles and navigate around them in order to fully explore the space.

      +
        +
      1. The robot will start in the centre of the arena.
      2. +
      3. +

        It must explore the environment for 90 seconds without touching any of the arena walls or the obstacles within it.

        +

        The 90-second timer will start as soon as the robot starts moving within the arena.

        +
      4. +
      5. +

        If the robot makes contact with anything before the time has elapsed then the attempt is over.

        +
      6. +
      7. The arena floor will be divided into 16 equal-sized zones and the robot must enter as many of the outer 12 zones as possible during the attempt.
      8. +
      9. +

        The robot must be moving for the entire duration of the task. Simply just turning on the spot for the whole time doesn't count!

        +

        +
      10. +
      11. +

        The ROS package that you submit must contain a launch file called task2.launch, such that the functionality that you develop for Task 2 can be launched from your package via the command:

        +
        roslaunch com2009_team{} task2.launch
        +
        +

        Test this out before submission to make sure that it works!

        +
      12. +
      13. +

        ROS will already be running on the robot before we attempt to execute your launch file on the laptop that the robot has been paired with.

        +
      14. +
      +
      +

      Note

      +

      The location, orientation and quantity of obstacles in the arena will not be revealed beforehand, so the ROS package that you develop will need to be able to accommodate an unknown environment.

      +
      +

      Simulation Resources

      +

      Within the com2009_simulations package there is an example arena which can be used to develop and test out your team's obstacle avoidance node(s) for this task. The simulation can be launched using the following roslaunch command:

      +
      roslaunch com2009_simulations obstacle_avoidance.launch
      +
      +

      +
      +

      +

      +
      The Obstacle Avoidance development arena.
      +
      +
      +

      Warning

      +

      The location, orientation and quantity of obstacles will be different to those in this simulation!

      +
      +

      Marking

      +

      There are 20 marks available for Task 2 in total, awarded as follows:

      +

      + + + + + + + + + + + + + + + + + + + + +
      CriteriaMarksDetails
      A: Run Time8/20You will be awarded marks for the amount of time that your robot spends exploring the environment before 90 seconds has elapsed, or the robot makes contact with anything in its environment (as per the table below).
      B: Exploration12/20You will be awarded 1 mark for each of the outer 12 arena zones that the robot manages to enter (i.e. excluding the four zones in the middle). The robot only needs to enter each of the 12 zones once, but its full body must be inside the zone marking to be awarded the mark.
      +

      +

      Criterion A: Run Time

      +

      Marks: 8/20

      +

      Marks will be awarded as follows:

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Time (Seconds)Marks
      0-90
      10-191
      20-292
      30-393
      40-494
      50-595
      60-896
      The full 90!8
      +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + +
      + + + +
      + + + +
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com2009/index.html b/com2009/index.html index 266c5efe..4cde0806 100644 --- a/com2009/index.html +++ b/com2009/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    1. + + + + + + + + + + + + + +
    2. + + + + @@ -1653,11 +1750,11 @@
    3. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/index.html b/com2009/la1/index.html index 93189721..5a7439e5 100644 --- a/com2009/la1/index.html +++ b/com2009/la1/index.html @@ -13,7 +13,7 @@ - + @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    4. + + + + + + + + + + + + + +
    5. + + + + @@ -1655,11 +1752,11 @@
    6. - + - The Course Repo (GitHub) + The Course Repo @@ -2029,7 +2126,7 @@

      An Introduction to ROS - + diff --git a/com2009/la1/week1/index.html b/com2009/la1/week1/index.html index 5a4be9db..2f468864 100644 --- a/com2009/la1/week1/index.html +++ b/com2009/la1/week1/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    7. + + + + + + + + + + + + + +
    8. + + + + @@ -1653,11 +1750,11 @@
    9. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week1/publisher/index.html b/com2009/la1/week1/publisher/index.html index 3b7913f5..43d1e538 100644 --- a/com2009/la1/week1/publisher/index.html +++ b/com2009/la1/week1/publisher/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    10. + + + + + + + + + + + + + +
    11. + + + + @@ -1653,11 +1750,11 @@
    12. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week1/subscriber/index.html b/com2009/la1/week1/subscriber/index.html index a6be6c62..e33e4104 100644 --- a/com2009/la1/week1/subscriber/index.html +++ b/com2009/la1/week1/subscriber/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    13. + + + + + + + + + + + + + +
    14. + + + + @@ -1653,11 +1750,11 @@
    15. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week2/index.html b/com2009/la1/week2/index.html index 1473d808..7acb855b 100644 --- a/com2009/la1/week2/index.html +++ b/com2009/la1/week2/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    16. + + + + + + + + + + + + + +
    17. + + + + @@ -1653,11 +1750,11 @@
    18. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week3/index.html b/com2009/la1/week3/index.html index 21620746..55a6c63a 100644 --- a/com2009/la1/week3/index.html +++ b/com2009/la1/week3/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    19. + + + + + + + + + + + + + +
    20. + + + + @@ -1653,11 +1750,11 @@
    21. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week3/move_square/index.html b/com2009/la1/week3/move_square/index.html index d4d5c8b4..0f5fcf6e 100644 --- a/com2009/la1/week3/move_square/index.html +++ b/com2009/la1/week3/move_square/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    22. + + + + + + + + + + + + + +
    23. + + + + @@ -1653,11 +1750,11 @@
    24. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week4/index.html b/com2009/la1/week4/index.html index 95c2a4b1..74bef8bb 100644 --- a/com2009/la1/week4/index.html +++ b/com2009/la1/week4/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    25. + + + + + + + + + + + + + +
    26. + + + + @@ -1653,11 +1750,11 @@
    27. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week4/move_client/index.html b/com2009/la1/week4/move_client/index.html index e3dfcf54..b5a54874 100644 --- a/com2009/la1/week4/move_client/index.html +++ b/com2009/la1/week4/move_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    28. + + + + + + + + + + + + + +
    29. + + + + @@ -1653,11 +1750,11 @@
    30. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week4/move_server/index.html b/com2009/la1/week4/move_server/index.html index 32ff4b2f..57a239f7 100644 --- a/com2009/la1/week4/move_server/index.html +++ b/com2009/la1/week4/move_server/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    31. + + + + + + + + + + + + + +
    32. + + + + @@ -1653,11 +1750,11 @@
    33. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week4/scan_callback/index.html b/com2009/la1/week4/scan_callback/index.html index e3b1b76f..050ecc7a 100644 --- a/com2009/la1/week4/scan_callback/index.html +++ b/com2009/la1/week4/scan_callback/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    34. + + + + + + + + + + + + + +
    35. + + + + @@ -1653,11 +1750,11 @@
    36. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week5/action_client/index.html b/com2009/la1/week5/action_client/index.html index 3002471f..59fc2455 100644 --- a/com2009/la1/week5/action_client/index.html +++ b/com2009/la1/week5/action_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    37. + + + + + + + + + + + + + +
    38. + + + + @@ -1653,11 +1750,11 @@
    39. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week5/index.html b/com2009/la1/week5/index.html index 4317de61..857f9373 100644 --- a/com2009/la1/week5/index.html +++ b/com2009/la1/week5/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    40. + + + + + + + + + + + + + +
    41. + + + + @@ -1653,11 +1750,11 @@
    42. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week5/preemptive_action_client/index.html b/com2009/la1/week5/preemptive_action_client/index.html index c21874fb..6384e168 100644 --- a/com2009/la1/week5/preemptive_action_client/index.html +++ b/com2009/la1/week5/preemptive_action_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    43. + + + + + + + + + + + + + +
    44. + + + + @@ -1653,11 +1750,11 @@
    45. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week5/search_client/index.html b/com2009/la1/week5/search_client/index.html index 468acebf..0f99e6c3 100644 --- a/com2009/la1/week5/search_client/index.html +++ b/com2009/la1/week5/search_client/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    46. + + + + + + + + + + + + + +
    47. + + + + @@ -1653,11 +1750,11 @@
    48. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week5/search_server/index.html b/com2009/la1/week5/search_server/index.html index f47fd208..9b76e6dc 100644 --- a/com2009/la1/week5/search_server/index.html +++ b/com2009/la1/week5/search_server/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    49. + + + + + + + + + + + + + +
    50. + + + + @@ -1653,11 +1750,11 @@
    51. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week6/index.html b/com2009/la1/week6/index.html index bae85da7..98b31402 100644 --- a/com2009/la1/week6/index.html +++ b/com2009/la1/week6/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    52. + + + + + + + + + + + + + +
    53. + + + + @@ -1653,11 +1750,11 @@
    54. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week6/line_follower/index.html b/com2009/la1/week6/line_follower/index.html index 421c2457..8f790e11 100644 --- a/com2009/la1/week6/line_follower/index.html +++ b/com2009/la1/week6/line_follower/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    55. + + + + + + + + + + + + + +
    56. + + + + @@ -1653,11 +1750,11 @@
    57. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week6/object_detection/index.html b/com2009/la1/week6/object_detection/index.html index 041bd8af..8d383840 100644 --- a/com2009/la1/week6/object_detection/index.html +++ b/com2009/la1/week6/object_detection/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    58. + + + + + + + + + + + + + +
    59. + + + + @@ -1653,11 +1750,11 @@
    60. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la1/week6/object_detection_complete/index.html b/com2009/la1/week6/object_detection_complete/index.html index ef314323..3404f9fc 100644 --- a/com2009/la1/week6/object_detection_complete/index.html +++ b/com2009/la1/week6/object_detection_complete/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    61. + + + + + + + + + + + + + +
    62. + + + + @@ -1653,11 +1750,11 @@
    63. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/extras/index.html b/com2009/la2/extras/index.html index 64de6cf5..f3a3be80 100644 --- a/com2009/la2/extras/index.html +++ b/com2009/la2/extras/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    64. + + + + + + + + + + + + + +
    65. + + + + @@ -1653,11 +1750,11 @@
    66. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/extras/laptops/index.html b/com2009/la2/extras/laptops/index.html index b5c4834d..730200a5 100644 --- a/com2009/la2/extras/laptops/index.html +++ b/com2009/la2/extras/laptops/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    67. + + + + + + + + + + + + + +
    68. + + + + @@ -1653,11 +1750,11 @@
    69. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/extras/submission/index.html b/com2009/la2/extras/submission/index.html index 8a3436b6..7cd32bf4 100644 --- a/com2009/la2/extras/submission/index.html +++ b/com2009/la2/extras/submission/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    70. + + + + + + + + + + + + + +
    71. + + + + @@ -1653,11 +1750,11 @@
    72. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/getting-started/index.html b/com2009/la2/getting-started/index.html index 9c157e86..e756ba06 100644 --- a/com2009/la2/getting-started/index.html +++ b/com2009/la2/getting-started/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    73. + + + + + + + + + + + + + +
    74. + + + + @@ -1653,11 +1750,11 @@
    75. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/index.html b/com2009/la2/index.html index d075b611..b21472e9 100644 --- a/com2009/la2/index.html +++ b/com2009/la2/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    76. + + + + + + + + + + + + + +
    77. + + + + @@ -1655,11 +1752,11 @@
    78. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/overview/index.html b/com2009/la2/overview/index.html index b4566304..0dd0a753 100644 --- a/com2009/la2/overview/index.html +++ b/com2009/la2/overview/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    79. + + + + + + + + + + + + + +
    80. + + + + @@ -1653,11 +1750,11 @@
    81. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/task1/index.html b/com2009/la2/task1/index.html index e0dd8f03..a0e59bb5 100644 --- a/com2009/la2/task1/index.html +++ b/com2009/la2/task1/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    82. + + + + + + + + + + + + + +
    83. + + + + @@ -1653,11 +1750,11 @@
    84. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/task2/index.html b/com2009/la2/task2/index.html index e997814d..4c0384ed 100644 --- a/com2009/la2/task2/index.html +++ b/com2009/la2/task2/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    85. + + + + + + + + + + + + + +
    86. + + + + @@ -1653,11 +1750,11 @@
    87. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/task3/index.html b/com2009/la2/task3/index.html index 83fcc5c1..13befaf2 100644 --- a/com2009/la2/task3/index.html +++ b/com2009/la2/task3/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    88. + + + + + + + + + + + + + +
    89. + + + + @@ -1653,11 +1750,11 @@
    90. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/task4/index.html b/com2009/la2/task4/index.html index 1596cfce..87daecc4 100644 --- a/com2009/la2/task4/index.html +++ b/com2009/la2/task4/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    91. + + + + + + + + + + + + + +
    92. + + + + @@ -1653,11 +1750,11 @@
    93. - + - The Course Repo (GitHub) + The Course Repo diff --git a/com2009/la2/task5/index.html b/com2009/la2/task5/index.html index d13be856..7b7a9f2b 100644 --- a/com2009/la2/task5/index.html +++ b/com2009/la2/task5/index.html @@ -1115,6 +1115,8 @@ + + @@ -1179,6 +1181,101 @@ + + + + + + + + + + + + + + + + + +
    94. + + + + + + + + + + + + + +
    95. + + + + @@ -1653,11 +1750,11 @@
    96. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/cla-to-node/index.html b/extras/launch-files/cla-to-node/index.html index 1b2f6de8..d8bd66d6 100644 --- a/extras/launch-files/cla-to-node/index.html +++ b/extras/launch-files/cla-to-node/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    97. + + + + + + + + + + + + + +
    98. + + + + @@ -1665,11 +1762,11 @@
    99. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/index.html b/extras/launch-files/index.html index d0827261..85a1c535 100644 --- a/extras/launch-files/index.html +++ b/extras/launch-files/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    100. + + + + + + + + + + + + + +
    101. + + + + @@ -1655,11 +1752,11 @@
    102. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/launching-launch-files/index.html b/extras/launch-files/launching-launch-files/index.html index fc3da36e..31b09912 100644 --- a/extras/launch-files/launching-launch-files/index.html +++ b/extras/launch-files/launching-launch-files/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    103. + + + + + + + + + + + + + +
    104. + + + + @@ -1665,11 +1762,11 @@
    105. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/python-clis/index.html b/extras/launch-files/python-clis/index.html index 750dff0a..825ad502 100644 --- a/extras/launch-files/python-clis/index.html +++ b/extras/launch-files/python-clis/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    106. + + + + + + + + + + + + + +
    107. + + + + @@ -1665,11 +1762,11 @@
    108. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/roslaunch-api/index.html b/extras/launch-files/roslaunch-api/index.html index 41f4aafb..8d618bb2 100644 --- a/extras/launch-files/roslaunch-api/index.html +++ b/extras/launch-files/roslaunch-api/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    109. + + + + + + + + + + + + + +
    110. + + + + @@ -1665,11 +1762,11 @@
    111. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/launch-files/roslaunch-clas/index.html b/extras/launch-files/roslaunch-clas/index.html index 911cf44c..66bb7199 100644 --- a/extras/launch-files/roslaunch-clas/index.html +++ b/extras/launch-files/roslaunch-clas/index.html @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    112. + + + + + + + + + + + + + +
    113. + + + + @@ -1665,11 +1762,11 @@
    114. - + - The Course Repo (GitHub) + The Course Repo diff --git a/extras/ros-msgs/index.html b/extras/ros-msgs/index.html index 153e7b41..0f9a31d6 100644 --- a/extras/ros-msgs/index.html +++ b/extras/ros-msgs/index.html @@ -16,7 +16,7 @@ - + @@ -1117,6 +1117,8 @@ + + @@ -1181,6 +1183,101 @@ + + + + + + + + + + + + + + + + + +
    115. + + + + + + + + + + + + + +
    116. + + + + @@ -1665,11 +1762,11 @@
    117. - + - The Course Repo (GitHub) + The Course Repo @@ -2014,13 +2111,13 @@

      Creating Your Own Custom ROS Mess - +