Menu

Last update: 11/18/2024, 7:13 pm, new slide deck

CSC398: Introduction to Autonomous Robots

Recordings

2024010

In-Class Activity

Activity 1Activity 2

Installing RoboCanes software

- Log in to your local machine
- Open a terminal and cd into .local/share/ov/pkg/isaac-sim-2023.1.1
- git clone https://github.com/robocanes/csc398_isaac_hsr
Username: csc398
- Token: please copy token from announcement in Blackboard
- Paste token in terminal to install software (8.8 GB)
- Installation will take a few minutes depending on bandwidth
- cd into csc398_isaac_hsr
- Compile code with catkin_make.
Source with source devel/setup.bash
Run scene with ./isaac_sim_hsr_start.sh


To move the robot:
- Open a new terminal

- cd into .local/share/ov/pkg/isaac-sim-2023.1.1/csc398_isaac_hsr
Type 's', we created an alias for 'source devel/setup.bash' in your ~/.bashrc

rosrun hsr-omniverse hsr_simple_move.py

 

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

Kasia Pasternak

Email: kwp@cs.miami.edu

 

Contact Hours
Each week there are two 75 minutes sessions (TuTR 12:30PM - 1:45PM), extra lab hours TR 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 HSR robot from Toyota. 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.