Page cover

Course Module

Part 1: Introduction to ROS and Environment Setup

Session 1: Introduction to the Robot Operating System (ROS)

  • Overview of ROS: Introduction to ROS as a middleware solution for robotics.

  • Explanation of the role of ROS in modern robotics, its history, and the difference between ROS 1 and ROS 2.

Session 2: Understanding ROS Core Concepts

  • Detailed exploration of ROS core components: Nodes, Topics, Services, and Actions.

  • Explanation of the ROS computational graph and the interaction between different ROS components.

Session 3: Introduction to the Linux Environment

  • Understanding the Linux file system, commands, and their relevance to ROS.

  • Practice with essential Linux commands (navigation, file management, and system processes) that will be used in ROS projects.

Session 4: ROS Installation

  • Installation of ROS 1 or ROS 2 on Ubuntu 20.04 or Windows 11 (via WSL2).

  • Guidance on setting up a ROS workspace, sourcing the environment, and testing the installation with example nodes.

Session 5: ROS 2 Turtlesim Tutorial

  • Introduction to Turtlesim as a simple starting point for understanding ROS concepts.

  • Running and controlling Turtlesim via ROS commands to demonstrate ROS topics and services in action.

Session 6: Simulating Robots in ROS 2 with TurtleBot3

  • Overview of the TurtleBot3 as a robotic platform for ROS simulation.

  • Setting up a TurtleBot3 simulation environment using Gazebo and ROS 2.

  • Hands-on practice: Controlling TurtleBot3 in a simulation to reinforce understanding of ROS topics and node communication.

Summary Part 1:

Participants will build foundational knowledge of ROS, Linux, and simulation environments. By the end of Day 1, they will have set up their ROS development environment, understood ROS core concepts, and explored basic simulations using TurtleBot3.


Part 2: Practical ROS Applications with Arduino

Session 1: Simple Connection between ROS and Arduino

  • Introduction to Arduino and its integration with ROS.

  • Setup of the Arduino IDE and establishing a serial connection between ROS and Arduino.

  • Writing basic ROS nodes to communicate with the Arduino via Python.

Session 2: Controlling LEDs with ROS

  • Explanation of digital input/output (I/O) in Arduino.

  • Hands-on practice: Controlling Red and Blue LEDs connected to Arduino using ROS nodes.

  • Implementing ROS topics to switch the LEDs on and off through ROS commands.

Session 3: Controlling Servo with ROS

  • Introduction to PWM (Pulse Width Modulation) and controlling a servo motor via ROS.

  • Hands-on practice: Writing ROS nodes to control the position of a mini servo motor connected to Arduino.

  • Implementing ROS topics to adjust the servo position based on input commands from ROS.

Session 4: Combining LEDs and Servo

  • Integration of both LEDs and the servo motor into a single ROS project.

  • Hands-on practice: Writing ROS nodes to control both components simultaneously, allowing for multi-device control from ROS.

  • Managing multiple topics to ensure synchronized control between LEDs and the servo motor.

Session 5: Why Use rosserial

  • Discussion of the benefits of using rosserial for Arduino in more advanced projects.

  • Overview of how rosserial allows Arduino to publish and subscribe to ROS topics, and act as a fully integrated ROS node.

  • Hands-on practice: Demonstrating a simple setup of rosserial for those who wish to explore it further.

Summary Part 2:

Participants will gain practical experience in integrating ROS with hardware components, specifically Arduino. They will learn how to control both LEDs and a servo motor via ROS, and understand the basics of rosserial for future projects. By the end of the day, participants will have a fully functional system combining multiple hardware components controlled through ROS.

Last updated