Last update: 08/31/2026,7:20 pm, added slides, added assignment
CSC398: Introduction to Autonomous Robots
Slides
1. Introduction.pdf
3. Overview, agents, environments, typical components
4. Introduction to ROS (1), ROS (2), ROS (3), ROS (4)
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 where the general concepts are introduced and where some examples are given.
Here is where you get SVN for your computer:
- Unix systems and MacOS: SVN should be already installed on your system. If not: use a package manager (e.g. apt on Linux or brew on MacOS) to install subversion.
- Windows: I recommend using Tortoise-SVN for Windows distributions.
Here is how you use SVN for this class:
- 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 where you want to have all your CSC545 class folders and files. Then type
svn co --username=[USER] svn://svn.cs.miami.edu/classes/csc398.271/[USER]
where [USER] is your username given by us.
- Change into your directory with
cd [USER]
- 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
- Then 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 if you are still one folder level up:
? assignment1
-
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 - The last step is to upload the content to the central repository:
svn ci -m "SOME MEANINGFUL MESSAGE" assignment1
- The system then confirms with
A assignment1
A assignment1/test.txt
- To update from the repository use
svn up
Updating '.':
At revision 186.
Introduction
Autonomous robotic systems combine techniques and methods from many areas, such as AI, control, electronics, mechanics machine learning, image processing, signal processing and more. It is impossible covering everything in only one semester.
This course introduces you to the fundamental principles of robotics for computer science students. You will gain theoretical knowledge and practical experience in building and controlling robots using the Robot Operating System (ROS). Throughout the course, you will explore topics like robot kinematics, motion planning, perception, control systems, and ROS programming.
The course is based on lectures and hands-on programming in a state-of-the-art teaching lab with adequate computers for handling real-time physics and visualization. This course will use the Robot Operating System ROS. Programming in Python and C++ are required.
We will use various environments including the RoboCup@Home environment to learn and program. We use state-of-the-art simulators such as Gazebo and Isaac-Sim for simulation.
Instructor’s name
Dr. Ubbo Visser
Office: Ungar Building, Room 330A
Web: http://www.cs.miami.edu/~visser
Phone: 305-284-2254
Email: visser@cs.miami.edu
Office Hours: by appointment
Teaching Assistant
Ethan Marshall (with help from Christopher Duarte and Tauhid Rahman)
Email: erm148@miami.edu
Contact Hours
Each week there are two 75 minutes sessions (TuTR 11:00PM - 12:15PM), extra lab hours Tu 5-7pm.
Classroom: UB305, RoboCanes lab for special occasions possible.
Recommended Text Books
We will not use a dedicated textbook for this class. We do recommend the following books, though, for a thorough study of the field:
- Robert Siegwart et al.: Introduction into Autonomous Mobile Robots. MIT Press, 2011.
- Steven LaValle: Planning algorithms. Cambridge Press, 2006.
- Peter Corke: Robotics, vision and control. Fundamental algorithms in python. Springer 2023.
- Matjaz Mihelj et al.,: Robotics (2nd ed), 2019, Springer
- Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall, 4th edition, 2020.
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox. Probabilistic Robotics. MIT Press, 2005.
- Jorge Angeles: Fundamentals of robotic, mechanical systems. Theory, methods, and algorithms. 4th ed., 2014, Springer
- Herman Bruyninckx: Robot kinematics, and dynamics. Universiteit Leuven, Belgium, 2010.
- Joseph Lorenzetti and Marco Pavone: Principles of robot autonomy,
Course Content
A large part of the course concentrates on practical work with ROS, ISAAC Simulation and our RoboCanes agent on our humanoid GR2 from Fourier Intelligence. 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.
The class on Tuesdays will mainly be used for theory and lectures, while the class on Thursdays and the lab on Tuesdays will involve more practical work to understand the programs you need for the class.
This class will be re-vamped from a previous graduate class but will have a lot of elements that are brand-new, including Isaac Sim. The following parts might change slightly within the semester.
Part 1 (Introduction to Robotics)
1. Introduction to autonomous systems, autonomous robots, RoboCup.
2. Overview of typical components of an autonomous robot.
3. Python and C/C++ Programming (if necessary)
Part 2 (Isaac Sim World, ROS)
1. Building blocks of the simulator (navigation in the simulator, first robot in am empty world, in our lab world)
2. ROS essentials
Part 3 (Control and motion)
1. PID-control, calibration of parameters.
2. Controlling a wheeled robot, controlling joints, kinematics
Part 4 (Localization, Path Planning and Navigation)
1. Recursive state estimation, Bayes’ filter, particle filter.
2. Self-localization.
3. Modeling path planning with A* and RRT
Part 5 (Perception)
1. Computer vision
2. Deep Learning for object detection
Assignments
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.
Grading
TBA.
Other
- Class attendance and participation
Class attendance is mandatory since a lot of practical work is required. 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 points. 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 points. - 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.