Courses completed and ongoing at the University of Maryland, College Park
Current CGPA – 3.783/4.000
| Course | Grade Secured |
|---|---|
| Introduction to Robotic Programming | A |
| Introduction to Robotic Modelling | B+ |
| Control of Robotic Systems | A- |
| Autonomous Robotics | A |
| Perception for Autonomous Robots | A |
| Planning for Autonomous Robots | A- |
| Software Development for Robotics | A- |
| Machine Learning | A |
| Building a Manufacturing Robot Software System | A |
Below is a detailed explanation of the content taught in some of the courses mentioned above:
Software Development for Robotics
As the robotics industry continues to grow and evolve, software’s role in these products and systems is also becoming more critical. From embedded controls to advanced perception and learning, software permeates today’s robots. Building off domain expertise developed in other robotics courses, this course teaches the tools and processes to develop professional quality software for deployed systems and products. Students will learn the best practices of taking new ideas or prototypes, and understanding what it takes to build the complex software that is so important to today’s commercialized robotic systems. The course is split into two parts: the first will review the C++ programming language, object-oriented programming (OOP) concepts, version control, testing, and agile software development processes; the second will introduce the popular Robot Operating System (ROS) framework with intensive programming assignments and projects. Students should be proficient in using Linux, programming with C/C++ and understand the concepts of object-oriented programming.
Building a Manufacturing Robot Software System
The course will look at the components of manufacturing robots, including architectures, knowledge representation, planning, control, safety, standards, and human-robot interaction. Students will explore the work that is being performed around the world in each of these areas, and will perform small hands-on exercises in class to gain a deeper understanding of how a selected set of these technologies can be applied to real-world challenges. This course will have invited presentations from experts in the field.
Planning for Autonomous Robots
Planning is a fundamental capability needed to realize autonomous robots. Planning in the context of autonomous robots is carried out at multiple different levels. At the top level, task planning is performed to identify and sequence the tasks needed to meet mission requirements. At the next level, planning is performed to determine a sequence of motion goals that satisfy individual task goals and constraints. Finally, at the lowest level, trajectory planning is performed to determine actuator actions to realize the motion goals. Different algorithms are used to achieve planning at different levels. This graduate course will introduce planning techniques for realizing autonomous robots. In addition to covering traditional motion planning techniques, this course will emphasize the role of physics in the planning process. This course will also discuss how the planning component is integrated with control component. Mobile robots will be used as examples to illustrate the concepts during this course. However, techniques introduced in the course will be equally applicable to robot manipulators.
Machine Learning
This course will focus on basic algorithms and techniques in machine learning and their practical implementation. The various topics include linear/nonlinear model classification and regression, logistic regression, support vector machines, kernels, decision trees, ensemble learning, random forests, principal component analysis, and neural networks. Various techniques for improving performance such as input-preprocessing, cross-validation, regularization, and fast optimization will also be discussed. The course will include an end-to-end machine learning project.
Perception for Autonomous Robots
Perception is a basic fundamental capability for the design of autonomous robots. Perception begins at the sensor level and the class will examine a variety of sensors including inertial sensors and accelerometers, sonar sensors (based on sound), visual sensors (based on light) and depth sensors (laser, time of flight). Perception, in the context of autonomous robots, is carried out in a number of different levels. We begin with the capabilities related to the perception of the robot’s own body and its state. Perception contributes to kinetic stabilization and ego-motion (self motion) estimation. Next come the capabilities needed for developing representations for the spatial layout of the robot’s immediate environment. These capabilities contribute to navigation, i.e. the ability of the robot to go from one location to another. During navigation, the robot needs to recognize obstacles, detect independently moving objects, as well as make a map of the space it is exploring and localize itself in that map. Finally, perception allows the segmentation and recognition of objects in the environment as well as their three dimensional descriptions that can be used for manipulation activities. The course will introduce techniques with hands on projects that cover the capabilities listed before.
Autonomous Robotics
This is a hand-on course exploring the principles of robotic autonomy. Students will explore the theoretical, algorithmic, and implementation aspects of autonomous robotic modeling and controls, perception, localization and SLAM, planning, and decision making. These techniques will be applied through completion of a semester-long hands-on project employing the course material, ground-based mobile robots, and Python. Students perform this work in teams of 2, which stay together throughout the semester. Students will perform hands-on exercises in most lectures to gain a deeper understanding of how a selected set of these technologies can be applied to real-world robotic environments.
Introduction to Robot Modeling
This course introduces basic principles for modeling a robot. Most of the course is focused on modeling manipulators based on serial mechanisms. The course begins with a description of the homogenous transformation and rigid motions. It then introduces concepts related to kinematics, inverse kinematics, and Jacobians. This course then introduces Eulerian and Lagrangian Dynamics. Finally, the course concludes by introducing basic principles for modeling manipulators based on parallel mechanisms. The concepts introduced in this course are subsequently utilized in control and planning courses.
Control of Robotic Systems
This is a course on the design of controllers for robotic systems. The course starts with mainstay principles of linear control, with focus on PD and PID structures, and discusses applications to independent joint control. The second part of the course introduces a physics-based approach to control design that uses energy and optimization principles to tackle the design of controllers that exploit the underlying dynamics of robotic systems. The course ends with an introduction to force control and basic principles of geometric control if time allows.
Introductory Robot Programming
This hands-on course introduces students to the C++ programming language and was specifically designed for students who have had little to no programming experience in their previous studies. With C++ still being one of the main languages for robot programming, I strongly believe that this course will prepare students for other ENPM robotics courses that require programming experience. This course mainly focuses on C++ programming. Towards the end of the course you will learn about the Robot Operating System (ROS) along with small exercises. Small projects will be assigned almost weekly to allow students to apply what they have learned in class.