TU Delft
print this page print this page     
2017/2018 Mechanical, Maritime and Materials Engineering Master Mechanical Engineering
Robotics Practicals
Responsible Instructor
Name E-mail
J.F.P. Kooij    J.F.P.Kooij@tudelft.nl
Name E-mail
Prof.dr. D. Gavrila    D.Gavrila@tudelft.nl
Contact Hours / Week x/x/x/x
Education Period
Start Education
Exam Period
Different, to be announced
Course Language
Course Contents
This course is meant for students that are doing their MSc project in the field of robotics, e.g. at 3ME/BMechE or 3ME/DCSC. It enables you to quickly get into your MSc subject without losing time to teach yourself the necessary skills within the course of your MSc project or /and to bug the AIO's or Postdocs with your trivial questions; by then you have already built up that basic knowledge in ME1130.

*NOTE* the format of this course is changing with respect to previous years. It will NOT be self-study anymore that you can start at any given moment. The course is CLOSED for the academic year 2016/2017.

This course does not focus on teaching new theory, but will let the student get hands on experience in the following subjects:

Although Windows is the most prevalent operating system on desktop PCs, Linux became very popular for embedded systems such as robots. Developing for embedded Linux systems is most easily done in Linux itself, and this course aims to familiarize students with the use of Linux on the desktop. It encompasses the following topics: Architecture, Installation, Window system, File system, Shell, Scripting, Compilation and Latex.

C++is one of the most widely used programming languages. Being an object oriented language brings great advantages comparing to its predecessor C. This practicum is designed to give the student a practical knowledge on C++ programming. The course encompasses the following topics: Introduction to C++, general features, basic programming in C++, functions, pointers, classes and objects, graphical user interface and some advanced topics such as data structures, casting and exception handling. C++ is a must if you want to make software for intelligent - real-time - control of machines or/and image processing.

The Robot Operating System is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms. Creating truly robust, general-purpose robot software is hard. From the robot's perspective, problems that seem trivial to humans often vary wildly between instances of tasks and environments. Dealing with these variations is so hard that no single individual, laboratory, or institution
can hope to do it on their own.

OpenCV is a computer vision library designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing. Enabled with OpenCL, it can take advantage of the hardware acceleration of each underlying heterogeneous compute platform. OpenCV is released under a BSD license and hence it is free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android.

The Point Cloud Library is a stand-alone, large scale, open project for 2D/3D image processing and point cloud processing. Also PCL is released under the terms of the BSD license, and thus free for commercial and research use.
Study Goals
To obtain hands on experience - beginners level - with C++: You are able to successfully create C++ programs, compile them using Make and debug them.
To obtain hands on experience - beginners level - with ROS: You are able to link various ROS modules and add your own programs, you are able to control motion controllers.
To obtain hands on experience - beginners level - with OpenCV: You are able to write various 2D image processing routines and link them to other routines in the library.
To obtain hands on experience - beginners level - with PCL: You are able to write various 3D robot vision routines and link them to other routines and link them to other routines
in the library.
Education Method
Lectures and lab assignments
Lab assignments and final project
Old course code: ME1130
3mE Department Cognitive Robotics