ROS - Level 1

In light of the global pandemic we are experiencing, we will not be accepting any new students for now.

We will post updates on the class schedule once we are assured on safety of everyone.

Difficulty: ⭐️⭐️☆☆☆


ROS – Robot Operating System – is the goto operating system for robots. Most of the world’s robots are now powered by ROS as the middleware both in industry and academia. In this course students will first learn how to use ROS and then use it to program and control robot hardware such as sensors, cameras etc. ROS comes with a very large and diverse set of functions that make it straightforward for programming robots; the major features will be covered in this course

Learning outcomes:

By the end of this course, students will:

  • Be able to install ROS from scratch; create and build catkin packages
  • Understand the concept of middleware
  • Publish and subscribe to hardware such as joysticks, cameras and ToF sensors
  • Create 3D robot models and perform simulation


  • Basic robotics knowledge (sensors, actuators etc)
  • Working knowledge of C++ or Python
  • Some Linux experience
  • Laptop with Ubuntu 16.04 installed

Curriculum For This Course

      1. Introduction to ROS
      2. Understand what middleware is, what capabilities ROS provides and ROS installation
      3. ROS architecture, creating a ROS workspace
      4. Nodes and topics
      5. Introduction to rviz
      1. Creating a ROS package
      2. Writing a Publisher Node
      3. Compiling and Building Packages
      4. Viewing Topics
      5. Viewing ROS graphs
      6. Different data types in ROS
      1. Writing a Subscriber Node
      2. sensor_msgs
      3. Using a joystick
      1. sensor_msgs::Image
      2. Publishing image from a camera
      1. sensor_msgs::PointCloud2
      2. Installing PCL
      3. Publishing 3D point clouds
      4. Using a ToF camera
      1. sensor_msgs::PointCloud2 (cont’d)
      2. Installing PCL (cont’d)
      3. Publishing 3D point clouds (cont’d)
      4. Using a ToF camera (cont’d)
      1. Services
      2. Creating a srv file
      3. Writing a service
      4. Writing a client
      1. Robot Pose
      2. ROS Coordinate Frame
      3. Reference frames in ROS
      4. 3D Robot Modelling
      5. Creating a robot model: Robot base, Adding wheels
      6. Types of joints
      1. Simulating Robot Model
      2. Physical and Collision Properties
      3. xacros
      4. Making the Robot Model Move
      1. Gazebo Introduction
      2. Adding a robot model to Gazebo
      3. Adding a sensor (2D laser sensor) to a robot in Gazebo
      4. How a 2D laser sensor works
      5. Creating and using different worlds in Gazebo


Group name Start date Session duration Number of sessions Standard price


Below are the courses that you may want to take after this course:


Tokyo Techies Lecturer

Abbi Hamed

Robotics engineer

Did a research degree in medical robotics and then got into mobile robotics after moving to Japan. Expertise is quite broad rather than specialist having worked on robot touch sensors, laser distance sensors, mechanical design, microcontrollers, robot operating system (ROS), mobile robot navigation and other things.

Has experience in teaching over several years as a personal tutor and teaching assistant;