Robotics and Embedded Systems

When software meets hardware, the world becomes smart, secure, resilient, autonomous, and more sustainable. In this focus path, you will navigate the sky with drones, program robots, design smart devices, and develop technologies to help solve the world’s toughest challenges including medicine, climate change, transportation, and accessibility.
description....

Gateway Course

This course is a good entry place for the robotics and embedded systems focus path

An embedded computer is designed to efficiently interact directly with its physical environment. This lab-based course explores architecture and interface issues relating to the design, evaluation and implementation of embedded systems . Topics include hardware and software organization, power management, digital and analog I/O devices, memory systems, timing and interrupts. 

Prerequisites: ECE 2300 (Applied Circuits) AND ECE 2330 (Digital Logic Design)  AND CS 2130 (Computer Systems and Organization 1)


 

Elective Courses

The Internet of Things (IoT) is a computing platform where a large number of devices form a network to monitor, control, and optimize some physical system. To be scalable, these devices communicate wirelessly, both with each other and to the Internet at large. But what wireless protocols are available for IoT devices? How do they work? And why are there so many? This course will provide a hands-on introduction to the world of wireless in the Internet of Things. Over the course of the semester we will explore what wireless options we have available, how they differ and what the tradeoffs are, and how major IoT wireless protocols work. We will also build networks of devices using real-world wireless protocols. Our goal is for you to be able to build your own wireless devices with a wireless protocol that meets your application requirements and device constraints.

We will look at WiFi, Classic Bluetooth, Bluetooth Low Energy, IEEE 802.15.4, 2G/3G/4G/5G cellular, LTE-M, NB-IoT, LoRa, and Z-Wave. We will also explore some emerging wireless options, such as visible light communication (VLC), infrared communication (IR), ultrasonic, wake-up radios, and backscatter.

By the end of the course, you will be able to…

  • explain, analyze, and compare different IoT wireless protocols.
  • analyze and model the power draw and spectrum utilization of wireless protocols.
  • develop hands-on skills using standards-compliant protocols.
  • identify requirements for a wireless protocol for a specific application.
  • recognize rationale for heterogeneity in wireless IoT protocols and how design choices impact both applications and users.
  • work effectively in a group to build IoT networks while overcoming challenges.

Example course website from Spring 2023

Embedded systems are special-purpose computers at the core of Cyber-Physical Systems (CPS) that monitor and control the physical processes through real-time interactions with sensors and actuators. More than 90% of manufactured micro-processors go inside airplanes, automobiles, medical devices, digital cameras, toys, home appliances, and smart buildings. What are the building blocks of an embedded system? How can we design an embedded system and make sure it satisfies specific functionality, reliability, and timing requirements? How can we bridge the gap between the inherently sequential embedded software with the intrinsic concurrency in the physical world? How can we execute multiple data acquisition, processing, and control tasks on resource-constrained microcontrollers while satisfying real-time constraints?

This course will help you answer these questions by providing the foundational knowledge and hands-on experience in design and validation of embedded computing systems, with a focus on embedded C programming and real-time operating systems (RTOS) for ARM® Cortex™-M Microcontrollers. In the second half of the class, we will explore related topics and applications in safety and security, cyber-physical systems (CPS), internet of things (IoT), and robotics through paper presentations and discussions

Topics:

  • Embedded system architectures
  • Embedded input and output (I/O)
    • Serial and parallel I/O
    • Interrupts
    • Asynchronous vs. synchronous interfaces
    • Analog I/O
  • Embedded software development
    • Embedded C programming
    • Memory management
    • Toolchains, debugging and profiling
  • Real-time operating systems
    • Thread and process management
    • Interrupt handling
    • Real-time scheduling
  • Quantitative analysis and validation

Example course website from Spring 2024

Description: An introductory course offers a broad overview of the main techniques in machine learning. Students will study the basic concepts of advanced machine learning methods as well as their theoretical background. Topics of learning theory (bias/variance trade-offs; VC theory); supervised learning parametric / nonparametric methods, Bayesian models, support vector machines, neural networks); unsupervised learning (dimensionality reduction, kernel tricks, clustering) and reinforcement learning will be covered. The graduate students (ECE 6502 / CS 6316) will be given additional programming tasks and more advanced theoretical questions.
 

Prerequisites: Mathematical background in linear algebra, multivariate calculus, probability and statistics, and programming skills are required in this class.

