1.1.1 ROS Essentials

Course subject(s) Module 1. ROS Essentials

Welcome to the very first lesson of this ROS MOOC. Before we dive into ROS, it is helpful to know something about how ROS works internally. In this video, we will outline the ROS essentials, which are: Nodes, Topics, and how they interact.

There are two fundamental concepts in ROS, which are: Nodes and Topics.

Nodes:
These are software processes that do ‘stuff’ (e.g. process data, command hardware, execute algorithms). Nodes provide modularity to robotic projects that use ROS. They are often written in C++ or Python. In this course, we will use Python to write them. ROS is only compatible with Python 2.7.x.

Topics:
Transport information between nodes, in the form of messages.

In a real robot application you will often have to deal with a large number of nodes and topics. It is important to know which nodes are talking to each other, and what topics are being used to pass the information (messages) between nodes.

Please make sure to download the files you will need for the content of this module! You can find it on the Downloads page.

(Alternatively you can use the archived versions of the Downloads page and the Weekly Contents page below.)

Downloads page

1. Install Singularity

Select the singularity install file corresponding to the Ubuntu distribution you are using:

You can’t install all of them, select only one!

Disclaimer: Note that we no longer support the Ubuntu 21.04 here (which was supported during the last version).

Follow the steps on the course setup unit to install the singularity on your machine

2. Download the Singularity image

Download the course singularity image from this link: hrwros-23.sif (note: this file is approximately 1.1 GB, so the download may take a while).

Warning: Some students have reported this file getting renamed during or after download. Please confirm this file is called hrwros-23.sif and is placed in your Downloads folder.

Follow the steps on the course setup unit to verify that the image was downloaded successfully

3. Download the course starter installation script

You will also need a course starter installation file, that will create some necessary infrastructure inside your Ubuntu install.

install-hrwros-starter.sh (~1.4 kB)

Download the file to your $USER/Downloads folder and make sure the file name is install-hrwros-starter.sh

Follow the steps on the course setup unit to run the starter installation script

Weekly contents

You can download the files corresponding to each week from the Weekly contents page.

Each week contents, may also include new version of files/packages from previous weeks, Always overwrite with newer ones to avoid errors.

Any changes or additional files you made, should be backed up before replacing with the new ones.

When you download the contents for a week, some files that you might see in the instruction videos are already provided. So just open them and see their contents. It is not necessary to create files that are already given to you.

Weekly contents page

 

The weekly content only needs to be downloaded once you reach the respective week – don’t download these in advance!

Each week content may include new versions of files/packages from previous weeks, always overwrite with the new version.

Any changes or additional files you’ve created, should be backed up before downloading the new week files.

When you download the contents for a week, some files that you might see in the instruction videos are already provided.  It is not necessary to create files that are already given to you.

Week 1 contents

All the files you need to work with for Week1 of the course are available in the zip file week1-contents.zip

Extract the contents of the zip file into $HOME/hrwros_ws/src/

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_assignments
      • hrwros_week1_assignment

Run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin build
source $HOME/hrwros_ws/devel/setup.bash

Week 2 contents

All the files you need to work with for Week 2 of the course are available in this zip file: week2-contents.zip (~3.2 MB) .

As explained in Week 1, the exact location of ROS packages is unimportant, as long as they are in the src space of your workspace.

In this week we’re going to make use of that, by placing the new packages directly in the src space, instead of in a sub directory.

Extract the contents of the zip file into $HOME/hrwros_ws/src.

Always overwrite all the previous content!

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_support
  • hrwros_assignments
        • hrwros_week1_assignment
        • hrwros_week2_assignment

Now run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin clean -y
catkin build
source $HOME/hrwros_ws/devel/setup.bash

At this point you are all setup to continue with Week 2 of the course and you can use the CCS as normal.

Week 3 contents

All the files you need to work with for Week 3 of the course are available in this zip file: week3-contents.zip (~2.9 MB) .

Warning:

The downloads for Week3 will overwrite the contents of the hrwros_support package that you had received in Week2.
Make sure you have submitted the assignments of week2 before downloading this.

If you want to retain some of those changes, make sure to back them up properly. We are not responsible if you lose any local development you had inside the hrwros_support package.

