ECE/ME 5463, also know as Real Time Robotics, is a graduate-level elective and required course for the robotics minor. It is intended to teach the fundamentals of robotic arms and manipulators. The professor teaching it during the Autumn 2025 semester, Dr. Saideh Zia, was unsatisfied with how outdated and theory-based the curriculum was, so she reached out to me to serve as a TA for her class and overhaul the curriculum using my practical experience from FRC and the OSU Underwater Robotics Team. I was a second-year at the time, meaning the students I was teaching were older than me, which was quite intimidating. I got few emails addressing me as Mr. Gupta, Dr. Gupta and Professor Gupta.
The Curriculum
Dr. Zia and I tore apart the existing curriculum and created the following plan:
Classes/lectures focused on theory and mathematical foundations:
- rotation matrix
- homogeneous transformation matrix
- rigid body motions
- Jacobian matrix
- kinematics (velocity, forward, and inverse)
- Lagrange-Euler formulation
- feedback control (PID)
- error dynamics
- feedforward control
- trajectory planning
Homeworks centered around the students performing calculations manually on ideal scenarios to build intuition.
Class participation assignments were designed to encourage students to research modern concepts and bridge them back to the ideas taught in class.
Exams tested students’ knowledge of how the mathematical methods can be applied to different scenarios and which ones to use for what situation.
Programming assignments and a final project would focus on practical robot software and simulation.
The class was heavily weighted on the programming assignments, exams, and final project. I helped with some editorial changes on the homework, lecture slides, and class participation assignments, but my main focus was creating the programming assignments.
In addition to my work on the curriculum, I performed typical teaching assistant duties. I created rubrics and graded all of the programming assignments and the final project. I also held in-person and online office hours every week to assist students. There were 88 students in the AU25 class so there was a lot of work to do.
Programming Assignments (PA)
This course previously did not have any such programming or practical application assignments, so I had to look elsewhere for inspiration. Due to the limitations of the curriculum at OSU (and since this was cross listed in mechanical engineering), I allowed Matlab submissions in addition to Python submissions.
At many points during ideating projects, I had to limit their complexity and rigor due to faults in OSU’s curriculum and limitations in the average students’ programming ability. Since I still wanted to introduce advanced topics like ROS2 and computer vision, I made additional assignments (called mini-projects) that students could do instead of programming assignments if they wanted to challenge themselves. This allowed me to meet students at their respective levels.
My evaluation of the projects focused on the net output rather than following required methodologies. The descriptions were objective based and kept constraints minimal. The only major restrictions were not using pre-made solvers specifically made for robotics, however typically mathematics libraries (scipy, numpy) were allowed.
The following are sumaries of the assignments. I did not include full descriptions since that would make this post a pain to read.
PA1
The first half of the assignment was to build a forward-kinematics (FK) solver that calculated the position and orientation of the end-effector with respect to the base frame of a given open-chain manipulator.
The second half of the assignment was to create a FK solver that takes user input and calculates the motion path between a starting position and a user-inputted joint variable values and produces motion plots and a 4x4 homogenous transformation matrix (between the start and end pose).
PA2
This assignment focused on inverse kinematics (IK) of a 2 rotational link (RR) manipulator. Students had to create a interface that allowed a user to select way points within a 2D space. The program then had to create a motion solution, display the planned path, and animate the link motions through said path.
PA3
Students had to create a trajectory generator and feedback controller simulating a pick and place for a given robot arm. The trajectory generator need to make a path from a starting location to a user-inputting pickup location and back. The end-effector’s mass must change after the pickup according to user-inputted mass. The output was required to include a visualization of the path, an animation of the robot moving through the path, and graphs of the control values.
Mini-project 1
This was an optional challenge project that could be completed instead of PA2 to allow students to explore the basics of ROS2. Students had to calculate a solution between a starting and ending point that was provided in 3D space and simulate the motion in RViz using a basic URDF of a robot arm. The recommended topology was:
- User-input node: publishes user input to a topic
- Solver node: subscribes to user input topic and published joint states incrementally through time
- RViz node: subscribes to the solver node topic and maps the joint states to the URDF to visualize the motion path
Mini-project 2
This was a optional challenge project that could be completed in place of PA3. The calculations were the same as PA3 with calculating a trajectory and controlling the robot with feedback. The extensions for this mini-project was the architect a layout of all these different sub functions in different nodes and simulate the motion in RViz.
Git Lecture
Some of the projects allowed group work, however, I noticed many groups struggling with collaboration due to sharing code over email, Microsoft one drive, and even google docs. Some groups lost all their progress due to two people editing the file at once. I created a basic Git and Github presentation that taught students what version control systems are, how they work, and how to use Github for their projects and assignments. I delivered the lecture in class.
Final Project
The final project description was left up to the students. They were allowed to form teams of up to 3 people, design a project centered around a robotic system, and build said system. Students were encouraged to think of real-world challenges and integrate with hardware. All project plans needed to be discussed with either me or Dr. Zia for approval.
Some teams with less-motivated students were not able to design sufficiently advanced projects, and due to time limitations, we assigned a baseline project that was writing a solver and controller similar to PA3 but for a more complex 6DoF arm.
For students that went above and beyond, extra credit was awarded. Some memorable projects were:
- a ball balancing robot that used basic computer vision (OpenCV colormask) to identify where the ball was moving and react accordingly.
- A kinematic solver that took input from a picture of hand drawn layout of a start point, end point, and any obstructions. The output was a motion path and simulation overlayed on the drawing. Not the most practical but the computer vision pipeline was decently complex using shape detection and color masks.
- SO-101 closed loop controller, IK solver, and simulator. This student used ROS2 to control a 6DoF arm, visualized the movement in RViz using encoder data, and implemented PID control. Probably the most practical of all the projects.
- Simulated ware house robot. They made an interface that allowed a user to choose which box to move to what location, generated an IK solution for a 6DoF arm on a mobile platform, and animated the completion of the task. The paths were complex given the warehouse had many shelves at varying heights and locations. All visualization was 3D and very cool to watch
Reflection
This was m first time teaching people in a formal classroom environment, which opened my eyes to how much work goes into preparing lessons, delivering lectures, and grading assignments. I learned how to adapt my teaching approach to students’ needs throughout the semester which enabled me to improve how I was creating material to challenge them. Despite my many successes, there were also a lot of things I’d go back and change; for example the way programming assignments were group projects didn’t benefit most students’ learning and typically resulted in one group member doing all the work. I’d also introduce more practical motivations to the in-person lectures so less students would feel lost in the practical assignments. Overall though, I think the new curriculum provided a far better learning experience than simply doing matrix math all semester long.
Looking Forward
While I was pleased with my improvements to the curriculum, I was still not satisfied with the level of rigor and the lack of hands-on labs. Most students throughout this entire course would never run their code on a real robot which is non-sensical for a graduate-level course. Therefore, for the Spring 2027 semester, we have been working to push the curriculum further by adding a lab component and purchasing robots and perception systems for students to experiment with. These include AMR (Autonomous Mobile Robots), 6DoF arms, Stereo Cameras, and more. The goal is students who take ECE/ME 5463 in the future will be able to understand robotics in a practical context, not just a theoretical one. I will be TAing the course again for the Spring 2027 semester to lead these newly created labs.