From d10337992966c0bba2371b7ea9d84374199f4ff6 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 15:30:24 +0800 Subject: [PATCH 01/12] Update installation instructions --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 99fbb56..3d68955 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,12 @@ To complete this workshop please arrive with: * A basic understanding of Ubuntu Linux -* A basic understanding of Python and C++ +* A basic understanding of Python and/or C++ * A laptop running either: - * [Ubuntu 18.04](https://releases.ubuntu.com/18.04) and [ROS Melodic](http://wiki.ros.org/melodic) or - * [Ubuntu 20.04](https://releases.ubuntu.com/20.04) and [ROS Noetic](http://wiki.ros.org/noetic) + * [ROS2 Humble](https://docs.ros.org/en/humble/index.html) on [Ubuntu 22.04](https://releases.ubuntu.com/22.04) + * [ROS1 Noetic](http://wiki.ros.org/noetic) on [Ubuntu 20.04](https://releases.ubuntu.com/20.04) + + * Please follow the [installation instructions here](./ros-installation.md) * Ask a mentor if you get stuck, and we'll be happy to help * Access to the Internet (you'll need to download 1-2 GB) From 96192b93e8f52a081de3438d3b4474c36cfc8d49 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 15:38:29 +0800 Subject: [PATCH 02/12] Update links --- ros-installation.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ros-installation.md b/ros-installation.md index f45fe4d..7b6c4d4 100644 --- a/ros-installation.md +++ b/ros-installation.md @@ -29,7 +29,7 @@ Follow the instructions above to create a Ubuntu Live USB Stick. Boot from the U ***WARNING*** Make sure you have a backup of your computer before attempting any dual-boot installations as it is very easy to accidentally damage or delete all data on your laptop. -There are plenty of tutorials on the internet, e.g. [here](https://medium.com/linuxforeveryone/how-to-install-ubuntu-20-04-and-dual-boot-alongside-windows-10-323a85271a73). +There are plenty of tutorials on the internet, e.g. [here](https://www.linuxtechi.com/dual-boot-ubuntu-22-04-and-windows-11/). Summary: Boot from an Ubuntu Live USB Stick, select install and choose _"Install Ubuntu alongside Windows Boot Manager”_. @@ -40,9 +40,9 @@ There are many Virtual Machines solutions, such as [VirtualBox](https://www.virt
VirtualBox Installation -Steps for installing Virtual Box 6.1.32 (as of Jan 2022): +Steps for installing Virtual Box 7.0.14 (as of Mar 2024): 1. Download and install VirtualBox for your relevant platform from https://www.virtualbox.org/wiki/Downloads -2. Install the extension to enable USB and other functionalities from https://download.virtualbox.org/virtualbox/6.1.32/Oracle_VM_VirtualBox_Extension_Pack-6.1.32.vbox-extpack +2. Install the extension to enable USB and other functionalities from https://download.virtualbox.org/virtualbox/7.0.14/Oracle_VM_VirtualBox_Extension_Pack-7.0.14.vbox-extpack 3. In Step 2, it will open up VirtualBox and ask permission to continue the installation. Continue to do so. 4. In VirtualBox, create a new VM for Ubuntu. 5. Choose the guest OS architecture: (64-bit, Ubuntu) @@ -72,4 +72,4 @@ Docker provides containerisation that allows different versions of Linux to run ## Installing ROS -Once you have Ubuntu installed, follow the instructions for "Desktop - Full Install" on the ROS Wiki [here](http://wiki.ros.org/noetic/Installation/Ubuntu). Once you've installed ROS, you should install Catkin tools with `sudo apt-get install python3-catkin-tools`. +Once you have Ubuntu installed, follow the instructions for "Desktop - Full Install" on the ROS 2 Wiki [here](https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Install-Binary.html). From c1aea3b5985d5b93af0e9eb49c888293df7c7236 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 15:51:05 +0800 Subject: [PATCH 03/12] Convert to drawio file --- images/ROS_Filesystem_Architecture.drawio.png | Bin 0 -> 25264 bytes images/ROS_Filesystem_Architecture.png | Bin 23578 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/ROS_Filesystem_Architecture.drawio.png delete mode 100644 images/ROS_Filesystem_Architecture.png diff --git a/images/ROS_Filesystem_Architecture.drawio.png b/images/ROS_Filesystem_Architecture.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd6d8068531a00b4e563c563722f65fca313694 GIT binary patch literal 25264 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 AQvd(} literal 0 HcmV?d00001 diff --git a/images/ROS_Filesystem_Architecture.png b/images/ROS_Filesystem_Architecture.png deleted file mode 100644 index e3702dcc9b115de3631e2e58868375f3a140ad23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23578 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 From c4981269594262580a412021d6893d0ce92056c3 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 15:52:14 +0800 Subject: [PATCH 04/12] Update reference --- ros-introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros-introduction.md b/ros-introduction.md index 874b18b..0845f03 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -17,7 +17,7 @@ Let's have a brief look at each of these levels. Consists of concepts which tell how a ROS system is formed, including its folder structure and the minimum number of files it needs to work with. -![ROS_Filesystem](./images/ROS_Filesystem_Architecture.png) +![ROS_Filesystem](./images/ROS_Filesystem_Architecture.drawio.png) - **Useful Commands** : [`rospack`][cmd-rospack], [`catkin_create_pkg`][cmd-catkin_create_pkg], [`catkin build`][cmd-catkin-build], [`rosdep`][cmd-rosdep], [`roscd`][cmd-roscd], [`rosed`][cmd-rosed], [`roscp`][cmd-roscp], [`rosd`][cmd-rosd], [`rosls`][cmd-rosls] - **More information**: http://wiki.ros.org/ROS/Concepts#ROS_Filesystem_Level From 51751bdd1fad1f851d9ed3544df80836d178329f Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 15:55:54 +0800 Subject: [PATCH 05/12] Add border --- images/ROS_Filesystem_Architecture.drawio.png | Bin 25264 -> 26828 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/ROS_Filesystem_Architecture.drawio.png b/images/ROS_Filesystem_Architecture.drawio.png index 8cd6d8068531a00b4e563c563722f65fca313694..dbb15b3febdc0f8cc6563d5a0c9c796851e6b34d 100644 GIT binary patch literal 26828 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 AQvd(} From eefb1e29e5e25ad9cd25e35b6a93b83d6c2f970a Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 17:54:44 +0800 Subject: [PATCH 06/12] Convert computational graph to drawio --- images/ROS_Computational_Graph.drawio.png | Bin 0 -> 22771 bytes images/ROS_Computational_Graph.png | Bin 21008 -> 0 bytes ros-introduction.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 images/ROS_Computational_Graph.drawio.png delete mode 100644 images/ROS_Computational_Graph.png diff --git a/images/ROS_Computational_Graph.drawio.png b/images/ROS_Computational_Graph.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..11485c89a7c92b401ca528d000163dc5b7568bfa GIT binary patch literal 22771 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 g@J#kWIrMt%@z>% diff --git a/ros-introduction.md b/ros-introduction.md index 0845f03..d3cb541 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -28,7 +28,7 @@ Provides information about how various components in a ROS project come together to perform an action. Primarily, this level tells us how ROS sets up and handles the communication between various processes. -![ROS Computational Graph](./images/ROS_Computational_Graph.png) +![ROS Computational Graph](./images/ROS_Computational_Graph.drawio.png) - **Useful Commands** : [`roscore`][cmd-roscore], [`rosnode`][cmd-rosnode], [`rostopic`][cmd-rostopic], [`rosrun`][cmd-rosrun], [`rosservice`][cmd-rosservice], [`rosmsg`][cmd-rosmsg], [`rosbag`][cmd-rosbag] - **More information**: http://wiki.ros.org/ROS/Concepts#ROS_Computation_Graph_Level From 467d71428868c7b907769a38f0f9ac7e956021ed Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 20:42:37 +0800 Subject: [PATCH 07/12] Updates for filesystem architecture --- ros-introduction.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/ros-introduction.md b/ros-introduction.md index d3cb541..af73d8d 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -19,8 +19,12 @@ folder structure and the minimum number of files it needs to work with. ![ROS_Filesystem](./images/ROS_Filesystem_Architecture.drawio.png) -- **Useful Commands** : [`rospack`][cmd-rospack], [`catkin_create_pkg`][cmd-catkin_create_pkg], [`catkin build`][cmd-catkin-build], [`rosdep`][cmd-rosdep], [`roscd`][cmd-roscd], [`rosed`][cmd-rosed], [`roscp`][cmd-roscp], [`rosd`][cmd-rosd], [`rosls`][cmd-rosls] -- **More information**: http://wiki.ros.org/ROS/Concepts#ROS_Filesystem_Level +- **Useful Commands** : + * [`ros2`][cmd-ros2]: CLI tool that performs common ROS 2 actions.
+ https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/cli/cli_cheats_sheet.pdf + * [`colcon`][cmd-colcon]: CLI tool used for building and testing ROS workspaces (supersedes `catkin`).
+ https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/colcon/colcon_cheats_sheet.pdf +- **More information**: https://docs.ros.org/en/humble/The-ROS2-Project/Contributing/Developer-Guide.html#filesystem-layout ### Computational Graph @@ -58,15 +62,8 @@ ROS community to contribute via documentation updates, tutorials, etc. (http://w - James Madison University Robotics Lab : [ROS Kinetic Cheatsheet](https://w3.cs.jmu.edu/spragunr/CS354/handouts/ROSCheatsheet.pdf) -[cmd-rospack]: http://wiki.ros.org/rospack?distro=noetic -[cmd-catkin_create_pkg]: http://wiki.ros.org/catkin/commands/catkin_create_pkg -[cmd-catkin-build]: https://catkin-tools.readthedocs.io/en/latest/installing.html -[cmd-rosdep]: http://wiki.ros.org/rosdep -[cmd-roscd]: http://wiki.ros.org/rosbash?distro=noetic#roscd -[cmd-rosed]: http://wiki.ros.org/rosbash?distro=noetic#rosed -[cmd-roscp]: http://wiki.ros.org/rosbash?distro=noetic#roscp -[cmd-rosd]: http://wiki.ros.org/rosbash?distro=noetic#rosd -[cmd-rosls]: http://wiki.ros.org/rosbash?distro=noetic#rosls +[cmd-ros2]: https://github.com/ros2/ros2cli/tree/humble +[cmd-colcon]: https://github.com/colcon/colcon-core [cmd-roscore]: http://wiki.ros.org/roscore [cmd-rosnode]: http://wiki.ros.org/rosnode?distro=noetic From 7b5c28dabbf1b93dd45d5c13ea857343c8f7d2e0 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 20:53:00 +0800 Subject: [PATCH 08/12] Refactoring --- ros-introduction.md | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/ros-introduction.md b/ros-introduction.md index af73d8d..b6120f8 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -18,24 +18,26 @@ Consists of concepts which tell how a ROS system is formed, including its folder structure and the minimum number of files it needs to work with. ![ROS_Filesystem](./images/ROS_Filesystem_Architecture.drawio.png) - -- **Useful Commands** : - * [`ros2`][cmd-ros2]: CLI tool that performs common ROS 2 actions.
- https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/cli/cli_cheats_sheet.pdf - * [`colcon`][cmd-colcon]: CLI tool used for building and testing ROS workspaces (supersedes `catkin`).
- https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/colcon/colcon_cheats_sheet.pdf -- **More information**: https://docs.ros.org/en/humble/The-ROS2-Project/Contributing/Developer-Guide.html#filesystem-layout +#### **More information** +* Tutorial for setting up a workspace: https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Creating-A-Workspace/Creating-A-Workspace.html +* Recommendations for a filesystem layout: https://docs.ros.org/en/humble/The-ROS2-Project/Contributing/Developer-Guide.html#filesystem-layout + ### Computational Graph -Provides information about how various components in a ROS project come -together to perform an action. Primarily, this level tells us how ROS sets up -and handles the communication between various processes. +Provides information about how various components in a ROS project come together to perform an action. +Primarily, this level tells us how ROS sets up and handles the communication between various processes. ![ROS Computational Graph](./images/ROS_Computational_Graph.drawio.png) -- **Useful Commands** : [`roscore`][cmd-roscore], [`rosnode`][cmd-rosnode], [`rostopic`][cmd-rostopic], [`rosrun`][cmd-rosrun], [`rosservice`][cmd-rosservice], [`rosmsg`][cmd-rosmsg], [`rosbag`][cmd-rosbag] -- **More information**: http://wiki.ros.org/ROS/Concepts#ROS_Computation_Graph_Level +#### More information + * http://wiki.ros.org/ROS/Concepts#ROS_Computation_Graph_Level + +### Useful Commands +* [`ros2`][cmd-ros2]: CLI tool that performs common ROS 2 actions.
+https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/cli/cli_cheats_sheet.pdf +* [`colcon`][cmd-colcon]: CLI tool used for building and testing ROS workspaces (supersedes `catkin`).
+https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/colcon/colcon_cheats_sheet.pdf ### Community @@ -64,13 +66,3 @@ ROS community to contribute via documentation updates, tutorials, etc. (http://w [cmd-ros2]: https://github.com/ros2/ros2cli/tree/humble [cmd-colcon]: https://github.com/colcon/colcon-core - -[cmd-roscore]: http://wiki.ros.org/roscore -[cmd-rosnode]: http://wiki.ros.org/rosnode?distro=noetic -[cmd-rostopic]: http://wiki.ros.org/rostopic?distro=noetic -[cmd-rosrun]: http://wiki.ros.org/rosbash?distro=noetic#rosrun -[cmd-rosservice]: http://wiki.ros.org/rosservice?distro=noetic -[cmd-rosmsg]: http://wiki.ros.org/rosmsg?distro=noetic -[cmd-rosbag]: http://wiki.ros.org/rosbag?distro=noetic - - From da062130b1347d9c16e93c2e793e5dc3ada1ca0e Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 21:00:24 +0800 Subject: [PATCH 09/12] Expand information for computational graph --- ros-introduction.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ros-introduction.md b/ros-introduction.md index b6120f8..3a501be 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -31,7 +31,14 @@ Primarily, this level tells us how ROS sets up and handles the communication bet ![ROS Computational Graph](./images/ROS_Computational_Graph.drawio.png) #### More information - * http://wiki.ros.org/ROS/Concepts#ROS_Computation_Graph_Level +* Understanding **nodes**: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Nodes/Understanding-ROS2-Nodes.html +* Understanding **topics**: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Topics/Understanding-ROS2-Topics.html +* Understanding **services**: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Services/Understanding-ROS2-Services.html +* Understanding **messages**: https://docs.ros.org/en/humble/Concepts/Basic/About-Interfaces.html#messages +* Understanding **parameters**: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Parameters/Understanding-ROS2-Parameters.html +* Understanding **actions**: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html +* Recording and reading from **bag** files: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Recording-And-Playing-Back-Data/Recording-And-Playing-Back-Data.html + ### Useful Commands * [`ros2`][cmd-ros2]: CLI tool that performs common ROS 2 actions.
From d925ef2f5328e3827eb95aa02e5a1caf829e3b89 Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 21:55:11 +0800 Subject: [PATCH 10/12] Updates for computational graph --- images/ROS_Computational_Graph.drawio.png | Bin 22771 -> 22869 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/ROS_Computational_Graph.drawio.png b/images/ROS_Computational_Graph.drawio.png index 11485c89a7c92b401ca528d000163dc5b7568bfa..ac3effcedb71115a71c94e7226dca449518be9aa 100644 GIT binary patch literal 22869 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 Wr!B1<{Ly3-6nSZ7sZt5!!2b^v(y!bA literal 22771 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 mCe--m_wf(Va5KAoIK*+5?KRxA`i24 Date: Mon, 4 Mar 2024 22:02:05 +0800 Subject: [PATCH 11/12] Remove ROS 1 details --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 3d68955..259f8ed 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,7 @@ To complete this workshop please arrive with: * A basic understanding of Ubuntu Linux * A basic understanding of Python and/or C++ -* A laptop running either: - * [ROS2 Humble](https://docs.ros.org/en/humble/index.html) on [Ubuntu 22.04](https://releases.ubuntu.com/22.04) - * [ROS1 Noetic](http://wiki.ros.org/noetic) on [Ubuntu 20.04](https://releases.ubuntu.com/20.04) - - +* A laptop running the ROS 2 distro [Humble](https://docs.ros.org/en/humble/index.html) * Please follow the [installation instructions here](./ros-installation.md) * Ask a mentor if you get stuck, and we'll be happy to help * Access to the Internet (you'll need to download 1-2 GB) From 74c89a1eb55949f604027c16c953be4c7736fafb Mon Sep 17 00:00:00 2001 From: Scott McCormack Date: Mon, 4 Mar 2024 22:08:10 +0800 Subject: [PATCH 12/12] Update tutorial links --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 259f8ed..633128a 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Topics: + Community + References -### Complete the [ROS Beginners Tutorials][ros-tutorials] +### Complete the [ROS Beginners Tutorials][ros-tutorials-beginner] Topics: + Directory structures for Catkin workspaces + Creating packages @@ -43,7 +43,7 @@ Topics: + Using `rviz` + Using `roslaunch` -### Complete the [ROS Intermediate Tutorials][ros-tutorials] +### Complete the [ROS Intermediate Tutorials][ros-tutorials-intermediate] Topics: + Creating a new package by hand + Managing dependencies @@ -202,4 +202,5 @@ source devel/setup.bash [ros-cmakelists]: http://wiki.ros.org/catkin/CMakeLists.txt [ros-custom-msg]: http://wiki.ros.org/ROS/Tutorials/DefiningCustomMessages -[ros-tutorials]: http://wiki.ros.org/ROS/Tutorials +[ros-tutorials-beginner]: https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools.html +[ros-tutorials-intermediate]: https://docs.ros.org/en/humble/Tutorials/Intermediate.html