Skip to content
tom-howard edited this page Feb 2, 2021 · 19 revisions

Welcome

Welcome to the COM2009/3009 Wiki!

This Wiki contains all the material for the first six weeks of the COM2009/3009 Robotics Lab Course. You should follow the week-by-week content provided here, which will guide you through everything you need to know to complete Lab Assignment 1. You will complete this work and Lab Assignment 1 individually.

You can navigate the Wiki via the contents page to the right, but there are also links at the bottom of each page to direct you to the next page (or the previous one, if you want to go back).

Through these lab sessions you will learn how to use ROS (the Robot Operating System) to program robots. You will be working in simulation here, but the things you will learn will be directly applicable to real robots, which you will experience later in the course when you will apply the ROS knowledge that you have gained here to some real TurtleBot3 Waffle Robots (introduced below).

Intended Learning Outcomes

On completion of COM2009/3009 Lab Assignment 1 you will be able to:

  1. Demonstrate your understanding of the Robot operating System (ROS) and how to work with it to develop robotic applications.
  2. Apply this understanding by using ROS (in simulation) to make a robot perform a range of common robotic behaviours.

Weekly Practical Sessions

There will be a 2-hour practical session each week and in these sessions we will work through the weekly material together. The class has been split into two groups: A & B, with practical sessions for each group scheduled as follows:

  • Group A: Thursdays, 14:00-16:00
  • Group B: Fridays, 09:00-11:00

You will have already been assigned to one of these groups and the lab session that you must attend should appear in your timetable.

Note: You should only attend one practical session per week and should attend the one that appears in your timetable.

Practical sessions will take place online via Blackboard Collaborate, which you should access either via the COM2009/3009 course page on Blackboard, or via the link here (TODO) (Note: In order to access this link you will need to sign in to Blackboard using your sheffield.ac.uk account credentials).

The ROS Environment

As discussed above, you will work with ROS in simulation over the next six weeks. For this, you will need to access a University Computer via the University Remote Desktop Service. Please make sure that you have a look at the Getting Started page for more information on this before your first lab session.

Introducing the Robots

Throughout Lab Assignment 1 you will work with a simulated version of the TurtleBot3 Waffle made by Robotis. This is the 3rd Generation Robot in the TurtleBot family, which has been the reference hardware platform for ROS since 2010. This family of robots exists to provide accessible and relatively low-cost hardware and open-source software on a robot platform to encourage people to learn robotics and ROS and make it as easy as possible to do so.

At the University of Sheffield we have a number of TurtleBot3 Waffle Robots specifically for teaching this course:

As such, these practicals have been developed with this robot in mind, so that the things that you learn and develop here will be directly transferable to the real robot hardware later on.

The robots that we have are in fact slightly different to the standard TurtleBot3 WafflePi that you can buy directly from Robotis. We have made a few adjustments, as shown in the image below:

The robots have the following core hardware elements:

  • Independent left and right wheel motors (DYNAMIXEL XM430’s) to drive the robot using a differential drive configuration.
  • An OpenCR Micro-Controller Board to power and control the wheel motors, distribute power to other hardware elements and provide an interface for additional sensors.
  • An UP Squared Single-Board Computer (SBC) with an Intel Processor and 32GB on-board eMMC storage. This acts as the "brain" of the robot.

In addition to this, the robots are equipped with the following sensors:

  • A Light Detection and Ranging (or LiDAR) sensor, which spins continuously when the robot is in operation. This uses light in the form of laser pulses to allow the robot to measure the distance to surrounding objects and provides the robot with a 360° view of its environment.
  • An Intel RealSense D435 Camera with left and right imaging sensors, allowing depth sensing as well as standard image capture
  • A 9-Axis Inertial Measurement Unit (or IMU) on-board the OpenCR Micro Controller board, which uses an accelerometer, gyroscope and magnetometer to measure the robot’s specific force, acceleration, and orientation.
  • Encoders in each of the DYNAMIXEL wheel motors, allowing measurement of speed and rotation count for each of the wheels

Not bad eh?! You will meet these robots in person later in the course!

Useful Resources

The Free ROS Programming eBook

The developers of the TurtleBot3 Waffle robots have written a book on programming robots with ROS. This is available as a free eBook, which you can download here and we recommend that you do so! This is a great resource which provides a detailed introduction to what ROS is and how it works, as well as a comprehensive "Beginners Guide" to ROS programming. The other great thing about this is that it is tailored to the TurtleBot3 Robot specifically, providing examples of how to use a range of TurtleBot3 packages along with a detailed description of how they work.

We will refer to this book at various points throughout this course and will point you to particular sections in the book that we recommend that you read to learn more about the concepts that you are exploring in the practical sessions.

Other Resources

In addition to the book mentioned above, this course material has been informed by a range of other (typically free and open-access) resources too. We recommend you check out some of these as well, if you would like to dig a little deeper:

Navigating This Wiki:
Getting Started →