diff --git a/README.md b/README.md index 99fbb56..633128a 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,8 @@ To complete this workshop please arrive with: * A basic understanding of Ubuntu Linux -* A basic understanding of Python and 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) +* A basic understanding of Python and/or C++ +* 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) @@ -31,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 @@ -45,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 @@ -204,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 diff --git a/images/ROS_Computational_Graph.drawio.png b/images/ROS_Computational_Graph.drawio.png new file mode 100644 index 0000000..ac3effc Binary files /dev/null and b/images/ROS_Computational_Graph.drawio.png differ diff --git a/images/ROS_Computational_Graph.png b/images/ROS_Computational_Graph.png deleted file mode 100644 index c37272d..0000000 Binary files a/images/ROS_Computational_Graph.png and /dev/null differ diff --git a/images/ROS_Filesystem_Architecture.drawio.png b/images/ROS_Filesystem_Architecture.drawio.png new file mode 100644 index 0000000..dbb15b3 Binary files /dev/null and b/images/ROS_Filesystem_Architecture.drawio.png differ diff --git a/images/ROS_Filesystem_Architecture.png b/images/ROS_Filesystem_Architecture.png deleted file mode 100644 index e3702dc..0000000 Binary files a/images/ROS_Filesystem_Architecture.png and /dev/null differ 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). diff --git a/ros-introduction.md b/ros-introduction.md index 874b18b..3a501be 100644 --- a/ros-introduction.md +++ b/ros-introduction.md @@ -17,21 +17,34 @@ 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) - -- **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 +![ROS_Filesystem](./images/ROS_Filesystem_Architecture.drawio.png) +#### **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) + +#### More information +* 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 -![ROS Computational Graph](./images/ROS_Computational_Graph.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 +### 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 @@ -58,22 +71,5 @@ 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-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 - - +[cmd-ros2]: https://github.com/ros2/ros2cli/tree/humble +[cmd-colcon]: https://github.com/colcon/colcon-core