Mentors

Why become a PURE Mentor?

Application for graduate students interested in becoming mentors for Fall 2020 :  Apply!

The currently listed mentors are for the Fall 2021 semester.

MentorDescription
Akash Singh (Industrial and Enterprise Systems Engineering)
Materials Engineer doing Machine Learning and Electronic Trading

Description of Possible Projects:
Designing and Testing a Portfolio using Leverged ETFs

Desired Skills/Time Commitment:
Can work with Python
Successful students often commit 9 to 12 hours a week on their projects.
Xinhang Song (Electrical and Computer Engineering)
I'm a Ph.D. Candidate in the Laboratory for Optical Physics and Engineering in the department of Electrical and Computer Engineering. My research project is about photonics, optics, and fabrication. The main project is about photonic crystals, plasma, and related electromagnetic research.


Description of Possible Projects:
Data collection; simple prototyping; programming; photonic crystals; optical imaging


Desired Skills/Time Commitment:
Electromagnetics and fabrication related courses
Jongwon Lee (Aerospace Engineering)
Jongwon received his B.S. in Mechanical Engineering from Korea Advanced Institute of Science and Technology (KAIST) with summa cum laude. He is presently pursuing his Ph.D. degree in Aerospace Engineering at the University of Illinois at Urbana-Champaign (UIUC). His current research interest is tackling various challenges in mobile robotics and robotic perception at the intersection of conventional and learning-based approaches.

Description of Possible Projects:
EMBEDDED SYSTEM PROGRAMMING: DEVELOP A NON-LINEAR LEAST-SQUARE OPTIMIZATION PROJECT IN C

A non-linear least-square (so-called 'batch optimization') is a problem finding an optimal solution that maximizes the consensus among a given set of data. For instance, if somebody gives us three points on a plane---(1.1, 1.96), (2.0, 4.05), and (2.96, 6.0)---and let us deduce a line passing them, we can easily find it to be y = 2x though it does not exactly pass through neither of them. Such a batch optimization problem has attracted a number of roboticists' attention due to its promising use cases, such as identifying parameters configuring a robot, mapping and localizing a robot's position from sensor data, or etc.

