(Murilo’s) ROS2 Tutorial
If you’re looking for the official documentation, this is NOT it. For the official ROS documentation, refer to this link.
You can download this tutorial as a PDF 📀.
📖 About this tutorial
ROS2 Humble tutorials by Murilo M. Marinho, focusing on Ubuntu 22.04 x64 LTS and the programming practices of successful state-of-the-art robotics implementations such as the SmartArmStack and the AISciencePlatform.
🤟 Using this tutorial
This is a tutorial that supposes that the user will follow it linearly. Some readers can skip the Preamble if they are somewhat already comfortable in Python and Ubuntu. Otherwise, all steps can be considered as dependent on the prior ones, starting from ROS2 Setup.
🔍 Quick overview
- Preamble: Ubuntu Basics
A few tips on Ubuntu/terminal usage.
- Preamble: Python Basics
A quick memory refresher for the Python stuff we’ll use in ROS2.
- ROS2 Setup (⭐start here⭐)
Installing ROS2 and setting up its environment for use.
- ROS2 Python Package/Build Basics
Creating our first ROS2 package with ament_python and building it with colcon.
- ROS2 Python Node Basics
rclpyNode and figuring out what all that means.
- ROS2 Python Library Basics
Create a Python library and importing/using it in another ament_python package.
- ROS2 Python Interface Basics
Making ROS2 messages, services, publishers, subscribers, service servers, and service clients.
- ROS2 Parameter/Launch Basics
Making configurable ROS2 Nodes using parameters and launch files.
If you’re using macOS or Windows, this is NOT the guide for you. There might be a lot of overlap, but none of the code shown here has been tested on those operating systems.
This project is under active development and is currently a draft.
By reading and/or using this tutorial in total or in part, you agree to these terms.
ANYTHING ON THIS TUTORIAL–EVEN THINGS THAT ACTUALLY WORK–IS ENTIRELY FICTIONAL. SOME MEMES ARE ATTEMPTED….POORLY. THE TUTORIAL CONTAINS MISPLACED MOVIE REFERENCES AND DUE TO ITS LOW-HANGING FRUIT HUMOUR, IT SHOULD NOT BE READ BY ANYONE.
All advice, comments, and terrible memes in this tutorial are my own and not endorsed by anyone or anything else mentioned herein. It’s not even endorsed by me.
THIS TUTORIAL AND RELATED SOFTWARE ARE PROVIDED “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE AND/OR TUTORIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.