CSC752 Autonomous Robotic Systems

How do I submit assignments?

We are using a SVN (subversion) repository for this class. Each student will get an account and will receive the credentials to access this account. For those new to repositories and in particular SVN: here is a web site that introduces the general concepts and give some examples.


Here is where you get SVN for your computer:

  1. Unix systems and MacOS: SVN should be already installed on your system. If not: use a package manager (e.g. apt-get on Linux or brew on MacOS) to install subversion.
  2. Windows: I recommend using Tortoise-SVN for Windows distributions.


Here is how you use SVN for this class:

  1. SVN checkout: this is only necessary *once*, at the beginning. Linux/MacOS: Open a terminal and 'cd' into your class folder on your local machine. Then type

    svn co --username=[USERNAME] svn://

  2. Change into your directory with

    cd csc752.211/[USERNAME]

  3. You can now add folders and files to your working copy of the repository. Example: add a new folder for each assignment such as

    mkdir assignment1

  4. The create files necessary for that assignment in that folder. Once the assignment is completed you need to add the new material to your repository. You can check by typing svn status and then select which files and folders to add. Say you added one file  to the folder assignment1 (let's call it test.txt). svn status then delivers this:

    ? assignment1

  5. The '?' means that the folder is recognized but not under revision control yet. You do this by adding the folder (with all it's content) to the repo:

    svn add assignment1

  6. The last step is to upload the content to the central repository:

    svn ci -m "SOME MEANINGFUL MESSAGE" assignment1

  7. The system then confirms with

    A assignment1
    A assignment1/test.txt


Autonomous robotic systems combine techniques and methods from many areas, such as AI, robotics, machine learning, image processing, signal processing and more. It is not possible to cover everything in only one semester. In this course we will first give an overview over common structures and components of autonomous robots. After that some topics we chose will be be discussed with more details. These lectures are only one part of the course. This course will use the Robot Operating System ROS. Programming in Python and C++ are required.

We will use the RoboCup environment to learn about the current research in this area, which will require reading and discussing papers.


Instructor’s name
Dr. Ubbo Visser
Office: Ungar Building, Room 330A
Phone: 305-284-2254
Office Hours: by appointment


Contact Hours
Each week there are two 75 minutes sessions (MoWe 1:15PM - 2:30PM).
Classroom: Online, remote teaching, RoboCanes lab for special occasions possible.


Recommended Text Books


Course Content
A large part of the course concentrates on practical work with ROS, the Gazebo Simulation and our RoboCanes agent on our HSR robot from Toyota. Due to COVID-19 we will be using the simulator more than the actual robot. The goal is to understand the environment and core concepts of autonomous robotic systems. We can arrange to work on a part of the RoboCanes agent as a project. The final projects are not limited to the topics discussed in class. A project can be any improvement or extension of the agent or something completely outside of RoboCup.


The class on Mondays will mainly be used for theory and lectures, while the class on Wednesdays will involve more practical work to understand the programs you need for the project.

This class will be re-vamped from scratch, including ROS which hasn't been part of the class before. The following parts might change slightly within the semester.


Part 1 (Introduction)
1. Introduction to autonomous systems, autonomous robots, RoboCup.
2. Overview of typical components of an autonomous robot.
3. C/C++ Programming (if necessary)


Part 2 (Modeling)
1. Perception, noise, modeling.
2. Recursive state estimation, Bayes’ filter, particle filter.
3. Self-localization.


Part 3 (Control and motion)
1. PID-control, calibration of parameters.
2. Controlling a wheeled robot, controlling joints.
3. Walking motion.


Part 4 (Learning) [optional, if time permits]
1. Overview, different types of learning.
2. Reinforcement learning.


There will be some mandatory assignments based on topics discussed in class. Problems will be either theoretical or implementation-based. The programming exercises will include Python, C++, and Matlab. The due dates will be available on the course web page. I might include one assignment preparing a short talk about parts of our software environment, tools or about current research of other RoboCup teams.




Potential final projects
Every student is expected to present a final project at the end of the semester. The project can be anything that is useful for the RoboCanes agent. This includes a wide range of topics. You can for example work on the modeling, behavior or motions. The project can be narrowed down to a detail in the agent, for example special motions for the HSR or applying ML to detect 3D objects in space reliably. The project can consist of an implementation in the agent, but you can also use or implement external tools.


We strongly recommend that the project is chosen related to your research interests. However we will also provide suggestions for project topics.


In order to keep track on the progress of the project, students are asked to present the current state of the project in two successive intervals. This includes the proposal, and the mid-term progress. More details will be provided during the lectures and on the course webpage.


At the end of the semester each student will be asked to present their project in class and turn in a conference-like paper (min. 8 pages LNCS, ≈3500 words, using LaTeX).


  • Other
    • Class attendance and participation
      Class attendance is mandatory, since a lot of practical work is required and especially the final project would be too difficult without attending the class. Class participation is also important. Active interest in lectures is the easiest way to learn.
    • Plagiarism
      The penalty for copied homework of any kind can be immediate failure in the course. My policy on programs is as follows: There is no reason for two (or more) people handing in identical or nearly identical programs. I will regard such programs as either group-written or simply copied. If I have no hard evidence of copying, such programs will receive NO credit. More serious actions will be taken in cases where there is evidence of cheating.
    • Late programs
      Unless otherwise stated, programs will lose 20% of their value for each weekday (Monday through Friday that they are late, down to a minimum value of 20%. The due date of a program is the latest date on which it can be run to get full credit.
    • Dropping the course
      Unless there are extreme extenuating circumstances, I will not allow anyone to drop a course after the drop date. Poor academic performance will never be an acceptable reason for a late drop. The drop date for this course can be seen in the Academic Calendar.
    • Incompletes
      Unless there has been a documentable illness that caused you to miss substantial amounts of class and computer time, I will not give an incomplete grade in this course unless you have a remarkably good reason.