What are the most desirable characteristics of a digital system? What makes a computer powerful, is it its hardware or its software? What are the essential differences between a software program and programmable hardware? How can you build hardware that can adapt, and why would that be a useful feature? How do you judge a digital system: do you want the fastest, the least expensive, the smallest, the lowest power? How do you make sure that your work has impact? The goals for this class are to answer these and other related questions so that you can pursue successful technical careers by becoming lifelong learners, technical experts, great team players, eager to embrace the challenges brought by the quick changes (new technologies, new theories, new paradigms, new languages) that characterize the computer engineering field.

Explores the statistical methods of analyzing communications systems: random signals and noise, statistical communication theory, and digital communications. Analysis of baseband and carrier transmission techniques; and design examples in satellite communications.

Prerequisite: (APMA 3100 or MATH 3100) (Probability) AND ECE 2700 (Signals and Systems)

Further explores the concepts in communications. 

Co-requisite: ECE 4710. 

What our students say ECE 6850: Intro to Control Systems

"I took ECE 6850 Intro to Control Systems as an undergraduate, and I really enjoyed how the class combined prior knowledge of signals/systems from undergraduate with topics from linear algebra and differential equations to produce a much more holistic view of control system design both in continuous time and discrete time. Prof. Lin does an excellent job of building a foundation of the most important concepts of control systems, and I really felt like the class both cemented my undergraduate understanding of signals and systems and expanded it to, well, N-dimensions. I didn't get the chance to take the undergraduate version (ECE 4850: Linear Control Systems) but would highly recommend students interested to take the class."  - Daniel Xue, Class of 2024

Daniel Xue

"Computer Architecture is a must for students to understand the high-level architectural implications of circuit design. Prof. DeLong does an excellent job of taking concepts from DLD and showing how they translate into implementing a full CPU, and then showing how the design can be modified to include certain important design elements." - Student from Computer Architecture

Some Faculty in this area:

You are likely to see these faculty as the instructors for elective courses. Click on a name to visit a website and read about the cool research being done in this area at UVA!

Homa Alemzadeh

Associate Professor, Electrical and Computer Engineering Associate Professor, Computer Science (by Courtesy)

Homa Alemzadeh is an Assistant Professor in the Department of Electrical and Computer Engineering and Computer Science at UVA. She is also affiliated with the UVA Link Lab, a multi-disciplinary center for research and education in Cyber-Physical Systems (CPS). Before joining UVA, she was a Research Staff Member at the IBM TJ Watson Research Center.

Nicola Bezzo

Associate Professor, Systems and Information Engineering Associate Professor, Electrical and Computer Engineering

Nicola Bezzo is an Associate Professor with the Department of Systems and Information Engineering and the Department of Electrical and Computer Engineering at the University of Virginia.

Benton H. Calhoun

Professor, Electrical and Computer Engineering

Benton H. Calhoun received his B.S. in Electrical Engineering with a concentration in Computer Science from the University of Virginia in Charlottesville, VA, in 2000. He received his M.S. and Ph.D. degrees in Electrical Engineering from the Massachusetts Institute of Technology in Cambridge, MA, in 2002 and 2006, respectively.

Brad Campbell

Associate Professor, Computer Science Associate Professor, Electrical and Computer Engineering

Brad is a faculty member in the Computer Science Department, the Electrical & Computer Engineering Department, and the Link Lab. His group researchers and develops the next generation of low power, wireless, and secure Internet of Things systems to help make buildings and cities more sustainable.

Todd A. DeLong

Assistant Professor, Electrical and Computer Engineering
Professor DeLong began serving within the Department of Electrical and Computer Engineering within the School of Engineering and Applied Science at the University of Virginia in the Fall of 2015. Prior to that, he served at a number of other academic institutions, including Virginia Commonwealth…

Zongli Lin

Ferman W. Perry Professor in the School of Engineering and Applied Science Professor and Associate Chair for Graduate Studies, Electrical and Computer Engineering
Zongli Lin's current research interests include nonlinear control, robust control, and control applications. He was an Associate Editor of the IEEE Transactions on Automatic Control (2001-2003), IEEE/ASME Transactions on Mechatronics (2006-2009) and IEEE Control Systems Magazine (2005-2012). He was…

Amanda Watson

Assistant Professor, Electrical and Computer Engineering Assistant Professor, Computer Science

Amanda Watson’s research focuses on wearable technology for healthcare and athletic performance. Amanda Watson is an Assistant Professor in Electrical Engineering and Computer Science at the University of Virginia. She is also affiliated with the UVA Link Lab, a multi-disciplinary center for research and education in Cyber-Physical Systems (CPS).