Extract the contents of the zip file to your $HOME/hrwros_ws/src/. If it warns you folders and files will be overwritten, select Replace All.

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_support
  • hrwros_gazebo
  • hrwros_week3
  • hrwros_assignments
        • hrwros_week1_assignment
        • hrwros_week2_assignment
        • hrwros_week3_assignment

Now run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin clean -y
catkin build
source $HOME/hrwros_ws/devel/setup.bash

At this point you are all setup to continue with Week 3 of the course and you can use the CCS as normal.

Week 4 contents

All the files you need to work with for Week 4 of the course are available in this zip file: week4-contents.zip (~170 KB) .

Warning:

The downloads for Week4 will overwrite the contents of the hrwros_gazebo package that you had received in Week3.
Make sure you have submitted the assignments of week3 before downloading this.

If you want to retain some of those changes, make sure to back them up properly. We are not responsible if you lose any local development you had inside the hrwros_gazebo package.

Extract the contents of the zip file to your $HOME/hrwros_ws/src/. If it warns you folders and files will be overwritten, select Replace All.

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_support
  • hrwros_gazebo
  • hrwros_week3
  • hrwros_week4
  • hrwros_assignments
        • hrwros_week1_assignment
        • hrwros_week2_assignment
        • hrwros_week3_assignment
        • hrwros_week4_assignment
        • week4_moveit_config

Now run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin clean -y
catkin build
source $HOME/hrwros_ws/devel/setup.bash

At this point you are all setup to continue with Week 4 of the course and you can use the CCS as normal.

Week 5 contents

All the files you need to work with for Week 5 of the course are available in this zip file: week5-contents.zip (~1.8 MB) .

Warning:

  • The downloads for Week5 will overwrite the contents of the hrwros_gazebo package that you had in previous weeks.
  • The downloads for Week5 will overwrite the contents of the hrwros_moveit_config package that you created in week 4. It will provide a common ground for the lectures and assignments.

Make sure you have submitted the assignments of week4 before downloading this.

If you want to retain some of those changes, make sure to back them up properly. We are not responsible if you lose any local development you had in those packages.

Extract the contents of the zip file to your $HOME/hrwros_ws/src/. If it warns you folders and files will be overwritten, select Replace All.

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_support
  • hrwros_gazebo
  • hrwros_week3
  • hrwros_week4
  • hrwros_week5
  • hrwros_moveit_config
  • hrwros_assignments
        • hrwros_week1_assignment
        • hrwros_week2_assignment
        • hrwros_week3_assignment
        • hrwros_week4_assignment
        • hrwros_week5_assignment
        • week4_moveit_config

Now run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin clean -y
catkin build
source $HOME/hrwros_ws/devel/setup.bash

At this point you are all setup to continue with Week 5 of the course and you can use the CCS as normal.

Week 6 contents

All the files you need to work with for Week 6 of the course are available in this zip file: week6-contents.zip (~1.8 MB) .

Warning:

  • The downloads for Week6 will overwrite the contents of the hrwros_gazebo package that you had in previous weeks.

Make sure you have submitted the assignments of week5 before downloading this.

If you want to retain some of those changes, make sure to back them up properly. We are not responsible if you lose any local development you had in those packages.

Extract the contents of the zip file to your $HOME/hrwros_ws/src/. If it warns you folders and files will be overwritten, select Replace All.

After the above step, your folder structure under $HOME/hrwros_ws/src should look like this:

  • hrwros
      • hrwros_week1
      • hrwros_msgs
  • hrwros_factory_behaviors
  • hrwros_factory_states
  • hrwros_support
  • hrwros_gazebo
  • hrwros_week3
  • hrwros_week4
  • hrwros_week5
  • hrwros_week6
  • hrwros_moveit_config
  • hrwros_assignments
        • hrwros_week1_assignment
        • hrwros_week2_assignment
        • hrwros_week3_assignment
        • hrwros_week4_assignment
        • hrwros_week5_assignment
        • week4_moveit_config

Now run the following commands in the CCS terminal:

source /opt/ros/noetic/setup.bash
cd $HOME/hrwros_ws
catkin clean -y
catkin build
source $HOME/hrwros_ws/devel/setup.bash

At this point you are all setup to continue with Week 6 of the course and you can use the CCS as normal.

Creative Commons License
Hello (Real) World with ROS - Robot Operating System by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://online-learning.tudelft.nl/courses/hello-real-world-with-ros-robot-operating-systems//.
Back to top