Skip to content
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Workshop 1 Introduction and ROS Basics

Marc Hanheide edited this page Oct 4, 2022 · 16 revisions

TASK 0 - Module Workshop Preparation

  1. First (Re-)Boot in Ubuntu if your machine is running Windows (or nothing at all): reboot, quickly press F12, wait for boot loader to appear, select Ubuntu.
  2. Login as user computing

Update and Install

Everything this year is deployed via docker containers. Hence, read using the module resources in docker#using-the-modules-docker-image, first.

TASK 1 – READING EXERCISE (this may be something to do outside the timetabled workshop)

  1. Familiarise yourself with the module’s reading list on blackboard!

  2. Read chapter 2 of Mahtani et al, “Effective Robotics Programming with ROS” (available on blackboard) Please note that the book talks about ROS kinetic, while we use a slightly newer version: noetic.

TASK 2 – ROS TUTORIALS (this may be something to do outside the timetabled workshop)

Work through the “Beginner Level” tutorials 1-7 at http://wiki.ros.org/ROS/Tutorials (working through does not mean you have to complete each one of them, but it may help you). If you have previous ROS experience, you may skip over the bits you already know, but be prepared to answer questions by the delivery team on the different concepts.

TASK 3 – PROPRIOCEPTIVE SENSING

A computer is already seen as a central part of any robot. In ROS, different components are communicating with one another over topics. "Proprioceptive Sensing" refers to measuring the internal (as opposed to the external) state of a robot/computer. As a very simple example, the currently free memory (RAM) of a computer could be considered as part of the internal state. This information may well be relevant to another component in a robot, e.g. to decide if the resources available are adequate to run some algorithm. Hence, your first job is to write a Publisher for a topic called /freemem that continuously publishes the currently free memory of your computer. The type of the Publisher shall be std_msgs/String, i.e., you will just be publishing this as a text. There are many different possibilities to achieve this:

  • Use existing command line tools, such as rostopic pub and read the information from e.g. /proc/meminfo and parse the relevant parts using command line tools
  • Write a small ROS python node that, e.g., uses psutil (in general stackoverflow is a very valuable resource you might end up using a lot), creates a rospy.Publisher and publishes the information required.

Whichever way you choose, this is already a typical example of how ROS is used in robotic systems: System information from hardware is read by components (sensors) and published regularly on a topic, making the information available to other components.

This task will require you to research some way to accomplish it on your own, but please discuss with your fellow students and the delivery team.

TASK 4 - Launch the Thorvald Simulation

Get to know your robot companion for this module: roslaunch bacchus_gazebo vineyard_demo.launch

(Optional) TASK 5 - Install distribution on your own computer

Consider installing Docker and using all the container on your own machine, check [[using the module resources in docker

Clone this wiki locally