In this project, an applicant is required to refactor an existing prototype batch optimization code, which is written in C++ with an open-source linear algebra library called Eigen and optimization tool Ceres, to be a C-language code with a linear algebra library named BLIS. The prototype code serves to identify the relative position and orientation (so-called pose) among inertial sensors on a flying robot without any prior information other than their measurement itself; this is exciting as it is a challenging work that has not been tried and done so far, and our research team saw it operates decently. The key remaining task is to re-write this prototype in C so that it can be ported on the target embedded system (NXP's MPC5748G). In the end, it is expected that the code can be executed on-board while the robotic agent is flying.

INFORMATIVE LINKS:
- Non-linear least-square problem in mobile robotics: https://www.youtube.com/watch?v=87S82fh4rI4
- BLIS - a portable linear algebra library in C: https://github.com/flame/blis
- What is NXP MPC5748G (target processor we are going to use): https://www.nxp.com/products/processors-and-microcontrollers/power-architecture/mpc5xxx-microcontrollers/ultra-reliable-mpc57xx-mcus/ultra-reliable-mcus-for-automotive-and-industrial-control-and-gateway:MPC574xB-C-G?cid=PR_PRG39254_CAM40202


Desired Skills/Time Commitment:
SKILLS TO BE REQUIRED:
- programming in C and C++
- basic knowledge of linear algebra (i.e. what are vector and matrix, how matrix operation works...)
- ... and passion to immerse yourself in the given task!

SKILLS RECOMMENDED:
- experience in embedded system programming (other than Arduino might be better, as the task requires deeper knowledge on it, such as cross-compilation, or etc.)
- miscellaneous knowledge on computer architecture, operation systems, or etc.

EXPECTED COMMITMENT:
- The actual commitment may vary and be flexible with the applicants' experience and skill, but at least 10hrs/wk effort will be recommended.

TENTATIVE SCHEDULE
- ~ Sep. 30: introduction; basic comprehension of the prototype code and target development environment;
- ~ Oct. 15: BLIS operation check in the target environment
- ~ Nov. 30: code refactoring
- ~ End of semester: wrap-up; run test code for operation check
Yogi Patel (Aerospace Engineering)Linear Inverted Pendulum is a classic pendulum control challenge built with special automation components and is widely used as a benchmark in industry and academic research to test control algorithms. This system will help the student to build a small robot/machine that can balance a vertical rod at the tip of a moving arm and will help to gain familiarity with industrial components such as linear motors, servo motor drivers, magnetic encoders, and sliding rails. The inverted pendulum system is a very popular demonstration of using closed-loop feedback control to stabilize the system and open-loop control for the swing-up maneuver. We will investigate to incorporate the currently developed theoretical model into an experimental setup of the system, which will allow us to further develop the model to increases the model's capacity for disturbance rejection.

Description of Possible Projects:
To have a physical interpretation of the system, think of balancing a rod on the tip of your finger, we are going to do the same thing using servo motors and 3D printed rods. For more info: https://www.youtube.com/watch?v=855O9x0Pgf0. As it can be seen that a thin rod is pivoted onto a cart which can oscillate on the horizontal axis. The system becomes unstable due to the gravitational effect when a small disturbance acts on its surface. Therefore to balance the pitching base thin-rod, a permanent controller is placed at the trailing edge which oscillates in the counter direction of disturbance and makes the system stable. For this system, the control input is the acceleration provided at the trailing edge of a pendulum and the outputs are the angular position, angular acceleration, and velocity of the pendulum.

Desired Skills:
Expected [but not mandatory] skills in candidate
- Interest in performing experimental work, familiarity with electrical systems like linear motor, servo motor driver, sliding rails, etc
- High school physics and math - such as deriving the equation of motions, derivation, integration, etc.
- Basic Understanding of MATLAB Simulink and LabVIEW.
- Report Writing and Presentation Skills"
Omar Jadallah (Civil and Environmental Engineering)
Description of Possible Projects:

1-Design of Extended Joint Rigid Slabs-on-Grade: help develop algorithm
2-Analysis of Beam-on-Elastic Foundation with non-prismatic geometries: learn how to model using Finite Elements

Desired Skills/Time Commitment:
-Basic programing experience
-Desire to learn and punctuality

Time Commitments:
- Flexible
- As Agreed

Amir Malvandi (Agricultural and Biological Engineering)I am working on a novel ultrasonic equipment for non-thermal dehydration of biomaterials. the research involves computer vision, machine learning, optimization and computational fluid mechanics.

Description of Possible Projects:

1. Using lab-view for data collection and smart control of developed ultrasonic dryer
2. Learning design of experiment and optimization using response surface method (RSM)
3. Linear and nonlinear regression, data visualization and introduction to Matlab

Desired Skills/Time Commitment:
WORD, EXCEL, familiar with any programming language (preferred), open to learn new concepts



Tejaswin Parthasarathy (Mechanical Science and Engineering)Our research focuses on developing theory and simulations for resolving fluid and soft-robotic dynamics and their flow structure interaction, and providing tools for broader use by the scientific and engineering community. In line with this focus, we have two projects:

Description of Possible Projects:
1) Development of web-based fluid--structure interaction simulation applications for use in education and research. The student would use open-source simulation tools in our lab (already developed) and expose a clean, minimal, web-based interface (capable of running on any browser across devices ranging from smartphones to laptops) for varying simulation parameters to gain intuition into the underlying physics. We already have a couple of such (prototype) applications which provide a solid platform for further development. At the end of the semester, students are expected to have 3--4 web applications that are immediately visible/accessible to professors/recruiters, which opens up future research/employment opportunities.

2) Development of new modules for use in our open-source simulation software Elastica++. Students will develop neatly packaged input--output (IO) modules, both during and after simulations, for exporting and visualizing simulation data. By the end of the semester, students are expected to have notable contributions to the open-source Elastica++ software ecosystem, which opens up future employment opportunities in simulations/programming/software engineering.

The skills used in the project (1) translate to project (2) and vice-versa, and students are encouraged to contact me for more details.

Desired skills:
Some programming would be helpful, but not necessary. The students will learn most of the skills as the project progresses---hence the student must be willing to learn programming and build software. The skills that the students will learn by the end of the semester are:

1) Concepts of programming
2) Scientific computing and simulations
3) Web programming (for project 1), which includes Javascript programming language and HTML
4) Native programming (for project 2), which includes the C++ programming language and OpenGL primitives
5) Python programming language

Time commitment:
Time commitment is flexible and depends on the initiative/schedule of the student, and according to the goals set at the beginning of the project. However, I estimate it could be anywhere between 3--6 hours per week. I also expect the hours to be longer at the start of the semester (when the student is learning to program).